Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Passaggio 2: prepara i dati da caricare utilizzando DSBulk
La preparazione dei dati di origine per un trasferimento efficiente è un processo in due fasi. Innanzitutto, i dati vengono randomizzati. Nella seconda fase, si analizzano i dati per determinare i valori dei dsbulk
parametri appropriati e le impostazioni della tabella richieste.
Randomizza i dati
Il dsbulk
comando legge e scrive i dati nello stesso ordine in cui appaiono nel file CSV. Se si utilizza il dsbulk
comando per creare il file sorgente, i dati vengono scritti in ordine di chiave nel file CSV. Internamente, Amazon Keyspaces partiziona i dati utilizzando chiavi di partizione. Sebbene Amazon Keyspaces disponga di una logica integrata per aiutare a bilanciare il carico delle richieste per la stessa chiave di partizione, il caricamento dei dati è più rapido ed efficiente se si rende casuale l'ordine. Questo perché puoi sfruttare il bilanciamento del carico integrato che si verifica quando Amazon Keyspaces scrive su partizioni diverse.
Per distribuire le scritture tra le partizioni in modo uniforme, devi randomizzare i dati nel file sorgente. È possibile scrivere un'applicazione per eseguire questa operazione o utilizzare uno strumento open source, come Shuf.
Per rendere casuale il file sorgente preservando l'intestazione, inserisci il codice seguente.
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 riscrive i dati in un nuovo file CSV chiamato. keyspace.table.csv
Ora puoi eliminare il keyspaces_sample_table.csv
file, non è più necessario.
Analizza i dati
Determina la dimensione media e massima delle righe analizzando i dati.
Lo fai per i seguenti motivi:
-
La dimensione media delle righe aiuta a stimare la quantità totale di dati da trasferire.
-
È necessaria la dimensione media delle righe per fornire la capacità di scrittura necessaria per il caricamento dei dati.
-
Puoi assicurarti che ogni riga abbia una dimensione inferiore a 1 MB, che è la dimensione massima delle righe in Amazon Keyspaces.
Nota
Questa quota si riferisce alla dimensione della riga, non alla dimensione della partizione. A differenza delle partizioni Apache Cassandra, le partizioni Amazon Keyspaces possono avere dimensioni praticamente illimitate. Le chiavi di partizione e le colonne di clustering richiedono spazio di archiviazione aggiuntivo per i metadati, che è necessario aggiungere alla dimensione grezza delle righe. Per ulteriori informazioni, consulta Calcolo della dimensione delle righe in Amazon Keyspaces.
Il codice seguente utilizza 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'esecuzione di questo codice produce il seguente risultato.
using 10,000 samples: {lines: 10000, avg: 123 bytes, max: 225 bytes}
Assicurati che la dimensione massima delle righe non superi 1 MB. In caso affermativo, devi suddividere la riga o comprimere i dati per portare la dimensione della riga al di sotto di 1 MB. Nel passaggio successivo di questo tutorial, utilizzerai la dimensione media delle righe per fornire la capacità di scrittura per la tabella.