Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Ruang Kunci Amazon: Cara kerjanya
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
High-level arsitektur: Apache Cassandra vs Amazon Keyspace
Apache Cassandra tradisional digunakan dalam cluster yang terdiri dari satu atau lebih node. Anda bertanggung jawab untuk mengelola setiap node dan menambahkan dan menghapus node saat cluster Anda berskala.
Program klien mengakses Cassandra dengan menghubungkan ke salah satu node dan mengeluarkan pernyataan Cassandra Query Language (CQL). CQL mirip dengan SQL, bahasa populer yang digunakan dalam database relasional. Meskipun Cassandra bukan database relasional, CQL menyediakan antarmuka yang akrab untuk menanyakan dan memanipulasi data di Cassandra.
Diagram berikut menunjukkan cluster Apache Cassandra sederhana, yang terdiri dari empat node.
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 pembacaan dan penulisan yang sebenarnya dilakukan aplikasi Anda. 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 dapat diprediksi.
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 secara otomatis dengan mengaktifkan penskalaan https://docs.aws.amazon.com/keyspaces/latest/devguide/autoscaling.html otomatis.
Anda dapat mengubah mode kapasitas tabel Anda sekali sehari 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, lihatKonfigurasikan mode read/write kapasitas di Amazon Keyspaces.
Amazon Keyspaces (untuk Apache Cassandra) menyimpan tiga salinan data Anda di beberapa Zona Keter sediaan
Diagram berikut menunjukkan arsitektur Amazon Keyspaces.
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 dengan SQL, 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 dulu
-
Tidak ada
JOINs di CQL. Oleh karena itu, Anda harus merancang tabel Anda dengan bentuk data Anda dan bagaimana Anda perlu mengaksesnya untuk kasus penggunaan bisnis Anda. Ini mungkin mengakibatkan de-normalisasi dengan data duplikat. Anda harus merancang setiap tabel Anda secara khusus untuk pola akses tertentu. - Partisi
-
Data Anda disimpan dalam partisi pada disk. Jumlah partisi di mana data Anda disimpan dan bagaimana itu didistribusikan di seluruh partisi ditentukan oleh kunci partisi Anda. Bagaimana Anda mendefinisikan kunci partisi Anda dapat memiliki dampak 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 cluster mana yang disimpan data. Kunci partisi dapat berupa kolom tunggal, atau bisa berupa nilai majemuk yang terdiri dari dua kolom atau lebih. 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 I/O operasi 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 dalam kunci utama Anda, kolom pengelompokan dapat memiliki satu atau lebih kolom. Jika ada beberapa kolom di kolom pengelompokan, urutan penyortiran ditentukan oleh urutan kolom yang terdaftar di kolom pengelompokan, dari kiri ke kanan.
-
Untuk informasi selengkapnya tentang desain NoSQL dan Amazon Keyspaces, lihat. Perbedaan utama dan prinsip-prinsip desain NoSQL Untuk informasi selengkapnya tentang Amazon Keyspaces dan pemodelan data, lihatPraktik terbaik pemodelan data: rekomendasi untuk merancang model data.
Mengakses Amazon Keyspaces dari aplikasi
Amazon Keyspaces (untuk Apache Cassandra) mengimplementasikan API Apache Cassandra Query Language (CQL), sehingga Anda dapat menggunakan driver CQL dan Cassandra yang sudah Anda gunakan. Memperbarui aplikasi Anda semudah memperbarui driver atau cqlsh konfigurasi Cassandra Anda untuk menunjuk ke titik akhir layanan Amazon Keyspaces. Untuk informasi selengkapnya tentang kredenSIAL yang diperlukan, lihatMembuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces.
catatan
Untuk membantu Anda memulai, Anda dapat menemukan contoh kode end-to-end untuk menghubungkan ke Amazon Keyspaces dengan menggunakan berbagai driver klien Cassandra di repositori contoh kode Amazon Keyspaces di. 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 cluster dan port: Misalnya, host dapat diganti dengan titik akhir layanan, seperti
cassandra---us-east-1.amazonaws.com.rproxy.govskope.cadan nomor port dengan:9142. -
Tambahkan TLS/SSL konfigurasi: Untuk informasi selengkapnya tentang menambahkan TLS/SSL konfigurasi untuk terhubung ke Amazon Keyspaces dengan menggunakan driver Python klien Cassandra, lihat. Menggunakan driver klien Cassandra Python untuk mengakses Amazon Keyspaces secara terprogram