Menjalankan template klasik

Setelah membuat dan melakukan stage template Dataflow, jalankan template dengan Konsol Google Cloud, REST API, atau Google Cloud CLI. Anda dapat men-deploy tugas template Dataflow dari banyak lingkungan, termasuk lingkungan standar App Engine, Cloud Functions, dan lingkungan terbatas lainnya.

Menggunakan konsol Google Cloud

Anda dapat menggunakan konsol Google Cloud untuk menjalankan template Dataflow kustom dan yang disediakan Google.

Template yang disediakan Google

Untuk menjalankan template yang disediakan Google:

  1. Buka halaman Dataflow di konsol Google Cloud.
  2. Buka halaman Dataflow
  3. Klik CREATE Job FROM TEMPLATE.
  4. Tombol Buat Tugas dari Template di konsol Google Cloud
  5. Pilih template yang disediakan Google yang ingin Anda jalankan dari menu drop-down Dataflow template.
  6. Formulir Eksekusi Template WordCount
  7. Masukkan nama pekerjaan di kolom Job Name.
  8. Masukkan parameter value di kolom parameter yang disediakan. Anda tidak memerlukan bagian Parameter Tambahan saat menggunakan template yang disediakan Google.
  9. Klik Run Job.

Template kustom

Untuk menjalankan template kustom:

  1. Buka halaman Dataflow di konsol Google Cloud.
  2. Buka halaman Dataflow
  3. Klik CREATE Job FROM TEMPLATE.
  4. Tombol Buat Tugas dari Template di konsol Google Cloud
  5. Pilih Custom Template dari menu drop-down Dataflow template.
  6. Formulir Eksekusi Template Kustom
  7. Masukkan nama pekerjaan di kolom Job Name.
  8. Masukkan jalur Cloud Storage ke file template Anda di kolom jalur Cloud Storage template.
  9. Jika template Anda memerlukan parameter, klik TAMBAHKAN PARAMETER di bagian Parameter tambahan. Masukkan Nama dan Nilai parameter. Ulangi langkah ini untuk setiap parameter yang diperlukan.
  10. Klik Run Job.

Menggunakan REST API

Untuk menjalankan template dengan permintaan REST API, kirim permintaan POST HTTP dengan project ID Anda. Permintaan ini memerlukan otorisasi.

Lihat referensi REST API untuk projects.locations.templates.launch guna mempelajari parameter yang tersedia lebih lanjut.

Membuat tugas batch template kustom

Contoh permintaan projects.locations.templates.launch membuat tugas batch dari template yang membaca file teks dan menulis file teks output. Jika permintaan berhasil, isi respons berisi instance LaunchTemplateResponse.

Ubah nilai berikut:

  • Ganti YOUR_PROJECT_ID dengan project ID Anda.
  • Ganti LOCATION dengan region Dataflow pilihan Anda.
  • Ganti JOB_NAME dengan nama pekerjaan pilihan Anda.
  • Ganti YOUR_BUCKET_NAME dengan nama bucket Cloud Storage Anda.
  • Tetapkan gcsPath ke lokasi Cloud Storage file template.
  • Tetapkan parameters ke daftar key-value pair Anda.
  • Tetapkan tempLocation ke lokasi yang izin tulisnya Anda miliki. Nilai ini diperlukan untuk menjalankan template yang disediakan Google.
    POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://YOUR_BUCKET_NAME/templates/TemplateName
    {
        "jobName": "JOB_NAME",
        "parameters": {
            "inputFile" : "gs://YOUR_BUCKET_NAME/input/my_input.txt",
            "output": "gs://YOUR_BUCKET_NAME/output/my_output"
        },
        "environment": {
            "tempLocation": "gs://YOUR_BUCKET_NAME/temp",
            "zone": "us-central1-f"
        }
    }

Membuat tugas streaming template kustom

Contoh permintaan projects.locations.templates.launch ini membuat tugas streaming dari template klasik yang membaca dari langganan Pub/Sub dan menulis ke tabel BigQuery. Jika ingin meluncurkan Template Flex, gunakan projects.locations.flexTemplates.launch sebagai gantinya. Contoh template adalah template yang disediakan Google. Anda dapat mengubah jalur dalam template untuk mengarah ke template kustom. Logika yang sama digunakan untuk meluncurkan template kustom dan template yang disediakan Google. Dalam contoh ini, tabel BigQuery harus sudah ada dengan skema yang sesuai. Jika berhasil, isi respons memuat instance LaunchTemplateResponse.

Ubah nilai berikut:

  • Ganti YOUR_PROJECT_ID dengan project ID Anda.
  • Ganti LOCATION dengan region Dataflow pilihan Anda.
  • Ganti JOB_NAME dengan nama pekerjaan pilihan Anda.
  • Ganti YOUR_BUCKET_NAME dengan nama bucket Cloud Storage Anda.
  • Ganti GCS_PATH dengan lokasi Cloud Storage file template. Lokasi harus dimulai dengan gs://
  • Tetapkan parameters ke daftar key-value pair Anda. Parameter yang tercantum bersifat khusus untuk contoh template ini. Jika Anda menggunakan template kustom, ubah parameter sesuai kebutuhan. Jika Anda menggunakan template contoh, ganti variabel berikut.
    • Ganti YOUR_SUBSCRIPTION_NAME dengan nama langganan Pub/Sub Anda.
    • Ganti YOUR_DATASET dengan set data BigQuery Anda, dan ganti YOUR_TABLE_NAME dengan nama tabel BigQuery Anda.
  • Tetapkan tempLocation ke lokasi yang izin tulisnya Anda miliki. Nilai ini diperlukan untuk menjalankan template yang disediakan Google.
    POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=GCS_PATH
    {
        "jobName": "JOB_NAME",
        "parameters": {
            "inputSubscription": "projects/YOUR_PROJECT_ID/subscriptions/YOUR_SUBSCRIPTION_NAME",
            "outputTableSpec": "YOUR_PROJECT_ID:YOUR_DATASET.YOUR_TABLE_NAME"
        },
        "environment": {
            "tempLocation": "gs://YOUR_BUCKET_NAME/temp",
            "zone": "us-central1-f"
        }
    }

Memperbarui tugas streaming template kustom

Contoh permintaan projects.locations.templates.launch ini menunjukkan cara memperbarui tugas streaming template. Jika Anda ingin mengupdate Template Flex, gunakan projects.locations.flexTemplates.launch sebagai gantinya.

  1. Jalankan Contoh 2: Membuat tugas streaming template kustom untuk memulai tugas template streaming.
  2. Kirim permintaan HTTP POST berikut, dengan nilai yang dimodifikasi berikut:
    • Ganti YOUR_PROJECT_ID dengan project ID Anda.
    • Ganti LOCATION dengan region Dataflow untuk tugas yang sedang Anda perbarui.
    • Ganti JOB_NAME dengan nama persis lowongan yang ingin Anda perbarui.
    • Ganti GCS_PATH dengan lokasi Cloud Storage file template. Lokasi harus dimulai dengan gs://
    • Tetapkan parameters ke daftar key-value pair Anda. Parameter yang tercantum bersifat khusus untuk contoh template ini. Jika Anda menggunakan template kustom, ubah parameter sesuai kebutuhan. Jika Anda menggunakan template contoh, ganti variabel berikut.
      • Ganti YOUR_SUBSCRIPTION_NAME dengan nama langganan Pub/Sub Anda.
      • Ganti YOUR_DATASET dengan set data BigQuery Anda, dan ganti YOUR_TABLE_NAME dengan nama tabel BigQuery Anda.
    • Gunakan parameter environment untuk mengubah setelan lingkungan, seperti jenis mesin. Contoh ini menggunakan jenis mesin n2-highmem-2, yang memiliki lebih banyak memori dan CPU per pekerja daripada jenis mesin default.
        POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=GCS_PATH
        {
            "jobName": "JOB_NAME",
            "parameters": {
                "inputSubscription": "projects/YOUR_PROJECT_ID/subscriptions/YOUR_TOPIC_NAME",
                "outputTableSpec": "YOUR_PROJECT_ID:YOUR_DATASET.YOUR_TABLE_NAME"
            },
            "environment": {
                "machineType": "n2-highmem-2"
            },
            "update": true
        }
    
  3. Akses Antarmuka pemantauan Dataflow, lalu pastikan bahwa tugas baru dengan nama yang sama telah dibuat. Lowongan ini memiliki status Diperbarui.

Menggunakan Library Klien Google API

Sebaiknya gunakan Library Klien Google API untuk melakukan panggilan ke Dataflow REST API dengan mudah. Contoh skrip ini menggunakan Library Klien Google API untuk Python.

Dalam contoh ini, Anda harus menetapkan variabel berikut:

  • project: Tetapkan ke project ID Anda.
  • job: Tetapkan ke nama tugas unik pilihan Anda.
  • template: Menetapkan ke lokasi Cloud Storage file template.
  • parameters: Menyetel ke kamus dengan parameter template.

Untuk menetapkan region, sertakan parameter location.

from googleapiclient.discovery import build

# project = 'your-gcp-project'
# job = 'unique-job-name'
# template = 'gs://dataflow-templates/latest/Word_Count'
# parameters = {
#     'inputFile': 'gs://dataflow-samples/shakespeare/kinglear.txt',
#     'output': 'gs://<your-gcs-bucket>/wordcount/outputs',
# }

dataflow = build("dataflow", "v1b3")
request = (
    dataflow.projects()
    .templates()
    .launch(
        projectId=project,
        gcsPath=template,
        body={
            "jobName": job,
            "parameters": parameters,
        },
    )
)

response = request.execute()

Untuk informasi selengkapnya tentang opsi yang tersedia, lihat metode projects.locations.templates.launch dalam referensi Dataflow REST API.

Menggunakan gcloud CLI

Gcloud CLI dapat menjalankan template kustom atau template yang disediakan Google menggunakan perintah gcloud dataflow jobs run. Contoh cara menjalankan template yang disediakan Google didokumentasikan di halaman template yang disediakan Google.

Untuk contoh template kustom berikut, tetapkan nilai berikut:

  • Ganti JOB_NAME dengan nama pekerjaan pilihan Anda.
  • Ganti YOUR_BUCKET_NAME dengan nama bucket Cloud Storage Anda.
  • Tetapkan --gcs-location ke lokasi Cloud Storage file template.
  • Tetapkan --parameters ke daftar parameter yang dipisahkan koma untuk diteruskan ke tugas. Spasi antara koma dan nilai tidak diizinkan.
  • Untuk mencegah VM menerima kunci SSH yang disimpan dalam metadata project, gunakan flag additional-experiments dengan opsi layanan block_project_ssh_keys: --additional-experiments=block_project_ssh_keys.

Membuat tugas batch template kustom

Contoh ini membuat tugas batch dari template yang membaca file teks dan menulis file teks output.

    gcloud dataflow jobs run JOB_NAME \
        --gcs-location gs://YOUR_BUCKET_NAME/templates/MyTemplate \
        --parameters inputFile=gs://YOUR_BUCKET_NAME/input/my_input.txt,output=gs://YOUR_BUCKET_NAME/output/my_output

Permintaan tersebut menampilkan respons dengan format berikut.

    id: 2016-10-11_17_10_59-1234530157620696789
    projectId: YOUR_PROJECT_ID
    type: JOB_TYPE_BATCH

Membuat tugas streaming template kustom

Contoh ini membuat tugas streaming dari template yang membaca dari topik Pub/Sub dan menulis ke tabel BigQuery. Tabel BigQuery harus sudah ada dengan skema yang sesuai.

    gcloud dataflow jobs run JOB_NAME \
        --gcs-location gs://YOUR_BUCKET_NAME/templates/MyTemplate \
        --parameters topic=projects/project-identifier/topics/resource-name,table=my_project:my_dataset.my_table_name

Permintaan tersebut menampilkan respons dengan format berikut.

    id: 2016-10-11_17_10_59-1234530157620696789
    projectId: YOUR_PROJECT_ID
    type: JOB_TYPE_STREAMING

Untuk mengetahui daftar lengkap flag untuk perintah gcloud dataflow jobs run, baca referensi gcloud CLI.

Pemantauan dan Pemecahan Masalah

Antarmuka pemantauan Dataflow memungkinkan Anda memantau tugas Dataflow. Jika tugas gagal, Anda dapat menemukan tips pemecahan masalah, strategi proses debug, dan katalog error umum di panduan Memecahkan Masalah Pipeline.