Membuat kueri data berkolom

Halaman ini menjelaskan cara menjalankan kueri terhadap data berkolom.

Mengkueri data berkolom

Mesin kueri Spanner menganalisis kueri dan otomatis memilih format kolom jika bermanfaat. Namun, beberapa kelas kueri mungkin masih memerlukan petunjuk kueri untuk menggunakan format kolom. Berikut adalah contoh cara menggunakan petunjuk kueri @{scan_method=columnar}:

  • @{scan_method=columnar} SELECT COUNT(*) FROM Singers;
  • SELECT COUNT(*) FROM Singers @{scan_method=columnar};
  • @{scan_method=columnar} SELECT m.MsgBlob FROM Messages WHERE m.id='1234';

Selain itu, Anda dapat menonaktifkan pemilihan kolom secara otomatis secara eksplisit dengan menggunakan petunjuk kueri @{scan_method=no_columnar}.

Membuat kueri data kolom Spanner menggunakan kueri gabungan BigQuery

Untuk membaca data kolom Spanner dari BigQuery, Anda dapat membuat set data eksternal atau menggunakan fungsi EXTERNAL_QUERY.

Saat Anda membuat kueri set data eksternal, data kolom akan otomatis digunakan jika tersedia dan cocok untuk kueri Anda.

Jika Anda menggunakan fungsi EXTERNAL_QUERY, Spanner akan otomatis menggunakan data kolom jika tersedia dan sesuai untuk workload. Anda juga dapat menyertakan petunjuk @{scan_method=columnar} dalam kueri Spanner bertingkat.

Dalam contoh berikut untuk menggunakan petunjuk kueri:

  • Argumen pertama ke EXTERNAL_QUERY menentukan koneksi dan set data eksternal, my-project.us.albums.
  • Argumen kedua adalah kueri SQL yang memilih MarketingBudget dari tabel AlbumInfo dengan MarketingBudget kurang dari 500.000.
  • Petunjuk @{scan_method=columnar} mengoptimalkan kueri eksternal untuk pemindaian kolom.
  • Pernyataan SELECT luar menghitung jumlah nilai MarketingBudget yang ditampilkan oleh kueri eksternal.
  • Klausa AS total_marketing_spend menetapkan alias ke jumlah yang dihitung.
SELECT SUM(MarketingBudget) AS total_marketing_spend
FROM
  EXTERNAL_QUERY(
    'my-project.us.albums',
    '@{scan_method=columnar} SELECT AlbumInfo.MarketingBudget FROM AlbumInfo WHERE AlbumInfo.MarketingBudget < 500000;');

Langkah berikutnya