Spark-Oracle-Datenquelle

Die Spark-Oracle-Datenquelle ist die Erweiterung der von Spark bereitgestellten JDBC-Datenquelle.

Die Spark-Oracle-Datenquelle ist eine Erweiterung der Spark-JDBC-Datenquelle. Sie vereinfacht das Herstellen von Verbindungen zu Oracle-Datenbanken von Spark. Zusätzlich zu allen Optionen, die von der Spark-JDBC-Datenquelle bereitgestellt werden, vereinfacht die Spark-Oracle-Datenquelle das Herstellen von Verbindungen zu Oracle-Datenbanken von Spark, indem Folgendes bereitgestellt wird:
  • Ein Wallet, das automatisch von Autonomous Database Serverless heruntergeladen wird. Das Wallet muss also nicht heruntergeladen und im Object Storage oder Vault gespeichert werden.
  • Sie verteilt das Wallet Bundle aus Object Storage automatisch an den Treiber und den Executor, ohne benutzerdefinierten Code von Benutzern.
  • Sie enthält JAR-Dateien des JDBC-Treibers. Daher müssen diese nicht heruntergeladen und in die archive.zip-Datei aufgenommen werden. Der JDBC-Treiber ist Version 21.3.0.0.

Spark-Oracle-Datenquelle verwenden

Sie können diese Datenquelle in Data Flow auf zwei Arten verwenden.

  • Nehmen Sie beim Erstellen, Bearbeiten oder Ausführen einer Anwendung im Abschnitt "Erweiterte Optionen" den folgenden Schlüssel auf:
    spark.oracle.datasource.enabled
    mit dem Wert: true. Weitere Informationen finden Sie unter Anwendungen erstellen.
  • Verwenden Sie das Oracle-Spark-Datenquellenformat. Zum Beispiel in Scala:
    val df = spark.read
      .format("oracle")
      .option("adbId","autonomous_database_ocid")
      .option("dbtable", "schema.tablename")
      .option("user", "username")
      .option("password", "password")
      .load()
    Weitere Beispiele in anderen Sprachen finden Sie im Abschnitt Beispiele für Spark-Oracle-Datenquellen.
Die folgenden drei Eigenschaften sind mit der Oracle-Datenquelle zusätzlich zu den von der Spark-JDBC-Datenquelle bereitgestellten Eigenschaften verfügbar:
Oracle-Datenquelleneigenschaften
Name der Eigenschaft Standardeinstellung Beschreibung Gültigkeitsbereich
walletUri Eine Object Storage- oder HDFS-kompatible URL. Sie enthält die ZIP-Datei des Oracle-Wallets, das für mTLS-Verbindungen zu einer Oracle-Datenbank erforderlich ist. Weitere Informationen zur Verwendung von Oracle Wallet finden Sie unter TNS-Namen und Verbindungszeichenfolgen für Autonomous Database Serverless anzeigen Lesen/Schreiben
connectionId
  • Optional mit adbld, <database_name>_medium von tnsnames.ora.
  • Bei Option walletUri erforderlich.
Der Verbindungs-ID-Alias aus der Datei tnsnames.ora als Teil des Oracle-Wallets. Weitere Informationen finden Sie unter Überblick über lokale Benennungsparameter und Glossar in der Oracle Database Net Services-Referenz. Lesen/Schreiben
adbId Die OCID der autonomen Oracle-Datenbank. Weitere Informationen finden Sie unter Autonomous Database Serverless - Überblick. Lesen/Schreiben
Hinweis

Für die Optionen gelten die folgenden Einschränkungen:
  • adbId und walletUri können nicht zusammen verwendet werden.
  • connectionId muss bei walletUri angegeben werden, ist bei adbId jedoch optional.
  • adbId wird für Datenbanken mit Scan nicht unterstützt.
Sie können die Spark-Oracle-Datenquelle in Data Flow mit Spark 3.0.2 und späteren Versionen verwenden.
Um die Spark-Oracle-Datenquelle mit Spark-Submit zu verwenden, legen Sie die folgende Option fest:
--conf spark.oracle.datasource.enabled: true
Die folgenden Datenbanken werden nur mit adbId unterstützt:
  • Autonomous Database Serverless
    Hinweis

    Wenn sich diese Datenbank in einem privaten VCN-Subnetz befindet, verwenden Sie ein privates Netzwerk, um der Ausnahmeliste den vollqualifizierten Domainnamen des privaten Endpunkts der autonomen Datenbank hinzuzufügen.
Die folgenden Datenbanken können mit der Option walletUri verwendet werden:
  • Autonomous Database Serverless
  • Datenbank der autonomen dedizierten Infrastruktur, einschließlich Exadata-Infrastruktur.
  • Autonomous Transaction Processing - Dedizierte Infrastruktur
  • On-Premises-Oracle-Datenbank, auf die über das Netzwerk von Data Flow zugegriffen werden kann, entweder über Fastconnect oder Site-to-Site-VPN.