Tüm Ürünler
Search
Belge Merkezi

DataWorks:PyODPS düğümünde üçüncü taraf paketleri kullanın

Son Güncelleme:Oct 05, 2026

Yerleşik PyODPS özellikleri karmaşık iş gereksinimlerinizi karşılamadığında Python kodunu yeniden kullanmanız veya açık kaynaklı kütüphanelerden yararlanmanız gerekebilir. DataWorks bu durumda iki çözüm sunar: Özel betikleri kaynak referansı aracılığıyla yükleme veya üçüncü taraf paketleri özel görüntüler ya da O&M Assistant kullanarak entegre etme. Bu konu, veri işleme yeteneklerinizi genişletmek için DataWorks PyODPS düğümlerinde özel Python betiklerinin nasıl çağrılacağını veya açık kaynaklı üçüncü taraf paketlerin nasıl kurulup kullanılacağını açıklar.

Hızlı seçim

Ortamınıza ve gereksinimlerinize göre bir yaklaşım seçin.

Senaryo

Kaynak grubu türü

Çözüm

Açık kaynaklı üçüncü taraf paketleri kullanma

serverless resource group

Özel görüntü kullanarak açık kaynaklı paketleri yükleyin

exclusive resource group for scheduling

O&M Assistant kullanarak açık kaynaklı paketleri yükleyin

Yalnızca özel .py betik dosyalarını kullanma

serverless resource group / exclusive resource group for scheduling

Özel bir Python kaynağına başvurun

Aşağıdaki şekil her bir çözümün ana iş akışlarını özetler.

Ön koşullar

Başlamadan önce doğru yapılandırma yöntemini seçmek için aşağıdaki iki temel kavramı anlayın.

Temel kavramlar

  1. Düğüm türü: PyODPS 2 ile PyODPS 3

    • PyODPS 2: Python 2.7 ortamına dayanır.

    • PyODPS 3: Python 3.7+ ortamına dayanır.

    • Öneri: Resmi Python 2 desteği sona erdiğinden PyODPS 3 kullanmanızı şiddetle öneririz. Bu konuda birincil örnek olarak PyODPS 3 kullanılmaktadır.

  2. Kaynak grubu türü: serverless resource group ile exclusive resource group for scheduling

    • Serverless resource group (Önerilen): Bu kaynak grubu esnektir ve bakım gerektirmez. Üçüncü taraf paketleri yönetmek için özel görüntüler kullanmanıza olanak tanır.

    • Exclusive resource group for scheduling (Önerilmez): Bu eski bir çözümdür. ECS sunucularını satın almanız ve bakımlarını yapmanız gerekir; ayrıca kaynakları elastik olarak ölçeklendirilemez. Bağımlılıkları yüklemek için O&M Assistant kullanmanın birçok sınırlaması vardır ve ortamı bozabilir.

Kaynak grubu türünü belirleme

DataWorks konsolu içinde çalışma alanınızın Workspace Details sayfasına gidin. Resource Group sayfasında workspace ile ilişkili kaynak grubu türünü kontrol edin.

  • Tür General-purpose ise serverless resource group kullanıyorsunuz demektir.

  • Tür Data Scheduling ise exclusive resource group for scheduling kullanıyorsunuz demektir.

Özel görüntü kullanarak açık kaynaklı paketleri yükleyin

Önemli

Bu yöntem serverless resource group'lar için geçerlidir.

Bu bölümde pendulum paketini içeren özel bir ortam oluşturmaya yönelik uçtan uca bir örnek sunulur. Daha sonra bu paketi belirli bir saat dilimi için geçerli saati almak ve biçimlendirmek amacıyla bir PyODPS 3 düğümünden çağırırsınız.

1. Adım: pendulum kütüphanesini içeren özel bir görüntü oluşturma

Özel görüntüler serverless resource group için çalışma zamanı ortamını tanımlar.

  1. DataWorks konsoluna giriş yapın ve sol gezinme bölmesinde Image Management öğesine tıklayın.

  2. Custom Image sekmesine gidin.

  3. Sol üst köşede Create Image seçeneğine tıklayın. Oluşturma sayfasında aşağıdaki temel parametreleri yapılandırın:

    Parametre

    Açıklama

    Image Name

    Özel görüntü için bir ad girin, örneğin pyodps3_with_pendulum.

    Reference Type

    DataWorks Official Image seçeneğini belirleyin.

    Image Name/ID

    Açılan listeden resmi DataWorks görüntüsü olan dataworks_pyodps_task_pod öğesini seçin.

    Supported Task Types

    PyODPS 3 görev türünü seçin.

    Installation Package

    Python3 seçeneğini belirleyin ve ardından açılan listeden sistem tarafından sağlanan pendulum paketini seçin.

    Yerleşik olmayan açık kaynaklı bir paketi yüklemek için manuel kurulum amacıyla Betik modunu kullanabilirsiniz. Yapılandırma yöntemleri hakkında daha fazla bilgi için bkz. Özel görüntü oluşturma parametreleri.
    Önemli

    Genel internetten açık kaynaklı paketleri yüklemek için serverless resource group ile ilişkili VPC'nin genel ağ erişimine sahip olması gerekir.

  4. Özel görüntüyü oluşturmak için OK seçeneğine tıklayın.

  5. Custom Images sayfasında görüntüyü test edin ve ardından deploy edin. Bir görüntünün dağıtılabilmesi için testi başarıyla geçmesi gerekir.

  6. Hedef görüntünün Operation sütununda image > Modify Owning Workspace seçeneklerine tıklayarak özel görüntüyle bir owning workspace ilişkilendirin.

    Görüntü başarıyla dağıtıldıktan sonra Deployment Status durumu Deployed olarak değişir ve Actions sütununda bir Disable düğmesi görünür. Actions açılır menüsü ayrıca Modify, Build, View Versions ve Delete Image gibi seçenekler de içerir.

2. Adım: PyODPS 3 düğümü oluşturma ve yapılandırma

  1. Sol gezinme çubuğunda Data Development and O&M > Data Studio seçeneklerine tıklayın, açılan listeden hedef workspace seçin ve Go to DataStudio seçeneğine tıklayın.

  2. Mevcut bir business flow içinde pyodps3_pendulum_test adlı bir PyODPS 3 düğümü oluşturun.

  3. pyodps_pendulum_test düğümünün kod düzenleyicisinde aşağıdaki Python 3 kodunu girin:

    # The pendulum package is installed in the custom image, so you can import it directly.
    import pendulum
    print("Start testing the third-party package pendulum...")
    try:
        # Use pendulum to get the current time in the "Asia/Shanghai" time zone.
        shanghai_time = pendulum.now('Asia/Shanghai')
        # Print the formatted time and time zone information.
        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}")

3. Adım: Sonucu test etme ve doğrulama

  1. Araç çubuğundaki ** simgesine tıklayarak kodu çalıştırın ve Parameter iletişim kutusunda oluşturduğunuz pyodps3_with_pendulum görüntüsünü seçin.

    Önemli

    Hedef görüntüyü bulamıyorsanız görüntünün mevcut workspace ile ilişkilendirildiğinden emin olun. Daha fazla bilgi için "1. Adım: Özel bir görüntü oluşturma" bölümündeki 6. adıma bakın.

  2. Sayfanın alt kısmındaki run log çıktısını inceleyin. Aşağıdaki çıktı pendulum paketinin başarıyla çağrıldığını gösterir.

    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.

4. Adım: PyODPS 3 düğümünü dağıtma

Test tamamlandıktan sonra sağ bölmede Scheduling > Resource Group yolunu izleyin. serverless resource group seçeneğini belirleyin ve görüntüyü oluşturduğunuz pyodps3_with_pendulum özel görüntüsüne ayarlayın. Ardından düğümü Operation Center'a dağıtabilirsiniz.

O&M Assistant kullanarak açık kaynaklı paketleri yükleyin

Önemli

Bu yöntem artık önerilmeyen eski bir çözüm olan exclusive resource group for scheduling için geçerlidir. Daha güçlü ve esnek olduklarından serverless resource group'lara geçiş yapmanızı öneririz.

  1. DataWorks workspace listesine gidin, sayfanın üst kısmından bölgeyi değiştirin ve ardından hedef workspace'in Operation sütunundaki Details seçeneğine tıklayarak workspace ayrıntıları sayfasına gidin.

  2. Sol gezinme çubuğunda Resource Group seçeneğine tıklayın, ilişkili exclusive resource group for scheduling bulun ve Actions sütununda image > O&M Assistant seçeneklerine tıklayın.

  3. O&M Assistant sayfasında sol üst köşede Create Command seçeneğine tıklayın.

  4. Python sürümünüzle eşleşen komutu girin:

    • Python 3 (PyODPS 3): Varsayılan seçenekleri koruyun. Python3 paket türü için açılan listeden pendulum yükleme paketini seçin.

    • Python 2 (PyODPS 2): Manual Input modunu seçin ve komut içeriğini girin.

      pip install --upgrade pip
      pip install "pendulum<2.0"
  5. O&M Assistant sayfasında Actions sütununda Run Command seçeneğine tıklayın. Komut başarıyla çalıştıktan sonra ilgili PyODPS düğümünde doğrudan import pendulum kullanabilirsiniz.

Özel bir Python kaynağına başvurun

Yalnızca başka bir .py dosyasındaki bir işlevi çağırmanız gerekiyorsa aşağıdaki adımları izleyin:

  1. Bir Python kaynağı oluşturun

    1. Veri Geliştirme sayfasında hedef business flow üzerine sağ tıklayın ve Create Resource > MaxCompute > Python seçeneklerini belirleyin.

    2. Create Resource iletişim kutusunda kaynak için bir Name girin, örneğin my_utils.py ve Create seçeneğine tıklayın.

    3. Python kaynağı düzenleyicisine aşağıdaki kodu girin.

      # my_utils.py (Python 3 syntax)
      def say_hello(name):
          print(f"Hello, {name}! This is from the my_utils module.")
    4. Kaynağı kaydedin ve gönderin.

  2. Bir düğüm oluşturun ve bir kaynağa başvurun

    • Hedef business flow içinde MaxCompute üzerine sağ tıklayın, Create Node > PyODPS 3 seçeneklerini belirleyin ve ekrandaki talimatları izleyerek düğümü oluşturun.

    • Düğümde ##@resource_reference{"my_utils.py"} yönergesini kullanarak kaynağa başvurun. Tam kod şu şekildedir:

      ##@resource_reference{"my_utils.py"}
      import sys
      import os
      # Add the resource's current directory to the Python interpreter's search path.
      sys.path.append(os.path.dirname(os.path.abspath('my_utils.py')))
      # You can now import and use the resource like a regular module.
      import my_utils
      my_utils.say_hello("DataWorks")
  3. Düğümü çalıştırın. Günlükte "Hello, DataWorks! This is from the my_utils module." çıktısı görünür.

SSS

  • S: Komut kullanarak manuel olarak bir paket yüklediğimde özel görüntü testi neden uzun süre ilerlemiyor?

    • Görevin çalışma zamanı ortamı genel internetten bir üçüncü taraf paketine bağımlıysa serverless resource group ile ilişkili VPC'nin genel ağ erişimine sahip olması gerekir. Daha fazla bilgi için bkz. Bir kaynak grubu için genel ağ erişimini etkinleştirme.

    • Alibaba Cloud PyPI yansısı gibi farklı bir Python paket kaynağına geçmeyi deneyin. Alibaba Cloud yansılarının genel ağ erişimine ihtiyacı yoktur.

  • S: Üçüncü taraf bir paketi içe aktarma başarısız olursa ne yapabilirim?

    1. Özel görüntünün başarıyla dağıtıldığından emin olun.

    2. Görüntü tarafından desteklenen görev türünün (PyODPS 2 veya PyODPS 3) düğümünüzün türüyle eşleştiğinden emin olun.

    3. Düğümün Properties bölümünde doğru özel görüntünün seçildiğinden emin olun.

      Genel bir kaynak grubu seçemezsiniz.
    4. Yüklenen paket sürümünün Python sürümünüzle uyumlu olup olmadığını kontrol edin. Örneğin pendulum 2.0 ve sonraki sürümleri Python 2'yi desteklemez.

İlgili belgeler