Oracle Cloud Infrastructureでのデータ・フローPySparkアプリケーションのAutonomous Databaseへの接続
イントロダクション
PySparkアプリケーションがAutonomous Database (Autonomous Data WarehouseまたはAutonomous Transaction Processing)にアクセスする必要がある場合は、JDBCドライバをインポートする必要があります。また、PySparkアプリケーションでオブジェクト・ストレージにアクセスする必要がある場合は、oci
ライブラリをインポートする必要があります。これらのライブラリのいずれもデータ・フローに事前インストールされていません。実行時にアプリケーションで使用できるように調整する必要があります。これを行うには、依存性アーカイブと呼ばれるオブジェクトを作成します。
依存関係アーカイブはOracle Cloud Infrastructure Object Storageにロードされます。オブジェクト・ストレージ内の依存性アーカイブへのリンクを含むデータ・フロー・アプリケーションを指定します。アプリケーションを実行すると、データ・フローによってアーカイブが取得され、PySparkアプリケーションで使用できるようになります。PySparkアプリケーションは、他のPythonプログラムの場合とまったく同様に、Pythonインポート文を使用してライブラリをインポートします。
目的
このチュートリアルを完了すると、archive.zip
というファイルに依存性アーカイブがあります。オブジェクト・ストレージおよびAutonomous DatabaseにアクセスするPySparkアプリケーションと依存関係アーカイブを使用できます。
前提条件
このチュートリアルを開始する前に、Dockerをダウンロードしてインストールします。「関連リンク」の項を参照してください。
パッケージ・ツールのDockerイメージをダウンロードします
コマンドラインで、次のコマンドを入力します。
docker pull phx.ocir.io/oracle/dataflow/dependency-packager:latest
JDBCドライバをダウンロードします
Oracle JDBCダウンロード・ページからJDBCドライバをダウンロードします。テナンシに存在するデータベース・バージョンが不明な場合は、19cのドライバをダウンロードします。
バージョン8、ojdbc8-full.tar.gz
には、圧縮されたJDBCドライバとコンパニオンJARを使用します。ojdbc11-full.tar.gz
をダウンロードしないでください。
次のファイルを抽出し、パッケージャーツールを実行するのと同じディレクトリに置きます。
ojdbc8.jar
oraclepki.jar
osdt_cert.jar
osdt_core.jar
ucp.jar
これらのファイルは、パッケージャ・ツールを実行するディレクトリと同じディレクトリに配置するため、packages.txt
ファイルを作成する必要はありません。
構成ファイルの作成
requirements.txt
ファイルを作成します。このファイルには、データ・フローPySparkアプリケーションが依存するライブラリのリストが含まれています。オブジェクト・ストレージに接続するには、oci
ライブラリが必要です。PySparkアプリケーションでは、必要に応じて他のライブラリを含めることができます。
次の例は、oci
ライブラリの最新リリースを指定する方法を示しています。
oci
特定のリリースを指定する場合、requirements.txt
ファイルは次の例のようになります。
oci==2.3.0
ノート:
pyspark
およびpy4j
ライブラリはデータ・フローによって提供されます。これらのライブラリはrequirements.txt
ファイルに配置しないでください。requirements.txt
ファイルには空白行を含めることができますが、パッケージャは空白行ごとに無効な要件について苦情を言います。
パッケージャーツールを実行します。
パッケージャ・ツールは、oci
ライブラリとその依存性をダウンロードし、archive.zip
というファイルを作成します。また、現在のディレクトリでjarファイルをスキャンします。5つのJDBCドライバ・ファイルが見つかり、それらをarchive.zip
に含めるかどうかを尋ねる必要があります。
Windowsの場合:
- 管理者として、Windowsのコマンド・プロンプトを開きます。
- jarファイルと
requirements.txt
ファイルがあるディレクトリに移動します。 -
次のコマンドを実行します。
docker run --rm -v %CD%:/opt/dataflow -it phx.ocir.io/oracle/dataflow/dependency-packager:latest
LinuxまたはMacの場合:
- ターミナルを開きます。
- jarファイルと
requirements.txt
ファイルがあるディレクトリに移動します。 -
次のコマンドを実行します。
docker run --rm -v $(pwd):/opt/dataflow -it phx.ocir.io/oracle/dataflow/dependency-packager:latest
ツールが完了したら、archive.zip
を開き、その構造を確認します。これは、次の例とよく似ています。
python/lib/python3.6/site-packages/backports
python/lib/python3.6/site-packages/certifi
python/lib/python3.6/site-packages/<...>
java/ojdbc8.jar
java/oraclepki.jar
java/<...>
version.txt
次のステップ
PySparkアプリケーションで依存性アーカイブを使用可能にするには、次の2つの処理を実行する必要があります。
archive.zip
ファイルをオブジェクト・ストレージのバケットにアップロードします。- オブジェクト・ストレージの
archive.zip
ファイルにリンクするようにデータ・フロー・アプリケーションを構成します。
その方法の詳細は、Object Storageのドキュメントおよびデータ・フローのドキュメントを参照してください。アーカイブは、必要なPythonアプリケーションと同じObject Storageバケットに含めることができます。
関連リンク
- Dockerのダウンロードとインストール
- Requirements.txtファイルの形式
- Oracle Cloud Infrastructureでオンプレミス・ログを処理するためのデータ・フローの設定
謝辞
- 作成者 - Jeff Schering (ユーザー支援開発者)
さらに学ぶ
docs.oracle.com/learnの他のラボを調べるか、Oracle Learning YouTubeチャネルでさらに無料の学習コンテンツにアクセスします。さらに、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerにします。
製品ドキュメントは、Oracleヘルプ・センターを参照してください。
その他の学習リソース
docs.oracle.com/learnの他のラボを調べるか、Oracle Learning YouTubeチャネルでさらに無料の学習コンテンツにアクセスします。さらに、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerにします。
製品ドキュメントは、Oracleヘルプ・センターを参照してください。
Connect Data Flow PySpark apps to Autonomous Database in Oracle Cloud Infrastructure
F52112-01
January 2022
Copyright © 2022, Oracle and/or its affiliates.