Cómo agregar datos en un clúster de base de datos de Aurora de origen y dirigirle consultas en Amazon Redshift - Amazon Aurora

Cómo agregar datos en un clúster de base de datos de Aurora de origen y dirigirle consultas en Amazon Redshift

Para terminar de crear una integración sin ETL que replique los datos de Amazon Aurora 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 al clúster de base de datos de Aurora de origen y ver la réplica en Amazon Redshift.

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 al clúster de base de datos de origen

Tras configurar la integración, puede añadir algunos datos al clúster de base de datos de Aurora que desee replicar en su almacenamiento de datos de Amazon Redshift.

nota

Existen diferencias entre los tipos de datos en , Amazon Aurora y Amazon Redshift. Para consultar una tabla de correspondencias de tipos de datos, consulte Diferencias de tipos de datos entre las bases de datos Aurora y Amazon Redshift .

Primero, conéctese al clúster de base datos de origen mediante el cliente MySQL o PostgreSQL que prefiera. Para obtener instrucciones, consulte Conexión a un clúster de base de datos Amazon Aurora.

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.

Las utilidades pg_dump y pg_restore de PostgreSQL crean inicialmente tablas sin una clave principal y, después, la agregan. Si utiliza una de estas utilidades, le recomendamos que cree primero un esquema y, a continuación, cargue los datos en un comando independiente.

MySQL

En el siguiente ejemplo se usa la utilidad 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');

PostgreSQL

En el siguiente ejemplo, se utiliza el terminal interactivo psql de PostgreSQL. Al conectarse al clúster, incluya la base de datos con nombre que especificó al crear la integración.

psql -h mycluster.cluster-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");

Consulta de los datos de en Amazon Redshift

Después de añadir datos en el clúster de base datos de Aurora, se replican en Amazon Redshift 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.

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

  3. 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 el clúster de base datos de Aurora de origen:

    SELECT * from my_db."books_table";
    Ejecute una instrucción SELECT en el editor de consultas Redshift. Como resultado, se añade una única fila de datos de muestra a la base de datos de RDS.
    • my_db es el nombre del esquema de la base de datos de Aurora. Esta opción solo es necesaria para las bases de datos MySQL.

    • books_table es el nombre de la tabla Aurora.

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 Aurora y Amazon Redshift

En las siguientes tablas se muestran las asignaciones de un tipo de datos de Aurora MySQL o Aurora PostgreSQL a un tipo de datos de Amazon Redshift correspondiente. Actualmente, Amazon Aurora solo admite estos tipos de datos para integraciones sin ETL.

Si una tabla de la 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.

Aurora MySQL

Tipo de datos de o Aurora MySQL Tipos de datos de Amazon Redshift Descripción Limitaciones
INT INTEGER Entero firmado de cuatro bytes
SMALLINT SMALLINT Entero firmado de dos bytes
TINYINT SMALLINT Entero firmado de dos bytes
MEDIUMINT INTEGER Entero firmado de cuatro bytes
BIGINT BIGINT Entero firmado de ocho bytes
INT UNSIGNED BIGINT Entero firmado de ocho bytes
TINYINT UNSIGNED SMALLINT Entero firmado de dos bytes
MEDIUMINT UNSIGNED INTEGER Entero firmado de cuatro bytes
BIGINT UNSIGNED DECIMAL(20,0) Numérico exacto de precisión seleccionable
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
FLOAT4/REAL SIN FIRMAR REAL Número en coma flotante de precisión única
DOBLE/REAL/FLOAT8 DOUBLE PRECISION Número en coma flotante de precisión doble
DOBLE/REAL/FLOAT8 SIN FIRMAR DOUBLE PRECISION Número en coma flotante de precisión doble
BIT(n) VARBYTE (8) Valor binario de longitud variable
BINARY(n) VARBYTE(n) Valor binario de longitud variable
VARBINARY (n) VARBYTE(n) Valor binario de longitud variable
CHAR(n) VARCHAR (n) Valor de cadena de longitud variable
VARCHAR (n) VARCHAR (n) Valor de cadena de longitud variable
TEXT VARCHAR(6535) Valor de cadena de longitud variable de hasta 65535 bytes
TINYTEXT VARCHAR (255) Valor de cadena de longitud variable de hasta 255 bytes
MEDIUMTEXT VARCHAR(6535) Valor de cadena de longitud variable de hasta 65535 bytes
LONGTEXT VARCHAR(6535) Valor de cadena de longitud variable de hasta 65535 bytes
ENUM VARCHAR(1020) Valor de cadena de longitud variable de hasta 1020 bytes
SET VARCHAR(1020) Valor de cadena de longitud variable de hasta 1020 bytes
FECHA FECHA Fecha de calendario (año, mes, día)
DATETIME MARCA DE TIEMPO Fecha y hora (sin zona horaria)
TIMESTAMP(p) MARCA DE TIEMPO Fecha y hora (sin zona horaria)
HORA VARCHAR(18) Valor de cadena de longitud variable de hasta 18 bytes
YEAR VARCHAR(4) Valor de cadena de longitud variable de hasta 4 bytes
JSON SUPER Datos o documentos semiestructurados como valores

Aurora PostgreSQL

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

importante

Las integraciones sin ETL de ETL con la característica de Amazon Redshift para Aurora PostgreSQL están en versión de vista previa. Tanto la documentación como la característica quedan sujetas a cambios. Puede utilizar esta característica solo en entornos de prueba y no en entornos de producción. Para conocer los términos y condiciones de las versiones preliminares, consulte Betas y versiones preliminares en Términos de servicio de AWS.

Tipo de datos de Aurora PostgreSQL Tipos de datos de Amazon Redshift Descripción Limitaciones
bigint BIGINT Entero firmado de ocho bytes
bigserial BIGINT Entero firmado de ocho bytes
bit(n) VARBYTE(n) Valor binario de longitud variable
bit varying(n) VARBYTE(n) Valor binario de longitud variable
bit VARBYTE(1.024.000) Valor de cadena de longitud variable de hasta 1 024 000 bytes
boolean BOOLEAN Booleano lógico (true/false)
bytea VARBYTE(1.024.000) Valor de cadena de longitud variable de hasta 1 024 000 bytes
character(n) CHAR(n) Cadena de caracteres de longitud fija
character varying(n) VARCHAR(6535) Valor de cadena de longitud variable
date FECHA Fecha de calendario (año, mes, día)
  • No se admiten valores superiores a 9999-12-31

  • No se admiten valores de B.C.

double precision DOUBLE PRECISION Números con coma flotante de precisión doble No se admiten valores inferiores a los normales
integer INTEGER Entero firmado de cuatro bytes
money DECIMAL(203) Importe de la divisa
numeric(p,s) DECIMAL (p,s) Valor de cadena de longitud variable
  • No se admiten valores NaN

  • No se admiten precisiones superiores a 38 ni escalas superiores a 37

  • No se admite la escala negativa

real REAL Número en coma flotante de precisión única
smallint SMALLINT Entero firmado de dos bytes
smallserial SMALLINT Entero firmado de dos bytes
serial INTEGER Entero firmado de cuatro bytes
texto VARCHAR(6535) Valor de cadena de longitud variable de hasta 65 535 bytes
time [ (p) ] [ sin zona horaria ] VARCHAR(19) Valor de cadena de longitud variable de hasta 4 bytes No se admiten valores Infinity y -Infinity
time [(p)] con zona horaria VARCHAR(22) Valor de cadena de longitud variable de hasta 22 bytes No se admiten valores Infinity y -Infinity
timestamp [(p)] [sin zona horaria] MARCA DE TIEMPO Fecha y hora (sin zona horaria)
  • No se admiten valores Infinity y -Infinity

  • No se admiten valores superiores a 9999-12-31

  • No se admiten valores de B.C.

timestamp [(p)] con zona horaria TIMESTAMPTZ Fecha y hora (con zona horaria)
  • No se admiten valores Infinity y -Infinity

  • No se admiten valores superiores a 9999-12-31

  • No se admiten valores de B.C.