Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Étape 2 : Préparation des données sources pour un téléchargement de données réussi
La préparation des données sources pour un transfert efficace est un processus en deux étapes. Tout d'abord, vous répartissez les données de manière aléatoire. Au cours de la deuxième étape, vous analysez les données pour déterminer les valeurs de cqlsh
paramètres appropriées et les paramètres de table requis afin de garantir le succès du téléchargement des données.
Randomiser les données
La cqlsh COPY FROM
commande lit et écrit les données dans l'ordre dans lequel elles apparaissent dans le CSV fichier. Si vous utilisez la cqlsh COPY TO
commande pour créer le fichier source, les données sont écrites dans l'ordre trié par clé dans le. CSV En interne, Amazon Keyspaces partitionne les données à l'aide de clés de partition. Bien qu'Amazon Keyspaces intègre une logique permettant d'équilibrer la charge des demandes pour la même clé de partition, le chargement des données est plus rapide et plus efficace si vous répartissez la commande de manière aléatoire. En effet, vous pouvez tirer parti de l'équilibrage de charge intégré qui se produit lorsque Amazon Keyspaces écrit sur différentes partitions.
Pour répartir uniformément les écritures sur les partitions, vous devez répartir les données de manière aléatoire dans le fichier source. Vous pouvez écrire une application pour cela ou utiliser un outil open source, tel que Shuf
Pour randomiser le fichier source tout en préservant l'en-tête, entrez le code suivant.
tail -n +2
keyspaces_sample_table.csv
| shuf -okeyspace.table.csv
&& (head -1keyspaces_sample_table.csv
&& cat keyspace.table.csv ) >keyspace.table.csv1
&& mvkeyspace.table.csv1
keyspace.table.csv
Shuf réécrit les données dans un nouveau CSV fichier appelé. keyspace.table.csv
Vous pouvez désormais supprimer le keyspaces_sample_table.csv
fichier, vous n'en avez plus besoin.
Analyser les données
Déterminez la taille moyenne et maximale des lignes en analysant les données.
Vous le faites pour les raisons suivantes :
-
La taille moyenne des lignes permet d'estimer la quantité totale de données à transférer.
-
Vous avez besoin de la taille de ligne moyenne pour fournir la capacité d'écriture nécessaire au téléchargement des données.
-
Vous pouvez vous assurer que la taille de chaque ligne est inférieure à 1 Mo, ce qui correspond à la taille de ligne maximale dans Amazon Keyspaces.
Note
Ce quota fait référence à la taille des lignes et non à la taille de la partition. Contrairement aux partitions Apache Cassandra, les partitions Amazon Keyspaces peuvent être de taille pratiquement indépendante. Les clés de partition et les colonnes de clustering nécessitent un espace de stockage supplémentaire pour les métadonnées, que vous devez ajouter à la taille brute des lignes. Pour de plus amples informations, veuillez consulter Estimer la taille des lignes dans Amazon Keyspaces.
Le code suivant permet AWK
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
L'exécution de ce code génère le résultat suivant.
using 10,000 samples: {lines: 10000, avg: 123 bytes, max: 225 bytes}
Vous utiliserez la taille de ligne moyenne à l'étape suivante de ce didacticiel pour configurer la capacité d'écriture de la table.