Oracle NoSQL Database Analytics Integratorの実行
インテグレータ用の構成ファイルの作成
Oracle NoSQL Database Analytics Integratorを実行する前に、まず構成ファイルを作成する必要があります。この構成ファイルは、ユーティリティの起動時に使用されます。次の例に示すように、構成ファイルにはJSON形式のエントリが必要です。次に、2つのサンプル構成ファイルを示します。次で使用されるすべてのパラメータが必須ではありません。次の表では、この例で使用されているすべてのパラメータについて説明し、オプションまたは必須の場合は強調表示します。
{
"nosqlstore": {
"type" : "nosqldb_cloud",
"endpoint" : "us-ashburn-1",
"useInstancePrincipal" : true,
"compartment" : <ocid.of.compartment.containing.nosql.tables>,
"table" : <tableName1,tableName2,tableName3>,
"readUnitsPercent" : "90,90,90",
"requestTimeoutMs" : "5000"
},
"objectstore" : {
"type" : "object_storage_oci",
"endpoint" : "us-ashburn-1",
"useInstancePrincipal" : true,
"compartment" : <ocid.of.compartment.containing.bucket>,
"bucket" : <bucket-name-objectstorage>,
"compression" : "snappy"
},
"database": {
"type" : "database_cloud",
"endpoint" : "us-ashburn-1",
"credentials" : "/home/opc/.oci/config",
"credentialsProfile" : <profile-for-adw-auth>,
"databaseName" : <database-name>,
"databaseUser" : "ADMIN",
"databaseWallet"” : <path-where-wallet-unzipped>
}
}
{
"nosqlstore": {
"type" : "nosqldb_cloud",
"endpoint" : "us-ashburn-1",
"credentials" : "/home/opc/.oci/config",
"credentialsProfile" : <nosqldb-user-credentials>,
"table" : <tableName1,tableName2,tableName3>,
"readUnitsPercent" : "90,90,90",
"requestTimeoutMs" : "5000"
},
"objectstore" : {
"type" : "object_storage_oci",
"endpoint" : "us-ashburn-1",
"credentials" : "/home/opc/.oci/config",
"credentialsProfile" : <objectstorage-user-credentials>,
"bucket" : <bucket-name-objectstorage>,
"compression" : "snappy"
},
"database": {
"type" : "database_cloud",
"endpoint" : "us-ashburn-1",
"credentials" : "/home/opc/.oci/config",
"credentialsProfile" : <adw-user-credentials>,
"databaseName" : <database-name>,
"databaseUser" : "ADMIN",
"databaseWallet" : <path-where-wallet-unzipped>
}
"abortOnError" : false
}
構成は、nosqlstore、objectstoreおよびdatabaseの3つのセクションに分かれており、そのエントリは、ユーティリティが各クラウド・サービスとどのように相互作用するかを指定するために使用されます(NoSQL Cloud Service、Oracle ObjectStorageおよびOracle Autonomous Data Warehouse)。
表- すべてのセクションの共通パラメータ
パラメータ名 | パラメータの詳細 |
---|---|
タイプ | 現在、このパラメータには、nosqldb_cloud (nosqlstoreセクションの場合)、object_storage_oci (オブジェクトストア・セクションの場合)およびdatabase_cloud (データベース・セクションの場合)の3つの値のいずれかを指定できます。
|
endpoint | このエントリの値は、関連付けられたリソースが配置されているリージョンに設定する必要があります。このエントリに指定する値は、リージョンのAPIエンドポイントまたはリソースのリージョン識別子のいずれかです。たとえば、各リソースが米国東部(アッシュバーン)リージョンにある場合、各セクションのエンドポイント・エントリは、リージョンの識別子(US-ashburn-1)または目的のサービスのリージョンのAPIエンドポイントを使用して指定できます。 |
表- 構成ファイルのパラメータ
パラメータ名 | 指定されたセクション | セクションの詳細 |
---|---|---|
useInstancePrincipal |
nosqlstore(オプション) objectstore(オプション) |
次の条件を満たす場合は、useInstancePrincipalエントリをブール値trueとして指定できます。
useInstancePrincipalエントリにtrueが指定され、資格証明エントリも指定されている場合、資格証明エントリが優先され、そのエントリの値で参照されるユーザー資格証明が関連リソースとの対話に使用されます。
ノート: ADWでホストされるAutonomous Databaseではユーザー資格証明が必要なため、データベース・セクションでユーザー資格証明を指定する必要があります。 |
コンパートメント |
nosqlstore(オプション) objectstore(オプション) |
|
credentials |
nosqlstore(オプション) objectstore(オプション) データベース(必須) |
資格証明エントリは、すべての状況でデータベース・セクションに必要です。これは、次の1つ以上の状況でnosqlstoreおよびobjectstoreセクションに必要です。
このエントリに指定する値は、関連付けられたリソースとの安全な対話に使用できるユーザー資格証明を指定するローカル・ファイル・システム上のファイルを参照する必要があります。 |
credentialsProfile |
nosqlstore(オプション) objectstore(オプション) データベース(オプション) |
credentialsProfileエントリは各セクションでオプションであり、指定されている場合でも、対応する資格証明エントリも指定されている場合にのみ適用されます。 |
表 | nosqlstore(必須) |
表エントリは必須であり、nosqlstoreセクションで指定する必要があります。このエントリの値は、名前のカンマ区切りリストで構成される文字列です。各名前は、コンテンツを取得してAutonomous Data Warehouseにコピーする必要があるNoSQL Database Cloud Serviceの表の名前を参照します。 |
readUnitsPercent | nosqlstore(オプション) |
readUnitsPercentエントリはオプションで、nosqlstoreセクションでのみ適用可能です。このエントリの値は、1から100までの整数のカンマ区切りリストで構成される文字列で、対応する表からデータを取得するときに消費できる読取りユニットの割合を表します。 このエントリを使用すると、テーブルエントリで参照されるテーブルごとに異なる読み取り単位の割合を指定できます。リスト内の最初の割合はテーブルリスト内の最初のテーブルに対応し、2番目の割合は2番目のテーブルに対応します。このリストの割合が表リスト内の表の数と等しい必要はありません。デフォルト値の90%は、このリストに対応するパーセンテージがない表のリスト内の表に割り当てられます。 たとえば、表エントリに4つの表名が指定されているが、readUnitsPercentエントリが値50,80に設定されているとします。この場合、最初の表のデータは使用可能な読取りユニットの50%を使用して取得されますが、2番目の表からデータを取得する場合は読取りユニットの80%が使用されます。最後に、残りの2つの表では、各表からデータを取得する際に、読取りユニットの90%(デフォルト)が使用されます。 |
requestTimeoutMs | nosqlstore(オプション) |
requestTimeoutMsエントリはオプションで、nosqlstoreセクションでのみ適用可能です。このエントリの値は、正整数のカンマ区切りリストで構成される文字列です。各整数は、対応する表のデータ取得リクエストが完了するまでのミリ秒数を表します。 このエントリを使用すると、テーブルエントリで参照されるテーブルごとに異なるタイムアウト値を指定できます。このエントリが指定されていない場合、またはこのエントリが表のサブセットのタイムアウトのみを指定する場合、デフォルト値の5000が残りの表に割り当てられます。 |
bucket | オブジェクトストア(必須) | バケット・エントリは必須であり、オブジェクトストア・セクションで指定する必要があります。このエントリの値は、OCIオブジェクト・ストレージ・バケットの名前を表す文字列で、ユーティリティはNoSQL表から取得したデータをコピーします。 |
圧縮 | objectstore(オプション) |
圧縮エントリはオプションであり、オブジェクトストア・セクションにのみ適用されます。このエントリに指定された値は、nosqlstoreで指定された表からデータを取得する方法を表す文字列です。これを設定すると、オブジェクト・ストレージにコピーされるときに表データが圧縮されます。このエントリには、次のいずれかの値を指定します。
ノート: 圧縮エントリが指定されていない場合は、snappy圧縮が実行されます。 |
databaseName | データベース(必須) | dabaseNameエントリは必須であり、データベース・セクションで指定する必要があります。このエントリは、値がOracle Autonomous Data Warehouse Cloud Serviceで作成されたデータベースの名前である文字列です。 |
databaseUser | データベース(オプション) |
databaseUserエントリはオプションであり、データベース・セクションで指定する必要があります。このエントリは、値がdabaseNameエントリで指定されたAutonomous Databaseのユーザー・アカウントの名前である文字列です。このエントリを指定しない場合、コマンドラインで値を指定するように要求されます。 |
databaseWallet | データベース(必須) | databaseWalletエントリは必須であり、データベース・セクションで指定する必要があります。このエントリは、値が、構成ファイルのdatabaseUser エントリで指定されたAutonomous Databaseユーザー・アカウントからダウンロードされたOracle Walletの内容を含むディレクトリへのファイルシステム・パスである文字列です。
|
abortOnError | 任意 | エラー発生時に実行するアクションを指定します。デフォルト値はTRUEです。 |
ノート:
構成ファイルの各エントリは、section.entryという形式の名前でシステム・プロパティ(-Dnosqlstore.table=tableName1,tableName3
など)を設定することで、コマンドラインでオーバーライドできます。エントリがセクション内にない場合、このようなプロパティに使用する名前は、単にエントリ自体の名前になります。たとえば、-DabortOnError=false.
この機能は、ユーティリティを定期的に実行するスクリプトをテストまたは記述する場合に便利です。
資格証明ファイルでの構成情報の指定:
Oracle Cloud Infrastructureには、構成ファイルで指定できるユーザー資格証明、テナンシOCIDなどの基本的な構成情報が必要です。この構成ファイルのデフォルトの場所は~/.ociです。この構成ファイルには、ユーザー資格証明の複数のセットを指定できます。
[DEFAULT]
user=<ocid.of.default.user>
fingerprint=<fingerprint.of.default.user>
key_file=<path.to.default.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.default.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.default.compartment>
[nosqldb-user-credentials]
user=<ocid.of.nosqldb.user>
fingerprint=<fingerprint.of.nosqldb.user>
key_file=<path.to.nosqldb.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.nosqldb.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.nosqldb.compartment>
[objectstorage-user-credentials]
user=<ocid.of.objectstorage.user>
fingerprint=<fingerprint.of.objectstorage.user>
key_file=<path.to.objectstorage.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.objectstorage.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.objectstorage.compartment>
[adw-user-credentials]
user=<ocid.of.adw.user>
fingerprint=<fingerprint.of.adw.user>
key_file=<path.to.adw.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.adw.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.adw.compartment>
dbmsOcid=<ocid.of.autonomous.database.in.adw>
dbmsCredentialName=<OCI$RESOURCE_PRINCIPAL or NOSQLADWDB_OBJ_STORE_CREDENTIAL>
ノート:
前述の構成ファイルには、nosql-db-user、objectstorage-userおよびadw-userの3つの個別のエントリがあります。これは必須ではなく、DEFAULTプロファイルが1つのみの構成ファイルが存在できます。ただし、DEFAULTプロファイルのすべてのパラメータを組み合せるのではなく、別々のプロファイルを使用することをお薦めします。表- 資格証明ファイルのパラメータ
パラメータ名 | パラメータの詳細 |
---|---|
ユーザー | ユーザーのOCID |
フィンガープリント | デフォルト・ユーザーのより長い公開キーを識別するために使用される短いバイト・シーケンス |
キー・ファイル | デフォルト・ユーザーの秘密キーを含むファイルへのパス/ファイル名 |
テナンシ | テナンシのOCID |
リージョン | リージョンのエンドポイント |
コンパートメント | デフォルト・ユーザーのコンパートメント名またはOCID |
dbmsOcid | Autonomous DatabaseのOCID |
dbmsCredentialName |
これは、ADWデータベースがオブジェクト・ストレージでの認証に使用する資格証明の名前で、 |
ツールを実行する
- インストールディレクトリ
(/home/opc/nosqlanalytics-<version>)
の下のディレクトリ nosqlanalyticsに移動します。cd /home/opc/nosqlanalytics-1.0.1/nosqlanalytics
- 次のコマンドを使用して、ユーティリティを起動します。構成ファイル
oci-nosqlanalytics-config.json
は、ホーム・ディレクトリ内の.oci
ディレクトリの下にあります。java -Djava.util.logging.config.file=./src/main/resources/logging/java-util-logging.properties -Dlog4j.configurationFile=file:./src/main/resources/logging/log4j2-analytics.properties -jar ./lib/nosqlanalytics-1.0.1.jar -config ~/.oci/oci-nosqlanalytics-config.json
ノート:
実行時に使用されるロガーを構成するシステム・プロパティはオプションです。これらのシステム・プロパティが指定されていない場合、ユーティリティはロギング出力を生成しません。ロギング
java.util.logging
に基づいてロギング・メカニズムを構成し、もう1つはLog4j2
に基づいてロガーを構成します。
ノート:
デフォルトでは、ユーティリティで提供されるロガー構成ファイルは、ユーティリティの実行時に最小限の出力を生成するように設計されています。ただし、ユーティリティによって使用される様々なコンポーネントからの詳細な出力を表示する場合は、その動作を分析する特定のロガーのロギング・レベルを上げる必要があります。