Menjalankan kueri gabungan dengan Data Boost

Halaman ini menjelaskan cara menggunakan Spanner Data Boost saat Anda menjalankan kueri gabungan dari BigQuery ke database Spanner. Dengan Data Boost, kueri gabungan berjalan dengan dampak minimal terhadap workload yang ada di instance Spanner yang disediakan. Kueri Data Boost dari BigQuery ke database Spanner dapat menggabungkan data BigQuery dengan data Spanner.

Gabungan Spanner memungkinkan BigQuery membuat kueri data yang ada di Spanner secara real time, tanpa menyalin atau memindahkan data. Untuk mempelajari kueri gabungan Spanner lebih lanjut, lihat Kueri gabungan Spanner. Untuk mempelajari Data Boost, lihat Ringkasan Data Boost.

Sebelum memulai

Sebelum dapat menjalankan kueri gabungan dengan Data Boost, Anda perlu menyelesaikan tugas berikut:

Membuat instance dan database Spanner

Jika Anda tidak memiliki instance dan database Spanner, ikuti langkah-langkah di Membuat dan mengkueri database menggunakan konsol Google Cloud untuk membuatnya.

Mengaktifkan BigQuery connection API

BigQuery connection API memungkinkan Anda mengelola koneksi BigQuery ke sumber data eksternal seperti database Spanner.

  • Aktifkan BigQuery connection API.

    Mengaktifkan API

Untuk mengetahui informasi selengkapnya, lihat API koneksi BigQuery dalam dokumentasi BigQuery.

Memberikan izin IAM untuk Data Boost kepada akun utama

Akun utama harus diberi izin berikut untuk menjalankan kueri dan ekspor dengan Data Boost:

  • spanner.instances.get - memungkinkan Anda mendapatkan konfigurasi instance.
  • spanner.databases.useDataBoost - memungkinkan Anda menggunakan resource komputasi Spanner Data Boost untuk memproses kueri yang dipartisi

Untuk mengetahui informasi selengkapnya tentang izin Spanner, lihat Izin Identity and Access Management (IAM).

Untuk memberikan izin yang diperlukan ini, sebaiknya buat peran kustom berdasarkan peran Spanner Database Reader (roles/spanner.databaseReader) yang menyertakan spanner.instances.get dan spanner.databases.useDataBoost. Kemudian, Anda dapat menambahkan peran tersebut ke akun utama yang perlu dapat menjalankan kueri dan ekspor dengan Data Boost. Untuk mempelajari cara membuat peran IAM kustom, lihat Membuat peran kustom. Untuk mempelajari peran bawaan di Spanner lebih lanjut, lihat Peran bawaan.

Menjalankan kueri Data Boost gabungan

Untuk menjalankan kueri Data Boost dari BigQuery ke sumber eksternal, Anda memerlukan koneksi BigQuery ke sumber eksternal dan ID koneksi. Saat Anda menjalankan kueri Spanner gabungan dengan Data Boost, sumber eksternal adalah database Spanner. Setelah Anda membuat ID koneksi, ID tersebut akan digunakan oleh BigQuery untuk menjalankan kueri Data Boost database Spanner.

Gunakan salah satu opsi berikut untuk membuat ID koneksi BigQuery, lalu gunakan ID koneksi tersebut untuk menjalankan kueri Data Boost dari BigQuery:

  1. Mulai di Spanner - Buat ID koneksi eksternal BigQuery di konsol Spanner. Setelah ID koneksi dibuat di konsol Spanner, Anda akan dialihkan ke konsol BigQuery untuk menjalankan kueri Data Boost gabungan ke database Spanner.

  2. Mulai di BigQuery - Buat ID koneksi eksternal Data Boost di konsol BigQuery atau menggunakan alat command line bq. Setelah membuat ID koneksi, Anda tetap berada di konsol BigQuery untuk menjalankan kueri Data Boost gabungan ke database Spanner.

Mulai di Spanner untuk menjalankan kueri Data Boost

Untuk menjalankan kueri Data Boost gabungan yang dimulai di Spanner Studio, lakukan tindakan berikut:

  1. Buka halaman Instance Spanner di konsol Google Cloud.

    Buka halaman Instances

    Konsol menampilkan daftar instance Spanner Anda.

  2. Pilih instance Spanner, lalu pilih database.

  3. Di halaman Ringkasan database, di menu navigasi, klik Spanner Studio.

  4. Klik Lihat di BigQuery.

  5. Di dialog Lihat di BigQuery, masukkan ID koneksi.

    ID koneksi digunakan untuk membuat koneksi eksternal BigQuery baru ke database Spanner Anda. Anda mereferensikan koneksi eksternal menggunakan pola berikut:

    PROJECT-ID.LOCATION.CONNECTION-ID
    

    Error akan terjadi jika ID sudah ada.

  6. Isi bagian dialog lainnya dan lakukan hal berikut:

    • Pilih Read data in parallel.
    • Pilih Gunakan Spanner Data Boost.
  7. Klik Lihat di BigQuery.

    BigQuery Studio akan terbuka dengan kueri berikut:

    SELECT * FROM EXTERNAL_QUERY("PROJECT-ID.LOCATION.CONNECTION-ID", "SELECT * FROM INFORMATION_SCHEMA.TABLES;");
    

    Anda dapat menggantinya dengan kueri gabungan. Misalnya, Anda dapat membuat kueri yang mirip dengan contoh berikut. Contoh ini membuat kueri gabungan dari tabel bernama orders di database Spanner dan menggabungkan hasilnya dengan tabel BigQuery bernama mydataset.customers.

    SELECT c.customer_id, c.name, rq.first_order_date
    FROM mydataset.customers AS c
    LEFT OUTER JOIN EXTERNAL_QUERY(
      'my-project.us.example-db',
      '''SELECT customer_id, MIN(order_date) AS first_order_date
      FROM orders
      GROUP BY customer_id''') AS rq
      ON rq.customer_id = c.customer_id
    GROUP BY c.customer_id, c.name, rq.first_order_date;

Mulai di BigQuery untuk menjalankan kueri Data Boost

Untuk membuat koneksi data eksternal dari BigQuery ke database Spanner dan menggunakan koneksi tersebut untuk menjalankan kueri Data Boost gabungan dari BigQuery, pilih salah satu opsi berikut:

Konsol

  1. Buka Membuat koneksi Spanner di dokumentasi BigQuery dan ikuti petunjuk di tab Konsol.

  2. Di panel External data source, lakukan hal berikut:

    • Pilih Read data in parallel.
    • Pilih Gunakan Spanner Data Boost.

bq

  1. Buka Membuat koneksi Spanner di dokumentasi BigQuery dan ikuti petunjuk di tab bq*.

  2. Tetapkan properti koneksi berikut ke true:

    • useParallelism
    • useDataBoost

Contoh berikut menggunakan perintah bq mk untuk membuat koneksi baru bernama my_connection dengan dua properti yang diperlukan untuk Data Boost:

bq mk --connection --connection_type='CLOUD_SPANNER' --location='us' \
--properties='{"database":"projects/my-project/instances/my-instance/databases/my-database", "useParallelism":true, "useDataBoost": true}' my_connection

Langkah selanjutnya