Perkirakan ukuran 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.

Perkirakan 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.

Topik 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 dapat menggunakan ukuran baris yang dikodekan saat memperkirakan persyaratan kapasitas throughput yang disediakan untuk tabel.

Untuk menghitung ukuran baris yang dikodekan di Amazon Keyspaces, Anda dapat menggunakan panduan berikut.

Perkirakan ukuran kolom yang dikodekan

Bagian ini menunjukkan cara memperkirakan ukuran kolom yang dikodekan di Amazon Keyspaces.

  • Kolom reguler — 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. Tipe data dan beberapa perbedaan utama dalam cara Amazon Keyspaces menyimpan nilai tipe data dan metadata tercantum di bagian berikutnya.

  • Kolom kunci partisi - Tombol 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 - 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.

    catatan

    Untuk mendukung kueri yang efisien dan pengindeksan bawaan, Amazon Keyspaces menyimpan nilai data dari setiap kunci partisi dan kolom kunci pengelompokan dua kali.

  • Nama kolom - 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.

Perkirakan ukuran nilai data yang dikodekan berdasarkan tipe data

Bagian ini menunjukkan cara memperkirakan ukuran yang dikodekan dari berbagai tipe data di Amazon Keyspaces.

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

  • Tipe numerik — CassandraINT,BIGINT,SMALLINT, dan tipe TINYINT data disimpan di Amazon Keyspaces sebagai nilai data dengan panjang variabel, dengan hingga 38 digit signifikan. Angka nol di depan dan di belakang dipangkas. Ukuran salah satu tipe data ini kira-kira 1 byte per dua digit signifikan+1 byte.

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

  • Jenis Boolean — Ukuran nilai atau Boolean Null nilai adalah 1 byte.

  • Tipe koleksi — 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.

  • Tipe yang ditentukan pengguna - Tipe yang ditentukan pengguna (UDT) membutuhkan 3 byte untuk metadata, terlepas dari isinya. Untuk setiap UDT elemen, Amazon Keyspaces memerlukan metadata 1 byte tambahan.

    Untuk menghitung ukuran yang dikodekan dari aUDT, mulailah dengan field name dan field value untuk bidang a: UDT

    • nama bidang - Setiap nama bidang tingkat atas UDT disimpan menggunakan pengenal. Nilai penyimpanan pengenal tergantung pada jumlah keseluruhan bidang di tingkat atas AndaUDT, dan dapat bervariasi antara 1 dan 3 byte:

      • 1—62 bidang: 1 byte

      • 63—124 bidang: 2 byte

      • 125— bidang maks: 3 byte

    • nilai bidang - Byte yang diperlukan untuk menyimpan nilai bidang tingkat atas UDT bergantung pada tipe data yang disimpan:

      • Jenis data skalar — Byte yang diperlukan untuk penyimpanan sama dengan tipe data yang sama yang disimpan dalam kolom biasa.

      • Beku UDT — Untuk setiap sarang bekuUDT, bersarang UDT memiliki ukuran yang sama seperti yang ada di protokol CQL biner. Untuk bersarangUDT, 4 byte disimpan untuk setiap bidang (termasuk bidang kosong) dan nilai bidang yang disimpan adalah format serialisasi protokol CQL biner dari nilai bidang.

      • Koleksi beku:

        • LISTdan SET— Untuk beku bersarang LIST atauSET, 4 byte disimpan untuk setiap elemen koleksi ditambah format serialisasi protokol CQL biner dari nilai koleksi.

        • MAP— Untuk beku bersarangMAP, setiap pasangan nilai kunci memiliki persyaratan penyimpanan berikut:

          • Untuk setiap kunci mengalokasikan 4 byte, lalu tambahkan format serialisasi protokol CQL biner kunci.

          • Untuk setiap nilai mengalokasikan 4 byte, kemudian tambahkan format serialisasi protokol CQL biner dari nilai.

  • FROZENkata kunci — Untuk koleksi beku yang bersarang di dalam koleksi beku, Amazon Keyspaces tidak memerlukan byte tambahan untuk data meta.

  • STATICkata kunci — data STATIC kolom tidak dihitung terhadap ukuran baris maksimum 1 MB. Untuk menghitung ukuran data kolom statis, lihatHitung ukuran kolom statis per partisi logis di Amazon Keyspaces.

Pertimbangkan dampak fitur Amazon Keyspaces pada ukuran baris

Bagian ini menunjukkan bagaimana fitur di Amazon Keyspaces memengaruhi ukuran baris yang dikodekan.

  • Client-side timestamps — Client-side timestamps 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 tentang stempel waktu sisi klien, lihat. Stempel waktu sisi klien di Amazon Keyspaces

Pilih rumus yang tepat untuk menghitung ukuran baris yang dikodekan

Bagian ini menunjukkan rumus berbeda yang dapat Anda gunakan untuk memperkirakan penyimpanan atau persyaratan throughput kapasitas untuk deretan data di Amazon Keyspaces.

Ukuran total deretan data yang dikodekan dapat diperkirakan berdasarkan salah satu rumus berikut, berdasarkan tujuan Anda:

  • Kapasitas throughput — Untuk memperkirakan ukuran baris yang dikodekan untuk menilai yang diperlukan): read/write request units (RRUs/WRUs) or read/write capacity units (RCUs/WCUs

    total encoded size of row = partition key columns + clustering columns + regular columns
  • Ukuran penyimpanan — Untuk memperkirakan ukuran baris yang dikodekan untuk memprediksiBillableTableSizeInBytes, tambahkan metadata yang diperlukan untuk penyimpanan baris:

    total encoded size of row = partition key columns + clustering columns + regular columns + row metadata (100 bytes)
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.

Contoh perhitungan ukuran baris

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 ukuran estimasi 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 dari 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 reguler. Dalam contoh ini kita hanya memiliki satu kolom yang menyimpan integer digit tunggal, yang membutuhkan 2 byte dengan 1 byte untuk id kolom.

  4. Akhirnya, untuk mendapatkan total ukuran baris yang dikodekan, tambahkan byte untuk semua kolom. Untuk memperkirakan ukuran penyimpanan yang dapat ditagih, 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