Amazon Dynamodb Export a S3

Amazon Dynamodb Export a S3
Puede exportar con conveniencia los datos de una tabla AWS DynamodB a un cubo de Amazon S3. Esto puede suceder en cualquier momento siempre que esté dentro de su ventana de recuperación de punto en el tiempo. Esta característica le permite hacer una copia de seguridad de sus datos.

Además, la importación de datos de una tabla en particular a un cubo S3 le permite procesar consultas complejas y realizar análisis en sus datos utilizando AWS Glue, Lake Formation y Athena. La función de exportación de la tabla Dynamodb es una solución completamente administrada, confiable y rápida. Aún más, la exportación de una tabla no consume la capacidad de lectura de la tabla ni afecta su rendimiento y disponibilidad.

Este artículo analiza todo lo que debe saber sobre la exportación de tablas DynamodB a Amazon S3. Aprenderá a exportar tablas DynamodB a S3 usando Boto3.

Cómo exportar datos de Dynamodb a Amazon S3

Para exportar datos de Amazon DynamoDB a Amazon S3, puede usar el servicio de tuberías de datos de AWS y configurarlos para exportar periódicamente los datos de su tabla DynamodB a un cubo S3. También es posible utilizar el servicio AWS Glue para exportar datos de Dynamodb a S3 creando un rastreador de pegamento que apunta a su tabla DynamodB y un trabajo de pegamento que exporta los datos a S3.

Otro enfoque sería usar los SDK de AWS para escribir un script que exporta datos de su tabla DynamodB a S3. El script usaría la API DynamodB para escanear o consultar la tabla y luego la API S3 para escribir los datos en un cubo.

Los siguientes son los pasos involucrados al exportar una tabla DynamodB a Amazon S3:

Paso 1: Instale la biblioteca Boto3

Puedes usar el PIP Instalar Boto3 Comando para instalar la biblioteca Boto3, que es el SDK de Amazon Web Services (AWS) para Python. En particular, la biblioteca permite a los desarrolladores de Python escribir software que utiliza servicios como Amazon S3 y Amazon EC2.

El código de instalación es como se muestra a continuación:

PIP Instalar Boto3

Paso 2: Importar las bibliotecas requeridas

El importar boto3 y importar json Los servicios públicos importan las bibliotecas necesarias para su script. Boto3 es útil para interactuar con los servicios de AWS, mientras que JSON se usa para leer y escribir datos JSON.

Tu línea de comando debería verse así:

importar boto3
importar json

Paso 3: Crear clientes para Dynamodb y S3

Utilizará clientes para entrelazar con S3 y Dynamodb. Para lograr esto, necesitará usar Dynamodb = Boto3.Cliente ('Dynamodb') y S3 = Boto3.Cliente ('S3') Comandos para crear clientes para Dynamodb y Amazon S3, respectivamente.

Puede usar la línea de comando a continuación:

Dynamodb = Boto3.Cliente ('Dynamodb')
S3 = Boto3.Cliente ('S3')

Paso 4: Especifique el nombre de su tabla y el nombre del cubo S3

Defina su tabla y los nombres de cubos S3 utilizando los códigos a continuación:

table_name = 'mytableName'
bucket_name = 'myBucketName'

Paso 5: use la operación de escaneo para recuperar elementos

Puede usar las operaciones de escaneo o consulta para recuperar todos los elementos de su mesa. En esta ilustración, utilizaremos la operación de escaneo para la recuperación de elementos como se muestra:

Result = Dynamodb.Scan (TableName = table_name)

Paso 6: escriba elementos en un archivo

Use el sistema de archivos local para escribir elementos en un archivo. El archivo tomará automáticamente los datos del nombre '.JSON 'en el sistema de archivos local. Esta utilidad debería ayudar:

con datos abiertos ('.json ',' w ') como data_file:
archivo de datos.escribir (json.volcados (resultado ['elementos']))

Paso 7: Cargue el nuevo archivo en Amazon S3

Ahora puede cargar su archivo a su cubo S3 especificado usando la línea de comando a continuación:

s3.upload_file ('datos.json ', bucket_name,' datos.json ')

Paso 8: Validar los datos

Este paso es opcional pero ideal si desea validar sus datos. Puede realizar el procedimiento de validación descargando el archivo de Amazon S3 antes de leerlo.

Conclusión

Es vital tener en cuenta que el script es un ejemplo básico y solo puede ser adecuado para algunos conjuntos de datos. Para conjuntos de datos grandes, considere usar el boto3.dinamodb.tipos.Tystingerializer para serializar o formatear los elementos y paginar a través de los resultados utilizando el dinamodb.escanear() método. El Límite y ExcusiveStartkey Los parámetros serán útiles durante la paginación.