Saat fitur bawaan PyODPS tidak memenuhi kebutuhan bisnis yang kompleks, Anda mungkin perlu menggunakan kembali kode Python atau memanfaatkan library open-source. DataWorks menyediakan dua solusi: memuat skrip kustom melalui referensi resource, atau mengintegrasikan paket pihak ketiga menggunakan custom image atau O&M Assistant. Topik ini menjelaskan cara memanggil skrip Python kustom atau menginstal dan menggunakan paket open-source pihak ketiga di node PyODPS DataWorks untuk memperluas kemampuan pemrosesan data Anda.
Pemilihan cepat
Pilih pendekatan berdasarkan lingkungan dan kebutuhan Anda.
|
Skenario |
Jenis kelompok sumber daya |
Solusi |
|
Menggunakan paket open-source pihak ketiga |
serverless resource group |
|
|
exclusive resource group for scheduling |
||
|
Hanya menggunakan file skrip |
serverless resource group / exclusive resource group for scheduling |
Gambar berikut menggambarkan alur kerja utama untuk setiap solusi.
Prasyarat
Sebelum memulai, pahami dua konsep utama berikut untuk memilih metode konfigurasi yang tepat.
Konsep utama
-
Jenis 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.
-
-
Jenis kelompok sumber daya: serverless resource group vs. exclusive resource group for scheduling
-
Serverless resource group (Direkomendasikan): Kelompok sumber daya ini elastis dan bebas perawatan. Anda dapat menggunakan custom image untuk mengelola paket pihak ketiga.
-
Exclusive resource group for scheduling (Tidak direkomendasikan): Ini adalah solusi lama. Anda harus membeli dan memelihara server ECS, serta sumber dayanya tidak dapat diskalakan secara elastis. Menggunakan O&M Assistant untuk menginstal dependensi memiliki banyak keterbatasan dan dapat merusak lingkungan.
-
Tentukan jenis kelompok sumber daya
Di Konsol DataWorks, buka halaman Detail Ruang Kerja untuk ruang kerja Anda. Di halaman Resource Group, periksa jenis kelompok sumber daya yang terkait dengan ruang kerja tersebut.
-
Jika jenisnya adalah General-purpose, Anda menggunakan serverless resource group.
-
Jika jenisnya adalah Data Scheduling, Anda menggunakan exclusive resource group for scheduling.
Instal paket open-source menggunakan custom image
Metode ini berlaku untuk serverless resource group.
Bagian ini memberikan contoh end-to-end pembuatan lingkungan kustom yang mencakup paket pendulum. Anda kemudian akan menggunakan node PyODPS 3 untuk memanggil paket ini guna mengambil dan memformat waktu saat ini untuk zona waktu tertentu.
Langkah 1: Buat custom image yang berisi library pendulum
Custom image mendefinisikan lingkungan runtime untuk serverless resource group.
-
Masuk ke konsol DataWorks, lalu klik Image Management di panel navigasi sebelah kiri.
-
Buka tab Custom Image.
-
Klik Create Image di pojok kiri atas. Di halaman Create, konfigurasikan parameter utama berikut:
Parameter
Deskripsi
Image Name
Masukkan nama untuk 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 yang disediakan sistem dari daftar drop-down.
Untuk menginstal paket open-source yang tidak tersedia secara bawaan, Anda dapat menggunakan mode Script untuk instalasi manual. Untuk informasi lebih lanjut tentang metode konfigurasi, lihat Parameter untuk membuat custom image.
PentingUntuk menginstal paket open-source dari internet publik, VPC yang terkait dengan serverless resource group harus memiliki akses jaringan publik.
-
Klik OK untuk membuat custom image.
-
Di halaman Custom Images, uji lalu deploy image tersebut. Image harus lolos pengujian sebelum dapat dideploy.
-
Di kolom Operation image target, klik untuk mengasosiasikan ruang kerja pemilik dengan custom image tersebut.
Setelah image berhasil dideploy, Deployment Status-nya berubah menjadi Deployed, dan tombol Disable muncul di kolom Actions. Menu drop-down Actions juga mencakup opsi seperti Modify, Build, View Versions, dan Delete Image.
Langkah 2: Buat dan konfigurasikan node PyODPS 3
-
Di bilah navigasi kiri, klik , pilih ruang kerja target dari daftar drop-down, lalu klik Go to DataStudio.
-
Di alur bisnis yang sudah ada, buat node PyODPS 3 bernama
pyodps3_pendulum_test. -
Di editor kode untuk node
pyodps_pendulum_test, masukkan kode Python 3 berikut:# Paket pendulum telah diinstal di custom image, sehingga Anda dapat langsung mengimpornya. import pendulum print("Mulai menguji paket pihak ketiga pendulum...") try: # Gunakan pendulum untuk mendapatkan waktu saat ini di zona waktu "Asia/Shanghai". shanghai_time = pendulum.now('Asia/Shanghai') # Cetak informasi waktu dan zona waktu yang telah diformat. print(f"Paket 'pendulum' berhasil diimpor.") print(f"Waktu saat ini di Shanghai adalah: {shanghai_time.to_datetime_string()}") print(f"Zona waktu yang sesuai adalah: {shanghai_time.timezone_name}") print("\nUji coba berhasil! Node PyODPS berhasil memanggil paket pihak ketiga.") except Exception as e: print(f"Uji coba gagal. Terjadi kesalahan: {e}")
Langkah 3: Uji dan verifikasi hasilnya
-
Klik ikon
di bilah alat untuk menjalankan kode, lalu di kotak dialog Parameter, pilih image pyodps3_with_pendulumyang telah Anda buat.PentingJika Anda tidak menemukan image target, pastikan image tersebut telah diasosiasikan dengan ruang kerja saat ini. Untuk informasi lebih lanjut, lihat Langkah 6 di "Langkah 1: Buat custom image".
-
Lihat log jalannya di bagian bawah halaman. Output berikut menunjukkan bahwa paket
pendulumberhasil dipanggil.Mulai menguji paket pihak ketiga pendulum... Paket 'pendulum' berhasil diimpor. Waktu saat ini di Shanghai adalah: 2025-09-27 15:45:00 Zona waktu yang sesuai adalah: Asia/Shanghai Uji coba berhasil! Node PyODPS berhasil memanggil paket pihak ketiga.
Langkah 4: Deploy node PyODPS 3
Setelah pengujian selesai, buka di panel kanan. Pilih serverless resource group Anda dan atur imagenya ke custom image pyodps3_with_pendulum yang telah Anda buat. Anda kemudian dapat mendeploy node tersebut ke Operation Center.
Instal paket open-source menggunakan O&M Assistant
Metode ini berlaku untuk exclusive resource group for scheduling, yang merupakan solusi lama dan tidak lagi direkomendasikan. Kami menyarankan Anda migrasi ke serverless resource group yang lebih kuat dan fleksibel.
-
Login ke daftar ruang kerja DataWorks, ganti wilayah di bagian atas halaman, lalu klik Details di kolom Operation untuk ruang kerja target guna membuka halaman detail ruang kerja.
-
Di bilah navigasi kiri, klik Resource Group, temukan exclusive resource group for scheduling yang terkait, lalu di kolom Actions, klik .
-
Di halaman O&M Assistant, klik Create Command di pojok kiri atas.
-
Masukkan perintah yang sesuai dengan versi Python Anda:
-
Python 3 (PyODPS 3): Pertahankan opsi default. Dari daftar drop-down untuk tipe paket Python3, pilih paket instalasi pendulum.
-
Python 2 (PyODPS 2): Pilih mode Manual Input dan masukkan konten perintah.
pip install --upgrade pip pip install "pendulum<2.0"
-
-
Di halaman O&M Assistant, klik Run Command di kolom Actions. Setelah perintah berhasil dijalankan, Anda dapat langsung menggunakan
import pendulumdi node PyODPS yang sesuai.
Referensikan resource Python kustom
Jika Anda hanya perlu memanggil fungsi dari file .py lain, ikuti langkah-langkah berikut:
-
Buat resource Python
-
Di halaman Pengembangan Data, klik kanan alur bisnis target lalu pilih .
-
Di kotak dialog Create Resource, masukkan Name untuk resource tersebut, misalnya,
my_utils.py, lalu klik Create. -
Masukkan kode berikut di editor resource Python.
# my_utils.py (sintaksis Python 3) def say_hello(name): print(f"Halo, {name}! Ini berasal dari modul my_utils.") -
Simpan dan kirim resource tersebut.
-
-
Buat node dan rujuk sumber daya
-
Di alur bisnis target, klik kanan MaxCompute, pilih , lalu ikuti petunjuk di layar untuk membuat node tersebut.
-
Di node tersebut, referensikan resource menggunakan direktif
##@resource_reference{"my_utils.py"}. Kode lengkapnya adalah 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 menggunakan resource seperti modul biasa. import my_utils my_utils.say_hello("DataWorks")
-
-
Jalankan node tersebut. Output "Halo, DataWorks! Ini berasal dari modul my_utils." muncul di log.
FAQ
-
T: Saat saya menginstal paket secara manual menggunakan perintah, mengapa pengujian custom image tidak berjalan dalam waktu lama?
-
Jika lingkungan runtime task bergantung pada paket pihak ketiga dari internet publik, VPC yang terkait dengan serverless resource group harus memiliki akses jaringan publik. Untuk informasi lebih lanjut, lihat Aktifkan akses jaringan publik untuk kelompok sumber daya.
-
Coba ganti ke sumber paket Python yang berbeda, seperti https://mirrors.aliyun.com/pypi/simple/. Mirror Alibaba Cloud tidak memerlukan akses jaringan publik.
-
-
T: Apa yang harus saya lakukan jika impor paket pihak ketiga gagal?
-
Pastikan custom image telah berhasil dideploy.
-
Pastikan tipe task yang didukung oleh image (PyODPS 2 atau PyODPS 3) sesuai dengan tipe node Anda.
-
Pastikan gambar kustom yang benar terpilih di Properties node.
Anda tidak dapat memilih public resource group.
-
Periksa apakah versi paket yang diinstal kompatibel dengan versi Python Anda. Misalnya,
pendulumversi 2.0 ke atas tidak mendukung Python 2.
-
> Modify Owning Workspace
> O&M Assistant