Snowpipe Streaming Classic com tabelas Apache Iceberg™¶
Com o Snowflake Ingest SDK versões 3.0.0 e posteriores, o Snowpipe Streaming pode ingerir dados em tabelas Apache Iceberg gerenciadas pelo Snowflake. O Snowpipe Streaming Ingest Java SDK oferece suporte ao carregamento em tabelas Snowflake padrão (não Iceberg) e em tabelas Iceberg.
Os dados enviados por meio da Snowpipe Streaming API ingerem linhas por meio de um ou mais canais, que são automaticamente liberados de acordo com o MAX_CLIENT_LAG especificado.
A propriedade MAX_CLIENT_LAG controla a latência da ingestão de streaming:
Para tabelas Snowflake padrão (não Iceberg), o
MAX_CLIENT_LAGpadrão é 1 segundo.Para tabelas Iceberg, o
MAX_CLIENT_LAGpadrão é 30 segundos.
O Snowflake se conecta ao seu local de armazenamento usando um volume externo, e o Snowpipe Streaming libera os dados para criar arquivos de dados Parquet compatíveis com o Iceberg com os metadados correspondentes do Iceberg. Esses arquivos de dados e metadados do Parquet são carregados no local de armazenamento em nuvem externo configurado e disponibilizados como tabelas Iceberg gerenciadas pelo Snowflake e registradas no Snowflake como o catálogo Iceberg.
Configurações¶
Crie a tabela Iceberg gerenciada pelo Snowflake com o volume externo configurado e especifique o nome da tabela Iceberg na solicitação de canal aberto.
Para ativar o Snowpipe Streaming com a tabela Iceberg gerenciada pelo Snowflake, você precisa definir a seguinte propriedade ENABLE_ICEBERG_STREAMING=true no arquivo profile.json.
Tipos de dados suportados¶
O Snowflake Ingest SDK é compatível com a maioria dos tipos de dados do Iceberg, da mesma forma que o Snowflake é compatível atualmente. Para obter mais informações, consulte Tipos de dados para tabelas Apache Iceberg™.
O Snowflake Ingest SDK oferece suporte a ingestão nos três tipos de dados estruturados: ARRAY estruturado, OBJECT estruturado e MAP estruturado.
Notas de uso¶
O padrão
MAX_CLIENT_LAGpara streaming em tabelas Iceberg gerenciadas pelo Snowflake é de 30 segundos para garantir arquivos Parquet otimizados. É possível definir a propriedade com um valor mais baixo, mas recomendamos que você não faça isso, a menos que haja uma taxa de transferência significativamente alta.O Ingest SDK oferece suporte à compactação automática sem servidor de pequenos arquivos Parquet de forma assíncrona.
O mesmo aplicativo cliente não pode ser usado para tabelas Iceberg e não Iceberg simultaneamente.
As tabelas Iceberg gerenciadas pelo Snowflake não são compatíveis com criptografia do lado do cliente.
Os arquivos Parquet compatíveis com o Iceberg são criados com base no STORAGE_SERIALIZATION_POLICY especificado na tabela Iceberg.
O Snowpipe Streaming é compatível apenas com o Snowflake como o catálogo do Iceberg, mas também é compatível com a sincronização com o Snowflake Open Catalog.
O Snowflake se conecta ao seu local de armazenamento usando um volume externo. Você é responsável pelo armazenamento de dados para tabelas Iceberg.
Only Iceberg v2 tables are supported. Iceberg v3 tables aren’t supported. To use Snowpipe Streaming with Iceberg v3 tables, you must use Snowpipe Streaming with high-performance architecture.
Limitações¶
As limitações do Snowpipe Streaming e limitações das tabelas Iceberg também se aplicam ao Snowpipe Streaming com tabelas Iceberg.