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;