Importar arquivos Parquet no armazenamento para o catálogo de tempo de execução do Lakehouse usando o Dataflow

É possível usar um blueprint do criador de jobs do Dataflow para adicionar arquivos Apache Parquet de armazenamento baseado na nuvem (Cloud Storage, Amazon S3 ou Azure Blob Storage) a uma tabela Apache Iceberg no Lakehouse sem fronteiras.

Esse processo usa a transformação IcebergAddFiles. Se os arquivos Parquet estiverem no Cloud Storage, essa transformação vai registrar os arquivos no Lakehouse sem mover ou reescrever os dados subjacentes. Se os arquivos estiverem em um sistema de armazenamento externo, como o Amazon S3, eles serão copiados para o Cloud Storage para consultas mais rápidas pelo Lakehouse e depois registrados.

Use os detalhes de conexão a seguir para adicionar arquivos Parquet do armazenamento baseado na nuvem a uma tabela do Apache Iceberg no Lakehouse.

Antes de começar

  1. Ative as APIs Dataflow, BigQuery e Lakehouse.

  2. Para receber as permissões necessárias para criar os recursos, peça ao administrador para conceder a você os papéis necessários do Identity and Access Management (IAM) no projeto.

  3. Crie um catálogo, um namespace e uma tabela do Lakehouse para importar dados.

  4. Crie um bucket de armazenamento baseado na nuvem (Cloud Storage, Amazon S3 ou Azure Blob Storage) e faça upload dos arquivos Parquet para ele.

  5. Se o bucket de armazenamento baseado em nuvem que você está usando não for o Cloud Storage do Google, crie um bucket do Cloud Storage para armazenar os registros de erros do job.

Suporte e limitações

A importação de arquivos Parquet do armazenamento baseado em nuvem para o Lakehouse usando o Dataflow tem as seguintes limitações:

  • Os dados de origem precisam estar no formato Apache Parquet e armazenados no Cloud Storage, no Amazon S3 ou no Armazenamento de Blobs do Azure.
  • Esse recurso só é compatível com pipelines em lote.

Importar arquivos Parquet para o Lakehouse

Siga estas etapas para importar arquivos Parquet do armazenamento baseado na nuvem para uma tabela do Iceberg no Lakehouse usando a UI do job builder do Dataflow.

  1. No console do Google Cloud , acesse a página Lakehouse.

    Acessar o 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 selecione De arquivos Apache Parquet (lote).

    A página Criador de jobs do Dataflow é aberta.

  4. Na seção Fontes:

    1. Abra a entrada de origem CreateGlobalInput já criada.

    2. Na seção do editor Configuração de origem YAML, insira um ou mais caminhos para seus arquivos Parquet na sequência elements.

      Para melhorar a eficiência da importação, especifique vários conjuntos de arquivos (globs) ao registrar um grande número de arquivos. Exemplo:

      reshuffle: true
      elements:
        -   gs://BUCKET_NAME/restaurant-data/2023/*.parquet
        -   gs://BUCKET_NAME/restaurant-data/2024/*.parquet
      
    3. Clique em Concluído.

  5. Na seção Transformações:

    1. Clique na seção de transformação IcebergAddFiles para abrir.

    2. No campo Tabela do Iceberg, insira o namespace e o nome da tabela. Por exemplo: NAMESPACE .TABLE_NAME .

    3. Em Propriedades do catálogo, configure os seguintes itens:

      1. warehouse: o local do Cloud Storage do seu catálogo. Por exemplo, gs://CATALOG_PATH.

      2. header.x-goog-user-project: ID do projeto Google Cloud :PROJECT_ID.

      3. Clique em Concluído.

    4. Se você estiver migrando do Amazon S3 ou do Azure Blob Storage, será necessário fornecer configurações adicionais para copiar arquivos Parquet para o Cloud Storage. Isso não é necessário se os arquivos já estiverem no Cloud Storage.

      1. Clique na seção de transformação CopyFilesToGCS para abrir.

      2. Defina o valor do parâmetro de configuração gcs_file_path para fornecer o bucket do Cloud Storage totalmente qualificado em que os arquivos temporários serão copiados. Recomendamos usar o mesmo bucket do Cloud Storage usado pelo data warehouse do Lakehouse.

      3. Clique em Concluído.

      4. Clique na seção Opções do Dataflow para abrir.

      5. Se os arquivos Parquet estiverem no Amazon S3, clique em adicionar outras opções de pipeline para fornecer ao Apache Beam opções de pipeline relacionadas ao S3. Por exemplo, s3_region_name, s3_access_key_id, s3_secret_access_key e os valores correspondentes.

      6. Se os arquivos Parquet estiverem no Azure Blob Storage, clique em Adicionar outras opções de pipeline para fornecer ao Apache Beam opções de pipeline relacionadas ao Azure. Por exemplo, azure_connection_string, blob_service_endpoint, azure_managed_identity_client_id e os valores correspondentes.

  6. Na seção Coletores:

    1. Clique no coletor Write results para abrir.

    2. No campo Local do JSON, especifique o local e o nome do arquivo do Cloud Storage para gravar os resultados de erros. Exemplo:

      gs://BUCKET_NAME/errors/errors.json
      
    3. Clique em Concluído.

  7. Na seção Opções do Dataflow, clique em Executar job.

Se você precisar personalizar ainda mais o pipeline do Dataflow usado para registrar arquivos Parquet, use o formulário do criador de jobs ou o editor YAML.

Examinar a saída do job

Depois que o job for concluído, verifique 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, verifique o arquivo de registro de erros JSON no Cloud Storage para mais detalhes.

    Acessar buckets

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

    Acessar o BigQuery

  4. No editor de consultas, insira uma consulta SQL para inspecionar a tabela. É possível usar a convenção PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME 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