Tengo un enorme archivo .csv en mi máquina local. Quiero cargar esos datos en un DynamoDB (eu-west-1, Irlanda). ¿Cómo lo harías tú?
Mi primer acercamiento fue:
curl -X POST -d '<row>' .../connector/mydataNo me gusta esa solución porque:
También estaba considerando poner el archivo en un depósito S3 y procesarlo con una lambda , pero el archivo es enorme y la memoria y los límites de tiempo de la lambda me asustan.
También estoy considerando hacer el trabajo en una máquina EC2, pero pierdo reactividad (si apago la máquina mientras no la uso) o pierdo dinero (si no apago la máquina).
Me dijeron que Kinesis puede ser una solución, pero no estoy convencido.
Dígame cuál sería el mejor enfoque para obtener el huge CSV en DynamoDB si fuera yo. Quiero minimizar la carga de trabajo para una "segunda" carga.
Prefiero usar Node.js o R. Python puede ser aceptable como última solución.
Si desea hacerlo a la manera de AWS, las canalizaciones de datos pueden ser el mejor enfoque:
Aquí hay un tutorial que hace un poco más de lo que necesita, pero debería ayudarlo a comenzar:
La primera parte de este tutorial explica cómo definir una canalización de AWS Data Pipeline para recuperar datos de un archivo delimitado por tabuladores en Amazon S3 para completar una tabla de DynamoDB, usar un script de Hive para definir los pasos de transformación de datos necesarios y crear automáticamente un Amazon Clúster EMR para realizar el trabajo.
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-importexport-ddb-part1.html
Si todos sus datos están en S3, puede usar la plantilla predefinida de canalización de datos de AWS para "importar datos de DynamoDB desde S3". Debería ser fácil de configurar.