Exemples de sources de données Oracle de Spark

Exemples d'utilisation de la source de données Oracle pour Spark avec le service de flux de données.

Voici des exemples chacun pour Java, Python, Scala et SQL, ils utilisent une bibliothèque Oracle : Pour des exemples complets, voir Exemples d'Oracle Data Flow sur GitHub.

Exemples Java

Exemple de code pour la source de données Oracle pour Spark avec Java.

Chargement de données à partir d'une base de données Autonomous Database sans serveur dans le compartiment racine :

// Loading data from Autonomous Database Serverless at root compartment.
// Note you don't have to provide driver class name and jdbc url.
Dataset<Row> oracleDF = spark.read()
  .format("oracle")
  .option("adbId","ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>")
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .load();
Chargement de données à partir d'Autonomous Database Serverless et remplacement du nom du service réseau :
// Loading data from Autonomous Database Serverless overriding net service name.
// Note using map for configuration/options.Map can be mutable or immutable.
Map<String, String> options = new HashMap<String, String>();
        options.put("adbId", "ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>");
        options.put("connectionId", "database_high");
        options.put("user", "username");
        options.put("password", "password");
        options.put("dbtable", "schema.tablename");
 
Dataset<Row> oracleDF1 = spark.read()
  .format("oracle")
  .options(options)
  .load()
Chargement de données à partir d'une base de données Oracle avec un portefeuille dans le service Stockage d'objets :
// Loading data from oracle database with wallet from oci object storage.
Dataset<Row> oracleDF2 = spark.read()
  .format("oracle")
  .option("walletUri","oci://<bucket>@<namespace>/Wallet_DATABASE.zip")
  .option("connectionId","database_medium")
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .load()
Chargement de données à partir d'une base de données Oracle avec un portefeuille dans le service Stockage d'objets et la connexion automatique activée pour le portefeuille. Aucun nom d'utilisateur ni mot de passe n'est requis :
// Loading data from oracle database with wallet from oci object storage and auto-login enabled in wallet, no username and password required.
Dataset<Row> oracleDF2 = spark.read()
  .format("oracle")
  .option("walletUri","oci://<bucket>@<namespace>/Wallet_DATABASE.zip")
  .option("connectionId","database_medium")
  .option("dbtable", "schema.tablename")
  .load()
Enregistrement de données dans une base de données Autonomous Database sans serveur dans le compartiment racine :
// Saving data to Autonomous Database Serverless at root compartment.
oracleDF.write
  .format("oracle")
  .option("adbId","ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>")
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .save()
Enregistrement des données dans Autonomous Database sans serveur au niveau du compartiment racine et remplacement du nom du service réseau :
// Saving data to Autonomous Database Serverless at root compartment overriding net service name.
oracleDF.write
  .format("oracle")
  .option("adbId","ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>")
  .option("connectionId","database_low)
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .save()
Enregistrement de données dans une base de données Oracle avec un portefeuille dans le service Stockage d'objets :
// Saving data to oracle database with wallet from object storage.
oracleDF.write
  .format("oracle")
  .option("walletUri","oci://<bucket>@<namespace>/Wallet_DATABASE.zip"
  .option("connectionId","database_low)
  .option("user", "username")
  .option("password", "password")
  .save()

Exemples Python

Exemple de code pour la source de données Oracle pour Spark avec Python.

Chargement de données à partir d'une base de données Autonomous Database sans serveur dans le compartiment racine :

// Loading data from Autonomous Database Serverless at root compartment.
// Note you don't have to provide driver class name and jdbc url.
oracle_df = spark.read \
    .format("oracle") \
    .option("adbId","ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>") \
    .option("dbtable", "schema.tablename") \
    .option("user", "username") \
    .option("password", "password") \
    .load()
Chargement de données à partir d'Autonomous Database Serverless et remplacement du nom du service réseau :
// Loading data from Autonomous Database Serverless overriding net service name.
// Note using map for configuration/options.Map can be mutable or immutable.
properties = {"adbId":"ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>","dbtable":"schema.tablename","connectionId":"database_high","user":"username","password":"password"}
oracle_df1 = spark.read \
    .format("oracle") \
    .options(**properties) \
    .load()
Chargement de données à partir d'une base de données Oracle avec un portefeuille dans le service Stockage d'objets :
// Loading data from oracle database with wallet from oci object storage.
oracle_df2 = spark.read \
    .format("oracle") \
    .option("walletUri","oci://<bucket>@<namespace>/Wallet_DATABASE.zip") \
    .option("connectionId","database_medium") \
    .option("dbtable", "schema.tablename") \
    .option("user", "username") \
    .option("password", "password") \
    .load()
Chargement de données à partir d'une base de données Oracle avec un portefeuille dans le service Stockage d'objets et la connexion automatique activée pour le portefeuille. Aucun nom d'utilisateur ni mot de passe n'est requis :
// Loading data from oracle database with wallet from oci object storage and auto-login enabled in wallet, no username and password required.
oracle_df2 = spark.read \
    .format("oracle") \
    .option("walletUri","oci://<bucket>@<namespace>/Wallet_DATABASE.zip") \
    .option("connectionId","database_medium") \
    .option("dbtable", "schema.tablename") \
    .load()
Enregistrement de données dans une base de données Autonomous Database sans serveur dans le compartiment racine :
// Saving data to Autonomous Database Serverless at root compartment.
oracle_df.write \
    .format("oracle") \
    .option("adbId","ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>") \
    .option("dbtable", "schema.tablename") \
    .option("user", "username") \
    .option("password", "password") \
    .save()
Enregistrement des données dans Autonomous Database sans serveur au niveau du compartiment racine et remplacement du nom du service réseau :
// Saving data to Autonomous Database Serverless at root compartment overriding net service name.
oracle_df.write \
    .format("oracle") \
    .option("adbId","ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>") \
    .option("connectionId","database_low) \
    .option("dbtable", "schema.tablename") \
    .option("user", "username") \
    .option("password", "password") \
    .save()
Enregistrement de données dans une base de données Oracle avec un portefeuille dans le service Stockage d'objets :
// Saving data to oracle database with wallet from object storage.
oracle_df.write \
    .format("oracle") \
    .option("walletUri","oci://<bucket>@<namespace>/Wallet_DATABASE.zip") \
    .option("connectionId","database_medium") \
    .option("dbtable", "schema.tablename") \
    .option("user", "username") \
    .option("password", "password") \
    .save()

Exemples Scala

Exemple de code pour la source de données Oracle pour Spark avec Scala.

Chargement de données à partir d'une base de données Autonomous Database sans serveur dans le compartiment racine :

// Loading data from Autonomous Database Serverless at root compartment.
// Note you don't have to provide driver class name and jdbc url.
val oracleDF = spark.read
  .format("oracle")
  .option("adbId","ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>")
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .load()
Chargement de données à partir d'Autonomous Database Serverless et remplacement du nom du service réseau :
// Loading data from Autonomous Database Serverless overriding net service name.
// Note using map for configuration/options.Map can be mutable or immutable.
var options = Map[String, String]()
options += ("adbId" -> "ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>", "connectionId" -> "database_high", "dbtable" -> "schema.tablename", "user"-> "username", "password" ->"password")
 
val oracleDF1 = spark.read
  .format("oracle")
  .options(options)
  .load()
Chargement de données à partir d'une base de données Oracle avec un portefeuille dans le service Stockage d'objets :
// Loading data from oracle database with wallet from oci object storage.
val oracleDF2 = spark.read
  .format("oracle")
  .option("walletUri","oci://<bucket>@<namespace>/Wallet_DATABASE.zip")
  .option("connectionId","database_medium")
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .load()
Chargement de données à partir d'une base de données Oracle avec un portefeuille dans le service Stockage d'objets et la connexion automatique activée pour le portefeuille. Aucun nom d'utilisateur ni mot de passe n'est requis :
// Loading data from oracle database with wallet from oci object storage and auto-login enabled in wallet, no username and password required.
val oracleDF2 = spark.read
  .format("oracle")
  .option("walletUri","oci://<bucket>@<namespace>/Wallet_DATABASE.zip")
  .option("connectionId","database_medium")
  .option("dbtable", "schema.tablename")
  .load()
Enregistrement de données dans une base de données Autonomous Database sans serveur dans le compartiment racine :
// Saving data to Autonomous Database Serverless at root compartment.
oracleDF.write
  .format("oracle")
  .option("adbId","ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>")
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .save()
Enregistrement des données dans Autonomous Database sans serveur au niveau du compartiment racine et remplacement du nom du service réseau :
// Saving data to autonomous database at root compartment overriding net service name.
oracleDF.write
  .format("oracle")
  .option("adbId","ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>")
  .option("connectionId","database_low)
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .save()
Enregistrement de données dans une base de données Oracle avec un portefeuille dans le service Stockage d'objets :
// Saving data to oracle database with wallet from object storage.
oracleDF.write
  .format("oracle")
  .option("walletUri","oci://<bucket>@<namespace>/Wallet_DATABASE.zip"
  .option("connectionId","database_low)
  .option("user", "username")
  .option("password", "password")
  .save()

Exemples SQL

Exemple de code pour la source de données Oracle pour Spark avec SQL.

Chargement de données à partir d'une base de données Autonomous Database sans serveur dans le compartiment racine :

-- Loading data from Autonomous Database Serverless at root compartment.
 
CREATE TEMPORARY VIEW oracle_db
USING oracle
OPTIONS (
adbId "ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>",
dbtable "schema.tablename",
user "uname",
password "pwd"
);
 
SELECT count(*) FROM oracle_db;
DROP TABLE oracle_db;
Chargement de données à partir d'Autonomous Database Serverless et remplacement du nom du service réseau :
-- Loading data from Autonomous Database Serverless overriding net service name.
 
CREATE TEMPORARY VIEW oracle_db1
USING oracle
OPTIONS (
adbId "ocid1.autonomousdatabase.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>",
connectionId "database_high",
dbtable "schema.tablename",
user "uname",
password "pwd"
);
 
SELECT count(*) FROM oracle_db1;
DROP TABLE oracle_db1;
Chargement de données à partir d'une base de données Oracle avec un portefeuille dans le service Stockage d'objets :
-- Loading data from oracle database with wallet from object storage.
 
CREATE TEMPORARY VIEW oracle_db1
USING oracle
OPTIONS (
walletUri "oci://<bucket>@<namespace>/Wallet_DATABASE.zip",
connectionId "database_high",
dbtable "schema.tablename",
user "uname",
password "pwd"
);
 
SELECT count(*) FROM oracle_db1;
DROP TABLE oracle_db1;
Chargement de données à partir d'une base de données Oracle avec un portefeuille dans le service Stockage d'objets et la connexion automatique activée pour le portefeuille. Aucun nom d'utilisateur ni mot de passe n'est requis :
-- Loading data from oracle database with wallet from oci object storage and auto-login enabled in wallet, no username and password required.
CREATE TEMPORARY VIEW oracle_db2
USING oracle
OPTIONS (
walletUri "oci://<bucket>@<namespace>/Wallet_DATABASE.zip",
connectionId "database_high",
dbtable "schema.tablename"
);
 
SELECT count(*) FROM oracle_db2;
DROP TABLE oracle_db2;