Carregamento de dados do armazenamento em nuvem: Amazon S3¶
Introdução¶
Este tutorial mostra como carregar dados do armazenamento em nuvem no Snowflake usando SQL. Você usa uma planilha modelo em Snowsight para concluir essas tarefas. Você pode escolher qual provedor de nuvem deseja usar: Amazon S3, Microsoft Azure ou Google Cloud Storage (GCS). A planilha contém comandos SQL personalizados para compatibilidade com cada tipo de armazenamento.
Atenção
O exemplo fornecido neste tutorial é específico do Amazon S3 e mostra comandos SQL que funcionam para carregar dados de um bucket S3.
Nota
A Snowflake fatura uma quantidade mínima para o armazenamento em disco utilizado para os dados das amostras neste tutorial. Este tutorial fornece passos para descartar um banco de dados e minimizar o custo de armazenamento.
O Snowflake requer um warehouse virtual para carregar os dados e executar consultas. Um warehouse virtual em execução consome créditos do Snowflake. Neste tutorial, você usará uma conta de avaliação de 30 dias, que fornece créditos gratuitos, portanto você não terá custos.
O que você aprenderá¶
Neste tutorial você aprenderá a:
Use uma função que tenha privilégios para criar e usar os objetos Snowflake exigidos por este tutorial.
Use um warehouse para acessar recursos.
Crie um banco de dados e um esquema.
Crie uma tabela.
Crie uma integração de armazenamento para sua plataforma em nuvem.
Crie um estágio para sua integração de armazenamento.
Carregue dados na tabela a partir do estágio.
Consulte os dados na tabela.
Pré-requisitos¶
Este tutorial considera o seguinte:
Você tem um navegador compatível.
Você tem uma conta de avaliação. Se você ainda não tem uma conta de avaliação, inscreva-se para uma avaliação gratuita. Você pode escolher qualquer região de nuvem do Snowflake.
Você tem uma conta que pode usar para carregar dados em massa de um dos seguintes provedores de nuvem:
AWS S3. Consulte Carregamento em massa a partir do Amazon S3.
Microsoft Azure. Consulte Carregamento em massa a partir do Microsoft Azure.
Google Cloud Storage. Consulte Carregamento em massa a partir do Google Cloud Storage.
Nota
Este tutorial está disponível apenas para usuários com conta de avaliação. A planilha de exemplo não está disponível para outros tipos de contas.
Etapa 1. Faça login usando Snowsight¶
Para acessar a Snowsight pela internet pública, faça o seguinte:
Em um navegador da Web compatível, abra https://app.snowflake.com.
Forneça seu identificador de conta ou URL de conta. Se você tiver feito login anteriormente na Snowsight, poderá ver um nome de conta que pode ser selecionado.
Faça login usando as credenciais de sua conta Snowflake.
Etapa 2. Abra a planilha Carregar dados do armazenamento em nuvem¶
Você pode usar planilhas para escrever e executar comandos SQL em seu banco de dados. Sua conta de avaliação tem acesso a um modelo de planilha para este tutorial. A planilha contém os comandos SQL que você executará para criar objetos de banco de dados, carregar dados e consultar os dados. Por se tratar de uma planilha modelo, você será convidado a inserir seus próprios valores para determinados parâmetros SQL. Para obter mais informações sobre planilhas, consulte Introdução a planilhas.
A planilha deste tutorial não está pré-carregada na conta de avaliação. Para abrir a planilha deste tutorial, siga estas etapas:
Se você estiver fazendo login na sua conta de avaliação Snowsight pela primeira vez, selecione Start em Load data into Snowflake na tela Where do you want to start?.
Se você saiu da tela Where do you want to start?, vá para a guia Worksheets e selecione Continue no banner.
Clique em qualquer lugar no painel central denominado Load data from cloud storage.
O [Template] Load data from cloud storage worksheet é aberto e seu navegador é semelhante à imagem a seguir.
Etapa 3. Defina a função e o warehouse a serem usados¶
A função que você usa determina os privilégios que você tem. Neste tutorial, use a função de sistema ACCOUNTADMIN para poder visualizar e gerenciar objetos em sua conta. Para obter mais informações, consulte Uso da função ACCOUNTADMIN.
Um warehouse fornece os recursos de computação necessários para executar operações DML, carregar dados e executar consultas. Esses recursos incluem CPU, memória e armazenamento temporário. Sua conta de avaliação possui um warehouse virtual (compute_wh
) que você pode usar neste tutorial. Para obter mais informações, consulte Warehouses virtuais.
Para definir a função e o warehouse a serem usados, faça o seguinte:
Na planilha aberta, coloque o cursor na linha USE ROLE.
USE ROLE accountadmin;
No canto superior direito da planilha, selecione Run.
Nota
Neste tutorial, execute instruções SQL, uma de cada vez. Não selecione Run All.
Coloque o cursor na linha USE WAREHOUSE e selecione Run.
USE WAREHOUSE compute_wh;
Etapa 4. Configure uma tabela que você possa carregar¶
Um banco de dados é um repositório para seus dados. Os dados são armazenados em tabelas que você pode gerenciar e consultar. Um esquema é um agrupamento lógico de objetos de banco de dados, como tabelas e exibições. Por exemplo, um esquema pode conter os objetos de banco de dados necessários para um aplicativo específico. Para obter mais informações, consulte Bancos de dados, tabelas e exibições - Visão geral.
Para criar um banco de dados, um esquema e uma tabela que você possa carregar, faça o seguinte:
Na planilha aberta, coloque o cursor na linha CREATE OR REPLACE DATABASE, insira um nome para seu banco de dados e um comentário opcional e selecione Run. Por exemplo:
CREATE OR REPLACE DATABASE cloud_data_db COMMENT = 'Database for loading cloud data';
Coloque o cursor na linha CREATE OR REPLACE SCHEMA, insira um nome para seu esquema e um comentário opcional e selecione Run. Por exemplo:
CREATE OR REPLACE SCHEMA cloud_data_db.s3_data COMMENT = 'Schema for tables loaded from S3';
Coloque o cursor nas linhas CREATE OR REPLACE TABLE, complete a definição da tabela, adicione um comentário opcional e selecione Run. Por exemplo, a tabela a seguir contém seis colunas:
CREATE OR REPLACE TABLE cloud_data_db.s3_data.calendar ( full_date DATE ,day_name VARCHAR(10) ,month_name VARCHAR(10) ,day_number VARCHAR(2) ,full_year VARCHAR(4) ,holiday BOOLEAN ) COMMENT = 'Table to be loaded from S3 calendar data file';
Para confirmar que a tabela foi criada com sucesso, coloque o cursor na linha SELECT e selecione Run.
SELECT * FROM cloud_data_db.s3_data.calendar;
A saída mostra as colunas da tabela que você criou. Atualmente, a tabela não possui nenhuma linha.
Etapa 5. Crie uma integração de armazenamento¶
Antes de poder carregar dados do armazenamento em nuvem, você deve configurar uma integração de armazenamento específica para seu provedor de nuvem. O exemplo a seguir é específico para armazenamento Amazon S3.
As integrações de armazenamento são objetos Snowflake nomeados e de primeira classe que evitam a necessidade de passar credenciais explícitas de provedores de nuvens, tais como chaves secretas ou tokens de acesso. Os objetos de integração armazenam uma ID de usuário de gerenciamento de identidade e acesso (IAM) da AWS.
Para criar uma integração de armazenamento para Amazon S3, faça o seguinte:
Use o Console de gerenciamento AWS para criar uma política IAM e uma função IAM. Esses recursos fornecem acesso seguro ao seu bucket S3 para carregar dados. Você precisará desses recursos para criar uma integração de armazenamento no Snowflake. Depois de fazer login no console, conclua as etapas 1 e 2 em Opção 1: configuração de uma integração de armazenamento do Snowflake para acessar o Amazon S3.
Na planilha aberta, coloque o cursor nas linhas CREATE OR REPLACE STORAGE INTEGRATION, defina os parâmetros necessários e selecione Run. Por exemplo:
CREATE OR REPLACE STORAGE INTEGRATION s3_data_integration TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = 'S3' STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::631373164455:role/tutorial_role' ENABLED = TRUE STORAGE_ALLOWED_LOCATIONS = ('s3://snow-tutorial-bucket/s3data/');
Defina STORAGE_AWS_ROLE_ARN como o identificador exclusivo da função IAM que você criou anteriormente. Você pode encontrar esse valor em IAM > Roles no Console de gerenciamento AWS.
Coloque o cursor na linha DESCRIBE INTEGRATION, especifique o nome da integração de armazenamento que você criou e selecione Run.
DESCRIBE INTEGRATION s3_data_integration;
Este comando recupera o ARN e o ID externo para o usuário AWS IAM que foi criado automaticamente para sua conta Snowflake. Você usará esses valores para configurar permissões para Snowflake no Console de gerenciamento AWS.
A saída deste comando é semelhante a esta:
Coloque o cursor na linha SHOW INTEGRATIONS e selecione Run. Este comando retorna informações sobre a integração de armazenamento que você criou.
SHOW INTEGRATIONS;
A saída deste comando é semelhante a esta:
Use o Console de gerenciamento AWS para configurar permissões para o usuário IAM (o usuário que foi criado automaticamente para sua conta de avaliação) para acessar buckets de armazenamento. Siga a etapa 5 em Opção 1: configuração de uma integração de armazenamento do Snowflake para acessar o Amazon S3.
Se você estiver usando o Azure ou GCS, poderá encontrar os procedimentos de configuração equivalentes em Carregamento em massa a partir do Microsoft Azure e Carregamento em massa a partir do Google Cloud Storage.
Etapa 6. Crie um estágio¶
Um estágio é um local que contém arquivos de dados para carregar em um banco de dados Snowflake. Este tutorial cria um estágio que pode carregar dados de um tipo específico de armazenamento em nuvem, como um bucket S3.
Para criar um estágio, faça o seguinte:
Na planilha aberta, coloque o cursor nas linhas CREATE OR REPLACE STAGE, especifique um nome, a integração de armazenamento que você criou, o URL do bucket e o formato de arquivo correto e selecione Run. Por exemplo:
CREATE OR REPLACE STAGE cloud_data_db.s3_data.s3data_stage STORAGE_INTEGRATION = s3_data_integration URL = 's3://snow-tutorial-bucket/s3data/' FILE_FORMAT = (TYPE = CSV);
Retorne informações sobre o estágio que você criou:
SHOW STAGES;
A saída deste comando é semelhante a esta:
Etapa 7. Carregue dados do estágio¶
Carregue a tabela do estágio criado usando o comando COPY INTO <tabela>. Para obter mais informações sobre o carregamento de buckets S3, consulte Cópia de dados de um estágio S3.
Para carregar os dados na tabela, coloque o cursor nas linhas COPY INTO, especifique o nome da tabela, o estágio que você criou e o nome do arquivo (ou arquivos) que deseja carregar e selecione Run. Por exemplo:
COPY INTO cloud_data_db.s3_data.calendar FROM @cloud_data_db.s3_data.s3data_stage FILES = ('calendar.txt');
Seu resultado é semelhante à imagem a seguir.
Etapa 8. Consulte a tabela¶
Agora que os dados foram carregados, você pode executar consultas na tabela calendar
.
Para executar uma consulta na planilha aberta, selecione a linha ou linhas do comando SELECT e selecione Run. Por exemplo, execute a seguinte consulta:
SELECT * FROM cloud_data_db.s3_data.calendar;
Seu resultado é semelhante à imagem a seguir.
Etapa 9. Limpeza, resumo e recursos adicionais¶
Parabéns! Você concluiu com êxito este tutorial para contas de avaliação.
Reserve alguns minutos para ver um pequeno resumo e os pontos principais abordados no tutorial. Você também pode excluir os objetos criados no tutorial para liberar espaço. Por exemplo, você pode querer descartar a tabela que criou e carregou:
DROP TABLE calendar;
Contanto que eles não sejam mais necessários, você também poderá descartar outros objetos criados, como integração de armazenamento, estágio, banco de dados e esquema. Para obter mais detalhes, consulte Comandos DDL (linguagem de definição de dados).
Resumo e pontos principais¶
Em resumo, você usou um modelo de planilha pré-carregado em Snowsight para concluir as seguintes etapas:
Definir a função e o warehouse a serem usados.
Criar um banco de dados, esquema e tabela.
Criar uma integração de armazenamento e configurar permissões no armazenamento em nuvem.
Criar um estágio e carregar os dados do estágio na tabela.
Consultar os dados.
Aqui estão alguns pontos importantes a serem lembrados sobre o carregamento e a consulta de dados:
Você precisa das permissões necessárias para criar e gerenciar objetos na sua conta. Neste tutorial, você usa a função de sistema ACCOUNTADMIN para esses privilégios.
Esta função normalmente não é usada para criar objetos. Em vez disso, recomendamos a criação de uma hierarquia de funções alinhadas com as funções de negócios em sua organização. Para obter mais informações, consulte Uso da função ACCOUNTADMIN.
Você precisa de um warehouse para os recursos necessários para criar e gerenciar objetos e executar comandos SQL. Este tutorial usa o warehouse
compute_wh
incluído em sua conta de avaliação.Você criou um banco de dados para armazenar os dados e um esquema para agrupar logicamente os objetos do banco de dados.
Você criou uma integração de armazenamento e um estágio para carregar dados de um arquivo CSV armazenado em um bucket S3 do AWS.
Depois que os dados foram carregados em seu banco de dados, você os consultou usando uma instrução SELECT.
Qual é o próximo passo?¶
Continue aprendendo sobre o Snowflake com os seguintes recursos:
Conclua os outros tutoriais fornecidos pelo Snowflake:
Conheça os principais conceitos e recursos do Snowflake, bem como com os comandos SQL usados para carregar tabelas do armazenamento em nuvem:
Experimente os guias de início rápido do Tasty Bytes fornecidos pela Snowflake: