Oracle NoSQL Database Migratorリファレンス
Parameters
共通の構成パラメータ
次の例は、共通の構成パラメータです。例については、個々の構成テンプレートのセクションを参照してください。
bucket
-
目的: ソース/シンク・オブジェクトを含むOCIオブジェクト・ストレージ・バケットの名前を指定します。
必要なバケットがOCIオブジェクト・ストレージ・インスタンスに存在し、読取り/書込み権限があることを確認してください。
- データ型: 文字列
- 必須(Y/N): Y
chunkSize
-
用途: シンクに格納される表データの
chunk
の最大サイズを指定します。値はMB単位です。移行中、表はchunkSizeのチャンクに分割され、各チャンクは別のファイルとしてシンクに書き込まれます。移行するソース・データがchunkSize値を超過すると、新しいファイルが作成されます。指定しない場合、デフォルトは32MBです。有効な値は1から1024までの整数です。
- データ型: 整数
- 必須(Y/N): N
credentials
-
用途: OCI資格証明を含むファイルへの絶対パスを指定します。NoSQL Database Migratorは、このファイルを使用して、Oracle NoSQL Database Cloud Service、OCIオブジェクト・ストレージなどのOCIサービスに接続します。
デフォルト値は
$HOME/.oci/config
です資格証明ファイルの例は、構成例を参照してください。
ノート:
認証パラメータcredentials、useInstancePrincipalおよびuseDelegationTokenは相互に排他的です。これらのパラメータのうち1つのみを構成テンプレートで指定してください。 - データ型: 文字列
- 必須(Y/N): N
credentialsProfile
-
Purpose: Specifies the name of the configuration profile to be used to connect to the OCI service such as Oracle NoSQL Database Cloud Service, OCI Object Storage, and so on.ユーザー・アカウント資格証明は、プロファイルと呼ばれます。
この値を指定しない場合、NoSQL Database Migratorは
DEFAULT
プロファイルを使用します。ノート:
このパラメータは、credentialsパラメータが指定された場合にのみ有効です。 - データ型: 文字列
- 必須(Y/N): N
endpoint
- 用途: 次のいずれかを指定します:
- OCIオブジェクト・ストレージ・サービスのサービス・エンドポイントURLまたはリージョンID。
OCIオブジェクト・ストレージ・サービス・エンドポイントのリストは、オブジェクト・ストレージ・エンドポイントを参照してください。
- Oracle NoSQL Database Cloud Serviceのサービス・エンドポイントURLまたはリージョンID。
完全なURLまたはリージョンIDのみを指定できます。Oracle NoSQL Database Cloud Serviceでサポートされているデータ・リージョンのリストは、Oracle NoSQL Database Cloud Serviceドキュメントのデータ・リージョンおよび関連するサービスURLを参照してください。
- OCIオブジェクト・ストレージ・サービスのサービス・エンドポイントURLまたはリージョンID。
- データ型: 文字列
- 必須(Y/N): Y
format
- 用途: ソース/シンクの形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
namespace
-
用途: OCIオブジェクト・ストレージ・サービスのネームスペースを指定します。これはオプション・パラメータです。このパラメータを指定しない場合は、テナンシのデフォルト・ネームスペースが使用されます。
- データ型: 文字列
- 必須(Y/N): N
prefix
-
用途: 接頭辞は、OCIオブジェクト・ストレージ・バケットにデータを格納するための論理コンテナまたはディレクトリとして機能します。
- ソース構成テンプレート:
prefix
パラメータが指定されている場合、prefix
パラメータで指定されたディレクトリのすべてのオブジェクトが移行されます。それ以外の場合は、バケットに存在するすべてのオブジェクトが移行されます。 - シンク構成テンプレート:
prefix
パラメータが指定されている場合、指定した接頭辞を持つディレクトリがバケットに作成され、オブジェクトがこのディレクトリに移行されます。それ以外の場合は、ソースの表名が接頭辞として使用されます。バケットに同じ名前のオブジェクトがある場合、そのオブジェクトは上書きされます。
接頭辞の詳細は、接頭辞および階層を使用したオブジェクト・ネーミングに関する項を参照してください。
- ソース構成テンプレート:
- データ型: 文字列
- 必須(Y/N): N
requestTimeoutMs
-
用途: ストアからの各読取り操作およびストアへの各書込み操作が完了するまで待機する時間を指定します。これはミリ秒単位で指定します。デフォルト値は5000です。値には、任意の正の整数を指定できます。
- データ型: 整数
- 必須(Y/N): N
セキュリティ
-
用途: ストアがセキュア・ストアの場合、ストア資格証明を含むセキュリティ・ログイン・ファイルへの絶対パスを指定します。セキュリティ・ログイン・ファイルの詳細は、管理者ガイドのリモート・アクセスでのセキュリティの構成を参照してください。
パスワード・ファイル・ベースの認証またはウォレット・ベースの認証のいずれかを使用できます。ただし、ウォレット・ベースの認証は、Oracle NoSQL DatabaseのEnterprise Edition (EE)でのみサポートされます。ウォレット・ベースの認証の詳細は、「ソースおよびシンク・セキュリティ」を参照してください。
Community Edition (CE)エディションでは、パスワード・ファイル・ベースの認証のみがサポートされます。
- データ型: 文字列
- 必須(Y/N): Y、 for a secure store
タイプ
- 用途: ソース/シンク・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
useDelegationToken
-
目的: NoSQL Database Migratorツールが委任トークン認証を使用してOCIサービスに接続するかどうかを指定します。委任トークン認証を使用して、クラウド・シェルから移行ユーティリティを実行する必要があります。委任トークンは、クラウド・シェルの起動時にユーザーに対して自動的に作成されます。
デフォルト値は
false
です。 - データ型: boolean
- 必須(Y/N): N
ノート:
- 委任トークンを使用した認証は、NoSQL Database Migratorツールがクラウド・シェルから実行されている場合にのみサポートされます。
- 認証パラメータcredentials、useInstancePrincipalおよびuseDelegationTokenは相互に排他的です。これらのパラメータのうち1つのみを構成テンプレートで指定してください。
- クラウド・シェルでは、次のソースとシンク間の移行のみがサポートされます:
タイプ 有効なソース 有効なシンク Oracle NoSQL Database Cloud Service
(
nosqldb_cloud
)はい はい ファイル(ホーム・ディレクトリのJSONファイル) はい はい OCIオブジェクト・ストレージ(JSONファイル)
(
object_storage_oci
)はい はい OCIオブジェクト・ストレージ(Parquetファイル)
(
object_storage_oci
)N はい
useInstancePrincipal
-
用途: NoSQLデータベース・マイグレータ・ツールでインスタンス・プリンシパル認証を使用して、Oracle NoSQL Database Cloud Service、OCIオブジェクト・ストレージなどのOCIサービスに接続します。Instance Principal認証方法の詳細は、ソースとシンクのセキュリティを参照してください。
デフォルト値は
false
です。ノート:
- Instance Principalsでの認証は、OCIコンピュート・インスタンス内でNoSQL Database Migratorツールが実行されている場合にのみサポートされます。たとえば、OCIでホストされているVMで実行されているNoSQL Database Migratorツールなどです。
- 認証パラメータcredentials、useInstancePrincipalおよびuseDelegationTokenは相互に排他的です。これらのパラメータのうち1つのみを構成テンプレートで指定してください。
- データ型: boolean
- 必須(Y/N): N
ソース構成テンプレート
有効な各ソースのソース構成ファイル書式および各構成パラメータの用途について学習します。
構成ファイル・テンプレートについては、「NoSQLデータ・マイグレータで使用される用語」の「構成ファイル」を参照してください。
各ソースの有効なシンク形式の詳細は、シンク構成テンプレートを参照してください。
トピック
次のトピックでは、特定のソースのデータを有効なシンクにコピーするためにOracle NoSQL Database Migratorによって参照されるソース構成テンプレートについて説明します。
- JSONファイル・ソース
JSONデータを含む指定されたファイルまたはディレクトリ。
- OCIオブジェクト・ストレージ・バケットのJSONファイル
OCIオブジェクト・ストレージ・バケット内の指定されたJSONファイル。
- MongoDB- フォーマット済JSONファイル
MongoDB形式のJSONデータを含む指定されたファイルまたはディレクトリ。
- MongoDB-OCIオブジェクト・ストレージ・バケット内のフォーマット済JSONファイル
OCIオブジェクト・ストレージ・バケットに格納されている指定されたMongoDBエクスポート済JSONファイル。
- DynamoDB-AWS S3に格納されたフォーマット済JSONファイル
AWS S3ストレージに格納されている指定されたDynamoDBエクスポート済JSONファイル。
- DynamoDB- フォーマット済JSONファイル
ファイル・システムから指定されたDynamoDBでエクスポートされたJSONファイル。
- Oracle NoSQL Database
Oracle NoSQL Databaseで指定された表。
- Oracle NoSQL Database Cloud Service
Oracle NoSQL Database Cloud Serviceで指定された表。
- CSVファイル・ソース
CSVデータを含む指定されたファイルまたはディレクトリ。
- OCIオブジェクト・ストレージ・バケットのCSVファイル
OCIオブジェクト・ストレージ・バケット内の指定されたCSVファイル。
JSONファイル・ソース
NoSQLデータベース・マイグレータのソースとしての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>"
}
},
ソース・パラメータ
共通の構成パラメータ
一意の構成パラメータ
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ファイルを移行できます。
{"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" : "object_storage_oci"
の使用 - フォーマット
"format" : "json"
を使用します - エンドポイント次に例を示します:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
- ネームスペース
例:
"namespace" : "my-namespace"
- bucket
例:
"bucket" : "my-bucket"
- 接頭辞次に例を示します:
"prefix" : "my_table/Data/000000.json"
(000000.json
のみが移行されます)"prefix" : "my_table/Data"
(接頭辞my_table/Data
を持つすべてのオブジェクトが移行されます)
- 資格証明次に例を示します:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
- credentialsProfile次に例を示します:
"credentialsProfile" : "DEFAULT"
"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データベース・マイグレータのソースとしてのMongoDB形式のJSONファイルの構成ファイル形式を次に示します。
MongoDBでエクスポートされたJSONデータを移行するには、ソース構成テンプレートでファイルまたはディレクトリを指定します。
MongoDBは、標準モードおよび緩和モードの2種類のファイルのJSON形式に対する拡張をサポートしています。モンゴエクスポート・ツールを使用して正規モードまたは緩和モードで生成されるMongoDB形式のJSONファイルを指定できます。どちらのモードも、移行のためにNoSQL Database Migratorでサポートされています。
MongoDB Extended JSON (v2)ファイルの詳細は、mongoexport_formatsを参照してください。
MongoDB形式のJSONファイルの生成の詳細は、mongoexportを参照してください。
{"_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>"
}
}
ソース・パラメータ
共通の構成パラメータ
一意の構成パラメータ
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" }
MongoDB-OCIオブジェクト・ストレージ・バケット内のフォーマット済JSONファイル
NoSQL Database MigratorのソースとしてのOCIオブジェクト・ストレージ・バケットのMongoDB形式のJSONファイルの構成ファイル形式を次に示します。
MongoDBでエクスポートされたJSONデータをOCIオブジェクト・ストレージ・バケットに移行するには、ソース構成テンプレートでバケットの名前を指定します。
モンゴエクスポート・ユーティリティを使用してMongoDBからデータを抽出し、OCIオブジェクト・ストレージ・バケットにアップロードします。詳細は、mongoexportを参照してください。MongoDBは、標準モードおよび緩和モードの2種類のファイルのJSON形式に対する拡張をサポートしています。どちらの形式も、OCIオブジェクト・ストレージ・バケットでサポートされています。
{"_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" : "object_storage_oci"
の使用 - フォーマット
"format" : "mongodb_json"
を使用します - エンドポイント次に例を示します:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
- ネームスペース
例:
"namespace" : "my-namespace"
- bucket
例:
"bucket" : "my-bucket"
- 接頭辞次に例を示します:
"prefix" : "mongo_export/Data/table.json"
(table.json
のみが移行されます)"prefix" : "mongo_export/Data"
(接頭辞mongo_export/Data
を持つすべてのオブジェクトが移行されます)
ノート:
値を指定しない場合、バケット内に存在するすべてのオブジェクトが移行されます。 - 資格証明次に例を示します:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
- credentialsProfile次に例を示します:
"credentialsProfile" : "DEFAULT"
"credentialsProfile" : "ADMIN_USER"
- useInstancePrincipal
例:
"useInstancePrincipal" : true
一意の構成パラメータ
schemaInfo
-
用途: 移行対象のソース・データのスキーマを指定します。このスキーマはNoSQLシンクに渡されます。
- データ型: オブジェクト
- 必須(Y/N): N
schemaInfo.schemaObject
-
用途: 移行対象データのNoSQL表スキーマ定義が格納されるバケット内のオブジェクトの名前を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" }
DynamoDB-AWS S3に格納されたフォーマット済JSONファイル
NoSQLデータベース・マイグレータのソースとしてAWS S3にあるDynamoDB形式のJSONファイルの構成ファイル形式を次に示します。
DynamoDBエクスポートされたJSONデータを含むファイルは、ソース構成テンプレートでパスを指定することで、AWS S3ストレージから移行できます。
{"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" : "aws_s3"
を使用します - フォーマット
"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
ファイルを検索します。ノート:
DynamoDB表のAmazon S3へのエクスポートに関する項の説明に従って、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 Migratorは
default
プロファイルを使用します。資格証明ファイルの詳細は、構成および資格証明ファイルの設定を参照してください。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentialsProfile" : "default" "credentialsProfile" : "test"
DynamoDB- フォーマット済JSONファイル
NoSQLデータベース・マイグレータのソースとして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>"
}
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移行元のソースとしての 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" : "nosqldb"
を使用します - セキュリティ
次に例を示します:
"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"]
表
-
用途: データの移行元の完全修飾表名。
形式:
[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" }
- データ型: boolean
- 必須(Y/N): N
- 例:
"includeTTL" : true
Oracle NoSQL Database Cloud Service
NoSQL Database移行元のソースとしての Oracle NoSQL Database Cloud Serviceの構成ファイル形式を次に示します。
Oracle NoSQL Database Cloud Serviceから表を移行するには、表がソース構成テンプレートにあるコンパートメントの名前またはOCIDを指定します。
{"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" : "nosqldb_cloud"
の使用 - エンドポイント次に例を示します:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
- 資格証明次に例を示します:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
- credentialsProfile次に例を示します:
"credentialsProfile" : "DEFAULT"
"credentialsProfile" : "ADMIN_USER"
- useInstancePrincipal
例:
"useInstancePrincipal" : true
- useDelegationToken
例:
"useDelegationToken" : true
ノート:
委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。 - requestTimeoutMs
例:
"requestTimeoutMs" : 5000
一意の構成パラメータ
表
-
用途: データの移行元となる表の名前。
- データ型: 文字列
- 必須(Y/N): Y
- 例:
- 表
"table" : "myTable"
を指定する場合 - 子表
"table" : "mytable.child"
を指定する場合
- 表
コンパートメント
-
用途: 表が存在するコンパートメントの名前またはOCIDを指定します。
値を指定しない場合は、デフォルトでルートコンパートメントに設定されます。
コンパートメントのOCIDは、OCI Cloudコンソールの「ガバナンス」の「コンパートメント・エクスプローラ」ウィンドウから確認できます。
- データ型: 文字列
- 必須(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 Cloud Service表のエクスポート時に表行の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" }
- データ型: boolean
- 必須(Y/N): N
- 例:
"includeTTL" : true
CSVファイル・ソース
NoSQL Database MigratorのソースとしてのCSVファイルの構成ファイル形式を次に示します。CSVファイルはRFC4180
形式に準拠している必要があります。
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>"
}
}
ソース・パラメータ
共通の構成パラメータ
一意の構成パラメータ
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移行ツールは、入力CSVファイル内のデータの正確性をチェックしません。NoSQL Database Migratorツールは、RFC4180
形式に準拠したCSVデータのインポートをサポートしています。RFC4180
標準に準拠していないデータを含むCSVファイルは、正しくコピーされないか、エラーが発生する可能性があります。入力データが破損している場合、NoSQL Database MigratorツールではCSVレコードは解析されません。移行中にエラーが発生した場合、NoSQL Database Migratorツールは、デバッグ目的および情報を得る目的で失敗した入力レコードに関する情報をログに記録します。詳細は、「Oracle NoSQLデータ・マイグレータの使用」の「ミグレータの進捗度のロギング」を参照してください。
hasHeader
-
用途: CSVファイルにヘッダーがあるかどうかを指定します。これが
true
に設定されている場合、最初の行は無視されます。false
に設定すると、最初の行はCSVレコードとみなされます。デフォルト値はfalse
です。 - データ型: ブール
- 必須(Y/N): N
-
例:
"hasHeader" : "false"
列
-
用途: 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ファイルを移行できます。
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" : "object_storage_oci"
の使用 - フォーマット
"format" : "csv"
を使用します - エンドポイント次に例を示します:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
- ネームスペース
例:
"namespace" : "my-namespace"
- bucket
例:
"bucket" : "my-bucket"
ノート:
- NoSQL Database Migratorは、.
csv
または.CSV
拡張子を持つすべてのファイルをオブジェクト単位でインポートし、同じ順序で単一の表にコピーします。 -
CSVファイルにはスカラー値のみが含まれている必要があります。MAP、RECORD、ARRAY、JSONなどの複合タイプを含むCSVファイルのインポートはサポートされていません。NoSQL Database移行ツールは、入力CSVファイル内のデータの正確性をチェックしません。NoSQL Database Migratorツールは、
RFC4180
形式に準拠したCSVデータのインポートをサポートしています。RFC4180
標準に準拠していないデータを含むCSVファイルは、正しくコピーされないか、エラーが発生する可能性があります。入力データが破損している場合、NoSQL Database MigratorツールではCSVレコードは解析されません。移行中にエラーが発生した場合、NoSQL Database Migratorツールは、デバッグ目的および情報を得る目的で失敗した入力レコードに関する情報をログに記録します。詳細は、「Oracle NoSQLデータ・マイグレータの使用」の「ミグレータの進捗度のロギング」を参照してください。
- NoSQL Database Migratorは、.
- 接頭辞次に例を示します:
"prefix" : "my_table/Data/000000.csv"
(000000.csv
のみが移行されます)"prefix" : "my_table/Data"
(接頭辞my_table/Data
を持つすべてのオブジェクトが移行されます)
- 資格証明次に例を示します:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
- credentialsProfile次に例を示します:
"credentialsProfile" : "DEFAULT"
"credentialsProfile" : "ADMIN_USER"
- useInstancePrincipal
例:
"useInstancePrincipal" : true
一意の構成パラメータ
hasHeader
-
用途: CSVファイルにヘッダーがあるかどうかを指定します。これが
true
に設定されている場合、最初の行は無視されます。false
に設定すると、最初の行はCSVレコードとみなされます。デフォルト値はfalse
です。 - データ型: ブール
- 必須(Y/N): N
-
例:
"hasHeader" : "false"
列
-
用途: 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"
シンク構成テンプレート
有効な各シンク用のシンク構成ファイル形式および各構成パラメータの用途について学習します。
トピック
次のトピックでは、有効なソースのデータを特定のシンクにコピーするためにOracle NoSQL Database Migratorによって参照されるシンク構成テンプレートについて説明します。
- JSONファイル・シンク
指定されたJSONファイル。
- Parquetファイル
指定されたディレクトリ内のParquetファイル。
- OCIオブジェクト・ストレージ・バケットのJSONファイル
指定されたOCIオブジェクト・ストレージ・バケット内のJSONファイル。
- OCIオブジェクト・ストレージ・バケットのパーケット・ファイル
指定されたOCIオブジェクト・ストレージ・バケット内のParquetファイル。
- Oracle NoSQL Database
Oracle NoSQL Databaseで指定された表。
- Oracle NoSQL Database Cloud Service
Oracle NoSQL Database Cloud Serviceで指定された表。
JSONファイル・シンク
NoSQL Database Migratorのシンクとしての JSONファイルの構成ファイル形式を次に示します。
シンク構成テンプレート
"sink" : {
"type" : "file",
"format" : "json",
"dataPath": "</path/to/a/file>",
"schemaPath" : "<path/to/a/file>",
"pretty" : <true|false>,
"useMultiFiles" : <true|false>,
"chunkSize" : <size in MB>
}
シンク・パラメータ
共通の構成パラメータ
- 種類
"type" : "file"
を使用します - フォーマット
"format" : "json"
を使用します - chunkSize
例:
"chunkSize" : 40
ノート:
このパラメータを適用できるのは、useMultiFilesパラメータがtrueに設定されている場合のみです。
一意の構成パラメータ
dataPath
-
用途: ソース・データをJSON形式でコピーするファイルへの絶対パスを指定します。
指定されたデータ・パスにファイルが存在しない場合は、NoSQL Database Migratorによって作成されます。存在する場合は、NoSQL Database Migratorによってその内容がソース・データで上書きされます。
データ・パス内の親ディレクトリが、指定したファイルに対して有効であることを確認する必要があります。
ノート:
useMultiFilesパラメータがtrueに設定されている場合、ディレクトリへのパスを指定し、それ以外の場合はファイルへのパスを指定します。 - データ型: 文字列
- 必須(Y/N): Y
-
例:
- useMultiFilesパラメータがtrueに設定されている場合
"dataPath" :"
/home/user/data
" - useMultiFilesパラメータが指定されていない場合、またはfalseに設定されている場合
"dataPath" :"
/home/user/sample.json
"
- useMultiFilesパラメータがtrueに設定されている場合
schemaPath
-
用途: ソースによって提供される表スキーマ情報を書き込むファイルへの絶対パスを指定します。
この値を定義しないと、ソース・スキーマ情報はシンクに移行されません。この値を指定すると、マイグレータ・ユーティリティによって、ここで指定したファイルにソース表のスキーマが書き込まれます。
スキーマ情報は、このファイルの行ごとに1つのDDLコマンドとして書き込まれます。指定されたデータ・パスにファイルが存在しない場合は、NoSQL Database Migratorによって作成されます。すでに存在する場合は、NoSQL Database Migratorによってその内容がソース・データで上書きされます。データ・パス内の親ディレクトリが、指定したファイルに対して有効であることを確認する必要があります。
- データ型: 文字列
- 必須(Y/N): N
-
例:
"schemaPath" : "/home/user/schema_file"
みりょくて
-
用途: JSON出力を整形して読みやすくするかどうかを指定します。
指定しなかった場合は、デフォルトでFalseに設定されます。
- データ型: boolean
- 必須(Y/N): N
-
例:
"pretty" : true
useMultiFiles
-
用途: ファイルへのソース・データの移行時に、NoSQL表データを複数のファイルに分割するかどうかを指定します。
指定しなかった場合は、デフォルトでFalseに設定されます。
trueに設定すると、ソース・データをファイルに移行するときに、NoSQL表データが複数の小さいファイルに分割されます。たとえば、
<chunk>.json
です(chunk=00,0,0,0,0,0,0、、0、、0、、0、、0、、、など)。dataPath |--000000.json |--000001.json
- データ型: boolean
- 必須(Y/N): N
-
例:
"useMultiFiles" : true
Parquetファイル
NoSQL Database MigratorのシンクとしてのParquetファイルの構成ファイル形式を次に示します。
シンク構成テンプレート
"sink" : {
"type" : "file",
"format" : "parquet",
"dataPath": "</path/to/a/dir>",
"chunkSize" : <size in MB>,
"compression": "<SNAPPY|GZIP|NONE>",
"parquetOptions": {
"useLogicalJson": <true|false>,
"useLogicalEnum": <true|false>,
"useLogicalUUID": <true|false>,
"truncateDoubleSpecials": <true|false>
}
}
シンク・パラメータ
共通の構成パラメータ
一意の構成パラメータ
dataPath
-
用途: 移行されたNoSQL表データを格納するためのディレクトリへのパスを指定します。ディレクトリがすでに存在し、読取り権限および書込み権限があることを確認します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"dataPath" : "/home/user/migrator/my_table"
圧縮
-
用途: Parquetデータを圧縮するために使用する圧縮タイプを指定します。有効な値は、SNAPPY、GZIPおよびNONEです。
指定しない場合は、デフォルトでSNAPPYに設定されます。
- データ型: 文字列
- 必須(Y/N): N
-
例:
"compression" : "GZIP"
parquetOptions
-
用途: NoSQL ENUM、JSONおよびUUID列のParquet論理型を選択するオプションを指定します。
このパラメータを指定しない場合、NoSQL Database Migratorは、ENUM、JSONおよびUUID列のデータを文字列として書き込みます。
- データ型: オブジェクト
- 必須(Y/N): N
parquetOptions.useLogicalJson
-
用途: NoSQL JSON列データをParquet論理JSON型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoSQL JSON列データを文字列として書き込みます。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useLogicalJson" : true
parquetOptions.useLogicalEnum
-
用途: NoSQL ENUM列データをParquet論理ENUM型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoSQL ENUM列データを文字列として書き込みます。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useLogicalEnum" : true
parquetOptions.useLogicalUUID
-
用途: NoSQL UUID列データをParquet論理UUID型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoSQL UUID列データを文字列として書き込みます。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
用途: doubleの+Infinity、-InfinityおよびNaN値を切り捨てるかどうかを指定します。
デフォルトでは、false
に設定されています。true
に設定されている場合、- Positive_InfinityはDouble.MAX_VALUEに切り捨てられます。
- NEGATIVE_INFINITYは-Double.MAX_VALUEに切り捨てられます。
- NaNは9.9999999999999990E307に切り捨てられます。
- データ型: boolean
- 必須(Y/N): N
-
例:
"truncateDoubleSpecials" : true
OCIオブジェクト・ストレージ・バケットのJSONファイル
NoSQL Database MigratorのシンクとしてのOCIオブジェクト・ストレージ・バケットのJSONファイルの構成ファイル形式を次に示します。
ノート:
シンクとしてのOCIオブジェクト・ストレージの有効なソース・タイプは、nosqldb
およびnosqldb_cloud
です。
シンク構成テンプレート
"sink" : {
"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>",
"chunkSize" : <size in MB>,
"pretty" : <true|false>,
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>
}
シンク・パラメータ
共通の構成パラメータ
- 種類
"type" : "object_storage_oci"
の使用 - フォーマット
"format" : "json"
を使用します - エンドポイント次に例を示します:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
- ネームスペース
例:
"namespace" : "my-namespace"
- bucket
例:
"bucket" : "my-bucket"
- 接頭辞
スキーマが
<prefix>/Schema/schema.ddl
ファイルに移行され、ソース・データが<prefix>/Data/<chunk>.json
ファイルに移行されます(chunk=000000.json、000001.jsonなど)。次に例を示します:"prefix" : "my_export"
"prefix" : "my_export/2021-04-05/"
- chunkSize
例:
"chunkSize" : 40
- 資格証明次に例を示します:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
- credentialsProfile次に例を示します:
"credentialsProfile" : "DEFAULT"
"credentialsProfile" : "ADMIN_USER"
- useInstancePrincipal
例:
"useInstancePrincipal" : true
- useDelegationToken
例:
"useDelegationToken" : true
ノート:
委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。
一意の構成パラメータ
pretty
-
用途: JSON出力を整形して読みやすくするかどうかを指定します。
指定しなかった場合は、デフォルトでFalseに設定されます。
- データ型: boolean
- 必須(Y/N): N
-
例:
"pretty" : true
OCIオブジェクト・ストレージ・バケットのパーケット・ファイル
NoSQL Database MigratorのシンクとしてのOCIオブジェクト・ストレージ・バケットのParquetファイルの構成ファイル形式を次に示します。
ノート:
OCIオブジェクト・ストレージのソース・タイプの有効なソース・タイプは、nosqldb
およびnosqldb_cloud
です。
シンク構成テンプレート
"sink" : {
"type" : "object_storage_oci",
"format" : "parquet",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"chunkSize" : <size in MB>,
"compression": "<SNAPPY|GZIP|NONE>",
"parquetOptions": {
"useLogicalJson": <true|false>,
"useLogicalEnum": <true|false>,
"useLogicalUUID": <true|false>,
"truncateDoubleSpecials": <true|false>
},
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>
}
シンク・パラメータ
共通の構成パラメータ
- 種類
"type" : "object_storage_oci"
の使用 - フォーマット
"format" : "parquet"
を使用します - エンドポイント次に例を示します:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
- ネームスペース
例:
"namespace" : "my-namespace"
- bucket
例:
"bucket" : "my-bucket"
- 接頭辞
ソース・データは、
<prefix>/Data/<chunk>.parquet
ファイル(chunk=00000.parquet、000001.parquetなど)に移行されます。次に例を示します:"prefix" : "my_export"
"prefix" : "my_export/2021-04-05/"
- chunkSize
例:
"chunkSize" : 40
- 資格証明次に例を示します:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
- credentialsProfile次に例を示します:
"credentialsProfile" : "DEFAULT"
"credentialsProfile" : "ADMIN_USER"
- useInstancePrincipal
例:
"useInstancePrincipal" : true
- useDelegationToken
例:
"useDelegationToken" : true
ノート:
委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。
一意の構成パラメータ
圧縮
-
用途: Parquetデータを圧縮するために使用する圧縮タイプを指定します。有効な値は、SNAPPY、GZIPおよびNONEです。
指定しない場合は、デフォルトでSNAPPYに設定されます。
- データ型: 文字列
- 必須(Y/N): N
-
例:
"compression" : "GZIP"
parquetOptions
-
用途: NoSQL ENUM、JSONおよびUUID列のParquet論理型を選択するオプションを指定します。
このパラメータを指定しない場合、NoSQL Database Migratorは、ENUM、JSONおよびUUID列のデータを文字列として書き込みます。
- データ型: オブジェクト
- 必須(Y/N): N
parquetOptions.useLogicalJson
-
用途: NoSQL JSON列データをParquet論理JSON型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoSQL JSON列データを文字列として書き込みます。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useLogicalJson" : true
parquetOptions.useLogicalEnum
-
用途: NoSQL ENUM列データをParquet論理ENUM型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoSQL ENUM列データを文字列として書き込みます。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useLogicalEnum" : true
parquetOptions.useLogicalUUID
-
用途: NoSQL UUID列データをParquet論理UUID型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoSQL UUID列データを文字列として書き込みます。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
用途: doubleの+Infinity、-InfinityおよびNaN値を切り捨てるかどうかを指定します。
デフォルトでは、false
に設定されています。true
に設定されている場合、- Positive_InfinityはDouble.MAX_VALUEに切り捨てられます。
- NEGATIVE_INFINITYは-Double.MAX_VALUEに切り捨てられます。
- NaNは9.9999999999999990E307に切り捨てられます。
- データ型: boolean
- 必須(Y/N): N
-
例:
"truncateDoubleSpecials" : true
Oracle NoSQL Database
NoSQL Database移行者のシンクとしての Oracle NoSQL Databaseの構成ファイル形式を次に示します。
シンク構成テンプレート
"sink" : {
"type": "nosqldb",
"storeName" : "<store name>",
"helperHosts" : ["hostname1:port1","hostname2:port2,..."],
"security" : "</path/to/store/credentials/file>",
"table" : "<fully qualified table name>",
"includeTTL": <true|false>,
"ttlRelativeDate": "<date-to-use in UTC>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>",
"defaultSchema" : <true|false>,
"useSourceSchema" : <true|false>,
"DDBPartitionKey" : <"name:type">,
"DDBSortKey" : "<name:type>"
},
"overwrite" : <true|false>,
"requestTimeoutMs" : <timeout in milli seconds>
}
シンク・パラメータ
共通の構成パラメータ
- 種類
"type" : "nosqldb"
を使用します - セキュリティ
次に例を示します:
"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"]
表
-
用途: 移行されたデータを格納する表名を指定します。
形式:
[namespace_name:]<table_name>
表がDEFAULTネームスペースにある場合は、
namespace_name
を省略できます。移行時に表が存在し、そのスキーマがソース・データと一致している必要があります。シンクで表を使用できない場合は、
schemaInfo
パラメータを使用して、シンクに表を作成するようにNoSQL Database Migratorに指示できます。 - データ型: 文字列
- 必須(Y/N): Y
- 例:
-
DEFAULTネームスペース
"table" :"mytable"
-
デフォルト以外のネームスペース
"table" : "mynamespace:mytable"
を使用 -
子表
"table" : "mytable.child"
を指定する場合ノート:
有効なデータ・ソースからOracle NoSQL Databaseに子表を移行できます。NoSQL Database Migratorでは、実行ごとに1つの表のみをコピーします。親表が子表の前に移行されていることを確認します。
-
includeTTL
-
用途: Oracle NoSQL Database表のインポート時にソースによって提供される表の行のTTLメタデータを含めるかどうかを指定します。
このパラメータを指定しない場合、デフォルトは
false
です。この場合、NoSQL Database Migratorには、Oracle NoSQL Database表のインポート時にソースによって提供される表の行のTTLメタデータは含まれません。trueに設定すると、NoSQL Database Migratorツールは、表の行のインポート時にTTLメタデータに対して次のチェックを実行します。_metadata
定義を持たない行をインポートすると、NoSQL Database MigratorツールはTTLを0に設定します。これは、行が期限切れにならないことを意味します。_metadata
定義を持つ行をインポートすると、NoSQL Database Migratorツールは、行がインポートされたときにTTL値を参照します。参照時間に対してすでに失効している行はスキップされます。行が失効していない場合は、TTL値とともにインポートされます。デフォルトでは、インポート操作の参照時間は、NoSQLデータベース・マイグレータ・ツールが実行されているマシンのSystem.currentTimeMillis()から取得された現在の時間(ミリ秒)です。ただし、失効時間を延長し、延長しなければすぐに期限切れになる行をインポートする場合は、ttlRelativeDate
構成パラメータを使用してカスタム参照時間を設定することもできます。行の有効期限を計算する式は次のとおりです。expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
ノート:
Oracle NoSQL TTLの境界は時間および日数であるため、場合によっては、インポートされた行のTTLが直近の時間または日に調整される可能性があります。たとえば、失効値が1629709200000 (2021-08-23 09:00:00)
で、参照時間値が1629707962582 (2021-08-23 08:39:22)
の行について考えてみます。ここでは、このデータのインポート時に参照時間に対して行が失効しない場合でも、その行の新しいTTLは1629712800000 (2021-08-23 10:00:00)
です。
- データ型: boolean
- 必須(Y/N): N
- 例:
"includeTTL" : true
ttlRelativeDate
-
用途: Oracle NoSQL Databaseへのインポート中の表の行のTTL失効の設定に使用されるYYYY-MM-DD hh:mm:ss形式でUTC日付を指定します。
エクスポートするデータの表の行が期限切れになった場合は、ttlRelativeDateパラメータに、エクスポートしたデータの表の行の有効期限より前の日付を設定できます。
このパラメータを指定しない場合は、NoSQL Database Migratorツールが実行されているマシンのSystem.currentTimeMillis()から取得された現在の時間がミリ秒単位でデフォルト設定されます。
- データ型: date
- 必須(Y/N): N
- 例:
"ttlRelativeDate" : "2021-01-03 04:31:17"
表の行が2021年1月1日から7日後に失効するシナリオについて検討します。この表をエクスポートした後、2021年1月7日に、表の問題が発生し、データをインポートすることにしました。表の行は1日で失効します(データ有効期限から現在の日付であるttlRelativedate構成パラメータのデフォルト値を引いた値)。ただし、表の行の有効期限を1日ではなく5日に延長する場合は、ttlRelativeDateパラメータを使用して前の日付を選択します。したがって、このシナリオでは、表の行の有効期限を5日延長する場合、ttlRelativeDate構成パラメータの値を2021年1月3日に設定します。これは、表の行がインポートされるときに参照時間として使用されます。
Schemainfo
-
用途: 移行対象データのスキーマを指定します。これが指定されていない場合、NoSQL Database Migratorは、表がシンクのストアにすでに存在します。
- データ型: オブジェクト
- 必須(Y/N): N
schemaInfo.schemaPath
-
用途: NoSQL表のDDL文を含むファイルへの絶対パスを指定します。
NoSQL Database Migratorは、データを移行する前に、このファイルにリストされているDDLコマンドを実行します。
NoSQL Database Migratorでは、
schemaPath
ファイルの行ごとに複数のDDL文をサポートしていません。 -
データ型: 文字列
-
必須(Y/N): N
ノート:
defaultSchema
とschemaPath
は相互に排他的です。 -
例:
"schemaPath" : "/home/user/schema_file"
schemaInfo.defaultSchema
-
用途: このパラメータをtrueに設定すると、NoSQL Database Migratorではデフォルト・スキーマを使用して表が作成されます。デフォルト・スキーマは、マイグレータ自体によって定義されます。デフォルト・スキーマ定義の詳細は、Oracle NoSQLデータ・マイグレータの使用のデフォルト・スキーマを参照してください。
-
データ型: boolean
-
必須(Y/N): N
ノート:
defaultSchema
とschemaPath
は相互に排他的です。
schemaInfo.useSourceSchema
-
用途: NoSQL表の移行時にソースによって提供される表スキーマ定義のシンクを使用するかどうかを指定します。
-
データ型: boolean
- 必須(Y/N): N
ノート:
defaultSchema、schemaPathおよびuseSourceSchemaパラメータは相互に排他的です。これらのパラメータのうち1つのみを指定してください。 - 例:
- デフォルト・スキーマを使用:
"schemaInfo" : { "defaultSchema" : true }
- 事前定義済のスキーマを使用:
"schemaInfo" : { "schemaPath" : "<complete/path/to/the/schema/definition/file>" }
- ソース・スキーマを使用:
"schemaInfo" : { "useSourceSchema" : true }
- デフォルト・スキーマを使用:
schemaInfo.DDBPartitionKey
- 用途: シンクのOracle NoSQL Database表で使用するDynamoDBパーティション・キーおよび対応するOracle NoSQL Database型を指定します。このキーは、NoSQL DB表のシャード・キーとして使用されます。これは、
defaultSchema
がtrueに設定され、ソースの形式がdynamodb_json
の場合にのみ適用されます。詳細は、「DynamoDB型からOracle NoSQL型へのマッピング」 を参照してください。 - 必須(Y/N):
defaultSchema
がtrueで、ソースがdynamodb_json
の場合、Y。 - 例:
"DDBPartitionKey" : "PersonID:INTEGER"
ノート:
パーティション・キーにダッシュ(-)またはドット(.)が含まれている場合、NoSQL列名ではドットとダッシュがサポートされていないため、マイグレータはそれをアンダースコア(_)に置き換えます。
schemaInfo.DDBSortKey
- 用途: ターゲットのOracle NoSQL Database表で使用するDynamoDBソート・キーおよび対応するOracle NoSQL Database型を指定します。インポートするDynamoDB表にソート・キーがない場合は、この属性は設定しないでください。このキーは、NoSQL DB表の主キーの非シャード部分として使用されます。これは、
defaultSchema
がtrueに設定され、ソースがdynamodb_json
の場合にのみ適用されます。詳細は、「DynamoDB型からOracle NoSQL型へのマッピング」 を参照してください。 - 必須(Y/N): N
- 例:
"DDBSortKey" : "Skey:STRING"
ノート:
ソート・キーにダッシュ(-)またはドット(.)が含まれている場合、NoSQL列名ではドットとダッシュがサポートされていないため、マイグレータはそれをアンダースコア(_)に置き換えます。
overwrite
-
用途: ソースから移行されるレコードがすでにシンクに存在している場合のNoSQL Database Migratorの動作を示します。
値をfalseに設定すると、表を移行するときに、NoSQL Database Migratorは、同じ主キーがシンクにすでに存在します。
値をtrueに設定すると、表を移行するときに、NoSQL Database Migratorは、同じ主キーがシンクにすでに存在するレコードを上書きします。
指定しない場合は、デフォルトでtrueに設定されます。
- データ型: boolean
- 必須(Y/N): N
- 例:
"overwrite" : false
Oracle NoSQL Database Cloud Service
NoSQL Database移行者のシンクとしての Oracle NoSQL Database Cloud Serviceの構成ファイル形式を次に示します。
シンク構成テンプレート
"sink" : {
"type" : "nosqldb_cloud",
"endpoint" : "<Oracle NoSQL Cloud Service Endpoint>",
"table" : "<table name>",
"compartment" : "<OCI compartment name or id>",
"includeTTL": <true|false>,
"ttlRelativeDate" : "<date-to-use in UTC>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>",
"defaultSchema" : <true|false>,
"useSourceSchema" : <true|false>,
"DDBPartitionKey" : <"name:type">,
"DDBSortKey" : "<name:type>",
"onDemandThroughput" : <true|false>,
"readUnits" : <table read units>,
"writeUnits" : <table write units>,
"storageSize" : <storage size in GB>
},
"credentials" : "</path/to/oci/credential/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"writeUnitsPercent" : <table writeunits percent>,
"requestTimeoutMs" : <timeout in milli seconds>,
"overwrite" : <true|false>
}
シンク・パラメータ
共通の構成パラメータ
- 種類
"type" : "nosqldb_cloud"
の使用 - エンドポイント次に例を示します:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
- 資格証明次に例を示します:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
- credentialsProfile次に例を示します:
"credentialsProfile" : "DEFAULT"
"credentialsProfile" : "ADMIN_USER"
- useInstancePrincipal
例:
"useInstancePrincipal" : true
- useDelegationToken
例:
"useDelegationToken" : true
ノート:
委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。 - requestTimeoutMs
例:
"requestTimeoutMs" : 5000
一意の構成パラメータ
表
-
用途: 移行されたデータを格納する表名を指定します。
この表がOracle NoSQL Database Cloud Serviceにあることを確認する必要があります。そうでない場合は、シンク構成で
schemaInfo
オブジェクトを使用して、表を作成するようにNoSQL Database Migratorに指示する必要があります。この表のスキーマはソース・データと一致している必要があります。
- データ型: 文字列
- 必須(Y/N): Y
- 例:
- 表
"table" : "mytable"
を指定する場合 - 子表
"table" : "mytable.child"
を指定する場合ノート:
有効なデータ・ソースからOracle NoSQL Database Cloud Serviceに子表を移行できます。NoSQL Database Migratorでは、実行ごとに1つの表のみをコピーします。親表が子表の前に移行されていることを確認します。
- 表
コンパートメント
-
用途: 表が存在するコンパートメントの名前またはOCIDを指定します。
値を指定しない場合は、デフォルトでルートコンパートメントに設定されます。
コンパートメントのOCIDは、OCI Cloudコンソールの「ガバナンス」の「コンパートメント・エクスプローラ」ウィンドウから確認できます。
- データ型: 文字列
- 必須(Y/N): 表がテナントまたはuseInstancePrincipalパラメータがtrueに設定されている場合、Y。
ノート:
useInstancePrincipalパラメータがtrueに設定されている場合、コンパートメントは名前ではなくコンパートメントOCIDを指定する必要があります。 - 例:
-
コンパートメント名
"compartment" : "mycompartment"
-
親コンパートメントで修飾されたコンパートメント名
"compartment" : "parent.childcompartment"
-
値が指定されていません。デフォルトはルート・コンパートメントです。
"compartment": ""
-
コンパートメントのOCID
"compartment" : "ocid1.tenancy.oc1...4ksd"
-
includeTTL
-
用途: Oracle NoSQL Database表のインポート時にソースによって提供される表の行のTTLメタデータを含めるかどうかを指定します。
このパラメータを指定しない場合、デフォルトは
false
です。この場合、NoSQL Database Migratorには、Oracle NoSQL Database表のインポート時にソースによって提供される表の行のTTLメタデータは含まれません。trueに設定すると、NoSQL Database Migratorツールは、表の行のインポート時にTTLメタデータに対して次のチェックを実行します。_metadata
定義を持たない行をインポートすると、NoSQL Database MigratorツールはTTLを0に設定します。これは、行が期限切れにならないことを意味します。_metadata
定義を持つ行をインポートすると、NoSQL Database Migratorツールは、行がインポートされたときにTTL値を参照します。参照時間に対してすでに失効している行はスキップされます。行が失効していない場合は、TTL値とともにインポートされます。デフォルトでは、インポート操作の参照時間は、NoSQLデータベース・マイグレータ・ツールが実行されているマシンのSystem.currentTimeMillis()から取得された現在の時間(ミリ秒)です。ただし、失効時間を延長し、延長しなければすぐに期限切れになる行をインポートする場合は、ttlRelativeDate
構成パラメータを使用してカスタム参照時間を設定することもできます。行の有効期限を計算する式は次のとおりです。expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
ノート:
Oracle NoSQL TTLの境界は時間および日数であるため、場合によっては、インポートされた行のTTLが直近の時間または日に調整される可能性があります。たとえば、失効値が1629709200000 (2021-08-23 09:00:00)
で、参照時間値が1629707962582 (2021-08-23 08:39:22)
の行について考えてみます。ここでは、このデータのインポート時に参照時間に対して行が失効しない場合でも、その行の新しいTTLは1629712800000 (2021-08-23 10:00:00)
です。
- データ型: boolean
- 必須(Y/N): N
- 例:
"includeTTL" : true
ttlRelativeDate
-
用途: Oracle NoSQL Databaseへのインポート中の表の行のTTL失効の設定に使用されるYYYY-MM-DD hh:mm:ss形式でUTC日付を指定します。
エクスポートするデータの表の行が期限切れになった場合は、ttlRelativeDateパラメータに、エクスポートしたデータの表の行の有効期限より前の日付を設定できます。
このパラメータを指定しない場合は、NoSQL Database Migratorツールが実行されているマシンのSystem.currentTimeMillis()から取得された現在の時間がミリ秒単位でデフォルト設定されます。
- データ型: date
- 必須(Y/N): N
- 例:
"ttlRelativeDate" : "2021-01-03 04:31:17"
表の行が2021年1月1日から7日後に失効するシナリオについて検討します。この表をエクスポートした後、2021年1月7日に、表の問題が発生し、データをインポートすることにしました。表の行は1日で失効します(データ有効期限から現在の日付であるttlRelativedate構成パラメータのデフォルト値を引いた値)。ただし、表の行の有効期限を1日ではなく5日に延長する場合は、ttlRelativeDateパラメータを使用して前の日付を選択します。したがって、このシナリオでは、表の行の有効期限を5日延長する場合、ttlRelativeDate構成パラメータの値を2021年1月3日に設定します。これは、表の行がインポートされるときに参照時間として使用されます。
schemaInfo
-
用途: 移行対象データのスキーマを指定します。
このパラメータを指定しない場合、NoSQL Database Migratorでは、表がOracle NoSQL Database Cloud Serviceにすでに存在します。
このパラメータが指定されておらず、シンクに表が存在しない場合、移行は失敗します。
- データ型: オブジェクト
- 必須(Y/N): N
schemaInfo.schemaPath
-
用途: NoSQL表のDDL文を含むファイルへの絶対パスを指定します。
NoSQL Database Migratorは、データを移行する前に、このファイルにリストされているDDLコマンドを実行します。
NoSQL Database Migratorでは、
schemaPath
ファイルの行ごとに複数のDDL文をサポートしていません。 -
データ型: 文字列
-
必須(Y/N): N
ノート:
defaultSchema
とschemaPath
は相互に排他的です。 -
例:
"schemaPath" : "/home/user/schema_file"
schemaInfo.defaultSchema
-
用途: このパラメータをYesに設定すると、NoSQL Database Migratorではデフォルト・スキーマを使用して表が作成されます。デフォルト・スキーマは、マイグレータ自体によって定義されます。デフォルト・スキーマ定義の詳細は、Oracle NoSQLデータ・マイグレータの使用のデフォルト・スキーマを参照してください。
-
データ型: boolean
-
必須(Y/N): N
ノート:
defaultSchema
とschemaPath
は相互に排他的です。
schemaInfo.useSourceSchema
-
用途: NoSQL表の移行時にソースによって提供される表スキーマ定義のシンクを使用するかどうかを指定します。
-
データ型: boolean
- 必須(Y/N): N
ノート:
defaultSchema、schemaPathおよびuseSourceSchemaパラメータは相互に排他的です。これらのパラメータのうち1つのみを指定してください。 - 例:
- デフォルト・スキーマを使用:
"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": { "useSourceSchema": true, "readUnits": 100, "writeUnits": 60, "storageSize": 1 }
- デフォルト・スキーマを使用:
schemaInfo.DDBPartitionKey
- 用途: シンクのOracle NoSQL Database表で使用するDynamoDBパーティション・キーおよび対応するOracle NoSQL Database型を指定します。このキーは、NoSQL DB表のシャード・キーとして使用されます。これは、
defaultSchema
がtrueに設定され、ソースの形式がdynamodb_json
の場合にのみ適用されます。詳細は、「DynamoDB型からOracle NoSQL型へのマッピング」 を参照してください。 - 必須(Y/N):
defaultSchema
がtrueで、ソースがdynamodb_json
の場合、Y。 - 例:
"DDBPartitionKey" : "PersonID:INTEGER"
ノート:
パーティション・キーにダッシュ(-)またはドット(.)が含まれている場合、NoSQL列名ではドットとダッシュがサポートされていないため、マイグレータはそれをアンダースコア(_)に置き換えます。
schemaInfo.DDBSortKey
- 用途: ターゲットのOracle NoSQL Database表で使用するDynamoDBソート・キーおよび対応するOracle NoSQL Database型を指定します。インポートするDynamoDB表にソート・キーがない場合は、この属性は設定しないでください。このキーは、NoSQL DB表の主キーの非シャード部分として使用されます。これは、
defaultSchema
がtrueに設定され、ソースがdynamodb_json
の場合にのみ適用されます。詳細は、「DynamoDB型からOracle NoSQL型へのマッピング」 を参照してください。 - 必須(Y/N): N
- 例:
"DDBSortKey" : "Skey:STRING"
ノート:
ソート・キーにダッシュ(-)またはドット(.)が含まれている場合、NoSQL列名ではドットとダッシュがサポートされていないため、マイグレータはそれをアンダースコア(_)に置き換えます。
schemaInfo.onDemandThroughput
- 用途: オンデマンドの読取りおよび書込みスループットを使用して表を作成することを指定します。このパラメータが設定されていない場合、表はプロビジョニングされた容量で作成されます。
デフォルト値は
false
です。ノート:
このパラメータは、トップレベルの親表のスループットを共有するため、子表に適用できません。 -
データ型: ブール
-
必須(Y/N): N
- 例:
"onDemandThroughput" : "true"
schemaInfo.readUnits
- 用途: 新しい表の読取りスループットを指定します。
ノート:
- このパラメータは、オンプレミス容量がプロビジョニングされた表に適用できません。
- このパラメータは、子テーブルがトップレベルの親テーブルの読み取りスループットを共有するため、子テーブルに適用できません。
-
データ型: 整数
-
必須(Y/N): 表が子表でない場合、またはschemaInfo.onDemandThroughputパラメータが
false
に設定されている場合、それ以外の場合はN。 - 例:
"readUnits" : 100
schemaInfo.writeUnits
- 用途: 新しい表の書込みスループットを指定します。
ノート:
- このパラメータは、オンプレミス容量がプロビジョニングされた表に適用できません。
- このパラメータは、子テーブルがトップレベルの親テーブルの書き込みスループットを共有するため、子テーブルに適用できません。
-
データ型: 整数
-
必須(Y/N): 表が子表でない場合、またはschemaInfo.onDemandThroughputパラメータが
false
に設定されている場合、それ以外の場合はN。 - 例:
"writeUnits" : 100
schemaInfo.storageSize
- 用途: 新しい表のストレージ・サイズ(GB)を指定します
ノート:
このパラメータは、子表がトップレベルの親表のストレージ・サイズを共有するため、子表に適用できません。 -
データ型: 整数
-
必須(Y/N): 表が子表でない場合はY、それ以外の場合はN。
- 例:
-
schemaPath
を使用"schemaInfo" : { "schemaPath" : "</path/to/a/schema/file>", "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 }
-
defaultSchema
を使用"schemaInfo" : { "defaultSchema" :Yes, "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 }
-
writeUnitsPercent
-
用途: 移行アクティビティ中に使用される表書込みユニットの割合を指定します。データの移行に必要な時間は、この属性に正比例します。
デフォルトの値は90です。有効範囲は1から100の任意の整数です。
この属性を使用してデータ移行速度を改善する方法の詳細は、「Oracle NoSQL Database Migratorのトラブルシューティング」を参照してください。
- データ型: 整数
- 必須(Y/N): N
- 例:
"writeUnitsPercent" : 90
overwrite
-
用途: ソースから移行されるレコードがすでにシンクに存在している場合のNoSQL Database Migratorの動作を示します。
値をfalseに設定すると、表を移行するときに、NoSQL Database Migratorは、同じ主キーがシンクにすでに存在します。
値をtrueに設定すると、表を移行するときに、NoSQL Database Migratorは、同じ主キーがシンクにすでに存在するレコードを上書きします。
指定しない場合は、デフォルトでtrueに設定されます。
- データ型: boolean
- 必須(Y/N): N
- 例:
"overwrite" : false
変換構成テンプレート
このトピックでは、Oracle NoSQL Databaseミグレータでサポートされている様々な変換の構成パラメータについて説明します。完全な構成ファイル・テンプレートについては、NoSQLデータ・マイグレータで使用される用語の構成ファイルを参照してください。
Oracle NoSQL Database Migratorを使用すると、移行アクティビティの過程でデータを変更できます。1回の移行で複数の変換を定義できます。このような場合、ソース・データには指定の順序で各変換が実行されるため、変換の順序は重要です。ある変換の出力がマイグレータ・パイプライン内の次の変換への入力になります。
表- 変換
変換構成属性 | この変換を使用して、次のことができます。 |
---|---|
ignoreFields |
シンクに書き込む前に、ソース行から識別された列を無視します。 |
includeFields |
シンクに書き込まれる前に、ソース行から識別された列を追加します。 |
renameFields |
シンクに書き込む前に、ソース行から識別された列の名前を変更します。 |
aggregateFields |
ソースの複数の列をシンクの単一の列に集計します。この変換の一部として、集計から除外する列を指定することもできます。これらのフィールドは集計列からスキップされます。 |
次に、サポートされている各変換の構成テンプレートを示します。
ignoreFields
ignoreFields
変換の構成ファイル形式を次に示します。
変換構成テンプレート
"transforms" : {
"ignoreFields" : ["<field1>","<field2>",...]
}
変換パラメータ
ignoreFields
-
用途: ソース・レコードから無視されます。
ノート:
最上位のフィールドのみを指定できます。ネストされたフィールドのデータには変換を適用できません。 - データ型: 文字列の配列
- 必須(Y/N): Y
-
例: ソース・レコードのnameおよびaddressという名前の列を無視する場合。
"ignoreFields" : ["name","address"]
includeFields
includeFields
変換の構成ファイル形式を次に示します。
変換構成テンプレート
"transforms" : {
"includeFields" : ["<field1>","<field2>",...]
}
変換パラメータ
includeFields
-
用途: ソース・レコードから含める列名の配列。配列で指定されたフィールドのみが含まれ、残りのフィールドは無視されます。
ノート:
空の配列を指定すると、NoSQLデータベース・マイグレータ・ツールはエラーをスローしますさらに、最上位フィールドのみを指定できます。NoSQLデータベース・マイグレータ・ツールは、ネストされたフィールドのデータに変換を適用しません。 - データ型: 文字列の配列
- 必須(Y/N): Y
-
例:ソース・レコードから「age」および「gender」という名前の列を無視するには:
"includeFields" : ["age","gender"]
renameFields
renameFields
変換の構成ファイル形式を次に示します。
変換構成テンプレート
"transforms" : {
"renameFields" : {
"<old_name>" : "<new_name>",
"<old_name>" : "<new_name>,"
.....
}
}
変換パラメータ
renameFields
-
用途: 名前を変更する新旧の列名のキーと値のペア。
ノート:
最上位のフィールドのみを指定できます。ネストされたフィールドのデータには変換を適用できません。 - データ型: JSONオブジェクト
- 必須(Y/N): Y
-
例: レジデンスというカラムをアドレスに、_idというカラムをIDに名前変更する場合。
"renameFields" : { "residence" : "address", "_id" : "id" }
aggregateFields
aggregateFields
変換の構成ファイル形式を次に示します。
変換構成テンプレート
"transforms" : {
"aggregateFields" : {
"fieldName" : "name of the new aggregate field",
"skipFields" : ["<field1>","<field2">,...]
}
}
変換パラメータ
aggregateFields
-
用途: シンク内の集計フィールドの名前。
- データ型: 文字列
- 必須(Y/N): Y
-
例: 指定されたレコードが次の場合。
{ "id" : 100, "name" : "john", "address" : "USA", "age" : 20 }
集計変換が次の場合:
"aggregateFields" : { "fieldName" : "document", "skipFields" : ["id"] }
シンクの集計列は次のようになります。
{ "id": 100, "document": { "name": "john", "address": "USA", "age": 20 } }
DynamoDB型からOracle NoSQL型へのマッピング
次の表に、DynamoDB型からOracle NoSQL型へのマッピングを示します。
表- DynamoDB型からOracle NoSQL型へのマッピング
# | DynamoDB型 | NoSQL JSON列のJSON型 | Oracle NoSQL型 |
---|---|---|---|
1 | 文字列(S) | JSON文字列 | STRING |
2 | 数値タイプ(N) | JSON数値 | 整数/ロング/フロート/ダブル/数値 |
3 | ブール(BOOL) | JSONブール | BOOLEAN |
4 | バイナリ型(B) - バイト・バッファ | BASE-64でエンコードされたJSON文字列 | BINARY |
5 | NULL | JSON null | NULL |
6 | 文字列セット(SS) | 文字列のJSON配列 | 配列(文字列) |
7 | 数値セット(NS) | 数字のJSON配列 | 配列(整数/ロング/フロート/ダブル/数値) |
8 | バイナリ・セット(BS) | Base-64でエンコードされた文字列の JSON配列 | 配列(バイナリ) |
9 | リスト(L) | JSONの配列 | 配列(JSON) |
10 | マップ(M) | JSONオブジェクト | JSON |
11 | パーティション・キー | NA | プライマリー・キーとシャード・キー |
12 | ソート・キー | NA | 主キー |
13 | ダッシュとドットを含む属性名 | 下線を含むJSONフィールド名 | 下線付きの列名 |
- DynamoDBは、数値に対して1つのデータ型のみをサポートし、最大38桁の精度を持つことができます。対照的に、Oracle NoSQLは、data.Youの範囲および精度に基づいて選択する多くの型をサポートし、入力データの範囲に適合する適切な数値型を選択できます。データの性質が不明な場合は、NoSQL NUMBER型を使用します。
- DynamoDBは、数値に対して1つのデータ型のみをサポートし、最大38桁の精度を持つことができます。対照的に、Oracle NoSQLは、data.Youの範囲および精度に基づいて選択する多くの型をサポートし、入力データの範囲に適合する適切な数値型を選択できます。データの性質が不明な場合は、NoSQL NUMBER型を使用します。
- DynamoDBのパーティション・キーの制限は2048バイトですが、Oracle NoSQL Cloud Serviceの制限は64バイトです。
- DynamoDBのソート・キーの制限は1024バイトですが、Oracle NoSQL Cloud Serviceの主キーの制限は64バイトです。
- DynamoDBの属性名は64KBの長さにできますが、Oracle NoSQL Cloudサービスの列名は64文字に制限されます。
Oracle NoSQLからParquetデータ型へのマッピング
Oracle NoSQLデータ型とParquetデータ型のマッピングについて説明します。
NoSQL型 | Parquet型 |
---|---|
BOOLEAN | BOOLEAN |
INTEGER | INT32 |
LONG | INT64 |
FLOAT | DOUBLE |
DOUBLE | DOUBLE |
BINARY | BINARY |
FIXED_BINARY | BINARY |
STRING | バイナリ(文字列) |
ENUM | バイナリ(文字列)
または BINARY(ENUM)、論理ENUMが構成されている場合 |
UUID | バイナリ(文字列)
または FIXED_BINARY(16)、論理UUIDが構成されている場合 |
TIMESTAMP(p) | INT64(TIMESTAMP(p)) |
NUMBER | DOUBLE |
field_name配列(T) |
|
field_nameマップ(T) |
|
field_nameレコード(K1 T1 N1、K⁇2 T2 N2、....)
説明: K = キー名 T = タイプ N = NULL可能かどうか |
|
JSON | バイナリ(文字列)
または BINARY(JSON)、論理JSONが構成されている場合 |
ノート:
NoSQL数値型をParquet Double型に変換する場合、値がDoubleで表現できない場合、精度が若干失われる可能性があります。値が大きすぎてDoubleとして表現できない場合、Double.NEGATIVE_INFINITYまたはDouble.POSITIVE_INFINITYに変換されます。DynamoDB表からOracle NoSQL表へのマッピング
DynamoDBでは、表はアイテムのコレクションで、各アイテムは属性の集合です。表の各アイテムには、一意の識別子または主キーがあります。表は、主キー以外はスキーマレスです。各アイテムには固有の属性を設定できます。
- Partition key - partition keyと呼ばれる1つの属性で構成される単純な主キー。DynamoDBは、パーティション・キーの値を内部ハッシュ関数への入力として使用します。ハッシュ関数の出力によって、アイテムが格納されるパーティションが決まります。
- Partition key and sort key - composite primary keyとして、このタイプの鍵は2つの属性で構成されます。第1の属性はパーティション・キーで、第2の属性はソート・キーです。DynamoDBは、パーティション・キーの値を内部ハッシュ関数への入力として使用します。ハッシュ関数の出力によって、アイテムが格納されるパーティションが決まります。同じパーティション・キー値を持つすべてのアイテムが、ソート・キー値でソートされて一緒に格納されます。
一方、Oracle NoSQL表は、スキーマとスキーマレス設計の両方を備えた柔軟なデータ・モデルをサポートしています。
- JSONドキュメントとしてのDynamoDB表のモデル化(推奨): このモデル化では、Dynamo DB表のすべての属性を、パーティション・キーおよびソート・キーを除くNoSQL表のJSON列にマップします。パーティション・キーおよびソート・キーをNoSQL表の主キー列としてモデル化します。主キー以外のデータをJSON列に集計するには、
AggregateFields
変換を使用します。ノート:
マイグレータは、属性をJSON列に集計するスキーマレスDDL表を自動的に作成するための、使いやすい構成defaultSchema
を提供します。 - NoSQL表の固定列としてのDynamoDB表のモデル化: このモデル化では、DynamoDB表の各属性について、「DynamoDB型からOracle NoSQL型へのマッピング」で指定されているように、NoSQL表に列を作成します。パーティション・キーおよびソート・キー属性を主キーとしてモデル化します。これは、DynamoDB表スキーマのインポートが固定されており、各アイテムにほとんどの属性の値があることが確実な場合にのみ使用する必要があります。DynamoDBアイテムに共通属性がない場合、空の値を持つ多くのNoSQL列が生成される可能性があります。
ノート:
DynamoDB表の特性がスキーマレスであるため、DynamoDBからOracle NoSQL Databaseにデータを移行する場合は、スキーマレス表を使用することをお薦めします。これは特に、表全体で各レコードの内容が統一されていない大きな表の場合です。
Oracle NoSQL Database Migratorのトラブルシューティング
使用中に直面する可能性のある一般的な課題とその解決方法について学習します。
移行に失敗しました。どうすれば解決できますか。
データ移行の失敗は、基礎となる複数の理由で発生する可能性があります。重要な原因を次に示します。
表- 移行失敗の原因
エラー・メッセージ | 意味 | 対処方法 |
---|---|---|
Failed to connect to Oracle NoSQL Database |
マイグレータはNoSQL Databaseとの接続を確立できませんでした。 |
|
Failed to connect to Oracle NoSQL Database Cloud Service |
マイグレータはOracle NoSQL Database Cloud Serviceとの接続を確立できませんでした。 |
|
Table not found |
移行用に指定された表がNoSQL Database Migratorで見つかりませんでした。 |
[ソース]:
シンクの場合:
|
DDL Execution failed |
入力スキーマ定義ファイルに指定されたDDLコマンドが無効です。 |
|
failed to write record to the sink table with java.lang.IllegalArgumentException |
入力レコードがシンクの表スキーマと一致しません。 |
|
Request timeout |
ソースまたはシンクの操作が完了しませんでした。 |
|
失敗した移行を再開するには、何を考慮する必要がありますか。
データ移行タスクが失敗すると、シンクは中間状態になり、障害が発生した時点までにインポートされたデータが含まれます。ログからエラーおよび障害の詳細を特定し、エラーの診断および修正後に移行を再開できます。移行を再開するともう一度終了し、すべてのデータが最初から処理されます。移行をチェックポイント処理し、障害が発生した時点から再開する方法はありません。したがって、NoSQL Database Migratorは、シンクにすでに移行されているすべてのレコードを上書きします。
移行が遅すぎます。速度を上げるにはどうすればよいですか。
データ移行にかかる時間は、移行するデータ量、ネットワーク速度、データベースの現在の負荷などの複数の要因に依存します。クラウド・サービスの場合、移行の速度は、読取りスループットおよびプロビジョニングされた書込みスループットにも依存します。したがって、移行速度を向上させるために、次のことができます。- データの移行中に、Oracle NoSQL Databaseの現在のワークロードを減らします。
- 移行、ソースおよびシンクを実行しているマシンがすべて同じデータ・センターにあり、ネットワーク待機時間が最小限であることを確認します。
- Oracle NoSQL Database Cloud Serviceの場合は、高い読取り/書込みスループットをプロビジョニングし、表に割り当てられた記憶域が十分かどうかを確認します。NoSQL Database Migratorが表を作成していない場合は、書込みスループットを向上できます。マイグレータが表を作成している場合は、シンク構成の
schemaInfo.writeUnits
パラメータに大きい値を指定することをお薦めします。データ移行が完了した後で、この値を小さくできます。スループットの変更に関する毎日の制限に注意してください。クラウド制限およびシンク構成テンプレートを参照してください。
大量のデータセットを含む長時間の移行があります。移行の進行状況を追跡するにはどうすればよいですか。
追加のロギングを有効にして、長時間実行される移行の進行状況を追跡できます。Oracle NoSQL Database Migratorのロギング動作を制御するには、logging.properties
ファイルで必要なロギング・レベルを設定する必要があります。このファイルはNoSQL Database Migratorパッケージに付属しており、Oracle NoSQL Database Migratorが解凍されたディレクトリで使用できます。ロギングの異なるレベルは、冗長性の増加順にOFF, SEVERE, WARNING, INFO, FINE,
および ALL
です。OFF
にログ・レベルを設定するとすべてのロギング情報が無効になる一方、ALL
にログ・レベルを設定すると完全なログ情報が表示されます。デフォルトのログ・レベルはWARNING
です。すべてのロギング出力は、デフォルトでコンソールに出力されます。各ログ・レベルに関するコメントは、logging.properties
ファイルに表示されます。