Etapa 4: Carregar dados do Amazon S3 para o Amazon Redshift - Amazon Redshift

Etapa 4: Carregar dados do Amazon S3 para o Amazon Redshift

Usar um dos editores de consulta do Amazon Redshift é o modo mais fácil de carregar dados em tabelas. Após criar o cluster, é possível carregar dados do Amazon S3 para o cluster usando o console do Amazon Redshift.

Usar o editor de consultas v2 simplifica o carregamento de dados ao usar o assistente Load data (Carregar dados). Para obter mais informações, consulte Carregar dados do Amazon S3 para o Amazon Redshift usando o editor de consultas v2. Também é possível usar o editor de consultas v2 para criar tabelas e carregar seus dados. Para obter mais informações, consulte Carregar dados de exemplo do Amazon S3 usando o editor de consultas.

Para carregar seus dados do Amazon S3 para o Amazon Redshift, o Amazon Redshift requer uma função do IAM que tenha os privilégios necessários para carregar dados do bucket do Amazon S3 especificado.

Primeiro, conecte-se a um banco de dados. Em seguida, crie algumas tabelas no banco de dados. Depois, carregue seus dados do Amazon S3 para o Amazon Redshift. Para obter mais informações sobre como trabalhar com o editor de consultas v2, acesse Trabalhar com o editor de consultas v2 no Guia de gerenciamento de clusters do Amazon Redshift.

O comando COPY gerado e usado no assistente Load data (Carregar dados) do editor de consultas v2 oferece suporte a todos os parâmetros disponíveis para a sintaxe do comando COPY para carregar dados do Amazon S3. Para obter informações sobre o comando COPY e suas opções usadas para copiar a carga do Amazon S3, consulte COPY do Amazon Simple Storage Service no Guia do desenvolvedor do Amazon Redshift.

Nesse momento, você tem um banco de dados chamado dev e está conectado a ele. Então, crie algumas tabelas no banco de dados, faça upload de dados nelas e tente fazer uma consulta. Para sua conveniência, os dados de amostra que você carrega estão disponíveis em um bucket do Amazon S3.

nota

Se estiver usando uma ferramenta do cliente SQL, verifique se o cliente SQL está conectado ao cluster.

Depois de concluir esta etapa, você pode fazer o seguinte:

nota

Para tentar consultar dados no editor de consulta sem carregar seus próprios dados, escolha Carregar dados de amostra em Dados de amostra. Se você fizer isso, o Amazon Redshift carregará seu conjunto de dados de amostra no cluster do Amazon Redshift automaticamente durante a criação do cluster.

Para carregar dados de amostra do Amazon S3

  1. Crie tabelas.

    Se você estiver usando o editor de consulta do Amazon Redshift, copie individualmente e execute as instruções de criação de tabelas a seguir para criar tabelas no banco de dados dev. Para obter mais informações sobre a sintaxe, consulte CREATE TABLE no Guia do desenvolvedor de banco de dados do Amazon Redshift.

    create table users( userid integer not null distkey sortkey, username char(8), firstname varchar(30), lastname varchar(30), city varchar(30), state char(2), email varchar(100), phone char(14), likesports boolean, liketheatre boolean, likeconcerts boolean, likejazz boolean, likeclassical boolean, likeopera boolean, likerock boolean, likevegas boolean, likebroadway boolean, likemusicals boolean);
    create table venue( venueid smallint not null distkey sortkey, venuename varchar(100), venuecity varchar(30), venuestate char(2), venueseats integer);
    create table category( catid smallint not null distkey sortkey, catgroup varchar(10), catname varchar(10), catdesc varchar(50));
    create table date( dateid smallint not null distkey sortkey, caldate date not null, day character(3) not null, week smallint not null, month character(5) not null, qtr character(5) not null, year smallint not null, holiday boolean default('N'));
    create table event( eventid integer not null distkey, venueid smallint not null, catid smallint not null, dateid smallint not null sortkey, eventname varchar(200), starttime timestamp);
    create table listing( listid integer not null distkey, sellerid integer not null, eventid integer not null, dateid smallint not null sortkey, numtickets smallint not null, priceperticket decimal(8,2), totalprice decimal(8,2), listtime timestamp);
    create table sales( salesid integer not null, listid integer not null distkey, sellerid integer not null, buyerid integer not null, eventid integer not null, dateid smallint not null sortkey, qtysold smallint not null, pricepaid decimal(8,2), commission decimal(8,2), saletime timestamp);
  2. Carregue dados de amostra do Amazon S3 usando o comando COPY.

    nota

    Recomendamos usar o comando COPY para carregar grandes conjuntos de dados no Amazon Redshift do Amazon S3 ou Amazon DynamoDB. Para obter mais informações sobre sintaxe de COPY, consulte COPY no Guia do desenvolvedor de banco de dados do Amazon Redshift.

    1. Faça download do arquivo tickitdb.zip que contém os arquivos de dados de amostra individuais.

    2. Descompacte e carregue os arquivos individuais em uma pasta tickit em seu bucket do Amazon S3 em sua Região da AWS.

    3. Edite os comandos COPY neste tutorial para apontar para os arquivos em seu bucket do Amazon S3. Para obter informações sobre como gerenciar arquivos com o Amazon S3, consulte Criar e configurar um bucket do S3 no Guia do usuário do Amazon Simple Storage Service.

    4. Forneça autenticação ao seu cluster para acessar o Amazon S3 em seu nome para carregar os dados de amostra. Nesta etapa, forneça autenticação ao referenciar a função do IAM que criou e anexou ao cluster nas etapas anteriores.

      Os comandos COPY incluem um espaço reservado para o nome do recurso da Amazon (ARN) para a função do IAM, o nome do bucket e uma Região da AWS, conforme mostrado no exemplo a seguir.

      copy users from 's3://<myBucket>/tickit/allusers_pipe.txt' iam_role default delimiter '|' region '<aws-region>';

      O comando COPY deve ser semelhante ao exemplo a seguir.

      copy users from 's3://<myBucket>/tickit/allusers_pipe.txt' iam_role default delimiter '|' region '<aws-region>';

      Para carregar os dados de exemplo, substitua <myBucket> e <aws-region> por seus valores nos seguintes comandos COPY. Se você estiver usando o editor de consulta do Amazon Redshift, execute individualmente os comandos a seguir.

      copy users from 's3://<myBucket>/tickit/allusers_pipe.txt' iam_role default delimiter '|' region '<aws-region>';
      copy venue from 's3://<myBucket>/tickit/venue_pipe.txt' iam_role default delimiter '|' region '<aws-region>';
      copy category from 's3://<myBucket>/tickit/category_pipe.txt' iam_role default delimiter '|' region '<aws-region>';
      copy date from 's3://<myBucket>/tickit/date2008_pipe.txt' iam_role default delimiter '|' region '<aws-region>';
      copy event from 's3://<myBucket>/tickit/allevents_pipe.txt' iam_role default delimiter '|' timeformat 'YYYY-MM-DD HH:MI:SS' region '<aws-region>';
      copy listing from 's3://<myBucket>/tickit/listings_pipe.txt' iam_role default delimiter '|' region '<aws-region>';
      copy sales from 's3://<myBucket>/tickit/sales_tab.txt' iam_role default delimiter '\t' timeformat 'MM/DD/YYYY HH:MI:SS' region '<aws-region>';