Membuat dan menjalankan alur kerja di Dataform
Panduan memulai ini ditujukan untuk data engineer dan analis data yang ingin mengelola transformasi data di BigQuery. Dalam panduan memulai ini, Anda akan mempelajari cara membuat dan menjalankan alur kerja Dataform menggunakan Dataform core, framework berbasis SQL untuk mengubah data mentah menjadi aset data yang telah dikurasi, diuji, dan didokumentasikan. Dengan menggunakan Dataform, Anda dapat mengembangkan dan mengontrol versi pipeline pemodelan data di repositori pusat, sehingga memastikan keandalan dan skalabilitas.
Panduan memulai ini akan memandu Anda melalui proses berikut di Dataform untuk membuat alur kerja dan menjalankannya di BigQuery:
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk melakukan semua tugas dalam panduan memulai ini, minta administrator Anda untuk memberikan peran IAM berikut:
- Admin Dataform (
roles/dataform.admin) di project atau repositori - BigQuery Data Editor (
roles/bigquery.dataEditor) di project atau set data tertentu - BigQuery Job User (
roles/bigquery.jobUser) di project - Pengguna Akun Layanan (
roles/iam.serviceAccountUser) di akun layanan kustom
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Memberikan peran yang diperlukan
Untuk menjalankan alur kerja di BigQuery, Anda dapat menggunakan akun layanan kustom atau Akun Google Anda.
Akun layanan kustom Anda harus memiliki peran wajib berikut:
- BigQuery Data Editor
(
roles/bigquery.dataEditor) di project atau set data BigQuery tertentu yang memerlukan akses baca dan tulis Dataform. Hal ini biasanya mencakup project yang menghosting repositori Dataform Anda. - BigQuery Data Viewer
(
roles/bigquery.dataViewer) di project atau set data BigQuery tertentu yang memerlukan akses hanya baca Dataform. - BigQuery Job User
(
roles/bigquery.jobUser) di project yang menghosting repositori Dataform Anda.
Agar Dataform dapat menggunakan akun layanan kustom Anda, agen layanan Dataform default harus memiliki peran berikut pada resource akun layanan kustom:
- Service Account Token Creator
(
roles/iam.serviceAccountTokenCreator) - Service Account User
(
roles/iam.serviceAccountUser)
Untuk memberikan peran ini, ikuti langkah-langkah berikut:
Di konsol Google Cloud , buka halaman IAM.
Klik Grant access.
Di kolom New principals, masukkan ID akun layanan kustom Anda.
Di menu Pilih peran, pilih peran berikut satu per satu, menggunakan Tambahkan peran lain untuk setiap peran tambahan:
- BigQuery Data Editor
- BigQuery Data Viewer
- BigQuery Job User
Klik Simpan.
Di konsol Google Cloud , buka halaman Service accounts.
Pilih akun layanan kustom Anda.
Buka Principals with access, lalu klik Grant access.
Di kolom New principals, masukkan ID agen layanan Dataform default Anda.
ID agen layanan Dataform default Anda memiliki format berikut:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.comGanti
PROJECT_NUMBERdengan ID angka project Google Cloud Anda. Anda dapat menemukan Google Cloud project ID di dasbor konsolGoogle Cloud . Untuk mengetahui informasi selengkapnya, lihat Menemukan nama, nomor, dan ID project.Di daftar Pilih peran, tambahkan peran berikut:
- Pengguna Akun Layanan
- Service Account Token Creator
Klik Simpan.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Memberi Dataform akses yang diperlukan.
Membuat repositori Dataform
Repositori Dataform adalah resource yang merepresentasikan repositori Git yang berisi kode project Dataform yang digunakan untuk mengembangkan, mengontrol versi, dan mengatur alur kerja. Untuk membuat repositori, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman BigQuery Dataform.
Klik Buat repositori.
Di halaman Create repository, lakukan hal berikut:
Di kolom Repository ID, masukkan
quickstart-repository.Dalam daftar Region, pilih
europe-west4.Dalam daftar Service account, pilih akun layanan kustom untuk repositori.
Di bagian pemeriksaan izin actAs, terapkan pemeriksaan izin pada tindakan pengguna untuk repositori.
Klik Create.
Klik Go to repositories.
Anda telah berhasil membuat repositori Dataform. Selanjutnya, Anda dapat membuat dan melakukan inisialisasi ruang kerja pengembangan.
API
Untuk membuat repositori, gunakan
metode projects.locations.repositories.create.
Jalankan permintaan API dengan informasi berikut:
- Endpoint:
POST https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories - Parameter kueri:
repositoryId=REPOSITORY_ID
Atau, di terminal, jalankan perintah curl berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{"serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"}' \
"https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories?repositoryId=REPOSITORY_ID"
Ganti kode berikut:
PROJECT_ID: ID unik Google Cloud project tempat Anda ingin membuat repositori Dataform.LOCATION: region Google Cloud tempat Anda ingin membuat repositori—misalnya,europe-west4.REPOSITORY_ID: ID unik untuk repositori Dataform baru Anda—misalnya,quickstart-repository.SERVICE_ACCOUNT_NAME: ID akun layanan kustom yang dibuat untuk menjalankan tugas BigQuery.
Membuat dan melakukan inisialisasi ruang kerja pengembangan
Ruang kerja Dataform adalah lingkungan pengembangan terpisah—seperti cabang Git—tempat Anda dapat mengedit dan mengompilasi kode. Untuk membuat ruang kerja, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman BigQuery Dataform.
Klik
quickstart-repository.Klik Buat ruang kerja pengembangan.
Di jendela Create development workspace, lakukan hal berikut:
Di kolom Workspace ID, masukkan
quickstart-workspace.Klik Create.
Halaman ruang kerja pengembangan akan muncul.
Klik Initialize workspace.
API
Untuk membuat ruang kerja Dataform, gunakan metode
projects.locations.repositories.workspaces.create.Jalankan permintaan API dengan informasi berikut:
- Endpoint:
POST https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/workspaces - Parameter kueri:
workspaceId=WORKSPACE_ID
Atau, di terminal, jalankan perintah
curlberikut:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{}" \ "https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/workspaces?workspaceId=WORKSPACE_ID"Ganti
WORKSPACE_IDdengan ID unik untuk ruang kerja pengembangan Dataform Anda—misalnya,feature-branch-1.- Endpoint:
Untuk menginisialisasi ruang kerja dengan konfigurasi yang diperlukan, buat file lokal bernama
workflow_settings.yamldan tempelkan konfigurasi berikut:defaultProject: PROJECT_ID defaultDataset: dataform dataformCoreVersion: CORE_VERSIONGanti
CORE_VERSIONdengan versi stabil (non-beta) terbaru Dataform core—misalnya,3.0.43. Anda dapat menemukan versi terbaru yang tercantum di Rilis.Di terminal, jalankan perintah berikut untuk mengenkode konten file menjadi satu string berkelanjutan:
base64 -w 0 workflow_settings.yamlSalin string output yang dihasilkan untuk digunakan di placeholder
SETTINGS_DEFINITIONjika Anda memutuskan untuk menggunakan perintahcurlalternatif nanti dalam langkah-langkah ini.Untuk membuat file konfigurasi di ruang kerja, gunakan metode
projects.locations.repositories.workspaces.writeFile.Jalankan permintaan API dengan informasi berikut:
- Endpoint:
POST https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/workspaces/WORKSPACE_ID:writeFile
Atau, di terminal, jalankan perintah
curlberikut:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "path": "workflow_settings.yaml", "contents": "SETTINGS_DEFINITION" }' \ "https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/workspaces/WORKSPACE_ID:writeFile"Ganti
SETTINGS_DEFINITIONdengan konten file YAML sebagai string berenkode Base64.- Endpoint:
Membuat tampilan
Tampilan Dataform adalah aset yang ditentukan dalam file SQLX yang memungkinkan Anda mengubah data dan berfungsi sebagai sumber untuk tabel atau tampilan lain dalam alur kerja Anda. Untuk membuat dan menentukan tampilan yang nantinya akan Anda gunakan sebagai sumber data untuk suatu tabel, pilih salah satu opsi berikut: