Bagikan melalui


Praktik terbaik pengoptimalan skema

Skema tabel menentukan nama dan jenis data dari semua kolom dalam tabel. Skema tabel dapat diatur selama pembuatan tabel, atau sebagai bagian dari proses penyerapan data dengan memodifikasi pemetaan penyerapan yang berlaku. Cara skema tabel ditentukan dapat secara signifikan memengaruhi performa kueri Anda. Skema ideal untuk data Anda tergantung pada banyak faktor, termasuk kasus penggunaan, pola akses data, dan data tertentu yang Anda rencanakan untuk disimpan. Artikel ini menjelaskan praktik terbaik untuk mengoptimalkan performa dengan merancang skema yang efisien.

Jenis data

Untuk informasi umum tentang jenis data, lihat jenis data skalar.

  • Bidang yang umum digunakan harus ditik kolom, bukan jenis dinamis .

  • Properti JSON yang sering dicari atau diagregasi dalam kolom dinamis harus dikonversi ke kolom reguler dalam tabel dengan jenis yang lebih spesifik seperti string, panjang, atau nyata.

  • Kolom jarang yang umumnya tidak digunakan untuk filter dan agregasi harus dikumpulkan sebagai tas properti dalam kolom dinamis menggunakan DropMappedFieldstransformasi pemetaan.

  • Kolom waktu tanggal harus ditik sebagai tanggalwaktu, dan bukan tipe data panjang atau lainnya.

  • Jenis desimal memberikan presisi yang tepat, yang membuatnya paling cocok untuk aplikasi keuangan dan lainnya yang membutuhkan akurasi yang tepat. Namun, itu jauh lebih lambat daripada jenis nyata . Hanya gunakan jenis desimal jika diperlukan.

  • Semua kolom ID (identifikasi) harus ditik sebagai string, bukan numerik. Jenis ini akan membuat indeks jauh lebih efektif dan dapat secara signifikan meningkatkan waktu pencarian. Ini juga akan mengaktifkan partisi, karena partisi hanya dapat ditentukan pada kolom string. Jika filter kueri yang digunakan pada kolom ini hanya kesetaraan, misalnya jika kolom memiliki guid, Anda bisa menggunakan profil Identifierpengodean . Untuk informasi selengkapnya, lihat kebijakan pengodean.

Tabel

  • Optimalkan untuk tabel sempit, yang lebih disukai daripada tabel lebar dengan ratusan kolom.
  • Untuk menghindari gabungan mahal selama waktu kueri, denormalisasi data dimensi dengan memperkayanya selama penyerapan. Jika tabel dimensi yang digunakan untuk pengayaan diperbarui dan skenario memerlukan nilai terbaru, gunakan materialisasi tampilan untuk hanya menyimpan nilai terbaru.
  • Jika ada lebih dari 20 kolom yang jarang, yang berarti bahwa banyak nilai adalah null, dan kolom ini jarang digunakan untuk pencarian atau agregasi, maka kelompokkan kolom sebagai tas properti JSON dalam kolom dinamis menggunakan DropMappedFieldspemetaan transformasi.

Pengindeksan

Bidang yang tidak pernah dicari dapat menonaktifkan pengindeksan. Gunakan kebijakan pengodean dengan profil BigObject untuk menonaktifkan pengindeksan pada string atau kolom berjenis dinamis.