ソース構成テンプレート

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

構成ファイル・テンプレートについては、Oracle NoSQL Database Migratorで使用される用語構成ファイルを参照してください。

各ソースの有効なシンク形式の詳細は、シンク構成テンプレートを参照してください。

トピック

次のトピックでは、特定のソースから有効なシンクにデータをコピーするためにOracle NoSQL Database Migratorによって参照されるソース構成テンプレートについて説明します。

JSONファイル・ソース

NoSQL Database MigratorのソースとしてのJSONファイルの構成ファイル形式を次に示します。

ソース構成テンプレートでファイル・パスまたはディレクトリを指定して、JSONソース・ファイルを移行できます。

サンプルJSONソース・ファイルは次のとおりです。
{"id":6,"val_json":{"array":["q","r","s"],"date":"2023-02-04T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-03-04T02:38:57.520Z","numfield":30,"strfield":"foo54"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":56,"strfield":"bar23"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
{"id":3,"val_json":{"array":["g","h","i"],"date":"2023-02-02T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-02T02:38:57.520Z","numfield":28,"strfield":"foo3"},{"datefield":"2023-02-02T02:38:57.520Z","numfield":38,"strfield":"bar"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}

ソース構成テンプレート

"source": {
  "type": "file",
  "format": "json",
  "dataPath": "<path/to/JSON/[file|dir]>",
  "schemaInfo": {
    "schemaPath": "<path/to/schema/file>"
  }
},

ソース・パラメータ

共通の構成パラメータ

  • type

    "type" : "file"を使用します

  • format

    "format" : "json"を使用します

一意の構成パラメータ

dataPath

  • 用途: 移行するJSONデータを含むファイルまたはディレクトリへの絶対パスを指定します。

    このデータがシンクで定義されているNoSQL表スキーマと一致することを確認する必要があります。ディレクトリを指定すると、NoSQL Database Migratorによって、そのディレクトリ内の拡張子が.jsonのすべてのファイルが移行対象として識別されます。サブディレクトリはサポートされていません。

  • データ型: 文字列
  • 必須(Y/N): Y
  • 例:
    • JSONファイルの指定

      "dataPath" : "/home/user/sample.json"

    • ディレクトリの指定

      "dataPath" : "/home/user"

schemaInfo

  • 用途: 移行対象のソース・データのスキーマを指定します。このスキーマはNoSQLシンクに渡されます。

  • データ型: オブジェクト
  • 必須(Y/N): N

schemaInfo.schemaPath

  • 用途: 移行対象のNoSQL表のDDL文を含むスキーマ定義ファイルへの絶対パスを指定します。

  • データ型: 文字列
  • 必須(Y/N): Y
  • 例:
    "schemaInfo": {
      "schemaPath": "<path to the schema file>"
    }

OCIオブジェクト・ストレージ・バケットのJSONファイル

NoSQL Database MigratorのソースとしてのOCIオブジェクト・ストレージ・バケットのJSONファイルの構成ファイル形式を次に示します。

ソース構成テンプレートでバケットの名前を指定することで、OCIオブジェクト・ストレージ・バケット内のJSONファイルを移行できます。

OCIオブジェクト・ストレージ・バケットのサンプルJSONソース・ファイルは次のとおりです:
{"id":6,"val_json":{"array":["q","r","s"],"date":"2023-02-04T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-03-04T02:38:57.520Z","numfield":30,"strfield":"foo54"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":56,"strfield":"bar23"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
{"id":3,"val_json":{"array":["g","h","i"],"date":"2023-02-02T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-02T02:38:57.520Z","numfield":28,"strfield":"foo3"},{"datefield":"2023-02-02T02:38:57.520Z","numfield":38,"strfield":"bar"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}

ノート:

OCIオブジェクト・ストレージのソース・タイプの有効なシンク・タイプは、nosqldbおよびnosqldb_cloudです。

ソース構成テンプレート

"source" : {
  "type" : "object_storage_oci",
  "format" : "json",
  "endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
  "namespace" : "<OCI Object Storage namespace>",
  "bucket" : "<bucket name>",
  "prefix" : "<object prefix>",
  "schemaInfo" : {
     "schemaObject" : "<object name>"
  },
  "credentials" : "</path/to/oci/config/file>",
  "credentialsProfile" : "<profile name in oci config file>",
  "useInstancePrincipal" : <true|false>,
  "useDelegationToken" : <true|false>
}

ソース・パラメータ

共通の構成パラメータ

  • type

    "type" : "object_storage_oci"を使用します

  • format

    "format" : "json"を使用します

  • endpoint
    次に例を示します。
    • リージョンID: "endpoint" : "us-ashburn-1"

    • URL形式: "endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"

  • namespace

    例: "namespace" : "my-namespace"

  • bucket

    例: "bucket" : "my-bucket"

  • prefix
    次に例を示します。
    1. "prefix" : "my_table/Data/000000.json" (000000.jsonのみが移行されます)
    2. "prefix" : "my_table/Data" (接頭辞my_table/Dataを持つすべてのオブジェクトが移行されます)
  • credentials
    次に例を示します。
    1. "credentials" : "/home/user/.oci/config"
    2. "credentials" : "/home/user/security/config"
  • credentialsProfile
    次に例を示します。
    1. "credentialsProfile" : "DEFAULT"
    2. "credentialsProfile" : "ADMIN_USER"
  • useInstancePrincipal

    例: "useInstancePrincipal" : true

  • useDelegationToken

    例: "useDelegationToken" : true

    ノート:

    委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。

一意の構成パラメータ

schemaInfo

  • 用途: 移行対象のソース・データのスキーマを指定します。このスキーマはNoSQLシンクに渡されます。

  • データ型: オブジェクト
  • 必須(Y/N): N

schemaInfo.schemaObject

  • 用途: 移行対象データのNoSQL表スキーマ定義が格納されるバケット内のオブジェクトの名前を指定します。

  • データ型: 文字列
  • 必須(Y/N): Y
  • 例:
    "schemaInfo": {
      "schemaObject": "mytable/Schema/schema.ddl"
    },

MongoDB形式のJSONファイル

NoSQL Database MigratorのソースとしてのMongoDB形式のJSONファイルの構成ファイル形式を次に示します。

ソース構成テンプレートでファイルまたはディレクトリを指定することで、MongoDBでエクスポートされたJSONデータを移行できます。

MongoDBは、標準モードおよび緩和モードの2種類のファイルのJSON形式に対する拡張をサポートしています。mongoexportツールを使用して正規モードまたは緩和モードで生成されるMongoDB形式のJSONファイルを指定できます。どちらのモードも、移行のためにNoSQL Database Migratorでサポートされています。

MongoDB Extended JSON (v2)ファイルの詳細は、mongoexport_formatsを参照してください。

MongoDB形式のJSONファイルの生成の詳細は、mongoexportを参照してください。

MongoDB形式の緩和モードのJSONファイルの例を次に示します:
{"_id":0,"name":"Aimee Zank","scores":[{"score":1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}

ソース構成テンプレート

"source": {
  "type": "file",
  "format": "mongodb_json",
  "dataPath": "</path/to/json/[file|dir]>",
  "schemaInfo": {
    "schemaPath": "</path/to/schema/file>"
  }
}

ソース・パラメータ

共通の構成パラメータ

  • type

    "type" : "file"を使用します

  • format

    "format" : "mongodb_json"を使用します

一意の構成パラメータ

dataPath

  • 用途: MongoDBにエクスポートされた、移行するJSONデータを含むファイルまたはディレクトリへの絶対パスを指定します。

    mongoexportツールを使用して生成されるMongoDB形式のJSONファイルを指定できます。

    ディレクトリを指定すると、NoSQL Database Migratorによって、そのディレクトリ内の拡張子が.jsonのすべてのファイルが移行対象として識別されます。サブディレクトリはサポートされていません。このデータがシンクで定義されているNoSQL表スキーマと一致することを確認する必要があります。

  • データ型: 文字列
  • 必須(Y/N): Y
  • 例:
    • MongoDB形式のJSONファイルの指定

      "dataPath" : "/home/user/sample.json"

    • ディレクトリの指定

      "dataPath" : "/home/user"

schemaInfo

  • 用途: 移行対象のソース・データのスキーマを指定します。このスキーマはNoSQLシンクに渡されます。

  • データ型: オブジェクト
  • 必須(Y/N): N

schemaInfo.schemaPath

  • 用途: 移行対象のNoSQL表のDDL文を含むスキーマ定義ファイルへの絶対パスを指定します。

  • データ型: 文字列
  • 必須(Y/N): Y
  • 例:
    "schemaInfo" : {
      "schemaPath" : "/home/user/mytable/Schema/schema.ddl"
    }

OCIオブジェクト・ストレージ・バケット内のMongoDB形式のJSONファイル

NoSQL Database MigratorのソースとしてのOCIオブジェクト・ストレージ・バケットのMongoDB形式のJSONファイルの構成ファイル形式を次に示します。

ソース構成テンプレートでバケットの名前を指定することで、OCIオブジェクト・ストレージ・バケットにMongoDBでエクスポートされたJSONデータを移行できます。

mongoexportユーティリティを使用してMongoDBからデータを抽出し、OCIオブジェクト・ストレージ・バケットにアップロードします。詳細は、mongoexportを参照してください。MongoDBは、標準モードおよび緩和モードの2種類のファイルのJSON形式に対する拡張をサポートしています。どちらの形式も、OCIオブジェクト・ストレージ・バケットでサポートされています。

MongoDB形式の緩和モードのJSONファイルの例を次に示します:
{"_id":0,"name":"Aimee Zank","scores":[{"score":1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}

ノート:

OCIオブジェクト・ストレージのソース・タイプの有効なシンク・タイプは、nosqldbおよびnosqldb_cloudです。

ソース構成テンプレート

"source" : {
  "type" : "object_storage_oci",
  "format" : "mongodb_json",
  "endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
  "namespace" : "<OCI Object Storage namespace>",
  "bucket" : "<bucket name>",
  "prefix" : "<object prefix>",
  "schemaInfo" : {
     "schemaObject" : "<object name>"
  },
  "credentials" : "</path/to/oci/config/file>",
  "credentialsProfile" : "<profile name in oci config file>",
  "useInstancePrincipal" : <true|false>
}

ソース・パラメータ

共通の構成パラメータ

  • type

    "type" : "object_storage_oci"を使用します

  • format

    "format" : "mongodb_json"を使用します

  • endpoint
    次に例を示します。
    • リージョンID: "endpoint" : "us-ashburn-1"

    • URL形式: "endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"

  • namespace

    例: "namespace" : "my-namespace"

  • bucket

    例: "bucket" : "my-bucket"

  • prefix
    次に例を示します。
    1. "prefix" : "mongo_export/Data/table.json" (table.jsonのみが移行されます)
    2. "prefix" : "mongo_export/Data" (接頭辞mongo_export/Dataを持つすべてのオブジェクトが移行されます)

    ノート:

    値を指定しない場合、バケット内に存在するすべてのオブジェクトが移行されます。
  • credentials
    次に例を示します。
    1. "credentials" : "/home/user/.oci/config"
    2. "credentials" : "/home/user/security/config"
  • credentialsProfile
    次に例を示します。
    1. "credentialsProfile" : "DEFAULT"
    2. "credentialsProfile" : "ADMIN_USER"
  • useInstancePrincipal

    例: "useInstancePrincipal" : true

一意の構成パラメータ

schemaInfo

  • 用途: 移行対象のソース・データのスキーマを指定します。このスキーマはNoSQLシンクに渡されます。

  • データ型: オブジェクト
  • 必須(Y/N): N

schemaInfo.schemaObject

  • 用途: 移行対象データのNoSQL表スキーマ定義が格納されるバケット内のオブジェクトの名前を指定します。

  • データ型: 文字列
  • 必須(Y/N): Y
  • 例:
    "schemaInfo": {
      "schemaObject": "mytable/Schema/schema.ddl"
    }

AWS S3に格納されたDynamoDB形式のJSONファイル

NoSQL Database MigratorのソースとしてAWS S3にあるDynamoDB形式のJSONファイルの構成ファイル形式を次に示します。

ソース構成テンプレートでパスを指定することで、DynamoDBエクスポートされたJSONデータを含むファイルをAWS S3ストレージから移行できます。

DynamoDB形式のJSONファイルの例を次に示します。
{"Item":{"Id":{"N":"101"},"Phones":{"L":[{"L":[{"S":"555-222"},{"S":"123-567"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"570004"},"Street":{"S":"21 main"},"DoorNum":{"N":"201"},"City":{"S":"London"}}},"FirstName":{"S":"Fred"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"Smith"},"FavColors":{"SS":["Red","Green"]},"Age":{"N":"22"}}}
{"Item":{"Id":{"N":"102"},"Phones":{"L":[{"L":[{"S":"222-222"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"560014"},"Street":{"S":"32 main"},"DoorNum":{"N":"1024"},"City":{"S":"Wales"}}},"FirstName":{"S":"John"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"White"},"FavColors":{"SS":["Blue"]},"Age":{"N":"48"}}}

Amazon S3へのDynamoDB表データのエクスポートに記載された方法に従い、DynamoDB表をAWS S3ストレージにエクスポートする必要があります。

AWS S3に格納されているDynamoDB形式のJSONの有効なシンク・タイプは、nosqldbおよびnosqldb_cloudです。

ソース構成テンプレート
"source" : {
  "type" : "aws_s3",
  "format" : "dynamodb_json",
  "s3URL" : "<S3 object url>",
  "credentials" : "</path/to/aws/credentials/file>",
  "credentialsProfile" : <"profile name in aws credentials file">
}

ソース・パラメータ

共通の構成パラメータ

  • type

    "type" : "aws_s3"を使用します

  • format

    "format" : "dynamodb_json"を使用します

    ノート:

    typeパラメータの値がaws_s3の場合、formatはdynamodb_jsonである必要があります。

一意の構成パラメータ

s3URL

  • 用途: AWS S3に格納されているエクスポートされたDynamoDB表のURLを指定します。このURLは、AWSのS3コンソールから取得できます。有効なURL形式はhttps://<bucket-name>.<s3_endpoint>/<prefix>です。NoSQL Database Migratorは、インポートする接頭辞内でjson.gzファイルを検索します。

    ノート:

    Amazon S3へのDynamoDB表のエクスポートに関する項の説明に従って、DynamoDB表をエクスポートする必要があります。
  • データ型: 文字列
  • 必須(Y/N): Y
  • 例: https://my-bucket.s3.ap-south-1.amazonaws.com/AWSDynamoDB/01649660790057-14f642be

credentials

  • 用途: AWS資格証明を含むファイルへの絶対パスを指定します。指定しない場合は、デフォルトで$HOME/.aws/credentialsに設定されます。資格証明ファイルの詳細は、構成および資格証明ファイルの設定を参照してください。
  • データ型: 文字列
  • 必須(Y/N): N
  • 例:
    "credentials" : "/home/user/.aws/credentials"
    "credentials" : "/home/user/security/credentials

    ノート:

    NoSQL Database Migratorは、資格証明情報をログに記録しません。資格証明ファイルを不正アクセスから適切に保護する必要があります。

credentialsProfile

  • 用途: AWS S3への接続に使用するAWS資格証明ファイルのプロファイルの名前。ユーザー・アカウント資格証明は、プロファイルと呼ばれます。この値を指定しない場合、NoSQL Database Migratordefaultプロファイルを使用します。資格証明ファイルの詳細は、構成および資格証明ファイルの設定を参照してください。
  • データ型: 文字列
  • 必須(Y/N): N
  • 例:
    "credentialsProfile" : "default"
    "credentialsProfile" : "test"

DynamoDB形式のJSONファイル

NoSQL Database MigratorのソースとしてDynamoDB形式のJSONファイルの構成ファイル形式を次に示します。

ソース構成テンプレートでパスを指定することで、DynamoDBがエクスポートしたJSONデータを含むファイルまたはディレクトリをファイル・システムから移行できます。

DynamoDB形式のJSONファイルの例を次に示します。
{"Item":{"Id":{"N":"101"},"Phones":{"L":[{"L":[{"S":"555-222"},{"S":"123-567"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"570004"},"Street":{"S":"21 main"},"DoorNum":{"N":"201"},"City":{"S":"London"}}},"FirstName":{"S":"Fred"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"Smith"},"FavColors":{"SS":["Red","Green"]},"Age":{"N":"22"}}}
{"Item":{"Id":{"N":"102"},"Phones":{"L":[{"L":[{"S":"222-222"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"560014"},"Street":{"S":"32 main"},"DoorNum":{"N":"1024"},"City":{"S":"Wales"}}},"FirstName":{"S":"John"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"White"},"FavColors":{"SS":["Blue"]},"Age":{"N":"48"}}}

エクスポートしたDynamoDB表データをAWS S3ストレージからローカルにマウントされたファイル・システムにコピーする必要があります。

DynamoDB JSONファイルの有効なシンク・タイプは、nosqldbおよびnosqldb_cloudです。

ソース構成テンプレート
"source" : {
  "type" : "file",
  "format" : "dynamodb_json",
  "dataPath" : "<path/to/[file|dir]/containing/exported/DDB/tabledata>"   
}

ソース・パラメータ

共通の構成パラメータ

  • type

    "type" : "file"を使用します

  • format

    "format" : "dynamodb_json"を使用します

一意の構成パラメータ

dataPath

  • 用途: エクスポートされたDynamoDB表データを含むファイルまたはディレクトリへの絶対パスを指定します。エクスポートされたDynamoDB表データをAWS S3からローカルにマウントされたファイル・システムにコピーする必要があります。このデータがシンクで定義されているNoSQL表スキーマと一致することを確認する必要があります。ディレクトリを指定すると、NoSQL Database Migratorによって、そのディレクトリおよびdataサブディレクトリ内の.json.gz拡張子を持つすべてのファイルが識別されます。
  • データ型: 文字列
  • 必須(Y/N): Y
  • 例:
    • ファイルの指定
      "dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3/data/zclclwucjy6v5mkefvckxzhfvq.json.gz"
    • ディレクトリの指定
      "dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3"

Oracle NoSQL Database

NoSQL Database MigratorのソースとしてのOracle NoSQL Databaseの構成ファイル形式を次に示します。

ソース構成テンプレートで表名を指定することで、Oracle NoSQL Databaseから表を移行できます。

サンプルのOracle NoSQL Database表は次のとおりです:
{"id":20,"firstName":"Jane","lastName":"Smith","otherNames":[{"first":"Jane","last":"teacher"}],"age":25,"income":55000,"address":{"city":"San Jose","number":201,"phones":[{"area":608,"kind":"work","number":6538955},{"area":931,"kind":"home","number":9533341},{"area":931,"kind":"mobile","number":9533382}],"state":"CA","street":"Atlantic Ave","zip":95005},"connections":[40,75,63],"expenses":null}
{"id":10,"firstName":"John","lastName":"Smith","otherNames":[{"first":"Johny","last":"chef"}],"age":22,"income":45000,"address":{"city":"Santa Cruz","number":101,"phones":[{"area":408,"kind":"work","number":4538955},{"area":831,"kind":"home","number":7533341},{"area":831,"kind":"mobile","number":7533382}],"state":"CA","street":"Pacific Ave","zip":95008},"connections":[30,55,43],"expenses":null}
{"id":30,"firstName":"Adam","lastName":"Smith","otherNames":[{"first":"Adam","last":"handyman"}],"age":45,"income":75000,"address":{"city":"Houston","number":301,"phones":[{"area":618,"kind":"work","number":6618955},{"area":951,"kind":"home","number":9613341},{"area":981,"kind":"mobile","number":9613382}],"state":"TX","street":"Indian Ave","zip":95075},"connections":[60,45,73],"expenses":null}

ソース構成テンプレート

"source" : {
  "type": "nosqldb",
  "storeName" : "<store name>",
  "helperHosts" : ["hostname1:port1","hostname2:port2,..."],
  "table" : "<fully qualified table name>", 
  "includeTTL": <true|false>,    
  "security" : "</path/to/store/security/file>",
  "requestTimeoutMs" : 5000
}

ソース・パラメータ

共通の構成パラメータ

  • type

    "type" : "nosqldb" を使用します

  • security

    次に例を示します。

    "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
    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
    oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)
  • requestTimeoutMs

    例: "requestTimeoutMs" : 5000

一意の構成パラメータ

storeName

  • 用途: Oracle NoSQL Databaseストアの名前。

  • データ型: 文字列
  • 必須(Y/N): Y
  • 例: "storeName" : "kvstore"

helperHosts

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

  • データ型: 文字列の配列
  • 必須(Y/N): Y
  • 例: "helperHosts" : ["localhost:5000","localhost:6000"]

table

  • 用途: データの移行元の完全修飾表名。

    形式: [namespace_name:]<table_name>

    表がDEFAULTネームスペースにある場合は、namespace_nameを省略できます。この表はストアに存在する必要があります。

  • データ型: 文字列
  • 必須(Y/N): Y
  • 例:
    • DEFAULTネームスペース"table" :"mytable"を使用する場合

    • デフォルト以外のネームスペース"table" : "mynamespace:mytable"を使用する場合

    • 子表"table" : "mytable.child"を指定する場合

includeTTL

  • 用途: Oracle NoSQL Database表のエクスポート時に表行のTTLメタデータを含めるかどうかを指定します。trueに設定すると、行のTTLデータもソースによって提供されるデータに含まれます。TTLは、各行に関連付けられている_metadata JSONオブジェクトに存在します。各行の有効期限は、UNIXエポック(1970年1月1日)以降のミリ秒数としてエクスポートされます。

    このパラメータを指定しない場合、デフォルトはfalseです。

    TTLの正の有効期限値を持つ行のみが、エクスポートされる行の一部として含まれます。行が失効しない場合(つまりTTL=0)、そのTTLメタデータは明示的に含まれません。たとえば、ROW1が2021-10-19 00:00:00に期限切れになり、ROW2が期限切れにならない場合、エクスポートされるデータは次のようになります。
    //ROW1
    {
      "id" : 1,
      "name" : "abc",
      "_metadata" : {
        "expiration" : 1634601600000
      }
    }
    
    //ROW2
    {
      "id" : 2,
      "name" : "xyz"
    }
  • データ型: ブール
  • 必須(Y/N): N
  • 例: "includeTTL" : true

Oracle NoSQL Database Cloud Service

NoSQL Database MigratorのソースとしてのOracle NoSQL Database Cloud Serviceの構成ファイル形式を次に示します。

表がソース構成テンプレートにあるコンパートメントの名前またはOCIDを指定することで、Oracle NoSQL Database Cloud Serviceから表を移行できます。

Oracle NoSQL Database Cloud Service表の例を次に示します。
{"id":20,"firstName":"Jane","lastName":"Smith","otherNames":[{"first":"Jane","last":"teacher"}],"age":25,"income":55000,"address":{"city":"San Jose","number":201,"phones":[{"area":608,"kind":"work","number":6538955},{"area":931,"kind":"home","number":9533341},{"area":931,"kind":"mobile","number":9533382}],"state":"CA","street":"Atlantic Ave","zip":95005},"connections":[40,75,63],"expenses":null}
{"id":10,"firstName":"John","lastName":"Smith","otherNames":[{"first":"Johny","last":"chef"}],"age":22,"income":45000,"address":{"city":"Santa Cruz","number":101,"phones":[{"area":408,"kind":"work","number":4538955},{"area":831,"kind":"home","number":7533341},{"area":831,"kind":"mobile","number":7533382}],"state":"CA","street":"Pacific Ave","zip":95008},"connections":[30,55,43],"expenses":null}
{"id":30,"firstName":"Adam","lastName":"Smith","otherNames":[{"first":"Adam","last":"handyman"}],"age":45,"income":75000,"address":{"city":"Houston","number":301,"phones":[{"area":618,"kind":"work","number":6618955},{"area":951,"kind":"home","number":9613341},{"area":981,"kind":"mobile","number":9613382}],"state":"TX","street":"Indian Ave","zip":95075},"connections":[60,45,73],"expenses":null}

ソース構成テンプレート

"source" : {
  "type" : "nosqldb_cloud",
  "endpoint" : "<Oracle NoSQL Cloud Service endpoint URL or region ID>",
  "table" : "<table name>",
  "compartment" : "<OCI compartment name or id>",
  "credentials" : "<path/to/oci/credential/file>",
  "credentialsProfile" : "<profile name in oci config file>",
  "useInstancePrincipal" : <true|false>,
  "useDelegationToken" : <true|false>,
  "readUnitsPercent" : <table readunits percent>,
  "includeTTL": <true|false>,
  "requestTimeoutMs" : <timeout in milli seconds>
}

ソース・パラメータ

共通の構成パラメータ

  • type

    "type" : "nosqldb_cloud"を使用します

  • endpoint
    次に例を示します。
    • リージョンID: "endpoint" : "us-ashburn-1"

    • URL形式: "endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"

  • credentials
    次に例を示します。
    1. "credentials" : "/home/user/.oci/config"
    2. "credentials" : "/home/user/security/config"
  • credentialsProfile
    次に例を示します。
    1. "credentialsProfile" : "DEFAULT"
    2. "credentialsProfile" : "ADMIN_USER"
  • useInstancePrincipal

    例: "useInstancePrincipal" : true

  • useDelegationToken

    例: "useDelegationToken" : true

    ノート:

    委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。
  • requestTimeoutMs

    例: "requestTimeoutMs" : 5000

一意の構成パラメータ

table

  • 用途: データの移行元となる表の名前。

  • データ型: 文字列
  • 必須(Y/N): Y
  • 例:
    • "table" : "myTable"を指定する場合
    • 子表"table" : "mytable.child"を指定する場合

compartment

  • 用途: 表が存在するコンパートメントの名前またはOCIDを指定します。

    値を指定しない場合は、デフォルトでルート・コンパートメントに設定されます。

    コンパートメントのOCIDは、OCI Cloudコンソールの「Governance」のコンパートメント・エクスプローラ・ウィンドウから確認できます。

  • データ型: 文字列
  • 必須(Y/N): 表がテナンシのルート・コンパートメントにない場合、またはuseInstancePrincipalパラメータがtrueに設定されている場合、Y。

    ノート:

    useInstancePrincipalパラメータがtrueに設定されている場合、コンパートメントは名前ではなくコンパートメントOCIDを指定する必要があります。
  • 例:
    • コンパートメント名

      "compartment" : "mycompartment"

    • 親コンパートメントで修飾されたコンパートメント名

      "compartment" : "parent.childcompartment"

    • 値が未指定。デフォルトはルート・コンパートメントです。

      "compartment": ""

    • コンパートメントOCID

      "compartment" : "ocid1.tenancy.oc1...4ksd"

readUnitsPercent

  • 用途: NoSQL表の移行中に使用される表読取りユニットの割合。

    デフォルト値は90です。有効範囲は1から100の任意の整数です。データの移行に必要な時間は、この属性に正比例します。移行アクティビティの表の読取りスループットを向上させることをお薦めします。移行プロセスの完了後に読取りスループットを減らすことができます。

    スループット変更の日次制限の詳細は、Oracle NoSQL Database Cloud Serviceドキュメントのクラウド制限を参照してください。

    この属性を使用してデータ移行速度を向上させる方法の詳細は、「Oracle NoSQL Database Migratorのトラブルシューティング」を参照してください。

  • データ型: 整数
  • 必須(Y/N): N
  • 例: "readUnitsPercent" : 90

includeTTL

  • 用途: Oracle NoSQL Database表のエクスポート時に表行のTTLメタデータを含めるかどうかを指定します。trueに設定すると、行のTTLデータもソースによって提供されるデータに含まれます。TTLは、各行に関連付けられている_metadata JSONオブジェクトに存在します。各行の有効期限は、UNIXエポック(1970年1月1日)以降のミリ秒数としてエクスポートされます。

    このパラメータを指定しない場合、デフォルトはfalseです。

    TTLの正の有効期限値を持つ行のみが、エクスポートされる行の一部として含まれます。行が失効しない場合(つまりTTL=0)、そのTTLメタデータは明示的に含まれません。たとえば、ROW1が2021-10-19 00:00:00に期限切れになり、ROW2が期限切れにならない場合、エクスポートされるデータは次のようになります。
    //ROW1
    {
      "id" : 1,
      "name" : "abc",
      "_metadata" : {
        "expiration" : 1634601600000
      }
    }
    
    //ROW2
    {
      "id" : 2,
      "name" : "xyz"
    }
  • データ型: ブール
  • 必須(Y/N): N
  • 例: "includeTTL" : true

CSVファイル・ソース

NoSQL Database MigratorのソースとしてのCSVファイルの構成ファイル形式を次に示します。CSVファイルはRFC4180形式に準拠している必要があります。

CSVファイルまたはCSVデータを含むディレクトリを移行するには、ソース構成テンプレートでファイル名またはディレクトリを指定します。

サンプルCSVファイルは次のとおりです。
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"

ソース構成テンプレート

"source" : {
  "type" : "file",
  "format" : "csv",
  "dataPath": "</path/to/a/csv/[file|dir]>",
  "hasHeader" : <true | false>,
  "columns" : ["column1", "column2", ....],
  "csvOptions": {
    "encoding": "<character set encoding>",
    "trim": "<true | false>"
 }
}

ソース・パラメータ

共通の構成パラメータ

  • type

    "type" : "file"を使用します

  • format

    "format" : "csv"を使用します

一意の構成パラメータ

datapath

  • 用途: 移行するCSVデータを含むファイルまたはディレクトリへの絶対パスを指定します。ディレクトリを指定した場合、NoSQL Database Migratorは、そのディレクトリ内の.csvまたは.CSV拡張子を持つすべてのファイルをインポートします。すべてのCSVファイルは単一の表にコピーされますが、特定の順序ではコピーされません。

    CSVファイルは、RFC4180標準に準拠している必要があります。各CSVファイルのデータがシンク表に定義されているNoSQL Database表スキーマと一致することを確認する必要があります。サブディレクトリはサポートされていません。

  • データ型: 文字列
  • 必須(Y/N): Y
  • 例:
    • CSVファイルの指定

      "dataPath" : "/home/user/sample.csv"

    • ディレクトリの指定

      "dataPath" : "/home/user"

ノート:

CSVファイルにはスカラー値のみが含まれている必要があります。MAP、RECORD、ARRAY、JSONなどの複合タイプを含むCSVファイルのインポートはサポートされていません。NoSQL Database Migratorツールは、入力CSVファイルのデータの正確性をチェックしません。NoSQL Database Migratorツールは、RFC4180形式に準拠したCSVデータのインポートをサポートしています。RFC4180標準に準拠していないデータを含むCSVファイルは、正しくコピーされないか、エラーが発生する可能性があります。入力データが破損している場合、NoSQL Database MigratorツールはCSVレコードを解析しません。移行中にエラーが発生した場合、NoSQL Database Migratorツールは、デバッグ目的および情報を得る目的で失敗した入力レコードに関する情報をログに記録します。詳細は、Oracle NoSQL Data Migratorの使用Migratorの進捗状況のロギングを参照してください。

hasHeader

  • 用途: CSVファイルにヘッダーがあるかどうかを指定します。これがtrueに設定されている場合、最初の行は無視されます。falseに設定すると、最初の行はCSVレコードとみなされます。デフォルト値は、falseです。

  • データ型: ブール
  • 必須(Y/N): N
  • 例: "hasHeader" : "false"

columns

  • 用途: NoSQL Database表の列名のリストを指定します。列名の順序は、CSVファイル・フィールドと対応するNoSQL Database表の列のマッピングを示します。入力CSVファイルの列の順序が、既存または新規に作成されたNoSQL Database表の列と一致しない場合は、このパラメータを使用して順序をマップできます。また、アイデンティティ列を含む表にインポートする場合は、columnsパラメータのアイデンティティ列名をスキップできます。

    ノート:

    • NoSQL Database表にCSVファイルで使用できない追加列がある場合、欠落している列の値は、NoSQL Database表に定義されているデフォルト値で更新されます。デフォルト値が指定されていない場合は、移行中にNull値が挿入されます。デフォルト値の詳細は、SQLリファレンス・ガイドデータ型定義の項を参照してください。
    • CSVファイルに、NoSQL Database表で定義されていない追加の列がある場合、追加の列情報は無視されます。
    • CSVレコードのいずれかの値が空の場合、NoSQL Database表の対応する列のデフォルト値に設定されます。デフォルト値が指定されていない場合は、移行中にNull値が挿入されます。
  • データ型: 文字列の配列
  • 必須(Y/N): N
  • 例: "columns" : ["table_column_1", "table_column_2"]

csvOptions

  • 用途: CSVファイルの形式プションを指定します。CSVファイルの文字セット・エンコーディング形式を指定し、空白を切り捨てるかどうかを選択します。

  • データ型: オブジェクト
  • 必須(Y/N): N

csvOptions.encoding

  • 用途: CSVファイルをデコードする文字セットを指定します。デフォルト値はUTF-8です。サポートされている文字セットは、US-ASCII、ISO-8859-1、UTF-8およびUTF-16です。

  • データ型: 文字列
  • 必須(Y/N): N
  • 例: "encoding" : "UTF-8"

csvOptions.trim

  • 用途: CSVフィールド値の先頭および末尾の空白を切り捨てる必要があるかどうかを指定します。デフォルト値は、falseです。

  • データ型: ブール
  • 必須(Y/N): N
  • 例: "trim" : "true"

OCIオブジェクト・ストレージ・バケットのCSVファイル

NoSQL Database MigratorのソースとしてのOCIオブジェクト・ストレージ・バケットのCSVファイルの構成ファイル形式を次に示します。CSVファイルはRFC4180形式に準拠している必要があります。

ソース構成テンプレートでバケットの名前を指定することで、OCIオブジェクト・ストレージ・バケット内のCSVファイルを移行できます。

OCIオブジェクト・ストレージ・バケットのサンプルCSVファイルは、次のとおりです。
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"

ノート:

OCIオブジェクト・ストレージのソース・タイプの有効なシンク・タイプは、nosqldbおよびnosqldb_cloudです。

ソース構成テンプレート

"source" : {
  "type" : "object_storage_oci",
  "format" : "csv",
  "endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
  "namespace" : "<OCI Object Storage namespace>",
  "bucket" : "<bucket name>",
  "prefix" : "<object prefix>",
  "credentials" : "</path/to/oci/config/file>",
  "credentialsProfile" : "<profile name in oci config file>",
  "useInstancePrincipal" : <true|false>,
   "hasHeader" : <true | false>,
   "columns" : ["column1", "column2", ....],
   "csvOptions" : {         
     "encoding" : "<character set encoding>",
     "trim" : <true | false>
   }
 }

ソース・パラメータ

共通の構成パラメータ

  • type

    "type" : "object_storage_oci"を使用します

  • format

    "format" : "csv"を使用します

  • endpoint
    次に例を示します。
    • リージョンID: "endpoint" : "us-ashburn-1"

    • URL形式: "endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"

  • namespace

    例: "namespace" : "my-namespace"

  • bucket

    例: "bucket" : "my-bucket"

    ノート:

    • NoSQL Database Migratorは、.csvまたは.CSV拡張子を持つすべてのファイルをオブジェクト単位でインポートし、同じ順序で単一の表にコピーします。
    • CSVファイルにはスカラー値のみが含まれている必要があります。MAP、RECORD、ARRAY、JSONなどの複合タイプを含むCSVファイルのインポートはサポートされていません。NoSQL Database Migratorツールは、入力CSVファイルのデータの正確性をチェックしません。NoSQL Database Migratorツールは、RFC4180形式に準拠したCSVデータのインポートをサポートしています。RFC4180標準に準拠していないデータを含むCSVファイルは、正しくコピーされないか、エラーが発生する可能性があります。入力データが破損している場合、NoSQL Database MigratorツールはCSVレコードを解析しません。移行中にエラーが発生した場合、NoSQL Database Migratorツールは、デバッグ目的および情報を得る目的で失敗した入力レコードに関する情報をログに記録します。詳細は、Oracle NoSQL Data Migratorの使用Migratorの進捗状況のロギングを参照してください。

  • prefix
    次に例を示します。
    1. "prefix" : "my_table/Data/000000.csv" (000000.csvのみが移行されます)
    2. "prefix" : "my_table/Data" (接頭辞my_table/Dataを持つすべてのオブジェクトが移行されます)
  • credentials
    次に例を示します。
    1. "credentials" : "/home/user/.oci/config"
    2. "credentials" : "/home/user/security/config"
  • credentialsProfile
    次に例を示します。
    1. "credentialsProfile" : "DEFAULT"
    2. "credentialsProfile" : "ADMIN_USER"
  • useInstancePrincipal

    例: "useInstancePrincipal" : true

一意の構成パラメータ

hasHeader

  • 用途: CSVファイルにヘッダーがあるかどうかを指定します。これがtrueに設定されている場合、最初の行は無視されます。falseに設定すると、最初の行はCSVレコードとみなされます。デフォルト値は、falseです。

  • データ型: ブール
  • 必須(Y/N): N
  • 例: "hasHeader" : "false"

columns

  • 用途: NoSQL Database表の列名のリストを指定します。列名の順序は、CSVファイル・フィールドと対応するNoSQL Database表の列のマッピングを示します。入力CSVファイルの列の順序が、既存または新規に作成されたNoSQL Database表の列と一致しない場合は、このパラメータを使用して順序をマップできます。また、アイデンティティ列を含む表にインポートする場合は、columnsパラメータのアイデンティティ列名をスキップできます。

    ノート:

    • NoSQL Database表にCSVファイルで使用できない追加列がある場合、欠落している列の値は、NoSQL Database表に定義されているデフォルト値で更新されます。デフォルト値が指定されていない場合は、移行中にNull値が挿入されます。デフォルト値の詳細は、SQLリファレンス・ガイドデータ型定義の項を参照してください。
    • CSVファイルに、NoSQL Database表で定義されていない追加の列がある場合、追加の列情報は無視されます。
    • CSVレコードのいずれかの値が空の場合、NoSQL Database表の対応する列のデフォルト値に設定されます。デフォルト値が指定されていない場合は、移行中にNull値が挿入されます。
  • データ型: 文字列の配列
  • 必須(Y/N): N
  • 例: "columns" : ["table_column_1", "table_column_2"]

csvOptions

  • 用途: CSVファイルの形式プションを指定します。CSVファイルの文字セット・エンコーディング形式を指定し、空白を切り捨てるかどうかを選択します。

  • データ型: オブジェクト
  • 必須(Y/N): N

csvOptions.encoding

  • 用途: CSVファイルをデコードする文字セットを指定します。デフォルト値はUTF-8です。サポートされている文字セットは、US-ASCII、ISO-8859-1、UTF-8およびUTF-16です。

  • データ型: 文字列
  • 必須(Y/N): N
  • 例: "encoding" : "UTF-8"

csvOptions.trim

  • 用途: CSVフィールド値の先頭および末尾の空白を切り捨てる必要があるかどうかを指定します。デフォルト値は、falseです。

  • データ型: ブール
  • 必須(Y/N): N
  • 例: "trim" : "true"