新增 SQL 轉換
您可以在轉換任務中包含基於 SQL 的表格。SQL 轉換允許您將 SQL SELECT 查詢輸入到管道中,以定義複雜或簡單的轉換。您可以讓 SQL assistant 使用生成式 AI 從文字提示產生查詢。您還可以使用巨集來調整查詢,以便在執行初始載入或增量載入時執行。
在將 SQL 新增至轉換之前,您可以使用 SQL workbench 探索資料並驗證唯讀 SQL。如需詳細資訊,請參閱 使用 SQL Workbench 探索資料。
如需有關建立轉換任務的詳細資訊,請參閱 轉換資料。
新增 SQL 轉換
若要在 轉換 資料任務中新增 SQL 轉換:
-
在 轉換 中,選取要包含在查詢中的資料集,然後按一下 新增 SQL 轉換。
在 名稱 中設定轉換的名稱。如需有關其他設定的詳細資訊,請參閱 設定。
準備好建立 SQL 轉換時,按一下 新增。
隨即顯示 編輯 SQL 轉換。
-
在查詢窗格中寫入查詢以傳回基於 SQL 的表格。
如需詳細資訊,請參閱 編輯 SQL 查詢。
-
按一下 執行查詢。
這將擷取中繼資料和資料的預覽。
-
在 參數 中檢閱參數。
如需詳細資訊,請參閱 參數。
-
在 中繼資料 中設定主索引鍵。
如需詳細資訊,請參閱 中繼資料。
-
當您對查詢結果感到滿意時,按一下 儲存並關閉。資料集現在已新增至目標清單中,您可以預覽它。
編輯 SQL 查詢
在查詢窗格中輸入查詢以傳回基於 SQL 的表格。查詢只能從您選取的來源資料集中讀取,但您可以使用 新增 來新增更多來源資料集。
-
您可以建立一個陳述式以從 物件 載入資料集。按一下
,然後按一下 新增 SELECT 陳述式。
-
您可以透過按一下
,然後按一下 複製,將資料集的名稱複製到剪貼簿。
-
按一下 > 將資料集或欄名稱移至編輯器。
-
按一下
以在編輯器中搜尋並取代文字。
如果使用增量載入,您可以使用 巨集 來調整查詢,以便在執行初始載入或增量載入時執行。
如需詳細資訊,請參閱 使用巨集來調整查詢以適應載入類型。
鍵盤快速鍵
-
Ctrl+F 搜尋並取代
-
Ctrl+/ 註解/取消註解目前行
-
Ctrl+Enter 執行查詢
-
Ctrl+Z 復原
-
Ctrl+Y 重做
預覽結果
您可以在 結果 中使用資料的樣本來預覽結果。
您必須被指派下列角色才能預覽資料:
-
在連線所在的空間中具有 可檢視資料 權限。
-
在專案所在的空間中具有 可檢視 權限。
隨即顯示使用資料樣本的結果。您可以使用 列數 設定樣本中要包含多少資料列。
-
按一下 上次執行的查詢 以查看上次執行的時間和上次執行查詢的持續時間。
篩選結果
您可以依一個或多個欄篩選結果。
-
在要篩選的第一個欄上按一下
,然後按一下 篩選。
選取要使用的運算子以及要篩選的值。
您可以透過按一下 新增篩選條件 來新增更多欄篩選條件。
篩選條件只會影響現有的樣本資料。
排序結果
您可以依特定欄對資料樣本進行排序。
-
在要排序的欄上按一下
,然後按一下 遞增排序 或 遞減排序。
排序只會影響現有的樣本資料。如果您使用篩選條件僅包含 2024 年的訂單並反轉排序順序,樣本資料仍將僅包含 2024 年的訂單。
管理顯示的欄
您可以選取要在結果中顯示的欄。儲存轉換時,不會儲存此選取項目。
-
透過在欄上按一下
,然後按一下 隱藏欄 來隱藏欄。
-
透過在任何欄上按一下
,然後按一下 顯示的欄 來管理所有欄的顯示。
參數
按一下 參數 以變更 SELECT 查詢中的參數。參數應對應至來源或目標物件。
在下列情況下,參數會自動對應:
-
在 物件 中使用 新增 SELECT 陳述式。
-
按一下 > 將資料集或欄名稱移至編輯器。
-
參數名稱與 物件 中表格的表格名稱相符。
您可以對應至
-
歷史記錄類型 2 結構 (_history)
-
目前結構
-
目標物件
只有在增量巨集內定義參數時,才能對應目標物件。
中繼資料
您可以在 中繼資料 中編輯中繼資料設定。
-
在 索引鍵 欄中設定主索引鍵。
您可以透過按一下 建議並驗證索引鍵 來取得合適主索引鍵的建議,並驗證索引鍵。
-
在 可為 Null 欄中設定該欄是否可為 Null。
-
選取一個欄並按一下 編輯 以設定欄名稱、索引鍵、可為 Null 和資料類型。
建議並驗證索引鍵
您可以透過按一下 建議並驗證索引鍵 來取得合適主索引鍵的建議,並驗證索引鍵。完整的 SQL 查詢必須至少執行過一次。
-
如果您已選擇加入跨區域推論,則會使用 GenAI 來建議索引鍵。這允許 Qlik Cloud 將推論請求傳送到您的租用戶區域之外。如需有關推論處理位置的詳細資訊和最新資訊,請參閱 啟用跨區域推斷。
資訊備註Qlik 不控制產生的輸出。由於 GenAI 的性質,如果沒有經過檢閱或編輯,回應可能無法產生符合您需求的 SQL。根據 Qlik 客戶協議的條款,產生的查詢被視為「內容」。Qlik Cloud 政府備註GenAI 輔助的索引鍵建議在 Qlik Cloud Government 中無法使用。
如果未啟用 GenAI,將根據來源表格資料以程式設計方式建議索引鍵。
-
驗證將始終在不使用 GenAI 的情況下執行,透過執行 SQL 查詢來確保沒有重複項或 NULL 值。
資訊備註只有在查詢傳回資料時才能進行驗證。
-
建議並驗證索引鍵
這將檢閱查詢和來源表格索引鍵,並建議有效的主索引鍵。此作業可能需要一些時間。
-
驗證索引鍵
這將驗證現有的主索引鍵,以確保它們是唯一且非 NULL 的。此作業可能需要一些時間。
-
建議但不驗證
這將檢閱查詢和來源表格索引鍵,並在不驗證的情況下建議主索引鍵。在套用之前,請手動檢閱並驗證索引鍵。
執行查詢
在開發期間,您可以隨時按一下 執行查詢 來執行查詢。第一次執行查詢時,將擷取中繼資料。執行查詢後,您可以前往 中繼資料 並設定主索引鍵,這是完成轉換所必需的。
使用巨集來調整查詢以適應載入類型
如果使用增量載入,您可以使用 巨集 來調整查詢,以便在執行初始載入或增量載入時執行。
選取巨集並在相應的子句中新增查詢。
-
Q_RUN_INCREMENTAL 會新增一個子句,您可以在其中放置僅在執行增量載入時執行的查詢。
-
Q_RUN_INITIAL_LOAD 會新增一個子句,您可以在其中放置僅在執行初始載入時執行的查詢。
您不需要為每個巨集指定完整的查詢。您可以根據您的使用案例調整或新增程式碼。
使用案例:使用日期範圍的增量篩選條件:
在此使用案例中,需要使用自訂 SQL 轉換一組訂單資料。由於這是一個大型資料集,您希望包含增量篩選,以確保增量載入僅考慮過去 12 小時內的訂單。
這是基本查詢:
這是在增量執行期間套用的篩選條件,您只考慮過去 12 小時內新增的訂單:
這是完整的查詢,使用篩選條件巨集並將表格名稱取代為 ${TABLE} 標記法:
這會產生初始載入查詢:
以及增量載入查詢:
使用案例:使用目標中資料的增量篩選條件:
在此使用案例中,需要使用自訂 SQL 轉換一組訂單資料。由於訂單是一個大型資料集,您希望包含增量篩選,以確保增量載入僅考慮比目標表格中資料更新的訂單詳細資料記錄。您還希望標記資料列是由初始載入還是增量載入處理的。
這是基本查詢:
這是在增量執行期間套用的篩選條件。“ORDERS_DERIVED” 是目標資料集的名稱。
這是完整的查詢,使用篩選條件巨集,並將表格名稱取代為 ${TABLE} 標記法。如果載入是初始載入,則 LOADED_BY 設定為 INIT,如果載入是增量載入,則設定為 INCR:
這會產生初始載入查詢:
以及增量載入查詢:
設定
按一下 以編輯 SQL 轉換的設定。
在名稱中輸入目標資料集的名稱。
您也可以在說明中新增較長的說明。
在具體化中,選取是否應具體化轉換的輸出。您可以選擇繼承資料任務設定中的設定。
-
開啟將會建立表格,並且將會處理相關的 ELT 處理。
-
關閉將會建立即時執行轉換的檢視。
在歷史資料儲存 (類型 2) 中,選擇是否要保留歷史資料。您可以選擇繼承資料任務設定中的設定。此設定要求具體化處於啟用狀態。
增量載入可讓您套用篩選條件或其他條件,以減少使用巨集處理的資料集,藉此調整對於增量資料載入的查詢。只有在資料具體化為表格時,才能使用增量載入。
-
若增量載入是開啟
首次執行任務將會執行初始載入,將所有查詢結果插入目標表格中。後續執行將會執行增量載入,運用您為增量處理定義的篩選條件或特定條件。在增量載入期間,任務只會以更新或插入方式處理資料,不會管理刪除。
-
若增量載入是關閉
首次執行任務將會執行初始載入,將所有查詢結果插入目標表格中。後續執行將會與目標表格比較,並處理新的、已變更或已刪除的記錄,以處理所有查詢結果。
最佳實務
-
當您新增 SQL 轉換時,不會自動定義主索引鍵。在 資料集 索引標籤中將索引鍵新增至資料集。
-
請勿手動在轉換後的輸出中建立欄標題。
-
避免將 SELECT 與 * 一起使用,因為這可能會在每次執行查詢時傳回不同的欄。如果結構描述發生變更,請相應地變更查詢並再次執行 描述表格。然後您可以編輯欄並調整表格。