Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Amazon Keyspaces menghapus overhead administratif pengelolaan Cassandra. Untuk memahami alasannya, akan sangat membantu untuk memulai dengan arsitektur Cassandra dan kemudian membandingkannya dengan Amazon Keyspaces.
Topik
Arsitektur tingkat tinggi: Apache Cassandra vs Amazon Keyspaces
Apache Cassandra tradisional digunakan dalam sebuah cluster yang terdiri dari satu atau lebih node. Anda bertanggung jawab untuk mengelola setiap node dan menambahkan serta menghapus node sebagai skala cluster Anda.
Program klien mengakses Cassandra dengan menghubungkan ke salah satu node dan mengeluarkan pernyataan Cassandra Query Language (). CQL CQLmirip denganSQL, bahasa populer yang digunakan dalam database relasional. Meskipun Cassandra bukan database relasional, CQL menyediakan antarmuka yang akrab untuk query dan memanipulasi data di Cassandra.
Diagram berikut menunjukkan cluster Apache Cassandra sederhana, yang terdiri dari empat node.
![Diagram cluster Apache Cassandra yang berisi 4 node dan berinteraksi dengan aplikasi klien.](images/keyspaces_cassandra-hi-level.png)
Penyebaran Cassandra produksi mungkin terdiri dari ratusan node, berjalan pada ratusan komputer fisik di satu atau lebih pusat data fisik. Hal ini dapat menyebabkan beban operasional bagi pengembang aplikasi yang perlu menyediakan, menambal, dan mengelola server selain menginstal, memelihara, dan mengoperasikan perangkat lunak.
Dengan Amazon Keyspaces (untuk Apache Cassandra), Anda tidak perlu menyediakan, menambal, atau mengelola server, sehingga Anda dapat fokus membangun aplikasi yang lebih baik. Amazon Keyspaces menawarkan dua mode kapasitas throughput untuk membaca dan menulis: sesuai permintaan dan disediakan. Anda dapat memilih mode kapasitas throughput tabel Anda untuk mengoptimalkan harga pembacaan dan penulisan berdasarkan prediktabilitas dan variabilitas beban kerja Anda.
Dengan mode on-demand, Anda hanya membayar untuk membaca dan menulis bahwa aplikasi Anda benar-benar bekerja. Anda tidak perlu menentukan kapasitas throughput tabel Anda terlebih dahulu. Amazon Keyspaces mengakomodasi lalu lintas aplikasi Anda hampir secara instan saat naik atau turun, menjadikannya pilihan yang baik untuk aplikasi dengan lalu lintas yang tidak terduga.
Mode kapasitas yang disediakan membantu Anda mengoptimalkan harga throughput jika Anda memiliki lalu lintas aplikasi yang dapat diprediksi dan dapat memperkirakan persyaratan kapasitas tabel Anda sebelumnya. Dengan mode kapasitas yang disediakan, Anda menentukan jumlah pembacaan dan penulisan per detik yang Anda harapkan untuk dilakukan aplikasi Anda. Anda dapat menambah dan mengurangi kapasitas yang disediakan untuk tabel Anda secara otomatis dengan mengaktifkan penskalaan otomatis.
Anda dapat mengubah mode kapasitas tabel Anda sekali per hari saat Anda mempelajari lebih lanjut tentang pola lalu lintas beban kerja Anda, atau jika Anda berharap memiliki ledakan lalu lintas yang besar, seperti dari peristiwa besar yang Anda antisipasi akan mendorong banyak lalu lintas tabel. Untuk informasi selengkapnya tentang penyediaan kapasitas baca dan tulis, lihat. Konfigurasikan mode kapasitas baca/tulis di Amazon Keyspaces
Amazon Keyspaces (untuk Apache Cassandra) menyimpan tiga salinan data Anda di beberapa Availability Zone untuk daya tahan dan ketersediaan tinggi
Diagram berikut menunjukkan arsitektur Amazon Keyspaces.
![Diagram Amazon Keyspaces berinteraksi dengan aplikasi klien.](images/keyspaces-hi-level.png)
Program klien mengakses Amazon Keyspaces dengan menghubungkan ke titik akhir yang telah ditentukan (nama host dan nomor port) dan mengeluarkan pernyataan. CQL Untuk daftar titik akhir yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.
Model data Cassandra
Cara Anda memodelkan data untuk kasus bisnis Anda sangat penting untuk mencapai kinerja optimal dari Amazon Keyspaces. Model data yang buruk dapat menurunkan kinerja secara signifikan.
Meskipun CQL terlihat mirip denganSQL, backend Cassandra dan database relasional sangat berbeda dan harus didekati secara berbeda. Berikut ini adalah beberapa masalah yang lebih signifikan untuk dipertimbangkan:
- Penyimpanan
-
Anda dapat memvisualisasikan data Cassandra Anda dalam tabel, dengan setiap baris mewakili catatan dan setiap kolom bidang dalam catatan itu.
- Desain tabel: Kueri terlebih dahulu
-
Tidak ada
JOIN
s diCQL. Oleh karena itu, Anda harus mendesain tabel Anda dengan bentuk data Anda dan bagaimana Anda perlu mengaksesnya untuk kasus penggunaan bisnis Anda. Ini dapat mengakibatkan de-normalisasi dengan data duplikat. Anda harus mendesain setiap tabel Anda secara khusus untuk pola akses tertentu. - Partisi
-
Data Anda disimpan dalam partisi pada disk. Jumlah partisi data Anda disimpan dan bagaimana itu didistribusikan di seluruh partisi ditentukan oleh kunci partisi Anda. Bagaimana Anda mendefinisikan kunci partisi Anda dapat memiliki dampak yang signifikan pada kinerja kueri Anda. Untuk praktik terbaik, lihat Cara menggunakan kunci partisi secara efektif di Amazon Keyspaces.
- Kunci utama
-
Di Cassandra, data disimpan sebagai pasangan kunci-nilai. Setiap tabel Cassandra harus memiliki kunci utama, yang merupakan kunci unik untuk setiap baris dalam tabel. Kunci utama adalah gabungan dari kunci partisi yang diperlukan dan kolom pengelompokan opsional. Data yang terdiri dari kunci utama harus unik di semua catatan dalam tabel.
-
Kunci partisi — Bagian kunci partisi dari kunci utama diperlukan dan menentukan partisi mana dari cluster Anda tempat data disimpan. Kunci partisi dapat berupa kolom tunggal, atau dapat berupa nilai majemuk yang terdiri dari dua atau lebih kolom. Anda akan menggunakan kunci partisi majemuk jika kunci partisi kolom tunggal akan menghasilkan partisi tunggal atau sangat sedikit partisi yang memiliki sebagian besar data dan dengan demikian menanggung sebagian besar operasi I/O disk.
-
Kolom pengelompokan - Bagian kolom pengelompokan opsional dari kunci utama Anda menentukan bagaimana data dikelompokkan dan diurutkan dalam setiap partisi. Jika Anda menyertakan kolom pengelompokan di kunci utama Anda, kolom pengelompokan dapat memiliki satu atau beberapa kolom. Jika ada beberapa kolom di kolom pengelompokan, urutan penyortiran ditentukan oleh urutan kolom yang tercantum di kolom pengelompokan, dari kiri ke kanan.
-
Untuk informasi selengkapnya tentang Tidak ada SQL desain dan Amazon Keyspaces, lihat. Perbedaan utama dan prinsip desain desain NoSQL Untuk informasi selengkapnya tentang Amazon Keyspaces dan pemodelan data, lihat. Praktik terbaik pemodelan data: rekomendasi untuk merancang model data
Mengakses Amazon Keyspaces dari aplikasi
Amazon Keyspaces (untuk Apache Cassandra) mengimplementasikan Apache Cassandra Query Language (CQL)API, sehingga Anda dapat menggunakan dan driver Cassandra yang sudah Anda gunakan. CQL Memperbarui aplikasi Anda semudah memperbarui driver atau cqlsh
konfigurasi Cassandra Anda untuk menunjuk ke titik akhir layanan Amazon Keyspaces. Untuk informasi selengkapnya tentang kredensil yang diperlukan, lihat. Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces
catatan
Untuk membantu Anda memulai, Anda dapat menemukan contoh end-to-end kode untuk menghubungkan ke Amazon Keyspaces dengan menggunakan berbagai driver klien Cassandra di repositori contoh kode Amazon Keyspaces. GitHub
Pertimbangkan program Python berikut, yang menghubungkan ke cluster Cassandra dan menanyakan tabel.
from cassandra.cluster import Cluster
#TLS/SSL configuration goes here
ksp = 'MyKeyspace'
tbl = 'WeatherData'
cluster = Cluster(['NNN.NNN.NNN.NNN'], port=NNNN)
session = cluster.connect(ksp)
session.execute('USE ' + ksp)
rows = session.execute('SELECT * FROM ' + tbl)
for row in rows:
print(row)
Untuk menjalankan program yang sama terhadap Amazon Keyspaces, Anda perlu:
-
Tambahkan titik akhir dan port cluster: Misalnya, host dapat diganti dengan titik akhir layanan, seperti
cassandra.us-east-2.amazonaws.com
dan nomor port dengan:.9142
-
Tambahkan SSL konfigurasiTLS/: Untuk informasi selengkapnya tentang menambahkan SSL konfigurasiTLS/untuk terhubung ke Amazon Keyspaces dengan menggunakan driver Python klien Cassandra, lihat. Menggunakan driver klien Cassandra Python untuk mengakses Amazon Keyspaces secara terprogram