新增 SQL 轉換
您可以在轉換任務中納入基於 SQL 的表格。SQL 轉換可讓您在管道中輸入 SQL SELECT 查詢,以定義複雜或簡單轉換。您也可以讓 SQL 助理使用生成式 AI 根據文字提示產生查詢。若執行初始載入或增量載入,您也可以使用巨集以調整要執行的查詢。
如需更多關於建立轉換任務的資訊,請參閱 轉換資料。
新增 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 和資料類型。
執行查詢
您可以在開發期間隨時按一下執行查詢來執行查詢。第一次執行查詢時,將會擷取中繼資料。當查詢執行時,您可以前往中繼資料並設定主索引鍵,這是完成轉換所必需的。
使用巨集調整查詢以因應載入類型
若使用增量載入,則執行初始載入或增量載入時,您可以使用巨集以調整要執行的查詢。
選取巨集並在各自的子句內新增查詢。
-
Q_RUN_INCREMENTAL 可新增子句,您可在此置放只有在執行增量載入時才會執行的查詢。
-
Q_RUN_INITIAL_LOAD 可新增子句,您可在此置放只有在執行初始載入時才會執行的查詢。
您不需要對每個巨集指定完整查詢。您可以根據使用案例調整或新增程式碼。
使用案例:使用日期範圍的增量篩選:
在此使用案例中,需要透過自訂 SQL 轉換一組訂單資料。由於這是大型資料集,您想要納入增量篩選,以確保增量載入僅考慮過去 12 小時的訂單。
此為基本查詢:
此為要在增量執行期間套用的篩選條件,其中您僅考慮過去 12 小時新增的訂單:
此為完整查詢,使用篩選巨集和以 ${TABLE} 標記法取代的表格名稱:
這會產生初始載入查詢:
以及增量載入查詢:
使用案例:使用目標中資料的增量篩選:
在此使用案例中,需要透過自訂 SQL 轉換一組訂單資料。由於訂單是大型資料集,您想要納入增量篩選,以確保增量載入僅考慮比目標表格中的資料更新的訂單詳細記錄。您也想要標記列是經由初始載入或增量載入來處理。
此為基本查詢:
此為要在增量執行期間套用的篩選。“ORDERS_DERIVED” 是目標資料集的名稱。
此為完整查詢,使用篩選巨集和以 ${TABLE} 標記法取代的表格名稱。若為初始載入,則 LOADED_BY 設定為 INIT,若為增量載入,則設定為 INCR:
這會產生初始載入查詢:
以及增量載入查詢:
設定
點擊以編輯 SQL 轉換的設定。
在名稱中輸入目標資料集的名稱。
您也可以在說明中新增較長的說明。
在具體化中,選取是否應具體化轉換的輸出。您可以選擇繼承資料任務設定中的設定。
-
開啟將會建立表格,並且將會處理相關的 ELT 處理。
-
關閉將會建立即時執行轉換的檢視。
在歷史資料儲存 (類型 2) 中,選擇是否要保留歷史資料。您可以選擇繼承資料任務設定中的設定。此設定要求具體化處於啟用狀態。
增量載入可讓您套用篩選條件或其他條件,以減少使用巨集處理的資料集,藉此調整對於增量資料載入的查詢。只有在資料具體化為表格時,才能使用增量載入。
-
若增量載入是開啟
首次執行任務將會執行初始載入,將所有查詢結果插入目標表格中。後續執行將會執行增量載入,運用您為增量處理定義的篩選條件或特定條件。在增量載入期間,任務只會以更新或插入方式處理資料,不會管理刪除。
-
若增量載入是關閉
首次執行任務將會執行初始載入,將所有查詢結果插入目標表格中。後續執行將會與目標表格比較,並處理新的、已變更或已刪除的記錄,以處理所有查詢結果。
最佳做法
-
若新增 SQL 轉換,不會自動定義主要金鑰。在資料集索引標籤中,新增金鑰到資料集。
-
請勿手動在轉換的輸出中建立欄標頭。
-
避免使用 SELECT 搭配 *,因為這可能會在每次查詢執行時傳回不同的欄。若結構描述中有變更,請據此變更查詢並重新執行描述表格。然後您可以編輯欄並調整表格。