Este tópico descreve como implantar um job JAR no Realtime Compute for Apache Flink para migrar um catálogo Paimon FileSystem para o DLF.
Contexto
Um catálogo Paimon FileSystem armazena metadados de tabelas em um sistema de arquivos, como o Object Storage Service (OSS). Embora essa abordagem funcione para implantações independentes do Paimon, ela não se integra a serviços centralizados de governança. O Data Lake Formation (DLF) oferece um catálogo de metadados unificado com controle de acesso, auditoria e descoberta entre serviços. A migração para o DLF permite gerenciar tabelas Paimon junto com outros ativos de dados em um único catálogo governado.
Este guia descreve como migrar usando um job em lote do Flink que executa a ação clone do Paimon. O job lê metadados e dados do catálogo FileSystem e os registra no catálogo DLF. É possível migrar uma única tabela, um banco de dados inteiro ou um catálogo completo em uma única execução do job.
Pré-requisitos
Antes de começar, conclua as etapas a seguir:
Requisitos de computação
Crie um workspace no Realtime Compute for Apache Flink. O job de migração será executado neste workspace. Para obter instruções de configuração, consulte Ativar o Realtime Compute for Apache Flink. Você também pode abrir diretamente o console de gerenciamento do Realtime Compute for Apache Flink.
Requisitos de catálogo
Crie um catálogo de dados do DLF para receber as tabelas migradas. Para obter instruções de configuração, consulte Criar um catálogo de dados. Você também pode abrir diretamente o console do DLF.
Requisitos de acesso
Obtenha um AccessKey ID e um AccessKey secret de uma conta Alibaba Cloud ou usuário RAM que tenha permissões de leitura e gravação no OSS e acesso ao DLF. Consulte Criar um AccessKey.
O AccessKey secret é exibido apenas no momento da criação e não pode ser recuperado posteriormente. Armazene-o com segurança antes de prosseguir.
Procedimento
Etapa 1: Criar um job JAR
Faça logon no console do Realtime Compute for Apache Flink.
Na lista de workspaces totalmente gerenciados do Flink, clique em no nome do seu workspace.
No painel de navegação à esquerda, escolha Operation Center > Deployments.
-
Clique em Deploy Job, selecione JAR Job e defina os parâmetros a seguir.
Para obter uma descrição completa dos parâmetros de implantação, consulte Implantar um job JAR .
Parâmetro
Descrição
Exemplo
Deployment Mode
Fixo como Batch Mode.
Batch Mode
Deployment Name
Um nome para o job JAR.
migrate_paimon
Engine Version
A versão do mecanismo Flink.
vvr-8.0.11-flink-1.17
JAR URI
Faça upload do pacote paimon-flink-action-1.3-SNAPSHOT-for-clone-20250909.jar. Se já tiver feito o upload anteriormente, selecione-o na lista suspensa.
—
Entry Point Class
A classe de ponto de entrada do JAR.
Deixe em branco
Entry Point Main Arguments
Parâmetros passados para o método principal. Defina na etapa 2.
Deixe em branco por enquanto
Additional Dependencies
Faça upload do pacote paimon-ali-vvr-8.0-vvp-1.3-ali-SNAPSHOT-for-clone-20250909.jar. Se já tiver feito o upload anteriormente, selecione-o na lista suspensa.
—
Clique em Deploy.
Etapa 2: Configurar parâmetros e iniciar o job
O campo Entry Point Main Arguments define o catálogo de source para leitura, o catálogo de destino para gravação e o escopo da migração.
Na página Job O&M, localize o job JAR criado e clique em Details.
Na página Deployment Details, clique em Edit no canto superior direito.
-
Defina o campo Entry Point Main Arguments usando o modelo de comando abaixo e substitua os espaços reservados pelos seus valores.
Modelo de comando
clone --parallelism '<parallelism>' --database '<database-name>' --table '<table-name>' --catalog_conf 'metastore=filesystem' --catalog_conf "warehouse=<warehouse>" --catalog_conf 'fs.oss.endpoint=<fs.oss.endpoint>' --catalog_conf 'fs.oss.accessKeyId=<fs.oss.accessKeyId>' --catalog_conf 'fs.oss.accessKeySecret=<fs.oss.accessKeySecret>' --target_database '<target-database-name>' --target_table '<target-table-name>' --target_catalog_conf 'metastore=rest' --target_catalog_conf 'warehouse=<target-warehouse>' --target_catalog_conf 'uri=<dlf.next.endpoint>' --target_catalog_conf 'token.provider=dlf' --target_catalog_conf 'dlf.access-key-id=<dlf.access-key-id>' --target_catalog_conf 'dlf.access-key-secret=<dlf.access-key-secret>' --clone_from 'paimon' --where '<filter-spec>'Referência de parâmetros
Item de configuração
Obrigatório
Descrição
Exemplo
parallelismNão
Simultaneidade do job.
16database-nameNão
Nome do banco de dados do catálogo FileSystem a ser clonado. Omita ao migrar um catálogo inteiro.
my_databasetable-nameNão
Nome da tabela do catálogo FileSystem a ser clonada. Omita ao migrar um banco de dados ou catálogo inteiro.
my_tablewarehouseSim
Caminho OSS do catálogo FileSystem. Formato:
oss://<bucket>/<object>. Encontre os nomes do bucket e do objeto no console do OSS.oss://my-bucket/paimon-datafs.oss.endpointSim
Endpoint do serviço OSS. Para OSS:
oss-cn-hangzhou-internal.aliyuncs.com. Para OSS-HDFS:cn-hangzhou.oss-dls.aliyuncs.com. Consulte Regiões e endpoints.oss-cn-hangzhou-internal.aliyuncs.comfs.oss.accessKeyIdSim
AccessKey ID da conta ou usuário RAM com permissões de leitura e gravação no OSS. Consulte Criar um AccessKey.
—
fs.oss.accessKeySecretSim
AccessKey secret correspondente a
fs.oss.accessKeyId.target-database-nameNão
Nome do banco de dados DLF de destino. Omita ao migrar um catálogo inteiro.
target_databasetarget-table-nameNão
Nome da tabela DLF de destino. Omita ao migrar um banco de dados ou catálogo inteiro.
target_tabletarget-warehouseSim
Nome do catálogo de dados DLF de destino. Visualize os nomes dos catálogos no console do DLF. Consulte Catálogos de dados.
—
dlf.next.endpointSim
Endpoint do serviço DLF. Consulte Endpoints.
cn-hangzhou-vpc.dlf.aliyuncs.comdlf.access-key-idSim
AccessKey ID para acessar o DLF.
—
dlf.access-key-secretSim
AccessKey secret para acessar o DLF.
clone_fromSim
Tipo de catálogo de source. Sempre defina como
'paimon'para esta migração.paimonfilter-specNão
Condição de filtro de partição. Omita para migrar todas as partições.
dt = '2024-10-01'excluded_tablesNão
Tabelas a excluir das migrações de catálogo ou banco de dados. Não aplicável a migrações de tabela única. Formato:
<db>.<table>,<db2>.<table2>.my_db.my_tbl,my_db2.my_tbl2ImportantePara migrar uma única tabela, inclua
--database,--table,--target_databasee--target_table. Todos os quatro parâmetros são obrigatórios.Para migrar um banco de dados inteiro, inclua
--databasee--target_database. Não defina--tablenem--target_table. Opcionalmente, use--excluded_tablespara ignorar tabelas específicas.Para migrar um catálogo inteiro, omita
--database,--table,--target_databasee--target_table. Opcionalmente, use--excluded_tablespara ignorar tabelas específicas.
Clique em Save na página Deployment Details.
Na página Job O&M, clique em Start ao lado do job JAR para iniciá-lo com os parâmetros padrão.
Etapa 3: Verificar o resultado
Após a conclusão do job, confirme se a migração foi bem-sucedida.
Na página Job O&M, aguarde até que o status do job mude para Finished.
Faça logon no console do DLF e acesse o catálogo de dados de destino.
-
Verifique os dados migrados conforme o escopo da migração:
Escopo da migração
O que verificar
Migração de catálogo completo
A estrutura do catálogo, os bancos de dados e as tabelas no DLF correspondem aos do catálogo FileSystem de source.
Migração de banco de dados completo
As estruturas de banco de dados e tabelas no DLF correspondem às do catálogo FileSystem de source.
Migração de tabela única
A estrutura da tabela no DLF corresponde à do catálogo FileSystem de source.
Solução de problemas
|
Sintoma |
Causa provável |
Resolução |
|
O job falha imediatamente após o início |
URI do JAR incorreto ou JAR de dependência adicional ausente. |
Faça o upload novamente de ambos os arquivos JAR e confirme se as versões correspondem. |
|
O job termina, mas há tabelas ausentes no DLF |
O valor de |
No console do DLF, verifique o URI do warehouse configurado para o catálogo de dados e atualize o parâmetro |
|
Erros de autenticação durante o job |
AccessKey ID ou AccessKey secret incorretos, ou permissões RAM insuficientes. |
Confirme se as credenciais do AccessKey são válidas e se a conta ou usuário RAM associado possui permissões de leitura/gravação no OSS e permissões de acesso ao DLF. |
|
A estrutura da tabela no DLF não corresponde à source após a migração |
O esquema da tabela de source foi alterado entre as execuções da migração. |
Execute novamente o job de migração ou atualize manualmente o esquema da tabela no DLF para corresponder à source. |