Menggunakan Dataflow SQL

Halaman ini menjelaskan cara menggunakan Dataflow SQL dan membuat tugas Dataflow SQL.

Untuk membuat tugas Dataflow SQL, Anda harus menulis dan run kueri Dataflow SQL.

Menggunakan editor Dataflow SQL

Editor Dataflow SQL adalah halaman di Konsol Google Cloud tempat Anda menulis dan menjalankan kueri untuk membuat tugas Dataflow SQL.

Untuk mengakses editor Dataflow SQL, ikuti langkah-langkah berikut:

Anda juga dapat mengakses editor Dataflow SQL dari antarmuka pemantauan Dataflow dengan mengikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Jobs Dataflow.

    Buka Tugas

  2. Di menu Dataflow, klik SQL Workspace.

Menulis kueri Dataflow SQL

Kueri Dataflow SQL menggunakan sintaksis kueri SQL Dataflow. Sintaksis kueri Dataflow SQL mirip dengan SQL standar BigQuery.

Anda dapat menggunakan Ekstensi streaming SQL Dataflow untuk menggabungkan data dari sumber Dataflow yang terus diperbarui seperti Pub/Sub.

Misalnya, kueri berikut menghitung penumpang di aliran Pub/Sub perjalanan taksi setiap menit:

SELECT
  DATETIME(tr.window_start) AS starttime,
  SUM(tr.passenger_count) AS pickup_count
FROM TUMBLE ((SELECT * FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`),
DESCRIPTOR(event_timestamp), 'INTERVAL 1 MINUTE') AS tr
WHERE
  tr.ride_status = "pickup"
GROUP BY DATETIME(tr.window_start)

Menjalankan kueri Dataflow SQL

Saat Anda menjalankan kueri Dataflow SQL, Dataflow akan mengubah kueri menjadi pipeline Apache Beam dan menjalankan pipeline.

Anda dapat menjalankan kueri Dataflow SQL menggunakan Google Cloud Console atau Google Cloud CLI.

Konsol

Untuk menjalankan kueri Dataflow SQL, gunakan editor Dataflow SQL:

  1. Buka halaman Dataflow SQL Editor.

    Buka editor Dataflow SQL

  2. Masukkan kueri Dataflow SQL ke dalam editor kueri.

  3. Klik Buat tugas untuk membuka panel opsi tugas.

  4. Opsional: Untuk Nama pekerjaan, masukkan nama pekerjaan yang unik.

  5. Untuk Endpoint regional, pilih nilai dari menu.

  6. Opsional: Klik Tampilkan parameter opsional, lalu masukkan nilai untuk opsi pipeline Dataflow yang disediakan.

  7. Untuk Destination, pilih Output type, lalu masukkan nilai untuk kolom yang disediakan.

  8. Opsional: Di bagian Parameter kueri SQL, tambahkan parameter, lalu masukkan nilai di kolom yang disediakan.

  9. Klik Create.

gcloud

Untuk menjalankan kueri Dataflow SQL, gunakan perintah gcloud dataflow sql query. Berikut ini adalah contoh kueri SQL yang membuat

gcloud dataflow sql query \
  --job-name=JOB_NAME \
  --region=REGION \
  --bigquery-table=BIGQUERY_TABLE \
  --bigquery-dataset=BIGQUERY_DATASET \
  --bigquery-project=BIGQUERY_PROJECT \
'SQL_QUERY'

Ganti kode berikut:

  • JOB_NAME: nama untuk tugas Dataflow SQL Anda
  • REGION: lokasi Dataflow untuk men-deploy tugas Dataflow Anda
  • BIGQUERY_TABLE: nama tabel BigQuery tempat Anda ingin menulis output
  • BIGQUERY_DATASET: ID set data BigQuery yang berisi tabel output
  • BIGQUERY_PROJECT: ID project Google Cloud yang berisi tabel BigQuery output
  • SQL_QUERY: kueri Dataflow SQL Anda

Menyetel opsi pipeline

Anda dapat menetapkan opsi pipeline Dataflow untuk tugas Dataflow SQL. Opsi pipeline Dataflow adalah parameter eksekusi yang mengonfigurasi cara dan tempat untuk menjalankan kueri Dataflow SQL.

Untuk menetapkan opsi pipeline Dataflow untuk tugas Dataflow SQL, tentukan parameter berikut saat Anda menjalankan kueri Dataflow SQL.

Konsol

Parameter Jenis Deskripsi Nilai default
Endpoint regional String Region tempat kueri dijalankan. Kueri Dataflow SQL dapat dijalankan di region yang memiliki lokasi Dataflow. Jika tidak disetel, setelan defaultnya adalah us-central1.
Maksimal pekerja int Jumlah maksimum instance Compute Engine yang tersedia untuk pipeline Anda selama eksekusi. Jika tidak ditentukan, layanan Dataflow secara otomatis menentukan jumlah pekerja yang tepat.
Wilayah pekerja String Region Compute Engine untuk meluncurkan instance worker guna menjalankan pipeline Anda. Region pekerja Compute Engine dapat berada di region yang berbeda dengan region tugas Dataflow. Jika tidak disetel, defaultnya adalah region Dataflow yang ditentukan.
Zona pekerja String Zona Compute Engine untuk meluncurkan instance pekerja guna menjalankan pipeline Anda. Zona Compute Engine dapat berada di region yang berbeda dengan region tugas Dataflow.

Jika tidak disetel, setelan defaultnya adalah zona di region pekerja.

Jika region pekerja tidak ditetapkan, setelan defaultnya adalah zona di region Dataflow yang ditentukan.

Email akun layanan String Alamat email akun layanan pekerja yang akan digunakan untuk menjalankan pipeline. Alamat email harus dalam format my-service-account-name@<project-id>.iam.gserviceaccount.com. Jika tidak ditetapkan, pekerja Dataflow akan menggunakan akun layanan Compute Engine dari project saat ini sebagai akun layanan pekerja.
Jenis mesin String

Jenis mesin Compute Engine yang digunakan Dataflow saat memulai pekerja. Anda dapat menggunakan salah satu kelompok jenis mesin Compute Engine yang tersedia serta jenis mesin kustom.

Untuk hasil terbaik, gunakan jenis mesin n1. Jenis mesin inti bersama, seperti pekerja seri f1 dan g1, tidak didukung berdasarkan Perjanjian Tingkat Layanan Dataflow.

Perlu diingat bahwa Dataflow menghitung biaya berdasarkan jumlah vCPU dan GB memori dalam pekerja. Penagihan tidak bergantung pada kelompok jenis mesin.

Jika tidak ditetapkan, Dataflow akan otomatis memilih jenis mesin.
Eksperimen tambahan String Eksperimen yang akan diaktifkan. Eksperimen dapat berupa nilai, seperti enable_streaming_engine, atau pasangan nilai kunci, seperti shuffle_mode=service. Eksperimen harus dimasukkan dalam daftar yang dipisahkan koma. Jika tidak ditentukan, tidak ada eksperimen yang diaktifkan.
Konfigurasi Alamat IP Pekerja String

Menentukan apakah pekerja Dataflow menggunakan alamat IP publik.

Jika nilai ditetapkan ke Private, pekerja Dataflow akan menggunakan alamat IP pribadi untuk semua komunikasi. Network atau Subnetwork yang ditentukan harus mengaktifkan Akses Google Pribadi.

Jika nilai ditetapkan ke Private dan opsi Subnetwork ditentukan, opsi Network akan diabaikan.

Jika tidak disetel, setelan defaultnya adalah Public.
Jaringan String Jaringan Compute Engine tempat pekerja ditetapkan. Jika tidak disetel, jaringan akan disetel secara default ke default.
Subnetwork String Subnetwork Compute Engine tempat pekerja ditetapkan. Subnetwork harus dalam format regions/region/subnetworks/subnetwork. Jika tidak disetel, Dataflow akan otomatis menentukan subnetwork.

gcloud

Tanda Jenis Deskripsi Nilai default
‑‑region String Region tempat kueri dijalankan. Kueri Dataflow SQL dapat dijalankan di region yang memiliki lokasi Dataflow. Jika tidak disetel, error akan muncul.
‑‑max‑workers int Jumlah maksimum instance Compute Engine yang tersedia untuk pipeline Anda selama eksekusi. Jika tidak ditentukan, Dataflow secara otomatis menentukan jumlah pekerja yang tepat.
‑‑num‑workers int Jumlah awal instance Compute Engine yang akan digunakan saat menjalankan pipeline Anda. Parameter ini menentukan jumlah pekerja yang dimulai oleh Dataflow saat tugas Anda dimulai. Jika tidak ditentukan, Dataflow secara otomatis menentukan jumlah pekerja yang tepat.
‑‑worker‑region String

Region Compute Engine untuk meluncurkan instance worker guna menjalankan pipeline Anda. Region pekerja Compute Engine dapat berada di region yang berbeda dengan region tugas Dataflow.

Anda dapat menentukan salah satu dari ‑‑worker‑region atau ‑‑worker‑zone.

Jika tidak disetel, defaultnya adalah region Dataflow yang ditentukan.
‑‑worker‑zone String

Zona Compute Engine untuk meluncurkan instance pekerja guna menjalankan pipeline Anda. Zona Compute Engine dapat berada di region yang berbeda dengan region tugas Dataflow.

Anda dapat menentukan salah satu dari ‑‑worker‑region atau ‑‑worker‑zone.

Jika tidak disetel, setelan default akan ditetapkan ke zona dalam region Dataflow yang ditentukan.
‑‑worker‑machine‑type String

Jenis mesin Compute Engine yang digunakan Dataflow saat memulai pekerja. Anda dapat menggunakan salah satu kelompok jenis mesin Compute Engine yang tersedia serta jenis mesin kustom.

Untuk hasil terbaik, gunakan jenis mesin n1. Jenis mesin inti bersama, seperti pekerja seri f1 dan g1, tidak didukung berdasarkan Perjanjian Tingkat Layanan Dataflow.

Perlu diingat bahwa Dataflow menghitung biaya berdasarkan jumlah vCPU dan GB memori dalam pekerja. Penagihan tidak bergantung pada kelompok jenis mesin.

Jika tidak ditetapkan, Dataflow akan otomatis memilih jenis mesin.
‑‑service‑account‑email String Alamat email akun layanan pekerja yang akan digunakan untuk menjalankan pipeline. Alamat email harus dalam format my-service-account-name@<project-id>.iam.gserviceaccount.com. Jika tidak ditetapkan, pekerja Dataflow akan menggunakan akun layanan Compute Engine dari project saat ini sebagai akun layanan pekerja.
‑‑disable‑public‑ips boolean

Menentukan apakah pekerja Dataflow menggunakan alamat IP publik.

Jika ditetapkan, pekerja Dataflow akan menggunakan alamat IP pribadi untuk semua komunikasi.

Jika tidak ditetapkan, pekerja Dataflow akan menggunakan alamat IP publik.
‑‑network String Jaringan Compute Engine tempat pekerja ditetapkan. Jika tidak disetel, jaringan akan disetel secara default ke default.
‑‑subnetwork String Subnetwork Compute Engine tempat pekerja ditetapkan. Subnetwork harus dalam format regions/region/subnetworks/subnetwork. Jika tidak disetel, Dataflow akan otomatis menentukan subnetwork.
‑‑dataflow‑kms‑key String Kunci enkripsi yang dikelola pelanggan (CMEK) yang digunakan untuk mengenkripsi data dalam penyimpanan. Anda dapat mengontrol kunci enkripsi melalui Cloud KMS. Kunci tersebut harus berada di lokasi yang sama dengan tugas. Jika tidak ditentukan, Dataflow akan menggunakan enkripsi Google Cloud default, bukan CMEK.

Untuk informasi selengkapnya, lihat referensi perintah gcloud dataflow sql query.

Menghentikan tugas Dataflow SQL

Untuk menghentikan tugas Dataflow SQL, Anda harus membatalkannya. Menghentikan tugas Dataflow SQL dengan opsi drain tidak didukung.

Harga

Dataflow SQL menggunakan harga Dataflow standar dan tidak memiliki harga terpisah. Anda akan dikenai biaya untuk resource yang terpakai oleh tugas Dataflow yang Anda buat berdasarkan pernyataan SQL Anda. Biaya untuk resource ini adalah biaya Dataflow standar untuk vCPU, memori, Persistent Disk, Streaming Engine, dan Dataflow Shuffle.

Tugas Dataflow SQL mungkin menggunakan resource tambahan seperti Pub/Sub dan BigQuery, yang masing-masing dikenai biaya sesuai harganya.

Untuk mengetahui informasi selengkapnya tentang harga Dataflow, lihat Harga Dataflow.

Langkah selanjutnya