Adicionar dados a um banco de dados do RDS de origem e consultá-los no Amazon Redshift - Amazon Relational Database Service

Adicionar dados a um banco de dados do RDS de origem e consultá-los no Amazon Redshift

Para criar uma integração ETL zero que replica dados do Amazon RDS no Amazon Redshift, você deve criar um banco de dados de destino no Amazon Redshift.

Primeiro, conecte-se ao cluster ou grupo de trabalho do Amazon Redshift e crie um banco de dados com uma referência ao identificador de integração. Depois, é possível adicionar dados ao banco de dados do RDS de origem e vê-los replicados no Amazon Redshift.

Criação de um banco de dados de destino no Amazon Redshift

Antes de começar a replicar dados no Amazon Redshift, após você criar uma integração, você deve criar um banco de dados de destino no data warehouse de destino. Esse banco de dados de destino deve incluir uma referência ao identificador de integração. Você pode usar o console do Amazon Redshift ou o Editor de Consultas v2 para criar o banco de dados.

Para obter instruções sobre como criar um banco de dados de destino, consulte Criar um banco de dados de destino no Amazon Redshift.

Adicionar dados ao banco de dados de origem

Depois de configurar a integração, será possível adicionar alguns dados ao banco de dados do RDS que você deseja replicar no data warehouse do Amazon Redshift.

nota

Há diferenças entre os tipos de dados no Amazon RDS e Amazon Redshift. Para obter uma tabela de mapeamentos de tipos de dados, consulte. Diferenças de tipos de dados entre os bancos de dados RDS e Amazon Redshift

Primeiro, conecte-se ao banco de dados de origem usando o cliente do MySQL de sua escolha. Para obter instruções, consulte Conexão a uma instância de banco de dados executando o mecanismo de banco de dados do MySQL.

Depois, crie uma tabela e insira uma linha de dados de exemplo.

Importante

Verifique se a tabela tem uma chave primária. Caso contrário, ela não poderá ser replicada no data warehouse de destino.

O exemplo a seguir usa o utilitário MySQL Workbench.

CREATE DATABASE my_db; USE my_db; CREATE TABLE books_table (ID int NOT NULL, Title VARCHAR(50) NOT NULL, Author VARCHAR(50) NOT NULL, Copyright INT NOT NULL, Genre VARCHAR(50) NOT NULL, PRIMARY KEY (ID)); INSERT INTO books_table VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');

Consultar os dados do Amazon RDS no Amazon Redshift

Depois de adicionar dados ao banco de dados do RDS, eles são replicados no Amazon Redshift e ficam prontos para serem consultados.

Como consultar os dados replicados
  1. Navegue até o console do Amazon Redshift e escolha Editor de Consultas v2 no painel de navegação esquerdo.

  2. Conecte-se ao cluster ou grupo de trabalho e escolha o banco de dados de destino (criado na integração) no menu suspenso (destination_database neste exemplo). Para obter instruções sobre como criar um banco de dados de destino, consulte Criar um banco de dados de destino no Amazon Redshift.

  3. Use uma declaração SELECT para consultar dados. Neste exemplo, é possível executar o comando a seguir para selecionar todos os dados da tabela que você criou no banco de dados do RDS de origem:

    SELECT * from my_db."books_table";
    Execute uma declaração SELECT no editor de consultas do Redshift. O resultado é uma única linha de dados de amostra adicionada ao banco de dados do RDS.
    • my_db é o nome do esquema do banco de dados RDS.

    • books_table é o nome da tabela do RDS.

Também é possível consultar os dados usando o cliente de linha de comandos. Por exemplo:

destination_database=# select * from my_db."books_table"; ID | Title | Author | Copyright | Genre | txn_seq | txn_id ----+–------------+---------------+-------------+------------------------+----------+--------+ 1 | The Shining | Stephen King | 1977 | Supernatural fiction | 2 | 12192
nota

Para diferenciar letras maiúsculas de minúsculas, use aspas duplas (“ ”) para nomes de esquemas, tabelas e colunas. Para obter mais informações, consulte enable_case_sensitive_identifier.

Diferenças de tipos de dados entre os bancos de dados RDS e Amazon Redshift

A tabela a seguir mostra o mapeamento de um tipo de dados do RDS para MySQL para um tipo de dados correspondente do Amazon Redshift. No momento, o Amazon RDS é compatível somente com esses tipos de dados para integrações ETL zero.

Se uma tabela no banco de dados de origem incluir um tipo de dado incompatível, a tabela ficará fora de sincronia e não poderá ser consumida pelo destino do Amazon Redshift. O streaming da origem para o destino continuará, mas a tabela com o tipo de dados não compatível não estará disponível. Para corrigir a tabela e disponibilizá-la no Amazon Redshift, você deve reverter manualmente a alteração significativa e, em seguida, atualizar a integração executando ALTER DATABASE...INTEGRATION REFRESH.

RDS para MySQL

Tipo de dados do RDS para MySQL Tipo de dados do Amazon Redshift Descrição Limitações
INT INTEGER Número inteiro de quatro bytes assinado
SMALLINT SMALLINT Número inteiro de dois bytes assinado
TINYINT SMALLINT Número inteiro de dois bytes assinado
MEDIUMINT INTEGER Número inteiro de quatro bytes assinado
BIGINT BIGINT Número inteiro de oito bytes assinado
INT UNSIGNED BIGINT Número inteiro de oito bytes assinado
TINYINT UNSIGNED SMALLINT Número inteiro de dois bytes assinado
MEDIUMINT UNSIGNED INTEGER Número inteiro de quatro bytes assinado
BIGINT UNSIGNED DECIMAL(20,0) Numérico exato com precisão selecionável
DECIMAL(p,s) = NUMERIC(p,s) DECIMAL (p,s) Numérico exato com precisão selecionável

Precisão maior que 38 e escala maior que 37 não são aceitas

DECIMAL(p,s) UNSIGNED = NUMERIC(p,s) UNSIGNED DECIMAL (p,s) Numérico exato com precisão selecionável

Precisão maior que 38 e escala maior que 37 não são aceitas

FLOAT4/REAL REAL Número de ponto flutuante de precisão simples
FLOAT4/REAL UNSIGNED REAL Número de ponto flutuante de precisão simples
DOUBLE/REAL/FLOAT8 DOUBLE PRECISION Número de ponto flutuante de precisão dupla
DOUBLE/REAL/FLOAT8 UNSIGNED DOUBLE PRECISION Número de ponto flutuante de precisão dupla
BIT (n) VARBYTE(8) Valor binário de comprimento variável
BINARY(n) VARBYTE(n) Valor binário de comprimento variável
VARBINARY (n) VARBYTE(n) Valor binário de comprimento variável
CHAR(n) VARCHAR(n) Valor de string de comprimento variável
VARCHAR(n) VARCHAR(n) Valor de string de comprimento variável
TEXT VARCHAR(65535) Valor de string de comprimento variável de até 65535 bytes
TINYTEXT VARCHAR(255) Valor de string de comprimento variável de até 255 bytes
MEDIUMTEXT VARCHAR(65535) Valor de string de comprimento variável de até 65535 bytes
LONGTEXT VARCHAR(65535) Valor de string de comprimento variável de até 65535 bytes
ENUM VARCHAR(1020) Valor de string de comprimento variável de até 1020 bytes
SET VARCHAR(1020) Valor de string de comprimento variável de até 1020 bytes
DATA DATA Data de calendário (ano, mês, dia)
DATETIME TIMESTAMP Data e hora (sem fuso horário)
TIMESTAMP(p) TIMESTAMP Data e hora (sem fuso horário)
TIME VARCHAR(18) Valor de string de comprimento variável de até 18 bytes
YEAR VARCHAR(4) Valor de string de comprimento variável de até 4 bytes
JSON SUPER Dados ou documentos semiestruturados como valores