Migre seus catálogos de dados do DLF-Legacy para o DLF executando uma ação de clonagem do Paimon como um job JAR no Realtime Compute for Apache Flink. O job copia tabelas Hive (formato Parquet, ORC ou Avro), tabelas Iceberg, tabelas Hudi ou tabelas Paimon do DLF-Legacy para o DLF como tabelas append-only do Paimon.
Pré-requisitos
Antes de começar, certifique-se de que você tem:
Um workspace do Flink totalmente gerenciado. Consulte Ativar o Realtime Compute for Apache Flink
Um bucket do OSS. Consulte Criar um bucket
Um catálogo de dados do DLF-Legacy. Consulte Gerenciamento de metadados
Um catálogo de dados do DLF. Consulte Criar um catálogo de dados
Etapa 1: Criar um job JAR
Faça login no console do Realtime Compute for Apache Flink.
Na lista de workspaces do Flink totalmente gerenciados, clique 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 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 engine do 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 upload anteriormente, selecione-o na lista suspensa.
—
Entry Point Class
A classe de ponto de entrada do JAR.
Deixar em branco
Entry Point Main Arguments
Parâmetros passados para o método principal. Defina na etapa 2.
Deixar 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 upload anteriormente, selecione-o na lista suspensa.
—
Clique em Deploy.
Etapa 2: Configurar e iniciar o job
Um único job do Flink pode migrar um catálogo inteiro, um banco de dados inteiro ou uma única tabela. O escopo depende de quais parâmetros você definir. A tabela abaixo aborda todos os parâmetros; consulte Escopo da migração para saber quais omitir.
Na lista de Deployments, localize o job JAR e clique em Details.
-
Na página Deployment Details, clique em Edit e preencha o campo Entry Point Main Arguments usando o modelo abaixo. Use o mesmo modelo tanto para tabelas de origem Hive quanto Paimon. A única diferença é o valor de
--clone_from.ImportanteMantenha sua AccessKey secret em sigilo. Ela é exibida apenas uma vez na criação e não pode ser recuperada posteriormente.
Referência de parâmetros
Parâmetro
Descrição
Obrigatório
Exemplo
parallelismParalelismo do job do Flink.
Não
16database-nameNome do banco de dados de origem no DLF-Legacy.
Não
my_databasetable-nameNome da tabela de origem no DLF-Legacy.
Não
my_tablewarehouseCaminho no OSS do catálogo de dados de origem do DLF-Legacy. Formato:
oss://<bucket>/<object>. Localize seu bucket e objeto no console do OSS.Sim
oss://my-bucket/my-pathdlf.catalog.idID do catálogo de dados do DLF-Legacy. Localize-o no console do DLF-Legacy. Consulte Catálogo de dados.
Sim
—
dlf.catalog.accessKeyIdAccessKey ID do DLF-Legacy. Consulte Criar uma AccessKey.
Sim
—
dlf.catalog.accessKeySecretAccessKey secret do DLF-Legacy.
Sim
—
dlf.catalog.endpointEndpoint do serviço DLF-Legacy. Consulte Regiões e endpoints.
Sim
dlf-vpc.cn-hangzhou.aliyuncs.comdlf.catalog.regionRegião do DLF-Legacy. Deve corresponder a
dlf.catalog.endpoint. Consulte Regiões e endpoints.Sim
cn-hangzhoufs.oss.endpointEndpoint do serviço OSS. Consulte Regiões e endpoints.
Sim
OSS:
oss-cn-hangzhou-internal.aliyuncs.com; OSS-HDFS:cn-hangzhou.oss-dls.aliyuncs.comfs.oss.accessKeyIdAccessKey ID com permissões de leitura e escrita no OSS. Consulte Criar uma AccessKey.
Sim
—
fs.oss.accessKeySecretAccessKey secret com permissões de leitura e escrita no OSS.
Sim
—
target-database-nameNome do banco de dados de destino no DLF.
Não
target_databasetarget-table-nameNome da tabela de destino no DLF.
Não
target_tabletarget-warehouseNome do catálogo de dados de destino no DLF. Localize-o no console do DLF. Consulte Catálogo de dados.
Sim
—
dlf.next.endpointEndpoint do serviço DLF. Consulte Endpoints.
Sim
cn-hangzhou-vpc.dlf.aliyuncs.comdlf.access-key-idAccessKey ID do DLF. Consulte Criar uma AccessKey.
Sim
—
dlf.access-key-secretAccessKey secret do DLF.
Sim
—
clone_fromTipo da tabela de origem.
Sim
'hive'ou'paimon'filter-specFiltro de partição para clonagem seletiva.
Não
dt = '2024-10-01'Clone Hive tables
As tabelas de origem podem ser tabelas Hive (como Parquet, ORC e Avro), tabelas Iceberg ou tabelas Hudi. Após a migração, elas são convertidas em tabelas append-only do Paimon.
clone --parallelism '<parallelism>' --database '<database-name>' --table '<table-name>' --catalog_conf 'metastore=dlf' --catalog_conf "warehouse=<warehouse>" --catalog_conf 'dlf.catalog.id=<dlf.catalog.id>' --catalog_conf 'dlf.catalog.accessKeyId=<dlf.catalog.accessKeyId>' --catalog_conf 'dlf.catalog.accessKeySecret=<dlf.catalog.accessKeySecret>' --catalog_conf 'dlf.catalog.endpoint=<dlf.catalog.endpoint>' --catalog_conf 'dlf.catalog.region=<dlf.catalog.region>' --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 'hive' --where '<filter-spec>'Clone Paimon tables
clone --parallelism '<parallelism>' --database '<database-name>' --table '<table-name>' --catalog_conf 'metastore=dlf' --catalog_conf "warehouse=<warehouse>" --catalog_conf 'dlf.catalog.id=<dlf.catalog.id>' --catalog_conf 'dlf.catalog.accessKeyId=<dlf.catalog.accessKeyId>' --catalog_conf 'dlf.catalog.accessKeySecret=<dlf.catalog.accessKeySecret>' --catalog_conf 'dlf.catalog.endpoint=<dlf.catalog.endpoint>' --catalog_conf 'dlf.catalog.region=<dlf.catalog.region>' --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>'
Escopo da migração
Controle o escopo da migração incluindo ou omitindo parâmetros específicos.
|
Objetivo |
Omitir |
Opcional |
|
Migrar uma única tabela |
— |
Defina |
|
Migrar um banco de dados inteiro |
|
Use |
|
Migrar um catálogo inteiro |
|
Use |
--excluded_tables aceita uma lista separada por vírgulas de pares database.table (exemplo: my_db.my_tbl,my_db2.my_tbl2). Não defina este parâmetro para migrações de tabela única.
Clique em Save.
Na página Deployments, localize o job JAR e clique em Start. Aceite os parâmetros iniciais padrão.
Etapa 3: Verificar a migração
Quando o status do job mudar para Finished, verifique o resultado em ambos os consoles.
Abra o console do DLF-Legacy e anote a estrutura do catálogo de origem, dos bancos de dados e das tabelas que você migrou.
-
Abra o console do DLF e confirme o seguinte com base no escopo da sua migração:
Escopo da migração
O que verificar no DLF
Catálogo inteiro
Todos os bancos de dados e tabelas existem; a contagem de tabelas corresponde ao DLF-Legacy
Banco de dados inteiro
Todas as tabelas do banco de dados existem; a contagem de tabelas e os schemas correspondem ao DLF-Legacy
Tabela única
A tabela existe; o schema (nomes de colunas, tipos de dados e campos de partição) corresponde ao DLF-Legacy
Abra uma tabela representativa no console do DLF e compare seu schema e lista de partições com a tabela correspondente no DLF-Legacy para confirmar que os dados foram clonados corretamente.