特殊 SQL 組態選項

若要使用 Oracle 不含 Essbase 的 ODBC 驅動程式連線資料庫,或想要變更隨 Essbase 分配之任何驅動程式的預設值時,請在 Essbase 網域上設定 esssql.cfg

使用案例

需要變更預設設定值的一個使用案例是,您需要使用任何驅動程式 (無論是 JDBC、ODBC、包含在 Essbase 中,或未包含在 Essbase 中) 啟用多執行緒 SQL 資料載入 (與平行資料載入不同) 時。例如,將 SQL 資料載入聚總儲存立方體時,您最多可以使用 8 個規則檔案來平行載入資料。每個規則檔都必須包含相同的認證資訊 (SQL 使用者名稱和密碼)。

Essbase 會初始化多個暫時聚總儲存資料載入緩衝區 (每個規則檔案一個),其中資料值會排序並累積。當資料完全載入資料載入緩衝區時, Essbase 會以一項作業,將所有緩衝區的內容確認至立方體,比個別確認緩衝區快。

在下列 MaxL 範例中,從兩個規則檔 (rule1.rul 和 rule2.rul) 載入 SQL 資料:

import database AsoSamp.Basic data 
   connect as TBC identified by 'password' 
   using multiple rules_file 'rule1' , 'rule2' 
   to load_buffer_block starting with buffer_id 100 
   on error write to "error.txt";

變更 SQL 組態

若要啟用外部 SQL 來源的多重執行緒資料載入 (如上述使用案例所示),您必須透過修改 esssql.cfg 來變更隨 Essbase 分配之動因的預設設定。否則,嘗試資料載入的並行使用者將會發生錯誤,例如:ERROR - 1021025 - SQL driver [driverLibrary] for [DriverName] is in use already and does not allow multiple connections. Please try later.

當您想要使用 Oracle 與 Essbase 不包含的 ODBC 驅動程式連線至資料庫時,也需要將項目新增至 esssql.cfg

若要變更 SQL 組態設定值,

  1. Essbase 網域上尋找 SQL 組態檔:

    <DOMAIN HOME>/config/fmwconfig/essconfig/essbase/esssql.cfg
  2. 以不同名稱儲存檔案的副本。例如,製作名為 esssql_cfg.orig 的副本。

  3. 開啟 esssql.cfg 進行編輯。

    您可以使用多個區塊 (每個驅動程式一個) 來設定此檔案。區塊是以方括號 [] 來區隔。您可以複製和貼上圖塊,並視需要編輯每個動因的設定。

  4. 根據您的需求進行必要的變更,然後儲存檔案。請參閱下面的 esssql.cfg 選項。例如,若要啟用多重執行緒作業,請將 SingleConnection 的值變更為 0。

  5. 停止並重新啟動 Essbase 伺服器 (如啟動、停止及檢查伺服器中所述)。

esssql.cfg 檔案範例

下列範例 esssql.cfg 有 6 個配置區塊。依照預設,會新增前 5 個來源,作為設定不同來源以啟用多執行緒 SQL 資料載入的範例。

[
Description "Oracle BI Server"
DriverName libnqsodbc
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 0
ConvertUTF16toUTF8 1
]
[
Description "SQL Server"
DriverName SQLSRV
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 0
]
[
Description "Oracle SQL Server Wire Protocol"
DriverName ARSQLS
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 1
]
[
Description "Oracle DB2 Wire Protocol"
DriverName ARDB2
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 1
]
[
Description "Oracle MySQL Wire Protocol"
DriverName ARMYSQL
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 1
]
[
Description "Teradata"
DriverName TDATAODBC_SB64
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 0
]

對於 Teradata DriverName,您可以使用 TDATA 或 TDATAODBC_SB64。

esssql.cfg 選項

esssql.cfg 組態檔至少必須包含驅動程式檔案名稱 (DriverName)。或者,它可以包含描述 (描述)。配置檔案可能包含其他關鍵字,其值為 0 或 1。

若要在 Linux 上尋找 DriverName,請參閱 odbcinst.ini,位於
<Essbase Product Home>/modules/<driver class>/<driver version>
驅動程式名稱位於指定給驅動程式的路徑結尾。

例如,從 odbcinst.ini 中的下列項目中,我們知道驅動程式名稱為 ARora (不需要包含版本資訊 28):

Driver=/scratch/username/oracle_home/essbase/modules/oracle.essbase.datadirect.odbc/8.0.2/lib/ARora28.so

若要在 Windows 上尋找 DriverName,請查看「驅動程式」頁籤上的 Windows 64 位元 ODBC 資料來源管理員公用程式。


已選取「驅動程式」頁籤的「ODBC 資料來源管理員」工具。標示出 Oracle 8.0 Oracle 線路通訊協定。其驅動程式檔案名稱是 ARORA28.DLL。

關鍵字 數值 值 = 0 值 = 1
描述 (可選) 驅動程式的描述,以雙引號括住。預設值為 ""
DriverName (必要) 驅動程式檔案名稱;例如 ARORA
UserId 0 或 1 不需要使用者 ID (預設值) 需有使用者識別碼
密碼 0 或 1 不需要密碼 (預設) 必須輸入密碼
Database 0 或 1 不需要資料庫名稱 (預設) 必須輸入資料庫名稱
伺服器 0 或 1 伺服器名稱不是必要的 (預設) 需有伺服器名稱
套用 0 或 1 不需要應用程式名稱 (預設) 必須輸入應用程式名稱
字典 0 或 1 不需要字典名稱 (預設值) 必須輸入字典名稱
檔案 0 或 1 不需要檔案名稱 (預設值) 必須輸入檔案名稱
單一連線 0 或 1 驅動程式執行緒安全 -- 允許多個作用中連線 驅動程式不具有執行緒安全性 -- 允許一個現用連線
IsQEDriver 0 或 1 驅動程式未隨附於 Essbase (預設) 驅動程式隨附於 Essbase
ConvertUTF16toUTF8 0 或 1 沒有將 UTF16 資料轉換成 UTF8 (此為預設值)。 將 UTF16 編碼的資料從 Oracle BI 資料來源轉換成 UTF8。若要從 OBI 將 SQL 資料載入至 Essbase ,必須在 UNIX 上執行此動作。

預設值會套用至未指定的值。在組態檔中套用的預設值與 Essbase 預設值不同,如果沒有 esssql.cfg 檔案,則會套用這些預設值。

關鍵字和值必須至少以一個空格分隔,且每個驅動程式的關鍵字和值集必須以方括號 ([ ]) 括住。

不同的動因可能需要其他值。如需特定資訊,請參閱驅動程式文件。