5 管理資料庫連線以建立資料模型

管理員可建立與管理用於建立關聯式和非關聯式資料模型的雲端資料庫連線,例如 Essbase、Snowflake 或 Oracle Enterprise Performance Management (Oracle EPM) 資料。您無需將業務資料放在同一處。只要連線到多個雲端資料庫,無論公司資料儲存在哪裡,業務模型建立者與分析人員都能夠分析公司資料。

在 Essbase 立方體建立資料模型

您可以連線至 Essbase 資料庫,從 Essbase 立方體建立資料模型及將資料視覺化。

您只能使用「模型管理工具」建立 Essbase 資料模型。
開始之前,請先在 Oracle Analytics 執行處理部署資料閘道,並且設定讓資料閘道代理程式與遠端 Essbase 部署項目通訊。
  1. 在「實體層」中,建立資料庫:
    1. 在「實體層」窗格上按一下滑鼠右鍵,然後選取建立新資料庫
    2. 資料庫對話方塊中,指定您的資料庫在 Oracle Analytics 內的識別名稱。
    3. 選取資料庫類型 (例如 Essbase 11),然後按一下確定
  2. 在「實體層」中,建立連線集區:
    1. 對新資料庫按一下滑鼠右鍵,接著按一下建立新物件,然後選取資料庫連線集區
    2. 在「連線集區」對話方塊中,指定資料庫集區在 Oracle Analytics 內的識別名稱。
    3. Essbase 伺服器中,指定 Essbase 伺服器的連線字串。
      例如 http://<IP address>:<port number>/essbase/agent
    4. 選取使用資料閘道
    5. 輸入 Essbase 部署的使用者名稱密碼
    6. 如果出現提示,請重新輸入 Essbase 部署的密碼。
  3. 在「實體層」中,匯入 Essbase 中繼資料:
    1. 對 Essbase 連線按一下滑鼠右鍵,然後選取匯入中繼資料
    2. 選取資料來源頁面上,按一下下一步
    3. 選取中繼資料物件頁面上,展開資料來源方塊中的資料庫,選取所需的立方體,然後按一下匯入選取的項目

      若為大型立方體,匯入可能需要 2 到 3 分鐘的時間。

    4. 匯入完成後,請在儲存區域檢視中展開資料庫,以顯示匯入的 Essbase 立方體。
    5. 按一下完成
  4. 使用您剛建立的實體層,建立業務模型、對應圖層以及展示圖層。
  5. 依序按一下檔案雲端以及發布
  6. 依據您的 Essbase 立方體,建立儀表板或視覺化工作簿。
    新的 Essbase 立方體現在就會是 Oracle Analytics 中的主題區域。
    例如,在 Oracle Analytics 中建立分析,然後您在選取主題區域對話方塊中就可以存取新的 Essbase 主題區域。在 Oracle Analytics 中建立工作簿,然後在新增資料集對話方塊中,按一下主題區域以存取新的 Essbase 主題區域。

在 Snowflake 資料倉儲建立資料模型

設定您的內部部署環境,以便在 Snowflake 資料庫中建立資料模型。

您可以使用「語意模型產生器」或「模型管理工具」建立 Snowflake 資料模型。此作業說明使用模型管理工具的流程。
語意模型的本機和遠端 Snowflake 連線都需安裝資料閘道,「模型管理工具」才能夠從 Snowflake 資料來源匯入表格及建立模型。使用適合的驅動程式設定資料閘道代理程式,以連線至 Snowflake。請確定在執行查詢時,可以使用遠端資料閘道連線。不過若是本機連線,當 Snowflake 表格模型建立後且語意模型也已發布至 Oracle Analytics,即可將資料閘道停用或移除,因為從 Oracle Analytics 執行查詢時並不會用到資料閘道。

您可以從語意模型建立本機或遠端 Snowflake 連線。若是建立本機 (而非遠端) 連線,語意模型中的連線集區會使用 JDBC 連線。

開始之前,請先在內部部署環境中的同一部 Windows 電腦上安裝資料閘道和模型管理工具。
  1. 設定本機資料閘道代理程式,以協助從 Developer Client Tool 連線至 Snowflake。
    1. 下載最新的 Snowflake JDBC 驅動程式 (例如,在檔案 snowflake-jdbc-3.9.0.jar 中)。
    2. 將所下載的 JAR 檔案複製到「資料閘道」安裝資料夾。
      在伺服器部署中,請將 JAR 檔案複製到:
      <Data Gateway folder>/domain/jettybase/lib/ext
      在個人部署中,請將 JAR 檔案複製到:
      <install directory>\war\datagateway\WEB-INF\lib
    3. 重新啟動「資料閘道」。
  2. 設定 Snowflake 資料庫連線。
您現在可以使用此連線建立資料的模型。

建立與 Snowflake 的本機語意模型連線

您可以連線至本機 Snowflake 資料庫來建立 Snowflake 資料模型。

  1. 在「模型管理工具」中,載入 Java 資料來源以啟用 JDBC 連線集區功能。請參考設定並註冊用於報表的資料閘道中的第 3 個步驟。
  2. 在「模型管理工具」中,建立資料庫並將類型設為 Snowflake。
  3. 新增連線集區,並且在一般頁籤中指定以下詳細資訊:
    • 呼叫介面:JDBC (直接驅動程式)。
    • 需要完整表格名稱:是。
    • 資料來源名稱:輸入連線字串,例如:jdbc:snowflake://xxxx.snowflakecomputing.com?db=ODEV&warehouse=xxxxxx&schema=xxxxxx
    • RDC 版本:將此欄位留白。
  4. 其他頁籤上,指定這些詳細資訊:
    • JDS 伺服器 URL:將此欄位留白 (移除此欄位中的所有輸入)。
    • 驅動程式類別:net.snowflake.client.jdbc.SnowflakeDriver。
    • 使用透過 HTTP 的 SQL:False。
  5. 使用此連線建立資料模型。
  6. 完成模型後,將語意模型上傳或發布至 Oracle Analytics Cloud。
    Oracle Analytics Cloud 無須使用資料閘道,即可連線至 Snowflake 資料庫。
您現在可以使用此連線建立資料的模型。

建立與 Snowflake 的遠端語意模型連線

您可以連線至本機 Snowflake 資料庫來建立 Snowflake 資料模型。

  1. 在「模型管理工具」中,載入 Java 資料來源以啟用 JDBC 連線集區功能。請參考設定並註冊用於報表的資料閘道中的第 3 個步驟。
  2. 在「模型管理工具」中,建立資料庫並將類型設為 Snowflake。
  3. 新增連線集區,並且在一般頁籤中指定以下詳細資訊:
    • 呼叫介面:JDBC (直接驅動程式)。
    • 需要完整表格名稱:是。
    • 資料來源名稱:輸入連線字串,例如:jdbc:snowflake://xxxx.snowflakecomputing.com?db=ODEV&warehouse=xxxxxx&schema=xxxxxx
    • RDC 版本:請設為 2。
  4. 其他頁籤上,指定這些詳細資訊:
    • JDS 伺服器 URL:將此欄位留白 (移除此欄位中的所有輸入)。
    • 驅動程式類別net.snowflake.client.jdbc.SnowflakeDriver
    • 使用透過 HTTP 的 SQL:True。
  5. 使用此連線建立資料模型。
  6. 完成模型後,將語意模型上傳或發布至 Oracle Analytics Cloud。
    注意:Oracle Analytics Cloud 會使用任何已設定的資料閘道代理程式連線至 Snowflake。
  7. 將 Snowflake 驅動程式檔案複製到每一個「資料閘道」代理程式安裝資料夾。
    • 在伺服器部署中,請將 JAR 檔案複製到:<Data Gateway install_location>/domain/jettybase/thirdpartyDrivers
    • 在 Windows 個人部署中,請將 JAR 檔案複製到:<Data Gateway_extract_path>\thirdpartyDrivers
    • 在 MacOS 個人部署中,請將 JAR 檔案複製到:<Application->Show Package Contents>Resources->app.nw-> thirdpartyDrivers
  8. 重新啟動「資料閘道」。請參閱維護資料閘道

建立 Google BigQuery 資料模型

連線至 Google BigQuery 資料庫,以便建立 Google BigQuery 資料的模型及將資料視覺化。您可以使用語意模型產生器或模型管理工具建立 Google BigQuery 資料的模型。這些作業說明使用模型管理工具的流程。

主題

建立 Google BigQuery 的 Oracle Analytics 連線

您可以建立 Google BigQuery 資料庫系統連線,然後使用此連線來建立 Google BigQuery 專案模型。

在開始之前,請下載您 Google BigQuery 服務的服務帳戶私密金鑰 (JSON 格式)。
  1. 在 Oracle Analytics 首頁上,按一下建立,然後按一下連線
  2. 按一下 BigQuery
  3. 輸入連線詳細資訊。
    • 連線名稱中,指定一個要在 Oracle Analytics 中識別連線詳細資訊的使用者易記名稱。
    • 專案中,以小寫字母指定想要分析的 BigQuery 專案名稱。
    • 服務帳戶私密金鑰中,按一下選取並上傳您 BigQuery 服務的服務帳戶私密金鑰 (JSON 格式)。系統便會從上傳的金鑰詳細資訊填入服務帳戶電子郵件
    • 系統連線中,選取此選項。

  4. 儲存詳細資訊。

下載並設定 BigQuery ODBC 驅動程式

安裝連線至 Google BigQuery 所需的 ODBC 驅動程式,並且在模型管理工具中加以設定以便建立專案模型。

  1. 從 Google 下載 Simba BigQuery ODBC 驅動程式。
    例如,從 Google 參考資料網站下載。
  2. 在安裝了 Oracle Analytics Client Tools 的機器上安裝下載的驅動程式。
  3. 使用「DSN 設定」對話方塊設定 ODBC 驅動程式。

  4. 按一下測試以測試連線。

  5. 儲存詳細資訊。

從 Google BigQuery 資料來源建置資料模型

您可以為 Google BigQuery 資料庫建立資料模型,以便部署該資料模型,將 BigQuery 專案中的資料視覺化。

若要建立資料模型,您需要 BigQuery 金鑰中的權限。如果 BigQuery 金鑰授予對資料集層級的存取權,只需依照下列步驟使用 BigQuery ODBC 驅動程式執行「匯入中繼資料」即可。如果 BigQuery 金鑰僅授權存取特定表格或視觀表,請依照下面的步驟來建立實體綱要。
  1. 在「模型管理工具」中,在儲存區域中建立一個資料庫,並且將資料庫類型設為 ODBC Basic。

  2. 在「連線集區」對話方塊中,在資料庫中建立連線集區。
    • 呼叫介面中,選取「預設 (ODBC 2.0)」。
    • 資料來源名稱欄位中,選取您先前建立的 BigQuery ODBC 驅動程式。

  3. 使用與 BigQuery 資料集相同的名稱在資料庫中建立實體綱要。
    BigQuery SQL 需要表格名稱前面加上資料集名稱,dataset.table。資料集名稱相當於儲存區域檔案中的實體綱要物件。
  4. 對連線集區按一下滑鼠右鍵,然後選取匯入中繼資料
  5. 在「選取資料來源」對話方塊中,在連線類型選取 ODBC 2.0 或 ODBC 3.5,並選取 BigQuery ODBC 驅動程式。

  6. 在「選取中繼資料類型」對話方塊中,選取視觀表,以及您要使用且您的 BigQuery 金鑰具備其使用權限的任何其他類型。

  7. 在「選取中繼資料類型」對話方塊中,選取個別表格,然後按一下匯入選取的項目。這會匯入 BigQuery 資料庫及相關結構。

    如果您按一下全部匯入,只會匯入資料庫。若發生此情形,請再次選取全部匯入以匯入表格。
  8. 按一下完成
  9. 將匯入的表格拖曳至實體綱要。
  10. 編輯實體資料庫,並且將資料庫類型變更為 BigQuery

    變更實體資料庫時,您會看到一則訊息,說明該資料庫類型與連線集區中設定的呼叫介面不相符。按一下

  11. 在「連線集區」對話方塊中,設定以下設定值:
    • 呼叫介面中,將呼叫介面變更為 JDBC (直接驅動程式)。
    • 選取需要完整表格名稱
    • 選取使用資料連線
    • 在 Oracle Analytics 中,檢查 BigQuery 連線並複製物件 ID。BigQuery 有區分大小寫。若要確保資料連線語法正確,請使用複製按鈕。

    • 在「連線集區」對話方塊中,將複製的物件 ID 貼至物件 ID 欄位中。
    • 連線數目上限設為 100。
  12. 儲存詳細資訊。
建立儲存區域中中繼資料的模型,並且將儲存區域檔案 (RPD) 上傳至 Oracle Analytics。

Google BigQuery 的儲存區域連線問題疑難排解

以下是連線至 Google BigQuery 時可能會遇到的一些問題與其解決方法。

若未選取「需要完整表格名稱」,且產生的 SQL 未包含實體綱要,則查詢會失敗並出現類似「無法從 Java 資料來源伺服器讀取資料」的訊息。

如果使用 nqcmd 或其他 SQL 輸入工具對 BigQuery 執行查詢,則會顯示實際的錯誤訊息:

WITH SAWITH0 AS (select distinct T4.PROP_CD as c1 from FINOPS_RM_OCC_ACT T4) select 0 as c1, D1.c1 as c2 from SAWITH0 D1 order by c2
[Simba][BigQuery] (70) Invalid query: Table "FINOPS_RM_OCC_ACT" must be qualified with a dataset (e.g. dataset.table).
Statement preparation failed

若要讓資料集查詢符合資格,請在儲存區域檔案中使用實體綱要。

如果 Oracle Analytics 連線使用大寫專案名稱,可順利建立連線。

您可能會發現兩個問題。

1. 已遮罩 URL 的查詢失敗,並顯示「404 找不到」訊息:

[2022-03-17T01:13:44.105+00:00] [OBIS] [TRACE:2] [USER-34] [] [ecid: d6382db0-1e63-427e-893b-18bc00c0424e-0000de96,0:2:1:5] [sik: bootstrap] [tid: 856a6700] [messageId: USER-34] [requestid: 6358001e] [sessionid: 63580000] [username: Testuser] -------------------- Query Status: [nQSError: 46164] HTTP Server returned 404 (Not Found) for URL [masked_url]. [[
[nQSError: 46281] Failed to download metadata for dataset ‘system’.‘BigQuery Test’.
[nQSError: 43119] Query Failed:

2. 在 Oracle Analytics 內,您可以看到資料集,但看不到基礎表格。
以下為 GUID-1C0811AA-3875-4A7C-A147-230688B98583-default.png 的說明
.png

在這兩種情況下,您可以將連線的專案名稱修改為小寫。

排解 Oracle Analytics Cloud 對 BigQuery 的連線問題時,使用第三方 JDBC 從屬端嘗試以相同的服務帳戶金鑰連線至 BigQuery。

連線若仍然失敗,代表服務帳戶金鑰有問題。

連線如果成功,代表為 Oracle Analytics 的問題,請洽詢「Oracle 客戶服務部」。

服務帳戶金鑰未經過 ODBC 驗證時,此測試相當實用。

指定資料來源的 DSN 格式

您可以在 Oracle Analytics 中建立多種資料庫類型的內部部署資料模型。Oracle Analytics 支援透過語意模型直接存取某些內部部署資料來源。使用「模型管理工具」建立資料庫連線時,請在連線集區對話方塊 (「一般」頁籤) 的資料來源名稱欄位中,對所連線的資料庫類型使用適當的 DSN 格式。

Amazon Redshift:
       DRIVER=Oracle 7.1 Amazon Redshift Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
      SSL: DRIVER=Oracle 7.1 Amazon Redshift Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"];EM=6;CPV=TLSv1.2,TLSv1.1,TLSv1, SSLv3, SSLv2;VSC=0
Apache Drill:
       DRIVER=MapR Drill ODBC Driver;Host=["host-name"];Port=["port"];CastAnyToVarchar=true;ExcludedSchemas=sys,INFORMATION_SCHEMA;AuthenticationType=Basic               Authentication;ConnectionType=Direct
Aster:
       DRIVER=Aster ODBC Driver;SERVER=["host-name"];PORT=["port"];DATABASE=["service-name"]
DB2:
      DRIVER=Oracle 7.1 DB2 Wire Protocol;IpAddress=["host-name"];PORT=["port"];DB=["service-name"]
      SSL:  DRIVER=Oracle 7.1 DB2 Wire Protocol;IpAddress=["host-name"];PORT=["port"];DB=["service-name"];EM=1;VSC=0
Greenplum:
       DRIVER=Oracle 7.1 Greenplum Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
Hive:
       DRIVER=Oracle 8.0 Apache Hive Wire Protocol;HOST=["host-name"];PORT=["port"]
      SSL: DRIVER=Oracle 8.0 Apache Hive Wire Protocol;HOST=["host-name"];PORT=["port"];EM=1;VSC=0
Impala:
       DRIVER=Oracle 7.1 Impala Wire Protocol;HOST=["host-name"];PORT=["port"]
     SSL:  DRIVER=Oracle 7.1 Impala Wire Protocol;HOST=["host-name"];PORT=["port"];EM=1;VSC=0
Informix:
       DRIVER=Oracle 7.1 Informix Wire Protocol;HOSTNAME=["host-name"];PORTNUMBER=["port"];DATABASE=["service-name"]
MongoDB:
       DRIVER=Oracle 8.0 MongoDB;HOST=["host-name"];PORT=["port"];DB=["service-name"]
MySQL:
      DRIVER=Oracle 7.1 MySQL Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
PostgresSql:
       DRIVER=Oracle 7.1 PostgreSQL Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
Spark:
      DRIVER=Oracle 8.0 Apache Spark SQL;HOST=["host-name"];PORT=["port"]
      SSL:  DRIVER=Oracle 8.0 Apache Spark SQL;HOST=["host-name"];PORT=["port"];EM=1;VSC=0
SQL Server:
     DRIVER=Oracle 7.1 SQL Server Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
     SSL:  DRIVER=Oracle 7.1 SQL Server Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"];EM=1;VSC=0;CryptoProtocolVersion=TLSv1.2,TLSv1.1,TLSv1,SSLv3,SSLv2
Sybase:
       DRIVER=Oracle 7.1 Sybase Wire Protocol;NA=["host-name"], ["port"];DB=["service-name"]
Teradata:
       DRIVER=Oracle 7.1 Teradata;DBCName=["host-name"];port_name=["port"]