Carregamento de dados do armazenamento em nuvem: Microsoft Azure

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 Microsoft Azure e mostra comandos SQL que funcionam para carregar dados de um contêiner do Azure.

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:

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:

  1. Em um navegador da Web compatível, abra https://app.snowflake.com.

  2. 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.

  3. 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:

  1. 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.

  2. 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.

SQL carrega da planilha de modelo de nuvem, que contém os comandos SQL para este tutorial, juntamente com comentários descritivos.

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:

  1. Na planilha aberta, coloque o cursor na linha USE ROLE.

    USE ROLE accountadmin;
    
    Copy
  2. No canto superior direito da planilha, selecione Run.

    Nota

    Neste tutorial, execute instruções SQL, uma de cada vez. Não selecione Run All.

  3. Coloque o cursor na linha USE WAREHOUSE e selecione Run.

    USE WAREHOUSE compute_wh;
    
    Copy

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:

  1. 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';
    
    Copy
  2. 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.azure_data
      COMMENT = 'Schema for tables loaded from Azure';
    
    Copy
  3. 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.azure_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 Azure calendar data file';
    
    Copy
  4. Para confirmar que a tabela foi criada com sucesso, coloque o cursor na linha SELECT e selecione Run.

    SELECT * FROM cloud_data_db.azure_data.calendar;
    
    Copy

    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 do armazenamento do Microsoft Azure.

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 um ID de usuário de gerenciamento de identidade e acesso do Azure (IAM) chamado registro de aplicativo.

Para criar uma integração de armazenamento para o Azure, faça o seguinte:

  1. Utilize o portal Azure para configurar um contêiner Azure para carregar dados. Para obter mais detalhes, consulte Configuração de um contêiner Azure para carregamento de dados.

  2. 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 azure_data_integration
      TYPE = EXTERNAL_STAGE
      STORAGE_PROVIDER = 'AZURE'
      AZURE_TENANT_ID = '075f576e-6f9b-4955-8e99-4086736225d9'
      ENABLED = TRUE
      STORAGE_ALLOWED_LOCATIONS = ('azure://tutorial99.blob.core.windows.net/snow-tutorial-container/');
    
    Copy

    Defina AZURE_TENANT_ID como o ID do locatário do Office 365ra a conta de armazenamento que contém os locais de armazenamento permitidos que você deseja usar. Você pode encontrar este ID no portal do Azure em Microsoft Entra ID > Properties > Tenant ID. (Microsoft Entra ID é o novo nome do Azure Active Directory.)

    Defina STORAGE_ALLOWED_LOCATIONS como o caminho do contêiner do Azure onde seu arquivo de dados de origem está armazenado. Utilize o formato mostrado neste exemplo, onde tutorial99 é o nome da conta de armazenamento e snow-tutorial-container é o nome do contêiner.

  3. Coloque o cursor na linha DESCRIBE INTEGRATION, especifique o nome da integração de armazenamento que você criou e selecione Run.

    DESCRIBE INTEGRATION azure_data_integration;
    
    Copy

    Este comando recupera AZURE_CONSENT_URL e AZURE_MULTI_TENANT_APP_NAME do aplicativo cliente que foi criado automaticamente para sua conta Snowflake. Você usará esses valores para configurar permissões para o Snowflake no portal do Azure.

    A saída deste comando é semelhante a esta:

    Saída do comando DESCRIBE INTEGRATION, com as seguintes colunas: property, property_type, property_value, property_default.
  4. 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;
    
    Copy

    A saída deste comando é semelhante a esta:

    Saída do comando SHOW INTEGRATIONS, com as seguintes colunas: name, type, category, enabled, comment, created_on.
  5. Use o portal do Azure para configurar permissões para o aplicativo cliente (que foi criado automaticamente para sua conta de avaliação) para acessar contêineres de armazenamento. Siga Etapa 2: conceder ao Snowflake acesso aos locais de armazenamento em Configuração de um contêiner Azure para carregamento de dados.

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 contêiner do Azure.

Para criar um estágio, faça o seguinte:

  1. 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.azure_data.azuredata_stage
      STORAGE_INTEGRATION = azure_data_integration
      URL = 'azure://tutorial99.blob.core.windows.net/snow-tutorial-container/'
      FILE_FORMAT = (TYPE = CSV);
    
    Copy
  2. Retorne informações sobre o estágio que você criou:

    SHOW STAGES;
    
    Copy

    A saída deste comando é semelhante a esta:

    Saída do comando SHOW STAGES, com as seguintes colunas: created_on, name, database_name, schema_name, url.

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 contêineres do Azure, consulte Cópia de dados de um estágio Azure.

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.azure_data.calendar
  FROM @cloud_data_db.azure_data.azuredata_stage
    FILES = ('calendar.txt');
Copy

Seu resultado é semelhante à imagem a seguir.

Cinco linhas são copiadas na tabela. A saída possui as seguintes colunas: file, status, rows_parsed, rows_loaded, error_limit.

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.azure_data.calendar;
Copy

Seu resultado é semelhante à imagem a seguir.

Todas as linhas da tabela são selecionadas. Este exemplo possui colunas full_date, day_name, month_name, day_num, year_num e holiday

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;
Copy

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:

  1. Definir a função e o warehouse a serem usados.

  2. Criar um banco de dados, esquema e tabela.

  3. Criar uma integração de armazenamento e configurar permissões no armazenamento em nuvem.

  4. Criar um estágio e carregar os dados do estágio na tabela.

  5. 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 contêiner do Azure.

  • 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: