Halaman ini memberikan ringkasan tentang columnar engine untuk Spanner dan menjelaskan cara menggunakannya.
Database operasional biasanya mengekstrak, mengubah, dan memuat (ETL) data ke dalam sistem OLAP untuk analisis. Sistem ini sering kali merupakan bagian dari data warehouse. Dengan Data Boost untuk Spanner, Spanner sudah memisahkan komputasi analisis, yang memastikan stabilitas transaksional.
Columnar engine adalah teknik penyimpanan yang digunakan sistem analisis untuk mempercepat pemindaian jika dibandingkan dengan pemindaian berbasis batch. Columnar engine Spanner memungkinkan Anda menjalankan analisis dengan performa yang jauh lebih baik pada data operasional terbaru. Columnar engine Spanner meningkatkan performa pemindaian hingga 200 kali, sehingga menghilangkan kebutuhan akan ETL sekaligus mempertahankan konsistensi yang kuat.
Format Ressi Spanner menggunakan tata letak kolom atribut partisi di seluruh (PAX) untuk pemindaian yang efisien dalam blok data. Namun, format ini menempatkan semua kolom baris dalam blok tertentu untuk pencarian satu baris yang cepat. Tidak seperti Ressi, columnar engine Spanner mendedikasikan blok yang dijalankan ke satu kolom. Pendekatan ini lebih efisien untuk pemindaian berurutan, karena Spanner hanya perlu membaca kolom yang direferensikan dalam kueri.
Spanner membuat representasi kolom di latar belakang (sebagai bagian dari pemadatan), dan otomatis menggabungkan representasi dengan update terbaru pada waktu kueri untuk memberikan konsistensi yang kuat. Kueri yang tidak mendapatkan manfaat dari penyimpanan kolom dapat terus menggunakan PAX.
Workload yang akan mendapatkan manfaat dari penggunaan columnar engine mencakup hal berikut:
- Pelaporan operasional mengekstrak intelijen bisnis terbaru dari data operasional terbaru.
- Dasbor dan detail kustom yang didukung analisis interaktif dengan latensi interaktif.
- Analisis gabungan menggabungkan data dari Spanner dan sumber lain di BigQuery secara lancar.
Cadangan instance Spanner tidak menyertakan format kolom.
Praktik terbaik untuk menggunakan columnar engine
Bagian ini menjelaskan praktik terbaik saat menggunakan columnar engine.
Pengoptimalan pemindaian besar
Columnar engine mengoptimalkan kueri yang memindai data dalam jumlah besar. Untuk pemindaian data atau kueri yang lebih kecil dengan klausa LIMIT yang cepat terpenuhi, pemindaian berbasis baris mungkin lebih efisien.
Kolom penting
Jika Anda menggunakan SELECT *, Spanner akan membaca semua kolom dari penyimpanan kolom. Untuk memaksimalkan performa, tentukan hanya kolom yang diperlukan. Misalnya, SELECT column1, column2 FROM ....
Identifikasi bottleneck performa
Columnar engine efektif untuk workload yang terikat pemindaian. Untuk mengidentifikasi workload yang terikat pemindaian, periksa rencana kueri untuk tingkat latensi tinggi di node Pemindaian tabel. Jika kueri Anda tidak terikat pemindaian, prioritaskan pengoptimalan lainnya terlebih dahulu. Columnar engine dapat memberikan manfaat nanti jika pengoptimalan Anda membuat kueri terikat pemindaian.
Cakupan kolom yang optimal
Setelah Anda mengaktifkan columnar engine di database yang sudah berisi data, proses pemadatan otomatis Spanner akan mengonversi data ke penyimpanan kolom secara asinkron di latar belakang. Untuk melihat seberapa besar manfaat kueri Anda, periksa persentase Bagian baca kolom dalam rencana kueri.
Pengelolaan data churn tinggi
Tingkat penulisan yang tinggi dari update atau penyisipan acak dapat memengaruhi performa columnar engine. Workload yang hanya menambahkan data akan mengalami dampak minimal dari penggunaan columnar engine. Pemadatan adalah proses latar belakang, yang biasanya tersebar selama beberapa hari, tetapi dapat terjadi lebih cepat jika ukuran database bertambah secara signifikan. Atau, desain skema untuk mendukung penulisan yang hanya menambahkan data di tingkat pemisahan. Untuk mengetahui informasi selengkapnya, lihat sharding data yang diurutkan berdasarkan stempel waktu di Spanner.
Pengisolasian workload
Ada dua teknik yang dapat Anda gunakan untuk mengisolasi kueri analisis dari transaksi:
- Gunakan pembacaan terarah untuk merutekan pembacaan ke replika hanya baca.
- Gunakan Data Boost untuk kueri gabungan.
Harga
Penagihan untuk columnar engine Spanner didasarkan pada penggunaan penyimpanan. Setelah Anda mengaktifkan columnar engine Spanner dan Spanner menyelesaikan pemadatan data, penggunaan penyimpanan akan meningkat untuk menyertakan representasi kolom baru. Columnar engine menyediakan metrik penyimpanan yang memungkinkan Anda memantau dampaknya terhadap penyimpanan. Untuk mengetahui informasi selengkapnya, lihat Metrik penyimpanan data kolom.
Columnar engine Spanner tidak terpengaruh oleh overhead 8 byte per sel.
Langkah berikutnya
- Pelajari cara mengaktifkan columnar engine.
- Pelajari cara membuat kueri data kolom.
- Pelajari cara memantau columnar engine.