跳到主要內容 跳至補充內容

Databricks

您可以使用 Databricks 作為資料管道中的目標資料平台。在資料管道中,可以在目標平台執行各種操作,包括登陸資料、儲存資料、轉換資料、資料超市建立和資料註冊。

這涉及:

資訊備註僅支援 SQL 倉庫叢集

設定雲端暫存區域

使用 Databricks 目標連接器時,您也需要定義雲端暫存區域,資料和變更在套用和儲存之前會在該區暫存。支援以下儲存平台:

資訊備註若您註冊現有資料,您不需要設定雲端暫存區域。

設定連線至 Databricks

選取 Databricks 目標連接器並進行下列設定。

資料目標

資料閘道: 只有在無法從 Qlik Cloud 存取目標資料庫且只能使用私人連結存取時 (例如若將在虛擬私人雲端中),才需要 資料移動閘道。在此情況下,選取您要用來存取目標資料庫的 資料移動閘道

根據您的使用情況,這會是為了從資料來源登陸資料而部署的相同或不同 資料移動閘道。如需關於可能的 資料移動閘道 部署可能性的資訊,請參閱 常見使用案例

資訊備註需要 資料移動閘道 2023.5.10 或更高版本。

若目標資料庫可從 Qlik Cloud 直接存取,請選取

資訊備註透過 資料移動閘道 存取目標資料庫時,您也需要在 資料移動閘道 機器上安裝適當的驅動程式。如需詳細資訊,請參閱以下的 驅動程式的設定

連線屬性

  • 主機:Databricks 工作區的主機名稱。
  • 連接埠:用來存取工作區的連接埠。
  • HTTP 路徑:前往使用之叢集的路徑。
  • Token:您用於存取工作區的個人 Token。

目錄屬性

按一下載入目錄以載入可用目錄,然後選取目錄。若未透過任何目錄設定環境,選取 hive_metastore,這是預設目錄。

資訊備註

您需要定義 Databricks 中的外部位置,以允許 資料移動閘道 存取外部 (未管理) 表格。如需準則,請參閱:

https://docs.databricks.com/data-governance/unity-catalog/manage-external-locations-and-credentials.html#manage-permissions-for-an-external-location

內部屬性

內部屬性用於特殊使用情況,因此不會在對話方塊中顯示。您只能在 Qlik 支援指示下使用。

根據需要使用欄位右側的 新建取消 按鈕以新增或移除屬性。

名稱

連線的顯示名稱。

必要條件

一般權限

  • Qlik Cloud 資料整合伺服器機器上的時間必須為準確。
  • Databricks 表格權限: 資料移動閘道 需要權限才能進行以下 Dataricks 表格操作:CREATE、DROP、TRUNCATE、DESCRIBE 和 ALTER 表格。
  • 在 ADLS Gen2 檔案系統的存取控制 (IAM) 設定中,指定「儲存 Blob 資料參與者」角色至 資料移動閘道 (AD App ID)。可能需要幾分鐘角色才會生效。
  • 為了讓 資料移動閘道 透過 ODBC 連接至 Databricks 叢集,使用者必須在其 Databricks 帳號被授權「可以附加」權限。
  • 需要有效安全 Token 才可存取 Databricks。在終端設定中組態 Databricks ODBC 存取欄位時,必須指定 Token。
  • 當透過 Microsoft Azure Data Lake Storage (ADLS) Gen2 組態新叢集時,必須在「Spark Config」區段新增以下行。

    spark.hadoop.hive.server2.enable.doAs false

  • 為了能夠從 Databricks 叢集存取儲存目錄,使用者必須針對該 Storage 帳戶和金鑰新增(在 Spark Config 中的)組態。

    範例:  

    fs.azure.account.key.<storage-account-name>.dfs.core.windows.net <storage-account-access-key>

    如需更多資訊詳情,請參考 Databricks 線上說明文件:https://docs.databricks.com/clusters/configure.html#spark-configuration

  • 最佳作法不是針對 Databricks 資料庫使用根位置 (/Usr/Hive/Warehouse/) ,這麼做會影響效能。

儲存區存取權限

必須設定 Databricks SQL 運算,以存取雲端儲存區。如需指示,請參閱廠商的線上說明。

驅動程式的設定

只有在透過 資料移動閘道 存取資料庫時,才需要驅動程式。在這類情況下,您需要將驅動程式安裝在 資料移動閘道 機器。

您可以使用驅動程式安裝公用程式 (建議) 或手動安裝 driver。只能在不太可能發生的事件 (您在使用驅動程式安裝公用程式時遇到問題) 中嘗試手動安裝。

使用驅動程式安裝公用程式來安裝驅動程式

此區段描述如何安裝所需的 driver。該流程涉及執行將會自動下載、安裝並設定所需 driver 的指令碼。您也可以執行指令碼,以根據需求更新並解除安裝 driver

  • 確認 Python 3.6 或更高版本安裝於 資料移動 閘道伺服器。

    Python 會預先安裝在大部分的 Linux 發行版。您可以執行下列命令,以查看哪個 Python 版本安裝在您的系統上:

    python3 --version

若要下載並安裝 driver

  1. 停止 資料移動閘道 服務:

    sudo systemctl stop repagent

  2. 可自選,確認服務已停止:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: inactive (dead) since <timestamp> ago

  3. 資料移動 閘道機器上,將工作目錄變更為:

    opt/qlik/gateway/movement/drivers/bin

  4. 執行下列命令:

    語法:

    ./install databricks

    若無法下載 driver (由於存取限制或技術問題),將會顯示訊息,指示您到哪裡下載 driver 以及在 資料移動 閘道機器上的何處複製。完成後,再次執行 install databricks 命令。

    否則,就會顯示 driver 的 EULA。

  5. 執行下列其中一個動作:

    • 重複按下 [Enter] 以緩慢瀏覽 EULA。
    • 重複按下空格鍵以快速瀏覽 EULA。
    • 按下 q 以結束授權文字並呈現 EULA 接受選項。
  6. 執行下列其中一個動作:

    • 輸入「y」並按下 [Enter] 以接受 EULA 並開始安裝。
    • 輸入「n」並按下 [Enter] 以拒絕 EULA 並退出安裝。
    • 輸入「v」並按下 [Enter] 以再次檢視 EULA。

  7. 將會安裝 driver

  8. 等待安裝完成 (以「完成!」指示),然後開始 資料移動閘道 服務:

    sudo systemctl start repagent

  9. 可自行選擇確認服務已開始:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: active (running) since <timestamp> ago

若您想要在安裝提供的 driver 之前解除安裝先前的 driver 版本,請執行更新命令。

若要下載並更新 driver

  1. 停止 資料移動閘道 服務:

    sudo systemctl stop repagent

  2. 可自選,確認服務已停止:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: inactive (dead) since <timestamp> ago

  3. 資料移動 閘道機器上,將工作目錄變更為:

    opt/qlik/gateway/movement/drivers/bin

  4. 執行下列命令:

    語法:

    ./update databricks

    若無法下載 driver (由於存取限制或技術問題),將會顯示訊息,指示您到哪裡下載 driver 以及在 資料移動 閘道機器上的何處複製。完成後,再次執行 update databricks 命令。

    否則,就會顯示 driver 的 EULA。

  5. 執行下列其中一個動作:

    • 重複按下 [Enter] 以緩慢瀏覽 EULA。
    • 重複按下空格鍵以快速瀏覽 EULA。
    • 按下 q 以結束授權文字並呈現 EULA 接受選項。
  6. 執行下列其中一個動作:

    • 輸入「y」並按下 [Enter] 以接受 EULA 並開始安裝。
    • 輸入「n」並按下 [Enter] 以拒絕 EULA 並退出安裝。
    • 輸入「v」並按下 [Enter] 以從頭檢閱 EULA。
  7. 將會解除安裝舊版 driver,並安裝新版 driver

  8. 等待安裝完成 (以「完成!」指示),然後開始 資料移動閘道 服務:

    sudo systemctl start repagent

  9. 可自行選擇確認服務已開始:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: active (running) since <timestamp> ago

若您想要解除安裝 driver,請執行解除安裝命令。

若要解除安裝 driver

  1. 停止設定為使用此連接器的所有任務。

  2. 資料移動 閘道機器上,將工作目錄變更為:

    opt/qlik/gateway/movement/drivers/bin

  3. 執行下列命令:

    語法:

    ./uninstall databricks

    將會解除安裝 driver

手動安裝驅動程式

只有在自動驅動程式安裝無法成功完成時,才能嘗試手動安裝 driver

安裝 資料移動閘道 後,下載 SimbaSparkODBC-<version>-LinuxRPM-64bit.zip 檔案。您可以在 /opt/qlik/gateway/movement/drivers/manifests/databricks.yamlbinary-artifacts 之下找到支援版本的直接下載連結。下載完成後,將檔案複製到 資料移動閘道 機器。

  1. 停止 資料移動閘道 服務:

    sudo systemctl stop repagent

  2. 可自選,確認服務已停止:

    sudo systemctl status repagent

  3. 狀態應如下所示:

    Active: inactive (dead) since <timestamp> ago

  4. 將驅動程式安裝在 資料移動閘道 機器。

  5. 一旦安裝,請確定以下區段出現在 /etc/odbcinst.ini 檔案中:

  6.  [Simba Spark ODBC Driver] Description=Amazon Hive ODBC Driver (64-bit) Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so
  7. 開始 資料移動閘道 服務:

    sudo systemctl start repagent

  8. 可自選,確認服務已開始:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: active (running) since <timestamp> ago

  1. 下載 databricks-jdbc-<version>.jar 檔案。您可以在 /opt/qlik/gateway/movement/drivers/manifests/databricks.yamlbinary-artifacts 之下找到支援版本的直接下載連結。下載完成後,將 JAR 檔案複製到 資料移動閘道 機器的下列資料夾:

    /opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib

  2. 執行 資料移動閘道 服務命令 中描述的命令,以重新啟動 資料移動閘道 服務並確認已啟動

連接埠

需開啟防火牆連接埠 443 才能進行輸入通訊。

資料類型

下表顯示使用 Qlik Cloud 時支援的 Databricks 資料類型和來自 Qlik Cloud 資料類型的預設對應。

會保留原生資料類型資訊,並顯示在資料集檢視的原生資料類型欄中。若看不見欄,您需要開啟資料集檢視的欄選擇器並選取原生資料類型欄。

支援的資料類型
Qlik Cloud 資料類型 Databricks 資料類型

布林

布林

位元組

字串

日期

日期

時間

字串

日期時間

時間戳記

INT1

TINYINT

INT2

SMALLINT

INT4

INT

INT8

BIGINT

數字

小數 (精確度,縮放)

REAL4

浮動

REAL8

雙重

UINT1

SMALLINT

UINT2

INT

UINT4

BIGINT

UINT8

小數 (20, 0)

字串

VARCHAR (以位元組為單位的長度)

WSTRING

VARCHAR (以位元組為單位的長度)

BLOB

字串

NCLOB

字串

CLOB

字串

下列資料類型會轉換為 STRING(255):

  • 地圖

  • 陣列

  • STRUCT

限制和考慮事項

  • 在 AWS 上以無主要金鑰的表格使用 Databricks 時,將表格重新載入至登陸會導致 Storage 應用程式故障。解決此問題有兩種方式,可以

    • 在表格中定義主要金鑰。

    • 在 Databricks 中將 spark.databricks.delta.alterTable.rename.enabledOnAWS 設定為 True。

    • 建立基於 SQL 的轉換時,會傳回所有 VARCHAR 作為 STRING(255)。

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!