從下列位置執行查詢Presto(C++) CLI 或查詢工作區
IBM® watsonx.data允許執行 SQL 查詢Presto(C++) CLI 或透過查詢工作區使用或不使用查詢最佳化器。
關於此作業
您可以選擇運行選項Presto(C++) CLI 查詢使用或不使用查詢最佳化器運算符在watsonx.data透過使用以下步驟。
跑步Presto(C++) 查詢:
-
選項 1:跑步Presto(C++) 查詢使用查詢最佳化器。
a. 執行以下命令進入目錄
ibm-lh-client/bin:cd ibm-lh-client/binb. 建立 SQL 檔案並將檔案路徑匯出到
LH_SANDBOX_DIR。 例如,檔案名稱為sql-files。export LH_SANDBOX_DIR=<path to sql-files>c. 取得引擎名稱清單並選擇要使用的引擎名稱。 例如,引擎名稱
engine1。./manage-engines --op=list export engine_name=engine1d. 運行以下命令來運行Presto(C++) 查詢使用查詢最佳化器。
./presto-run --engine=$engine_name --session is_query_rewriter_plugin_enabled=true -f $LH_SANDBOX_DIR/sql-files.sql您必須在 USE 語句中使用完全限定名稱(3 個部分名稱,例如
<catalog.schema.table>)或 2 部分名稱來限定目錄和架構。範例:3 部分名稱:
select * from "catalog".schema.table;2 部分名稱:
use "catalog".schema; followed by select * from schema.table; -
選項 2:跑步Presto(C++) CLI 查詢而不使用查詢最佳化器。
a. 執行以下指令,進入ibm-lh-client目錄/bin:
cd ibm-lh-client/binb. 建立 SQL 檔案並將檔案路徑匯出到
LH_SANDBOX_DIR。 例如,檔案名稱為sql-files。export LH_SANDBOX_DIR=<path to sql-files>c. 取得引擎名稱清單並選擇要使用的引擎名稱。 例如,引擎名稱為
engine1。./manage-engines --op=list export engine_name=engine1d. 執行下列指令,即可在不使用 Query Optimizer 的情況下執行 Presto (C++) 查詢。
./presto-run --engine=$engine_name --session is_query_rewriter_plugin_enabled=false -f $LH_SANDBOX_DIR/sql-files.sql如果會話參數
is_query_rewriter_plugin_enabled設定為false,將無法執行ExecuteWxdQueryOptimizer指令。 -
請依照以下步驟取得查詢的詳細資訊並驗證執行的查詢是否經過最佳化:
-
登入 watsonx.data 控制台。
-
從導覽功能表中,開啟基礎設施管理器頁面。
-
點選Presto (C++)引擎,開啟元件詳細資料頁面。
-
從詳細資料頁複製並瀏覽開啟 Presto (C++) 引擎的主機 URL,以開啟叢集總覽外部網頁。
-
輸入使用者名稱和密碼登入叢集概覽頁面。
使用者名稱:使用者名稱是
ibmlhapikey或ibmlhapikey_<watsonx.datauser_id>。 密碼:watsonx.data使用者的 API 金鑰。 有關檢索 API 金鑰的更多信息,請參閱 產生 API 金鑰。自 watsonx.data 版本 起,使用
ibmlhapikey和ibmlhtoken作為使用者 2.2.0 名稱的驗證方式已廢棄。 這些格式將在 2.3.0 本次版本中逐步淘汰。 為確保與即將推出的版本相容,請使用新格式:ibmlhapikey_<username>和ibmlhtoken_<username>。 -
按一下您要驗證的查詢 ID。 這將開啟 “查詢詳細資料” 頁面。
-
從 「查詢詳細資料」 頁面開啟 JSON 文件,以驗證參數
is_query_rewriter_plugin_succeeded值為true或false。 最佳化查詢的參數值設定為true。
-