シンク構成テンプレート

有効な各シンクの構成ファイル形式および各構成パラメータの用途について学習します。

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に設定されている場合のみ)。

    注意:

    defaultSchemaschemaPathは相互に排他的です
  • 例:
    • デフォルト・スキーマを使用:
      "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に設定されている場合のみ)。

    注意:

    defaultSchemaschemaPathは相互に排他的です

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