Oracle NoSQL Database Migratorリファレンス
Oracle NoSQL Database Migratorで使用可能なソース、シンクおよび変換構成テンプレートのパラメータについて学習します。
この記事には次のトピックが含まれます:
ソース構成テンプレート
各有効なソースの構成ファイル形式と、各構成パラメータの目的について学習します。
JSONファイル
NoSQL Database MigratorのソースとしてのJSONファイルの構成ファイル形式を次に示します。
構成テンプレート
"source" : {
"type" : "file",
"format" : "json",
"dataPath": "</path/to/a/json/file>",
"schemaInfo": {
"schemaPath": "</path/to/schema/file>"
}
}
ソース・パラメータ
タイプで打つ
-
目的: ソース・タイプを示します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "file"
形式
-
目的: ソース形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"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" : "/home/user/mytable/Schema/schema.ddl" }
OCIオブジェクト・ストレージ・バケットのJSONファイル
NoSQL Database MigratorのソースとしてのOCI Object Storageバケット内のJSONファイルの構成ファイル形式を次に示します。
OCI Object Storageソース・タイプの有効なシンク・タイプは、
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>
}
ソース・パラメータ
タイプで打つ
-
目的: ソース・タイプを示します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "object_storage_oci"
形式
-
目的: ソース形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"format" : "json"
エンドポイント
-
目的: OCIオブジェクト・ストレージ・サービスのエンドポイントURLまたはリージョンIDを指定します。
完全なURLまたはリージョンIDのみを指定できます。Oracle NoSQL Database Cloud Serviceでサポートされるデータ・リージョンのリストは、Oracle NoSQL Database Cloud Serviceの使用のデータ・リージョンおよび関連するサービスURLを参照してください。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
ネームスペース
-
目的: OCI Object Storageサービスのネームスペースを指定します。これはオプション・パラメータです。このパラメータを指定しない場合は、テナンシのデフォルト・ネームスペースが使用されます。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"namespace" : "my-namespace"
バケット
-
目的: ソースJSONファイルを含むバケットの名前を指定します。必要なバケットがOCI Object Storageインスタンスにすでに存在し、読取り権限を持っていることを確認します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"bucket" : "staging_bucket"
接頭辞
-
目的: バケットから移行されるオブジェクトのフィルタ処理に使用されます。バケット内に指定された接頭辞を持つすべてのオブジェクトが移行されます。接頭辞の詳細は、接頭辞および階層を使用したオブジェクト・ネーミングを参照してください。
値を指定しない場合、フィルタは適用されず、バケットに存在するすべてのオブジェクトが移行されます。
- データ型: 文字列
- 必須(Y/N): N
- 例:
"prefix" : "my_table/Data/000000.json"
(000000.json
のみを移行)"prefix" : "my_table/Data"
(接頭辞my_table/Data
を持つすべてのオブジェクトを移行します)
schemaInfo
-
目的: 移行するソース・データのスキーマを指定します。このスキーマはNoSQLシンクに渡されます。
- データ型: オブジェクト
- 必須(Y/N): N
schemaInfo.schemaObject
-
目的: 移行されるデータのNoSQL表スキーマ定義が格納されるバケット内のオブジェクトの名前を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"schemaInfo" : { "schemaObject" : "mytable/Schema/schema.ddl" }
資格証明
-
目的: OCI資格証明を含むファイルへの絶対パス。
指定しない場合、デフォルトで
$HOME/.oci/config
に設定されます資格証明ファイルの例は、構成例を参照してください。
ノート
credentialsおよびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
credentialsProfile
-
目的: Oracle NoSQL Database Cloud Serviceへの接続に使用される構成プロファイルの名前。ユーザー・アカウント資格証明は、「プロファイル」と呼ばれます。
この値を指定しない場合、デフォルトで
DEFAULT
プロファイルになります。ノート
このパラメータは、credentialsパラメータが指定されている場合のみ有効です。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentialsProfile" : "DEFAULT"
"credentialsProfile": "ADMIN_USER"
useInstancePrincipal
-
用途: NoSQL Migratorツールでインスタンス・プリンシパル認証を使用してOracle NoSQL Database Cloud Serviceに接続するかどうかを指定します。Instance Principalの認証方法の詳細は、ソースとシンクのセキュリティを参照してください。
指定しなかった場合は、デフォルトでFalseに設定されます。
ノート
- OCIコンピュート・インスタンス内でNoSQL Database Migratorツールが実行されている場合にのみサポートされます。たとえば、OCIでホストされているVMで実行されているNoSQL Database Migratorツールなどです。
- credentialsおよびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useInstancePrincipal" : true
MongoDB -フォーマット済JSONファイル
NoSQL Database MigratorのソースとしてのMongoDB形式のJSONファイルの構成ファイル形式を次に示します。
構成テンプレート
"source" : {
"type" : "file",
"format" : "mongodb_json",
"dataPath": "</path/to/a/json/file>",
"schemaInfo": {
"schemaPath": "</path/to/schema/file>"
}
}
ソース・パラメータ
タイプで打つ
-
目的: ソース・タイプを示します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "file"
形式
-
目的: ソース形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"format" : "mongodb_json"
dataPath
-
用途: 移行するMongoDBエクスポート済JSONデータを含むファイルまたはディレクトリへの絶対パスを指定します。
これらのファイルは、mongoexportツールを使用して生成しておく必要があります。詳細は、mongoexportを参照してください。
mongoexportツールを使用して生成されるMongoDB形式のJSONファイルは、正規またはリラックス・モードで指定できます。どちらのモードも、移行のためにNoSQL Database Migratorでサポートされています。
ディレクトリを指定した場合、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 Object Storageバケット内のフォーマット済JSONファイル
NoSQL Database MigratorのソースとしてのOCIオブジェクト・ストレージ・バケット内のMongoDB形式のJSONファイルの構成ファイル形式を次に示します。
OCI Object Storageソース・タイプの有効なシンク・タイプは、
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>
}
ソース・パラメータ
タイプで打つ
-
目的: ソース・タイプを示します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "object_storage_oci"
形式
-
目的: ソース形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"format" : "mongodb_json"
エンドポイント
-
目的: OCIオブジェクト・ストレージ・サービスのエンドポイントURLまたはリージョンIDを指定します。
完全なURLまたはリージョンIDのみを指定できます。Oracle NoSQL Database Cloud Serviceでサポートされるデータ・リージョンのリストは、Oracle NoSQL Database Cloud Serviceの使用のデータ・リージョンおよび関連するサービスURLを参照してください。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
ネームスペース
-
目的: OCI Object Storageサービスのネームスペースを指定します。これはオプション・パラメータです。このパラメータを指定しない場合は、テナンシのデフォルト・ネームスペースが使用されます。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"namespace" : "my-namespace"
バケット
-
目的: ソースのMongoDBフォーマット済JSONファイルを含むバケットの名前を指定します。必要なバケットがOCI Object Storageインスタンスにすでに存在し、読取り権限を持っていることを確認します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"bucket" : "staging_bucket"
接頭辞
-
目的: バケットから移行されるオブジェクトのフィルタ処理に使用されます。バケット内に指定された接頭辞を持つすべてのオブジェクトが移行されます。接頭辞の詳細は、接頭辞および階層を使用したオブジェクト・ネーミングを参照してください。
値を指定しない場合、フィルタは適用されず、バケットに存在するすべてのMongoDB JSON形式のオブジェクトが移行されます。mongoexportユーティリティを使用してMongoDBからデータを抽出し、OCI Object Storageバケットにアップロードします。詳細は、mongoexportを参照してください。
値を指定しない場合、フィルタは適用されず、バケットに存在するすべてのオブジェクトが移行されます。
- データ型: 文字列
- 必須(Y/N): N
- 例:
"prefix" : "mongo_export/Data/table.json"
(table.json
のみを移行)"prefix" : "mongo_export/Data"
(接頭辞mongo_export/Data
を持つすべてのオブジェクトを移行します)
schemaInfo
-
目的: 移行するソース・データのスキーマを指定します。このスキーマはNoSQLシンクに渡されます。
- データ型: オブジェクト
- 必須(Y/N): N
schemaInfo.schemaObject
-
目的: 移行されるデータのNoSQL表スキーマ定義が格納されるバケット内のオブジェクトの名前を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"schemaInfo" : { "schemaObject" : "mytable/Schema/schema.ddl" }
資格証明
-
目的: OCI資格証明を含むファイルへの絶対パス。
指定しない場合、デフォルトで
$HOME/.oci/config
に設定されます資格証明ファイルの例は、構成例を参照してください。
ノート
credentialsおよびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
credentialsProfile
-
目的: Oracle NoSQL Database Cloud Serviceへの接続に使用される構成プロファイルの名前。ユーザー・アカウント資格証明は、「プロファイル」と呼ばれます。
この値を指定しない場合、デフォルトで
DEFAULT
プロファイルになります。ノート
このパラメータは、credentialsパラメータが指定されている場合のみ有効です。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentialsProfile" : "DEFAULT"
"credentialsProfile": "ADMIN_USER"
useInstancePrincipal
-
用途: NoSQL Migratorツールでインスタンス・プリンシパル認証を使用してOracle NoSQL Database Cloud Serviceに接続するかどうかを指定します。Instance Principalの認証方法の詳細は、ソースとシンクのセキュリティを参照してください。
指定しなかった場合は、デフォルトでFalseに設定されます。
ノート
- OCIコンピュート・インスタンス内でNoSQL Database Migratorツールが実行されている場合にのみサポートされます。たとえば、OCIでホストされているVMで実行されているNoSQL Database Migratorツールなどです。
- 資格証明およびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useInstancePrincipal" : true
DynamoDB - AWS S3に格納されたフォーマット済JSONファイル
NoSQL Database MigratorのソースとしてのAWS S3でのDynamoDB形式のJSONファイルの構成ファイル形式を次に示します。
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">
}
- タイプで打つ
- 形式
- s3URL
- 資格証明
- credentialsProfile
- 目的: ソース・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
- 例:
"type" : "aws_s3"
- 目的: ソース・フォーマットを指定します。
- データ型: 文字列
- 必須(Y/N): Y
- 例:
"format" : "dynamodb_json"
"type"の値が
aws_s3
の場合、形式はdynamodb_json
である必要があります。
- 目的: AWS S3に格納されているエクスポートされたDynamoDB表のURLを指定します。このURLはAWSのS3コンソールから取得できます。有効なURL形式は
https://<bucket-name>.<s3_endpoint>/<prefix>
です。移行者は、接頭辞内のjson.gz
ファイルをインポート用に検索します。 - データ型: 文字列
- 必須: はい
- 例:
https://my-bucket.s3.ap-south-1.amazonaws.com/AWSDynamoDB/01649660790057-14f642be
- 用途: AWS資格証明を含むファイルへの絶対パスを指定します。指定しない場合、デフォルトで
$HOME/.aws/credentials
に設定されます。資格証明ファイルの詳細は、「構成および資格証明ファイルの設定」を参照してください。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentials" : "/home/user/.aws/credentials" "credentials" : "/home/user/security/credentials
マイグレータは、資格証明情報を記録しません。認可されていないアクセスから資格証明ファイルを適切に保護する必要があります。
- 目的: AWS S3への接続に使用されるAWS資格証明ファイル内のプロファイルの名前。ユーザー・アカウント資格証明は、プロファイルと呼ばれます。この値を指定しない場合は、デフォルト プロファイルに設定されます。資格証明ファイルの詳細は、「構成および資格証明ファイルの設定」を参照してください。
- データ型: 文字列
- 必須(Y/N): N
- 例:
"credentialsProfile" : "default" "credentialsProfile": "test"
DynamoDB - 書式設定されたJSONファイル
NoSQL Database MigratorのソースとしてのDynamoDB形式のJSONファイルの構成ファイル形式を次に示します。
DynamoDB JSONファイルの有効なシンク・タイプは、nosqldb
およびnosqldb_cloud
です。
"source" : {
"type" : "file",
"format" : "dynamodb_json",
"dataPath" : "<path to a file or directory containing exported DDB table data>"
}
- タイプで打つ
- 形式
- dataPath
- 目的: ソース・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
- 例:
"type" : "file"
- 目的: ソース・フォーマットを指定します。
- データ型: 文字列
- 必須(Y/N): Y
- 例:
"format" : "dynamodb_json"
- 用途: エクスポートされたDynamoDB表データを含むファイルまたはディレクトリへの絶対パスを指定します。エクスポートされたDynamoDB表データをAWS S3からローカルにマウントされたファイル・システムにコピーします。このデータがシンクで定義されているNoSQL表スキーマと一致することを確認する必要があります。ディレクトリを指定すると、NoSQL Database Migratorによって、そのディレクトリ内の拡張子が
.json.gz
のすべてのファイルとサブディレクトリdata
のすべてのファイルが識別されます。 - データ型: 文字列
- 必須(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の構成ファイル形式を次に示します。
構成テンプレート
"source" : {
"type": "nosqldb",
"table" : "<fully qualified table name>",
"storeName" : "<store name>",
"helperHosts" : ["hostname1:port1","hostname2:port2,..."],
"security" : "</path/to/store/security/file>",
"requestTimeoutMs" : 5000,
"includeTTL": <true|false>
}
ソース・パラメータ
タイプで打つ
-
目的: ソース・タイプを示します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "nosqldb"
テーブル
-
目的: データの移行元の完全修飾表名。
形式:
[namespace_name:]<table_name>
表がDEFAULTネームスペース内にある場合は、
namespace_name
を省略できます。表はストアに存在する必要があります。 - データ型: 文字列
- 必須(Y/N): Y
- 例:
-
DEFAULTネームスペース
"table" :"mytable"
を使用 -
デフォルト以外のネームスペース
"table" : "mynamespace:mytable"
を使用 -
子表
"table" : "mytable.child"
を指定するには
-
storeName
-
目的: Oracle NoSQL Databaseストアの名前。
- データ型: 文字列
- 必須(Y/N): Y
- 例:
"storeName" : "kvstore"
helperHosts
-
目的:
hostname:port
形式のホストとレジストリ・ポートのペアのリスト。リスト内の各項目をカンマを使用して区切ります。ヘルパー・ホストを少なくとも1つ指定する必要があります。 - データ型: 文字列の配列
- 必須(Y/N): Y
- 例:
"helperHosts" : ["localhost:5000","localhost:6000"]
セキュリティ
-
目的:
ストアがセキュアなストアの場合は、ストア資格証明を含むセキュリティ・ログイン・ファイルへの絶対パスを指定します。セキュリティーログインファイルの詳細は、Configuring Security with Remote Access in Administrator's Guideを参照してください。
パスワード・ファイル・ベースの認証またはウォレット・ベースの認証のいずれかを使用できます。ただし、ウォレット・ベースの認証は、Enterprise Edition (EE)のOracle NoSQL Databaseでのみサポートされます。ウォレット・ベースの認証の詳細は、「ソースおよびシンク・セキュリティ」を参照してください。
Community Edition(CE)エディションでは、パスワード・ファイル・ベースの認証のみがサポートされます。
- データ型: 文字列
- 必須(Y/N): セキュア・ストアの場合はY
- 例:
"security" : "/home/user/client.credentials"
パスワード・ファイル・ベース認証のセキュリティ・ファイルのコンテンツの例:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.pwdfile.file=/home/nosql/login.passwd oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)
Walletベースの認証のセキュリティ・ファイルのコンテンツの例:
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
-
目的: ストアからの各読取り操作が完了するまで待機する時間を指定します。これはミリ秒単位で提供されます。デフォルト値は5000です。値には、任意の正の整数を指定できます。
- データ型: 整数
- 必須(Y/N): N
- 例:
"requestTimeoutMs" : 5000
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 MigratorのソースとしてのOracle NoSQL Database Cloud Serviceの構成ファイル形式を次に示します。
構成テンプレート
"source" : {
"type" : "nosqldb_cloud",
"endpoint" : "<Oracle NoSQL Cloud Service Endpoint. You can either specify the complete URL or the Region ID alone>",
"table" : "<table name>",
"compartment" : "<OCI compartment name or id>",
"credentials" : "</path/to/oci/credential/file>",
"credentialsProfile" : "<oci credentials profile name>",
"readUnitsPercent" : <table readunits percent>,
"requestTimeoutMs" : <timeout in milli seconds>,
"useInstancePrincipal" : <true|false>,
"includeTTL": <true|false>
}
ソース・パラメータ
タイプで打つ
-
目的: ソース・タイプを示します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "nosqldb_cloud"
エンドポイント
-
目的: Oracle NoSQL Database Cloud Serviceのサービス・エンドポイントを指定します。
完全なURLまたはリージョンIDのみを指定できます。Oracle NoSQL Database Cloud Serviceでサポートされるデータ・リージョンのリストは、Oracle NoSQL Database Cloud Serviceの使用のデータ・リージョンおよび関連するサービスURLを参照してください。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://nosql.us-ashburn-1.oci.oraclecloud.com/"
-
テーブル
-
目的: データの移行元となる表の名前。
- データ型: 文字列
- 必須(Y/N): Y
- 例:
- 表
"table" : "myTable"
を指定するには - 子表
"table" : "mytable.child"
を指定するには
- 表
コンパートメント
-
目的: 表が存在するコンパートメントの名前またはOCIDを指定します。
値を指定しないと、rootコンパートメントにデフォルト設定されます。
コンパートメントのOCIDは、「コンパートメント・エクスプローラ」ウィンドウの「ガバナンス」のOCIクラウド・コンソールにあります。
- データ型: 文字列
- 必須(Y/N): はい。表がテナンシのルート・コンパートメントにない場合、またはuseInstancePrincipalパラメータがtrueに設定されている場合に適用されます。
ノート
useInstancePrincipalパラメータがtrueに設定されている場合、コンパートメントは名前ではなくコンパートメントOCIDを指定する必要があります。 - 例:
-
コンパートメント名
"compartment" : "mycompartment"
-
親コンパートメントで修飾されたコンパートメント名
"compartment" : "parent.childcompartment"
-
値が指定されていません。デフォルトでは、ルート・コンパートメントに設定されます。
"compartment": ""
-
コンパートメントOCID
"compartment" : "ocid1.tenancy.oc1...4ksd"
-
資格証明
-
目的: OCI資格証明を含むファイルへの絶対パス。
指定しない場合、デフォルトで
$HOME/.oci/config
に設定されます資格証明ファイルの例は、構成例を参照してください。
ノート
credentialsおよびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
credentialsProfile
-
目的: Oracle NoSQL Database Cloud Serviceへの接続に使用される構成プロファイルの名前。ユーザー・アカウント資格証明は、「プロファイル」と呼ばれます。
この値を指定しない場合、デフォルトで
DEFAULT
プロファイルになります。ノート
このパラメータは、credentialsパラメータが指定されている場合のみ有効です。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentialsProfile" : "DEFAULT"
"credentialsProfile": "ADMIN_USER"
readUnitsPercent
-
目的: NoSQL表の移行中に使用される表読取りユニットの割合。
デフォルトの値は90です。有効な範囲は、1から100までの任意の整数です。データの移行に必要な時間は、この属性に直接比例します。移行アクティビティの表の読取りスループットを増やすことをお薦めします。移行プロセスの完了後に、読取りスループットを削減できます。
スループットの変更に対する日次制限の詳細は、Oracle NoSQL Database Cloud Serviceの使用のクラウド制限を参照してください。
デフォルトの値は90です。有効な範囲は、1から100までの任意の整数です。
ノート
データ移行に必要な時間は、writeUnitsPercent
値に直接比例します。この属性を使用してデータ移行速度を向上させる方法を学習するには、Oracle NoSQL Databaseマイグレータのトラブルシューティングを参照してください。
- データ型: 整数
- 必須(Y/N): N
- 例:
"readUnitsPercent" : 90
requestTimeoutMs
-
目的: シンクの各読取り操作が完了するまで待機する時間を指定します。これはミリ秒単位で提供されます。デフォルト値は5000です。値には、任意の正の整数を指定できます。
- データ型: 整数
- 必須(Y/N): N
- 例:
"requestTimeoutMs" : 5000
useInstancePrincipal
-
用途: NoSQL Migratorツールでインスタンス・プリンシパル認証を使用してOracle NoSQL Database Cloud Serviceに接続するかどうかを指定します。Instance Principalの認証方法の詳細は、ソースとシンクのセキュリティを参照してください
指定しなかった場合は、デフォルトでFalseに設定されます。
ノート
- OCIコンピュート・インスタンス内でNoSQL Database Migratorツールが実行されている場合にのみサポートされます。たとえば、OCIでホストされているVMで実行されているNoSQL Database Migratorツールなどです。
- credentialsおよびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useInstancePrincipal" : true
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
フォーマットに準拠する必要があります。
構成テンプレート
"source" : {
"type" : "file",
"format" : "csv",
"dataPath": "</path/to/a/csv/file-or-directory>",
"hasHeader" : <true | false>,
"columns" : ["column1", "column2", ....],
"csvOptions" : {
"trim" : <true | false>,
"encoding" : "<character set encoding>"
}
}
タイプで打つ
-
用途: ソース・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "file"
形式
-
用途: ソースの形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"format" : "csv"
データパス
-
用途: 移行する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 Database Migratorの使用のLogging Migratorの進行状況を参照してください。
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.trim
-
目的: CSVフィールド値の先頭および末尾の空白を切り捨てる必要があるかどうかを指定します。デフォルト値は
false
です。 - データ型: ブール
- 必須(Y/N): N
-
例:
"trim" : "true"
csvOptions.encoding
-
目的: CSVファイルをデコードする文字セットを指定します。デフォルト値は
UTF-8
です。サポートされている文字セットは、US-ASCII, ISO-8859-1, UTF-8,
およびUTF-16
です。 - データ型: 文字列
- 必須(Y/N): N
-
例:
"encoding" : "UTF-8"
OCIオブジェクト・ストレージ・バケットのCSVファイル
NoSQL Database MigratorのソースとしてのOCIオブジェクト・ストレージ・バケットのCSVファイルの構成ファイル形式を次に示します。CSVファイルはRFC4180
フォーマットに準拠する必要があります。
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" : {
"trim" : <true | false>,
"encoding" : "<character set encoding>"
}
}
ソース・パラメータ
タイプで打つ
-
用途: ソース・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "object_storage_oci"
形式
-
用途: ソースの形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"format" : "csv"
エンドポイント
-
目的: OCIオブジェクト・ストレージ・サービスのエンドポイントURLまたはリージョンIDを指定します。
完全なURLまたはリージョンIDのみを指定できます。Oracle NoSQL Database Cloud Serviceでサポートされるデータ・リージョンのリストは、Oracle NoSQL Database Cloud Serviceの使用のデータ・リージョンおよび関連するサービスURLを参照してください。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
ネームスペース
-
目的: OCI Object Storageサービスのネームスペースを指定します。これはオプション・パラメータです。このパラメータを指定しない場合は、テナンシのデフォルト・ネームスペースが使用されます。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"namespace" : "my-namespace"
バケット
-
用途: ソースCSVファイルを含むバケットの名前を指定します。NoSQL Database Migratorは、.
csv
または.CSV
拡張子を持つすべてのファイルをオブジェクト単位でインポートし、同じ順序で単一の表にコピーします。必要なバケットがOCIオブジェクト・ストレージ・インスタンスにすでに存在し、読取り権限があることを確認してください。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"bucket" : "staging_bucket"
ノート
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 Database Migratorの使用のLogging Migratorの進行状況を参照してください。
接頭辞
-
用途: バケットから移行されるオブジェクトのフィルタに使用されます。バケットに存在する指定した接頭辞のすべてのオブジェクトが移行されます。接頭辞の詳細は、接頭辞および階層を使用したオブジェクト・ネーミングに関する項を参照してください。
値を指定しない場合、フィルタは適用されず、バケット内に存在するオブジェクトもすべて移行されます。
- データ型: 文字列
- 必須(Y/N): N
- 例:
"prefix" : "my_table/Data/000000.json"
(000000.json
のみが移行されます)"prefix" : "my_table/Data"
(接頭辞my_table/Data
を持つすべてのオブジェクトが移行されます)
資格証明
-
目的: OCI資格証明を含むファイルへの絶対パス。
指定しない場合、デフォルトで
$HOME/.oci/config
に設定されます資格証明ファイルの例は、構成例を参照してください。
- データ型: 文字列
- 必須(Y/N): N
- 例:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
credentialsProfile
-
用途: Oracle NoSQL Database Cloud Serviceへの接続に使用される構成ファイルの名前。ユーザー・アカウント資格証明は、プロファイルと呼ばれます。
この値を指定しない場合、デフォルトで
DEFAULT
プロファイルになります。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentialsProfile" : "DEFAULT"
"credentialsProfile": "ADMIN_USER"
useInstancePrincipal
-
用途: NoSQL Database Migratorツールでインスタンス・プリンシパル認証を使用してOracle NoSQL Database Cloud Serviceに接続するかどうかを指定します。Instance Principalの認証方法の詳細は、ソースとシンクのセキュリティを参照してください。
デフォルト値は
false
です。ノート
- Instance Principalsでの認証がサポートされるのは、OCIでホストされているVMで実行されているNoSQL Database Migratorツールなど、OCIコンピュート・インスタンス内でNoSQL Database Migratorツールが実行されている場合のみです。
- 構成テンプレートでは、credentialsまたはuseInstancePrincipalパラメータのいずれかを指定する必要があります。
- データ型: boolean
- 必須(Y/N): N
-
例:
"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.trim
-
目的: CSVフィールド値の先頭および末尾の空白を切り捨てる必要があるかどうかを指定します。デフォルト値は
false
です。 - データ型: ブール
- 必須(Y/N): N
-
例:
"trim" : "true"
csvOptions.encoding
-
目的: CSVファイルをデコードする文字セットを指定します。デフォルト値は
UTF-8
です。サポートされている文字セットは、US-ASCII, ISO-8859-1, UTF-8,
およびUTF-16
です。 - データ型: 文字列
- 必須(Y/N): N
-
例:
"encoding" : "UTF-8"
シンク構成テンプレート
各有効なシンクの構成ファイル形式と、各構成パラメータの目的について学習します。
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>
}
シンク・パラメータ
タイプで打つ
-
目的: シンク・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "file"
形式
-
目的: シンク形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"format" : "json"
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=00000,000001,000002など)です。dataPath |--000000.json |--000001.json
- データ型: boolean
- 必須(Y/N): N
-
例:
"useMultiFiles" : true
chunkSize
-
目的: シンクに格納される表データのチャンクの最大サイズを指定します。移行中、表はchunkSizeのチャンクに分割され、各チャンクは別個のファイルとしてシンクに書き込まれます。移行するソース・データがこのサイズを超えると、新しいファイルが作成されます。
指定しない場合、デフォルトで32MBに設定されます。有効な値は1から1024までの整数です。
ノート
このパラメータは、useMultiFilesパラメータがtrueに設定されている場合にのみ適用できます。 - データ型: 整数
- 必須(Y/N): N
-
例:
"chunkSize" : 40
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>
}
}
シンク・パラメータ
タイプで打つ
-
目的: シンク・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "file"
形式
-
目的: シンク形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"format" : "parquet"
dataPath
-
目的: 移行されたNoSQL表データの格納に使用するディレクトリへのパスを指定します。ディレクトリがすでに存在し、読取り権限および書込み権限を持っていることを確認します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"dataPath" : "/home/user/migrator/my_table"
chunkSize
-
目的: シンクに格納される表データのチャンクの最大サイズを指定します。移行中、表はchunkSizeのチャンクに分割され、各チャンクは別個のファイルとしてシンクに書き込まれます。移行するソース・データがこのサイズを超えると、新しいファイルが作成されます。
指定しない場合、デフォルトで32MBに設定されます。有効な値は1から1024までの整数です。
- データ型: 整数
- 必須(Y/N): N
-
例:
"chunkSize" : 40
圧縮
-
目的: Parquetデータの圧縮に使用する圧縮タイプを指定します。有効な値は、SNAPPY、GZIPおよびNONEです。
指定しない場合、デフォルトの SNAPPYが使用されます。
- データ型: 文字列
- 必須(Y/N): N
-
例:
"compression" : "GZIP"
parquetOptions
-
目的: NoSQL ENUM、JSONおよびUUID列のParquet論理タイプを選択するオプションを指定します。
このパラメータを指定しない場合、NoSQL Database Migratorは、NUM、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論理NUMタイプとして書き込むかどうかを指定します。詳細は、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
-
目的: 二重+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 Object Storageバケット内の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>
}
ソース・パラメータ
タイプで打つ
-
目的: シンク・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "object_storage_oci"
フォーマット
-
目的: シンク形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"format" : "json"
エンドポイント
-
目的: OCIオブジェクト・ストレージ・サービスのエンドポイントURLまたはリージョンIDを指定します。
完全なURLまたはリージョンIDのみを指定できます。Oracle NoSQL Database Cloud Serviceでサポートされるデータ・リージョンのリストは、Oracle NoSQL Database Cloud Serviceの使用のデータ・リージョンおよび関連するサービスURLを参照してください。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
ネームスペース
-
目的: OCI Object Storageサービスのネームスペースを指定します。これはオプション・パラメータです。このパラメータを指定しない場合は、テナンシのデフォルト・ネームスペースが使用されます。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"namespace" : "my-namespace"
土砂降りになる
-
目的: 移行データの格納に使用するバケット名を指定します。必要なバケットがOCI Object Storageインスタンスにすでに存在し、書込み権限を持っていることを確認します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"bucket" : "staging_bucket"
接頭辞
-
目的: バケットにオブジェクトを作成するときにオブジェクト名に追加する接頭辞を指定します。接頭辞は、データを格納するための論理コンテナまたはディレクトリとして機能します。接頭辞の詳細は、接頭辞および階層を使用したオブジェクト・ネーミングを参照してください。
指定しない場合、ソースの表名が接頭辞として使用されます。同じ名前のオブジェクトがバケットにすでに存在する場合、そのオブジェクトは上書きされます。
スキーマが
<prefix>/Schema /schema.ddl
ファイルに移行され、ソース・データが<prefix>/Data/<chunk>.json
ファイルに移行されます(chunk=000000.json、000001.jsonなど)。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"prefix" : "my_export"
"prefix" : "my_export/2021-04-05/"
chunkSize
-
目的: シンクに格納される表データのチャンクの最大サイズを指定します。移行中、表はchunkSizeのチャンクに分割され、各チャンクは別個のファイルとしてシンクに書き込まれます。移行するソース・データがこのサイズを超えると、新しいファイルが作成されます。
指定しない場合、デフォルトで32MBに設定されます。有効な値は1から1024までの整数です。
- データ型: 整数
- 必須(Y/N): N
-
例:
"chunkSize" : 40
みりょくてきな
-
目的: JSON出力を美化して読みやすくするかどうかを指定します。
指定しなかった場合は、デフォルトでFalseに設定されます。
- データ型: boolean
- 必須(Y/N): N
-
例:
"pretty" : true
資格証明
-
目的: OCI資格証明を含むファイルへの絶対パス。
指定しない場合、デフォルトで
$HOME/.oci/config
に設定されます資格証明ファイルの例は、構成例を参照してください。
ノート
credentialsおよびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
credentialsProfile
-
目的: Oracle NoSQL Database Cloud Serviceへの接続に使用される構成プロファイルの名前。ユーザー・アカウント資格証明は、「プロファイル」と呼ばれます。
この値を指定しない場合、デフォルトで
DEFAULT
プロファイルになります。ノート
このパラメータは、credentialsパラメータが指定されている場合のみ有効です。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentialsProfile" : "DEFAULT"
"credentialsProfile": "ADMIN_USER"
useInstancePrincipal
-
用途: NoSQL Migratorツールでインスタンス・プリンシパル認証を使用してOracle NoSQL Database Cloud Serviceに接続するかどうかを指定します。Instance Principalの認証方法の詳細は、ソースとシンクのセキュリティを参照してください。
指定しなかった場合は、デフォルトでFalseに設定されます。
ノート
- OCIコンピュート・インスタンス内でNoSQL Database Migratorツールが実行されている場合にのみサポートされます。たとえば、OCIでホストされているVMで実行されているNoSQL Database Migratorツールなどです。
- credentialsおよびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useInstancePrincipal" : true
OCIオブジェクト・ストレージ・バケットのParquetファイル
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>
}
ソース・パラメータ
タイプで打つ
-
目的: シンク・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "object_storage_oci"
フォーマット
-
目的: シンク形式を指定します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"format" : "parquet"
エンドポイント
-
用途: OCIオブジェクト・ストレージ・サービスのエンドポイントURLまたはリージョンIDを指定します。
完全なURLまたはリージョンIDのみを指定できます。Oracle NoSQL Database Cloud Serviceでサポートされるデータ・リージョンのリストは、Oracle NoSQL Database Cloud Serviceの使用のデータ・リージョンおよび関連するサービスURLを参照してください。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
ネームスペース
-
目的: OCI Object Storageサービスのネームスペースを指定します。これはオプション・パラメータです。このパラメータを指定しない場合は、テナンシのデフォルト・ネームスペースが使用されます。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"namespace" : "my-namespace"
土砂降りになる
-
目的: 移行データの格納に使用するバケット名を指定します。必要なバケットがOCI Object Storageインスタンスにすでに存在し、書込み権限を持っていることを確認します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"bucket" : "staging_bucket"
接頭辞
-
目的: バケットにオブジェクトを作成するときにオブジェクト名に追加する接頭辞を指定します。接頭辞は、データを格納するための論理コンテナまたはディレクトリとして機能します。接頭辞の詳細は、接頭辞および階層を使用したオブジェクト・ネーミングを参照してください。
指定しない場合、ソースの表名が接頭辞として使用されます。同じ名前のオブジェクトがバケットにすでに存在する場合、そのオブジェクトは上書きされます。
ソース・データは、
<prefix>/Data/<chunk>.parquet
ファイル(chunk= 000000.parquet、000001.parquetなど)に移行されます。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"prefix" : "my_export"
"prefix" : "my_export/2021-04-05/"
chunkSize
-
目的: シンクに格納される表データのチャンクの最大サイズを指定します。移行中、表はchunkSizeのチャンクに分割され、各チャンクは別個のファイルとしてシンクに書き込まれます。移行するソース・データがこのサイズを超えると、新しいファイルが作成されます。
指定しない場合、デフォルトで32MBに設定されます。有効な値は1から1024までの整数です。
- データ型: 整数
- 必須(Y/N): N
-
例:
"chunkSize" : 40
圧縮
-
目的: Parquetデータの圧縮に使用する圧縮タイプを指定します。有効な値は、SNAPPY、GZIPおよびNONEです。
指定しない場合、デフォルトの SNAPPYが使用されます。
- データ型: 文字列
- 必須(Y/N): N
-
例:
"compression" : "GZIP"
parquetOptions
-
目的: NoSQL ENUM、JSONおよびUUID列のParquet論理タイプを選択するオプションを指定します。
このパラメータを指定しない場合、NoSQL Database Migratorは、NUM、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論理NUMタイプとして書き込むかどうかを指定します。詳細は、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列データを文字列として書き込みます。
- データ型: ブール
- 必須(Y/N): N
-
例:
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
目的: 二重+Infinity、- InfinityおよびNan値を切り捨てるかどうかを指定します。
デフォルトではfalse
に設定されています。true
に設定すると、- Positive_Infinityは、Double.MAX_VALUEに切り捨てられます。
- NEGATIVE_INFINITYは- Double.MAX_VALUEに切り捨てられます。
- NaNは9.9999999999999990E307に切り捨てられます。
- データ型: ブール
- 必須(Y/N): N
-
例:
"truncateDoubleSpecials" : true
資格証明
-
目的: OCI資格証明を含むファイルへの絶対パス。
指定しない場合、デフォルトで
$HOME/.oci/config
に設定されます資格証明ファイルの例は、構成例を参照してください。
ノート
credentialsおよびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
credentialsProfile
-
目的: Oracle NoSQL Database Cloud Serviceへの接続に使用される構成プロファイルの名前。ユーザー・アカウント資格証明は、「プロファイル」と呼ばれます。
この値を指定しない場合、デフォルトで
DEFAULT
プロファイルになります。ノート
このパラメータは、credentialsパラメータが指定されている場合のみ有効です。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentialsProfile" : "DEFAULT"
"credentialsProfile": "ADMIN_USER"
useInstancePrincipal
-
用途: NoSQL Migratorツールでインスタンス・プリンシパル認証を使用してOracle NoSQL Database Cloud Serviceに接続するかどうかを指定します。Instance Principalの認証方法の詳細は、ソースとシンクのセキュリティを参照してください。
指定しなかった場合は、デフォルトでFalseに設定されます。
ノート
- OCIコンピュート・インスタンス内でNoSQL Database Migratorツールが実行されている場合にのみサポートされます。たとえば、OCIでホストされているVMで実行されているNoSQL Database Migratorツールなどです。
- credentialsおよびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useInstancePrincipal" : true
Oracle NoSQL Database
NoSQL Database MigratorのシンクとしてのOracle NoSQL Databaseの構成ファイル形式を次に示します。
構成テンプレート
"sink" : {
"type": "nosqldb",
"table" : "<fully qualified table name>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>",
"defaultSchema" : <true|false>,
"useSourceSchema" : <true|false>,
"DDBPartitionKey" : <"name:type">,
"DDBSortKey" : "<name:type>"
},
"overwrite" : <true|false>,
"storeName" : "<store name>",
"helperHosts" : ["hostname1:port1","hostname2:port2,..."],
"security" : "</path/to/store/credentials/file>",
"requestTimeoutMs" : <timeout in milli seconds>,
"includeTTL": <true|false>,
"ttlRelativeDate": "<date-to-use in UTC>"
}
シンク・パラメータ
タイプで打つ
-
目的: シンク・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "nosqldb"
テーブル
-
目的: データの移行元の完全修飾表名。
形式:
[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つの表のみをコピーします。親表が子表の前に移行されていることを確認します。
-
メインホー
-
目的: 移行するデータのスキーマを指定します。これを指定しない場合、シンクのストアにテーブルがすでに存在することを想定します。
- データ型: オブジェクト
- 必須(Y/N): N
schemaInfo.schemaPath
-
目的: NoSQL表のDDL文を含むファイルへの絶対パスを指定します。
NoSQL Database Migratorは、データを移行する前に、このファイルにリストされたDDLコマンドを実行します。
NoSQL Database Migratorでは、
schemaPath
ファイルの行ごとに複数のDDL文がサポートされていません。 -
データ型: 文字列
-
必須: Y (
schemaInfo.defaultSchema
パラメータが「いいえ」に設定されている場合のみ)。
schemaInfo.defaultSchema
-
用途: このパラメータをtrueに設定すると、NoSQL Database Migratorではデフォルト・スキーマを使用して表が作成されます。デフォルト・スキーマは、マイグレータ自体によって定義されます。デフォルト・スキーマ定義の詳細は、Oracle NoSQL Database Migratorの使用の「デフォルト・スキーマ」を参照してください。
-
データ型: boolean
-
必須: N
ノート
defaultSchema
とschemaPath
は相互に排他的です - 例:
- デフォルト・スキーマ:
"schemaInfo" : { "defaultSchema" : true }
- 事前定義済スキーマの場合:
"schemaInfo" : { "schemaPath" : "<complete/path/to/the/schema/definition/file>" }
- デフォルト・スキーマ:
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
の場合にのみ適用されます。詳細は、Oracle NoSQLタイプへのDynamoDBタイプのマッピングを参照してください。 - 必須:
defaultSchema
がtrueで、ソースがdynamodb_jsonの場合、はい。
- 例:
"DDBPartitionKey" : "PersonID:INTEGER"
ノート
パーティション・キーにダッシュ(- )またはドット(.)が含まれている場合、NoSQL列名はドットおよびダッシュをサポートしていないため、マイグレータはそれをアンダースコア(_)に置き換えます。
schemaInfo.DDBSortKey
- 目的: ターゲットのOracle NoSQL Database表で使用するDynamoDBソート・キーおよび対応するOracle NoSQL Databaseタイプを指定します。インポートするDynamoDB表にソート・キーがない場合、これは設定しないでください。このキーは、NoSQL DB表の主キーの非シャード部分として使用されます。これは、
defaultSchema
がtrueに設定され、ソースがdynamodb_json
の場合にのみ適用されます。詳細は、Oracle NoSQLタイプへのDynamoDBタイプのマッピングを参照してください。 - 必須: No
- 例:
"DDBSortKey" : "Skey:STRING"
ノート
ソート・キーにダッシュ(- )またはドット(.)が含まれている場合、NoSQL列名はドットおよびダッシュをサポートしていないため、マイグレータはそれをアンダースコア(_)に置き換えます。
上書き
-
目的: ソースから移行されるレコードがすでにシンクに存在する場合のNoSQL Database Migratorの動作を示します。
値がfalseに設定されている場合、NoSQL Database Migratorは、シンクに同じ主キーがすでに存在しているレコードをスキップします。
値がtrueに設定されている場合、表を移行すると、NoSQL Database Migratorによって、同じ主キーがすでにシンクに存在するレコードが上書きされます。
指定しない場合、デフォルトでtrueに設定されます。
- データ型: boolean
- 必須(Y/N): N
- 例:
"overwrite" : false
storeName
-
目的: Oracle NoSQL Databaseストアの名前。
- データ型: 文字列
- 必須(Y/N): Y
- 例:
"storeName" : "kvstore"
helperHosts
-
目的:
hostname:port
形式のホストとレジストリ・ポートのペアのリスト。リスト内の各項目をカンマを使用して区切ります。ヘルパー・ホストを少なくとも1つ指定する必要があります。 - データ型: 文字列の配列
- 必須(Y/N): Y
- 例:
"helperHosts" : ["localhost:5000","localhost:6000"]
セキュリティ
-
目的:
ストアがセキュアなストアの場合は、ストア資格証明を含むセキュリティ・ログイン・ファイルへの絶対パスを指定します。セキュリティーログインファイルの詳細は、Configuring Security with Remote Access in Administrator's Guideを参照してください。
パスワード・ファイル・ベースの認証またはウォレット・ベースの認証のいずれかを使用できます。ただし、ウォレット・ベースの認証は、Enterprise Edition (EE)のOracle NoSQL Databaseでのみサポートされます。ウォレット・ベースの認証の詳細は、「ソースおよびシンク・セキュリティ」を参照してください。
- データ型: 文字列
- 必須(Y/N): セキュア・ストアの場合はY
- 例:
"security" : "
/home/user/client.credentials
"パスワード・ファイル・ベース認証のセキュリティ・ファイルのコンテンツの例:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.pwdfile.file=/home/nosql/login.passwd oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)
Walletベースの認証のセキュリティ・ファイルのコンテンツの例:
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
-
目的: シンク内の各書込み操作が完了するまで待機する時間を指定します。これはミリ秒単位で提供されます。デフォルト値は5000です。値には、任意の正の整数を指定できます。
- データ型: 整数
- 必須(Y/N): N
- 例:
"requestTimeoutMs" : 5000
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データベース・マイグレータ・ツールによって、行がインポートされたときに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日に設定します。これは、表の行のインポート時に参照時間として使用されます。
Oracle NoSQL Database Cloud Service
NoSQL Database MigratorのシンクとしてのOracle NoSQL Database Cloud Serviceの構成ファイル形式を次に示します。
構成テンプレート
"sink" : {
"type" : "nosqldb_cloud",
"endpoint" : "<Oracle NoSQL Cloud Service Endpoint>",
"table" : "<table name>",
"compartment" : "<OCI compartment name or id>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>",
"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" : "<oci credentials profile name>",
"writeUnitsPercent" : <table writeunits percent>,
"requestTimeoutMs" : <timeout in milli seconds>,
"useInstancePrincipal" : <true|false>,
"overwrite" : <true|false>,
"includeTTL": <true|false>,
"ttlRelativeDate" : "<date-to-use in UTC>"
}
シンク・パラメータ
- タイプで打つ
- エンドポイント
- テーブル
- コンパートメント
- schemaInfo
- schemaInfo.schemaPath
- schemaInfo.defaultSchema
- schemaInfo.useSourceSchema
- schemaInfo.DDBPartitionKey
- schemaInfo.DDBSortKey
- schemaInfo.onDemandThroughput
- schemaInfo.readUnits
- schemaInfo.writeUnits
- SchemaInfo.storageSize
- 資格証明
- credentialsProfile
- writeUnitsPercent
- requestTimeoutMs
- useInstancePrincipal
- 上書き
- includeTTL
- ttlRelativeDate
タイプで打つ
-
目的: シンク・タイプを識別します。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
"type" : "nosqldb_cloud"
エンドポイント
-
目的: Oracle NoSQL Database Cloud Serviceのサービス・エンドポイントを指定します。
完全なURLまたはリージョンIDのみを指定できます。Oracle NoSQL Database Cloud Serviceでサポートされているデータ・リージョンのリストは、Oracle NoSQL Database Cloud Serviceの使用のデータ・リージョンと関連サービスのURLを参照してください。
- データ型: 文字列
- 必須(Y/N): Y
-
例:
-
リージョンID:
"endpoint" : "us-ashburn-1"
-
URL形式:
"endpoint" : "https://nosql.us-ashburn-1.oci.oraclecloud.com/"
-
テーブル
-
目的: データの移行先となる表の名前。
この表が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を指定します。
値を指定しないと、rootコンパートメントにデフォルト設定されます。
コンパートメントのOCIDは、「コンパートメント・エクスプローラ」ウィンドウの「ガバナンス」のOCIクラウド・コンソールにあります。
- データ型: 文字列
- 必須(Y/N): 表がテナンシのルート・コンパートメントにない場合、またはuseInstancePrincipalパラメータがtrueに設定されている場合、Y。
ノート
useInstancePrincipalパラメータがtrueに設定されている場合、コンパートメントは名前ではなくコンパートメントOCIDを指定する必要があります。 - 例:
-
コンパートメント名
"compartment" : "mycompartment"
-
親コンパートメントで修飾されたコンパートメント名
"compartment" : "parent.childcompartment"
-
値が指定されていません。デフォルトでは、ルート・コンパートメントに設定されます。
"compartment": ""
-
コンパートメントOCID
"compartment" : "ocid1.tenancy.oc1...4ksd"
-
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 (
schemaInfo.defaultSchema
パラメータが「いいえ」に設定されている場合のみ)。
schemaInfo.defaultSchema
-
用途: このパラメータをYesに設定すると、NoSQL Database Migratorではデフォルト・スキーマを使用して表が作成されます。デフォルト・スキーマは、マイグレータ自体によって定義されます。デフォルト・スキーマ定義の詳細は、Oracle NoSQL Database Migratorの使用の「デフォルト・スキーマ」を参照してください。
-
データ型: boolean
-
必須: Y (
schemaInfo.defaultSchema
パラメータが「いいえ」に設定されている場合のみ)。ノート
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
の場合にのみ適用されます。詳細は、Oracle NoSQLタイプへのDynamoDBタイプのマッピングを参照してください。 - 必須:
defaultSchema
がtrueで、ソースがdynamodb_jsonの場合、はい。
- 例:
"DDBPartitionKey" : "PersonID:INTEGER"
ノート
パーティション・キーにダッシュ(- )またはドット(.)が含まれている場合、NoSQL列名はドットおよびダッシュをサポートしていないため、マイグレータはそれをアンダースコア(_)に置き換えます。
schemaInfo.DDBSortKey
- 目的: ターゲットのOracle NoSQL Database表で使用するDynamoDBソート・キーおよび対応するOracle NoSQL Databaseタイプを指定します。インポートするDynamoDB表にソート・キーがない場合、これは設定しないでください。このキーは、NoSQL DB表の主キーの非シャード部分として使用されます。これは、
defaultSchema
がtrueに設定され、ソースがdynamodb_json
の場合にのみ適用されます。詳細は、Oracle NoSQLタイプへのDynamoDBタイプのマッピングを参照してください。 - 必須: No
- 例:
"DDBSortKey" : "Skey:STRING"
ノート
ソート・キーにダッシュ(- )またはドット(.)が含まれている場合、NoSQL列名はドットおよびダッシュをサポートしていないため、マイグレータはそれをアンダースコア(_)に置き換えます。
schemaInfo.onDemandThroughput
- 目的: オンデマンドの読取りおよび書込みスループットを使用して表を作成することを指定します。このパラメータが設定されていない場合、表はプロビジョニングされた容量で作成されます。
デフォルト値は
false
です。ノート
このパラメータは、最上位の親表のスループットを共有するため、子表には適用できません。 -
データ型: ブール
-
必須: N
- 例:
"onDemandThroughput" : "true"
schemaInfo.readUnits
- 目的: 新しい表の読取りスループットを指定します。
ノート
- このパラメータは、オンデマンド容量がプロビジョニングされた表には適用できません。
- このパラメータは、最上位の親表の読取りスループットを共有するため、子表には適用できません。
-
データ型: 整数
-
必須: 表が子表でない場合、またはschemaInfo.onDemandThroughputパラメータが
false
に設定されている場合にY、それ以外の場合はN。 - 例:
"readUnits" : 100
schemaInfo.writeUnits
- 目的: 新しい表の書込みスループットを指定します。
ノート
- このパラメータは、オンデマンド容量がプロビジョニングされた表には適用できません。
- このパラメータは、最上位の親表の書込みスループットを共有するため、子表には適用できません。
-
データ型: 整数
-
必須: 表が子表でない場合、またはschemaInfo.onDemandThroughputパラメータが
false
に設定されている場合にY、それ以外の場合はN。 - 例:
"writeUnits" : 100
SchemaInfo.storageSize
- 目的: 新しい表の記憶域サイズをGBで指定します。
ノート
このパラメータは、最上位の親表の記憶域サイズを共有するため、子表には適用できません。 -
データ型: 整数
-
必須: 表が子表でない場合は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 }
-
資格証明
-
用途: OCI資格証明を含むファイルへの絶対パス。
指定しない場合は、デフォルトで
$HOME/.oci/config
に設定されます。資格証明ファイルの例は、構成の例を参照してください。
ノート
credentialsおよびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentials" : "/home/user/.oci/config"
"credentials" : "/home/user/security/config"
credentialsProfile
-
目的: Oracle NoSQL Database Cloud Serviceへの接続に使用される構成プロファイルの名前。
この値を指定しない場合は、デフォルトで
DEFAULT
プロファイルに設定されます。ノート
このパラメータは、credentialsパラメータが指定されている場合のみ有効です。 - データ型: 文字列
- 必須(Y/N): N
- 例:
"credentialsProfile" : "DEFAULT"
"credentialsProfile": "ADMIN_USER"
writeUnitsPercent
-
目的: 移行アクティビティ中に使用される表書込みユニットの割合を指定します。
デフォルトの値は90です。有効な範囲は、1から100までの任意の整数です。
ノート
データ移行に必要な時間は、writeUnitsPercent
値に直接比例します。この属性を使用してデータ移行速度を向上させる方法を学習するには、Oracle NoSQL Databaseマイグレータのトラブルシューティングを参照してください。
- データ型: 整数
- 必須(Y/N): N
- 例:
"writeUnitsPercent" : 90
requestTimeoutMs
-
目的: シンク内の各書込み操作が完了するまで待機する時間を指定します。これはミリ秒単位で提供されます。デフォルト値は5000です。値には、任意の正の整数を指定できます。
- データ型: 整数
- 必須(Y/N): N
- 例:
"requestTimeoutMs" : 5000
useInstancePrincipal
-
用途: NoSQL Migratorツールでインスタンス・プリンシパル認証を使用してOracle NoSQL Database Cloud Serviceに接続するかどうかを指定します。Instance Principalの認証方法の詳細は、ソースとシンクのセキュリティを参照してください
指定しなかった場合は、デフォルトでFalseに設定されます。
ノート
- OCIコンピュート・インスタンス内でNoSQL Database Migratorツールが実行されている場合にのみサポートされます。たとえば、OCIでホストされているVMで実行されているNoSQL Database Migratorツールなどです。
- credentialsおよびuseInstancePrincipalパラメータは個別に必須ではありませんが、これらのパラメータの1つを指定する必要があります。また、この2つのパラメータは同時に排他的です。これらのパラメータのうち1つのみを指定しますが、両方を同時に指定することはできません。
- データ型: boolean
- 必須(Y/N): N
-
例:
"useInstancePrincipal" : true
上書き
-
目的: ソースから移行されるレコードがすでにシンクに存在する場合のNoSQL Database Migratorの動作を示します。
値がfalseに設定されている場合、NoSQL Database Migratorは、シンクに同じ主キーがすでに存在しているレコードをスキップします。
値がtrueに設定されている場合、表を移行すると、NoSQL Database Migratorによって、同じ主キーがすでにシンクに存在するレコードが上書きされます。
指定しない場合、デフォルトでtrueに設定されます。
- データ型: boolean
- 必須(Y/N): N
- 例:
"overwrite" : false
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データベース・マイグレータ・ツールによって、行がインポートされたときに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)
です。
- データ型: ブール
- 必須(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日に設定します。これは、表の行のインポート時に参照時間として使用されます。
変換構成テンプレート
このトピックでは、Oracle NoSQL Database Migratorでサポートされている様々な変換の構成パラメータについて説明します。
Oracle NoSQL Database Migratorでは、データを変更したり、移行アクティビティの一部としてデータ変換を追加できます。1つの移行で複数の変換を定義できます。このような場合、ソース・データが特定の順序で各変換を受けるため、変換の順序は重要です。1つの変換の出力は、マイグレータ・パイプラインの次の変換への入力になります。
表9-7変換
変換構成属性 | この変換を使用して、次のことを実行できます。 |
---|---|
ignoreFields |
シンクに書き込む前に、ソース行から識別された列を無視します。 |
includeFields |
シンクに書き込む前に、ソース行の識別された列を含めます。 |
renameFields |
シンクに書き込む前に、識別された列の名前をソース行から変更します。 |
aggregateFields |
ソースの複数の列を、シンク内の1つの列に集約します。この変換の一部として、集計で除外する列を識別することもできます。これらのフィールドは集計列からスキップされます。 |
サポートされている各変換の構成テンプレートは、次のとおりです。
ignoreFields
ignoreFields
変換の構成ファイル形式を次に示します。
構成テンプレート
"transforms" : {
"ignoreFields" : ["<field1>","<field2>",...]
}
変換パラメータ
ignoreFields
-
目的: ソース・レコードから無視される列名の配列。
ノート
入力できるのはトップレベルのフィールドのみです。ネストされたフィールドのデータには変換を適用できません。 - データ型: 文字列の配列
- 必須(Y/N): Y
-
例:ソース・レコードから「name」および「address」という名前の列を無視するには:
"ignoreFields" : ["name","address"]
includeFields
includeFields
変換の構成ファイル形式を次に示します。
構成テンプレート
"transforms" : {
"includeFields" : ["<field1>","<field2>",...]
}
変換パラメータ
includeFields
-
目的: ソース・レコードから含める列名の配列。配列で指定されたフィールドのみが含まれ、残りのフィールドは無視されます。
ノート
空の配列を指定すると、NoSQL Database Migratorツールによってエラーがスローされます。また、最上位フィールドのみを指定できます。NoSQL Database Migratorツールは、ネストされたフィールドのデータに変換を適用しません。 - データ型: 文字列の配列
- 必須(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
-
例: "residence"という名前の列を"address"に変更し、"_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型のマッピングを示します。
表9- 8 DynamoDB型からOracle NoSQL型へのマッピング
番号 | DynamoDBタイプ | NoSQL JSON列のJSONタイプ | Oracle NoSQL型 |
---|---|---|---|
1 | 文字列(S) | JSON文字列 | 文字列 |
2 | 数値タイプ(N) | JSON数値 | 整数/長/フロート/ダブル/数値 |
3 | ブール(BOOL) | JSONブール | ブール |
4 | バイナリ型(B) - バイトバッファー | BASE-64でエンコードされたJSON文字列 | バイナリ |
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 | パーティション鍵 | ナナ | 主キーとシャード・キー |
12 | ソート・キー | ナナ | 主キー |
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型 |
---|---|
ブール | ブール |
整数 | INT32 |
長い | INT64 |
浮動小数点数 | ダブル |
ダブル | ダブル |
バイナリ | バイナリ |
FIXED_BINARY | バイナリ |
文字列 | バイナリ(文字列) |
列挙 | バイナリ(文字列)
または 論理ENUMが構成されている場合、BINARY(ENUM) |
UUID | バイナリ(文字列)
または 論理UUIDが構成されている場合、FIXED_BINARY(16) |
TIMESTAMP(p) | INT64(TIMESTAMP(p)) |
数値 | ダブル |
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.NEGATIVE_INFINITYまたはDouble.POSITIVE_INFINITYに変換されます。
DynamoDB表のOracle NoSQL表へのマッピング
DynamoDBでは、表は項目のコレクションであり、各項目は属性のコレクションです。表内の各項目には、一意の識別子または主キーがあります。主キー以外に、表はスキーマレスです。各アイテムには固有の属性を設定できます。
- パーティションキー - パーティションキーと呼ばれる1つの属性で構成される単純な主キー。DynamoDBは、内部ハッシュ関数の入力としてパーティション・キーの値を使用します。ハッシュ関数からの出力によって、アイテムが格納されるパーティションが決まります。
- パーティション・キーおよびソート・キー - 複合主キーとして、このタイプのキーは2つの属性で構成されます。最初の属性はパーティション・キーで、2番目の属性はソート・キーです。DynamoDBは、内部ハッシュ関数の入力としてパーティション・キー値を使用します。ハッシュ関数からの出力によって、アイテムが格納されるパーティションが決まります。同じパーティション・キー値を持つすべてのアイテムは、ソート・キー値でソートされた順序でまとめて保存されます。
これに対し、OracleのNoSQL表は、スキーマとスキーマレスの両方の設計で柔軟なデータ・モデルをサポートしています。
- JSONドキュメントとしてのDynamoDB表のモデル化(推奨): このモデリングでは、Dynamo DB表のすべての属性を、パーティション・キーおよびソート・キーを除くNoSQL表のJSON列にマッピングします。パーティション・キーおよびソート・キーは、NoSQL表の主キー列としてモデル化します。非主キー・データをJSON列に集計するには、
AggregateFields
変換を使用します。ノート
Migratorには、わかりやすい構成defaultSchema
が用意されており、JSON列に属性を集計するスキーマレスDDL表が自動的に作成されます。 - NoSQL表の固定列としてのDynamoDB表のモデル化: このモデリングでは、DynamoDB表の属性ごとに、Oracle NoSQLタイプへのDynamoDBタイプのマッピングで指定されているように、NoSQL表に列を作成します。パーティション・キーおよびソート・キー属性を主キーとしてモデル化します。これは、DynamoDB表スキーマのインポートが固定されており、各アイテムにほとんどの属性の値があることを確認する場合にのみ使用する必要があります。DynamoDBアイテムに共通属性がない場合、NoSQL列が多くなり、値が空になる可能性があります。
ノート
DynamoDB表の性質がスキーマレスであるため、DynamoDBからOracle NoSQL Databaseにデータを移行する場合は、スキーマレス表を使用することを強くお薦めします。これは特に、表全体で各レコードの内容が均一ではない大規模な表の場合です。
Oracle NoSQL Databaseマイグレータのトラブルシューティング
の使用中に直面する可能性のある一般的な課題と、その解決方法について学習します。
移行に失敗しました。この問題を解決するにはどうすればよいですか。
データ移行の失敗は、基礎となる複数の理由による可能性があります。重要な原因を次に示します。
表9- 9移行の失敗の原因
エラー・メッセージ | 意味 | 解決策 |
---|---|---|
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
ファイルのコメントを表示して、各ログ・レベルを確認できます。