Cómo agregar datos en una base de datos de RDS de origen y dirigirle consultas en Amazon Redshift
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 de destino en Amazon Redshift.
Primero, conéctese a su clúster o grupo de trabajo de Amazon Redshift y cree una base de datos con una referencia a su identificador de integración. A continuación, puede empezar a añadir datos a la base de datos de RDS de origen y ver la réplica en Amazon Redshift.
Temas
Creación de bases de datos de destino en Amazon Redshift
Antes de empezar a replicar datos en Amazon Redshift, debe crear una base de datos de destino en su almacén de datos de destino después de crear una integración. Esta base de datos de destino 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.
Añadir datos a la base de datos de origen
Tras configurar la integración, puede añadir algunos datos a la base de datos de RDS que desee replicar en su almacenamiento de datos de Amazon Redshift.
nota
Existen diferencias entre los tipos de datos en Amazon RDS, y Amazon Redshift. 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 .
Primero, conéctese a la base de datos de origen mediante el cliente MySQL que prefiera. Para obtener instrucciones, consulte Conexión a una instancia de base de datos que ejecuta el motor de base de datos de MySQL.
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.
En el siguiente ejemplo se usa la utilidad 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');
Consulta de los datos de Amazon RDS en Amazon Redshift
Después de añadir datos en la base de datos de RDS, se replican en Amazon Redshift y ya se pueden consultar.
Consulta de datos replicados
-
Vaya a la consola de Amazon Redshift y seleccione el editor de consultas v2 en el panel de navegación izquierdo.
-
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_database 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.
-
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
";-
es el nombre del esquema de la base de datos de RDS.my_db
-
es el nombre de la tabla RDS.books_table
-
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_case_sensitive_identifier.
Diferencias de tipos de datos entre las bases de datos RDS y Amazon Redshift
En la siguiente tabla se muestra la asignación de un tipo de datos de RDS para MySQL a un tipo de datos de Amazon Redshift 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 de Amazon Redshift 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 Amazon Redshift, debe revertir manualmente el cambio de ruptura y, a continuación, actualizar la integración ejecutando ALTER DATABASE...INTEGRATION
REFRESH
.
RDS para MySQL
Tipo de datos de RDS para MySQL o | Tipos de datos de Amazon Redshift | Descripción | Limitaciones |
---|---|---|---|
INT | INTEGER | Entero firmado de cuatro bytes | Ninguna |
SMALLINT | SMALLINT | Entero firmado de dos bytes | Ninguna |
TINYINT | SMALLINT | Entero firmado de dos bytes | Ninguna |
MEDIUMINT | INTEGER | Entero firmado de cuatro bytes | Ninguna |
BIGINT | BIGINT | Entero firmado de ocho bytes | Ninguna |
INT UNSIGNED | BIGINT | Entero firmado de ocho bytes | Ninguna |
TINYINT UNSIGNED | SMALLINT | Entero firmado de dos bytes | Ninguna |
MEDIUMINT UNSIGNED | INTEGER | Entero firmado de cuatro bytes | Ninguna |
BIGINT UNSIGNED | DECIMAL(20,0) | Numérico exacto de precisión seleccionable | Ninguna |
DECIMAL(p,s) = NUMERIC(p,s) | DECIMAL (p,s) | Numérico exacto de precisión seleccionable |
No se admiten precisiones superiores a 38 ni escalas superiores a 37 |
DECIMAL(p,s) UNSIGNED = NUMERIC(p,s) UNSIGNED | DECIMAL (p,s) | Numérico exacto de precisión seleccionable |
No se admiten precisiones superiores a 38 ni escalas superiores a 37 |
FLOAT4/REAL | REAL | Número en coma flotante de precisión única | Ninguna |
FLOAT4/REAL SIN FIRMAR | REAL | Número en coma flotante de precisión única | Ninguna |
DOBLE/REAL/FLOAT8 | DOUBLE PRECISION | Número en coma flotante de precisión doble | Ninguna |
DOBLE/REAL/FLOAT8 SIN FIRMAR | DOUBLE PRECISION | Número en coma flotante de precisión doble | Ninguna |
BIT(n) | VARBYTE (8) | Valor binario de longitud variable | Ninguna |
BINARY(n) | VARBYTE(n) | Valor binario de longitud variable | Ninguna |
VARBINARY (n) | VARBYTE(n) | Valor binario de longitud variable | Ninguna |
CHAR(n) | VARCHAR (n) | Valor de cadena de longitud variable | Ninguna |
VARCHAR (n) | VARCHAR (n) | Valor de cadena de longitud variable | Ninguna |
TEXT | VARCHAR(6535) | Valor de cadena de longitud variable de hasta 65 535 caracteres | Ninguna |
TINYTEXT | VARCHAR (255) | Valor de cadena de longitud variable de hasta 255 caracteres | Ninguna |
MEDIUMTEXT | VARCHAR(6535) | Valor de cadena de longitud variable de hasta 65 535 caracteres | Ninguna |
LONGTEXT | VARCHAR(6535) | Valor de cadena de longitud variable de hasta 65 535 caracteres | Ninguna |
ENUM | VARCHAR(1020) | Valor de cadena de longitud variable de hasta 1020 caracteres | Ninguna |
SET | VARCHAR(1020) | Valor de cadena de longitud variable de hasta 1020 caracteres | Ninguna |
FECHA | FECHA | Fecha de calendario (año, mes, día) | Ninguna |
DATETIME | MARCA DE TIEMPO | Fecha y hora (sin zona horaria) | Ninguna |
TIMESTAMP(p) | MARCA DE TIEMPO | Fecha y hora (sin zona horaria) | Ninguna |
HORA | VARCHAR(18) | Valor de cadena de longitud variable de hasta 18 caracteres | Ninguna |
YEAR | VARCHAR(4) | Valor de cadena de longitud variable de hasta 4 caracteres | Ninguna |
JSON | SUPER | Datos o documentos semiestructurados como valores | Ninguna |