シンク構成テンプレート
有効な各シンクの構成ファイル形式および各構成パラメータの用途について学習します。
JSONファイル
NoSQL Data MigratorのシンクとしてのJSONファイルの構成ファイル形式を次に示します。
構成テンプレート
"sink" : {
"type" : "file",
"format" : "json",
"dataPath": "</path/to/a/file>",
"schemaPath" : "<path/to/a/file>"
}
シンク・パラメータ
type
-
用途: シンク・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "file"
format
-
用途: シンクの形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"format" : "json"
dataPath
-
用途: ソース・データがJSON形式でコピーされるファイルへの絶対パスを指定します。
指定されたデータ・パスにファイルが存在しない場合は、NoSQL Data Migratorによって作成されます。すでに存在する場合は、NoSQL Data Migratorによってその内容がソース・データで上書きされます。
データ・パスに指定されたファイルの親ディレクトリが有効であることを確認する必要があります。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"dataPath" : "/home/user/sample.json"
schemaPath
-
用途: ソースによって提供されるスキーマ情報を書き込む絶対パスを指定します。
この値を定義しないと、ソース・スキーマ情報はシンクに移行されません。この値を指定すると、マイグレータ・ユーティリティによって、ここで指定したファイルにソース表のスキーマが書き込まれます。
スキーマ情報は、このファイルの行ごとに1つのDDLコマンドとして書き込まれます。指定されたデータ・パスにファイルが存在しない場合は、NoSQL Data Migratorによって作成されます。すでに存在する場合は、NoSQL Data Migratorによってその内容がソース・データで上書きされます。データ・パスに指定されたファイルの親ディレクトリが有効であることを確認する必要があります。
- データ型: 文字列
- 必須(Y/N): N
-
例:
"schemaPath" : "/home/user/schema_file"
Oracle NoSQL Database
NoSQL Data MigratorのシンクとしてのOracle NoSQL Databaseの構成ファイル形式を次に示します。
構成テンプレート
"sink" : {
"type": "nosqldb",
"table" : "<fully qualified table name>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>" or "defaultSchema" : true
}
"storeName" : "<store name>",
"helperHosts" : ["hostname1:port1","hostname2:port2,..."],
"security" : "</path/to/store/credentials/file>",
"requestTimeoutMs" : <timeout in milli seconds>
}
シンク・パラメータ
type
-
用途: シンク・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "nosqldb"
table
-
用途: データの移行元の完全修飾表名。
形式:
[namespace_name:]<table_name>
表がDEFAULTネームスペースにある場合は、
namespace_name
を省略できます。移行時に表がストアに存在し、そのスキーマがソース・データと一致している必要があります。シンクで表を使用できない場合は、
schemaInfo
パラメータを使用して、シンクにも表を作成するようにNoSQL Data Migratorに指示できます。 - データ型: 文字列
- 必須(Y/N): Y
- 例:
-
DEFAULTネームスペース
"table" :"mytable"
を使用する場合 -
デフォルト以外のネームスペース
"table" : "mynamespace:mytable"
を使用する場合
-
schemainfo
-
用途: 移行対象データのスキーマを指定します。これが指定されていない場合は、表がシンクのストアにすでに存在するとみなします。
- データ型: オブジェクト
- 必須(Y/N): N
schemaInfo.schemaPath
-
用途: NoSQL表のDDL文を含むファイルへの絶対パスを指定します。
NoSQL Data Migratorは、データを移行する前に、このファイルにリストされているDDLコマンドを実行します。
NoSQL Data Migratorでは、
schemaPath
ファイルの行ごとに複数のDDL文をサポートしていません。 -
データ型: 文字列
-
必須: Y (
schemaInfo.defaultSchema
パラメータがNoに設定されている場合のみ)。
schemaInfo.defaultSchema
-
用途: このパラメータをYesに設定すると、NoSQL Data Migratorではデフォルト・スキーマを使用して表が作成されます。デフォルト・スキーマは、マイグレータ自体によって定義されます。
ソースがMongoDB形式のJSONファイルの場合、表のデフォルト・スキーマは次のようになります。
CREATE TABLE IF NOT EXISTS <tablename>(ID STRING, DOCUMENT JSON,PRIMARY KEY(SHARD(ID));
説明:tablename
= 構成のtable
属性に指定された値。ID
= mongoDBでエクスポートされたJSONソース・ファイルの各ドキュメントの_id
値。DOCUMENT
= mongoDBでエクスポートされたファイル内のドキュメントごとに、_id
フィールドを除く内容がDOCUMENT
列に集計されます。
注意:
MongoDB形式のJSONファイルで_id
値が文字列として指定されていない場合、NoSQL Data Migratorは、デフォルト・スキーマに挿入する前に値を文字列に変換します。その他すべてのソースでは、デフォルト・スキーマは次のようになります。
CREATE TABLE IF NOT EXISTS <tablename> (ID LONG GENERATED ALWAYS AS IDENTITY, DOCUMENT JSON, PRIMARY KEY(ID))
説明:tablename
= 構成のtable
属性に指定された値。ID
= 自動生成されたLONG値。DOCUMENT
= ソースによって提供されるJSONレコードがDOCUMENT
列に集計されます。
-
データ型: ブール
-
必須: Y (
schemaInfo.defaultSchema
パラメータがNoに設定されている場合のみ)。注意:
defaultSchema
とschemaPath
は相互に排他的です - 例:
- デフォルト・スキーマを使用:
"schemaInfo" : { "defaultSchema" : true, "readUnits" : 100, "writeUnits" : 60, "storageSize" : 1 }
- 事前定義済のスキーマを使用:
"schemaInfo" : { "schemaPath" : "<complete/path/to/the/schema/definition/file>", "readUnits" : 100, "writeUnits" : 100, "storageSize" : 1 }
- デフォルト・スキーマを使用:
storeName
-
用途: Oracle NoSQL Databaseストアの名前。
- データ型: 文字列
- 必須(Y/N): Y
- 例:
"storeName" : "kvstore"
helperHosts
-
用途:
hostname:port
形式のホストとレジストリ・ポートのペアのリスト。カンマを使用してリスト内の各アイテムを区切ります。ヘルパー・ホストを1つ以上指定する必要があります。 - データ型: 文字列の配列
- 必須(Y/N): Y
- 例:
"helperHosts" : ["localhost:5000","localhost:6000"]
security
-
用途:
ストアがセキュアなストアの場合は、ストア資格証明を含むセキュリティ・ログイン・ファイルへの絶対パスを指定します。セキュリティ・ログイン・ファイルの詳細は、管理者ガイドのリモート・アクセスでのセキュリティの構成を参照してください。
パスワード・ファイル・ベースの認証またはウォレット・ベースの認証のいずれかを使用できます。ただし、ウォレット・ベースの認証は、Oracle NoSQL DatabaseのEnterprise Edition (EE)でのみサポートされます。
Community Edition (CE)エディションでは、パスワード・ファイル・ベースの認証のみがサポートされます。
ウォレットを使用して認証するには、EEインストールの一部である追加のjarファイルが必要です。
これらのjarファイルがない場合は、次の例外が発生します。
java.lang.NoClassDefFoundError: oracle/security/pki/OracleSecretStoreException
前述の例外を回避するには、EEサーバー・パッケージからnosql-migrator-1.0.0/lib
ディレクトリに次のjarファイルをコピーする必要があります。oraclepki.jar
osdt_core.jar
osdt_cert.jar
- データ型: 文字列
- 必須(Y/N): Y (セキュアなストアの場合)
- 例:
"security" : "/home/user/client.credentials"
パスワード・ファイル・ベースの認証のセキュリティ・ファイルの内容の例:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.pwdfile.file=/home/nosql/login.passwd oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2,TLSv1.1,TLSv1 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)
ウォレット・ベースの認証のセキュリティ・ファイルの内容の例:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.wallet.dir=/home/nosql/login.wallet oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2,TLSv1.1,TLSv1 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)
requestTimeoutMs
-
用途: シンク内の各書き込み操作が完了するまで待機する時間を指定します。これはミリ秒単位で指定します。デフォルト値は5000です。値には任意の正の整数を指定できます。
- データ型: 整数
- 必須(Y/N): N
- 例:
"requestTimeoutMs" : 5000
Oracle NoSQL Database Cloud Service
NoSQL Data MigratorのシンクとしてのOracle NoSQL Database Cloud Serviceの構成ファイル形式を次に示します。
構成テンプレート
"sink" : {
"type" : "nosqldb_cloud",
"endpoint" : "<Oracle NoSQL Cloud Service Endpoint>",
"table" : "<table name>",
"compartment" : "<OCI compartment name or id>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>" or "defaultSchema" : true
"readUnits" : <table read units>,
"writeUnits" : <table write units>,
"storageSize" : <storage size in GB>
},
"credentials" : "</path/to/oci/credential/file>",
"credentialsProfile" : "<oci credentials profile name>",
"writeUnitsPercent" : <table writeunits percent>,
"requestTimeoutMs" : <timeout in milli seconds>
}
シンク・パラメータ
type
-
用途: シンク・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "nosqldb_cloud"
endpoint
-
用途: Oracle NoSQL Database Cloud Serviceのサービス・エンドポイントを指定します。
完全なURLまたはリージョンIDのみを指定できます。Oracle NoSQL Database Cloud Serviceでサポートされているデータ・リージョンのリストは、Oracle NoSQL Database Cloud Serviceの使用のデータ・リージョンと関連サービスのURLを参照してください。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://nosql.us-ashburn-1.oci.oraclecloud.com/"
-
table
-
用途: データの移行先となる表の名前。
この表がOracle NoSQL Database Cloud Serviceに存在することを確認する必要があります。それ以外の場合は、シンク構成で
schemaInfo
オブジェクトを使用して、表を作成するようにNoSQL Data Migratorに指示する必要があります。この表のスキーマはソース・データと一致している必要があります。
- データ型: 文字列
- 必須(Y/N): Y
- 例:
"table" :"myTable"
compartment
-
用途: 表が存在するコンパートメントの名前またはOCIDを指定します。
値を指定しない場合は、デフォルトでルート・コンパートメントに設定されます。
コンパートメントのOCIDは、OCI Cloudコンソールの「Governance」のコンパートメント・エクスプローラ・ウィンドウから確認できます。
- データ型: 文字列
- 必須(Y/N): Y (表がテナンシのルート・コンパートメントにない場合)。
- 例:
-
コンパートメント名
"compartment" : "mycompartment"
-
親コンパートメントで修飾されたコンパートメント名
"compartment" : "parent.childcompartment"
-
値が未指定。デフォルトはルート・コンパートメントです。
"compartment": ""
-
コンパートメントOCID
"compartment" : "ocid1.tenancy.oc1...4ksd"
-
schemaInfo
-
用途: 移行対象データのスキーマを指定します。
このパラメータを指定しない場合、NoSQL Data Migratorでは、表がOracle NoSQL Database Cloud Serviceにすでに存在するとみなされます。
このパラメータが指定されておらず、シンクに表が存在しない場合、移行は失敗します。
- データ型: オブジェクト
- 必須(Y/N): N
schemaInfo.schemaPath
-
用途: NoSQL表のDDL文を含むファイルへの絶対パスを指定します。
NoSQL Data Migratorは、データを移行する前に、このファイルにリストされているDDLコマンドを実行します。
NoSQL Data Migratorでは、
schemaPath
ファイルの行ごとに複数のDDL文をサポートしていません。 -
データ型: 文字列
-
必須: Y (
schemaInfo.defaultSchema
パラメータがNoに設定されている場合のみ)。
schemaInfo.defaultSchema
-
用途: このパラメータをYesに設定すると、NoSQL Data Migratorではデフォルト・スキーマを使用して表が作成されます。デフォルト・スキーマは、マイグレータ自体によって定義されます。
ソースがMongoDB形式のJSONファイルの場合、表のデフォルト・スキーマは次のようになります。
CREATE TABLE IF NOT EXISTS <tablename>(ID STRING, DOCUMENT JSON,PRIMARY KEY(SHARD(ID));
説明:tablename
= 構成のtable
属性に指定された値。ID
= mongoDBでエクスポートされたJSONソース・ファイルの各ドキュメントの_id
値。DOCUMENT
= mongoDBでエクスポートされたファイル内のドキュメントごとに、_id
フィールドを除く内容がDOCUMENT
列に集計されます。
注意:
MongoDB形式のJSONファイルで_id
値が文字列として指定されていない場合、NoSQL Data Migratorは、デフォルト・スキーマに挿入する前に値を文字列に変換します。その他すべてのソースでは、デフォルト・スキーマは次のようになります。
CREATE TABLE IF NOT EXISTS <tablename> (ID LONG GENERATED ALWAYS AS IDENTITY, DOCUMENT JSON, PRIMARY KEY(ID))
説明:tablename
= 構成のtable
属性に指定された値。ID
= 自動生成されたLONG値。DOCUMENT
= ソースによって提供されるJSONレコードがDOCUMENT
列に集計されます。
-
データ型: ブール
-
必須: Y (
schemaInfo.defaultSchema
パラメータがNoに設定されている場合のみ)。注意:
defaultSchema
とschemaPath
は相互に排他的です
schemaInfo.readUnits
- 用途: 新しい表の読取りスループットを指定します。
-
データ型: 整数
-
必須: Y
schemaInfo.writeUnits
- 用途: 新しい表の書込みスループットを指定します。
-
データ型: 整数
-
必須: Y
schemaInfo.storageSize
- 用途: 新しい表の記憶域サイズをGB単位で指定します
-
データ型: 整数
-
必須: Y
- 例:
-
schemaPath
を使用"schemaInfo" : { "schemaPath" : "</path/to/a/schema/file>", "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 }
-
defaultSchema
を使用"schemaInfo" : { "defaultSchema" :Yes, "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 }
-
credentials
-
用途: OCI資格証明を含むファイルへの絶対パス。
指定しない場合は、デフォルトで
$HOME/.oci/config
に設定されます。資格証明ファイルの例は、構成例を参照してください。
- データ型: 文字列
- 必須(Y/N): N
- 例:
"credentials" : "/home/user/security/config"
credentialsProfile
-
用途: Oracle NoSQL Database Cloud Serviceへの接続に使用される構成プロファイルの名前。
この値を指定しない場合は、デフォルトで
DEFAULT
プロファイルに設定されます。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentialsProfile": "ADMIN_USER"
writeUnitsPercent
-
用途: 移行アクティビティ中に使用される表書込みユニットの割合を指定します。
デフォルト値は90です。有効範囲は1から100の任意の整数です。
注意:
データ移行に必要な時間は、writeUnitsPercent
値に正比例します。この属性を使用してデータ移行速度を向上させる方法の詳細は、NoSQL Data Migratorのトラブルシューティングを参照してください。
- データ型: 整数
- 必須(Y/N): N
- 例:
"writeUnitsPercent" : 90
requestTimeoutMs
-
用途: シンク内の各書き込み操作が完了するまで待機する時間を指定します。これはミリ秒単位で指定します。デフォルト値は5000です。値には任意の正の整数を指定できます。
- データ型: 整数
- 必須(Y/N): N
- 例:
"requestTimeoutMs" : 5000