Criação de uma tabela Iceberg

Este tópico aborda como criar tabelas Iceberg no Snowflake para diferentes Opções de catálogo Iceberg. Você pode criar uma tabela Iceberg usando o comando CREATE ICEBERG TABLE.

Nota

Para criar uma tabela Iceberg, você deve ter um warehouse em execução especificado como o warehouse atual da sua sessão. Podem ocorrer erros se nenhum warehouse em execução for especificado ao criar uma tabela Iceberg. Para obter mais informações, consulte Como trabalhar com warehouses.

Criação de uma tabela Iceberg com Snowflake como catálogo

Para criar uma tabela Iceberg com Snowflake como catálogo, você deve especificar um volume externo e um local base (diretório no volume externo) onde o Snowflake pode gravar dados e metadados da tabela. Para obter instruções sobre como criar um volume externo, consulte Configuração de um volume externo para tabelas Iceberg.

Para definir colunas de tabela, você pode usar tipos de dados Iceberg. Para obter mais informações, consulte Tipos de dados da tabela Iceberg.

O exemplo a seguir cria uma tabela Iceberg com Snowflake como catálogo Iceberg.

CREATE OR REPLACE ICEBERG TABLE my_iceberg_table (
    boolean_col boolean,
    int_col int,
    long_col long,
    float_col float,
    double_col double,
    decimal_col decimal(10,5),
    string_col string,
    fixed_col fixed(10),
    binary_col binary,
    date_col date,
    time_col time,
    timestamp_ntz_col timestamp_ntz(6),
    timestamp_ltz_col timestamp_ltz(6)
  )
  CATALOG = 'SNOWFLAKE'
  EXTERNAL_VOLUME = 'my_ext_vol'
  BASE_LOCATION = 'my/relative/path/from/extvol';
Copy

Nota

Como alternativa, use a sintaxe variante. Para obter mais informações, consulte CREATE TABLE … AS SELECT e CREATE ICEBERG TABLE … LIKE.

Depois de criar uma tabela que usa Snowflake como catálogo, você pode realizar ações como:

Para obter mais informações, consulte Gerenciamento de uma tabela Iceberg.

Criação de uma tabela Iceberg com integração de catálogo

Para criar uma tabela Iceberg que use um catálogo externo ou nenhum catálogo, você deve especificar um volume externo e uma integração de catálogo. Se você usar um catálogo Iceberg externo, também poderá precisar especificar parâmetros adicionais. Por exemplo, ao usar o AWS Glue como catálogo, você deve especificar um nome de tabela de catálogo.

Quando você cria uma tabela Iceberg com integração de catálogo, o Snowflake executa uma atualização inicial de metadados. Você também pode atualizar manualmente os metadados da tabela usando o comando ALTER ICEBERG TABLE para sincronizar os metadados com as alterações mais recentes da tabela. Para obter mais informações, consulte Atualização manual dos metadados da tabela.

Criação de uma tabela Iceberg com AWS Glue como catálogo

Importante

Você deve configurar uma integração de catálogo para o AWS Glue para estabelecer uma relação de confiança entre o Snowflake e o catálogo de dados do Glue. Para obter instruções, consulte Configuração de uma integração de catálogo para tabelas Iceberg.

O exemplo a seguir cria uma tabela Iceberg que usa o catálogo de dados do AWS Glue, especificando o nome de uma integração de catálogo que foi configurada para o AWS Glue (glueCatalogInt) e um valor para a propriedade CATALOG_TABLE_NAME.

CREATE ICEBERG TABLE myGlueTable
  EXTERNAL_VOLUME='glueCatalogVolume'
  CATALOG='glueCatalogInt'
  CATALOG_TABLE_NAME='myGlueTable';
Copy

Depois de criar uma tabela com AWS Glue como catálogo, você poderá realizar ações como:

Criação de uma tabela Iceberg a partir de arquivos Iceberg no armazenamento de objetos

O exemplo a seguir cria uma tabela Iceberg a partir de metadados Iceberg no armazenamento em nuvem externo, especificando um caminho relativo para os metadados da tabela no volume externo (METADATA_FILE_PATH).

CREATE ICEBERG TABLE myIcebergTable
  EXTERNAL_VOLUME='icebergMetadataVolume'
  CATALOG='icebergCatalogInt'
  METADATA_FILE_PATH='path/to/metadata/v1.metadata.json';
Copy

Depois de criar uma tabela com arquivos no armazenamento de objetos, você poderá executar ações como: