Langkah 2: Siapkan data untuk diunggah menggunakan DSBulk - Amazon Keyspaces (untuk Apache Cassandra)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Langkah 2: Siapkan data untuk diunggah menggunakan DSBulk

Mempersiapkan data sumber untuk transfer yang efisien adalah proses dua langkah. Pertama, Anda mengacak data. Pada langkah kedua, Anda menganalisis data untuk menentukan nilai dsbulk parameter yang sesuai dan pengaturan tabel yang diperlukan.

Mengacak data

dsbulkPerintah membaca dan menulis data dalam urutan yang sama seperti yang muncul di CSV file. Jika Anda menggunakan dsbulk perintah untuk membuat file sumber, data ditulis dalam urutan kunci yang diurutkan dalam file. CSV Secara internal, Amazon Keyspaces mempartisi data menggunakan tombol partisi. Meskipun Amazon Keyspaces memiliki logika bawaan untuk membantu memuat permintaan keseimbangan untuk kunci partisi yang sama, memuat data lebih cepat dan lebih efisien jika Anda mengacak urutan. Ini karena Anda dapat memanfaatkan penyeimbangan beban bawaan yang terjadi saat Amazon Keyspaces menulis ke partisi yang berbeda.

Untuk menyebarkan tulisan di seluruh partisi secara merata, Anda harus mengacak data dalam file sumber. Anda dapat menulis aplikasi untuk melakukan ini atau menggunakan alat sumber terbuka, seperti Shuf. Shuf tersedia secara bebas di distribusi Linux, di macOS (dengan menginstal coreutils di homebrew), dan di Windows (dengan menggunakan Windows Subsystem for Linux ()). WSL Satu langkah tambahan diperlukan untuk mencegah baris header dengan nama kolom diacak pada langkah ini.

Untuk mengacak file sumber sambil mempertahankan header, masukkan kode berikut.

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 menulis ulang data ke CSV file baru bernama. keyspace.table.csv Anda sekarang dapat menghapus keyspaces_sample_table.csv file — Anda tidak lagi membutuhkannya.

Menganalisis data

Tentukan ukuran baris rata-rata dan maksimum dengan menganalisis data.

Anda melakukan ini karena alasan berikut:

  • Ukuran baris rata-rata membantu memperkirakan jumlah total data yang akan ditransfer.

  • Anda memerlukan ukuran baris rata-rata untuk menyediakan kapasitas tulis yang diperlukan untuk unggahan data.

  • Anda dapat memastikan bahwa setiap baris berukuran kurang dari 1 MB, yang merupakan ukuran baris maksimum di Amazon Keyspaces.

catatan

Kuota ini mengacu pada ukuran baris, bukan ukuran partisi. Tidak seperti partisi Apache Cassandra, partisi Amazon Keyspaces hampir tidak terikat ukurannya. Kunci partisi dan kolom pengelompokan memerlukan penyimpanan tambahan untuk metadata, yang harus Anda tambahkan ke ukuran baris mentah. Untuk informasi selengkapnya, lihat Perkirakan ukuran baris di Amazon Keyspaces.

Kode berikut digunakan AWKuntuk menganalisis CSV file dan mencetak ukuran baris rata-rata dan maksimum.

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

Menjalankan kode ini menghasilkan output berikut.

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

Pastikan ukuran baris maksimum Anda tidak melebihi 1 MB. Jika ya, Anda harus memecah baris atau mengompres data untuk membawa ukuran baris di bawah 1 MB. Pada langkah berikutnya dari tutorial ini, Anda menggunakan ukuran baris rata-rata untuk menyediakan kapasitas tulis untuk tabel.