Selesaikan masalah umum yang mungkin Anda alami saat menggunakan columnar engine AlloyDB untuk PostgreSQL.
Anda menambahkan kolom yang direferensikan ke columnar engine, tetapi kueri SELECT Anda tidak menggunakannya
Deskripsi: Untuk menggunakan columnar engine, semua kolom yang direferensikan dalam fragmen kueri—seperti gabung dan pemindaian—harus berada di penyimpanan kolom. Jika ada kolom yang direferensikan tidak ada di columnar engine, fragmen kueri akan ditetapkan secara default ke penyimpanan baris.
Fragmen kueri dalam konteks ini adalah kueri yang dapat memiliki beberapa node pemindaian. Misalnya, fragmen kueri dapat memiliki dua node pemindaian untuk gabungan. Satu node pemindaian mungkin menggunakan non-kolom dan node pemindaian lainnya mungkin menggunakan kolom. Semua kolom node pemindaian—kolom filter dan kolom proyeksi—harus diisi dalam bentuk kolom. Demikian pula, kueri dapat memiliki beberapa partisi dalam bentuk kolom dan partisi lainnya dalam bentuk non-kolom.
Perbaikan yang direkomendasikan: Untuk memverifikasi bahwa semua kolom yang direferensikan ada di columnar engine, ikuti langkah-langkah berikut:
Periksa jenis data yang didukung.
Pastikan AlloyDB mendukung semua jenis data kolom yang ingin Anda gunakan dengan columnar engine. Untuk mengetahui informasi selengkapnya, lihat Jenis data yang didukung.
Periksa operator yang didukung.
Pastikan AlloyDB mendukung operator pada jenis data di columnar engine. Untuk mengetahui informasi selengkapnya tentang operator yang didukung, lihat Jenis kueri yang diuntungkan dari columnar engine.
Jalankan perintah
EXPLAIN COLUMNAR_ENGINE.Untuk mengidentifikasi dan mengatasi masalah yang mencegah kueri tertentu menggunakan columnar engine, jalankan perintah
EXPLAIN COLUMNAR_ENGINEberikut:EXPLAIN (COLUMNAR_ENGINE, ANALYZE) SELECT column1, column2 FROM my_table WHERE column3 > 100;
Anda tidak dapat menambahkan atau menghapus tabel di columnar engine
Deskripsi: Anda ingin menambahkan atau menghapus tabel di columnar engine.
Perbaikan yang disarankan: Verifikasi izin pengguna Anda. Anda hanya dapat menambahkan atau menghapus tabel di columnar engine jika memiliki hak istimewa baca pada tabel.
Ukuran data berbentuk kolom melebihi memori yang dialokasikan
Deskripsi: Anda mengalami masalah performa atau penanganan data saat ukuran data berbentuk kolom melebihi alokasi memori untuk columnar engine.
Perbaikan yang direkomendasikan: Untuk performa yang optimal, gunakan fitur rekomendasi di AlloyDB untuk mengidentifikasi tabel dan kolom yang optimal untuk mengisi columnar engine.
Jika tabel dan kolom yang direkomendasikan melebihi memori fisik mesin berbasis kolom, data berbasis kolom yang berlebih akan menggunakan sebagian lapisan cache ultra-cepat. Kueri pada data yang tersisa dalam tabel, yang tidak ada di columnar engine, secara transparan menggunakan penyimpanan baris.
Anda juga dapat menyesuaikan alokasi memori columnar engine dan cache penyimpanan. Mesin columnar engine disediakan dengan ukuran default untuk memori dan cache penyimpanan. Anda dapat mengonfigurasi cache memori dan penyimpanan secara manual. Untuk mengubah jumlah memori atau cache penyimpanan yang dialokasikan ke columnar engine, lihat Mengonfigurasi memori untuk columnar engine.
Kueri terhadap tabel Apache Iceberg gagal atau tidak menggunakan columnar engine
Deskripsi: Kueri pada tabel Apache Iceberg yang dibuat menggunakan metode akses tabel USING iceberg gagal dengan error atau kembali ke pemindaian langsung.
Perbaikan yang direkomendasikan:
- Pastikan flag
google_columnar_engine.enable_iceberg_readsditetapkan keonpada instance dan instance telah dimulai ulang. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi flag database. - Pastikan agen layanan cluster AlloyDB Anda memiliki peran Storage Object Viewer (
roles/storage.objectViewer) di bucket Cloud Storage yang berisi data dan metadata Iceberg Anda, dan jika menggunakan katalog runtime Lakehouse, peran BigLake Viewer (roles/biglake.viewer) di project yang menghosting katalog BigLake Anda. - Untuk memverifikasi eksekusi berbentuk kolom, jalankan
EXPLAIN (ANALYZE, COSTS OFF)dan konfirmasi bahwa rencana berisi nodeCustom Scan (ColumnarScan). Untuk mengetahui langkah-langkah pemecahan masalah yang mendetail, lihat Memecahkan masalah akses Iceberg langsung.