全部产品
Search
文档中心

DataWorks:Node Penugasan

更新时间:Nov 08, 2025

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

Catatan Penggunaan

  • Edisi: DataWorks Edisi Standar atau lebih tinggi.

  • Izin: Pengguna RAM harus ditambahkan ke ruang kerja target dan diberi izin pengembang yang diperlukan.

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

ODPS SQL

Output dari pernyataan SELECT terakhir.

Set hasil diteruskan 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 diteruskan ke semua jenis node hilir. Contoh berikut mendemonstrasikan alur kerja ini menggunakan node Shell.

  1. Konfigurasikan node penugasan.

    1. Masuk ke Konsol DataWorks. Di panel navigasi kiri, klik Data Development & O&M > Data Development.

    2. Dalam alur kerja Anda, buat dan edit node penugasan. Pada halaman konfigurasi node, pilih ODPS SQL untuk bahasa dan tulis kode.

      select * from xc_dpe_e2.xc_rpt_user_info_d where dt='20191008' limit 10;
    3. (Opsional) Di panel kanan, klik Properties. Pada tab Input and Output Parameters, sistem secara otomatis membuat parameter output bernama outputs untuk node ini.

  2. Konfigurasikan node Shell.

    1. Buat node Shell dan atur sebagai node hilir dari node penugasan dengan menyeret koneksi dari node penugasan ke node Shell di kanvas alur kerja.

    2. Pada halaman konfigurasi untuk node Shell, klik Properties di panel sisi kanan dan kemudian pilih tab Input and Output Parameters.

    3. Di bagian Input Parameters, klik Create.

    4. Di kotak dialog yang muncul, pilih parameter outputs dari node penugasan dan tentukan nama parameter untuk parameter input node saat ini, seperti param.

      Konfigurasi ini secara otomatis membuat dependensi antara node hilir dan node penugasan.
    5. Setelah mengonfigurasi parameter, referensikan nilai yang diteruskan dalam kode node Shell menggunakan format ${param}.

    6. echo '${param}';
      echo 'Baris pertama: '${param[0]};
      echo 'Field kedua dari baris pertama: '${param[0][1]};
      Sintaks akses variabel ${...}, termasuk pengindeksan array, bukan sintaks Shell standar. DataWorks melakukan pra-pemrosesan dan penggantian statis variabel ini sebelum eksekusi. Misalnya, DataWorks mengganti ${param[0][1]} dengan nilai aktual yang diambil dari node penugasan sebelum menyerahkan skrip akhir ke Shell untuk dieksekusi.
  3. Jalankan dan validasi hasilnya.

    Klik dua kali nama alur bisnis untuk membukanya. Pada halaman konfigurasi alur kerja, klik Run di bilah alat untuk menjalankan alur kerja dan memvalidasi hasilnya. Atau, setelah Anda mengirimkan node ke lingkungan pengembangan, buka Operation Center dan gunakan pengisian ulang data untuk menguji eksekusi.

Keterbatasan

  • Parameter hanya dapat diteruskan ke node hilir langsung.

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

  • Keterbatasan sintaks:

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

    • Klausa WITH tidak didukung dalam mode ODPS SQL.

Contoh Berdasarkan Bahasa

Format data outputs dan metode referensi bervariasi berdasarkan bahasa.

Contoh 1: Meneruskan hasil kueri ODPS SQL

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

  • Node Penugasan

    Tulis kueri SELECT.

    select * from xc_dpe_e2.xc_rpt_user_info_d where dt='20191008' limit 2;
  • 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 field kedua dari baris pertama
    echo "Field kedua dari baris pertama: ${param[0][1]}"
  • Output yang Diharapkan

    DataWorks menguraikan parameter dan melakukan penggantian statis, menghasilkan output berikut (nilai bergantung pada data Anda):

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

Contoh 2: Meneruskan output Python 2

Output dari pernyataan print Python 2 dipisahkan oleh koma (,) dan diteruskan 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 menguraikan parameter dan melakukan penggantian statis, menghasilkan output berikut:

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

Contoh 3: Meneruskan output Shell

Output dari pernyataan echo Shell dipisahkan oleh koma (,) dan diteruskan 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 menguraikan 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

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

Penetapan parameter bawaan di jenis node lain

Node penugasan hanya mendukung ODPS 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 ini meliputi: EMR Hive, Hologres SQL, EMR Spark SQL, AnalyticDB untuk PostgreSQL, ClickHouse SQL, dan MySQL.