Carregar uso de dados COPY INTO com um instance profile

Este artigo descreve como usar o comando COPY INTO para carregar dados de um bucket do Amazon S3 em sua account da AWS em uma tabela no Databricks SQL.

As passos neste artigo pressupõem que seu administrador configurou um SQL warehouse para usar um instance profile da AWS para que você possa acessar seus arquivos de origem no S3. Se seu administrador configurou um local externo Unity Catalog com uma credencial de armazenamento, consulte Carregar uso de dados COPY INTO com volumes Unity Catalog ou locais externos . Se seu administrador forneceu credenciais temporárias (um ID key de acesso da AWS, uma key secreta e tokens de sessão ), consulte Carregar uso de dados COPY INTO com credenciais temporárias .

Databricks recomenda usar o comando COPY INTO para carregamento de dados incremental e em massa com Databricks SQL.

Observação

COPY INTO funciona bem para fontes de dados que contêm milhares de arquivos. O Databricks recomenda que você use o Auto Loader para carregar milhões de arquivos, o que não tem suporte no Databricks SQL.

Antes de começar

Antes de carregar dados no Databricks, certifique-se de ter o seguinte:

  • Acesso aos dados no S3. Seu administrador deve primeiro concluir as passos em Configurar acesso a dados para ingestão para que seu Databricks SQL warehouse possa ler seus arquivos de origem.

  • Um Databricks SQL warehouse que usa o instance profile que seu administrador criou.

  • A permissão Pode gerenciar no SQL warehouse.

  • O URI S3 totalmente qualificado.

  • Familiaridade com a interface de usuário Databricks SQL .

passo 1: Confirme o acesso aos dados no armazenamento em nuvem

Para confirmar que você tem acesso aos dados corretos no armazenamento de objetos cloud , faça o seguinte:

  1. Na barra lateral, clique em Criar > query.

  2. Na barra de menus do editor SQL, selecione um SQL warehouse.

  3. No editor SQL, cole o seguinte código:

    select * from csv.<path>
    

    Substitua <path> pelo URI do S3 que você recebeu de seu administrador. Por exemplo, s3://<bucket>/<folder>/.

  4. Clique em execução.

passo 2: criar uma tabela

Esta passo descreve como criar uma tabela em seu workspace Databricks para armazenar os dados recebidos.

  1. No editor SQL, cole o seguinte código:

    CREATE TABLE <catalog_name>.<schema_name>.<table_name> (
      tpep_pickup_datetime  TIMESTAMP,
      tpep_dropoff_datetime TIMESTAMP,
      trip_distance DOUBLE,
      fare_amount DOUBLE,
      pickup_zip INT,
      dropoff_zip INT
    );
    
  2. Clique em execução.

passo 3: carregar dados do armazenamento em nuvem na tabela

Esta passo descreve como carregar dados de um bucket S3 na tabela que você criou em seu workspace do Databricks.

  1. Na barra lateral, clique em Criar > query.

  2. Na barra de menus do editor SQL, selecione um SQL warehouse e certifique-se de que o SQL warehouse esteja em execução.

  3. No editor SQL, cole o seguinte código. Neste código, substitua:

    • <s3-bucket> com o nome do seu bucket S3.

    • <folder> com o nome da pasta em seu bucket S3.

    COPY INTO <catalog-name>.<schema-name>.<table-name>
    FROM 's3://<s3-bucket>/<folder>/'
    FILEFORMAT = CSV
    FORMAT_OPTIONS (
      'header' = 'true',
      'inferSchema' = 'true'
    )
    COPY_OPTIONS (
       'mergeSchema' = 'true'
    );
    
    SELECT * FROM <catalog_name>.<schema_name>.<table_name>;
    

    Observação

    FORMAT_OPTIONS difere dependendo de FILEFORMAT. Nesse caso, a opção header instrui o Databricks a tratar a primeira linha do arquivo CSV como um cabeçalho e as opções inferSchema instrui o Databricks a determinar automaticamente o tipo de dados de cada campo no arquivo CSV.

  4. Clique em execução.

    Observação

    Se você clicar em execução novamente, nenhum novo dado será carregado na tabela. Isso ocorre porque o comando COPY INTO processa apenas o que considera novos dados.

Limpar

Você pode limpar os recursos associados em seu workspace se não quiser mais mantê-los.

Excluir as tabelas

  1. Na barra lateral, clique em Criar > query.

  2. Selecione um SQL warehouse e certifique-se de que o SQL warehouse esteja em execução.

  3. Cole o seguinte código:

    DROP TABLE <catalog-name>.<schema-name>.<table-name>;
    
  4. Clique em execução.

  5. Passe o mouse sobre a tab dessa query e clique no ícone X.

Exclua a query no editor SQL

  1. Na barra lateral, clique em Editor SQL.

  2. Na barra de menus do editor SQL, passe o mouse sobre a tab de cada query criada para este tutorial e clique no ícone X.

Recursos adicionais