Tutorial: introdução ao SDK da arquitetura de alto desempenho do Snowpipe Streaming¶
Este tutorial fornece instruções passo a passo para configurar e executar um aplicativo de demonstração que utiliza a nova arquitetura de alto desempenho com o snowpipe-streaming SDK.
Pré-requisitos¶
Antes de executar a demonstração, certifique-se de atender aos seguintes pré-requisitos:
Conta Snowflake: Verifique se você tem acesso a uma conta Snowflake. Você precisará de um usuário com privilégios suficientes (por exemplo, ACCOUNTADMIN ou USERADMIN para a configuração inicial) para criar o usuário dedicado e a função personalizada detalhadas em Etapa 1: configure os objetos Snowflake.
Acesso à rede: certifique-se de que sua rede permita conectividade de saída com o Snowflake e o Amazon S3, Google Cloud Platform (GCS) ou Armazenamento de Blobs do Azure. Ajuste as regras de firewall, se necessário, porque o SDK faz chamadas de API REST para o Snowflake e para o seu provedor de armazenamento em nuvem.
Para verificar a conectividade de rede, use o seguinte comando:
Ambiente de desenvolvimento Java: instale o Java 11 ou posterior e o Maven para o gerenciamento de dependências.
Python instale o Python versão 3.9 ou posterior.
Requisitos do sistema: o SDK requer a versão do glibc 2.26 ou posterior. Você pode verificar a versão atual do glibc com:
SDKs do Snowpipe Streaming e o código de exemplo:
Para AWS: obter o Java SDK ou Python SDK (qualquer versão).
Para Azure: requer o SDK versão 1.1.0 ou posterior.
Para GCP: requer o SDK versão 1.1.0 ou posterior.
Baixe o código de amostra da sua linguagem preferida em Exemplos do SDK do Snowpipe Streaming no repositório GitHub.
Introdução¶
Esta seção descreve as etapas necessárias para configurar e executar o aplicativo de demonstração.
Etapa 1: configure os objetos Snowflake¶
Para usar o snowpipe-streaming SDK, você deve criar uma tabela de destino em seu ambiente Snowflake. Ao contrário da arquitetura clássica, a arquitetura de alto desempenho requer um objeto PIPE para ingestão de dados. Este tutorial usa o canal padrão criado automaticamente no momento da ingestão para sua tabela de destino. Se você precisar de recursos adicionais, como transformações em andamento ou clustering no momento da ingestão, consulte CREATE PIPE.
Gere um par de chaves para autenticação¶
Gere um par de chaves públicas e privadas para autenticação usando OpenSSL. Para obter mais informações, consulte Autenticação de pares de chaves e rotação de pares de chaves.
Execute os seguintes comandos em seu terminal para gerar as chaves:
Importante
Salve os arquivos de rsa_key.p8 (chave privada) e rsa_key.pub (chave pública) gerados com segurança. Você usará essas chaves nas etapas de autenticação subsequentes.
Criação de banco de dados, esquema e tabela e configuração da autenticação do usuário¶
Execute os seguintes comandos SQL em sua conta Snowflake; por exemplo, usando o Snowsight ou a Snowflake CLI. Você deve ter uma função com permissões para criar usuários, funções e bancos de dados, como ACCOUNTADMIN ou USERADMIN, para as primeiras linhas e, depois, alternar para a nova função. Substitua os espaços reservados, como MY_USER, MY_ROLE, MY_DATABASE etc., pelos nomes desejados.
Nota
A coluna data na tabela de amostra é um tipo VARIANT. O SDK de alto desempenho requer que os dados dessa coluna sejam passados como um objeto nativo, como um Mapa Java ou dicionário Python. Passar uma cadeia de caracteres JSON bruta resulta no armazenamento dos dados como uma cadeia de caracteres literal.
Etapa 2: configure um perfil de autenticação¶
O aplicativo de demonstração requer um arquivo profile.json para armazenar as configurações de conexão, inclusive os detalhes de autenticação. O SDK usa autenticação de par de chaves para conexões seguras.
Crie um arquivo de configuração de perfil¶
Crie ou atualize o arquivo profile.json no diretório raiz do seu projeto de demonstração.
profile.json template¶
Substitua os espaços reservados:
MY_USER: Seu nome de usuário do Snowflake configurado em Etapa 1: configure os objetos Snowflake.your_account_identifier: seu identificador de conta Snowflake (por exemplo,xy12345).rsa_key.p8: O arquivo de chave privada que você gerou em Etapa 1: configure os objetos Snowflake.MY_ROLE: A função dedicada (MY_ROLE) que você criou e concedeu ao usuário em Etapa 1: configure os objetos Snowflake.
Etapa 3: configure o projeto de demonstração¶
Baixar: código Java de amostra
Adicionar a dependência JAR
Para incluir o SDK do Snowpipe Streaming, adicione a seguinte dependência ao pom.xml do Maven. O Maven baixa automaticamente o JAR do repositório público.
Importante
Substitua YOUR_SDK_VERSION pela versão específica disponível no Maven Central.
Baixar: código Python de amostra
Adicionar a dependência Python
O SDK requer o Python versão 3.9 ou posterior.
Para instalar o SDK do Snowpipe Streaming para Python, execute o seguinte comando:
Para obter mais informações sobre o pacote, consulte PyPI.
Coloque o arquivo de perfil¶
Certifique-se de que o arquivo profile.json que você configurou em Etapa 2: configure um perfil de autenticação está localizado no diretório raiz do seu projeto.
Etapa 4: use o exemplo de código fornecido e execute o aplicativo de demonstração¶
No seu terminal, navegue até o diretório raiz do projeto.
Criar e executar
Crie o projeto:
Execute a classe principal:
Executar o aplicativo de demonstração
Execute a demonstração do Python:
Etapa 5: verifique os dados¶
Após executar a demonstração, verifique os dados ingeridos no Snowflake:
Verifique se os dados foram ingeridos como um objeto estruturado em vez de uma cadeia de caracteres literal:
Se
data_typeretornarOBJECT, a ingestão está correta.Se
data_typeretornarVARCHAR, seu aplicativo está passando uma cadeia de caracteres literal que não está sendo analisada.