A migração de tabelas do Delta Lake para o Lakehouse para Apache Iceberg pode ser complexa e cara se você precisar reescrever ou mover grandes volumes de dados. Para disponibilizar os dados do Delta Lake no Lakehouse sem mover ou reescrever os arquivos subjacentes, use o job builder do Dataflow. O job builder oferece uma interface de pouco código ou no-code para importar tabelas do Delta Lake do Cloud Storage diretamente para o Lakehouse.
Para novas tabelas, o Dataflow cria o esquema automaticamente. Para tabelas atuais, o esquema não é modificado. Portanto, o esquema da tabela de destino precisa ser mapeado corretamente para a tabela de origem do Delta Lake para que o job seja concluído.
Use os detalhes de conexão a seguir para importar dados de uma tabela do Delta Lake armazenada no Cloud Storage.
Antes de começar
Para importar dados da tabela do Delta Lake, você precisa do seguinte:
Ative as APIs Dataflow, BigQuery e Lakehouse.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter a permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pela função Proprietário (roles/owner). Caso contrário, você pode receber essa permissão pela função Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder funções.Para receber as permissões necessárias para criar os recursos, peça ao administrador para conceder a você as funções necessárias do Identity and Access Management (IAM) no seu projeto.
Uma tabela do Delta Lake armazenada em um bucket do Cloud Storage. O diretório da tabela precisa ser uma raiz válida da tabela do Delta Lake que contenha seus arquivos de dados Parquet e o diretório de registro de transações
_delta_log/.Um catálogo, namespace e tabela do Lakehouse Iceberg para importar os dados.
Suporte e limitações
A importação de dados da tabela do Delta Lake para o Lakehouse para Apache Iceberg usando o Dataflow tem as seguintes limitações:
- É necessário usar um job de pipeline em lote para usar esse recurso.
- Para tabelas de destino atuais, o esquema não é modificado. O esquema da tabela de destino precisa ser mapeado corretamente para o esquema da tabela de origem do Delta Lake.
- Os dados de origem precisam ser uma tabela válida do Delta Lake armazenada no Cloud Storage. O diretório raiz da tabela precisa conter os arquivos de dados Parquet e o diretório de registro de transações
_delta_log/(que contém arquivos de registro JSON ou Parquet), conforme criado pelo Delta Lake. - O Amazon S3 não é compatível com origens de tabelas do Delta Lake.
Importar uma tabela do Delta Lake
Para importar uma tabela do Delta Lake para o Lakehouse para Apache Iceberg, siga estas etapas:
No Google Cloud console, acesse a página Catálogo de ambientes de execução do Lakehouse.
Selecione o catálogo, o namespace e a tabela em que você quer importar os dados.
Na página Detalhes da tabela , clique em Importar tabela e, em seguida, selecione Do Delta Lake (lote).
A página Job builder do Dataflow é aberta com o blueprint Delta Lake to Lakehouse carregado.
Na seção Origens:
Para expandir o painel de origem ReadFromDeltaLake Tabela do Delta Lake , clique na seta do expansor.
No campo Caminho da tabela, insira o URI do Cloud Storage do diretório raiz da tabela do Delta Lake (o diretório que contém os arquivos de dados e o diretório
_delta_log/). Por exemplo,gs://BUCKET_NAME/tables/TABLE_NAME.Opcional: no campo Propriedades de configuração do Hadoop, configure outras propriedades de configuração do Hadoop necessárias para ler no Cloud Storage. Por exemplo,
fs.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem.Clique em Concluído.
Na seção Receptor:
Opcional: revise o painel do receptor WriteToIceberg Tabela do Lakehouse. As informações nesse painel, como a tabela do Lakehouse, o nome do catálogo e o local do data warehouse, geralmente são preenchidas previamente.
Clique em Concluído.
Na seção Opções do Dataflow, clique em Executar job.
Se você precisar personalizar ainda mais o pipeline do Dataflow usado para importar tabelas do Delta Lake, faça isso usando o formulário do job builder ou o editor YAML.
Examinar a saída do job
Depois que o job for concluído, você poderá verificar se os dados foram registrados na tabela do Iceberg consultando-a no BigQuery.
Na lista de jobs do Dataflow, verifique se o status do job é Concluído.
Se o job falhar ou tiver erros, confira os registros do job ou do worker para mais detalhes.
No Google Cloud console, acesse a página Studio do BigQuery.
No editor de consultas, insira uma consulta SQL para inspecionar a tabela. Você pode usar a
PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAMEconvenção para consultar:SELECT * FROM `PROJECT_ID`.`CATALOG`.`NAMESPACE`.`TABLE_NAME` LIMIT 10;Clique em Executar.
Revise os Resultados da consulta para garantir que os dados foram processados corretamente.
A seguir
- Saiba como criar um job personalizado com a interface do job builder.
- Saiba mais em Introdução às tabelas do Lakehouse para Apache Iceberg no BigQuery.