O Realtime Compute for Apache Flink permite ler e gravar dados no Object Storage Service (OSS) e no Hadoop Distributed File System (HDFS) implantado no OSS (OSS-HDFS). Após configurar as propriedades do connector OSS ou OSS-HDFS, o Realtime Compute for Apache Flink lê automaticamente os dados do caminho especificado para uso como stream de entrada e grava os resultados do processamento no formato especificado no caminho de destino do OSS ou OSS-HDFS.
Pré-requisitos
-
O Flink totalmente gerenciado deve estar ativado. Para mais informações, consulte Activate Realtime Compute for Apache Flink.
Após ativar o Flink totalmente gerenciado, o workspace criado aparece na aba Fully Managed Flink em 5 a 10 minutos.
-
O job SQL deve ter sido criado.
Ao criar o job SQL, selecione um mecanismo de computação Flink do Ververica Runtime (VVR) 8.0.1 ou posterior. Para mais informações, consulte Create a job.
Limites
Só é possível ler ou gravar dados em serviços OSS ou OSS-HDFS que estejam na mesma conta Alibaba Cloud.
Ao gravar dados no OSS, não é possível utilizar formatos de armazenamento em linha, como Avro, CSV, JSON e Raw. Para mais informações, consulte FLINK-30635.
Procedimento
-
Acesse a página de criação de rascunho SQL.
Faça login no Realtime Compute console.
Localize o workspace Flink desejado e clique em Console na coluna Actions.
No painel de navegação, clique em .
-
No editor SQL, escreva o código DDL (Data Definition Language) e DML (Data Manipulation Language).
Este exemplo grava dados de uma tabela de origem no caminho
dirdo bucketsrcbucketem uma tabela de destino no caminhotestdo bucketdestbucket.NotaPara utilizar o código a seguir e ler dados do OSS-HDFS, certifique-se de que o serviço OSS-HDFS esteja habilitado para os buckets srcbucket e destbucket.
CREATE TEMPORARY TABLE source_table ( `file.name` STRING NOT NULL, `file.path` STRING NOT NULL METADATA ) WITH ( 'connector'='filesystem', 'path'='oss://srcbucket/dir/', 'format'='parquet' ); CREATE TEMPORARY TABLE target_table( `name` STRING, `path` STRING ) with ( 'connector'='filesystem', 'path'='oss://destbucket/test/', 'format'='parquet' ); INSERT INTO target_table SELECT * FROM source_table ;Para mais informações sobre as colunas de metadados compatíveis com a tabela de origem, como file.path e file.name, e o uso dos parâmetros WITH, consulte Object Storage Service (OSS) connector.
Clique em Save.
-
Clique em Advanced Check.
O recurso de verificação avançada examina a semântica SQL do job, a conectividade de rede e os metadados das tabelas utilizadas. Na área de resultados, também é possível clicar em SQL Optimization para visualizar possíveis problemas no SQL e as sugestões de otimização correspondentes.
-
Clique em Deploy.
Após desenvolver o job e concluir a verificação avançada, implante-o no ambiente de produção.
-
(Opcional) Esta etapa é necessária apenas ao ler dados de um serviço OSS-HDFS.
Clique no job. Na aba Deployment Details, na seção Running Parameter Configuration, configure o par de AccessKey, o Endpoint e outras informações do serviço OSS-HDFS conforme descrito abaixo. Em seguida, clique em Save.
fs.oss.jindo.buckets: srcbucket;destbucket fs.oss.jindo.accessKeyId: LTAI**************** fs.oss.jindo.accessKeySecret: yourAccessKeySecret fs.oss.jindo.endpoint: cn-hangzhou.oss-dls.aliyuncs.comA tabela a seguir descreve os itens de configuração.
Item de Configuração
Descrição
fs.oss.jindo.buckets
O nome do bucket onde os dados da tabela de origem estão localizados e o nome do bucket onde os dados da tabela de destino serão gravados. Separe os nomes dos buckets com ponto e vírgula (;). Exemplo:
srcbucket;destbucket.fs.oss.jindo.accessKeyId
O AccessKey ID da sua conta Alibaba Cloud ou de um usuário do Resource Access Management (RAM). Para saber como obter um AccessKey ID, consulte View the AccessKey information of a RAM user.
fs.oss.jindo.accessKeySecret
Utilize um AccessKey existente ou crie um novo. Para mais informações, consulte Create an AccessKey pair. Observação: para reduzir o risco de vazamento do AccessKey secret, ele é exibido apenas no momento da criação e não pode ser visualizado posteriormente. Armazene-o em local seguro.
fs.oss.jindo.endpoint
O endpoint do serviço OSS-HDFS. Exemplo: cn-hangzhou.oss-dls.aliyuncs.com.
Na página Job O&M, clique em Start e aguarde o job entrar no estado Running.
-
Visualize os dados gravados no caminho de armazenamento especificado da tabela de destino OSS ou OSS-HDFS.
Se os dados foram gravados no OSS, visualize-os na aba OSS da lista de arquivos no console do OSS. Se foram gravados no OSS-HDFS, visualize-os na aba HDFS da lista de arquivos no console do OSS.