新增 SQL 轉換
您可以在轉換任務中納入基於 SQL 的表格。SQL 轉換可讓您在管道中輸入 SQL SELECT 查詢,以定義複雜或簡單轉換。您可以讓 SQL 助理使用生成式 AI 從文字提示產生查詢。若執行初始載入或增量載入,您也可以使用巨集以調整要執行的查詢。
如需更多關於建立轉換任務的資訊,請參閱 轉換資料。
新增 SQL 轉換
若要在轉換資料任務中新增 SQL 轉換:
-
在轉換中,選取要在查詢中包含的資料集,再按一下新增 SQL 轉換。
會顯示新增 SQL 轉換,您可在此提供轉換設定。
-
在名稱中輸入目標資料集的名稱。
您也可以在說明中新增較長的說明。
-
在具體化中,選取是否應具體化轉換的輸出。您可以選擇繼承資料任務設定中的設定。
-
開啟將會建立表格,並且將會處理相關的 ELT 處理。
-
關閉將會建立即時執行轉換的檢視。
-
-
增量載入可讓您套用篩選條件或其他條件,以減少使用巨集處理的資料集,藉此調整對於增量資料載入的查詢。只有在資料具體化為表格時,才能使用增量載入。
-
若增量載入是開啟
首次執行任務將會執行初始載入,將所有查詢結果插入目標表格中。後續執行將會執行增量載入,運用您為增量處理定義的篩選條件或特定條件。在增量載入期間,任務只會以更新或插入方式處理資料,不會管理刪除。
-
若增量載入是關閉
首次執行任務將會執行初始載入,將所有查詢結果插入目標表格中。後續執行將會與目標表格比較,並處理新的、已變更或已刪除的記錄,以處理所有查詢結果。
資訊備註若查詢將會選取應存在於目標中的所有記錄,請將增量載入設定為關閉。將會在目標中刪除未選取的記錄。 -
-
在您準備好建立 SQL 轉換時按一下新增。
就會顯示編輯 SQL 轉換。
-
輸入查詢以在 SELECT 查詢中傳回基於 SQL 的表格。
只能從您選取的來源資料集讀取查詢,但您可以透過新增新增更多來源資料集。
可從資料集和欄選取。
您也可以使用 SQL 助理以使用生成式 AI 產生查詢。如需詳細資訊,請參閱從文字提示產生 SQL 轉換。
-
若使用增量載入,則執行初始載入或增量載入時,您可以使用巨集以調整要執行的查詢。
如需詳細資訊,請參閱使用巨集調整查詢以因應載入類型。
-
按一下擷取參數以剖析 SELECT 查詢中的參數。
參數應對應至來源或目標物件。您可以對應至
-
歷史記錄類型 2 結構 (_history)
-
目前結構
-
目標物件
若在增量巨集內部定義參數,您只能對應目標物件。
提示備註可用參考取代參數,使查詢更加易讀。變更參數中的值,SELECT 查詢中的參考也會變更。 -
-
按一下描述表格可取得查詢輸出中繼資料的預覽。
您也可以使用資料樣本預覽結果。
-
確認表格有主要金鑰。
您也可以編輯中繼資料設定。
-
在金鑰欄中設定主要金鑰。
-
在可為 Null 欄中設定欄是否可為 Null。
-
選取欄並按一下編輯以設定欄名稱、金鑰、可為 Null 和資料類型。
-
-
若您滿意查詢結果,按一下確定。資料集即已新增至目標清單,您可預覽。
預覽資料
您可以使用資料樣本預覽結果。
必須向您指派下列角色,您才能預覽資料:
-
連線所在空間中的可以檢視資料。
-
專案所在空間中的可以檢視。
若要檢視結果預覽:
-
按一下檢視資料。
就會顯示使用資料樣本的結果。您可以透過列數設定要在樣本中納入多少資料列。
您可以使用兩種方式篩選樣本資料:
-
使用 篩選要擷取哪個樣本資料。
例如,若您使用篩選 ${OrderYear}>2023 且列數設定為 10,您將取得 2024 年的 10 筆訂單樣本。
-
依特定欄篩選樣本資料。
這只會影響現有的樣本資料。若您使用 僅納入 2024 年的訂單,並設定欄篩選以顯示 2022 年的訂單,則結果是空的樣本。
您可以依特定欄排序資料樣本。排序只會影響現有的樣本資料。若您使用 僅納入 2024 年的訂單,並反轉排序訂單,則樣本資料仍然只會包含 2024 年的訂單。
使用巨集調整查詢以因應載入類型
若使用增量載入,則執行初始載入或增量載入時,您可以使用巨集以調整要執行的查詢。
選取巨集並在各自的子句內新增查詢。
-
Q_RUN_INCREMENTAL 可新增子句,您可在此置放只有在執行增量載入時才會執行的查詢。
-
Q_RUN_INITIAL_LOAD 可新增子句,您可在此置放只有在執行初始載入時才會執行的查詢。
您不需要對每個巨集指定完整查詢。您可以根據使用案例調整或新增程式碼。
使用案例:使用日期範圍的增量篩選:
在此使用案例中,需要透過自訂 SQL 轉換一組訂單資料。由於這是大型資料集,您想要納入增量篩選,以確保增量載入僅考慮過去 12 小時的訂單。
此為基本查詢:
此為要在增量執行期間套用的篩選條件,其中您僅考慮過去 12 小時新增的訂單:
此為完整查詢,使用篩選巨集和以 ${TABLE} 標記法取代的表格名稱:
這會產生初始載入查詢:
以及增量載入查詢:
使用案例:使用目標中資料的增量篩選:
在此使用案例中,需要透過自訂 SQL 轉換一組訂單資料。由於訂單是大型資料集,您想要納入增量篩選,以確保增量載入僅考慮比目標表格中的資料更新的訂單詳細記錄。您也想要標記列是經由初始載入或增量載入來處理。
此為基本查詢:
此為要在增量執行期間套用的篩選。“ORDERS_DERIVED” 是目標資料集的名稱。
此為完整查詢,使用篩選巨集和以 ${TABLE} 標記法取代的表格名稱。若為初始載入,則 LOADED_BY 設定為 INIT,若為增量載入,則設定為 INCR:
這會產生初始載入查詢:
以及增量載入查詢:
最佳做法
-
若新增 SQL 轉換,不會自動定義主要金鑰。在資料集索引標籤中,新增金鑰到資料集。
-
請勿手動在轉換的輸出中建立欄標頭。
-
避免使用 SELECT 搭配 *,因為這可能會在每次查詢執行時傳回不同的欄。若結構描述中有變更,請據此變更查詢並重新執行描述表格。然後您可以編輯欄並調整表格。