Statistik tabel

Bigtable menyediakan statistik tabel — metadata tentang tabel — yang memberi Anda informasi ringkasan tentang tabel, seperti jumlah baris atau jumlah rata-rata sel per kolom.

Dokumen ini menjelaskan statistik tabel dan menjelaskan cara mendapatkannya menggunakan Google Cloud CLI. Sebelum membaca halaman ini, Anda harus memahami model penyimpanan Bigtable serta memahami praktik terbaik desain skema dan pembersihan sampah memori.

Statistik tabel memberikan kemampuan observasi ke dalam tabel Bigtable. Metrik ini dapat berguna saat Anda memecahkan masalah terkait performa atau penyimpanan, atau saat Anda ingin menentukan sumber biaya penyimpanan. Alat ini juga dapat membantu Anda menentukan apakah Anda menyimpan lebih banyak data daripada yang diperlukan.

Presisi yang diharapkan

Saat Anda mengambil statistik tabel untuk sebuah tabel, data yang Anda dapatkan adalah perkiraan – statistik tabel mencerminkan status tabel Anda di salah satu cluster instance Anda pada pemadatan terbaru.

Kumpulan lengkap statistik tabel tidak akan tersedia hingga setelah pemadatan awal, yang biasanya terjadi sekitar seminggu setelah tabel dibuat. Statistik tabel akurat per pemadatan terbaru, yang mungkin berusia hingga seminggu yang lalu.

Kolom statistik tabel

Permintaan untuk statistik tabel akan menampilkan kolom berikut. Detail dan contohnya ada di bagian berikutnya.

Kolom statistik tabel Nama API Deskripsi
Jumlah baris row_count Jumlah baris dalam tabel. Untuk mengetahui detailnya, lihat Jumlah baris.
Jumlah rata-rata kolom per baris average_columns_per_row Jumlah rata-rata kolom di setiap baris untuk seluruh tabel. Untuk mengetahui detail dan contohnya, lihat Jumlah rata-rata kolom per baris
Jumlah rata-rata sel per kolom average_cells_per_column Jumlah rata-rata sel yang disimpan di semua kolom di semua baris. Untuk mengetahui detailnya, lihat Jumlah rata-rata sel per kolom.
Data logis dalam byte logical_data_bytes Jumlah ruang yang digunakan tabel. Untuk mengetahui detailnya, lihat Data logis dalam byte.

Statistik tabel juga mencakup kolom berikut untuk setiap grup kolom dalam tabel.

Kolom statistik grup kolom Nama API Deskripsi
Jumlah rata-rata kolom per baris average_columns_per_row Jumlah rata-rata kolom per baris dalam grup kolom. Untuk mengetahui detail dan contohnya, lihat Jumlah rata-rata kolom per baris.
Jumlah rata-rata sel per kolom average_cells_per_column Jumlah sel di setiap kolom, yang dirata-rata di semua baris yang memiliki kolom dalam grup kolom. Untuk mengetahui detail dan contohnya, lihat Jumlah rata-rata sel per kolom.
Data logis dalam byte logical_data_bytes Jumlah ruang yang digunakan grup kolom. Untuk mengetahui detailnya, lihat Data logis dalam byte.

Detail kolom statistik tabel

Jumlah baris

Jumlah baris adalah jumlah baris dalam tabel. Setiap baris diidentifikasi oleh row key-nya.

Jumlah rata-rata kolom per baris

Untuk mendapatkan jumlah rata-rata kolom per baris untuk sebuah tabel, Bigtable menghitung jumlah kolom di seluruh tabel dan membagi nilai tersebut dengan jumlah baris dalam tabel.

Sebagai contoh, perhatikan tabel berikut. Baris pertama memiliki tiga kolom, dan baris kedua memiliki dua kolom.

Row key Grup kolom family-A Grup kolom family-B
row key 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
row key 2 family-A:qualifier-W family-B:qualifier-Z

Tabel ini memiliki lima kolom dan dua baris, sehingga jumlah rata-rata kolom per baris adalah 2.5.

Statistik tabel ini memberi Anda gambaran umum apakah tabel Anda panjang dan sempit (beberapa kolom per baris) atau pendek dan lebar (banyak kolom di setiap baris).

Jumlah rata-rata sel per kolom

Untuk mendapatkan jumlah rata-rata sel per kolom untuk sebuah tabel, Bigtable mengambil jumlah total sel yang disimpan dalam tabel dan membaginya dengan jumlah kolom dalam tabel.

Bergantung pada desain skema dan kebijakan pembersihan sampah memori, tabel Anda mungkin memiliki beberapa sel dalam satu kolom, atau mungkin hanya memiliki satu sel. Jumlah sel yang dapat Anda simpan dibatasi oleh batas ukuran data yang diuraikan di halaman Kuota dan batas di bagian Ukuran data dalam tabel.

Jika Anda mendapati bahwa jumlah ini lebih tinggi dari yang Anda perkirakan, periksa aturan pembersihan sampah memori untuk melihat apakah Anda mempertahankan lebih banyak sel daripada yang Anda perlukan. Anda juga dapat menanyakan apakah skema dan pola penulisan Anda harus disesuaikan.

Data logis dalam byte (tabel)

Nilai ini menunjukkan perkiraan jumlah byte yang tidak dikompresi yang diperlukan untuk membaca seluruh tabel Anda. Statistik tabel ini memberi Anda gambaran tentang volume mentah data yang disimpan dalam tabel.

Membandingkan ukuran logis dengan pemakaian penyimpanan

Bigtable otomatis mengompresi data saat menulisnya ke disk. Hasilnya, ukuran tabel yang dilaporkan sebagai Storage utilization (bytes) di Cloud Monitoring dan di halaman ringkasan cluster mencerminkan penyimpanan fisik yang dikompresi di disk, bukan ukuran data logis yang tidak dikompresi. Penagihan untuk penyimpanan juga didasarkan pada ukuran terkompresi fisik ini.

Mengetahui kedua nilai tersebut akan membantu Anda mengevaluasi rasio kompresi yang efektif:

  • Penghematan kompresi: membagi data logis dalam byte dengan pemakaian penyimpanan dalam byte akan memberikan perkiraan rasio kompresi Anda. Misalnya, jika tabel Anda memiliki data logis sebesar 10 TB dan menggunakan pemanfaatan penyimpanan sebesar 2,5 TB di disk, rasio kompresi Anda adalah sekitar 4:1.

  • Data yang tidak dikompresi atau telah dikompresi sebelumnya: jika pemakaian penyimpanan di Cloud Monitoring sama dengan atau lebih besar dari data logis Anda dalam byte, data Anda mungkin disimpan dalam format yang tidak mudah dikompresi (seperti data yang dienkripsi atau dikompresi sebelum ditulis ke Bigtable), atau tabel Anda mungkin berisi nilai sel yang lebih besar dari 1 MiB, yang tidak dikompresi Bigtable secara otomatis. Untuk mengetahui informasi selengkapnya tentang cara Bigtable mengompresi data, lihat Kompresi data.

  • Data yang ditimpa atau dihapus yang menunggu pemadatan: mutasi baru dikompresi segera setelah ditulis ke disk, bukan selama pemadatan. Namun, saat Anda menimpa atau menghapus data, versi sel yang lebih lama dan penanda penghapusan (tombstone) tetap ada di disk—dan dihitung dalam penggunaan penyimpanan—hingga pemadatan berikutnya menghapusnya secara permanen. Selain itu, statistik tabel mencerminkan tabel pada pemadatan terbaru, sedangkan pemakaian penyimpanan di Cloud Monitoring terus diperbarui saat data baru ditulis.

Detail kolom statistik grup kolom

Statistik tabel untuk tabel mencakup kolom berikut untuk setiap grup kolom dalam tabel.

Jumlah rata-rata kolom per baris

Angka ini dihitung dengan mengambil jumlah kolom dalam grup kolom dan membagi angka tersebut dengan jumlah baris dalam tabel.

Sebagai contoh, perhatikan tabel berikut. Tabel ini memiliki tiga baris dengan kolom dalam grup kolom family-A dan family-B.

Row key Grup kolom family-A Grup kolom family-B
row key 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
row key 2 family-A:qualifier-W
row key 3 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y family-B:qualifier-Z

Grup kolom family-A memiliki total lima kolom dalam tabel. Dibagi dengan tiga baris, berarti jumlah rata-rata sel per kolom untuk family-A adalah 1.67 (dibulatkan di sini menjadi dua angka desimal).

Grup kolom family-B memiliki total tiga kolom dalam tabel. Dibagi dengan tiga baris, jumlah rata-rata kolom per baris untuk family-A adalah 1.

Jumlah rata-rata sel per kolom

Untuk menentukan jumlah rata-rata sel per kolom dalam grup kolom, Bigtable mengambil jumlah semua sel dalam grup kolom di semua baris tabel dan membaginya dengan jumlah baris dalam tabel.

Sebagai contoh, perhatikan baris berikut dalam grup kolom family-D.

Row key Grup kolom family-D
row key 1 family-D:qualifier-W (3 sel) family-D:qualifier-X (1 sel)
row key 2 family-D:qualifier-X (10 sel)
row key 3 family-D:qualifier-W (7 sel) family-D:qualifier-Y (6 sel)

Jumlah sel dalam grup kolom adalah 3 + 1 + 10 + 7 + 6 = 27. Nilai tersebut dibagi 3 (jumlah baris) berarti grup kolom family-D memiliki rata-rata sel per kolom sebesar 9.

Data logis dalam byte (grup kolom)

Data logis dalam byte mencerminkan ruang yang tidak dikompresi yang ditempati oleh grup kolom. Nilai ini kira-kira adalah jumlah byte yang tidak dikompresi yang diperlukan untuk membaca semua data dalam grup kolom pada saat statistik tabel ditampilkan. Seperti byte logis level tabel, nilai ini tidak mencerminkan penghematan penyimpanan dari kompresi data pada disk.

Contoh menggunakan gcloud CLI

Untuk mendapatkan statistik tabel untuk tabel bernama sample-table, gunakan perintah bigtable instances table describe:

gcloud bigtable instances tables describe TABLE_ID \
    --instance=INSTANCE_ID --view stats

Ganti kode berikut:

  • TABLE_ID: ID permanen untuk tabel
  • INSTANCE_ID: ID permanen untuk instance

Outputnya mirip dengan hal berikut ini:

  columnFamilies:
    my-family:
     stats:
       averageCellsPerColumn: 12.34
       averageColumnsPerRow: 56.78
       logicalDataBytes: 314159
  name: projects/my-project/instances/INSTANCE_ID/tables/TABLE_ID
  stats:
    averageCellsPerColumn: 12.34
    averageColumnsPerRow: 56.78
    logicalDataBytes: 314159
    rowCount: 271828

Langkah berikutnya