Merancang skema
Skema ideal untuk tabel Bigtable sangat bergantung pada sejumlah faktor, termasuk kasus penggunaan, pola akses data, dan data yang ingin Anda simpan. Halaman ini memberikan ringkasan proses desain skema Bigtable.
Sebelum membaca halaman ini, Anda harus memahami konsep dan praktik terbaik desain skema. Jika ada, baca juga Desain skema untuk data deret waktu.
Sebelum memulai
Buat atau identifikasi instance Bigtable yang dapat digunakan untuk menguji skema Anda.
Mengumpulkan informasi
- Identifikasi data yang ingin Anda simpan di Bigtable.
Pertanyaan yang dapat diajukan mencakup:
- Format apa yang digunakan data? Format yang memungkinkan mencakup byte mentah, string, protobuf, dan json.
- Apa yang dimaksud dengan entity dalam data Anda? Misalnya, apakah Anda menyimpan kunjungan halaman, harga saham, penempatan iklan, pengukuran perangkat, atau jenis entitas lainnya? Apa saja entitas tersebut?
- Apakah data berbasis waktu?
- Identifikasi dan beri peringkat kueri yang Anda gunakan untuk mendapatkan data yang
Anda butuhkan. Dengan mempertimbangkan entity yang akan disimpan, pikirkan bagaimana Anda
ingin mengurutkan dan mengelompokkan data saat Anda menggunakannya. Desain skema Anda mungkin tidak memenuhi semua kueri Anda, tetapi idealnya memenuhi kueri yang paling penting atau paling sering digunakan. Contoh kueri dapat mencakup
hal berikut:
- Pembacaan suhu objek IoT selama satu bulan.
- Tampilan iklan harian untuk alamat IP.
- Lokasi terbaru perangkat seluler.
- Semua peristiwa aplikasi per hari per pengguna.
Desain
Tentukan desain skema awal. Ini berarti merencanakan pola yang akan diikuti oleh kunci baris Anda, grup kolom yang akan dimiliki tabel Anda, dan penentu kolom untuk kolom yang Anda inginkan dalam grup kolom tersebut. Ikuti panduan desain skema umum. Jika data Anda berbasis waktu, ikuti juga panduan untuk data deret waktu.
Tes
- Buat tabel menggunakan grup kolom dan penentu kolom yang dibuat untuk skema Anda.
- Muat tabel dengan minimal 30 GB data uji, menggunakan kunci baris yang Anda identifikasi dalam draf rencana Anda. Tetap di bawah batas penggunaan penyimpanan per node.
- Jalankan uji beban berat selama beberapa menit. Langkah ini memberi Bigtable kesempatan untuk menyeimbangkan data di seluruh node berdasarkan pola akses yang diamatinya.
- Jalankan simulasi satu jam dari pembacaan dan penulisan yang biasanya akan Anda kirim ke tabel.
Tinjau hasil simulasi menggunakan Key Visualizer dan Cloud Monitoring.
Alat Key Visualizer untuk Bigtable menyediakan pemindaian yang menunjukkan pola penggunaan untuk setiap tabel dalam cluster. Key Visualizer membantu Anda memeriksa apakah pola desain dan penggunaan skema menyebabkan hasil yang tidak diinginkan, seperti hotspot pada baris tertentu.
Monitoring membantu Anda memeriksa metrik, seperti penggunaan CPU node terpanas di cluster, untuk membantu Anda menentukan apakah desain skema menyebabkan masalah.
Pertajam
- Revisi desain skema Anda jika diperlukan, berdasarkan apa yang telah Anda pelajari dengan Key Visualizer. Misalnya:
- Jika Anda melihat bukti hotspotting, gunakan tombol baris yang berbeda.
- Jika Anda melihat latensi, cari tahu apakah baris Anda melebihi batas 100 MB per baris.
- Jika Anda merasa harus menggunakan filter untuk mendapatkan data yang diperlukan, pertimbangkan untuk menormalisasi data dengan cara yang memungkinkan pembacaan yang lebih sederhana (dan lebih cepat): membaca satu baris atau rentang baris menurut row key.
- Setelah merevisi skema, uji dan tinjau hasilnya lagi.
- Terus modifikasi desain dan pengujian skema Anda hingga pemeriksaan di Key Visualizer memberitahukan bahwa desain skema sudah optimal.
Langkah selanjutnya
- Tonton presentasi tentang proses desain berulang yang digunakan Twitter untuk Bigtable.
- Pelajari Performa Bigtable lebih lanjut.