Mendesain skema
Skema ideal untuk tabel Bigtable sangat bergantung pada sejumlah faktor, termasuk kasus penggunaan, pola akses data, dan data yang Anda rencanakan untuk disimpan. Halaman ini memberikan ringkasan proses desain skema Bigtable.
Sebelum membaca halaman ini, Anda harus memahami konsep dan praktik terbaik desain skema. Jika berlaku, baca juga Desain skema untuk data deret waktu.
Sebelum memulai
Buat atau identifikasi instance Bigtable yang dapat Anda gunakan untuk menguji skema.
Mengumpulkan informasi
- Identifikasi data yang ingin Anda simpan di Bigtable.
Pertanyaan yang dapat diajukan meliputi:
- Format apa yang digunakan data? Format yang memungkinkan mencakup byte, string, protobuf, dan json mentah.
- 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 yang membentuk entitas?
- Apakah data berbasis waktu?
- Identifikasi dan beri peringkat kueri yang Anda gunakan untuk mendapatkan data yang Anda
butuhkan. Dengan mempertimbangkan entitas yang akan Anda simpan, pikirkan cara Anda
ingin data diurutkan dan dikelompokkan saat Anda menggunakannya. Desain skema Anda mungkin tidak memenuhi semua kueri, tetapi idealnya memenuhi kueri yang paling penting atau paling sering digunakan. Contoh kueri dapat mencakup
hal berikut:
- Pengukuran suhu selama sebulan untuk objek IoT.
- Penayangan iklan harian untuk alamat IP.
- Lokasi terbaru perangkat seluler.
- Semua peristiwa aplikasi per hari per pengguna.
Desain
Menentukan desain skema awal. Artinya, Anda harus merencanakan pola yang akan diikuti kunci baris, grup kolom yang akan dimiliki tabel, dan penentu kolom untuk kolom yang Anda inginkan dalam grup kolom tersebut. Ikuti pedoman desain skema umum. Jika data Anda berbasis waktu, ikuti juga panduan untuk data deret waktu.
Tes
- Buat tabel menggunakan keluarga kolom dan penentu kolom yang Anda buat untuk skema.
- Muat tabel dengan setidaknya 30 GB data pengujian, menggunakan kunci baris yang Anda identifikasi dalam draf rencana. Tetap di bawah batas pemanfaatan penyimpanan per node.
- Jalankan pengujian 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 untuk operasi baca dan tulis yang biasanya Anda kirim ke tabel.
Tinjau hasil simulasi Anda menggunakan Key Visualizer dan Cloud Monitoring.
Alat Key Visualizer untuk Bigtable menyediakan pemindaian yang menampilkan pola penggunaan untuk setiap tabel dalam cluster. Key Visualizer membantu Anda memeriksa apakah desain skema dan pola penggunaan Anda menyebabkan hasil yang tidak diinginkan, seperti hotspot pada baris tertentu.
Pemantauan membantu Anda memeriksa metrik, seperti penggunaan CPU node terpanas dalam cluster, untuk membantu Anda menentukan apakah desain skema menyebabkan masalah.
Saring
- Perbarui desain skema Anda sesuai kebutuhan, berdasarkan hal-hal yang Anda pelajari dengan Key Visualizer. Misalnya:
- Jika Anda melihat bukti hotspotting, gunakan kunci baris yang berbeda.
- Jika Anda melihat latensi, cari tahu apakah baris Anda melebihi batas 100 MB per baris.
- Jika Anda mendapati bahwa Anda harus menggunakan filter untuk mendapatkan data yang diperlukan, pertimbangkan untuk melakukan normalisasi data dengan cara yang memungkinkan pembacaan yang lebih sederhana (dan lebih cepat): membaca satu baris atau rentang baris berdasarkan kunci baris.
- Setelah merevisi skema, uji dan tinjau kembali hasilnya.
- Lanjutkan mengubah desain dan pengujian skema hingga pemeriksaan di Key Visualizer memberi tahu Anda bahwa desain skema sudah optimal.
Langkah selanjutnya
- Tonton presentasi tentang proses desain iteratif yang digunakan Twitter untuk Bigtable.
- Pelajari performa Bigtable lebih lanjut.