Bekerja dengan baris di Amazon Keyspaces - 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.

Bekerja dengan baris di Amazon Keyspaces

Bagian ini memberikan rincian tentang bekerja dengan baris di Amazon Keyspaces (untuk Apache Cassandra). Tabel adalah struktur data utama di Amazon Keyspaces dan data dalam tabel diatur ke dalam kolom dan baris.

Menghitung ukuran baris di Amazon Keyspaces

Amazon Keyspaces menyediakan penyimpanan terkelola penuh yang menawarkan kinerja baca dan tulis milidetik satu digit dan menyimpan data secara tahan lama di beberapa Availability Zone. AWS Amazon Keyspaces melampirkan metadata ke semua baris dan kolom kunci utama untuk mendukung akses data yang efisien dan ketersediaan tinggi.

Bagian ini memberikan detail tentang cara memperkirakan ukuran baris yang dikodekan di Amazon Keyspaces. Ukuran baris yang dikodekan digunakan saat menghitung tagihan dan penggunaan kuota Anda. Anda juga harus menggunakan ukuran baris yang dikodekan saat menghitung persyaratan kapasitas throughput yang disediakan untuk tabel. Untuk menghitung ukuran baris yang dikodekan di Amazon Keyspaces, Anda dapat menggunakan panduan berikut.

  • Untuk kolom reguler, yang merupakan kolom yang bukan kunci utama, kolom pengelompokan, atau STATIC kolom, gunakan ukuran mentah data sel berdasarkan tipe data dan tambahkan metadata yang diperlukan. Untuk informasi selengkapnya tentang tipe data yang didukung di Amazon Keyspaces, lihat. Jenis data Beberapa perbedaan utama dalam cara Amazon Keyspaces menyimpan nilai tipe data dan metadata tercantum di bawah ini.

  • Ruang yang diperlukan untuk setiap nama kolom disimpan menggunakan pengidentifikasi kolom dan ditambahkan ke setiap nilai data yang disimpan di kolom. Nilai penyimpanan pengenal kolom tergantung pada jumlah keseluruhan kolom dalam tabel Anda:

    • 1—62 kolom: 1 byte

    • 63—124 kolom: 2 byte

    • 125—186 kolom: 3 byte

    Untuk setiap tambahan 62 kolom tambahkan 1 byte. Perhatikan bahwa di Amazon Keyspaces, hingga 225 kolom reguler dapat dimodifikasi dengan satu INSERT atau pernyataan. UPDATE Untuk informasi selengkapnya, lihat Kuota layanan Amazon Keyspaces.

  • Kunci partisi dapat berisi hingga 2048 byte data. Setiap kolom kunci dalam kunci partisi membutuhkan hingga 3 byte metadata. Saat menghitung ukuran baris Anda, Anda harus menganggap setiap kolom kunci partisi menggunakan metadata 3 byte penuh.

  • Kolom pengelompokan dapat menyimpan hingga 850 byte data. Selain ukuran nilai data, setiap kolom pengelompokan membutuhkan hingga 20% dari ukuran nilai data untuk metadata. Saat menghitung ukuran baris Anda, Anda harus menambahkan 1 byte metadata untuk setiap 5 byte nilai data kolom pengelompokan.

  • Amazon Keyspaces menyimpan nilai data dari setiap kunci partisi dan kolom kunci pengelompokan dua kali. Overhead ekstra digunakan untuk kueri yang efisien dan pengindeksan bawaan.

  • CassandraASCII,TEXT, dan tipe data VARCHAR string semuanya disimpan di Amazon Keyspaces menggunakan Unicode dengan pengkodean biner UTF-8. Ukuran string di Amazon Keyspaces sama dengan jumlah byte yang dikodekan UTF-8.

  • CassandraINT,BIGINT,SMALLINT, dan tipe TINYINT data disimpan di Amazon Keyspaces sebagai nilai data dengan panjang variabel, hingga 38 digit signifikan. Nol awal dan akhir dipangkas. Ukuran salah satu tipe data ini kira-kira 1 byte per dua digit signifikan+1 byte.

  • A BLOB di Amazon Keyspaces disimpan dengan panjang byte mentah nilai.

  • Ukuran nilai atau Null Boolean nilai adalah 1 byte.

  • Kolom yang menyimpan tipe data koleksi seperti LIST atau MAP membutuhkan 3 byte metadata, terlepas dari isinya. Ukuran a LIST or MAP is (id kolom) + jumlah (ukuran elemen bersarang) + (3 byte). Ukuran kosong LIST atau MAP adalah (kolom id) + (3 byte). Setiap individu LIST atau MAP elemen juga membutuhkan 1 byte metadata.

  • STATICdata kolom tidak dihitung terhadap ukuran baris maksimum 1 MB. Untuk menghitung ukuran data kolom statis, lihatMenghitung ukuran kolom statis per partisi logis di Amazon Keyspaces.

  • Stempel waktu sisi klien disimpan untuk setiap kolom di setiap baris saat fitur dihidupkan. Stempel waktu ini memakan waktu sekitar 20-40 byte (tergantung pada data Anda), dan berkontribusi pada biaya penyimpanan dan throughput untuk baris tersebut. Untuk informasi selengkapnya, lihat Cara kerja cap waktu sisi klien di Amazon Keyspaces.

  • Tambahkan 100 byte ke ukuran setiap baris untuk metadata baris.

Ukuran total baris data yang dikodekan didasarkan pada rumus berikut:

partition key columns + clustering columns + regular columns + row metadata = total encoded size of row
penting

Semua metadata kolom, misalnya id kolom, metadata kunci partisi, metadata kolom pengelompokan, serta stempel waktu sisi klien dan metadata baris dihitung menuju ukuran baris maksimum 1 MB.

Perhatikan contoh berikut dari tabel di mana semua kolom adalah tipe integer. Tabel ini memiliki dua kolom kunci partisi, dua kolom pengelompokan, dan satu kolom reguler. Karena tabel ini memiliki lima kolom, ruang yang diperlukan untuk pengenal nama kolom adalah 1 byte.

CREATE TABLE mykeyspace.mytable(pk_col1 int, pk_col2 int, ck_col1 int, ck_col2 int, reg_col1 int, primary key((pk_col1, pk_col2),ck_col1, ck_col2));

Dalam contoh ini, kita menghitung ukuran data ketika kita menulis baris ke tabel seperti yang ditunjukkan dalam pernyataan berikut:

INSERT INTO mykeyspace.mytable (pk_col1, pk_col2, ck_col1, ck_col2, reg_col1) values(1,2,3,4,5);

Untuk memperkirakan total byte yang diperlukan oleh operasi penulisan ini, Anda dapat menggunakan langkah-langkah berikut.

  1. Hitung ukuran kolom kunci partisi dengan menambahkan byte untuk tipe data yang disimpan di kolom dan byte metadata. Ulangi ini untuk semua kolom kunci partisi.

    1. Hitung ukuran kolom pertama dari kunci partisi (pk_col1):

      (2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
    2. Hitung ukuran kolom kedua dari kunci partisi (pk_col2):

      (2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
    3. Tambahkan kedua kolom untuk mendapatkan perkiraan ukuran total kolom kunci partisi:

      8 bytes + 8 bytes = 16 bytes for the partition key columns
  2. Hitung ukuran kolom pengelompokan dengan menambahkan byte untuk tipe data yang disimpan di kolom dan byte metadata. Ulangi ini untuk semua kolom pengelompokan.

    1. Hitung ukuran kolom pertama kolom pengelompokan (ck_col1):

      (2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
    2. Hitung ukuran kolom kedua kolom pengelompokan (ck_col2):

      (2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
    3. Tambahkan kedua kolom untuk mendapatkan perkiraan ukuran total kolom pengelompokan:

      6 bytes + 6 bytes = 12 bytes for the clustering columns
  3. Tambahkan ukuran kolom biasa. Dalam contoh ini kita hanya memiliki satu kolom yang menyimpan integer digit tunggal, yang membutuhkan 2 byte dengan 1 byte untuk id kolom.

  4. Terakhir, untuk mendapatkan total ukuran baris yang dikodekan, tambahkan byte untuk semua kolom dan tambahkan 100 byte tambahan untuk metadata baris:

    16 bytes for the partition key columns + 12 bytes for clustering columns + 3 bytes for the regular column + 100 bytes for row metadata = 131 bytes.

Untuk mempelajari cara memantau sumber daya tanpa server dengan Amazon CloudWatch, lihat. Memantau Amazon Keyspaces dengan Amazon CloudWatch