全部产品
Search
文档中心

DataWorks:Node Penugasan

更新时间:Nov 07, 2025

Dalam alur kerja data yang kompleks, seringkali diperlukan untuk melewatkan informasi dinamis antar node. Meskipun metode umum adalah menggunakan tabel antara, pendekatan ini tidak efisien untuk jumlah data kecil karena menambah I/O dan kompleksitas yang tidak perlu. Node penugasan memberikan solusi ringan: ia mengeksekusi skrip pendek (MaxCompute SQL, Python 2, atau Shell) dan meneruskan outputnya secara langsung sebagai parameter ke node hilir. Hal ini memungkinkan Anda membangun pipa fleksibel di mana tugas-tugas dikonfigurasi secara dinamis berdasarkan hasil dari tugas hulu.

Catatan penggunaan

  • Edisi: DataWorks Edisi Standar atau lebih tinggi.

  • Izin: Anda perlu memiliki peran Development atau Workspace Manager di ruang kerja DataWorks Anda. Untuk informasi lebih lanjut, lihat Menambahkan anggota ke ruang kerja.

Cara kerjanya

Fungsi inti dari node penugasan adalah penerusan parameter: mentransfer data dari node penugasan ke node hilir.

  • Node penugasan menghasilkan data dengan secara otomatis menetapkan output terakhir atau hasil kueri ke parameter output sistem bernama outputs.

  • Node hilir mengonsumsi data tersebut. Anda mengonfigurasinya untuk menggunakan outputs dengan menambahkan parameter input node (misalnya, param).

Format parameter

Nilai dan format parameter outputs bergantung pada bahasa skrip yang digunakan:

Bahasa

Nilai

Format

MaxCompute SQL

Output dari pernyataan SELECT terakhir.

Set hasil dilewatkan sebagai array dua dimensi.

Python 2

Output dari pernyataan print terakhir.

Output diperlakukan sebagai string tunggal, yang kemudian dipisahkan oleh koma (,) untuk membentuk array satu dimensi.

Shell

Output dari pernyataan echo terakhir.

Prosedur

Hasil dari node penugasan dapat dilewatkan ke semua jenis node hilir. Contoh berikut mendemonstrasikan alur kerja ini menggunakan node Shell.

  1. Konfigurasikan Node Penugasan

    Dalam alur kerja Anda, buat dan edit node penugasan. Pilih MaxCompute SQL, Python 2, atau Shell sesuai kebutuhan, dan tulis kode.

    image

  2. Konfigurasikan Node Shell

    image

    1. Buat node Shell.

    2. Di panel Scheduling di sebelah kanan, pilih tab Input and Output Parameters.

    3. Di bagian Input Parameters, klik Create Parameter.

    4. Tetapkan nama parameter untuk parameter input, seperti param dan atur nilainya menjadi parameter outputs.

      Catatan

      Setelah konfigurasi ini, DataWorks secara otomatis membuat dependensi antara node Shell dan node penugasan.

    5. Setelah mengonfigurasi parameter, Anda dapat mereferensikan nilai yang dilewatkan dalam skrip Shell Anda menggunakan format ${param}.

  3. Jalankan dan Verifikasi

    1. Di kanvas alur kerja, klik Deploy di bilah alat atas dan pilih full deployment.

    2. Navigasikan ke Operation Center > Auto Triggered Node O&M > Auto Triggered Nodes.

    3. Jalankan tes asap pada alur kerja target Anda dan verifikasi bahwa hasilnya sesuai harapan.

Keterbatasan

  • Parameter hanya dapat dilewatkan ke node hilir langsung.

  • Batas ukuran: Parameter outputs tidak boleh melebihi 2 MB, jika tidak, node penugasan akan gagal.

  • Keterbatasan sintaksis:

    • Jangan sertakan komentar dalam kode node. Komentar dapat mengganggu penguraian output dan menyebabkan node gagal atau menghasilkan nilai yang salah.

    • Klausa WITH tidak didukung dalam mode MaxCompute SQL.

Contoh berdasarkan bahasa

Format data outputs dan metode referensi bervariasi berdasarkan bahasa.

Contoh 1: Melewatkan hasil kueri MaxCompute SQL

Hasil kueri SQL dilewatkan ke node Shell sebagai array dua dimensi.

  • Node Penugasan

    Asumsikan kode SQL mengembalikan dua baris dan dua kolom:

    SELECT 'value1', 'value2'
    UNION ALL 
    SELECT 'value3', 'value4';
  • Node Shell

    Tambahkan parameter input bernama param yang mereferensikan outputs dari node penugasan. Gunakan skrip berikut untuk membaca data:

    # Output seluruh array 2D
    echo "Set hasil lengkap: ${param}"
    
    # Output baris pertama (array 1D)
    echo "Baris pertama: ${param[0]}"
    
    # Output bidang kedua dari baris pertama
    echo "Bidang kedua dari baris pertama: ${param[0][1]}"
  • Output yang Diharapkan

    DataWorks mengurai parameter dan melakukan penggantian statis, menghasilkan output berikut:

    Set hasil lengkap: value1,value2
    value3,value4
    Baris pertama: value1,value2
    Bidang kedua dari baris pertama: value2

Contoh 2: Melewatkan output Python 2

Output dari pernyataan print Python 2 dipisahkan oleh koma (,) dan dilewatkan sebagai array satu dimensi.

  • Node Penugasan

    Kode Python 2 adalah sebagai berikut:

    print "hello,dataworks";
  • Node Shell

    Tambahkan parameter input bernama param yang mereferensikan outputs dari node penugasan. Gunakan skrip berikut untuk membaca data:

    # Output seluruh array 1D
    echo "Set hasil lengkap: ${param}"
    
    # Output elemen berdasarkan indeks
    echo "Elemen pertama: ${param[0]}"
    echo "Elemen kedua: ${param[1]}"
  • Output yang Diharapkan

    DataWorks mengurai parameter dan melakukan penggantian statis, menghasilkan output berikut:

    Set hasil lengkap: "hello","dataworks"
    Elemen pertama: hello
    Elemen kedua: dataworks

Contoh 3: Melewatkan output Shell

Output dari pernyataan echo Shell dipisahkan oleh koma (,) dan dilewatkan sebagai array satu dimensi.

  • Node Penugasan

    Kode Shell adalah sebagai berikut:

    echo "hello,dataworks";
  • Node Shell

    Tambahkan parameter input bernama param yang mereferensikan outputs dari node penugasan. Gunakan skrip berikut untuk membaca data:

    # Output seluruh array 1D
    echo "Set hasil lengkap: ${param}"
    
    # Output elemen berdasarkan indeks
    echo "Elemen pertama: ${param[0]}"
    echo "Elemen kedua: ${param[1]}"
  • Output yang Diharapkan

    DataWorks mengurai parameter dan melakukan penggantian statis, menghasilkan output berikut:

    Set hasil lengkap: "hello","dataworks"
    Elemen pertama: hello
    Elemen kedua: dataworks

Kasus penggunaan lainnya

Penggunaan dengan node loop

Saat node hilir adalah node for-each atau do-while, lihat node for-each dan node do-while.

Penetapan parameter bawaan di jenis node lain

Node penugasan hanya mendukung MaxCompute SQL, Python 2, dan Shell. Namun, untuk banyak jenis node lainnya, Anda dapat menggunakan fitur penetapan parameter bawaan mereka untuk mencapai tujuan yang sama dan menyederhanakan alur kerja Anda. Node-node ini termasuk: EMR Hive, Hologres SQL, EMR Spark SQL, AnalyticDB untuk PostgreSQL, ClickHouse SQL, dan MySQL.

image

FAQ

T: Mengapa saya mendapatkan kesalahan "find no select sql in sql assignment!"?

J: Kesalahan ini terjadi karena node penugasan dalam mode MaxCompute SQL memerlukan pernyataan SELECT untuk menghasilkan nilai outputnya. Untuk menyelesaikan masalah ini, pastikan skrip Anda mencakup pernyataan SELECT.