

# Agregación de datos a una base de datos de RDS de origen y realización de consultas
<a name="zero-etl.querying"></a>

Para terminar de crear una integración sin ETL que replique los datos de Amazon RDS en Amazon Redshift, debe crear una base de datos en el destino.

Para conexiones con Amazon Redshift, conéctese al clúster o grupo de trabajo de Amazon Redshift y cree una base de datos con una referencia al identificador de integración. A continuación, puede agregar datos a la base de datos de RDS de origen y verlos replicados en Amazon Redshift o Amazon SageMaker.

**Topics**
+ [Creación de una base de datos de destino](#zero-etl.create-db)
+ [Añadir datos a la base de datos de origen](#zero-etl.add-data-rds)
+ [Consulta de los datos de Amazon RDS en Amazon Redshift](#zero-etl.query-data-redshift)
+ [Diferencias de tipos de datos entre las bases de datos RDS y Amazon Redshift](#zero-etl.data-type-mapping)
+ [Operaciones DDL para RDS para PostgreSQL](#zero-etl.ddl-postgres)

## Creación de una base de datos de destino
<a name="zero-etl.create-db"></a>

Antes de empezar a replicar datos en Amazon Redshift y después de crear una integración, debe crear una base de datos en el almacén de datos de destino. Esta base de datos debe incluir una referencia al identificador de integración. También puede utilizar la consola de Amazon Redshift o el editor de consultas v2 para crear la base de datos.

Para obtener instrucciones sobre cómo crear una base de datos de destino, consulte [Creación de una base de datos de destino en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html#zero-etl-using.create-db).

## Añadir datos a la base de datos de origen
<a name="zero-etl.add-data-rds"></a>

Tras configurar la integración, puede completar la base de datos de RDS de origen con datos que desea replicar en el almacén de datos.

**nota**  
Existen diferencias entre los tipos de datos en Amazon RDS y el almacén de análisis de destino. Para consultar una tabla de correspondencias de tipos de datos, consulte [Diferencias de tipos de datos entre las bases de datos RDS y Amazon Redshift](#zero-etl.data-type-mapping).

Primero, conéctese a la base de datos de origen mediante el cliente MySQL que prefiera. Para obtener instrucciones, consulte [Conexión a la instancia de base de datos de MySQL](USER_ConnectToInstance.md).

A continuación, cree una tabla e inserte una fila de datos de muestra.

**importante**  
Asegúrese de que la tabla tenga una clave principal. De lo contrario, no se podrá replicar en el almacenamiento de datos de destino.

**RDS para MySQL**

En el siguiente ejemplo se usa la [utilidad 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**

En el siguiente ejemplo, se utiliza el terminal interactivo `[psql](https://www.postgresql.org/docs/current/app-psql.html)` de PostgreSQL. Al conectarse a la base de datos, incluya el nombre de la base de datos que desea 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**

En el siguiente ejemplo se utiliza SQL\$1Plus para conectarse a la base de datos de 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');
```

## Consulta de los datos de Amazon RDS en Amazon Redshift
<a name="zero-etl.query-data-redshift"></a>

Después de agregar datos a la base de datos de RDS, se replican en la base de datos de destino y ya se pueden consultar.

**Consulta de datos replicados**

1. Vaya a la consola de Amazon Redshift y seleccione el **editor de consultas v2** en el panel de navegación izquierdo.

1. Conéctese a su clúster o grupo de trabajo y elija su base de datos de destino (la que creó a partir de la integración) en el menú desplegable (**destination\$1database** en este ejemplo). Para obtener instrucciones sobre cómo crear una base de datos de destino, consulte [Creación de una base de datos de destino en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html#zero-etl-using.create-db).

1. Utilice una instrucción SELECT para consultar los datos. En este ejemplo, puede ejecutar el siguiente comando para seleccionar todos los datos de la tabla que creó en la base de datos de RDS de origen:

   ```
   SELECT * from my_db."books_table";
   ```  
![\[Ejecute una instrucción SELECT en el editor de consultas. Como resultado, se agrega una única fila de datos de ejemplo a la base de datos de Amazon RDS.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/zero-etl-redshift-editor.png)
   + `my_db` es el nombre del esquema de la base de datos de RDS. 
   + `books_table` es el nombre de la tabla de RDS.

También puede consultar los datos mediante un cliente de línea de comandos. Por ejemplo:

```
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 distinguir entre mayúsculas y minúsculas, utilice comillas dobles (" ") para los nombres de esquemas, tablas y columnas. Para obtener más información, consulte [enable\$1case\$1sensitive\$1identifier](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_identifier.html).

## Diferencias de tipos de datos entre las bases de datos RDS y Amazon Redshift
<a name="zero-etl.data-type-mapping"></a>

Las siguientes tablas muestran las asignaciones de RDS para MySQL, RDS para PostgreSQL y RDS para Oracle a tipos de datos de destino correspondiente. *Actualmente, Amazon RDS solo admite estos tipos de datos para integraciones sin ETL.*

Si una tabla del clúster de base de datos de origen incluye un tipo de datos no compatible, la tabla no se sincroniza y el destino no puede utilizarla. La transmisión desde el origen al destino continúa, pero la tabla con el tipo de datos no admitido no está disponible. Para corregir la tabla y hacer que esté disponible en el destino, debe revertir manualmente el cambio de ruptura y, a continuación, actualizar la integración ejecutando `[ALTER DATABASE...INTEGRATION REFRESH](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_DATABASE.html)`.

**nota**  
No puede actualizar las integraciones sin ETL con un Amazon SageMaker Lakehouse. En su lugar, elimine e intente crear la integración de nuevo.

**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/es_es/AmazonRDS/latest/UserGuide/zero-etl.querying.html)

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

Las integraciones sin ETL para RDS para PostgreSQL no admiten tipos de datos personalizados ni tipos de datos creados por extensiones.

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

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

**Tipos de datos no admitidos**

Los siguientes tipos de datos de RDS para Oracle no son compatibles con Amazon Redshift:
+ `ANYDATA`
+ `BFILE`
+ `REF`
+ `ROWID`
+ `UROWID`
+ `VARRAY`
+ `SDO_GEOMETRY`
+ Tipos de datos definidos por el usuario

**Diferencias de tipos de datos**

En la siguiente tabla se muestran las diferencias de tipo de datos que afectan a una integración sin ETL cuando RDS para Oracle es el origen y Amazon Redshift es el destino.

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

## Operaciones DDL para RDS para PostgreSQL
<a name="zero-etl.ddl-postgres"></a>

Amazon Redshift se deriva de PostgreSQL, por lo que comparte varias características con RDS para PostgreSQL debido a su arquitectura PostgreSQL común. Las integraciones sin ETL aprovechan estas similitudes para agilizar la replicación de datos desde RDS para PostgreSQL a Amazon Redshift, asignando las bases de datos por nombre y utilizando la base de datos, el esquema y la estructura de tablas compartidos.

Tenga en cuenta los siguientes puntos al administrar las integraciones sin ETL de RDS para PostgreSQL:
+ El aislamiento se administra por base de datos.
+ La replicación se produce por base de datos. 
+ Las bases de datos de RDS para PostgreSQL se asignan a las bases de datos de Amazon Redshift por nombre, con datos que fluyen a la base de datos de Redshift con el nombre correspondiente si se cambia el nombre de la original.

A pesar de sus similitudes, Amazon Redshift y RDS para PostgreSQL presentan diferencias importantes. En las siguientes secciones se describen las respuestas del sistema Amazon Redshift para las operaciones de DDL más comunes.

**Topics**
+ [Operaciones de base de datos](#zero-etl.ddl-postgres-database)
+ [Operaciones de esquema](#zero-etl.ddl-postgres-schema)
+ [Operaciones de tabla](#zero-etl.ddl-postgres-table)

### Operaciones de base de datos
<a name="zero-etl.ddl-postgres-database"></a>

En la siguiente tabla, se muestran las respuestas del sistema para las operaciones de DDL de base de datos.

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

### Operaciones de esquema
<a name="zero-etl.ddl-postgres-schema"></a>

En la siguiente tabla, se muestran las respuestas del sistema para las operaciones DDL de esquema.

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

### Operaciones de tabla
<a name="zero-etl.ddl-postgres-table"></a>

En la siguiente tabla, se muestran las respuestas del sistema para las operaciones DDL de tabla.

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