OBIEE – 變數



在 OBIEE 中,常用兩種型別的變數:

  • 儲存庫變數
  • 會話變數

除此之外,您還可以定義展示變數和請求變數。

儲存庫變數

儲存庫變數在任何時間點都只有一個值。儲存庫變數是使用 Oracle BI 管理工具定義的。儲存庫變數可以在表示式構建器嚮導中代替常量使用。

儲存庫變數有兩種型別:

  • 靜態儲存庫變數
  • 動態儲存庫變數

靜態儲存庫變數在變數對話方塊中定義,其值存在直到管理員更改它。

靜態儲存庫變數包含數字或字元值的預設初始值。此外,您可以使用表示式構建器插入常量作為預設初始值,例如日期、時間等。您不能使用任何其他值或表示式作為靜態儲存庫變數的預設初始值。

在較舊的 BI 版本中,管理員工具不限制靜態儲存庫變數的值。如果您的儲存庫已從較舊的版本升級,您可能會在一致性檢查中收到警告。在這種情況下,請更新靜態儲存庫變數,以便預設初始值具有常量值。

動態儲存庫變數與靜態變數相同,但其值由查詢返回的資料重新整理。定義動態儲存庫變數時,您可以建立一個初始化塊或使用包含 SQL 查詢的現有初始化塊。您還可以設定 Oracle BI 伺服器將遵循的計劃,以便定期執行查詢並重新整理變數的值。

當動態儲存庫變數的值發生變化時,與業務模型關聯的所有快取條目都會自動刪除。

每個查詢可以重新整理多個變數:查詢中每一列一個變數。您可以安排這些查詢由 Oracle BI 伺服器執行。

動態儲存庫變數對於定義邏輯表源的內容非常有用。例如,假設您有兩個關於訂單資訊的來源。一個來源包含當前訂單,另一個來源包含歷史資料。

建立儲存庫變數

在管理工具中 → 轉到管理 → 選擇變數 → 變數管理器 → 轉到操作 → 新建 → 儲存庫 > 變數。

在變數對話方塊中,鍵入變數的名稱(所有變數的名稱必須唯一)→ 選擇變數的型別 - 靜態或動態。

如果選擇動態變數,請使用初始化塊列表選擇將持續用於重新整理值的現有初始化塊。

要建立新的初始化塊 → 單擊新建。要新增預設初始值,請在預設初始值框中鍵入該值,或單擊表示式構建器按鈕以使用表示式構建器。

對於靜態儲存庫變數,您在預設初始值視窗中指定的值將持續存在。除非您更改它,否則它不會更改。如果使用字元字串初始化變數,請將字串用單引號括起來。靜態儲存庫變數必須具有作為常量值的預設初始值 → 單擊確定關閉對話方塊。

會話變數

會話變數類似於動態儲存庫變數,它們從初始化塊獲取其值。當用戶開始會話時,Oracle BI 伺服器會建立會話變數的新例項並對其進行初始化。

Oracle BI 伺服器上有多少個活動會話,就有多少個會話變數例項。每個會話變數例項都可以初始化為不同的值。

會話變數有兩種型別:

  • 系統會話變數
  • 非系統會話變數

系統會話變數由 Oracle BI 和 Presentation Server 用於特定目的。它們具有預定義的保留名稱,其他變數無法使用。

USER

此變數儲存使用者輸入的登入名值。此變數通常從使用者的 LDAP 配置檔案中填充。

USERGUID

此變數包含使用者的全域性唯一識別符號 (GUID),它從使用者的 LDAP 配置檔案中填充。

GROUP

它包含使用者所屬的組。當用戶屬於多個組時,請在同一列中包含組名,用分號分隔(例如 - GroupA;GroupB;GroupC)。如果必須包含分號作為組名的一部分,請在分號前加上反斜槓字元 (\)。

ROLES

此變數包含使用者所屬的應用程式角色。當用戶屬於多個角色時,請在同一列中包含角色名,用分號分隔(例如 - RoleA;RoleB;RoleC)。如果必須包含分號作為角色名的一部分,請在分號前加上反斜槓字元 (\)。

ROLEGUIDS

它包含使用者所屬的應用程式角色的 GUID。應用程式角色的 GUID 與應用程式角色名稱相同。

PERMISSIONS

它包含使用者持有的許可權。例如 - oracle.bi.server.manageRepositories。

非系統會話變數用於設定使用者過濾器。例如,您可以定義一個名為 Sale_Region 的非系統變數,該變數將初始化為使用者銷售區域的名稱。

建立會話變數

在管理工具中 → 轉到管理 → 選擇變數。

在變數管理器對話方塊中,單擊操作 → 新建 → 會話 → 變數。

在會話變數對話方塊中,輸入變數名(所有變數的名稱必須唯一,並且系統會話變數的名稱是保留的,不能用於其他型別的變數)。

對於會話變數,您可以選擇以下選項:

  • 允許任何使用者設定值 - 此選項用於在初始化塊填充值後設置會話變數。例如 - 此選項允許非管理員為抽樣設定此變數。

  • 安全敏感 - 這用於在使用行級資料庫安全策略(例如虛擬專用資料庫 (VPD))時將變數標識為對安全敏感。

您可以使用初始化塊列表選項選擇將用於定期重新整理值的初始化塊。您還可以建立一個新的初始化塊。

要新增預設初始值,請在預設初始值框中輸入該值,或單擊表示式構建器按鈕以使用表示式構建器。單擊確定關閉對話方塊。

管理員可以使用 Oracle BI 管理工具建立非系統會話變數。

展示變數

展示變數是在建立儀表板提示時建立的。可以使用兩種型別的儀表板提示:

列提示

使用列提示建立的展示變數與列相關聯,它可以取的值來自列值。

要建立展示變數,請轉到新建提示對話方塊或編輯提示對話方塊 → 在變數集欄位中選擇展示變數 → 輸入變數的名稱。

變數提示

作為變數提示建立的展示變數與任何列都不相關,您需要定義其值。

要將展示變數作為變數提示的一部分建立,請在新建提示對話方塊或編輯提示對話方塊中 → 在提示欄位中選擇展示變數 → 輸入變數的名稱。

展示變數的值由與其建立的列或變數提示填充。每次使用者在列或變數提示中選擇一個值時,展示變數的值都會設定為使用者選擇的值。

初始化塊

初始化塊用於初始化 OBIEE 變數:動態儲存庫變數、系統會話變數和非系統會話變數。

它包含用於初始化或重新整理與該塊關聯的變數的 SQL 語句。執行的 SQL 語句指向可以使用連線池訪問的物理表。連線池在初始化塊對話方塊中定義。

如果您希望初始化塊的查詢具有資料庫特定的 SQL,則可以為此查詢選擇資料庫型別。

使用初始化塊初始化動態儲存庫變數

初始化塊的預設初始化字串欄位用於設定動態儲存庫變數的值。您還可以定義一個計劃,Oracle BI 伺服器將遵循該計劃來執行查詢並重新整理變數的值。如果您將日誌級別設定為 2 或更高,則用於檢索變數值的 所有 SQL 查詢的日誌資訊將儲存在 nqquery.log 檔案中。

此檔案在 BI 伺服器上的位置:

ORACLE_INSTANCE\diagnostics\logs\OracleBIServerComponent\coreapplication_obisn

使用初始化塊初始化會話變數

會話變數也從初始化塊獲取其值,但其值不會隨時間間隔而改變。當用戶開始新會話時,Oracle BI 伺服器會建立一個新的會話變數例項。

如果在身份管理器使用者物件中將日誌級別設定為 2 或更高,或者在變數管理器中將 LOGLEVEL 系統會話變數設定為 2 或更高,則 BI 伺服器執行以檢索會話變數資訊的 所有 SQL 查詢將儲存在 nqquery.log 檔案中。

此檔案在 BI 伺服器上的位置:

ORACLE_INSTANCE\diagnostics\logs\OracleBIServerComponent\coreapplication_obisn

在管理員工具中建立初始化塊

轉到管理器 → 變數 → 變數管理器對話框出現。轉到操作選單 → 單擊新建 → 儲存庫 → 初始化塊 → 輸入初始化塊的名稱。

轉到計劃選項卡 → 選擇開始日期和時間以及重新整理間隔。

您可以為初始化塊選擇以下選項:

  • 停用 - 如果選擇此選項,則初始化塊將被停用。要啟用初始化塊,請在變數管理器中右鍵單擊現有初始化塊,然後選擇啟用。此選項使您可以更改此屬性,而無需開啟初始化塊對話方塊。

  • 允許延遲執行 - 這允許您延遲初始化塊的執行,直到在會話期間第一次訪問關聯的會話變數。

  • 身份驗證所需 − 如果您選擇此項,則必須執行初始化塊才能讓使用者登入。如果未執行初始化塊,則使用者將被拒絕訪問 Oracle BI。

廣告