Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Consideraciones
Tenga en cuenta estos comportamientos y limitaciones cuando utilice el conector de DynamoDB con Apache Spark o Apache Hive.
Consideraciones a la hora de utilizar el conector de DynamoDB con Apache Spark
-
Spark SQL no admite la creación de una tabla Hive con la opción de gestor de almacenamiento. Para obtener más información, consulte Especificación de un formato de tablas Hive
en la documentación de Apache Spark. -
Spark SQL no admite la
STORED BY
operación con el gestor de almacenamiento. Si desea interactuar con una tabla de DynamoDB a través de una tabla Hive externa, utilice Hive para crear primero la tabla. -
Para convertir una consulta en una consulta de DynamoDB, el conector de DynamoDB utiliza inserción de predicados. La inserción de predicados filtra los datos por una columna que está asignada a la clave de partición de una tabla de DynamoDB. La pulsación predicada solo funciona cuando se utiliza el conector con Spark SQL y no con el. MapReduce API
Consideraciones a la hora de utilizar el conector de DynamoDB con Apache Hive
Ajuste del número máximo de mapeadores
-
Si utiliza la
SELECT
consulta para leer datos de una tabla Hive externa que se asigna a DynamoDB, el número de tareas de mapa EMR en Serverless se calcula como el rendimiento de lectura total configurado para la tabla de DynamoDB, dividido por el rendimiento por tarea de mapa. El rendimiento predeterminado por tarea de asignación es 100. -
El trabajo de Hive puede utilizar un número de tareas de mapa superior al número máximo de contenedores configurados por aplicación EMR sin servidor, en función del rendimiento de lectura configurado para DynamoDB. Además, una consulta de Hive que tarde bastante en ejecutarse puede consumir toda la capacidad de lectura aprovisionada de la tabla de DynamoDB. Esto afecta negativamente a otros usuarios.
-
Puede usar la propiedad
dynamodb.max.map.tasks
para establecer un límite superior para las tareas de asignación. También puede utilizar esta propiedad para ajustar la cantidad de datos que lee cada tarea de asignación en función del tamaño del contenedor de tareas. -
Puede establecer la propiedad
dynamodb.max.map.tasks
en el nivel de consulta de Hive o en la clasificaciónhive-site
del comando start-job-run. Este valor debe ser igual o superior a 1. Cuando Hive procesa la consulta, el trabajo de Hive resultante no usa más que los valores dedynamodb.max.map.tasks
cuando realiza lecturas en la tabla de DynamoDB.
Ajuste del rendimiento de escritura por tarea
-
El rendimiento de escritura por tarea en EMR Serverless se calcula dividiendo el rendimiento de escritura total configurado para una tabla de DynamoDB por el valor de la propiedad.
mapreduce.job.maps
Para Hive, el valor predeterminado de esta propiedad es 2. Por lo tanto, las dos primeras tareas de la fase final del trabajo de Hive pueden consumir todo el rendimiento de escritura. Esto lleva a limitar la escritura de otras tareas del mismo trabajo o en otros trabajos. -
Para evitar la limitación de la escritura, puede establecer el valor de la propiedad
mapreduce.job.maps
en función del número de tareas de la etapa final o del rendimiento de escritura que desee asignar por tarea. Establezca esta propiedad en lamapred-site
clasificación del comando en Serverless. start-job-run EMR