Spark Oracleデータソースの例

データ・フローでのSpark Oracleデータソースの使用例。

次に、Java、Python、ScalaおよびSQLの各例を、Oracleライブラリを使用します。 動作する完全な例については、GitHubのOracleデータ・フローのサンプルを参照してください。

Javaの例

Javaを使用したSpark Oracleデータソースのコード例。

ルート・コンパートメントのAutonomous Databaseサーバーレスからのデータのロード:

// 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();
Autonomous Databaseサーバーレスからのデータのロードおよびネット・サービス名のオーバーライド:
// 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()
オブジェクト・ストレージのウォレットを使用して、Oracleデータベースからデータをロードします:
// 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()
オブジェクト・ストレージのウォレットでは自動ログインが有効になっており、これを使用して、Oracleデータベースからデータをロードします。ユーザー名とパスワードは必要ありません:
// 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()
ルート・コンパートメントのAutonomous Databaseサーバーレスへのデータの保存:
// 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()
ルート・コンパートメントのAutonomous Databaseサーバーレスへのデータの保存、およびネット・サービス名のオーバーライド:
// 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()
オブジェクト・ストレージのウォレットを使用して、Oracleデータベースにデータを保存します:
// 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()

Pythonの例

Pythonを使用したSpark Oracleデータソースのコード例。

ルート・コンパートメントのAutonomous Databaseサーバーレスからのデータのロード:

// 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()
Autonomous Databaseサーバーレスからのデータのロードおよびネット・サービス名のオーバーライド:
// 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()
オブジェクト・ストレージのウォレットを使用して、Oracleデータベースからデータをロードします:
// 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()
オブジェクト・ストレージのウォレットでは自動ログインが有効になっており、これを使用して、Oracleデータベースからデータをロードします。ユーザー名とパスワードは必要ありません:
// 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()
ルート・コンパートメントのAutonomous Databaseサーバーレスへのデータの保存:
// 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()
ルート・コンパートメントのAutonomous Databaseサーバーレスへのデータの保存、およびネット・サービス名のオーバーライド:
// 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()
オブジェクト・ストレージのウォレットを使用して、Oracleデータベースにデータを保存します:
// 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()

Scalaの例

Scalaを使用したSpark Oracleデータソースのコード例。

ルート・コンパートメントのAutonomous Databaseサーバーレスからのデータのロード:

// 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()
Autonomous Databaseサーバーレスからのデータのロードおよびネット・サービス名のオーバーライド:
// 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()
オブジェクト・ストレージのウォレットを使用して、Oracleデータベースからデータをロードします:
// 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()
オブジェクト・ストレージのウォレットでは自動ログインが有効になっており、これを使用して、Oracleデータベースからデータをロードします。ユーザー名とパスワードは必要ありません:
// 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()
ルート・コンパートメントのAutonomous Databaseサーバーレスへのデータの保存:
// 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()
ルート・コンパートメントのAutonomous Databaseサーバーレスへのデータの保存、およびネット・サービス名のオーバーライド:
// 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()
オブジェクト・ストレージのウォレットを使用して、Oracleデータベースにデータを保存します:
// 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()

SQLの例

SQLを使用したSpark Oracleデータソースのコード例。

ルート・コンパートメントのAutonomous Databaseサーバーレスからのデータのロード:

-- 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;
Autonomous Databaseサーバーレスからのデータのロードおよびネット・サービス名のオーバーライド:
-- 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;
オブジェクト・ストレージのウォレットを使用して、Oracleデータベースからデータをロードします:
-- 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;
オブジェクト・ストレージのウォレットでは自動ログインが有効になっており、これを使用して、Oracleデータベースからデータをロードします。ユーザー名とパスワードは必要ありません:
-- 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;