Importar tabelas do Delta Lake para o Lakehouse usando o Dataflow

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:

  1. 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.

    Ativar as APIs

  2. 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.

  3. 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/.

  4. 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:

  1. No Google Cloud console, acesse a página Catálogo de ambientes de execução do Lakehouse.

    Acessar o catálogo de ambientes de execução do Lakehouse

  2. Selecione o catálogo, o namespace e a tabela em que você quer importar os dados.

  3. 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.

  4. Na seção Origens:

    1. Para expandir o painel de origem ReadFromDeltaLake Tabela do Delta Lake , clique na seta do expansor.

    2. 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.

    3. 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.

    4. Clique em Concluído.

  5. Na seção Receptor:

    1. 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.

    2. Clique em Concluído.

  6. 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.

  1. Na lista de jobs do Dataflow, verifique se o status do job é Concluído.

    Acessar "Jobs"

  2. Se o job falhar ou tiver erros, confira os registros do job ou do worker para mais detalhes.

  3. No Google Cloud console, acesse a página Studio do BigQuery.

    Acessar o BigQuery

  4. No editor de consultas, insira uma consulta SQL para inspecionar a tabela. Você pode usar a PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME convenção para consultar:

    SELECT * FROM `PROJECT_ID`.`CATALOG`.`NAMESPACE`.`TABLE_NAME` LIMIT 10;
    
  5. Clique em Executar.

  6. Revise os Resultados da consulta para garantir que os dados foram processados corretamente.

A seguir