Exportación, importación, consulta y unión de tablas en DynamoDB mediante Amazon EMR
nota
El conector de Amazon EMR-DynamoDB tiene código abierto en GitHub. Para obtener más información, consulte https://github.com/awslabs/emr-dynamodb-connector
DynamoDB es un servicio de bases de datos NoSQL totalmente administrado que proporciona un rendimiento rápido y predecible, así como una perfecta escalabilidad. Los desarrolladores pueden crear una tabla de base de datos y ampliar su tráfico de solicitudes o almacenamiento sin límite. DynamoDB distribuye automáticamente los datos y el tráfico para la tabla entre un número de servidores suficiente para administrar la capacidad de solicitudes que el cliente especifique y la cantidad de datos almacenados, manteniendo al mismo tiempo un rendimiento uniforme y rápido. Mediante Amazon EMR y Hive puede procesar de forma rápida y eficaz grandes cantidades de datos, como, por ejemplo, datos almacenados en DynamoDB. Para obtener más información sobre DynamoDB, consulte la Guía para desarrolladores de Amazon DynamoDB.
Apache Hive es una capa de software que puede utilizar para consultar clústeres de MapReduce utilizando un lenguaje de consultas de tipo SQL simplificado denominado HiveQL. Se ejecuta sobre la arquitectura de Hadoop. Para obtener más información acerca de Hive y HiveQL, consulte el HiveQL Language Manual
Puede utilizar Amazon EMR con una versión personalizada de Hive que incluye conectividad con DynamoDB para realizar operaciones con los datos almacenados en DynamoDB:
-
Cargar datos de DynamoDB en Sistema de archivos distribuido de Hadoop (HDFS) y utilizarlos como entrada en un clúster de Amazon EMR.
-
Consultar datos de DynamoDB en directo utilizando instrucciones similares a SQL (HiveQL).
-
Unir datos almacenados en DynamoDB y exportarlos o consultar respecto a los datos unidos.
-
Exportación de datos almacenados en DynamoDB a Amazon S3.
-
Importación de datos almacenados en Amazon S3 a DynamoDB.
nota
- El conector Amazon EMR-DynamoDB no es compatible con clústeres configurados para utilizar la autenticación Kerberos.
Para realizar cada una de las siguientes tareas, lanzará un clúster de Amazon EMR, especificará la ubicación de los datos en DynamoDB y emitirá comandos de Hive para manipular los datos en DynamoDB.
Hay varias formas de lanzar un clúster de Amazon EMR: puede utilizar la consola de Amazon EMR, la interfaz de línea de comandos (CLI) o puede programar su clúster con un SDK de AWS o la API de Amazon EMR. También puede elegir si desea ejecutar un clúster de Hive de forma interactiva o a partir de un script. En esta sección le mostraremos cómo lanzar un clúster de Hive interactivo desde la consola de Amazon EMR y en la CLI.
Utilizar Hive de forma interactiva es una forma fantástica de probar el rendimiento de las consultas y ajustar su aplicación. Después de que haya establecido un conjunto de comandos de Hive que se ejecutarán de forma periódica, considere la posibilidad de crear un script de Hive que Amazon EMR puede ejecutar por usted.
aviso
Las operaciones de lectura o escritura de Amazon EMR en una tabla de DynamoDB se tienen en cuenta para el rendimiento aprovisionado establecido, por lo que es posible que aumente la frecuencia de las excepciones de rendimiento aprovisionado. En el caso de solicitudes de gran tamaño, Amazon EMR implementa los reintentos con retroceso exponencial para administrar la carga de solicitudes en la tabla de DynamoDB. La ejecución de tareas de Amazon EMR de forma simultánea con otro tráfico podría provocar que supere el nivel de rendimiento aprovisionado asignado. Puede monitorizar esto comprobando la métrica ThrottleRequests en Amazon CloudWatch. Si la carga de solicitudes es demasiado elevada, puede volver a lanzar el clúster y definir Ajuste de porcentaje de lectura o Configuración de porcentaje de escritura en un valor inferior para limitar las operaciones de Amazon EMR. Para obtener información sobre la configuración de rendimiento de DynamoDB, consulte Rendimiento aprovisionado.
Si una tabla está configurada para el modo bajo demanda, debe volver a cambiarlo al modo aprovisionado antes de ejecutar una operación de exportación o importación. Las canalizaciones necesitan una relación de rendimiento para calcular los recursos que se van a utilizar desde una tabla de DynamoDB. El modo bajo demanda elimina el rendimiento aprovisionado. Para aprovisionar la capacidad de rendimiento, puede utilizar las métricas de Eventos de Amazon CloudWatch para evaluar el rendimiento agregado que ha utilizado una tabla.