すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:Python 依存関係の使用

最終更新日:Sep 21, 2026

Realtime Compute for Apache Flink の Python デプロイメントでは、カスタム Python 仮想環境、サードパーティの Python パッケージ、JAR パッケージ、およびデータファイルを使用できます。このトピックでは、Python デプロイメントでこれらの依存関係を使用する方法について説明します。

概要

Python 依存関係は、以下のセクションの手順に基づいて使用できます。

プリインストールされた Python 環境

フルマネージド Flink 環境には、Python 環境がプリインストールされています。Python のバージョンは以下のとおりです。

  • VVR 8.0.10 以前:Python 3.7

  • VVR 8.0.11 以降、VVR 11.7 より前:Python 3.9

  • VVR 11.7 以降:Python 3.9、Python 3.10、および Python 3.11

説明

Python 環境にプリインストールされているサードパーティパッケージについては、「Python ドラフトの開発」をご参照ください。

一部のサードパーティの Python パッケージには glibc バージョンの要件があります。フルマネージド Flink 環境にプリインストールされている glibc のバージョンは以下のとおりです。

X86

  • VVR 8.x 以前:glibc 2.17

  • VVR 11.x 以降:glibc 2.31

ARM

  • VVR 11.2 以前:glibc 2.17

  • VVR 11.3 以降:glibc 2.31

説明

glibc は上位互換性をサポートしています。使用するサードパーティの Python パッケージで必要な glibc バージョンは、環境内の glibc バージョン以前である必要があります。

カスタム Python 仮想環境の使用

説明

Ververica Runtime (VVR) 4.X では、Python 3.7 の仮想環境のみを使用できます。VVR 6.X 以降では、より新しい Python バージョンの仮想環境を使用できます。

プリインストールされた Python 環境が要件を満たさない場合は、Python 仮想環境を使用してカスタム Python バージョンを使用できます。各 Python 仮想環境は、完全な Python ランタイム環境を提供します。仮想環境には、一連の Python 依存関係パッケージをインストールできます。以下のセクションでは、Python 仮想環境を準備する方法について説明します。

  1. Python 仮想環境を準備します。

    1. ローカルデバイスに setup-pyflink-virtual-env.sh スクリプトを用意します。 スクリプトの内容は以下のとおりです。

      X86

      set -e
      # 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"
      
      # miniforge.sh スクリプトに実行権限を追加します。
      chmod +x miniforge.sh
      
      # miniforge をインストールします。
      ./miniforge.sh -b
      source /root/miniforge3/bin/activate
      
      # Python 仮想環境を作成します。
      mamba create -n venv python=3.10 -y
      eval "$(mamba shell hook --shell bash)"
      
      # Python 仮想環境をアクティブ化します。
      mamba activate venv
      
      # PyFlink 依存関係をインストールします。
      pip install "ververica-flink==11.7.0"
      # VVR 11.5 以前の場合、専用の PyPI パッケージは利用できません。代わりにオープンソースの PyFlink をインストールしてください:
      # pip install "apache-flink==1.20.3" "setuptools<81"
      
      # 不要な JAR ファイルを削除してパッケージサイズを削減します。
      find /root/miniforge3/envs/venv/lib/python3.10/site-packages/pyflink/ -name *.jar | xargs rm
      
      # Conda Python 仮想環境を非アクティブ化します。
      mamba deactivate
      
      # 準備した Conda Python 仮想環境をパッケージ化します。
      cd /root/miniforge3/envs/ && zip -r /root/venv.zip venv 

      ARM

      set -e
      # 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"
      
      # miniforge.sh スクリプトに実行権限を追加します。
      chmod +x miniforge.sh
      
      # miniforge をインストールします。
      ./miniforge.sh -b
      source /root/miniforge3/bin/activate
      
      # Python 仮想環境を作成します。
      mamba create -n venv python=3.10 -y
      eval "$(mamba shell hook --shell bash)"
      
      # Python 仮想環境をアクティブ化します。
      mamba activate venv
      
      # 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"
      # VVR 11.5 以前の場合、専用の PyPI パッケージは利用できません。代わりにオープンソースの PyFlink をインストールしてください:
      # pip install "apache-flink==1.20.3" "setuptools<81"
      
      # 不要な JAR ファイルを削除してパッケージサイズを削減します。
      find /root/miniforge3/envs/venv/lib/python3.10/site-packages/pyflink/ -name *.jar | xargs rm
      
      # Conda Python 仮想環境を非アクティブ化します。
      mamba deactivate
      
      # 準備した Conda Python 仮想環境をパッケージ化します。
      cd /root/miniforge3/envs && zip -r /root/venv.zip venv
      説明

      このトピックでは、デプロイメントで VVR 11.7 を使用し、Python 3.10 の仮想環境で実行します。別の VVR バージョンを使用する場合、または別の Python バージョンの仮想環境をインストールする場合は、以下のパラメータを変更する必要があります。

      • mamba create:希望する Python バージョンに変更します。

      • pip install:

        • VVR 11.6 以降:ververica-flink をインストールし、デプロイメントの VVR バージョンに合わせてバージョンを変更します。

        • VVR 11.5 以前:apache-flink をインストールし、デプロイメントの VVR バージョンに対応する Flink バージョンに変更します。Flink バージョンの確認方法の詳細については、「ストレージ管理」をご参照ください。

    2. ローカルデバイスで build.sh スクリプトを準備します。以下のコードはスクリプトの内容です。

      #!/bin/bash
      set -e -x
      
      yum install -y zip wget
      
      cd /root/
      bash /build/setup-pyflink-virtual-env.sh
      mv venv.zip /build/
    3. CLI で以下のコマンドを実行して、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

      コマンドを実行すると、venv.zip ファイルが生成されます。 この例では、Python 3.10 の仮想環境が使用されます。

      上記のスクリプトを変更して、仮想環境に必要なサードパーティの Python パッケージをインストールすることもできます。

  2. Python デプロイメントで Python 仮想環境を使用します。

    1. Realtime Compute for Apache Flink コンソールにログインします。

    2. Fully Managed Flink タブで、管理するワークスペースを見つけ、[アクション] 列の [コンソール] をクリックします。

    3. 左側のナビゲーションペインで、[アーティファクト] をクリックします。[アーティファクト] ページで、[アーティファクトのアップロード] をクリックします。表示されたダイアログボックスで、venv.zip パッケージを選択します。

    4. [O&M] > [デプロイメント] ページで、目的のジョブ名をクリックします。

    5. [設定] タブで、[基本] セクションの右上隅にある [編集] をクリックし、[Python アーカイブ] ドロップダウンリストから venv.zip パッケージを選択します。

      デプロイが Python ユーザー定義関数 (UDF) を使用する必要がある SQL デプロイの場合、[パラメーター] セクションの右上隅にある「編集」をクリックして、[その他の設定] フィールドに次の設定を追加します:

      python.archives: oss://.../venv.zip
    6. [パラメーター] セクションの [その他の設定] フィールドに、デプロイの VVR バージョンに応じた、指定の Python 仮想環境のインストールパスに関する設定情報を追加します。

      • VVR 6.X 以降

        python.executable: venv.zip/venv/bin/python
        python.client.executable: venv.zip/venv/bin/python
      • VVR 6.X より前のエンジンバージョン

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

サードパーティの Python パッケージの使用

説明

以下の説明における Zip Safe、PyPI、および manylinux は、サードパーティの Web サイトで提供されています。これらの Web サイトにアクセスする際、Web サイトへのアクセスに失敗したり、アクセスが遅延したりする場合があります。

requirements.txt を使用した依存関係のインストール

VVR 11.9.preview.1 以降、Python ジョブは requirements.txt でサードパーティの Python パッケージを宣言できます。ジョブの開始時に、システムは pip を実行してファイルで宣言された依存関係をインストールし、インストールされたパッケージを Python ワーカーの PYTHONPATH に追加します。以下の手順に従います。

  1. requirements.txt ファイルを準備します。

    ローカルマシンで requirements.txt を作成し、pip requirements 形式でサードパーティの依存関係を宣言します。

    package-a==1.2.3
    package-b==4.5.6

    requirements.txt では、ジョブで使用するサードパーティパッケージのみを宣言してください。VVR にプリインストールされているパッケージを宣言する必要はなく、プリインストールされているパッケージと互換性のあるバージョンを使用する必要があります。プリインストールされているパッケージとバージョンについては、「プリインストールされたパッケージ」をご参照ください。

    ファイルを準備した後:

    1. Realtime Compute コンソールにログインします。

    2. 左側のナビゲーションペインで、[アーティファクト] をクリックし、requirements.txt をアップロードします。

    3. [O&M > デプロイメント] ページで、ターゲットジョブの名前をクリックします。

    4. [設定] タブの [基本] セクションで、[編集] をクリックします。

    5. [追加の依存関係] で、アップロードした requirements.txt を選択します。

    アップロードされた追加の依存関係ファイルは、/flink/usrlib ディレクトリに保存されます。たとえば、requirements.txt のランタイムパスは /flink/usrlib/requirements.txt です。

  2. Flink パラメータを設定します。

    1. Realtime Compute コンソールにログインします。

    2. 左側のナビゲーションペインで、[O&M > デプロイメント] を選択します。

    3. 対象の Python ジョブの名前をクリックします。

    4. [設定] タブで、[パラメーター] セクションの右側にある [編集] をクリックします。

    5. [その他の設定] フィールドに、以下の行を追加します。

      python.requirements: /flink/usrlib/requirements.txt
    6. (オプション) pip リポジトリの URL を指定します。ジョブがネットワーク経由で URL にアクセスできることを確認してください。詳細については、「ネットワーク接続性」をご参照ください。

      python.pip.index-url: <your pip index URL>
    7. [保存] をクリックします。

手動アップロード

サードパーティの Python パッケージを使用する方法として、以下の 2 つのシナリオについて説明します。

  • 直接インポートできるサードパーティの Python パッケージの使用

    サードパーティの Python パッケージが Zip Safe パッケージの場合、以下の手順で、インストールせずに Python デプロイメントで直接パッケージを使用できます。

    1. 直接インポートできるサードパーティの Python パッケージをダウンロードします。

      1. Web ブラウザで PyPI にアクセスします。

      2. 検索ボックスに、apache-flink 1.20.3 などのサードパーティの Python パッケージ名を入力します。

      3. 検索結果で、使用するパッケージの名前をクリックします。

      4. 表示されたページの左側メニューで、**[Download files]** をクリックします。

      5. 名前に cp39-cp39-manylinux1 が含まれるパッケージの名前をクリックして、パッケージをダウンロードします。

    2. Realtime Compute for Apache Flink コンソールにログインします。

    3. [Streaming Compute Flink] タブで、目的のワークスペースを見つけ、[アクション] 列の [コンソール] をクリックします。

    4. 左側のナビゲーションペインで、[アーティファクト] をクリックします。[アーティファクト] ページで、[アーティファクトのアップロード] をクリックします。表示されるダイアログボックスで、必要なサードパーティの Python パッケージを選択します。

    5. 左側のナビゲーションペインで、[O&M] > [デプロイ] をクリックします。 [デプロイ] ページで、[デプロイの作成] > [Python デプロイ] をクリックします。 ダイアログボックスで、[Python ライブラリ] で、アップロードしたサードパーティの Python パッケージを選択します。

    6. [保存] をクリックします。

  • コンパイルが必要なサードパーティの Python パッケージの使用

    サードパーティの Python パッケージが、tar.gz 形式の圧縮パッケージまたは別の場所からダウンロードしたソースパッケージであり、かつ圧縮パッケージのルートディレクトリ配下に setup.py ファイルが存在する場合、使用前にパッケージをコンパイルする必要があります。 Python デプロイメントでサードパーティの Python パッケージを呼び出す前に、Flink と互換性のある環境でサードパーティの Python パッケージをコンパイルする必要があります。

    サードパーティの Python パッケージをコンパイルするには、quay.io/pypa/manylinux_2_28_x86_64 イメージで Python 3.9 を使用することをお勧めします。 このイメージで生成されたパッケージは、ほとんどの Linux オペレーティングシステムと互換性があります。 イメージの詳細については、「manylinux」をご参照ください。

    説明

    Python 3.9 は /opt/python/cp39-cp39/bin/python3 ディレクトリにインストールされています。

    次の例では、サードパーティの Python パッケージ opencv-python-headless をコンパイルして使用する方法を示します。

    1. サードパーティの Python パッケージをコンパイルします。

      1. ローカルデバイスに requirements.txt ファイルを用意します。ファイルの内容は次のとおりです。

        opencv-python-headless
        numpy<2
      2. ローカルデバイスに build.sh スクリプトを用意します。 スクリプトの内容は次のとおりです。

        #!/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. CLI で以下のコマンドを実行します。

        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

        コマンドを実行すると、deps.zip という名前のファイルが生成されます。このファイルは、コンパイル済みのサードパーティ Python パッケージです。

        また、requirements.txt ファイルの内容を変更して、他の必要なサードパーティの Python パッケージをインストールすることもできます。さらに、requirements.txt ファイルには複数の Python 依存関係を指定できます。

    2. Python デプロイでは、サードパーティの Python パッケージ deps.zip を使用します。

      1. Realtime Compute for Apache Flink コンソールにログインします。

      2. ワークスペースを探し、[アクション] 列の [コンソール] をクリックします。

      3. 左側のナビゲーションペインで、[アーティファクト] をクリックします。表示された [アーティファクト] ページで、[アーティファクトのアップロード] をクリックします。ダイアログボックスで、deps.zip を選択します。

      4. [運用保守] > [デプロイ] ページで、対象のデプロイメントをクリックします。 [設定] タブで、[基本] セクションの右上隅にある [編集] をクリックし、[Python ライブラリ] ドロップダウンリストから deps.zip パッケージを選択します。

    1. [保存] をクリックします。

JAR パッケージの使用

Python デプロイメントでコネクタや Java UDF などの Java クラスを使用する場合は、以下の手順で、コネクタまたは Java UDF の JAR パッケージを指定できます。

  1. Realtime Compute for Apache Flink コンソールにログオンします。

  2. フルマネージド Flink タブで、管理するワークスペースを見つけ、[アクション] 列にある [コンソール] をクリックします。

  3. 左側のナビゲーションペインで、[アーティファクト] をクリックします。[アーティファクト] ページで、[アーティファクトのアップロード] をクリックします。ダイアログボックスで、使用する JAR パッケージを選択します。

  4. [デプロイ] ページで、目的のデプロイの名前をクリックします。 [設定] タブで、[基本] セクションの右上隅にある [編集] をクリックし、[追加の依存関係] ドロップダウンリストから必要な JAR パッケージを選択します。

  5. [設定] タブで、[パラメーター] セクションの右上隅にある [編集] をクリックし、[その他の設定] フィールドに次の設定を追加します。

    たとえば、ドラフトが jar1.jar と jar2.jar の 2 つの JAR パッケージに依存する場合、以下の設定情報を追加します。

    pipeline.classpaths: 'file:///flink/usrlib/jar1.jar;file:///flink/usrlib/jar2.jar'
  6. [保存] をクリックします。

組み込みコネクタ、データ形式、およびカタログの使用

説明

組み込みコネクタ、データ形式、およびカタログは、VVR 11.2 以降でのみサポートされます。

Flink Python ジョブで組み込みコネクタ、データ形式、およびカタログを使用するには、以下の方法で指定します。

  1. [パラメーター] セクションで、[その他の設定] フィールドに設定を追加します。

    組み込みコネクタの kafka および sls に依存するには、次の設定を追加します。 組み込みコネクタの名前については、サポートされているコネクタにある各コネクタのドキュメントをご参照ください。

    pipeline.used-builtin-connectors: kafka;sls

    avro と parquet の複数の組み込みデータ形式に依存するには、以下の設定を追加します。組み込みデータ形式の名前については、サポートされている データ形式 のドキュメントをご参照ください。

    pipeline.used-builtin-formats: avro;parquet

    hive-2.3.6 と paimon という名前の複数の組み込みカタログに依存するには、次の設定を追加します。 組み込みカタログの名前については、カタログにある各カタログのドキュメントをご参照ください。

    pipeline.used-builtin-catalogs: hive-2.3.6;paimon
  2. [保存] をクリックします。

データファイルの使用

説明

フルマネージド Flink では、データファイルをアップロードして Python デプロイメントをデバッグすることはできません。

データファイルを使用する方法として、以下のシナリオについて説明します。

  • **[Python Archives]** ドロップダウンリストからパッケージを選択する

    多数のデータファイルがある場合は、データファイルを ZIP ファイルにパッケージ化し、以下の手順で Python デプロイメントで使用できます。

    1. Realtime Compute for Apache Flink コンソールにログインします。

    2. ワークスペースを探し、[アクション] 列の [コンソール] をクリックします。

    3. 左側のナビゲーションペインで、[アーティファクト] をクリックします。アーティファクトページで、[アーティファクトのアップロード] をクリックします。表示されるダイアログボックスで、目的のデータファイルの ZIP パッケージを選択します。

    4. [O&M] > [デプロイ] ページで、デプロイの名前をクリックします。 [設定] タブで、[基本] セクションの右上隅にある [編集] をクリックし、[Python アーカイブ] ドロップダウンリストから必要な ZIP パッケージを選択します。

    5. Python UDF でデータファイルにアクセスするには、次のコマンドを実行します。この例では、データファイルを含むパッケージの名前は mydata.zip です。

      def map():
          with open("mydata.zip/mydata/data.txt") as f:
          ...
  • **[Additional Dependencies]** ドロップダウンリストからデータファイルを選択する

    少数のデータファイルがある場合は、以下の手順で、Python デプロイメントでこれらのファイルにアクセスできます。

    1. Realtime Compute for Apache Flink コンソールにログインします。

    2. ワークスペースを探し、[アクション] 列の [コンソール] をクリックします。

    3. 左側のナビゲーションペインで、[アーティファクト] をクリックします。[アーティファクト] ページで、[アーティファクトのアップロード] をクリックします。表示されるダイアログボックスで、目的のデータファイルを選択します。

    4. O&M > デプロイメント ページで、目的のデプロイメントの名前をクリックします。[設定] タブで、[基本] セクションの右上隅にある [編集] をクリックし、追加の依存関係 ドロップダウンリストから必要なデータファイルを選択します。

    5. Python UDF では、次のコマンドを実行してデータファイルにアクセスします。この例では、データファイル名は data.txt です。

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

関連ドキュメント

  • Python API ドラフトの開発方法の詳細については、「PyFlink ジョブの開発」をご参照ください。

  • Realtime Compute for Apache Flink の Python デプロイメントの開発方法の詳細については、「PyFlink ジョブ」をご参照ください。

  • フルマネージド Flink は SQL ドラフトと DataStream ドラフトをサポートします。SQL ドラフトと DataStream ドラフトの開発方法の詳細については、「ジョブ開発の概要」および「JAR ジョブの開発」をご参照ください。