Paso 2: Prepare los datos de origen para una carga de datos correcta - Amazon Keyspaces (para Apache Cassandra)

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.

Paso 2: Prepare los datos de origen para una carga de datos correcta

La preparación de los datos de origen para una transferencia eficaz es un proceso de dos pasos. En primer lugar, usted aleatoriza los datos. En el segundo paso, analiza los datos para determinar los valores de los cqlsh parámetros adecuados y la configuración de tabla necesaria para garantizar que la carga de datos se realice correctamente.

Aleatorización de los datos

El cqlsh COPY FROM comando lee y escribe los datos en el mismo orden en que aparecen en el CSV archivo. Si utiliza el cqlsh COPY TO comando para crear el archivo de origen, los datos se escriben ordenados por clave en. CSV Internamente, Amazon Keyspaces divide los datos utilizando claves de partición. Si bien Amazon Keyspaces tiene una lógica integrada para ayudar a equilibrar la carga de las solicitudes de la misma clave de partición, la carga de datos es más rápida y eficiente si aleatoriza el orden. Esto se debe a que puede aprovechar el equilibrio de carga integrado que se produce cuando Amazon Keyspaces escribe en diferentes particiones.

Para repartir las escrituras entre las particiones de manera uniforme, debe aleatorizar los datos en el archivo de origen. Puede escribir una aplicación para hacerlo o utilizar una herramienta de código abierto, como Shuf. Shuf está disponible gratuitamente en las distribuciones de Linux, en macOS (mediante la instalación de coreutils en homebrew) y en Windows (mediante el subsistema de Windows para Linux ()). WSL Se requiere un paso adicional para evitar que la fila del encabezado con los nombres de las columnas se baraje en este paso.

Para aleatorizar el archivo de origen conservando el encabezado, introduzca el siguiente código.

tail -n +2 keyspaces_sample_table.csv | shuf -o keyspace.table.csv && (head -1 keyspaces_sample_table.csv && cat keyspace.table.csv ) > keyspace.table.csv1 && mv keyspace.table.csv1 keyspace.table.csv

Shuf reescribe los datos en un nuevo archivo llamado. CSV keyspace.table.csv Ahora puede eliminar el archivo keyspaces_sample_table.csv, dado que ya no lo necesita.

Análisis de los datos

Determine el tamaño medio y máximo de las filas analizando los datos.

Debe hacerlo por las siguientes razones:

  • El tamaño medio de fila ayuda a estimar la cantidad total de datos que se van a transferir.

  • Necesita el tamaño medio de fila para aprovisionar la capacidad de escritura necesaria para la carga de datos.

  • Puede asegurarse de que cada fila tenga un tamaño inferior a 1 MB, que es el tamaño máximo de fila en Amazon Keyspaces.

nota

Esta cuota se refiere al tamaño de fila, no al de la partición. A diferencia de las particiones de Apache Cassandra, las particiones de Amazon Keyspaces pueden tener un tamaño prácticamente ilimitado. Las claves de partición y las columnas de agrupación requieren almacenamiento adicional para los metadatos, que debe añadir al tamaño bruto de las filas. Para obtener más información, consulte Estime el tamaño de las filas en Amazon Keyspaces.

El siguiente código se utiliza AWKpara analizar un CSV archivo e imprimir el tamaño medio y máximo de las filas.

awk -F, 'BEGIN {samp=10000;max=-1;}{if(NR>1){len=length($0);t+=len;avg=t/NR;max=(len>max ? len : max)}}NR==samp{exit}END{printf("{lines: %d, average: %d bytes, max: %d bytes}\n",NR,avg,max);}' keyspace.table.csv

La ejecución de este código da como resultado la siguiente salida.

using 10,000 samples: {lines: 10000, avg: 123 bytes, max: 225 bytes}

El tamaño medio de fila se utiliza en el siguiente paso de este tutorial para aprovisionar la capacidad de escritura de la tabla.