SDK do catálogo Snowflake¶
O Snowflake Catalog SDK está disponível para Apache Iceberg™ versões 1.2.0 ou posteriores.
Com o Snowflake Catalog SDK, é possível consultar tabelas Iceberg usando um mecanismo de terceiros, como Apache Spark™ ou Trino.
Operações de catálogo com suporte¶
O SDK oferece suporte aos seguintes comandos para navegar nos metadados do Iceberg no Snowflake:
SHOW NAMESPACES
USE NAMESPACE
SHOW TABLES
USE DATABASE
USE SCHEMA
O SDK atualmente suporta apenas operações de leitura (instruções SELECT).
Instalação e conexão¶
Para instalar o Snowflake Catalog SDK, baixe a versão mais recente das bibliotecas Iceberg.
Antes de poder usar o Snowflake Catalog SDK, você precisa de um banco de dados Snowflake com uma ou mais tabelas Iceberg. Para criar uma tabela Iceberg, consulte Criar uma tabela Apache Iceberg™ no Snowflake.
Depois de estabelecer uma conexão e o SDK confirmar que os metadados do Iceberg estão presentes, o Snowflake acessa os dados do Parquet usando o volume externo associado à(s) tabela(s) Iceberg.
Exemplos usando o Spark¶
Nota
Para saber mais sobre como usar o Trino com o Snowflake Catalog SDK, consulte a documentação do Trino.
Para ler os dados da tabela com SDK, comece configurando as seguintes propriedades para seu cluster Spark:
Nota
Você pode usar qualquer parâmetro de conexão do driver JDBC compatível com Snowflake em sua configuração usando a seguinte sintaxe: --conf spark.sql.catalog.snowflake_catalog.jdbc.property-name=property-value
Depois de configurar seu cluster Spark, você poderá verificar quais tabelas estão disponíveis para consulta. Por exemplo:
Então você pode selecionar uma tabela para consultar.
Você pode usar a estrutura DataFrame com linguagens como Python e Scala para consultar dados.
Nota
Se você receber erros de leitura vetorizada ao executar consultas, poderá desativar as leituras vetorizadas para sua sessão configurando: spark.sql.iceberg.vectorization.enabled=false. Para continuar usando leituras vetorizadas, você pode definir o parâmetro STORAGE_SERIALIZATION_POLICY.
Armazenamento em cache de consulta¶
Quando você emite uma consulta, o Snowflake armazena o resultado em cache dentro de um determinado período (90 segundos por padrão). Você pode ter latência até esse período. Se você planeja acessar dados programaticamente para fins de comparação, defina a propriedade spark.sql.catalog.cache-enabled como false para desativar o armazenamento em cache.
Se seu aplicativo for projetado para tolerar uma quantidade específica de latência, você poderá usar a seguinte propriedade para especificar o período de latência: spark.sql.catalog.cache.expiration-interval-ms.
Limitações¶
As seguintes limitações se aplicam ao Snowflake Catalog SDK e estão sujeitas a alterações:
O SDK atualmente suporta apenas operações de leitura (instruções SELECT).
Somente o Apache Spark e o Trino são compatíveis com a leitura de tabelas Iceberg.
Você não pode usar SDK para acessar tabelas Snowflake que não sejam Iceberg.