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

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery and Dataform APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the APIs

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery and Dataform APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the APIs

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:

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:

Untuk memberikan peran ini, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman IAM.

    Buka IAM

  2. Klik Grant access.

  3. Di kolom New principals, masukkan ID akun layanan kustom Anda.

  4. 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
  5. Klik Simpan.

  6. Di konsol Google Cloud , buka halaman Service accounts.

    Buka halaman Service accounts

  7. Pilih akun layanan kustom Anda.

  8. Buka Principals with access, lalu klik Grant access.

  9. 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.com
    

    Ganti PROJECT_NUMBER dengan 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.

  10. Di daftar Pilih peran, tambahkan peran berikut:

    • Pengguna Akun Layanan
    • Service Account Token Creator
  11. 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

  1. Di konsol Google Cloud , buka halaman BigQuery Dataform.

    Buka Dataform

  2. Klik Buat repositori.

  3. Di halaman Create repository, lakukan hal berikut:

    1. Di kolom Repository ID, masukkan quickstart-repository.

    2. Dalam daftar Region, pilih europe-west4.

    3. Dalam daftar Service account, pilih akun layanan kustom untuk repositori.

    4. Di bagian pemeriksaan izin actAs, terapkan pemeriksaan izin pada tindakan pengguna untuk repositori.

    5. Klik Create.

    6. 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

  1. Di konsol Google Cloud , buka halaman BigQuery Dataform.

    Buka Dataform

  2. Klik quickstart-repository.

  3. Klik Buat ruang kerja pengembangan.

  4. Di jendela Create development workspace, lakukan hal berikut:

    1. Di kolom Workspace ID, masukkan quickstart-workspace.

    2. Klik Create.

    Halaman ruang kerja pengembangan akan muncul.

  5. Klik Initialize workspace.

API

  1. 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 curl berikut:

    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_ID dengan ID unik untuk ruang kerja pengembangan Dataform Anda—misalnya, feature-branch-1.

  2. Untuk menginisialisasi ruang kerja dengan konfigurasi yang diperlukan, buat file lokal bernama workflow_settings.yaml dan tempelkan konfigurasi berikut:

    defaultProject: PROJECT_ID
    defaultDataset: dataform
    dataformCoreVersion: CORE_VERSION
    

    Ganti CORE_VERSION dengan versi stabil (non-beta) terbaru Dataform core—misalnya, 3.0.43. Anda dapat menemukan versi terbaru yang tercantum di Rilis.

  3. Di terminal, jalankan perintah berikut untuk mengenkode konten file menjadi satu string berkelanjutan:

    base64 -w 0 workflow_settings.yaml
    
  4. Salin string output yang dihasilkan untuk digunakan di placeholder SETTINGS_DEFINITION jika Anda memutuskan untuk menggunakan perintah curl alternatif nanti dalam langkah-langkah ini.

  5. 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 curl berikut:

    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_DEFINITION dengan konten file YAML sebagai string berenkode Base64.

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:

Konsol