Oracle NoSQL Database Migratorリファレンス
Oracle NoSQL Database Migratorで使用可能なソース、シンクおよび変換構成テンプレート・パラメータについて学習します。
この記事には次のトピックが含まれます:
Parameters
NoSQL Database Migratorには、移行アクティビティを実行するためのすべてのパラメータを定義する構成ファイルが必要です。いくつかのパラメータは複数のソースとシンクに共通しています。このトピックでは、これらの共通パラメータのリストを示します。個々のソースまたはシンクに固有のその他のパラメータのリストについては、対応する構成テンプレートのセクションを参照してください。
共通の構成パラメータ
次に、共通の構成パラメータを示します。例については、個々の構成テンプレートのセクションを参照してください。
-
目的:ソース/シンク・オブジェクトを含むOCIオブジェクト・ストレージ・バケットの名前を指定します。
必要なバケットがOCIオブジェクト・ストレージ・インスタンスにすでに存在し、読取り/書込み権限があることを確認してください。
-
データ型:文字列
-
必須(Y/N): Y
-
用途:シンクに格納される表データの
chunkの最大サイズを指定します。値はMB単位です。移行時に、表はchunkSizeのチャンクスに分割され、各チャンクは別個のファイルとしてシンックに書き込まれます。移行するソース・データがchunkSize値を超えると、新しいファイルが作成されます。指定しない場合、デフォルトは32MBです。有効な値は1から1024までの整数です。
chunkSizeパラメータを使用して移行速度を向上させる方法の詳細は、ベスト・プラクティスを参照してください。 -
データ型:整数
-
必須(Y/N): N
-
用途: OCI資格証明を含むファイルへの相対パスを指定します。NoSQL Database Migratorは、このファイルを使用して、Oracle NoSQL Database Cloud Service、OCIオブジェクト・ストレージなどのOCIサービスに接続します。
デフォルト値は
$HOME/.oci/configです資格証明ファイルの例は、構成例を参照してください。
ノート:選択できる認証オプションは1つのみです。したがって、構成テンプレートでは、
credentials、useDelegationToken、useSessionTokenまたはuseOKEWorkloadIdentityのいずれかのパラメータのみを指定します。 -
データ型:文字列
-
必須(Y/N): N
-
用途: Oracle NoSQL Database Cloud Service、OCIオブジェクト・ストレージなどのOCIサービスに接続するために使用する構成プロファイルの名前を指定します。ユーザー・アカウント資格証明は、プロファイルと呼ばれます。
この値を指定しない場合、NoSQL Database Migratorは
DEFAULTプロファイルを使用します。ノート:このパラメータは、credentialsパラメータが指定されている場合にのみ有効です。
-
データ型:文字列
-
必須(Y/N): N
-
用途:次のいずれかを指定します:
-
OCIオブジェクト・ストレージ・サービスのサービス・エンドポイントURLまたはリージョンID。OCIオブジェクト・ストレージ・サービス・エンドポイントのリストは、オブジェクト・ストレージ・エンドポイントを参照してください
-
Oracle NoSQL Database Cloud Serviceのサービス・エンドポイントURLまたはリージョンID。完全なURLまたはリージョンIDのみを指定できます。Oracle NoSQL Database Cloud Serviceでサポートされるデータ・リージョンのリストについては、Oracle NoSQL Database Cloud Serviceドキュメントのデータ・リージョンおよび関連するサービスのURLに関する項を参照してください。
-
-
データ型:文字列
-
必須(Y/N): Y
-
用途: ソース/シンクの形式を指定します。
-
データ型:文字列
-
必須(Y/N): Y
-
用途: OCIオブジェクト・ストレージ・サービスのネームスペースを指定します。これはオプション・パラメータです。このパラメータを指定しない場合、Migratorユーティリティはテナンシに割り当てられたネームスペースを使用します。
たとえば、ネームスペース・パラメータは、ユーザーとは異なるテナンシからOCI OSを使用する場合に役立ちます。このような場合、OCI OSテナンシのネームスペースはテナンシのネームスペースとは異なります。移行中、特に指定されていないかぎり、Migratorユーティリティはテナンシのネームスペースにデフォルト設定されます。したがって、MigratorユーティリティでOCI OSテナンシのネームスペースを選択するように指示するには、ネームスペース・パラメータでOCI OSテナンシの名前を指定する必要があります。
-
データ型:文字列
-
必須(Y/N): N
-
用途:接頭辞は、OCIオブジェクト・ストレージ・バケットにデータを格納するための論理コンテナまたはディレクトリとして機能します
-
ソース構成テンプレート:
prefixパラメータが指定されている場合、prefixパラメータで指定されたディレクトリのすべてのオブジェクトが移行されます。それ以外の場合は、バケットに存在するすべてのオブジェクトが移行されます。 -
シンク構成テンプレート:
prefixパラメータが指定されている場合、指定した接頭辞を持つディレクトリがバケットに作成され、オブジェクトがこのディレクトリに移行されます。それ以外の場合は、ソースの表名が接頭辞として使用されます。同じ名前のオブジェクトがバケットにすでに存在する場合、そのオブジェクトは上書きされます。
接頭辞の詳細は、接頭辞および階層を使用したオブジェクト・ネーミングに関する項を参照してください。
-
-
データ型:文字列
-
必須(Y/N): N
-
用途:ストアからの各読取り操作またはストアへの各読取り操作が完了するまで待機する時間を指定します。これはミリ秒単位で指定します。デフォルト値は5000です。値には、任意の正の整数を指定できます。
-
データ型: integer
-
必須(Y/N): N
-
用途:ストアがセキュア・ストアである場合に、ストア資格証明を含むセキュリティ・ログイン・ファイルへの絶対パスを指定しますセキュリティ・ログイン・ファイルの詳細は、「セキュアなOracle NoSQL Databaseインストールの実行」を参照してください。
パスワード・ファイル・ベースの認証またはウォレット・ベースの認証のいずれかを使用できます。ただし、ウォレット・ベースの認証は、Oracle NoSQL DatabaseのEnterprise Edition (EE)でのみサポートされます。ウォレット・ベースの認証の詳細は、「ソースおよびシンク・セキュリティ」を参照してください
Community Edition (CE)エディションでは、パスワード・ファイル・ベースの認証のみがサポートされます。
-
データ型:文字列
-
必須(Y/N): Y、 (セキュアなストアの場合)
-
用途: ソース/シンク・タイプを識別します。
-
データ型:文字列
-
必須(Y/N): Y
-
用途: NoSQL Database Migratorツールが委任トークン認証を使用してOCIサービスに接続するかどうかを指定します。クラウド・シェルから移行ユーティリティを実行するには、委任トークン認証を使用する必要があります。委任トークンは、クラウド・シェルの起動時にユーザーに対して自動的に作成されます。
デフォルト値は
falseです。次の点に注意してください:
-
委任トークンを使用した認証は、NoSQL Database Migratorツールがクラウド・シェルから実行されている場合にのみサポートされます。
-
認証オプションは1つのみ選択できます。したがって、構成テンプレートでは、credentials、useInstancePrincipal、
useDelegationToken、useSessionTokenまたはuseOKEWorkloadIdentityのいずれかのパラメータのみを指定します。 -
クラウド・シェルでは、次のソースとシンク間の移行のみがサポートされます。
入力してください 有効なソース 有効なシンク Oracle NoSQL Database Cloud Service( nosqldb_cloud)あり あり ファイル(ホーム・ディレクトリのJSONファイル) あり あり OCI Object Storage(JSONファイル) ( object_storage_oci)あり あり OCIオブジェクト・ストレージ(Parquetファイル)( object_storage_oci)なし あり
-
-
データ型: boolean
-
必須(Y/N): N
-
用途: NoSQL Database Migratorツールでインスタンス・プリンシパル認証を使用して、Oracle NoSQL Database Cloud Service、OCI Object StorageなどのOCIサービスに接続するかどうかを指定します。Instance Principal認証方法の詳細は、「ソースとシンクのセキュリティ」を参照してください。
デフォルト値は
falseです。ノート:
-
Instance Principalsによる認証は、OCIでホストされるVMで実行されているNoSQL Database Migratorツールなど、OCIコンピュート・インスタンス内でNoSQL Database Migratorツールが実行されている場合にのみサポートされています。
-
認証オプションは1つのみ選択できます。したがって、構成テンプレートでは、credentials、
useInstancePrincipal、useDelegationToken、useSessionTokenまたはuseOKEWorkloadIdentityのいずれかのパラメータのみを指定します。
-
-
データ型: boolean
-
必須(Y/N): N
-
目的: NoSQL Database Migratorツールでワークロード・アイデンティティ認証(WIA)を使用して、Oracle Kubernetes Engine (OKE)ポッドからOCI Object StorageおよびOracle NoSQL Database Cloud Serviceにアクセスするかどうかを指定します。
デフォルト値は
falseです。 -
データ型: boolean
-
必須(Y/N): N
サンプル・ユース・ケースについては、OKE認証を使用したOCI Object StorageからOracle NoSQL Database Cloud Serviceへの移行を参照してください。
ノート:選択できる認証オプションは1つのみです。したがって、構成テンプレートでは、credentials、useInstancePrincipal、useDelegationToken、useSessionTokenまたはuseOKEWorkloadIdentityのいずれかのパラメータのみを指定します。
-
目的: NoSQL Database Migratorツールを使用して、OCI Object Storage (OCI OS)やOracle NoSQL Database Cloud ServiceなどのOCIサービスに接続するためにセッション・トークン認証を使用するかどうかを指定します。デフォルト値は
falseです。 -
データ型: boolean
-
必須(Y/N): N
セッション・トークン・ベースの認証を使用するには、OCIコマンドライン・インタフェース(CLI)コマンドを使用してセッション・トークンを生成する必要があります。サンプルのユースケースは、「セッション・トークン認証を使用したOracle NoSQL DatabaseからOCIオブジェクト・ストレージへの移行」を参照してください。
ノート:
-
セッション・トークン認証を使用する場合、資格証明パラメータにOCI構成ファイルへのパスを指定し、credentialsProfileパラメータでセッション・トークンの生成時に使用されるプロファイルを指定する必要があります。構成テンプレートで資格証明パラメータを設定しない場合、Migratorユーティリティはパス
$HOME/.ociで資格証明ファイルを検索します。構成テンプレートでcredentialsProfileパラメータを設定しない場合、MigratorユーティリティはOCI構成ファイルからデフォルトのプロファイル名(DEFAULT)を使用します。Migratorユーティリティが資格証明ファイルを見つけられない場合、移行は失敗し、OCI資格証明ファイルが存在しないことを示すエラー・メッセージが表示されます。
-
認証オプションは1つのみ選択できます。したがって、構成テンプレートでは、credentials、useInstancePrincipal、useDelegationToken、
useSessionTokenまたはuseOKEWorkloadIdentityのいずれかのパラメータのみを指定します。
ソース構成テンプレート
有効な各ソースのソース構成ファイル書式および各構成パラメータの用途について学習します。
構成ファイル・テンプレートについては、NoSQL Data Migratorで使用される用語の構成ファイルに関する項を参照してください。
各ソースの有効なシンク形式の詳細は、シンク構成テンプレートを参照してください。
トピック
次のトピックでは、特定のソースから有効なシンクへのデータのコピーのためにOracle NoSQL Database Migratorによって参照されるソース構成テンプレートを説明します。
-
JSONデータを含む指定されたファイルまたはディレクトリ。
-
OCIオブジェクト・ストレージ・バケット内の指定されたJSONファイル。
-
MongoDB形式のJSONデータを含む指定されたファイルまたはディレクトリ。
-
OCIオブジェクト・ストレージ・バケット内のMongoDB形式のJSONファイル
OCIオブジェクト・ストレージ・バケットに格納されている指定されたMongoDBでエクスポートされたJSONファイル。
-
AWS S3に格納されたDynamoDB形式のJSONファイル
AWS S3ストレージに格納されている指定されたDynamoDBでエクスポートされたJSONファイル。
-
ファイル・システムから指定されたDynamoDBでエクスポートされたJSONファイル。
-
Oracle NoSQL Databaseで指定された表。
-
Oracle NoSQL Database Cloud Service
Oracle NoSQL Database Cloud Serviceで指定された表。
-
CSVデータを含む指定されたファイルまたはディレクトリ。
-
OCIオブジェクト・ストレージ・バケット内の指定されたCSVファイル。
JSONファイル・ソース
NoSQL Database MigratorのソースとしてのJSONファイルの構成ファイル形式を次に示します。
ソース構成テンプレートでファイル・パスまたはディレクトリを指定することで、JSONソース・ファイルを移行できます。
サンプルJSONソース・ファイルは次のとおりです。
{"id":6,"val_json":{"array":["q","r","s"],"date":"2023-02-04T02:38:
57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-03-04T02:38:57.520Z","numfield":30,"strfield":"foo54"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":56,"strfield":"bar23"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
{"id":3,"val_json":{"array":["g","h","i"],"date":"2023-02-02T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-02T02:38:57.520Z","numfield":28,"strfield":"foo3"},{"datefield":"2023-02-02T02:38:57.520Z","numfield":38,"strfield":"bar"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
ソース構成テンプレート
"source": {
"type": "file",
"format": "json",
"dataPath": "<path/to/JSON/[file|dir]>",
"schemaInfo": {
"schemaPath": "<path/to/schema/file>"
}
},
ソース・パラメータ
共通の構成パラメータ
一意の構成パラメータ
-
用途:移行するJSONデータを含むファイルまたはディレクトリに対する絶対パスを指定します。
このデータがシンクで定義されているNoSQL表スキーマと一致することを確認する必要があります。ディレクトリを指定すると、NoSQL Database Migratorによって、そのディレクトリ内の拡張子が
.jsonのすべてのファイルが移行対象として識別されます。サブディレクトリはサポートされていません。 -
データ型:文字列
-
必須(Y/N): Y
-
例:
-
JSONファイルの指定
"dataPath" : "/home/user/sample.json" -
ディレクトリを指定しています
"dataPath" : "/home/user"
-
-
用途: 移行対象のソース・データのスキーマを指定します。このスキーマはNoSQLシンクに渡されます。
-
データ型:オブジェクト
-
必須(Y/N): N
-
用途: 移行対象のNoSQL表のDDL文を含むスキーマ定義ファイルへの絶対パスを指定します。
-
データ型:文字列
-
必須(Y/N): Y
-
例:
"schemaInfo": { "schemaPath": "<path to the schema file>" }
OCIオブジェクト・ストレージ・バケットのJSONファイル
NoSQL Database MigratorのソースとしてのOCIオブジェクト・ストレージ・バケットのJSONファイルの構成ファイル形式を次に示します。
ソース構成テンプレートでバケットの名前を指定することで、OCIオブジェクト・ストレージ・バケット内のJSONファイルを移行できます。
OCIオブジェクト・ストレージ・バケットのサンプルJSONソース・ファイルは次のとおりです:
{"id":6,"val_json":{"array":["q","r","s"],"date":"2023-02-04T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-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-04T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-04T02:38:57.520Z","numfield":28,"strfield":"foo3"},{"datefield":"2023-02-04T02: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>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <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" : "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" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
例:
"useInstancePrincipal" : true -
例:
"useDelegationToken" : trueノート:委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。
-
例:
"useOKEWorkloadIdentity" : true -
例:
"useSessionToken" : true
一意の構成パラメータ
-
用途: 移行対象のソース・データのスキーマを指定します。このスキーマはNoSQLシンクに渡されます。
-
データ型:オブジェクト
-
必須(Y/N): N
-
用途: 移行対象データのNoSQL表スキーマ定義が格納されるバケット内のオブジェクトの名前を指定します。
-
データ型:文字列
-
必須(Y/N): Y
-
例:
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" },
MongoDB形式のJSONファイル
NoSQL Database MigratorのソースとしてのMongoDB形式のJSONファイルの構成ファイル形式を次に示します。
ソース構成テンプレートでファイルまたはディレクトリを指定することで、MongoDBでエクスポートされたJSONデータを移行できます。
MongoDBは、正規モードおよび緩和モードの2種類のファイルのJSON形式に対する拡張をサポートしています。mongoexportツールを使用して正規モードでまたは緩和モードで生成されるMongo DB形式のJSONファイルを指定することができます。どちらのモードでも、移行のためにNoSQL Database Migratorでサポートされています。
MongoDB Extended JSON (v2)ファイルの詳細は、mongoexport_formatsを参照してください。
MongoDB形式のJSONファイルの生成の詳細は、mongoexportを参照してください。
MongoDB形式の緩和モードのJSONファイルのサンプルを次に示します:
{"_id":0,"name":"Aimee Zank","scores":[{"score":
1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}
ソース構成テンプレート
"source": {
"type": "file",
"format": "mongodb_json",
"dataPath": "</path/to/json/[file|dir]>",
"schemaInfo": {
"schemaPath": "</path/to/schema/file>"
}
}
ソース・パラメータ
共通の構成パラメータ
一意の構成パラメータ
-
用途: MongoDBでエクスポートされた、移行するJSONデータを含むファイルまたはディレクトリに対する絶対パスを指定します。
mongoexportツールを使用して生成されるMongoDB形式のJSONファイルを指定できます。
ディレクトリを指定すると、NoSQL Database Migratorによって、そのディレクトリ内の拡張子が
.jsonのすべてのファイルが移行対象として識別されます。サブディレクトリはサポートされていません。このデータがシンクで定義されているNoSQL表スキーマと一致することを確認する必要があります。 -
データ型:文字列
-
必須(Y/N): Y
-
例:
-
MongoDB形式のJSONファイルの指定
"dataPath" : "/home/user/sample.json" -
ディレクトリを指定しています
"dataPath" : "/home/user"
-
-
用途: 移行対象のソース・データのスキーマを指定します。このスキーマは有効なシンクに渡されます。
-
データ型:オブジェクト
-
必須(Y/N): N
-
用途:移行対象のNoSQL表のDDL文を含むスキーマ定義ファイルへの絶対パスを指定します。
-
データ型:文字列
-
必須(Y/N): Y
-
例:
"schemaInfo" : { "schemaPath" : "/home/user/mytable/Schema/schema.ddl" }
OCIオブジェクト・ストレージ・バケット内のMongoDB形式のJSONファイル
NoSQL Database MigratorのソースとしてのOCIオブジェクト・ストレージ・バケットのMongoDB形式のJSONファイルの構成ファイルの形式を次に示します。
ソース構成テンプレートでバケットの名前を指定することで、OCIオブジェクト・ストレージ・バケットにMongoDBでエクスポートされたJSONデータを移行できます。
mongoexportユーティリティを使用してMongoDBからデータを抽出し、OCIオブジェクト・ストレージ・バケットにアップロードします。詳細は、mongoexportを参照してください。MongoDBは、正規モードおよび緩和モードの2種類のファイルのJSON形式に対する拡張をサポートしています。どちらの形式も、OCIオブジェクト・ストレージ・バケットでサポートされています。
MongoDB形式の緩和モードのJSONファイルの例を次に示します。
{"_id":0,"name":"Aimee Zank","scores":[{"score":1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}
ノート: OCIオブジェクト・ストレージのソース・タイプの有効なシンク・タイプは、nosqldbおよびnosqldb_cloudです。
ソース構成テンプレート
"source" : {
"type" : "object_storage_oci",
"format" : "mongodb_json",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"schemaInfo" : {
"schemaObject" : "<object name>"
},
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <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" : "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" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
例:
"useInstancePrincipal" : true -
例:
"useDelegationToken" : trueノート:委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。
-
例:
"useOKEWorkloadIdentity" : true -
例:
"useSessionToken" : true
一意の構成パラメータ
-
用途: 移行対象のソース・データのスキーマを指定します。このスキーマはNoSQLシンクに渡されます。
-
データ型:オブジェクト
-
必須(Y/N): N
-
用途: 移行対象データのNoSQL表スキーマ定義が格納されるバケット内のオブジェクトの名前を指定します。
-
データ型:文字列
-
必須(Y/N): Y
-
例:
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" }
AWS S3に格納されたDynamoDB形式のJSONファイル
NoSQL Database MigratorのソースとしてAWS S3にあるDynamoDB形式のJSONファイルの構成ファイル形式を次に示します。
ソース構成テンプレートでパスを指定することで、DynamoDBエクスポートされたJSONデータを含むファイルをAWS S3ストレージから移行できます。
DynamoDB形式のJSONファイルの例を次に示します。
{"Item":{"Id":{"N":"101"},"Phones":{"L":[{"L":[{"S":"555-222"},{"S":"123-567"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"570004"},"Street":{"S":"21 main"},"DoorNum":{"N":"201"},"City":{"S":"London"}}},"FirstName":{"S":"Fred"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"Smith"},"FavColors":{"SS":["Red","Green"]},"Age":{"N":"22"},"ttl": {"N": "1734616800"}}}
{"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"},"ttl": {"N": "1734616800"}}}
DynamoDB表をAWS S3ストレージにエクスポートするには、「Amazon S3へのDynamoDB表データのエクスポート」の説明に従ってください。
AWS S3に格納されているDynamoDB形式のJSONの有効なシンク・タイプは、nosqldbおよびnosqldb_cloudです。
ソース構成テンプレート
"source" : {
"type" : "aws_s3",
"format" : "dynamodb_json",
"ttlAttributeName" : "<DynamoDB exported TTL attribute name>",
"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である必要があります。
一意の構成パラメータ
-
用途: AWS S3に格納されているエクスポートされたDynamoDB表のURLを指定します。このURLは、AWSのS3コンソールから取得できます。有効なURL形式は
https://<bucket-name>.<s3_endpoint>/<prefix>です。NoSQL Database Migratorは、インポートする接頭辞内でjson.gzファイルを探します。ノート: 「Amazon S3にDynamoDB表データをエクスポート」の説明に従って、DynamoDB表をエクスポートする必要があります。
-
データ型:文字列
-
必須(Y/N): Y
-
例:
https://my-bucket.s3.ap-south-1.amazonaws.com/AWSDynamoDB/01649660790057-14f642be
-
用途: AWS資格証明を含むファイルへの絶対パスを指定します。指定しない場合は、デフォルトで
$HOME/.aws/credentialsに設定されます。資格証明ファイルの詳細は、構成および資格証明ファイルの設定を参照してください -
データ型:文字列
-
必須(Y/N): N
-
例:
"credentials" : "/home/user/.aws/credentials""credentials" : "/home/user/security/credentialsノート: NoSQL Database Migratorは、資格証明情報をログ記録しません。資格証明ファイルを不正アクセスから適切に保護する必要があります。
- 用途: AWS Sへの接続に使用するAWS資格証明ファイルのプロファイルの名前
- ユーザー・アカウント資格証明は、プロファイルと呼ばれます。この値を指定しない場合、NoSQL Database Migratorは
defaultプロファイルを使用します。資格証明ファイルの詳細は、構成および資格証明ファイルの設定を参照してください
- ユーザー・アカウント資格証明は、プロファイルと呼ばれます。この値を指定しない場合、NoSQL Database Migratorは
-
データ型:文字列
-
必須(Y/N): N
-
例:
"credentialsProfile" : "default""credentialsProfile" : "test"
-
目的:エクスポートされたDynamoDB表データに存在するTTL属性の名前を指定します。このパラメータを含めるのは、DynamoDB表データにTTL属性があり、NoSQL Databaseへのインポート中にインポートされたデータにTTL値を設定する場合のみです。
ノート: TTLメタデータを使用してインポートするには、シンク構成テンプレート(
nosqldbおよびnosqldb_cloud)でincludeTTL構成パラメータをtrueに設定する必要があります。 -
データ型:文字列
-
必須(Y/N): N
-
例:
"ttlAttributeName" : "ttl"
DynamoDB形式のJSONファイル
NoSQL Database MigratorのソースとしてDynamoDB形式のJSONファイルの構成ファイル形式を次に示します。
ソース構成テンプレートでパスを指定することで、DynamoDBがエクスポートしたJSONデータを含むファイルまたはディレクトリをファイル・システムから移行できます。
DynamoDB形式のJSONファイルの例を次に示します。
{"Item":{"Id":{"N":"101"},"Phones":{"L":[{"L":[{"S":"555-222"},{"S":"123-567"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"570004"},"Street":{"S":"21 main"},"DoorNum":{"N":"201"},"City":{"S":"London"}}},"FirstName":{"S":"Fred"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"Smith"},"FavColors":{"SS":["Red","Green"]},"Age":{"N":"22"},"ttl": {"N": "1734616800"}}}
{"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"},"ttl": {"N": "1734616800"}}}
エクスポートしたDynamoDB表データをAWS S3ストレージからローカルにマウントされたファイル・システムにコピーする必要があります。
DynamoDB JSONファイルの有効なシンク・タイプは、nosqldbおよびnosqldb_cloudです。
ソース構成テンプレート
"source" : {
"type" : "file",
"format" : "dynamodb_json",
"ttlAttributeName" : <DynamoDB exported TTL attribute name>,
"dataPath" : "<path/to/[file|dir]/containing/exported/DDB/tabledata>"
}
ソース・パラメータ
共通の構成パラメータ
一意の構成パラメータ
-
用途:エクスポートされた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"
-
-
目的:エクスポートされたDynamoDB表データに存在するTTL属性の名前を指定します。このパラメータを含めるのは、DynamoDB表データにTTL属性があり、NoSQL Databaseへのインポート中にインポートされたデータにTTL値を設定する場合のみです。
ノート: TTLメタデータを使用してインポートするには、シンク構成テンプレート(
nosqldbおよびnosqldb_cloud)でincludeTTL構成パラメータをtrueに設定する必要があります。 -
データ型:文字列
-
必須(Y/N): N
-
例:
"ttlAttributeName" : "ttl"
Oracle NoSQL Database
NoSQL Database MigratorのソースとしてのOracle NoSQL Databaseの構成ファイル形式を次に示します。
ソース構成テンプレートで表名を指定することで、Oracle NoSQL Databaseから表を移行できます。
Oracle NoSQL Database表の例を次に示します。
{"id":20,"firstName":"Jane","lastName":"Smith","otherNames":[{"first":"Jane","last":"teacher"}],"age":25,"income":55000,"address":{"city":"San Jose","number":201,"phones":[{"area":608,"kind":"work","number":6538955},{"area":931,"kind":"home","number":9533341},{"area":931,"kind":"mobile","number":9533382}],"state":"CA","street":"Atlantic Ave","zip":95005},"connections":[40,75,63],"expenses":null}
{"id":10,"firstName":"John","lastName":"Smith","otherNames":[{"first":"Johny","last":"chef"}],"age":22,"income":45000,"address":{"city":"Santa Cruz","number":101,"phones":[{"area":408,"kind":"work","number":4538955},{"area":831,"kind":"home","number":7533341},{"area":831,"kind":"mobile","number":7533382}],"state":"CA","street":"Pacific Ave","zip":95008},"connections":[30,55,43],"expenses":null}
{"id":30,"firstName":"Adam","lastName":"Smith","otherNames":[{"first":"Adam","last":"handyman"}],"age":45,"income":75000,"address":{"city":"Houston","number":301,"phones":[{"area":618,"kind":"work","number":6618955},{"area":951,"kind":"home","number":9613341},{"area":981,"kind":"mobile","number":9613382}],"state":"TX","street":"Indian Ave","zip":95075},"connections":[60,45,73],"expenses":null}
ソース構成テンプレート
"source" : {
"type": "nosqldb",
"storeName" : "<store name>",
"helperHosts" : ["hostname1:port1","hostname2:port2,..."],
"table" : "<fully qualified table name>",
"queryFilter" : "<query predicate>",
"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=TLSv 1.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" : 5000
一意の構成パラメータ
-
用途: Oracle NoSQL Databaseストアの名前。
-
データ型:文字列
-
必須(Y/N): Y
-
例:
"storeName" : "kvstore"
-
用途:
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"を指定する場合
-
-
用途: Oracle NoSQL Database表のエクスポート時に表行のTTLメタデータを含めるかどうかを指定します。trueに設定すると、行のTTLデータもソースによって提供されるデータに含まれます。TTLは、各行に関連付けられている
_metadataJSONオブジェクトに存在します。各行の有効期限は、UNIXエポック(1970年1月1日)以降のミリ秒数としてエクスポートされます。このパラメータを指定しない場合、デフォルトは
falseです。TTLの正の有効期限値を持つ行のみが、エクスポートされる行の一部として含まれます。行が失効しない場合(つまりTTL=0)、そのTTLメタデータは明示的に含まれません。たとえば、ROW1が2021-10-19 00:00:00に期限切れになり、ROW2が期限切れにならない場合、エクスポートされるデータは次のようになります。
//ROW1 { "id" : 1, "name" : "abc", "_metadata" : { "expiration" : 1634601600000 } } //ROW2 { "id" : 2, "name" : "xyz" } -
データ型:ブール
-
必須(Y/N): N
-
例:
"includeTTL" : true
-
目的: Migratorユーティリティが、指定された条件に一致する行のみをエクスポートするために使用する問合せ述語を指定します。
マイグレータ・ユーティリティは、この述語をSQL問合せのWHERE句に組み込みます。この問合せは、指定された条件に従ってデータをフィルタするためにソース表に適用されます。ソース表を指定するには、ソース構成テンプレートで
tableパラメータを使用します。たとえば、
id値が10の行のみをエクスポートするには、queryFilterパラメータを"id=10"に設定します。Migratorユーティリティは、次の問合せを生成します。select $row from <table> $row where id=10この問合せでは、マイグレータ・ユーティリティは表の別名
$rowを使用して個々の行を処理します。次の点に注意してください:
-
queryFilterを使用して特定の列を選択することはできません。変換を指定して列をフィルタで除外できます。 -
queryFilterパラメータに値を指定しない場合、Migratorユーティリティは次の問合せを使用して表からすべての行をエクスポートします。select $row from $row
-
-
データ型: JSON文字列
-
必須(Y/N): N
-
例:
"queryFilter" : "$row.address.city='Houston'"その他の例については、次のサンプル問合せ述語の表を参照してください。
サポートされている式:
マイグレータ・ユーティリティでは、問合せ述語で次の式がサポートされています。構文および例の詳細は、SQLリファレンス・ガイドを参照してください。
Field step expressions
Map-filter step expressions
Array-filter step expressions
Array-slice step expressions
Arithmetic operators
Value comparison operators
Sequence comparison operators
Logical operators AND, OR and NOT
IS NULL and IS NOT NULL operators
IN operator
Regular expression
EXISTS operator
IS OF TYPE operator
CONCAT operator
CAST expression
Row functions
次の表に、様々な式および結果としてエクスポートされたデータに対する有効な問合せ述語の例を示します。
ノート:
-
問合せ述語に文字列リテラルを指定する場合は、二重引用符(")のかわりに一重引用符(')を使用することをお薦めします。二重引用符(")を使用する場合は、エスケープする必要があります。
例:問合せ述語
"name='John'"を使用して、指定された表から行を選択します。ここで、nameフィールドの値は文字列'John'です。 -
次の場合は、表別名
$rowを式に含める必要があります。-
modification_time(), expiration_time(), creation_time()などの行関数を使用します。詳細は、Functions on Rowsを参照してください。 -
JSON列内の特定のフィールドへのアクセス。
-
表- サンプル問合せ述語
| 問合せ/述語 | エクスポートされたデータ |
|---|---|
| "id=10" | id=10の指定された表の行。 |
| "name='John'" | 名前が'John'の指定された表の行。 |
| "age>30 and gender='male'" | ageが30より大きく、genderが'male'である、指定された表の行。 |
| "$row.address.state = 'CA'" | address JSON列のstateフィールドを持つ指定された表の行が'CA'です。ここでは、述語のフィールド・ステップ式を使用して、JSONフィールドから必須フィールド値にアクセスします。 |
| "$row.expenses.keys($value > 1000) = 'food'" | expensesカテゴリが'food'で、expenses金額が1000より大きい、指定された表の行。ここでは、map-filterステップ式を使用して、フィールド名(キー)またはマップ/レコード・フィールドのフィールド値を選択します。 |
| "$row.expenses.keys($value > $.clothes) = 'food' | expensesカテゴリが'food'で、expenses金額がclothesの支出より多い、指定された表の行。 |
| "[$row.address.phones[$element.area = 650].kind] = 'work'" | 配列内の電話の市外局番が650、タイプ= 'work'である、指定された表の行。ここでは、addressフィールドがJSON配列であるため、array-filterステップ式を使用します。 |
| "[connections[$element > 100 and $pos < 10]] > 100" | 接続数が最大10で、接続数が100を超える指定表の行。ここでは、array-filterステップ式を使用します。これは、connectionsフィールドが配列であるためです。 |
| "$row.income IS NULL" | 所得が不明の指定された表の行。詳細は、IS NULLおよびIS NOT NULLの演算子を参照してください。 |
| "a in (1, 5, 4)" | aが1、5または4の指定された表の行。詳細は、IN演算子を参照してください。 |
| ((1、 'a')、 (5、 'g')、 (4、 't')内の(a、 b) | 指定された表の行(aは1、bは'a')または(aは5、bは'g')または(aは4、bは't')です。 |
| "regex_like(name, 'j.*')" | jで始まる名前の指定された表の行。詳細は、正規表現を参照してください。 |
| "EXISTS $row.person.address.zipcode" | person json列のアドレスがzipcodeである、指定された表の行。詳細は、Exists演算子を参照してください。 |
| "$row.address is of type (string)" | address列が文字列型である、指定された表の行。詳細は、Is-Of-Type演算子を参照してください。 |
| "lastLogin > CAST('2022-10-01' AS TIMESTAMP)" | 2022年10月1日以降の最終ログインの指定された表の行。詳細は、キャスト式を参照してください。 |
| "$row.connections[ ]=any 1" | connections配列列に要素1がある指定された表の行。詳細は、「シーケンス比較演算子」を参照してください。 |
| "modification_time($row) >= 2022-10-01" | 2022年10月1日以降に変更された、指定された表の行。詳細は、「行の関数」を参照してください。 |
| "expiration_time_millis($row) > 0" | 指定した表の有効期限が切れていない行。詳細は、「行の関数」を参照してください。 |
Oracle NoSQL Database Cloud Service
NoSQL Database MigratorのソースとしてのOracle NoSQL Database Cloud Serviceの構成ファイル形式を次に示します。
表がソース構成テンプレートにあるコンパートメントの名前またはOCIDを指定することで、Oracle NoSQL Database Cloud Serviceから表を移行できます。
Oracle NoSQL Database Cloud Service表の例を次に示します。
{"id":20,"firstName":"Jane","lastName":"Smith","otherNames":[{"first":"Jane","last":"teacher"}],"age":25,"income":55000,"address":{"city":"San Jose","number":201,"phones":[{"area":608,"kind":"work","number":6538955},{"area":931,"kind":"home","number":9533341},{"area":931,"kind":"mobile","number":9533382}],"state":"CA","street":"Atlantic Ave","zip":95005},"connections":[40,75,63],"expenses":null}
{"id":10,"firstName":"John","lastName":"Smith","otherNames":[{"first":"Johny","last":"chef"}],"age":22,"income":45000,"address":{"city":"Santa Cruz","number":101,"phones":[{"area":408,"kind":"work","number":4538955},{"area":831,"kind":"home","number":7533341},{"area":831,"kind":"mobile","number":7533382}],"state":"CA","street":"Pacific Ave","zip":95008},"connections":[30,55,43],"expenses":null}
{"id":30,"firstName":"Adam","lastName":"Smith","otherNames":[{"first":"Adam","last":"handyman"}],"age":45,"income":75000,"address":{"city":"Houston","number":301,"phones":[{"area":618,"kind":"work","number":6618955},{"area":951,"kind":"home","number":9613341},{"area":981,"kind":"mobile","number":9613382}],"state":"TX","street":"Indian Ave","zip":95075},"connections":[60,45,73],"expenses":null}
ソース構成テンプレート
"source" : {
"type" : "nosqldb_cloud",
"endpoint" : "<Oracle NoSQL Cloud Service endpoint URL or region ID>",
"table" : "<table name>",
"queryFilter" : "<query predicate>",
"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>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <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" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
例:
"useInstancePrincipal" : true -
例:
"useDelegationToken" : trueノート:委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。
-
例:
"useOKEWorkloadIdentity" : true -
例:
"useSessionToken" : true -
例:
"requestTimeoutMs" : 5000
一意の構成パラメータ
-
用途: データの移行元となる表の名前。
-
データ型:文字列
-
必須(Y/N): Y
-
例:
-
表
"table" : "myTable"を指定する場合 -
子表
"table" : "mytable.child"を指定する場合
-
-
用途:表が存在するコンパートメントの名前またはOCIDを指定します。
値を指定しない場合は、デフォルトでルート・コンパートメントに設定されます。
自分のコンパートメントのOCIDは、「OCI CloudコンソールのGovernance」のコンパートメント・エクスプローラ・ウィンドウから確認できます。
-
データ型:文字列
-
必須(Y/N): Y: 表がテナンシのルート・コンパートメントにない場合、またはuseInstancePrincipalパラメータがtrueに設定されている場合。
ノート: useInstancePrincipalパラメータがtrueに設定されている場合、コンパートメントは名前ではなくコンパートメントOCIDを指定する必要があります。
-
例:
-
コンパートメント名
"compartment" : "mycompartment" -
親コンパートメントで修飾されたコンパートメント名
"compartment" : "parent.childcompartment" -
値は指定されていません。デフォルトはルート・コンパートメントです。
"compartment": "" -
コンパートメントのOCID
"compartment" : "ocid 1.tenancy.oc1...4ksd"
-
-
用途: NoSQL表の移行中に使用される表読取りユニットの割合。
デフォルトの値は90です。有効範囲は1から100の任意の整数です。データの移行に必要な時間は、この属性に正比例します。移行アクティビティの表の読取りスループットを向上させることをお薦めします。移行プロセスの完了後に読取りスループットを減らすことができます。
スループット変更の日次制限を学習するには、Oracle NoSQL Database Cloud ServiceドキュメントのCloud制限に関する項を参照してください。
この属性を使用してデータ移行速度を向上させる方法について学習するには、Oracle NoSQL Database Migratorのトラブルシューティングを参照してください。
-
データ型: integer
-
必須(Y/N): N
-
例:
"readUnitsPercent" : 90
-
用途: Oracle NoSQL Database Cloud Service表のエクスポート時に表行のTTLメタデータを含めるかどうかを指定します。trueに設定すると、行のTTLデータもソースによって提供されるデータに含まれます。TTLは、各行に関連付けられている
_metadataJSONオブジェクトに存在します。各行の有効期限は、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
-
目的: Migratorユーティリティが、指定された条件に一致する行のみをエクスポートするために使用する問合せ述語を指定します。
マイグレータ・ユーティリティは、この述語をSQL問合せのWHERE句に組み込みます。この問合せは、指定された条件に従ってデータをフィルタするためにソース表に適用されます。ソース表を指定するには、ソース構成テンプレートで
tableパラメータを使用します。たとえば、
id値が10の行のみをエクスポートするには、queryFilterパラメータを"id=10"に設定します。Migratorユーティリティは、次の問合せを生成します。select $row from <table> $row where id=10前述の問合せでは、Migratorユーティリティは表の別名
$rowを使用して個々の行を処理します。次の点に注意してください:
-
queryFilterを使用して特定の列を選択することはできません。変換を指定して列をフィルタで除外できます。 -
queryFilterパラメータに値を指定しない場合、Migratorユーティリティは次の問合せを使用して表からすべての行をエクスポートします。select $row from $row`
-
-
データ型: JSON文字列
-
必須(Y/N): N
-
例:
"queryFilter" : "$row.address.city='Houston'"その他の例については、次のサンプル問合せ述語の表を参照してください。
サポートされている式:
マイグレータ・ユーティリティでは、問合せ述語で次の式がサポートされています。構文および例の詳細は、SQLリファレンス・ガイドを参照してください。
Field step expressions
Map-filter step expressions
Array-filter step expressions
Array-slice step expressions
Arithmetic operators
Value comparison operators
Sequence comparison operators
Logical operators AND, OR and NOT
IS NULL and IS NOT NULL operators
IN operator
Regular expression
EXISTS operator
IS OF TYPE operator
CONCAT operator
CAST expression
Row functions
次の表に、様々な式および結果としてエクスポートされたデータに対する有効な問合せ述語の例を示します。
ノート:
-
問合せ述語に文字列リテラルを指定する場合は、二重引用符(")のかわりに一重引用符(')を使用することをお薦めします。二重引用符(")を使用する場合は、エスケープする必要があります。
例:問合せ述語
"name='John'"を使用して、指定された表から行を選択します。ここで、nameフィールドの値は文字列'John'です。 -
次の場合は、表別名
$rowを式に含める必要があります。modification_time(), expiration_time(), creation_time()などの行関数を使用します。詳細は、Functions on Rowsを参照してください。- JSON列内の特定のフィールドへのアクセス。
表- サンプル問合せ述語
| 問合せ/述語 | エクスポートされたデータ |
|---|---|
| "id=10" | ID = 10の指定された表の行。 |
| "name='John'" | 名前が'John'の指定された表の行。 |
| "age>30 and gender='male'" | ageが30より大きく、genderが'male'である、指定された表の行。 |
| "$row.address.state = 'CA'" | address JSON列のstateフィールドを持つ指定された表の行が'CA'です。ここでは、述語のフィールド・ステップ式を使用して、JSONフィールドから必須フィールド値にアクセスします。 |
| "$row.expenses.keys($value > 1000) = 'food'" | expensesカテゴリが'food'で、expenses金額が1000より大きい、指定された表の行。ここでは、map-filterステップ式を使用して、フィールド名(キー)またはマップ/レコード・フィールドのフィールド値を選択します。 |
| "$row.expenses.keys($value > $.clothes) = 'food' | expensesカテゴリが'food'で、expenses金額がclothesの支出より多い、指定された表の行。 |
| "[$row.address.phones[$element.area = 650].kind] = 'work'" | 配列内の電話の市外局番が650、タイプ= 'work'である、指定された表の行。ここでは、addressフィールドがJSON配列であるため、array-filterステップ式を使用します。 |
| "[connections[$element > 100 and $pos < 10]] > 100" | 接続数が最大10で、接続数が100を超える指定表の行。ここでは、array-filterステップ式を使用します。これは、connectionsフィールドが配列であるためです。 |
| "$row.income IS NULL" | 所得が不明の指定された表の行。詳細は、IS NULLおよびIS NOT NULLの演算子を参照してください。 |
| "a in (1, 5, 4)" | aが1、5または4の指定された表の行。詳細は、IN演算子を参照してください。 |
| ((1、 'a')、 (5、 'g')、 (4、 't')内の(a、 b) | 指定された表の行(aは1、bは'a')または(aは5、bは'g')または(aは4、bは't')です。 |
| "regex_like(name, 'j.*')" | jで始まる名前の指定された表の行。詳細は、正規表現を参照してください。 |
| "EXISTS $row.person.address.zipcode" | person json列のアドレスがzipcodeである、指定された表の行。詳細は、Exists演算子を参照してください。 |
| "$row.address is of type (string)" | address列が文字列型である、指定された表の行。詳細は、Is-Of-Type演算子を参照してください。 |
| "lastLogin > CAST('2022-10-01' AS TIMESTAMP)" | 2022年10月1日以降の最終ログインの指定された表の行。詳細は、キャスト式を参照してください。 |
| "$row.connections[ ]=any 1" | connections配列列に要素1がある指定された表の行。詳細は、「シーケンス比較演算子」を参照してください。 |
| "modification_time($row) >= 2022-10-01" | 2022年10月1日以降に変更された、指定された表の行。詳細は、「行の関数」を参照してください。 |
| "expiration_time_millis($row) > 0" | 指定した表の有効期限が切れていない行。詳細は、「行の関数」を参照してください。 |
CSVファイル・ソース
NoSQL Database MigratorのソースとしてのCSVファイルの構成ファイル形式を次に示します。CSVファイルはRFC4180形式に準拠している必要があります。
CSVファイルまたはCSVデータを含むディレクトリを移行するには、ソース構成テンプレートでファイル名またはディレクトリを指定します。
サンプルCSVファイルは次のとおりです。
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"
ソース構成テンプレート
"source" : {
"type" : "file",
"format" : "csv",
"dataPath": "</path/to/a/csv/[file|dir]>",
"hasHeader" : <true | false>,
"columns" : ["column1", "column2", ....],
"csvOptions": {
"encoding": "<character set encoding>",
"trim": "<true | false>"
}
}
ソース・パラメータ
共通の構成パラメータ
一意の構成パラメータ
-
用途:移行するCSVデータを含むファイルまたはディレクトリに対する絶対パスを指定します。ディレクトリを指定した場合、NoSQL Database Migratorは、そのディレクトリ内の
.csvまたは.CSV拡張子を持つすべてのファイルをインポートします。すべてのCSVファイルは単一の表にコピーされますが、特定の順序ではコピーされません。CSVファイルは、
RFC4180標準に準拠している必要があります。各CSVファイルのデータがシンク表に定義されているNoSQL Database表スキーマと一致することを確認する必要があります。サブディレクトリはサポートされていません。 -
データ型:文字列
-
必須(Y/N): Y
-
例:
-
CSVファイルの指定
"dataPath" : "/home/user/sample.csv" -
ディレクトリを指定しています
"dataPath" : "/home/user"
-
ノート: CSVファイルにはスカラー値のみが含まれている必要があります。MAP、RECORD、ARRAY、JSONなどの複合タイプを含むCSVファイルのインポートはサポートされていません。NoSQL Database Migratorツールは、入力CSVファイルのデータの正確性をチェックしません。NoSQL Database Migratorツールは、RFC4180形式に準拠したCSVデータのインポートをサポートしています。RFC4180標準に準拠していないデータを含むCSVファイルは、正しくコピーされないか、エラーが発生する可能性があります。入力データが破損している場合、NoSQL Database MigratorツールはCSVレコードを解析しません。移行中にエラーが発生した場合、NoSQL Database Migratorツールは、デバッグおよび情報を得た目的で失敗した入力レコードに関する情報をログに記録します。詳細は、Oracle NoSQL Data Migratorの使用のLogging Migratorの進捗状況を参照してください
-
用途: 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"]
-
用途: CSVファイルの形式オプションを指定します。CSVファイルの文字セット・エンコーディング形式を指定し、空白を切り捨てるかどうかを選択します。
-
データ型:オブジェクト
-
必須(Y/N): N
-
用途: CSVファイルをデコードする文字セットを指定します。デフォルト値は
UTF-8です。サポートされている文字セットは、US-ASCII、ISO-8859-1、UTF-8およびUTF-16です。 -
データ型:文字列
-
必須(Y/N): N
-
例:
"encoding" : "UTF-8"
-
用途: CSVフィールド値の先頭および末尾の空白を切り捨てる必要があるかどうかを指定します。デフォルト値は
falseです。 -
データ型: boolean
-
必須(Y/N): N
-
例:
"trim" : "true"
OCIオブジェクト・ストレージ・バケットのCSVファイル
NoSQL Database MigratorのソースとしてのOCIオブジェクト・ストレージ・バケットのCSVファイルの構成ファイル形式を次に示します。CSVファイルはRFC4180形式に準拠している必要があります。
ソース構成テンプレートでバケットの名前を指定することで、OCIオブジェクト・ストレージ・バケット内のCSVファイルを移行できます。
OCIオブジェクト・ストレージ・バケットのサンプルCSVファイルは、次のとおりです。
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"
ノート: OCIオブジェクト・ストレージのソース・タイプの有効なシンク・タイプは、nosqldbおよびnosqldb_cloudです。
ソース構成テンプレート
"source" : {
"type" : "object_storage_oci",
"format" : "csv",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>,
"hasHeader" : <true | false>,
"columns" : ["column1", "column2", ....],
"csvOptions" : {
"encoding" : "<character set encoding>",
"trim" : <true | false>
}
}
ソース・パラメータ
共通の構成パラメータ
-
"type" : "object_storage_oci"を使用します -
"format" : "csv"を使用します -
endpointの例:
-
リージョンID:
"endpoint" : "us-ashburn-1" -
URL形式:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
例:
"namespace" : "my-namespace" -
例:
"bucket" : "my-bucket"ノート:
-
NoSQL Database Migratorは、.
csvまたは.CSV拡張子を持つすべてのファイルをオブジェクト単位でインポートし、同じ順序で単一の表にコピーします。 -
CSVファイルにはスカラー値のみが含まれている必要があります。MAP、RECORD、ARRAY、JSONなどの複合タイプを含むCSVファイルのインポートはサポートされていません。NoSQL Database Migratorツールは、入力CSVファイルのデータの正確性をチェックしません。NoSQL Database Migratorツールは、
RFC4180形式に準拠したCSVデータのインポートをサポートしています。RFC4180標準に準拠していないデータを含むCSVファイルは、正しくコピーされないか、エラーが発生する可能性があります。入力データが破損している場合、NoSQL Database MigratorツールはCSVレコードを解析しません。移行中にエラーが発生した場合、NoSQL Database Migratorツールは、デバッグおよび情報を得た目的で失敗した入力レコードに関する情報をログに記録します。詳細は、Oracle NoSQL Data Migratorの使用のLogging 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" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
例:
"useInstancePrincipal" : true -
例:
"useDelegationToken" : trueノート:委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。
-
例:
"useOKEWorkloadIdentity" : true -
例:
"useSessionToken" : true
一意の構成パラメータ
-
用途: 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"]
-
用途: CSVファイルの形式オプションを指定します。CSVファイルの文字セット・エンコーディング形式を指定し、空白を切り捨てるかどうかを選択します。
-
データ型:オブジェクト
-
必須(Y/N): N
-
用途: CSVファイルをデコードする文字セットを指定します。デフォルト値は
UTF-8です。サポートされている文字セットは、US-ASCII、ISO-8859-1、UTF-8およびUTF-16です。 -
データ型:文字列
-
必須(Y/N): N
-
例:
"encoding" : "UTF-8"
-
用途: CSVフィールド値の先頭および末尾の空白を切り捨てる必要があるかどうかを指定します。デフォルト値は
falseです。 -
データ型:ブール
-
必須(Y/N): N
-
例:
"trim" : "true"
シンク構成テンプレート
有効な各シンク用のシンク構成ファイル形式および各構成パラメータの用途について学習します。
構成ファイル・テンプレートについては、NoSQL Data Migratorで使用される用語の構成ファイルに関する項を参照してください。
各シンクの有効なソース形式の詳細は、「ソース構成テンプレート」を参照してください。
トピック
次のトピックでは、有効なソースから特定のシンクへのデータをコピーするためにOracle NoSQL Database Migratorによって参照されるシンク構成テンプレートを説明します。
-
指定されたJSONファイル。
-
指定されたディレクトリ内のParquetファイル。
-
指定されたOCIオブジェクト・ストレージ・バケット内のJSONファイル。
-
OCIオブジェクト・ストレージ・バケットのParquetファイル
指定されたOCIオブジェクト・ストレージ・バケット内のParquetファイル。
-
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/directory>",
"schemaPath" : "<path/to/a/file>",
"pretty" : <true|false>,
"useMultiFiles" : <true|false>,
"chunkSize" : <size in MB>
}
シンク・パラメータ
共通の構成パラメータ
-
"type" : "file"を使用します -
"format" : "json"を使用します -
例:
"chunkSize" : 40ノート:このパラメータは、useMultiFilesパラメータがtrueに設定されている場合にかぎり適用可能です。
一意の構成パラメータ
-
目的: NoSQL Database Migratorがソース・データをJSON形式でコピーするディレクトリへのパスを指定します。
NoSQL Database Migratorは、指定されたディレクトリにJSONファイルを作成します。ファイルが存在する場合、NoSQL Database Migratorはコンテンツをソース・データで上書きします。
ディレクトリがすでに存在し、読取り権限および書込み権限があることを確認します。
-
データ型:文字列
-
必須(Y/N): Y
-
例:
"dataPath" : "/home/user/data"移行が成功すると、次のサンプルに示すように、dataPathパラメータで指定されたディレクトリにエクスポートされたファイルが含まれます。
|--<Table_name>_1_5.json |--<Table_name>_6_10.json ...
-
用途:ソースによって提供される表スキーマ情報を書き込むファイルへの絶対パスを指定します。
この値を定義しないと、ソース・スキーマ情報はシンクに移行されません。この値を指定すると、マイグレータ・ユーティリティによって、ここで指定したファイルにソース表のスキーマが書き込みます。
スキーマ情報は、このファイルの行ごとに1つのDDLコマンドとして書き込まれます。指定されたデータ・パスにファイルが存在しない場合は、NoSQL Database Migratorによって作成されます。すでに存在する場合は、NoSQL Database Migratorによってその内容がそのソース・データで上書きされます。データ・パスに指定されたファイルの親ディレクトリが有効であることを確認する必要があります。
-
データ型:文字列
-
必須(Y/N): N
-
例:
"schemaPath" : "/home/user/schema_file"
-
用途: JSON出力を整形で読みやすくするかどうかを指定します。
指定しなかい場合は、デフォルトでfalseに設定されます。
-
データ型: boolean
-
必須(Y/N): N
-
例:
"pretty" : true
-
目的: NoSQL Database表のデータをディレクトリに移行する際に、エクスポートされたファイル(dataPathパラメータで指定されたディレクトリの下に作成)を特定のサイズの複数のサブファイルにさらに分割するかどうかを指定します。useMultiFilesパラメータはデフォルトでtrueに設定されます。
NoSQL Database Migratorは、データのエクスポート中にNoSQL Database表のデータを複数のファイルに分割します。useMultiFilesパラメータがtrueに設定されている場合、エクスポートされた各ファイルはchunkSizeパラメータで指定されたサイズのサブファイルにさらに分割されます。
例: 移行が成功すると、次のサンプルに示すように、dataPathパラメータで指定されたディレクトリにエクスポートされたファイルが含まれます。
|--<Table_name>_1_5_0.json |--<Table_name>_1_5_1.json |--<Table_name>_6_10_0.json |--<Table_name>_6_10_1.json |--<Table_name>_6_10_2.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>
}
}
シンク・パラメータ
共通の構成パラメータ
一意の構成パラメータ
-
用途: 移行されたNoSQL表データを格納するためのディレクトリへのパスを指定します。ディレクトリがすでに存在し、読取り権限および書込み権限があることを確認します。
-
データ型:文字列
-
必須(Y/N): Y
-
例:
"dataPath" : "/home/user/migrator/my_table"
-
用途: Parquetデータを圧縮するために使用する圧縮タイプを指定します。有効な値は、SNAPPY、GZIPおよびNONEです。
指定しない場合は、デフォルトでSNAPPYに設定されます。
-
データ型:文字列
-
必須(Y/N): N
-
例:
"compression" : "GZIP"
-
用途: NoSQL ENUM、JSONおよびUUID列のParquet論理型を選択するオプションを指定します。
このパラメータを指定しない場合、NoSQL Database Migratorは、ENNUM、JSONおよびUUID列のデータを文字列として書き込みます。
-
データ型:オブジェクト
-
必須(Y/N): N
-
用途: NoSQL JSON列データをParquet論理JSON型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoSQLのJSON列データを文字列として書き込みます。
-
データ型:ブール
-
必須(Y/N): N
-
例:
"useLogicalJson" : true
-
用途: NoSQL ENUM列データをParquet論理ENU型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoWSQL ENUM列データを文字列として書き込みます。
-
データ型:ブール
-
必須(Y/N): N
-
例:
"useLogicalEnum" : true
-
用途: NoSQL UUID列データをParquet論理UUID型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoWSQL 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.99999999999999990E307に切り捨てられます。
-
-
データ型: 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>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <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" : "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" : 40 -
次に例を示します:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
- credentialsProfileの例:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
例:
"useInstancePrincipal" : true -
例:
"useDelegationToken" : trueノート:委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。
-
例:
"useOKEWorkloadIdentity" : true -
例:
"useSessionToken" : true
一意の構成パラメータ
pretty
-
用途: JSON出力を整形で読みやすくするかどうかを指定します。
指定しなかい場合は、デフォルトでfalseに設定されます。
-
データ型:ブール
-
必須(Y/N): N
-
例:
"pretty" : 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>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <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" : "my-bucket" -
ソース・データは、
<prefix>/Data/<chunk>.parquetファイル(chunk=000000.parquet、00001.parquetなど)に移行されます。次に例を示します:
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
例:
"chunkSize" : 40 -
次に例を示します:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
次に例を示します:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
例:
"useInstancePrincipal" : true -
例:
"useDelegationToken" : trueノート:委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。
-
例:
"useOKEWorkloadIdentity" : true -
例:
"useSessionToken" : true
一意の構成パラメータ
-
用途: Parquetデータを圧縮するために使用する圧縮タイプを指定します。有効な値は、SNAPPY、GZIPおよびNONEです。
指定しない場合は、デフォルトでSNAPPYに設定されます。
-
データ型:文字列
-
必須(Y/N): N
-
例:
"compression" : "GZIP"
-
用途: NoSQL ENUM、JSONおよびUUID列のParquet論理型を選択するオプションを指定します。
このパラメータを指定しない場合、NoSQL Database Migratorは、ENNUM、JSONおよびUUID列のデータを文字列として書き込みます。
-
データ型:オブジェクト
-
必須(Y/N): N
-
用途: NoSQL JSON列データをParquet論理JSON型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoSQLのJSON列データを文字列として書き込みます。
-
データ型:ブール
-
必須(Y/N): N
-
例:
"useLogicalJson" : true
-
用途: NoSQL ENUM列データをParquet論理ENU型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoWSQL ENUM列データを文字列として書き込みます。
-
データ型: boolean
-
必須(Y/N): N
-
例:
"useLogicalEnum" : true
-
用途: NoSQL UUID列データをParquet論理UUID型として書き込むかどうかを指定します。詳細は、Parquet論理型の定義を参照してください。
指定されていないかfalseに設定されている場合、NoSQL Database MigratorはNoWSQL 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.99999999999999990E307に切り捨てられます。
-
-
データ型: boolean
-
必須(Y/N): N
-
例:
"truncateDoubleSpecials" : true
Oracle NoSQL Database
NoSQL Database Migratorのシンクとしての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" : 5000
一意の構成パラメータ
-
用途: Oracle NoSQL Databaseストアの名前。
-
データ型:文字列
-
必須(Y/N): Y
-
例:
"storeName" : "kvstore"
-
用途:
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つの表のみをコピーします。親表が子表の前に移行されていることを確認します。
-
-
用途: 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 Database Migratorツールが実行されているマシンの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
-
用途: 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日に設定します。これは、表の行がインポートされるときに参照時間として使用されます。
-
用途: 移行対象のデータのスキーマを指定します。これが指定されていない場合、NoSQL Database Migratorは、表がシンクのストアにすでに存在するとみなします。
-
データ型:オブジェクト
-
必須(Y/N): N
-
用途: NoSQL表のDDL文を含むファイルへの絶対パスを指定します。
NoSQL Database Migratorは、データを移行する前に、このファイルにリストされているDDLコマンドを実行します。
NoSQL Database Migratorでは、
schemaPathファイルの行ごとに複数のDDL文をサポートしていません。 -
データ型:文字列
-
必須(Y/N): N
ノート:
defaultSchemaとschemaPathは相互に排他的です。 -
例:
"schemaPath" : "/home/user/schema_file"
-
用途:このパラメータをtrueに設定すると、NoSQL Database Migratorではデフォルト・スキーマを使用して表が作成されます。デフォルト・スキーマは、マイグレータ自体によって定義されます。デフォルト・スキーマ定義の詳細は、Oracle NoSQLデータ・マイグレータの使用のデフォルト・スキーマを参照してください
-
データ型: boolean
-
必須(Y/N): N
ノート:
defaultSchemaとschemaPathは相互に排他的です。
-
用途: NoSQL表の移行時にソースによって提供される表スキーマ定義をシンクで使用するかどうかを指定します。
-
データ型: boolean
-
必須(Y/N): N
ノート: defaultSchemaパラメータ、schemaPathパラメータおよびuseSourceSchemaパラメータは相互に排他的です。これらのパラメータのうち1つのみを指定してください。
-
例:
-
デフォルト・スキーマを使用:
"schemaInfo" : { "defaultSchema" : true } -
事前定義済のスキーマを使用:
"schemaInfo" : { "schemaPath" : "<complete/path/to/the/schema/definition/file>" } -
ソース・スキーマを使用:
"schemaInfo" : { "useSourceSchema" : true }
-
-
用途:シンクのOracle NoSQL Database表で使用するDynamoDBパーティション・キーおよび対応するOracle NoSQL Database型を指定します。このキーは、NoSQL DB表のシャード・キーとして使用されます。これは、
defaultSchemaがtrueに設定され、ソースの形式がdynamodb_jsonの場合にのみ適用されます。詳細は、「DynamoDB型からOracle NoSQL型へのマッピング」を参照してください。 -
必須(Y/N): Y。
defaultSchemaがtrueであり、ソースがdynamodb_jsonの場合。 -
例:
"DDBPartitionKey" : "PersonID:INTEGER"ノート:パーティション・キーがダッシュ(-)またはドット(.)を含む場合、NoSQL列名ではドットはダッシュとダッシュがサポートされていないため、マイグレータではそれをアンダースコア(_)に置き換えます。
-
用途: ターゲットのOracle NoSQL Database表で使用するDynamoDBソート・キーおよび対応するOracle NoSQL Database型を指定します。インポートするDynamoDB表にソート・キーがない場合は、この属性は設定しないでください。このキーは、NoSQL DB表の主キーの非シャード部分として使用されます。これは、
defaultSchemaがtrueに設定され、ソースがdynamodb_jsonである場合にのみ適用されます。詳細は、「DynamoDB型からOracle NoSQL型へのマッピング」を参照してください。 -
必須(Y/N): N
-
例:
"DDBSortKey" : "Skey:STRING"ノート:ソート・キーがダッシュ(-)またはドット(.)を含む場合、NoSQL列名ではドットはダッシュとダッシュがサポートされていないため、マイグレータではそれをアンダースコア(_)に置き換えます。
-
用途:ソースから移行されるレコードがすでにシンクに存在している場合の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 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>",
"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>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <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" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
例:
"useInstancePrincipal" : true -
例:
"useDelegationToken" : trueノート:委任トークンを使用した認証は、NoSQL Database Migratorがクラウド・シェルから実行されている場合にのみサポートされます。
-
例:
"useOKEWorkloadIdentity" : true -
例:
"useSessionToken" : true -
例:
"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コンソールのGovernance」のコンパートメント・エクスプローラ・ウィンドウから確認できます。
-
データ型:文字列
-
必須(Y/N): 表がテナンシのルート・コンパートメントにない場合、またはuseInstancePrincipalパラメータがtrueに設定されている場合、Y。
ノート: useInstancePrincipalパラメータがtrueに設定されている場合、コンパートメントは名前ではなくコンパートメントOCIDを指定する必要があります。
-
例:
-
コンパートメント名
"compartment" : "mycompartment" -
親コンパートメントで修飾されたコンパートメント名
"compartment" : "parent.childcompartment" -
値は指定されていません。デフォルトはルート・コンパートメントです。
"compartment": "" -
コンパートメントのOCID
"compartment" : "ocid1.tenancy.oc1...4ksd"
-
-
用途: 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 Database Migratorツールが実行されているマシンの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
-
用途: 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日に設定します。これは、表の行がインポートされるときに参照時間として使用されます。
-
用途: 移行対象のデータのスキーマを指定します。
このパラメータを指定しない場合、NoSQL Database Migratorは、表がOracle NoSQL Database Cloud Serviceにすでに存在するとみなします。
このパラメータが指定されておらず、シンクに表が存在しない場合、移行は失敗します。
-
データ型:オブジェクト
-
必須(Y/N): N
-
用途: NoSQL表のDDL文を含むファイルへの絶対パスを指定します。
NoSQL Database Migratorは、データを移行する前に、このファイルにリストされているDDLコマンドを実行します。
NoSQL Database Migratorでは、
schemaPathファイルの行ごとに複数のDDL文をサポートしていません。 -
データ型:文字列
-
必須(Y/N): N
ノート: defaultSchemaとschemaPathは相互に排他的です。
- 例:
"schemaPath" : "/home/user/schema_file"
-
用途:このパラメータをYesに設定すると、NoSQL Database Migratorではデフォルト・スキーマを使用して表が作成されます。デフォルト・スキーマは、マイグレータ自体によって定義されます。デフォルト・スキーマ定義の詳細は、Oracle NoSQLデータ・マイグレータの使用のデフォルト・スキーマに関する項を参照してください。
-
データ型: boolean
-
必須(Y/N): N
ノート:
defaultSchemaとschemaPathは相互に排他的です。
-
用途: NoSQL表の移行時にソースによって提供される表スキーマ定義をシンクで使用するかどうかを指定します。
-
データ型:ブール
-
必須(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 }
-
-
用途:シンクの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列名ではドットはダッシュとダッシュがサポートされていないため、マイグレータではそれをアンダースコア(_)に置き換えます。
-
用途: ターゲットのOracle NoSQL Database表で使用するDynamoDBソート・キーおよび対応するOracle NoSQL Database型を指定します。インポートするDynamoDB表にソート・キーがない場合は、この属性は設定しないでください。このキーは、NoSQL DB表の主キーの非シャード部分として使用されます。これは、
defaultSchemaがtrueに設定され、ソースがdynamodb_jsonである場合にのみ適用されます。詳細は、「DynamoDB型からOracle NoSQL型へのマッピング」を参照してください。 -
必須(Y/N): N
-
例:
"DDBSortKey" : "Skey:STRING"ノート:ソート・キーがダッシュ(-)またはドット(.)を含む場合、NoSQL列名ではドットはダッシュとダッシュがサポートされていないため、マイグレータではそれをアンダースコア(_)に置き換えます。
-
用途:オンデマンドの読取りおよび書込みスループットを使用して表を作成することを指定します。このパラメータが設定されていない場合、表はプロビジョニングされた容量で作成されます。
デフォルト値は
falseです。
ノート:このパラメータは、子表が最上位の親表のスループットを共有するため、子表に適用できません。
-
データ型:ブール
-
必須(Y/N): N
-
例:
"onDemandThroughput" : "true"
-
用途:新しい表の読取りスループットを指定します。
div class="infoboxnote" markdown="1">
ノート:
-
このパラメータは、オンデマンド容量がプロビジョニングされた表に適用できません。
-
このパラメータは、子表が最上位の親表の読取りスループットを共有するため、子表に適用できません。
</div>
-
-
データ型:整数
-
必須(Y/N):表が子表でないとき、またはschemaInfo.onDemandThroughputパラメータが
falseに設定されている場合はY、それ以外の場合はN -
例:
"readUnits" : 100
-
用途:新しい表の書込みスループットを指定します。
ノート:
- このパラメータは、オンデマンド容量がプロビジョニングされた表に適用できません。
- このパラメータは、子表が最上位の親表の書込みスループットを共有するため、子表に適用できません。
-
データ型: integer
-
必須(Y/N):表が子表でないとき、またはschemaInfo.onDemandThroughputパラメータが
falseに設定されている場合はY、それ以外の場合はN、 -
例:
"writeUnits" : 100
-
用途:新しい表の記憶域サイズをGB単位で指定する。
ノート:このパラメータは、子表が最上位の親表のストレージ・サイズを共有するため、子表に適用できません。
-
データ型: integer
-
必須(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 }
-
-
用途: 移行アクティビティ中に使用される表書込みユニットの割合を指定します。データの移行に必要な時間は、この属性に正比例します。
デフォルトの値は90です。有効範囲は1から100の任意の整数です。
この属性を使用してデータ移行速度を向上させる方法について学習するには、Oracle NoSQL Database Migratorのトラブルシューティングを参照してください
-
データ型: integer
-
必須(Y/N): N
-
例:
"writeUnitsPercent" : 90
-
用途:ソースから移行されるレコードがすでにシンクに存在している場合のNoSQL Database Migratorの動作を示します。
値をfalseに設定すると、表を移行するときに、NoSQL Database Migratorは、同じ主キーが同じシンクにすでに存在するレコードをスキップします。
値をtrueに設定すると、表を移行するときに、NoSQL Database Migratorは、同じ主キーが同じシンクにすでに存在するレコードを上書きします。
指定しない場合は、デフォルトでtrueに設定されます。
-
データ型:ブール
-
必須(Y/N): N
-
例:
"overwrite" : false
変換構成テンプレート
このトピックでは、Oracle NoSQL Database Migratorでサポートされている様々な変換の構成パラメータについて説明します。完全な構成ファイル・テンプレートについては、NoSQL Data Migratorで使用される用語の構成ファイルに関する項を参照してください。
Oracle NoSQL Database Migratorを使用すると、移行アクティビティの進行でデータを変更(データ変換を追加)できるようになります。1回の移行で複数の変換を定義できます。このような場合、ソース・データには指定の順序で各変換が実行されるため、変換の順序は重要です。ある変換の出力が、マイグレータ・パイプライン内の次の変換への入力になります。
NoSQL Data Migratorでサポートされている様々な変換は次のとおりです。
表- 変換
| 変換構成属性 | この変換を使用して、次のことができます。 |
|---|---|
ignoreFields |
シンクに書き込む前に、ソース行から識別された列を無視します。 |
includeFields |
シンクに書き込まれる前に、ソース行から識別された列を含めます。 |
renameFields |
シンクに書き込む前に、ソース行から識別された列の名前を変更します。 |
aggregateFields |
ソースの複数の列をシンクの単一の列に集計します。この変換の一部として、集計から除外する列を指定することもできます。これらのフィールドは集計列からスキップされます。 |
次に、サポートされている各変換の構成テンプレートを示します。
フィールドを無視
ignoreFields変換の構成ファイル形式を次に示します。
変換構成テンプレート
"transforms" : {
"ignoreFields" : ["<field1>","<field2>",...]
}
変換パラメータ
フィールドを無視
-
用途: ソース・レコードから無視する列名の配列。
ノート:最上位のフィールドのみを指定できます。ネストされたフィールドのデータには変換を適用できません。
-
データ型:文字列の配列
-
必須(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変換の構成ファイル形式を次に示します。
変換構成テンプレート
"transforms" : {
"renameFields" : {
"<old_name>" : "<new_name>",
"<old_name>" : "<new_name>,"
.....
}
}
変換パラメータ
フィールドの名前変更
-
用途:名前を変更する新旧の列名のキーストアと値のペア。
ノート:最上位のフィールドのみを指定できます。ネストされたフィールドのデータには変換を適用できません。
-
データ型: JSONオブジェクト
-
必須(Y/N): Y
-
例: residenceという列をaddressに、_idという列をidに名前は変更する場合:
"renameFields" : { "residence" : "address", "_id" : "id" }
集計フィールド
aggregateFields変換の構成ファイル形式を次に示します。
変換構成テンプレート
"transforms" : {
"aggregateFields" : {
"fieldName" : "name of the new aggregate field",
"skipFields" : ["<field1>","<field2">,...]
}
}
変換パラメータ
集計フィールド
-
用途:シンク内の集計フィールドの名前。
-
データ型:文字列
-
必須(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 | PRIMARY KEYおよびSHARD KEY |
| 12 | ソート・キー | NA | 主キー |
| 13 | ダッシュとドットを含む属性名 | アンダースコアを含むJSONフィールド名 | 下線付きの列名 |
DynamoDB型をOracle NoSQL型にマップする際に考慮する追加ポイントはほとんどありません。
-
DynamoDBでは数値に対して1つのデータ型のみをサポートし、最大38桁の精度を持つことができます。対照的に、Oracle NoSQLでは、多くの型をサポートし、データの範囲および精度に基づいて選択します。入力データの範囲に適合する適切な数値型を選択できます。データの性質が不明な場合は、NoSQL NUMBER型を使用します。
-
DynamoDBでは数値に対して1つのデータ型のみをサポートし、最大38桁の精度を持つことができます。対照的に、Oracle NoSQLでは、多くの型をサポートし、データの範囲および精度に基づいて選択します。入力データの範囲に適合する適切な数値型を選択できます。データの性質が不明な場合は、NoSQL NUMBER型を使用します。
-
DynamoDBのパーティション・キーの制限は2048バイトですが、Oracle NoSQL Cloud Serviceの主キー/シャード・キーの制限は64バイトです。
-
DynamoDBのソート・キーの制限は1024バイトですが、Oracle NoSQL Cloud Serviceの主キーの制限は64バイトです。
-
DynamoDBの属性名は64KBの長さにできますが、Oracle NoSQL Cloud Serviceの列名は64文字に制限されています。
Oracle NoSQLからParquetデータ型へのマッピング
Oracle NoSQLデータ型とParquetデータ型のマッピングについて説明します。
| NoSQL型 | Parquetタイプ |
|---|---|
| BOOLEAN | BOOLEAN |
| INTEGER | INT32 |
| LONG | INT64 |
| FLOAT | DOUBLE |
| DOUBLE | DOUBLE |
| BINARY | BINARY |
| 固定バイナリ | BINARY |
| STRING | バイナリ(文字列) |
| ENUM | バイナリ(文字列) または BINARY(ENUM)、論理ENUMが構成されている場合 |
| UUID | バイナリ(文字列) または FIXED_BINARY(16)、論理UUIDが構成されている場合 |
| タイムスタンプ(p) | INT64(TIMESTAMP(p)) |
| NUMBER | DOUBLE |
| フィールド名ARRAY(T) | |
| フィールド名MAP(T) | |
| field_name RECORD(K1 T1 N1、K⁇2 T2 N2、....) 説明: K = キー名 T = 型 N = Null可能かどうか |
|
| JSON | バイナリ(文字列) または BINARY(JSON)、論理JSONが構成されている場合 |
ノート: NoSQL Number型をParquet Double型に変換する場合、値がDualで表現できない場合、精度が若干失われる可能性があります。値が大きすぎてDoubleとして表現できない場合、Double.NEGATIVE_INFINITYまたはDouble.POSITIVE_INFINITYに変換されます。
DynamoDB表からOracle NoSQL表へのマッピング
DynamoDBでは、表はアイテムのコレクションで、各アイテムは属性の集合です。表の各アイテムには、一意の識別子または主キーがあります。表は、主キー以外はスキーマレスです。各アイテムには固有の属性を設定できます。
DynamoDBは、次の2種類の主キーをサポートしています。
-
パーティション・キー: パーティション・キーと呼ばれる1つの属性で構成される単純な主キー。DynamoDBは、パーティション・キーの値を内部ハッシュ関数への入力として使用します。ハッシュ関数の出力によって、アイテムが格納されるパーティションが決まります。
-
パーティション・キーとソート・キー: 複合主キーとして、このタイプのキーは2つの属性で構成されます。最初の属性はパーティション・キーで、2番目の属性はソート・キーです。DynamoDBは、パーティション・キーの値を内部ハッシュ関数への入力として使用します。ハッシュ関数の出力によって、アイテムが格納されるパーティションが決まります。同じパーティション・キー値を持つすべてのアイテムが、ソート・キー値でソートされて一緒に格納されます。
一方、Oracle NoSQL表は、スキーマとスキーマレス設計の両方を備えた柔軟なデータ・モデルをサポートしています。
DynamoDB表をモデル化するには、次の2つの方法があります。
-
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は、シンクにすでに移行されているレコードを上書きします。
データ移行にかかる時間は、移行するデータ量、ネットワーク速度、データベースの現在の負荷などの複数の要因に依存します。クラウド・サービスの場合、移行の速度は、読取りスループットおよびプロビジョニングされた書込みスループットにも依存します。したがって、移行速度を向上させるために、次のことができます。
-
データベースへのロードが少ない時間帯に、移行の実行を検討してください。
-
NoSQL Database Migratorが実行されるVMの割当て、データ・ソースの定義、同じOCIリージョンでのデータ・シンクの定義を検討して、ネットワーク・レイテンシを最小限に抑えます。
-
Oracle NoSQL Database Cloud Serviceの場合は、表に割り当てられた記憶域が十分かどうかを確認します。NoSQL Database Migratorが表を作成していない場合は、書込みスループットを向上できます。マイグレータが表を作成している場合は、シンク構成の
schemaInfo.writeUnitsパラメータに大きい値を指定することを検討します。データ移行が完了した後、この値を小さくできます。ノート:スループットまたはストレージの制限を増やすことができる回数に制限はありません。スループットまたはストレージの制限は、24時間以内に最大4回まで減らすことができます。Cloud LimitsおよびSink Configuration Templatesを参照してください。
Migratorユーティリティは、複数のストリームをパラレルで処理することで、移行速度を向上させるように本質的に設計されています。次の点は、この機能を様々な移行シナリオで活用する方法を示しています。
-
Oracle NoSQL Database Cloud Service/オンプレミス表からファイル・システム/オブジェクト・ストレージ・シンクへの移行:
マイグレータ構成でuseMultiFilesおよびchunkSizeパラメータを設定します。
useMultiFilesパラメータは、シンクに複数のファイル/オブジェクトを作成します。chunkSizeパラメータは、データ・エクスポート時の各ファイルのサイズを決定します。たとえば、2 GBのデータをエクスポートするには、
useMultiFilesパラメータをtrueに設定し、chunkSizeパラメータを40MBに設定すると、Migratorユーティリティはそれぞれ40MBの50ファイルを書き込みます。ノート:現在、Migratorユーティリティは100ストリームをパラレルで処理できます。したがって、
chunkSizeパラメータを最適なファイル・サイズ値に設定して、データ・エクスポート中にMigratorユーティリティによって最大100個のファイルが作成されるようにします。 -
ファイル・システム/オブジェクト・ストレージからOracle NoSQL Database Cloud Service/オンプレミス・シンクへの移行:
-
ファイル・システム/オブジェクト・ストレージが、前の移行から複数のファイル/オブジェクトを含むデータをエクスポートした場合、マイグレータ・ユーティリティは自動的にファイルをパラレルで処理し、データのインポート中に移行速度を向上させます。
-
他の外部ファイル・システム/オブジェクト・ストレージからデータを移行する場合は、データ・ソースの複数のファイル/複数のオブジェクトにデータを分割することを検討してください。
ノート:
-
Oracle NoSQL Database Cloud Serviceシンクの場合、移行操作中に最大100個のストリームを処理するために、十分な書込みスループットおよび表書込みユニットの割合を構成する必要があります。
-
100を超えるソース・ファイルがある場合、Migratorユーティリティは最大100個のストリームを作成し、データ・インポート中にそれらの間でファイルを分散します。各ストリームのファイルは順次移行されます。
-
-
大量のデータセットを含む長時間の移行があります。移行の進行状況を追跡するにはどうすればよいですか。
追加のロギングを有効にして、長時間実行される移行の進行状況を追跡できます。Oracle NoSQL Database Migratorのロギング動作を制御するには、logging.propertiesファイルで必要なロギング・レベルを設定する必要があります。このファイルはNoSQL Database Migratorパッケージに付属しており、Oracle NoSQL Database Migratorが解凍されたディレクトリで使用できます。詳細度の増加順にロギングするレベルは、OFF, SEVERE, WARNING, INFO, FINE,およびALLです。
ログ・レベルをOFFに設定すると、すべてのロギング情報がオフになります。一方、ログ・レベルをALLに設定すると、完全なログ情報が表示されます。
デフォルトのログ・レベルはWARNINGです。すべてのロギング出力は、デフォルトでコンソールに出力されるように構成されます。
各ログ・レベルに関するコメントが、logging.propertiesファイルに表示されます。