Option 1: Load data with the Snowpipe REST API¶
Este tópico descreve como chamar os pontos de extremidade REST públicos para carregar dados e recuperar relatórios do histórico de carregamento. As instruções assumem que você tenha completado as instruções de configuração em Data loading preparation using the Snowpipe REST API.
Load data¶
O carregamento é feito em duas etapas:
- Etapa 1:
Prepare seus arquivos de dados:
Estágio interno: Use o comando PUT para preparar seus arquivos.
Estágio externo: Use as ferramentas do cliente fornecidas pelo provedor da nuvem para copiar seus arquivos para o local do estágio (Amazon S3, Google Cloud Storage ou Microsoft Azure).
- Etapa 2:
Envie uma solicitação ao ponto de extremidade REST insertFiles para carregar os arquivos de dados preparados.
Para sua conveniência, neste tópico são fornecidos programas de amostra Java e Python que ilustram como enviar um ponto de extremidade REST.
Programa de amostra para o SDK Java¶
Este exemplo utiliza as APIs Bouncy Castle Crypto. A fim de compilar e executar esse exemplo, você deve incluir os seguintes arquivos JAR em seu classpath:
o arquivo JAR do provedor (
bcprov-jdkversions.jar)o arquivo JAR PKIX / CMS / EAC / PKCS / OCSP / TSP / OPENSSL (
bcpkix-jdkversions.jar)
onde versions especifica as versões do arquivo JDK compatíveis com o arquivo JAR.
Antes de compilar o código de amostra, substitua os seguintes valores de espaço reservado:
PRIVATE_KEY_FILE = "/<caminho>/rsa_key.p8"Especifique o caminho local para o arquivo de chave privada que você criou em Use key pair authentication & key rotation (em Data loading preparation using the Snowpipe REST API).
return "<senha_de_chave_privada>"emgetPrivateKeyPassphrase()Se você gerou uma chave criptografada, implemente o método
getPrivateKeyPassphrase()para retornar a senha para descriptografar essa chave.host = "<identificador_de_conta>.snowflakecomputing.com"Especifique as informações de seu host na forma de um URL.
O formato preferido do identificador de conta é o seguinte:
organization_name-account_nameNomes de sua conta e organização no Snowflake. Para obter mais detalhes, consulte Formato 1 (preferido): Nome da conta em sua organização.
Alternativamente, especifique seu localizador de contas, juntamente com a região e a plataforma de nuvem onde a conta é hospedada, se necessário. Para obter mais detalhes, consulte Formato 2: Localizador de conta em uma região..
user = "<nome_de_login_de_usuário>"Especifique seu nome de login Snowflake.
pipe = "<nome_db>.<nome_de_esquema>.<nome_de_canal>"Especifique o nome totalmente qualificado do canal a ser usado para carregar os dados.
files.add("<caminho>/<nome_de_arquivo>", <tamanho_do_arquivo_em_bytes>)Especifique o caminho para seus arquivos a serem carregados na lista de objetos de arquivo.
Opcionalmente, especifique o tamanho de cada arquivo, em bytes, para evitar atrasos quando o Snowpipe calcular as operações necessárias para carregar os dados.
O caminho que você especificar deve ser relativo ao estágio onde os arquivos estão localizados. Inclua o nome completo de cada arquivo, incluindo a extensão do arquivo. Por exemplo, um arquivo CSV que é comprimido com gzip pode ter a extensão
.csv.gz.
Programa de amostra para o SDK Python¶
Antes de executar o código de amostra, substitua os seguintes valores de espaço reservado:
<caminho_de_chave_privada>Especifique o caminho local para o arquivo de chave privada que você criou em Use key pair authentication & key rotation (em Data loading preparation using the Snowpipe REST API).
return "<senha_de_chave_privada>"emget_private_key_passphrase()Se você gerou uma chave criptografada, implemente a função
get_private_key_passphrase()para retornar a senha para descriptografar essa chave.account='<identificador_de_conta>'Especifique o identificador único para sua conta (fornecido pela Snowflake). Consulte a descrição
host.host='<identificador_de_conta>.snowflakecomputing.com'Especifique o nome de host exclusivo de sua conta Snowflake.
O formato preferido do identificador de conta é o seguinte:
organization_name-account_nameNomes de sua conta e organização no Snowflake. Para obter mais detalhes, consulte Formato 1 (preferido): Nome da conta em sua organização.
Alternativamente, especifique seu localizador de contas, juntamente com a região e a plataforma de nuvem onde a conta é hospedada, se necessário. Para obter mais detalhes, consulte Formato 2: Localizador de conta em uma região..
user='<user_login_name>'Especifique seu nome de login Snowflake.
pipe='<db_name>.<schema_name>.<pipe_name>'Especifique o nome totalmente qualificado do canal a ser usado para carregar os dados.
file_list=['<path>/<filename>', '<path>/<filename>']|staged_file_list=[StagedFile('<path>/<filename>', <file_size_in_bytes>), StagedFile('<path>/<filename>', <file_size_in_bytes>)]Especifique o caminho para seus arquivos a serem carregados na lista de objetos de arquivo.
O caminho que você especificar deve ser relativo ao estágio onde os arquivos estão localizados. Inclua o nome completo de cada arquivo, incluindo a extensão do arquivo. Por exemplo, um arquivo CSV que é comprimido com gzip pode ter a extensão
.csv.gz.Opcionalmente, especifique o tamanho de cada arquivo, em bytes, para evitar atrasos quando o Snowpipe calcular as operações necessárias para carregar os dados.
View the load history¶
O Snowflake fornece pontos de extremidade REST e uma função de tabela Snowflake Information Schema para visualizar seu histórico de carregamento:
Pontos de extremidade REST:
Função de tabela do Information Schema:
Exibição do Account Usage.
Observe que a consulta da função de tabela do Information Schema ou da exibição do Account Usage, ao contrário de chamar os pontos de extremidade REST, requer um warehouse em funcionamento.
Delete staged files¶
Exclua os arquivos preparados depois de carregar os dados com sucesso e não precisar mais dos arquivos. Para obter instruções, consulte Exclusão de arquivos preparados depois que o Snowpipe carrega os dados.