

# Adicionar dados a um banco de dados do RDS de origem e consultá-los
<a name="zero-etl.querying"></a>

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.

**Topics**
+ [Criar um banco de dados de destino](#zero-etl.create-db)
+ [Adicionar dados ao banco de dados de origem](#zero-etl.add-data-rds)
+ [Consultar os dados do Amazon RDS no Amazon Redshift](#zero-etl.query-data-redshift)
+ [Diferenças de tipos de dados entre os bancos de dados RDS e Amazon Redshift](#zero-etl.data-type-mapping)
+ [Operações de DDL para o RDS para PostgreSQL](#zero-etl.ddl-postgres)

## Criar um banco de dados de destino
<a name="zero-etl.create-db"></a>

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](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html#zero-etl-using.create-db).

## Adicionar dados ao banco de dados de origem
<a name="zero-etl.add-data-rds"></a>

Depois de configurar a integração, você pode preencher o banco de dados do RDS de origem com dados 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](#zero-etl.data-type-mapping)

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](USER_ConnectToInstance.md).

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.

**RDS para MySQL**

O exemplo a seguir usa o [utilitário MySQL Workbench](https://dev.mysql.com/downloads/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');
```



**RDS para PostgreSQL**

O exemplo a seguir usa o terminal interativo do PostgreSQL `[psql](https://www.postgresql.org/docs/current/app-psql.html)`. Ao se conectar ao banco de dados, inclua o nome do banco de dados que você deseja replicar.

```
psql -h mydatabase.123456789012.us-east-2.rds.amazonaws.com -p 5432 -U username -d named_db;

named_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));

named_db=> INSERT INTO books_table VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');
```

**RDS para Oracle**

O exemplo a seguir usa o SQL\$1Plus para se conectar ao banco de dados do RDS para Oracle.

```
sqlplus 'user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))'

SQL> 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));

SQL> INSERT INTO books_table VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');
```

## Consultar os dados do Amazon RDS no Amazon Redshift
<a name="zero-etl.query-data-redshift"></a>

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**

1. Navegue até o console do Amazon Redshift e escolha **Editor de Consultas v2** no painel de navegação esquerdo.

1. Conecte-se ao cluster ou grupo de trabalho e escolha o banco de dados de destino (criado na integração) no menu suspenso (**destination\$1database** 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](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html#zero-etl-using.create-db).

1. 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 instrução SELECT no Editor de Consultas. O resultado é uma única linha de dados de amostra adicionada ao banco de dados do Amazon RDS.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/zero-etl-redshift-editor.png)
   + `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\$1case\$1sensitive\$1identifier](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_identifier.html).

## Diferenças de tipos de dados entre os bancos de dados RDS e Amazon Redshift
<a name="zero-etl.data-type-mapping"></a>

Abaixo, as tabelas mostram as associações entre tipos de dados do RDS para MySQL, RDS para PostgreSQL e RDS para Oracle e tipos de dados de destino correspondentes. 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](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_DATABASE.html)`.

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

**Topics**
+ [RDS para MySQL](#zero-etl.data-type-mapping-mysql)
+ [RDS para PostgreSQL](#zero-etl.data-type-mapping-postgres)
+ [RDS para Oracle](#zero-etl.data-type-mapping-oracle)

### RDS para MySQL
<a name="zero-etl.data-type-mapping-mysql"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/zero-etl.querying.html)

### RDS para PostgreSQL
<a name="zero-etl.data-type-mapping-postgres"></a>

As Integrações ETL zero para o RDS para PostgreSQL não são compatíveis com tipos de dados personalizados nem tipos de dados criados por extensões.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/zero-etl.querying.html)

### RDS para Oracle
<a name="zero-etl.data-type-mapping-oracle"></a>

**Tipos de dados incompatíveis**

Não é possível usar os seguintes tipos de dados do RDS para Oracle no Amazon Redshift:
+ `ANYDATA`
+ `BFILE`
+ `REF`
+ `ROWID`
+ `UROWID`
+ `VARRAY`
+ `SDO_GEOMETRY`
+ Tipos de dados definidos pelo usuário

**Diferenças entre os tipos de dados**

A tabela a seguir mostra as diferenças entre os tipos de dados que afetam uma Integração ETL zero quando o RDS para Oracle é a origem e o Amazon Redshift é o destino.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/zero-etl.querying.html)

## Operações de DDL para o RDS para PostgreSQL
<a name="zero-etl.ddl-postgres"></a>

Como o Amazon Redshift é derivado do PostgreSQL, ele compartilha vários recursos com o RDS para PostgreSQL porque ambos têm em comum a arquitetura do PostgreSQL. As Integrações ETL zero utilizam essas semelhanças para simplificar a replicação de dados do RDS para PostgreSQL para o Amazon Redshift, associando bancos de dados por nome e utilizando o banco de dados compartilhado, o esquema e a estrutura de tabelas.

Pense nos seguintes pontos ao gerenciar Integrações ETL zero do RDS para PostgreSQL:
+ O isolamento é gerenciado no nível do banco de dados.
+ A replicação ocorre no nível do banco de dados. 
+ Os bancos de dados do RDS para PostgreSQL são associados aos bancos de dados do Amazon Redshift por nome, e os dados fluirão para o banco de dados do Redshift renomeado correspondente caso o original seja renomeado.

Apesar de suas semelhanças, o Amazon Redshift e o RDS para PostgreSQL têm diferenças importantes. As seções a seguir descrevem as respostas do sistema do Amazon Redshift para operações comuns de DDL.

**Topics**
+ [Operações do banco de dados](#zero-etl.ddl-postgres-database)
+ [Operações de esquema](#zero-etl.ddl-postgres-schema)
+ [Operações de tabela](#zero-etl.ddl-postgres-table)

### Operações do banco de dados
<a name="zero-etl.ddl-postgres-database"></a>

A tabela a seguir mostra as respostas do sistema para operações de DDL do banco de dados.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/zero-etl.querying.html)

### Operações de esquema
<a name="zero-etl.ddl-postgres-schema"></a>

A tabela a seguir mostra as respostas do sistema para operações de DDL do esquema.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/zero-etl.querying.html)

### Operações de tabela
<a name="zero-etl.ddl-postgres-table"></a>

A tabela a seguir mostra as respostas do sistema para operações de DDL da tabela.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/zero-etl.querying.html)