LindormTable menggunakan struktur penyimpanan Log-Structured Merge-Tree (LSM-Tree). Mendapatkan jumlah baris yang akurat memerlukan pemindaian tabel penuh—semakin besar tabelnya, semakin lama operasi tersebut berlangsung. Hindari menjalankan operasi COUNT secara berkala.
Metode berikut tersedia:
| Metode | Jenis hitungan | Kecepatan | Paling cocok untuk |
|---|---|---|---|
| HBase Shell COUNT | Tepat | Di bawah 100.000 baris/detik | Tabel kecil, pemeriksaan cepat |
| HBase RowCounter | Tepat | Mirip dengan HBase Shell (opsi multithreaded tersedia) | Validasi integritas data setelah migrasi |
Lindorm SQL SELECT COUNT(*) | Tepat | Ratusan ribu baris/detik/server (terdistribusi) | Tabel besar yang memerlukan hitungan tepat lebih cepat |
Lindorm SQL SHOW ESTIMATED ROWS | Perkiraan | Instan | Perkiraan kapasitas cepat |
| Sistem manajemen kluster | Perkiraan | Instan | Pemeriksaan integritas data setelah migrasi |
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Akses ke LindormTable
Klien ECS di VPC yang sama dengan kluster Lindorm Anda (diperlukan untuk operasi HBase Shell dan RowCounter)
Hitung jumlah baris menggunakan HBase Shell
Sambungkan ke LindormTable menggunakan HBase Shell. Untuk informasi selengkapnya, lihat Akses LindormTable menggunakan Lindorm Shell.
Perintah count memindai semua data tabel secara batch untuk mengumpulkan statistik baris. Jalankan perintah ini pada klien ECS di VPC (virtual private cloud) yang sama—menjalankannya melalui Internet menyebabkan penggunaan jaringan tinggi dan memperlambat operasi secara signifikan. Kecepatan pemindaian kurang dari 100.000 baris per detik dan bervariasi tergantung skema tabel.
Jalankan perintah berikut untuk menghitung semua baris dalam tabel:
count 'table'Hasil berikut dikembalikan:

Hitung jumlah baris menggunakan HBase RowCounter
Sambungkan ke LindormTable menggunakan HBase Shell. Untuk informasi selengkapnya, lihat Akses LindormTable menggunakan Lindorm Shell.
RowCounter menjalankan pekerjaan MapReduce lokal pseudo-distributed untuk menghitung baris.
Secara default, RowCounter bersifat single-threaded, dengan kecepatan penghitungan mirip dengan perintah count pada HBase Shell.
Contoh:
Hitung semua baris dalam tabel:
./alihbase-2.0.18/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter "table"Hitung semua baris menggunakan 16 thread konkuren:
./alihbase-2.0.18/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter -Dmapreduce.local.map.tasks.maximum=16 "table"Hitung semua baris dalam tabel di namespace
ns:./alihbase-2.0.18/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter "ns:table"
Saat menggunakan beberapa thread, perhatikan bahwa:
Jumlah thread harus kurang dari atau sama dengan jumlah region dalam tabel.
Jumlah thread yang lebih tinggi meningkatkan beban kluster dan dapat memengaruhi layanan online.
Hasil disimpan dalam file hbase.log di direktori Log.

Hitung jumlah baris menggunakan Lindorm SQL
Hitung jumlah baris yang tepat
Sambungkan ke LindormTable menggunakan Lindorm-cli. Untuk informasi selengkapnya, lihat Sambungkan ke LindormTable menggunakan Lindorm-cli.
Lindorm SQL mendistribusikan logika COUNT secara paralel ke seluruh proses Lindorm, sehingga jauh lebih cepat dibandingkan HBase Shell. Kecepatannya mencapai ratusan ribu baris per detik per server dan meningkat seiring jumlah server dalam kluster Anda. Operasi ini tetap memerlukan pemindaian tabel penuh dan memiliki timeout default 120 detik—jika penghitungan tidak selesai dalam batas waktu tersebut, pernyataan akan mengembalikan error.
SELECT COUNT(*) FROM table;Hasil berikut dikembalikan:
+--------+
| EXPR$0 |
+--------+
| 16000 |
+--------+Untuk tabel dengan lebih dari satu juta baris, gunakan indeks pencarian untuk mempercepat kueri. Untuk informasi selengkapnya, lihat Kueri data dalam tabel lebar menggunakan indeks pencarian.
Hitung jumlah baris perkiraan
Fitur ini memerlukan LindormTable versi 2.8.2.6 atau lebih baru dan Lindorm SQL versi 2.8.2.6 atau lebih baru.
Jalankan pernyataan berikut untuk mendapatkan perkiraan jumlah baris tanpa melakukan pemindaian tabel penuh:
SHOW ESTIMATED ROWS FROM table;Hasil berikut dikembalikan:
+---------------------+
| ESTIMATED_ROW_COUNT |
+---------------------+
| 15000 |
+---------------------+Lihat perkiraan jumlah baris menggunakan sistem manajemen kluster
Masuk ke sistem manajemen kluster. Untuk informasi selengkapnya, lihat Masuk ke sistem manajemen kluster.
Di sistem manajemen kluster Lindorm, klik Overview di panel navigasi kiri. Di area Current IDC, temukan tabel Anda dan klik View di kolom EstimateRowCount.
Perkiraan jumlah baris dihitung dengan menjumlahkan metadata jumlah baris dari setiap file data, yang dikumpulkan saat file-file tersebut dibuat. Nilai ini mungkin tidak akurat jika tabel memiliki pembaruan, penghapusan, atau data yang kedaluwarsa karena TTL (time-to-live)—dalam kasus tersebut, baris yang sama mungkin ada di beberapa file dengan status berbeda. Jika tabel tidak memiliki pembaruan, penghapusan, atau kedaluwarsa TTL, jumlah yang ditampilkan sepenuhnya akurat. Hal ini membuat fitur ini berguna untuk memverifikasi integritas data setelah migrasi data.
Jika perkiraan jumlah baris menunjukkan 0 tetapi tabel berisi data, versi minor LindormTable mungkin sudah usang. Tingkatkan versi minor untuk mengatasi masalah ini. Untuk informasi selengkapnya, lihat Tingkatkan versi minor.