Inserir dados em uma tabela

A inserção de dados anexa novos registros à tabela do Apache Iceberg.

Antes de começar

  1. Verifique se o faturamento está ativado para o Google Cloud projeto.

  2. Ative a API BigLake.

    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 com o papel de proprietário (roles/owner). Caso contrário, você pode receber essa permissão com o papel de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    Ativar a API

  3. Configure o catálogo de ambientes de execução do Lakehouse com o endpoint do catálogo REST do Apache Iceberg.

Funções exigidas

Para ter as permissões necessárias para inserir dados em uma tabela, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto e no bucket de armazenamento:

  • Gravar dados de tabela no modo de fornecimento de credenciais: editor do BigLake (roles/biglake.editor) - o projeto
  • Gravar dados de tabela no modo de não fornecimento de credenciais:
    • Editor do BigLake (roles/biglake.editor) - o projeto
    • Usuário de objetos do Storage (roles/storage.objectUser) - o bucket do Cloud Storage

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Recursos e suporte da tabela

Ao usar tabelas no catálogo de ambientes de execução do Lakehouse, é útil entender os diferentes tipos de tabela e os recursos de ativação de recursos. Para saber mais sobre o uso de tabelas do Apache Iceberg, consulte Visão geral das tabelas do Apache Iceberg.

Tabelas do Iceberg com suporte

Somente as tabelas do Apache Iceberg V2 (GA) e V3 (pré-lançamento) são compatíveis. As tabelas do Iceberg V1 não são compatíveis. Para fazer upgrade das tabelas V1 atuais, consulte Fazer upgrade das tabelas do Iceberg V1 para V2.

Usar opções de tabela (pré-lançamento)

É possível ativar o uso de recursos gerenciados do BigQuery, como a linguagem de manipulação de dados (DML) do BigQuery e o gerenciamento automático de tabelas, configurando propriedades específicas da tabela. Esses recursos são ativados de maneiras diferentes, dependendo de onde a tabela é criada:

  • No BigQuery:a DML do BigQuery e o gerenciamento automático de tabelas são ativados por padrão.
  • De mecanismos de código aberto:para ativar, é necessário configurar explicitamente as propriedades da tabela. Consulte Configurar opções de tabela para mais informações.

Inserir dados na tabela

Insira dados de amostra na tabela.

Para inserir dados do BigQuery, a tabela precisa ter a DML do BigQuery ativada (gcp.biglake.bigquery-dml.enabled = true). Consulte Configurar opções de tabela para instruções detalhadas.

Spark

spark.sql("INSERT INTO TABLE_NAME VALUES (1, \"first row\"), (2, \"second row\"), (3, \"third row\");")

Para ativar a interoperabilidade de leitura/gravação e o gerenciamento de tabelas (pré-lançamento), adicione as propriedades à cláusula TBLPROPERTIES:

TBLPROPERTIES (
  'gcp.biglake.bigquery-dml.enabled' = true,
  'gcp.biglake.table-management.enabled' = true
)

Trino

INSERT INTO TABLE_NAME VALUES (1, 'first row'), (2, 'second row'), (3, 'third row');

Para ativar a interoperabilidade de leitura/gravação e o gerenciamento de tabelas (pré-lançamento), adicione essas propriedades à cláusula WITH:

WITH (
  "gcp.biglake.bigquery-dml.enabled" = 'true',
  "gcp.biglake.table-management.enabled" = 'true'
)

BigQuery

Para inserir dados em uma tabela do Apache Iceberg no catálogo de ambientes de execução do Lakehouse pelo BigQuery, a tabela precisa ter a DML do BigQuery ativada. Use a seguinte instrução INSERT do GoogleSQL:

INSERT INTO `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` VALUES (1, "foo");

Substitua:

  • PROJECT_ID: o Google Cloud ID do projeto.
  • CATALOG_ID: o ID do catálogo de ambientes de execução do Lakehouse.
  • NAMESPACE: o nome do namespace do Iceberg.
  • TABLE_NAME: o nome da tabela do Iceberg.

A seguir