將資料流程 PySpark App 連線至 Oracle Cloud Infrastructure 中的 Autonomous Database

簡介

如果您的 PySpark App 需要存取 Autonomous Database (Autonomous Data Warehouse 或 Autonomous Transaction Processing),它就必須匯入 JDBC 驅動程式。如果您的 PySpark App 需要存取物件儲存,就必須匯入 oci 程式庫。資料流程中未預先安裝其中一個程式庫。您必須在程式實際執行時安排讓 App 可使用它們。您可以建立一個稱為「相依性存檔」的物件來執行此作業。

相依性存檔已載入至 Oracle Cloud Infrastructure Object Storage。您提供資料流程應用程式,並連結至物件儲存內的相依性存檔。當您執行「應用程式」時,「資料流程」會擷取存檔,並讓您的 PySpark 應用程式可以使用。您的 PySpark App 會以 Python 匯入敘述句的方式匯入程式庫,就像在其他 Python 程式中一樣。

目標

完成此教學課程之後,您將在名為 archive.zip 的檔案中包含相依性存檔。您可以將相依性存檔與存取物件儲存和 Autonomous Database 的 PySpark App 搭配使用。

必要條件

開始此教學課程之前,請先下載並安裝 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

注意

  1. pysparkpy4j 程式庫由資料流程提供。請勿將這些程式庫放入您的 requirements.txt 檔案中。
  2. requirements.txt 檔案中可以有空白行,但封裝程式會針對每個空白行抱怨無效的要求。

執行封裝程式工具。

套件程式工具會下載 oci 程式庫及其相依性,並建立名為 archive.zip 的檔案。它也會掃描目前 jar 檔案的目錄。它應該會尋找 5 個 JDBC 驅動程式檔案,並詢問您是否要將它們包括在 archive.zip 中。

在 Windows 上

  1. 以管理員身分開啟「Windows 命令提示」。
  2. 變更至具有您 jar 檔案和 requirements.txt 檔案的目錄。
  3. 執行下列命令:

    docker run --rm -v %CD%:/opt/dataflow -it phx.ocir.io/oracle/dataflow/dependency-packager:latest
    

在 Linux 或 Mac 上:

  1. 開啟終端機。
  2. 變更至具有您 jar 檔案和 requirements.txt 檔案的目錄。
  3. 執行下列命令:

    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 應用程式使用,您必須進行兩個動作:

  1. archive.zip 檔案上傳至物件儲存的儲存桶。
  2. 設定您的「資料流程應用程式」以連結至物件儲存中的 archive.zip 檔案。

請參閱物件儲存文件和資料流程文件,瞭解如何執行該工作的相關指示。歸檔可以在與需要存檔 Python App 相同的物件儲存的儲存桶中。

致謝

深入瞭解

探索 docs.oracle.com/learn 上的其他實驗室,或是存取更多免費學習內容至 Oracle Learning YouTube 通道。此外,瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請瀏覽 Oracle Help Center

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或是存取更多免費學習內容至 Oracle Learning YouTube 通道。此外,瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請瀏覽 Oracle Help Center