Carga de datos desde DynamoDB en Amazon Redshift
Amazon Redshift complementa a Amazon DynamoDB con prestaciones avanzadas de inteligencia empresarial y una potente interfaz basada en SQL. Cuando se copian datos de una tabla de DynamoDB en Amazon Redshift, se pueden llevar a cabo consultas complejas de análisis de esos datos, lo que incluye uniones con otras tablas del clúster de Amazon Redshift.
En lo que respecta al rendimiento aprovisionado, una operación de copia desde una tabla de DynamoDB consume capacidad de lectura de esa tabla. Después de copiar los datos, las consultas SQL que se llevan a cabo en Amazon Redshift no afectan a DynamoDB de ningún modo. El motivo es que las consultas se ejecutan en una copia de los datos de DynamoDB y no en DynamoDB propiamente dicho.
Para poder cargar datos desde una tabla de DynamoDB, antes debe crear una tabla de Amazon Redshift que actuará como destino de los datos. Tenga en cuenta que, al hacerlo, estará copiando datos de un entorno NoSQL en un entorno SQL y que hay reglas que no se aplican por igual en ambos. A continuación se muestran algunas de las diferencias que deben tenerse en cuenta:
-
Los nombres de las tablas de DynamoDB pueden contener un máximo de 255 caracteres, incluidos “.” el punto “_”. Además, distinguen entre mayúsculas y minúsculas. Los nombres de las tablas de Amazon Redshift están limitados a 127 caracteres, no pueden contener puntos ni guiones y no distinguen entre mayúsculas y minúsculas. Los nombres de las tablas tampoco pueden entrar en conflicto con ninguna palabra reservada de Amazon Redshift.
-
DynamoDB no admite el concepto NULL de SQL. Debe especificar cómo debe interpretar Amazon Redshift los valores de atributos vacíos o en blanco de DynamoDB, para que los trate como NULL o como campos vacíos.
-
Los tipos de datos de DynamoDB no se corresponden directamente con los de Amazon Redshift. Debe asegurarse de que cada columna de la tabla de Amazon Redshift sea del tipo y el tamaño de datos correctos para adaptarse a los datos de DynamoDB.
A continuación se muestra un ejemplo de comando COPY de SQL en Amazon Redshift:
copy favoritemovies from 'dynamodb://my-favorite-movies-table' credentials 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-Secret-Access-Key>' readratio 50;
En este ejemplo, la tabla de origen de DynamoDB es my-favorite-movies-table
. La tabla de destino de Amazon Redshift esfavoritemovies
. La cláusula readratio 50
regula el porcentaje de desempeño provisionado que se consume; en este caso, el comando COPY utilizará como máximo un 50 % de las unidades de capacidad de lectura provisionadas para my-favorite-movies-table
. Recomendamos encarecidamente establecer este porcentaje en un valor menor que el promedio de desempeño provisionado sin utilizar.
Para obtener instrucciones detalladas sobre cómo cargar datos desde DynamoDB en Amazon Redshift, consulte las secciones siguientes de la Guía para desarrolladores de bases de datos Amazon Redshift: