Mendesain skema

Skema yang 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 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

  1. Identifikasi data yang akan Anda simpan di Bigtable. Pertanyaan yang dapat diajukan meliputi:
    • Format apa yang digunakan data? Format yang mungkin mencakup byte mentah, string, protobuf, dan json.
    • Apa yang membentuk entitas dalam data Anda? Misalnya, apakah Anda menyimpan tayangan halaman, harga saham, penempatan iklan, pengukuran perangkat, atau jenis entitas lainnya? Apa saja yang membentuk entitas?
    • Apakah data berbasis waktu?
  2. Mengidentifikasi dan memberi 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 Anda, tetapi idealnya memenuhi kueri yang paling penting atau paling sering digunakan. Contoh kueri dapat mencakup berikut ini:
    • Hasil 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

Tentukan 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 panduan desain skema umum. Jika data Anda berbasis waktu, ikuti juga panduan untuk data deret waktu.

Jika Anda berencana membuat kueri tabel menggunakan SQL, bukan metode Bigtable Data API ReadRows, lihat dokumen berikut:

Jika Anda ingin menggunakan SQL untuk membuat kueri tampilan tabel serta tabel itu sendiri, tinjau Tabel dan tampilan.

Uji

  1. Buat tabel menggunakan family kolom dan penentu kolom yang Anda buat untuk skema.
  2. Muat tabel dengan minimal 30 GB data pengujian, menggunakan kunci baris yang Anda identifikasi dalam draf rencana. Tetap berada di bawah batas pemanfaatan penyimpanan per node.
  3. Jalankan pengujian beban berat selama beberapa menit. Langkah ini memberi Bigtable kesempatan untuk menyeimbangkan data di seluruh node berdasarkan pola akses yang diamatinya.
  4. Jalankan simulasi satu jam operasi baca dan tulis yang biasanya Anda kirim ke tabel.
  5. Tinjau hasil simulasi Anda 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 desain dan pola penggunaan skema Anda menyebabkan hasil yang tidak diinginkan, seperti hotspot pada baris tertentu.

    • Pemantauan membantu Anda memeriksa metrik, seperti penggunaan CPU pada node terpanas dalam cluster, untuk membantu Anda menentukan apakah desain skema menyebabkan masalah.

Saring

  1. Revisi desain skema Anda seperlunya, berdasarkan apa 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 merasa harus menggunakan filter untuk mendapatkan data yang Anda butuhkan, pertimbangkan untuk menormalisasi data dengan cara yang memungkinkan pembacaan yang lebih sederhana (dan lebih cepat): membaca satu baris atau rentang baris berdasarkan kunci baris.
  2. Setelah merevisi skema, uji dan tinjau kembali hasilnya.
  3. Terus modifikasi desain skema dan pengujian Anda hingga pemeriksaan di Key Visualizer memberi tahu Anda bahwa desain skema sudah optimal.

Langkah berikutnya