All Products
Search
Document Center

Realtime Compute for Apache Flink:Gunakan dependensi Python

Last Updated:Jun 26, 2026

Anda dapat menggunakan lingkungan virtual Python kustom, paket Python pihak ketiga, paket JAR, dan file data dalam penerapan Python di Realtime Compute for Apache Flink. Topik ini menjelaskan cara menggunakan dependensi tersebut dalam penerapan Python.

Ikhtisar

Anda dapat menggunakan dependensi Python berdasarkan petunjuk pada bagian-bagian berikut:

Lingkungan Python pra-instal

Lingkungan Flink yang sepenuhnya dikelola dilengkapi dengan lingkungan Python pra-instal. Versi Python-nya adalah sebagai berikut:

  • VVR 8.0.10 dan sebelumnya: Python 3.7

  • VVR 8.0.11 dan setelahnya: Python 3.9

Catatan

Untuk daftar paket pihak ketiga yang telah dipra-instal dalam lingkungan Python, lihat Mengembangkan draft Python.

Beberapa paket Python pihak ketiga memiliki persyaratan versi glibc. Versi glibc yang telah dipra-instal dalam lingkungan Flink yang sepenuhnya dikelola adalah sebagai berikut:

X86

  • VVR 8.x dan sebelumnya: glibc 2.17

  • VVR 11.x dan setelahnya: glibc 2.31

ARM

  • VVR 11.2 dan sebelumnya: glibc 2.17

  • VVR 11.3 dan setelahnya: glibc 2.31

Catatan

Glibc mendukung kompatibilitas maju (forward compatibility). Versi glibc yang dibutuhkan oleh paket Python pihak ketiga yang Anda gunakan tidak boleh lebih baru daripada versi glibc di lingkungan tersebut.

Gunakan lingkungan virtual Python kustom

Catatan

Pada Ververica Runtime (VVR) 4.X, Anda hanya dapat menggunakan lingkungan virtual Python 3.7. Pada VVR 6.X atau versi setelahnya, Anda dapat menggunakan lingkungan virtual dengan versi Python yang lebih baru.

Jika lingkungan Python pra-instal tidak memenuhi kebutuhan Anda, Anda dapat menggunakan versi Python kustom melalui lingkungan virtual Python. Setiap lingkungan virtual Python menyediakan lingkungan runtime Python lengkap. Anda dapat menginstal serangkaian paket dependensi Python dalam lingkungan virtual tersebut. Bagian berikut menjelaskan cara menyiapkan lingkungan virtual Python.

  1. Siapkan lingkungan virtual Python.

    1. Siapkan skrip setup-pyflink-virtual-env.sh di perangkat lokal Anda. Kode berikut menunjukkan isi skrip tersebut.

      X86

      set -e
      # Unduh skrip miniforge.sh.
      wget "https://github.com/conda-forge/miniforge/releases/download/25.11.0-1/Miniforge3-25.11.0-1-Linux-x86_64.sh" -O "miniforge.sh"
      
      # Tambahkan izin eksekusi ke skrip miniforge.sh.
      chmod +x miniforge.sh
      
      # Instal miniforge.
      ./miniforge.sh -b
      source /root/miniforge3/bin/activate
      
      # Buat lingkungan virtual Python.
      mamba create -n venv python=3.10 -y
      eval "$(mamba shell hook --shell bash)"
      
      # Aktifkan lingkungan virtual Python.
      mamba activate venv
      
      # Instal dependensi PyFlink.
      pip install "ververica-flink==11.7.0"
      # Untuk VVR 11.5 dan sebelumnya, tidak tersedia paket PyPI khusus. Instal PyFlink open-source sebagai gantinya:
      # pip install "apache-flink==1.20.3" "setuptools<81"
      
      # Hapus file JAR yang tidak diperlukan untuk mengurangi ukuran paket.
      find /root/miniforge3/envs/venv/lib/python3.10/site-packages/pyflink/ -name *.jar | xargs rm
      
      # Nonaktifkan lingkungan virtual Python Conda.
      mamba deactivate
      
      # Kemas lingkungan virtual Python Conda yang telah disiapkan.
      cd /root/miniforge3/envs/ && zip -r /root/venv.zip venv

      ARM

      set -e
      # Unduh skrip miniforge.sh.
      wget "https://github.com/conda-forge/miniforge/releases/download/25.11.0-1/Miniforge3-25.11.0-1-Linux-aarch64.sh" -O "miniforge.sh"
      
      # Tambahkan izin eksekusi ke skrip miniforge.sh.
      chmod +x miniforge.sh
      
      # Instal miniforge.
      ./miniforge.sh -b
      source /root/miniforge3/bin/activate
      
      # Buat lingkungan virtual Python.
      mamba create -n venv python=3.10 -y
      eval "$(mamba shell hook --shell bash)"
      
      # Aktifkan lingkungan virtual Python.
      mamba activate venv
      
      # Instal dependensi PyFlink.
      yum install -y java-11-openjdk-devel
      export JAVA_HOME=/usr/lib/jvm/java-11
      wget "https://raw.githubusercontent.com/apache/flink/release-1.20/flink-python/dev/dev-requirements.txt" -O dev-requirements.txt
      pip install -r dev-requirements.txt
      pip install "ververica-flink==11.7.0"
      # Untuk VVR 11.5 dan sebelumnya, tidak tersedia paket PyPI khusus. Instal PyFlink open-source sebagai gantinya:
      # pip install "apache-flink==1.20.3" "setuptools<81"
      
      # Hapus file JAR yang tidak diperlukan untuk mengurangi ukuran paket.
      find /root/miniforge3/envs/venv/lib/python3.10/site-packages/pyflink/ -name *.jar | xargs rm
      
      # Nonaktifkan lingkungan virtual Python Conda.
      mamba deactivate
      
      # Kemas lingkungan virtual Python Conda yang telah disiapkan.
      cd /root/miniforge3/envs && zip -r /root/venv.zip venv
      Catatan

      Dalam topik ini, penerapan menggunakan VVR 11.7 dan berjalan dalam lingkungan virtual Python 3.10. Jika Anda ingin menggunakan versi VVR yang berbeda atau menginstal lingkungan virtual dengan versi Python lain, Anda harus mengubah parameter berikut:

      • mamba create: ubah menjadi versi Python yang diinginkan.

      • pip install:

        • VVR 11.6 dan setelahnya: instal ververica-flink dan sesuaikan versinya agar sesuai dengan versi VVR penerapan Anda.

        • VVR 11.5 dan sebelumnya: instal apache-flink dan sesuaikan versinya dengan versi Flink yang sesuai dengan versi VVR penerapan Anda. Untuk informasi lebih lanjut tentang cara melihat versi Flink, lihat Manajemen penyimpanan.

    2. Siapkan skrip build.sh di perangkat lokal Anda. Kode berikut menunjukkan isi skrip tersebut.

      #!/bin/bash
      set -e -x
      
      yum install -y zip wget
      
      cd /root/
      bash /build/setup-pyflink-virtual-env.sh
      mv venv.zip /build/
    3. Di CLI, jalankan perintah berikut untuk menginstal lingkungan virtual Python:

      X86

      docker run -it --rm -v $PWD:/build -w /build quay.io/pypa/manylinux_2_28_x86_64 bash ./build.sh

      ARM

      docker run -it --rm -v $PWD:/build -w /build quay.io/pypa/manylinux_2_28_aarch64 bash ./build.sh

      Setelah menjalankan perintah tersebut, file bernama venv.zip akan dihasilkan. Dalam contoh ini, digunakan lingkungan virtual Python 3.10.

      Anda juga dapat memodifikasi skrip di atas untuk menginstal paket Python pihak ketiga yang diperlukan dalam lingkungan virtual tersebut.

  2. Gunakan lingkungan virtual Python dalam penerapan Python.

    1. Masuk ke Konsol Realtime Compute for Apache Flink.

    2. Pada tab Fully Managed Flink, temukan ruang kerja yang ingin Anda kelola dan klik Console di kolom Actions.

    3. Di panel navigasi kiri, klik Artifacts. Di halaman Artifacts, klik Upload Artifact. Di kotak dialog yang muncul, pilih paket venv.zip.

    4. Di halaman O&M > Deployments, klik nama pekerjaan yang diinginkan.

    5. Di tab Configuration, klik Edit di pojok kanan atas bagian Basic dan pilih paket venv.zip dari daftar drop-down Python Archives.

      Jika penerapan merupakan penerapan SQL yang perlu menggunakan fungsi user-defined Python (UDF), klik Edit di pojok kanan atas bagian Parameters dan tambahkan konfigurasi berikut ke bidang Other Configuration:

      python.archives: oss://.../venv.zip
    6. Di bagian Parameters, tambahkan informasi konfigurasi tentang path untuk menginstal lingkungan virtual Python yang ditentukan berdasarkan versi VVR penerapan Anda ke bidang Other Configuration.

      • VVR 6.X atau setelahnya

        python.executable: venv.zip/venv/bin/python
        python.client.executable: venv.zip/venv/bin/python
      • Versi engine sebelum VVR 6.X

        python.executable: venv.zip/venv/bin/python

Gunakan paket Python pihak ketiga

Catatan

Zip Safe, PyPI, dan manylinux dalam deskripsi berikut disediakan di situs web pihak ketiga. Saat Anda mengunjungi situs web tersebut, akses mungkin gagal atau mengalami penundaan.

Dua skenario berikut menunjukkan cara menggunakan paket Python pihak ketiga:

  • Gunakan paket Python pihak ketiga yang dapat langsung diimpor

    Jika paket Python pihak ketiga Anda merupakan paket Zip Safe, Anda dapat melakukan langkah-langkah berikut untuk langsung menggunakan paket tersebut dalam penerapan Python tanpa perlu menginstalnya:

    1. Unduh paket Python pihak ketiga yang dapat langsung diimpor.

      1. Buka PyPI di browser web Anda.

      2. Masukkan nama paket Python pihak ketiga, misalnya apache-flink 1.20.3, di kotak pencarian.

      3. Di hasil pencarian, klik nama paket yang ingin Anda gunakan.

      4. Di panel navigasi kiri halaman yang muncul, klik Download files.

      5. Klik nama paket yang namanya mengandung cp39-cp39-manylinux1 untuk mengunduh paket tersebut.

    2. Masuk ke Konsol Realtime Compute for Apache Flink.

    3. Pada tab Streaming Compute Flink, temukan ruang kerja Anda dan klik Console di kolom Actions.

    4. Di panel navigasi kiri, klik Artifacts. Di halaman Artifacts, klik Upload Artifact. Di kotak dialog yang muncul, pilih paket Python pihak ketiga yang diperlukan.

    5. Di panel navigasi kiri, klik O&M > Deployments. Di halaman Deployments, klik Create Deployment > Python Deployment. Di kotak dialog, untuk Python Libraries, pilih paket Python pihak ketiga yang telah Anda unggah.

    6. Klik Save.

  • Gunakan paket Python pihak ketiga yang memerlukan kompilasi

    Jika paket Python pihak ketiga memenuhi kondisi berikut, paket tersebut harus dikompilasi terlebih dahulu sebelum dapat digunakan: Paket Python pihak ketiga tersebut merupakan paket terkompresi dalam format tar.gz atau paket sumber yang Anda unduh dari lokasi lain, dan file setup.py ada di direktori root paket terkompresi tersebut. Anda harus mengompilasi paket Python pihak ketiga tersebut dalam lingkungan yang kompatibel dengan Flink sebelum memanggilnya dalam penerapan Python.

    Kami menyarankan Anda menggunakan Python 3.9 dalam image quay.io/pypa/manylinux_2_28_x86_64 untuk mengompilasi paket Python pihak ketiga. Paket yang dihasilkan oleh image tersebut kompatibel dengan sebagian besar sistem operasi Linux. Untuk informasi lebih lanjut tentang image tersebut, lihat manylinux.

    Catatan

    Python 3.9 diinstal di direktori /opt/python/cp39-cp39/bin/python3.

    Contoh berikut menunjukkan cara mengompilasi dan menggunakan paket Python pihak ketiga opencv-python-headless.

    1. Kompilasi paket Python pihak ketiga.

      1. Siapkan file requirements.txt di perangkat lokal Anda. Kode berikut menunjukkan isi file tersebut:

        opencv-python-headless
        numpy<2
      2. Siapkan skrip build.sh di perangkat lokal Anda. Kode berikut menunjukkan isi skrip tersebut:

        #!/bin/bash
        set -e -x
        
        yum install -y zip
        
        #PYBIN=/opt/python/cp37-cp37m/bin
        #PYBIN=/opt/python/cp38-cp38/bin
        PYBIN=/opt/python/cp39-cp39/bin
        #PYBIN=/opt/python/cp310-cp310/bin
        #PYBIN=/opt/python/cp311-cp311/bin
        
        "${PYBIN}/pip" install --target __pypackages__ -r requirements.txt
        cd __pypackages__ && zip -r deps.zip . && mv deps.zip ../ && cd ..
        rm -rf __pypackages__
      3. Di CLI, jalankan perintah berikut:

        X86

        docker run -it --rm -v $PWD:/build -w /build quay.io/pypa/manylinux_2_28_x86_64 bash ./build.sh

        ARM

        docker run -it --rm -v $PWD:/build -w /build quay.io/pypa/manylinux_2_28_aarch64 bash ./build.sh

        Setelah menjalankan perintah tersebut, file bernama deps.zip akan dihasilkan. File ini merupakan paket Python pihak ketiga yang telah dikompilasi.

        Anda juga dapat memodifikasi isi file requirements.txt untuk menginstal paket Python pihak ketiga lain yang diperlukan. Selain itu, beberapa dependensi Python dapat ditentukan dalam file requirements.txt.

    2. Gunakan paket Python pihak ketiga deps.zip dalam penerapan Python.

      1. Masuk ke Konsol Realtime Compute for Apache Flink.

      2. Temukan ruang kerja Anda dan klik Console di kolom Actions.

      3. Di panel navigasi kiri, klik Artifacts. Di halaman Artifacts, klik Upload Artifact. Di kotak dialog, pilih deps.zip.

      4. Di halaman O&M > Deployments, klik penerapan Anda. Di tab Configuration, klik Edit di pojok kanan atas bagian Basic dan pilih paket deps.zip dari daftar drop-down Python Libraries.

    1. Klik Save.

Gunakan paket JAR

Jika Anda menggunakan kelas Java, seperti konektor atau Java UDF, dalam penerapan Python Anda, Anda dapat melakukan langkah-langkah berikut untuk menentukan paket JAR dari konektor atau Java UDF tersebut.

  1. Masuk ke Konsol Realtime Compute for Apache Flink.

  2. Pada tab Fully Managed Flink, temukan ruang kerja yang ingin Anda kelola dan klik Console di kolom Actions.

  3. Di panel navigasi kiri, klik Artifacts. Di halaman Artifacts, klik Upload Artifact. Di kotak dialog, pilih paket JAR yang ingin Anda gunakan.

  4. Di halaman Deployments, klik nama penerapan yang diinginkan. Di tab Configuration, klik Edit di pojok kanan atas bagian Basic dan pilih paket JAR yang diperlukan dari daftar drop-down Additional Dependencies.

  5. Di tab Configuration, klik Edit di pojok kanan atas bagian Parameters dan tambahkan konfigurasi berikut ke bidang Other Configuration.

    Sebagai contoh, jika draft bergantung pada dua paket JAR bernama jar1.jar dan jar2.jar, tambahkan informasi konfigurasi berikut:

    pipeline.classpaths: 'file:///flink/usrlib/jar1.jar;file:///flink/usrlib/jar2.jar'
  6. Klik Save.

Gunakan konektor bawaan, format data, dan katalog

Catatan

Hanya didukung pada versi VVR 11.2+.

Untuk menggunakan konektor bawaan, format data, dan katalog dalam program Python, lakukan langkah-langkah berikut:

  1. Di halaman detail penerapan Python Anda, di bagian Parameters, tambahkan konfigurasi ke bidang Other Configuration.

    Tambahkan parameter untuk menggunakan konektor bawaan. Konfigurasi berikut menentukan konektor Kafka dan SLS. Untuk nama konektor spesifik, lihat dokumen di bawah Konektor yang didukung.

    pipeline.used-builtin-connectors: kafka;sls

    Tambahkan parameter untuk format data bawaan. Konfigurasi berikut menentukan format avro dan parquet. Untuk nama format data spesifik, lihat Format data.

    pipeline.used-builtin-formats: avro;parquet

    Tambahkan parameter untuk katalog bawaan. Konfigurasi berikut menentukan katalog hive-2.3.6 dan paimon. Untuk katalog spesifik, lihat Katalog.

    pipeline.used-builtin-catalogs: hive-2.3.6;paimon
  2. Klik Save.

Gunakan file data

Catatan

Flink yang sepenuhnya dikelola tidak mengizinkan Anda melakukan debug penerapan Python dengan mengunggah file data.

Skenario berikut menunjukkan cara menggunakan file data:

  • Pilih paket dari daftar drop-down Python Archives

    Jika Anda memiliki banyak file data, Anda dapat mengemas file-file tersebut ke dalam file ZIP dan melakukan langkah-langkah berikut untuk menggunakannya dalam penerapan Python:

    1. Masuk ke Konsol Realtime Compute for Apache Flink.

    2. Temukan ruang kerja Anda dan klik Console di kolom Actions.

    3. Di panel navigasi kiri, klik Artifacts. Di halaman Artifact, klik Upload Artifact. Di kotak dialog yang muncul, pilih paket ZIP file data yang diinginkan.

    4. Di halaman O&M > Deployments, klik nama penerapan Anda. Di tab Configuration, klik Edit di pojok kanan atas bagian Basic dan pilih paket ZIP yang diperlukan dari daftar drop-down Python Archives.

    5. Dalam UDF Python, jalankan perintah berikut untuk mengakses file data. Dalam contoh ini, nama paket yang berisi file data adalah mydata.zip.

      def map():
          with open("mydata.zip/mydata/data.txt") as f:
          ...
  • Pilih file data dari daftar drop-down Additional Dependencies

    Jika Anda memiliki sedikit file data, Anda dapat melakukan langkah-langkah berikut untuk mengakses file-file tersebut dalam penerapan Python:

    1. Masuk ke Konsol Realtime Compute for Apache Flink.

    2. Temukan ruang kerja Anda dan klik Console di kolom Actions.

    3. Di panel navigasi kiri, klik Artifacts. Di halaman Artifact, klik Upload Artifact. Di kotak dialog yang muncul, pilih file data yang diinginkan.

    4. Di halaman O&M > Deployments, klik nama penerapan yang diinginkan. Di tab Configuration, klik Edit di pojok kanan atas bagian Basic dan pilih file data yang diperlukan dari daftar drop-down Additional Dependencies.

    5. Dalam UDF Python, jalankan perintah berikut untuk mengakses file data. Dalam contoh ini, file data bernama data.txt.

      def map():
          with open("/flink/usrlib/data.txt") as f:
          ...

Referensi