Adicionar dados a um banco de dados do RDS de origem e consultá-los
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 pretendido.
Para conexões com o Amazon Redshift, conecte-se ao cluster ou grupo de trabalho do Amazon Redshift e crie um banco de dados com uma referência ao identificador da integração. Depois, é possível adicionar dados ao banco de dados do RDS de origem e vê-los replicados no Amazon Redshift ou no Amazon SageMaker.
Tópicos
Criar um banco de dados de destino
Depois de criar uma integração, para começar a replicar dados no Amazon Redshift, você deve primeiro criar um banco de dados no data warehouse de destino. Esse banco de dados deve incluir uma referência ao identificador da integração. Você pode usar o console do Amazon Redshift ou o Editor de Consultas v2 para criar o banco de dados.
Para conferir instruções sobre como criar um banco de dados de destino, consulte Criar bancos de dados de destino no Amazon Redshift.
Adicionar dados ao banco de dados de origem
Depois de configurar a integração, você pode adicionar alguns dados ao banco de dados do RDS que você deseja replicar no data warehouse.
nota
Há diferenças entre os tipos de dados no Amazon RDS e no warehouse de analytics de destino. 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 instruções, consulte Conectar-se à instância 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
; USEmy_db
; CREATE TABLEbooks_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 INTObooks_table
VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');
Consultar os dados do Amazon RDS no Amazon Redshift
Depois que os dados são adicionados ao banco de dados do RDS, eles são replicados no banco de dados de destino e podem ser consultados.
Como consultar os dados replicados
-
Navegue até o console do Amazon Redshift e escolha Editor de Consultas v2 no painel de navegação esquerdo.
-
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 conferir instruções sobre como criar um banco de dados de destino, consulte Criar bancos de dados de destino no Amazon Redshift.
-
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
";-
é o nome do esquema do banco de dados RDS.my_db
-
é o nome da tabela do RDS.books_table
-
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 destino. 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 no destino pretendido. 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 destino pretendido, você deve reverter manualmente a alteração incompatível e, em seguida, atualizar a integração executando ALTER DATABASE...INTEGRATION
REFRESH
.
nota
Não é possível atualizar Integrações ETL zero com um lakehouse do Amazon SageMaker. Em vez disso, exclua e tente criar a integração novamente.
RDS para MySQL
Tipo de dados do RDS para MySQL | Tipo de dados de destino | Descrição | Limitações |
---|---|---|---|
INT | INTEGER | Número inteiro de quatro bytes assinado | Nenhum |
SMALLINT | SMALLINT | Número inteiro de dois bytes assinado | Nenhum |
TINYINT | SMALLINT | Número inteiro de dois bytes assinado | Nenhum |
MEDIUMINT | INTEGER | Número inteiro de quatro bytes assinado | Nenhum |
BIGINT | BIGINT | Número inteiro de oito bytes assinado | Nenhum |
INT UNSIGNED | BIGINT | Número inteiro de oito bytes assinado | Nenhum |
TINYINT UNSIGNED | SMALLINT | Número inteiro de dois bytes assinado | Nenhum |
MEDIUMINT UNSIGNED | INTEGER | Número inteiro de quatro bytes assinado | Nenhum |
BIGINT UNSIGNED | DECIMAL(20,0) | Numérico exato com precisão selecionável | Nenhum |
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 | Nenhum |
FLOAT4/REAL UNSIGNED | REAL | Número de ponto flutuante de precisão simples | Nenhum |
DOUBLE/REAL/FLOAT8 | DOUBLE PRECISION | Número de ponto flutuante de precisão dupla | Nenhum |
DOUBLE/REAL/FLOAT8 UNSIGNED | DOUBLE PRECISION | Número de ponto flutuante de precisão dupla | Nenhum |
BIT (n) | VARBYTE(8) | Valor binário de comprimento variável | Nenhum |
BINARY(n) | VARBYTE(n) | Valor binário de comprimento variável | Nenhum |
VARBINARY (n) | VARBYTE(n) | Valor binário de comprimento variável | Nenhum |
CHAR(n) | VARCHAR(n) | Valor de string de comprimento variável | Nenhum |
VARCHAR(n) | VARCHAR(n) | Valor de string de comprimento variável | Nenhum |
TEXT | VARCHAR(65535) | Valor de string de comprimento variável de até 65.535 caracteres | Nenhum |
TINYTEXT | VARCHAR(255) | Valor de string de comprimento variável de até 255 caracteres | Nenhum |
MEDIUMTEXT | VARCHAR(65535) | Valor de string de comprimento variável de até 65.535 caracteres | Nenhum |
LONGTEXT | VARCHAR(65535) | Valor de string de comprimento variável de até 65.535 caracteres | Nenhum |
ENUM | VARCHAR(1020) | Valor de string de comprimento variável de até 1.020 caracteres | Nenhum |
SET | VARCHAR(1020) | Valor de string de comprimento variável de até 1.020 caracteres | Nenhum |
DATE | DATE | Data de calendário (ano, mês, dia) | Nenhum |
DATETIME | TIMESTAMP | Data e hora (sem fuso horário) | Nenhum |
TIMESTAMP(p) | TIMESTAMP | Data e hora (sem fuso horário) | Nenhum |
TIME | VARCHAR(18) | Valor de string de comprimento variável de até 18 caracteres | Nenhum |
YEAR | VARCHAR(4) | Valor de string de comprimento variável de até 4 caracteres | Nenhum |
JSON | SUPER | Dados ou documentos semiestruturados como valores | Nenhum |