Configurar tabelas do Apache Iceberg no BigQuery

O Datastream permite replicar dados das suas origens em tabelas do Apache Iceberg no BigQuery. As tabelas do Apache Iceberg oferecem a mesma experiência totalmente gerenciada que as tabelas padrão do BigQuery, mas armazenam dados no formato Parquet nos seus próprios buckets do Cloud Storage. Essa configuração permite consultar e analisar seus dados usando o BigQuery e, ao mesmo tempo, manter o controle total sobre o armazenamento subjacente.

O Datastream só aceita streaming para tabelas do Apache Iceberg no modo de gravação somente com adição de dados. Para mais informações, consulte Configurar o modo de gravação.

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 alteração.
  • CHANGE_TYPE: esse campo tem o tipo de dados STRING. Ele indica o tipo do evento de alteração. Para o modo de gravação somente anexação, o valor é INSERT.
  • SORT_KEYS: esse campo contém uma matriz de valores STRING. É possível usar os valores para classificar os eventos de alteração.

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 em que você quer armazenar seus dados.
  2. Criar 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 da 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 que você criou. 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 stream de tabelas do Apache Iceberg.

    Para saber como criar um stream de tabelas do Apache Iceberg usando o console do Google Cloud , consulte Criar um stream.

    Para saber 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