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>
}

説明

表7-6 シンク・パラメータ

パラメータ 用途 データ型 必須(Y/N)
type

シンクのタイプを識別します。

string Y

"type" : "nosqldb"

table

データの移行元の完全修飾表名。

形式:

[namespace_name:]<table_name>

表がDEFAULTネームスペースにある場合は、namespace_nameを省略できます。移行時に表がストアに存在し、そのスキーマがソース・データと一致している必要があります。

シンクで表を使用できない場合は、schemaInfoパラメータを使用して、シンクにも表を作成するようにNoSQL Data Migratorに指示できます。

string Y
  • DEFAULTネームスペースを使用

    "table" :"mytable"

  • デフォルト以外のネームスペースを使用

    "table" : "mynamespace:mytable"

schemaInfo

移行対象データのスキーマを指定します。これが指定されていない場合、NoSQL Data Migratorは、表がシンクのストアにすでに存在するとみなします。

オブジェクト N
  • デフォルト・スキーマを使用:
    "schemaInfo" : {
          "defaultSchema" : true,
          "readUnits" : 100,
          "writeUnits" : 60,
          "storageSize" : 1
        }
  • 事前定義済のスキーマを使用:
    "schemaInfo" : {
          "schemaPath" : "<complete/path/to/the/schema/definition/file>",
          "readUnits" : 100,
          "writeUnits" : 100,
          "storageSize" : 1
        }
schemaInfo.schemaPath

NoSQL表のDDL文を含むファイルへの絶対パスを指定します。

NoSQL Data Migratorは、データを移行する前に、このファイルにリストされているDDLコマンドを実行します。

NoSQL Data Migratorでは、schemaPathファイルの行ごとに複数のDDL文をサポートしていません。

string 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列に集計されます。
boolean Y (schemaInfo.schemaPathパラメータがNoに設定されている場合のみ)。

注意:

defaultSchemaschemaPathは相互に排他的です。
storeName

Oracle NoSQL Databaseストアの名前。

string Y

"storeName" : "kvstore"

helperHosts

hostname:port形式のホストとレジストリ・ポートのペアのリスト。カンマを使用してリスト内の各アイテムを区切ります。ヘルパー・ホストを1つ以上指定する必要があります。

文字列の配列 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
string 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です。値には任意の正の整数を指定できます。

integer N "requestTimeoutMs" : 5000