Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Migrasikan beban kerja Apache Cassandra ke Amazon Keyspaces dengan menggunakan AWS Glue
Nikolai Kolesnikov, Karthiga Priya Chandran, dan Samir Patel, Amazon Web Services
Ringkasan
Pola ini menunjukkan cara memigrasikan beban kerja Apache Cassandra yang ada ke Amazon Keyspaces (untuk Apache Cassandra) dengan menggunakan AWS Glue. CQLReplicator Anda dapat menggunakan CQLReplicator AWS Glue untuk meminimalkan kelambatan replikasi migrasi beban kerja Anda hingga hitungan menit. Anda juga mempelajari cara menggunakan bucket Amazon Simple Storage Service (Amazon S3) untuk menyimpan data yang diperlukan untuk migrasi, termasuk file Apache
Prasyarat dan batasan
Prasyarat
Cluster Cassandra dengan tabel sumber
Tabel target di Amazon Keyspaces untuk mereplikasi beban kerja
Bucket S3 untuk menyimpan file Parket perantara yang berisi perubahan data tambahan
Bucket S3 untuk menyimpan file dan skrip konfigurasi pekerjaan
Batasan
CQLReplicator pada AWS Glue memerlukan waktu untuk menyediakan Data Processing Units (DPUs) untuk beban kerja Cassandra. Jeda replikasi antara cluster Cassandra dan ruang kunci target dan tabel di Amazon Keyspaces kemungkinan akan berlangsung hanya dalam hitungan menit.
Arsitektur
Tumpukan teknologi sumber
Apache Cassandra
DataStax Peladen
ScyllaDB
Tumpukan teknologi target
Amazon Keyspaces
Arsitektur migrasi
Diagram berikut menunjukkan contoh arsitektur di mana cluster Cassandra di-host pada EC2 instance dan tersebar di tiga Availability Zone. Node Cassandra di-host di subnet pribadi.

Diagram menunjukkan alur kerja berikut:
Peran layanan khusus menyediakan akses ke Amazon Keyspaces dan bucket S3.
Pekerjaan AWS Glue membaca konfigurasi pekerjaan dan skrip di bucket S3.
Pekerjaan AWS Glue terhubung melalui port 9042 untuk membaca data dari cluster Cassandra.
Pekerjaan AWS Glue terhubung melalui port 9142 untuk menulis data ke Amazon Keyspaces.
Alat
Layanan dan alat AWS
AWS Command Line Interface (AWS CLI) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.
AWS CloudShell adalah shell berbasis browser yang dapat Anda gunakan untuk mengelola layanan AWS dengan menggunakan AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) dan berbagai alat pengembangan yang telah diinstal sebelumnya.
AWS Glue adalah layanan ETL yang dikelola sepenuhnya yang membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data.
Amazon Keyspaces (untuk Apache Cassandra) adalah layanan database terkelola yang membantu Anda memigrasi, menjalankan, dan menskalakan beban kerja Cassandra Anda di AWS Cloud.
Kode
Kode untuk pola ini tersedia di GitHub CQLReplicator
Praktik terbaik
Untuk menentukan sumber daya AWS Glue yang diperlukan untuk migrasi, perkirakan jumlah baris dalam tabel sumber Cassandra. Misalnya, 250 K baris per 0,25 DPU (2 vCPUs, memori 4 GB) dengan disk 84 GB.
Tabel Amazon Keyspaces pra-hangat sebelum dijalankan. CQLReplicator Misalnya, delapan CQLReplicator ubin (AWS Glue jobs) dapat menulis hingga 22 K WCUs per detik, sehingga target harus dipanaskan terlebih dahulu hingga 25-30 K WCUs per detik.
Untuk mengaktifkan komunikasi antara komponen AWS Glue, gunakan aturan masuk referensi mandiri untuk semua port TCP di grup keamanan Anda.
Gunakan strategi lalu lintas tambahan untuk mendistribusikan beban kerja migrasi dari waktu ke waktu.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat keyspace target dan tabel. |
| Pemilik aplikasi, administrator AWS, DBA, Pengembang aplikasi |
Konfigurasikan driver Cassandra untuk terhubung ke Cassandra. | Gunakan skrip konfigurasi berikut:
catatanSkrip sebelumnya menggunakan Spark Cassandra Connector. Untuk informasi lebih lanjut, lihat konfigurasi referensi untuk Cassandra | DBA |
Konfigurasikan driver Cassandra untuk terhubung ke Amazon Keyspaces. | Gunakan skrip konfigurasi berikut:
catatanSkrip sebelumnya menggunakan Spark Cassandra Connector. Untuk informasi lebih lanjut, lihat konfigurasi referensi untuk Cassandra | DBA |
Buat peran IAM untuk pekerjaan AWS Glue. | Buat peran layanan AWS baru yang catatan
| AWS DevOps |
Unduh CQLReplicator di AWS CloudShell. | Unduh proyek ke folder rumah Anda dengan menjalankan perintah berikut:
| |
Ubah file konfigurasi referensi. | Salin | AWS DevOps |
Memulai proses migrasi. | Perintah berikut menginisialisasi CQLReplicator lingkungan. Inisialisasi melibatkan penyalinan artefak.jar, dan membuat konektor AWS Glue, bucket S3, pekerjaan AWS Glue, keyspace, dan tabel:
Skrip mencakup parameter berikut:
| AWS DevOps |
Validasi penerapan. | Setelah Anda menjalankan perintah sebelumnya, akun AWS harus berisi yang berikut:
| AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Mulai proses migrasi. | Untuk beroperasi CQLReplicator pada AWS Glue, Anda perlu menggunakan Untuk mereplikasi beban kerja dari cluster Cassandra ke Amazon Keyspaces, jalankan perintah berikut:
Ruang kunci dan tabel sumber Anda ada Untuk mereplikasi pembaruan, tambahkan | AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Validasi baris Cassandra yang dimigrasi selama fase migrasi historis. | Untuk mendapatkan jumlah baris yang direplikasi selama fase penimbunan ulang, jalankan perintah berikut:
| AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Gunakan | Untuk menghentikan proses migrasi dengan anggun, jalankan perintah berikut:
Untuk segera menghentikan proses migrasi, gunakan konsol AWS Glue. | AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Hapus sumber daya yang digunakan. | Perintah berikut akan menghapus tabel AWS Glue job, konektor, bucket S3, dan
| AWS DevOps |
Pemecahan Masalah
| Isu | Solusi |
|---|---|
Pekerjaan AWS Glue gagal dan mengembalikan kesalahan Kehabisan Memori (OOM). |
|
Sumber daya terkait
Informasi tambahan
Pertimbangan migrasi
Anda dapat menggunakan AWS Glue untuk memigrasikan beban kerja Cassandra Anda ke Amazon Keyspaces, sambil menjaga database sumber Cassandra Anda berfungsi sepenuhnya selama proses migrasi. Setelah replikasi selesai, Anda dapat memilih untuk memotong aplikasi Anda ke Amazon Keyspaces dengan jeda replikasi minimal (kurang dari menit) antara cluster Cassandra dan Amazon Keyspaces. Untuk menjaga konsistensi data, Anda juga dapat menggunakan pipeline serupa untuk mereplikasi data kembali ke cluster Cassandra dari Amazon Keyspaces.
Tulis perhitungan unit
Sebagai contoh, pertimbangkan bahwa Anda bermaksud menulis 500.000.000 dengan ukuran baris 1 KiB selama satu jam. Jumlah total unit tulis Amazon Keyspaces (WCUs) yang Anda butuhkan didasarkan pada perhitungan ini:
(number of rows/60 mins 60s) 1 WCU per row = (500,000,000/(60*60s) * 1 WCU) = 69,444 WCUs required
69.444 WCUs per detik adalah tarif untuk 1 jam, tetapi Anda dapat menambahkan beberapa bantal untuk overhead. Misalnya, 69,444 * 1.10 = 76,388 WCUs memiliki overhead 10 persen.
Buat keyspace dengan menggunakan CQL
Untuk membuat keyspace dengan menggunakan CQL, jalankan perintah berikut:
CREATE KEYSPACE target_keyspace WITH replication = {'class': 'SingleRegionStrategy'} CREATE TABLE target_keyspace.target_table ( userid uuid, level text, gameid int, description text, nickname text, zip text, email text, updatetime text, PRIMARY KEY (userid, level, gameid) ) WITH default_time_to_live = 0 AND CUSTOM_PROPERTIES = {'capacity_mode':{ 'throughput_mode':'PROVISIONED', 'write_capacity_units':76388, 'read_capacity_units':3612 }} AND CLUSTERING ORDER BY (level ASC, gameid ASC)