全部产品
Search
文档中心

DataWorks:Gunakan paket pihak ketiga dan skrip Python kustom di node PyODPS

更新时间:Dec 10, 2025

Jika fitur standar PyODPS tidak memenuhi kebutuhan bisnis kompleks Anda, Anda dapat menggunakan kembali kode Python yang sudah ada atau memanfaatkan library open source. DataWorks menyediakan dua metode untuk memperluas kemampuan pemrosesan data: memuat skrip kustom sebagai resource atau mengintegrasikan paket pihak ketiga yang andal dengan mengonfigurasi lingkungan runtime melalui custom image atau O&M Assistant. Topik ini menjelaskan cara memanggil skrip Python kustom dan menggunakan paket open source di node PyODPS DataWorks.

Kasus penggunaan

Pilih metode yang sesuai berdasarkan lingkungan dan kebutuhan Anda.

Scenario

Resource group type

Solution

Depends on open source third-party packages

Serverless resource group

Install open source packages using a custom image

Exclusive resource group for scheduling

Install open source packages using O&M Assistant

Depends only on custom .py script files

Serverless resource group or exclusive resource group for scheduling

Reference custom Python resources

Gambar berikut menunjukkan proses utama untuk setiap solusi.

Persiapan

Sebelum memulai, Anda harus memahami dua konsep utama berikut untuk menentukan metode konfigurasi yang akan digunakan.

Deskripsi konsep

  1. Tipe node: PyODPS 2 vs. PyODPS 3

    • PyODPS 2: Berbasis lingkungan Python 2.7.

    • PyODPS 3: Berbasis lingkungan Python 3.7+.

    • Rekomendasi: Kami sangat menyarankan Anda menggunakan PyODPS 3 karena dukungan resmi untuk Python 2 telah dihentikan. Topik ini menggunakan PyODPS 3 sebagai contoh utama.

  2. Tipe kelompok sumber daya: Serverless resource groups vs. exclusive resource groups for scheduling

    • Serverless resource group: Direkomendasikan. Jenis kelompok sumber daya ini elastis dan bebas perawatan. Anda dapat menggunakan custom images untuk mengelola dependensi pihak ketiga. Solusi ini andal dan fleksibel.

    • Exclusive resource group for scheduling: Solusi lama. Tidak direkomendasikan. Anda harus membeli dan memelihara server ECS terlebih dahulu. Sumber daya tidak dapat diskalakan secara elastis. Menginstal dependensi menggunakan O&M Assistant memiliki banyak batasan dan berpotensi mencemari lingkungan.

Menentukan tipe kelompok sumber daya

Di Konsol DataWorks, buka halaman Resource Group di panel Workspace Details untuk melihat tipe kelompok sumber daya yang terhubung ke ruang kerja Anda.

  • Jika tipenya adalah General-purpose Type, Anda menggunakan serverless resource group.

  • Jika tipenya adalah Data Scheduling, Anda menggunakan exclusive resource group for scheduling.

Instal paket open source menggunakan custom image

Penting

Metode ini berlaku untuk serverless resource groups.

Bagian ini memandu Anda melalui kasus lengkap dari awal hingga akhir. Anda akan membuat lingkungan kustom yang berisi paket pendulum. Kemudian, Anda akan memanggilnya di node PyODPS 3 untuk mendapatkan dan memformat waktu saat ini dalam zona waktu tertentu.

Langkah 1: Buat custom image yang berisi pendulum

Custom image digunakan untuk menyiapkan lingkungan runtime untuk serverless resource groups.

  1. Masuk ke Konsol DataWorks. Di panel navigasi sebelah kiri, klik Image Management.

  2. Klik tab Custom Images.

  3. Di pojok kiri atas, klik Create Image. Pada halaman yang muncul, konfigurasikan parameter utama berikut.

    Parameter

    Description

    Image Name

    Nama custom image. Misalnya, pyodps3_with_pendulum.

    Reference Type

    Pilih DataWorks Official Image.

    Image Name/ID

    Dari daftar drop-down, pilih image resmi DataWorks dataworks_pyodps_task_pod.

    Supported Task Types

    Pilih tipe task PyODPS 3.

    Installation Package

    Pilih Python3, lalu pilih paket pendulum dari daftar drop-down.

    Untuk menginstal paket open source non-bawaan, Anda dapat menginstalnya secara manual dalam mode Script. Untuk informasi lebih lanjut tentang metode konfigurasi, lihat Create custom image parameters.
    Penting

    Jika Anda menginstal paket open source dari Internet, VPC yang terhubung ke serverless resource group harus have public network access enabled.

  4. Klik OK untuk membuat custom image.

  5. Di halaman Custom Images, uji lalu publikasikan image target. Anda hanya dapat memublikasikan image setelah lulus pengujian.

  6. Di kolom Actions image target, klik image > Change Workspace untuk mengaitkan custom image ke ruang kerja.

    image

Langkah 2: Buat dan konfigurasikan node PyODPS 3

  1. Di panel navigasi sebelah kiri, klik Data Development And O&M > Data Development. Dari daftar drop-down, pilih workspace target dan klik Go to Data Development.

  2. Di bawah business flow yang sudah ada, buat node PyODPS 3. Misalnya, Anda dapat memberi nama node tersebut pyodps3_pendulum_test.

  3. Di editor kode untuk node pyodps_pendulum_test, masukkan kode Python 3 berikut:

    # Karena pendulum telah diinstal di custom image, Anda dapat langsung mengimpornya. Sintaksis Python 3
    import pendulum
    print("Start testing the third-party package pendulum...")
    try:
        # Gunakan pendulum untuk mendapatkan waktu saat ini di zona waktu "Asia/Shanghai".
        shanghai_time = pendulum.now('Asia/Shanghai')
    
        # Cetak waktu yang diformat dan informasi zona waktu.
        print(f"Successfully imported the 'pendulum' package.")
        print(f"The current time in Shanghai is: {shanghai_time.to_datetime_string()}")
        print(f"The corresponding time zone is: {shanghai_time.timezone_name}")
    
        print("\nTest passed! The PyODPS node successfully called the third-party package.")
    except Exception as e:
        print(f"Test failed. An error occurred: {e}")

Langkah 3: Uji dan verifikasi hasilnya

  1. Di bilah alat, klik ikon ** untuk menjalankan kode. Di kotak dialog Parameters, pilih image pyodps3_with_pendulum yang telah Anda buat.

    Penting

    Jika Anda tidak menemukan image target, pastikan image tersebut telah dikaitkan ke ruang kerja saat ini. Untuk informasi lebih lanjut, lihat Langkah 6 di Langkah 1.

  2. Lihat log eksekusi di bagian bawah halaman. Output berikut menunjukkan bahwa paket pendulum berhasil dipanggil.

    Start testing the third-party package pendulum...
    Successfully imported the 'pendulum' package.
    The current time in Shanghai is: 2025-09-27 15:45:00
    The corresponding time zone is: Asia/Shanghai
    Test passed! The PyODPS node successfully called the third-party package.

Langkah 4: Publikasikan node PyODPS 3

Setelah pengujian selesai, buka Properties > Resource Group di sisi kanan editor node. Pilih serverless resource group yang telah disiapkan dan ubah image menjadi image kustom pyodps3_with_pendulum. Lalu, publikasikan node ke Operation Center.

Instal paket open source menggunakan O&M Assistant

Penting

Metode ini ditujukan untuk exclusive resource groups for scheduling, yang tidak lagi direkomendasikan. Kami menyarankan Anda migrasi ke serverless resource groups, yang lebih andal dan fleksibel.

  1. Masuk ke daftar workspace DataWorks. Di bilah navigasi atas, alihkan ke wilayah yang benar. Temukan workspace target dan klik Details di kolom Actions untuk membuka halaman produk workspace.

  2. Di panel navigasi sebelah kiri, klik Resource Group. Temukan exclusive resource group for scheduling yang terkait dan, di kolom Actions, klik image > O&M Assistant.

  3. Di halaman O&M Assistant, klik Create Command di pojok kiri atas.

  4. Masukkan perintah yang sesuai berdasarkan versi Python Anda.

    • Python 3 (PyODPS 3): Biarkan opsi default lainnya. Dari daftar drop-down, pilih paket instalasi pendulum di bawah tipe paket Python3.

    • Python 2 (PyODPS 2): Pilih mode Manual Input dan masukkan isi perintah berikut.

      pip install --upgrade pip
      pip install "pendulum<2.0"
  5. Di halaman O&M Assistant, klik Run Command di kolom Operation. Setelah perintah berhasil dieksekusi, Anda dapat langsung menggunakan import pendulum di node PyODPS yang sesuai.

Referensi resource Python kustom

Jika Anda hanya ingin memanggil fungsi dari file .py lain yang Anda tulis, lakukan langkah-langkah berikut:

  1. Buat resource Python:

    1. Di halaman Data Development, klik kanan business flow target dan pilih Create Resource > MaxCompute > Python.

    2. Di kotak dialog Create Resource, masukkan Name untuk resource tersebut (misalnya, my_utils.py) dan klik Create.

    3. Masukkan kode berikut di resource Python.

      # my_utils.py Sintaksis Python 3
      def say_hello(name):
          print(f"Hello, {name}! This is from my_utils module.")
    4. Save dan submit resource tersebut.

  2. Buat node PyODPS 3 dan referensikan resource tersebut:

    • Di business flow target, klik kanan MaxCompute, pilih Create Node > PyODPS 3, lalu buat node tersebut.

    • Di node tersebut, referensikan resource menggunakan ##@resource_reference{"my_utils.py"}. Kodenya sebagai berikut:

      ##@resource_reference{"my_utils.py"}
      import sys
      import os
      # Tambahkan direktori tempat resource berada ke jalur pencarian interpreter Python.
      sys.path.append(os.path.dirname(os.path.abspath('my_utils.py')))
      # Sekarang Anda dapat mengimpor dan menggunakannya seperti modul biasa.
      import my_utils
      my_utils.say_hello("DataWorks")
  3. Run node tersebut. Output "Hello, DataWorks! This is from my_utils module." akan muncul di log.

FAQ

  • Q: Saat saya menginstal paket secara manual menggunakan perintah, mengapa pengujian custom image tidak berlanjut dalam waktu lama?

    • A: Jika lingkungan runtime task bergantung pada paket pihak ketiga dari Internet, VPC yang terhubung ke serverless resource group harus memiliki akses jaringan publik yang diaktifkan. Untuk informasi lebih lanjut, lihat Enable public network access for a resource group.

    • Anda juga dapat mencoba beralih ke sumber paket Python yang berbeda, seperti https://mirrors.aliyun.com/pypi/simple/. Mirror Alibaba Cloud tidak memerlukan akses jaringan publik.

  • Q: Apa yang harus saya lakukan jika gagal mengimpor paket pihak ketiga?

    1. Pastikan custom image telah berhasil dipublikasikan.

    2. Pastikan tipe task (PyODPS 2 atau 3) yang didukung oleh image sesuai dengan tipe node yang Anda buat.

    3. Pastikan custom image telah dipilih dengan benar di scheduling configuration node PyODPS.

      Anda tidak dapat memilih public resource group.
    4. Periksa apakah versi paket yang diinstal kompatibel dengan versi Python Anda. Misalnya, pendulum versi 2.0 dan yang lebih baru tidak mendukung Python 2.

Referensi