Verbinden Sie Data Flow PySpark-Anwendungen mit Autonomous Database in Oracle Cloud Infrastructure
Einführung
Wenn Ihre PySpark-App auf Autonomous Database (Autonomous Data Warehouse oder Autonomous Transaction Processing) zugreifen muss, muss sie JDBC-Treiber importieren. Wenn Ihre PySpark-App Zugriff auf Object Storage benötigt, muss sie die oci
-Library importieren. Keine dieser Librarys ist im Data Flow vorinstalliert. Sie müssen festlegen, dass sie zur Laufzeit für Ihre App verfügbar sind. Dazu erstellen Sie ein Objekt namens Dependency Archive.
Abhängigkeitsarchive werden in Oracle Cloud Infrastructure Object Storage geladen. Sie stellen der Data Flow-Anwendung einen Link zum Abhängigkeitsarchiv in Object Storage bereit. Wenn Sie Ihre Anwendung ausführen, ruft Data Flow das Archiv ab und stellt es für Ihre PySpark-Apps zur Verfügung. Die PySpark-Apps importieren die Librarys mit der Python-Importanweisung genauso wie in jedem anderen Python-Programm.
Ziele
Nach Abschluss dieses Tutorials befindet sich ein Abhängigkeitsarchiv in einer Datei mit dem Namen archive.zip
. Sie können das Abhängigkeitsarchiv mit PySpark-Apps verwenden, die auf Object Storage und Autonomous Database zugreifen.
Voraussetzungen
Laden Sie vor dem Start dieses Tutorials Docker herunter, und installieren Sie es. Siehe Abschnitt Zugehörige Links.
Docker-Image des Packager-Tools herunterladen
Geben Sie den folgenden Befehl in die Befehlszeile ein:
docker pull phx.ocir.io/oracle/dataflow/dependency-packager:latest
JDBC-Treiber herunterladen
Laden Sie die JDBC-Treiber von der Oracle JDBC-Downloadseite herunter. Wenn Sie nicht sicher sind, welche Datenbankversion Sie in Ihrem Mandanten haben, laden Sie die Treiber für 19c herunter.
Verwenden Sie den gezippten JDBC-Treiber und die zugehörigen JARs für Version 8, ojdbc8-full.tar.gz
. Laden Sie ojdbc11-full.tar.gz
nicht herunter.
Extrahieren Sie die folgenden Dateien, und speichern Sie sie in demselben Verzeichnis, in dem Sie das Paket-Tool ausführen.
ojdbc8.jar
oraclepki.jar
osdt_cert.jar
osdt_core.jar
ucp.jar
Da Sie diese Dateien in demselben Verzeichnis speichern, in dem Sie das Paket-Tool ausführen, müssen Sie keine packages.txt
-Datei erstellen.
Erstellen Sie die Konfigurationsdatei
Erstellen Sie eine requirements.txt
-Datei. Die Datei enthält eine Liste der Librarys, von denen Ihre Data Flow-Anwendung PySpark abhängt. Für die Verbindung mit Object Storage ist die oci
-Library erforderlich. Sie können weitere Librarys nach Bedarf in die PySpark-App aufnehmen.
In diesem Beispiel wird gezeigt, wie Sie das neueste Release der oci
-Library angeben:
oci
Wenn Sie ein bestimmtes Release angeben möchten, ähnelt die Datei requirements.txt
dem folgenden Beispiel:
oci==2.3.0
Hinweise:
- Die Librarys
pyspark
undpy4j
werden von Data Flow bereitgestellt. Legen Sie diese Librarys nicht in die Dateirequirements.txt
. - Sie können leere Zeilen in der Datei
requirements.txt
enthalten, aber der Packager beschwert sich über eine ungültige Anforderung für jede leere Zeile.
Führen Sie das Packager-Tool aus.
Das Packager-Tool lädt die oci
-Library und ihre Abhängigkeiten herunter und erstellt eine Datei mit dem Namen archive.zip
. Außerdem wird das aktuelle Verzeichnis nach JAR-Dateien durchsucht. Er sollte die fünf JDBC-Treiberdateien finden und fragen, ob Sie sie in archive.zip
aufnehmen möchten.
Bei Windows:
- Öffnen Sie die Windows-Eingabeaufforderung als Administrator.
- Wechseln Sie in das Verzeichnis, das Ihre JAR-Dateien und die Datei
requirements.txt
enthält. -
Führen Sie den folgenden Befehl aus:
docker run --rm -v %CD%:/opt/dataflow -it phx.ocir.io/oracle/dataflow/dependency-packager:latest
Unter Linux oder Mac:
- Öffnen Sie ein Terminal.
- Wechseln Sie in das Verzeichnis, das Ihre JAR-Dateien und die Datei
requirements.txt
enthält. -
Führen Sie den folgenden Befehl aus:
docker run --rm -v $(pwd):/opt/dataflow -it phx.ocir.io/oracle/dataflow/dependency-packager:latest
Wenn das Tool abgeschlossen ist, öffnen Sie archive.zip
, und prüfen Sie die Struktur. Sie sollte dem folgenden Beispiel sehr ähnlich sein:
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
Nächste Schritte
Um das Abhängigkeitsarchiv für Ihre PySpark-Apps verfügbar zu machen, müssen Sie zwei Schritte ausführen:
- Laden Sie die Datei
archive.zip
in einen Bucket in Object Storage hoch. - Konfigurieren Sie die Data Flow-Anwendung so, dass sie mit der Datei
archive.zip
in Object Storage verknüpft wird.
Weitere Informationen finden Sie in der Object Storage-Dokumentation und in der Data Flow-Dokumentation. Das Archiv kann sich in demselben Object Storage-Bucket befinden wie die Python-Apps, die es benötigen.
Verwandte Links
- Docker herunterladen und installieren
- Format der request.txt-Datei
- Data Flow einrichten, um Ihre On-Premise-Logs in Oracle Cloud Infrastructure zu verarbeiten
Danksagungen
- Autor - Jeff Schering (User Assistance Developer)
Weitere Informationen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere Inhalte für kostenloses Lernen im Oracle Learning YouTube-Kanal zu. Außerdem besuchen Sie education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Produktdokumentation finden Sie im Oracle Help Center.
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere Inhalte für kostenloses Lernen im Oracle Learning YouTube-Kanal zu. Außerdem besuchen Sie education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Produktdokumentation finden Sie im Oracle Help Center.
Connect Data Flow PySpark apps to Autonomous Database in Oracle Cloud Infrastructure
F52110-01
January 2022
Copyright © 2022, Oracle and/or its affiliates.