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 dadosSTRING.SOURCE_TIMESTAMP: esse campo tem o tipo de dadosINTEGER.CHANGE_SEQUENCE_NUMBER: esse campo tem o tipo de dadosSTRING. É um número de sequência interno usado pelo Datastream para cada evento de alteração.CHANGE_TYPE: esse campo tem o tipo de dadosSTRING. 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 valoresSTRING. É 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:
- Crie um bucket do Cloud Storage em que você quer armazenar seus dados.
- 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.
Consiga o identificador da conta de serviço da conexão:
bq show --location=LOCATION --connection --project_id=PROJECT_ID CONNECTION_NAMEConceda à 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.adminCrie 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 CLIou Terraform, consulte Gerenciar streams usando a API.
A seguir
- Para saber mais sobre streams, consulte Ciclo de vida do stream.
- Para saber como criar um stream, consulte Criar um stream.
- Para saber como criar um perfil de conexão que pode ser usado com um stream de tabelas do Apache Iceberg, consulte Criar um perfil de conexão para o BigQuery.