執行 Oracle NoSQL Database Analytics Integrator
建立整合器的組態檔
您必須先建立組態檔,才能執行 Oracle NoSQL Database Analytics Integrator。呼叫公用程式時將會使用此組態檔。組態檔應具有 JSON 格式的項目,如以下範例所示。以下只是兩個範例組態檔。並非所有以下使用的參數都是必要的。下表說明範例中所使用的每個參數,並在其為選擇性或必要時標示。
{
"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、物件存放區和資料庫 - 其項目是用來指定公用程式與每個個別雲端服務互動的方式:NoSQL Cloud Service、Oracle ObjectStorage 和 Oracle Autonomous Data Warehouse。
表格 - 所有區段的通用參數
參數名稱 | 參數的詳細資訊 |
---|---|
類型 | 目前,此參數可採用下列三個值之一:nosqldb_cloud (適用於 nosqlstore 區段)、object_storage_oci (適用於物件存放區區段) 及 database_cloud (適用於資料庫區段)。
|
endpoint | 此項目的值必須設為關聯資源所在的區域。指定給此項目的值可以是區域的 API 端點或資源的區域 ID 。例如,如果每個資源都位於美國東部 (阿什本) 區域,則可以使用區域的 ID (US-ashburn-1) 或想要之服務的區域 API 端點來指定每個區段中的端點項目。 |
表格 - 組態檔中的參數
參數名稱 | 指定的區段 | 區段的詳細資料 |
---|---|---|
useInstancePrincipal |
nosqlstore (選擇性) objectstore (選擇性) |
如果滿足下列條件,可以將 useInstancePrincipal 項目指定為布林值 true:
如果為 useInstancePrincipal 項目指定 true,同時指定證明資料項目,則會優先使用證明資料項目,並使用該項目值中參照的使用者證明資料與關聯的資源互動。
附註: 必須在資料庫區段中指定使用者證明資料,因為 ADW 中代管的 Autonomous Database 需要它。 |
區間 |
nosqlstore (選擇性) objectstore (選擇性) |
|
credentials - 證明資料 |
nosqlstore (選擇性) objectstore (選擇性) 資料庫 (必要) |
在所有情況下,資料庫區段中都需要證明資料項目。在下列一或多個情況中,nosqlstore 和 objectstore 區段是必要的:
指定給此項目的值必須參照本機檔案系統上的檔案,該檔案指定可用來安全地與關聯資源互動的使用者證明資料。 |
credentialsProfile |
nosqlstore (選擇性) objectstore (選擇性) 資料庫 (選擇性) |
每個區段中的 credentialsProfile 項目都是選擇性的,即使已指定,也只會在同時指定對應的證明資料項目時套用。 |
表格 | nosqlstore (必要) |
必須輸入表格項目,而且必須在 nosqlstore 區段中指定。此項目的值是由以逗號區隔的名稱清單所組成的字串,其中每個名稱都參照 NoSQL Database Cloud Service 中應擷取內容並複製到 Autonomous Data Warehouse 的表格名稱。 |
readUnitsPercent | nosqlstore (選擇性) |
readUnitsPercent 項目是選擇性的,僅適用於 nosqlstore 區段。此項目的值是由逗號分隔整數清單所組成的字串;介於 1 與 100 之間,代表從對應表格擷取資料時可使用的讀取單位百分比。 此項目可讓您為表格項目中參照的每個表格指定不同的讀取單位百分比;其中清單中的第一個百分比對應至表格清單中的第一個表格,第二個百分比對應第二個表格等等。此清單中的百分比數目不一定等於表格清單中的表格數目。系統會將 90% 的預設值指派給表格清單中沒有此清單中對應百分比的任何表格。 例如,假設表格項目中指定了四個表格名稱,但 readUnitsPercent 項目設為值 "50,80"。在此情況下,會使用可用讀取單位的 50% 來擷取第一個表格的資料,而從第二個表格擷取資料時,將會使用 80% 的讀取單位。最後,對於其餘兩個表格,從這些表格擷取資料時,會使用 90% 的讀取單位 (預設值)。 |
requestTimeoutMs | nosqlstore (選擇性) |
requestTimeoutMs 項目是選擇性的,僅適用於 nosqlstore 區段。此項目的值是由逗號區隔的正整數清單所組成的字串;其中每個整數代表對應表格之每個資料擷取要求所允許的毫秒數。 此項目可讓您為表格項目中參照的每個表格指定不同的逾時值。如果未指定此項目,或如果此項目只指定表格子集的逾時,則預設值 5000 會指派給其餘的表格。 |
儲存桶 | objectstore (必要) | 必須輸入儲存桶項目,而且必須在物件存放區區段中指定。此項目的值是代表 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 有三個不同的項目。這不是必要項目,而且組態檔只能有一個 DEFAULT 設定檔。但是,擁有個別設定檔是一個良好的實行範例,而不是合併 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
為基礎的日誌記錄機制,一個用於以 Log4j2
為基礎的日誌記錄器。
附註:
公用程式提供的日誌記錄器組態檔預設會設計成在公用程式執行時產生最小輸出。但如果您希望看到公用程式所使用之各種元件的詳細輸出,則應該增加想要分析其行為之特定日誌記錄器的記錄日誌層次。