Configurar tabelas do Apache Iceberg no BigQuery

Nesta página, descrevemos como configurar o Datastream para replicação em tabelas do Apache Iceberg no BigQuery.

As tabelas do Apache Iceberg oferecem a mesma experiência totalmente gerenciada das tabelas padrão do BigQuery, mas armazenam dados em buckets do Cloud Storage de propriedade do cliente no formato de tabela do Apache Iceberg e de arquivo Parquet. Você pode consultar e analisar dados usando os recursos do BigQuery, mantendo os dados nos seus próprios buckets de armazenamento.

Metadados da tabela

O Datastream anexa uma coluna STRUCT chamada datastream_metadata a cada tabela gravada no destino do BigQuery.

A coluna datastream_metadata contém os seguintes campos:

  • UUID: esse campo tem o tipo de dados STRING.
  • SOURCE_TIMESTAMP: esse campo tem o tipo de dados INTEGER.
  • CHANGE_SEQUENCE_NUMBER: esse campo tem o tipo de dados STRING. É um número de sequência interno usado pelo Datastream para cada evento de mudança.
  • CHANGE_TYPE: esse campo tem o tipo de dados STRING. Ele indica o tipo do evento de mudança. Para o modo de gravação somente de anexação, o valor é INSERT.
  • SORT_KEYS: esse campo contém uma matriz de valores STRING. Você pode usar os valores para classificar os eventos de mudança.

Configurar o streaming para tabelas do Apache Iceberg

Para configurar o fluxo para ingerir dados em tabelas do Apache Iceberg:

  1. Crie um bucket do Cloud Storage para armazenar seus dados.
  2. Crie uma conexão a recursos do Cloud no BigQuery. Para informações sobre como criar esse tipo de conexão, consulte Criar e configurar uma conexão a recursos do Cloud.
  3. Consiga o identificador da conta de serviço de conexão:

    bq show --location=LOCATION --connection --project_id=PROJECT_ID
    CONNECTION_NAME
    
  4. Conceda à sua conexão a recursos do Cloud acesso ao bucket do Cloud Storage criado. Para fazer isso, adicione a permissão do IAM storage.admin à conta de serviço da conexão:

    gcloud storage buckets add-iam-policy-binding gs://YOUR_GCS_BUCKET \
    --member=serviceAccount:YOUR_SERVICE_ACCOUNT_ID \
    --role=roles/storage.admin
    
  5. Crie um fluxo de tabelas do Apache Iceberg.

    Para informações sobre como criar um fluxo de tabelas do Apache Iceberg usando o console do Google Cloud , consulte Criar um fluxo.

    Para informações sobre como criar uma solicitação para transmitir dados para tabelas do Apache Iceberg usando REST, Google Cloud CLI ou Terraform, consulte Gerenciar streams usando a API.

A seguir