Dataflow Gen2 資料目的地和受控設定
使用 Dataflow Gen2 清理並準備資料之後,需要將資料降落在目的地中。 您可以使用 Dataflow Gen2 中的資料目的地功能來執行這項操作。 透過這項功能,您可以從不同的目的地挑選,例如 Azure SQL、Fabric Lakehouse 等。 然後,Dataflow Gen2 會將您的資料寫入目的地,然後從該處使用您的資料進行進一步分析和報告。
下列清單包含支援的資料目的地。
- Azure SQL 資料庫
- Azure 資料總管 (Kusto)
- Fabric Lakehouse
- Fabric 倉儲
- Fabric KQL 資料庫
- 網狀架構 SQL 資料庫
進入點
Dataflow Gen2 中的每個資料查詢都可以有資料目的地。 不支援函數和清單;您只能將它套用至表格式查詢。 您可以個別指定每個查詢的資料目的地,而且可以在資料流程內使用多個不同的目的地。
有三個主要進入點可指定數資料目的地:
透過頂端緞帶。
透過查詢設定。
透過圖表檢視。
連線到資料目的地
連線到資料目的地類似於連線到資料來源。 連線可用於讀取和寫入您的資料,因為您擁有資料來源的正確權限。 您必須建立新的連線或挑選現有的連線,然後選取 [下一步]。
建立新的資料表,或選取現有的資料表
載入資料目的地時,您可以建立新的資料表或挑選現有的資料表。
建立新表格
當您選擇建立新的資料表時,在 Dataflow Gen2 重新整理期間,會在您的資料目的地中建立新的資料表。 如果資料表在未來透過手動進入目的地而刪除,資料流程會在下次資料流程重新整理期間重新建立資料表。
根據預設,您的資料表名稱與查詢名稱的名稱相同。 如果您的資料表名稱中有任何目的地不支援的無效字元,則資料表名稱將會自動調整。 例如,許多目的地不支援空格或特殊字元。
接下來,您必須選取目的地容器。 如果您選擇任何 Fabric 資料目的地,您可以使用瀏覽器來選取您想要將資料載入的 Fabric 成品。 針對 Azure 目的地,您可以在建立連線期間指定資料庫,或從瀏覽器體驗中選取資料庫。
使用現有的資料表
若要選擇現有的資料表,請使用瀏覽器頂端的切換開關。 選擇現有的資料表時,您必須使用瀏覽器來挑選 Fabric 成品/資料庫和資料表。
當您使用現有的資料表時,任何案例都無法重新建立資料表。 如果您從資料目的地手動刪除資料表,Dataflow Gen2 不會在下一次重新整理時重新建立資料表。
新資料表的受控設定
當您載入新資料表時,預設會開啟自動設定。 如果您使用自動設定,Dataflow Gen2 會為您管理對應。 自動設定提供下列行為:
更新方法取代:每次資料流程重新整理時都會取代資料。 目的地中的任何資料都會被移除。 目的地中的資料會被取代為資料流程的輸出資料。
受控對應:對應是受您管理的。 當您需要變更資料/查詢以新增另一個資料行或變更資料類型時,當您重新發佈資料類型時,會自動調整此變更的對應。 每次對資料流程進行變更時,您不需要進入資料目的地體驗,當您重新發佈資料流程時,就能夠輕鬆變更結構描述。
卸除並重新建立資料表:若要允許這些結構描述變更,請在每個資料流程重新整理時卸除並重新建立資料表。 資料流程重新整理可能會導致移除先前新增至資料表的關聯性或量值。
注意
目前,自動設定僅支援 Lakehouse 和 Azure SQL 資料庫作為資料目的地。
手動設定
透過取消切換 [使用自動設定],您可以完全掌控如何將資料載入資料目的地。 您可以通過變更來源類型或排除資料目的地中不需要的任何資料行,來對資料行對應進行任何變更。
更新方法
大部分的目的地都支援將附加和取代作為更新方法。 不過,Fabric KQL 資料庫和 Azure 資料總管不支援將取代作為更新方法。
取代:在每個資料流程重新整理時,您的資料會從目的地卸除,並由資料流程的輸出資料取代。
附加:在每個資料流程重新整理時,資料流程的輸出資料會附加至資料目的地資料表中的現有資料。
發行的結構描述選項
只有在更新方法為取代時,才會套用發佈上的結構描述選項。 當您附加資料時,無法變更結構描述。
動態結構描述:選擇動態結構描述時,您可以在重新發佈資料流程時,允許資料目的地中的結構描述變更。 因為您不是使用受控對應,因此當您對查詢進行任何變更時,仍然需要更新資料流程目的地流程中的資料行對應。 重新整理資料流程時,會卸除資料表並重新建立。 資料流程重新整理可能會導致移除先前新增至資料表的關聯性或量值。
固定結構描述:當您選擇固定結構描述時,就無法進行結構描述變更。 重新整理資料流程時,只會卸除資料表中的資料行,並以資料流程的輸出資料取代。 資料表上的任何關聯性或量值都保持不變。 如果您在資料流程中對查詢進行任何變更,如果資料流程偵測到查詢結構描述不符合資料目的地結構描述,則資料流程發佈會失敗。 當您不打算變更結構描述,並將關聯性或量值新增至目的地資料表時,請使用此設定。
注意
將資料載入倉儲時,僅支援固定結構描述。
各目的地支援的來源類型
各儲存位置支援的資料類型 | DataflowStagingLakehouse | Azure DB (SQL) 輸出 | Azure 資料總管輸出 | Fabric Lakehouse (LH) 輸出 | Fabric 倉儲 (WH) 輸出 | 網狀架構 SQL 資料庫 (SQL) 輸出 |
---|---|---|---|---|---|---|
動作 | No | 無 | 無 | 無 | 無 | No |
任意 | No | 無 | 無 | 無 | 無 | No |
Binary | No | 無 | 無 | 無 | 無 | No |
貨幣 | Yes | .是 | .是 | 是 | 無 | Yes |
DateTimeZone | Yes | .是 | 是 | 無 | 無 | Yes |
期間 | No | 無 | .是 | 無 | 無 | No |
函式 | No | 無 | 無 | 無 | 無 | 否 |
無 | No | 無 | 無 | 無 | 無 | No |
Null | No | 無 | 無 | 無 | 無 | No |
Time | Yes | 是 | 無 | 無 | 無 | Yes |
類型 | No | 無 | 無 | 無 | 無 | No |
結構化 (清單、記錄、資料表) | No | 無 | 無 | 無 | 無 | No |
進階主題
在載入至目的地之前使用檢閱及測試
為了增強查詢處理的效能,您可以在 Dataflow Gen2 內使用檢閱及測試,以使用 Fabric 計算來執行查詢。
在查詢上啟用檢閱及測試時 (預設行為),您的資料會載入檢閱及測試位置,這是只能由資料流程本身存取的內部 Lakehouse。
在某些情況下,使用檢閱及測試位置可以增強效能,將查詢摺疊至 SQL 分析端點的速度比記憶體處理更快。
當您將資料載入 Lakehouse 或其他非倉儲目的地時,我們預設會停用檢閱及測試功能以改善效能。 當您將資料載入資料目的地時,這些資料會直接寫入資料目的地,而不使用檢閱及測試。 如果您想要針對查詢使用檢閱及測試,您可以再次啟用。
若要啟用檢閱及測試,請選取 [啟用暫存] 按鈕,以滑鼠右鍵按一下查詢並啟用檢閱及測試。 然後,您的查詢會變成藍色。
將資料載入至倉儲
當您將資料載入倉儲時,必須在寫入作業至資料目的地之前檢閱及測試。 這項需求可改善效能。 目前僅支援載入與資料流程相同的工作區。 請確定已針對載入倉儲的所有查詢啟用檢閱及測試。
停用檢閱及測試,並選擇 [倉儲] 作為輸出目的地時,您會先收到警告:先啟用檢閱及測試,再設定資料目的地。
如果您已經有作為目的地的倉儲,並嘗試停用檢閱及測試,則會顯示警告。 您可以將倉儲作為目的地移除,或關閉檢閱及測試動作。
清理 Lakehouse 數據目的地
在 Microsoft Fabric 中使用 Lakehouse 作為 Dataflow Gen2 的目的地時,請務必定期執行維護,以確保最佳效能和有效率的記憶體管理。 其中一項基本維護工作是將數據目的地清空。 此程式有助於移除 Delta 數據表記錄不再參考的舊檔案,藉此將記憶體成本優化,並維護數據的完整性。
為什麼吸塵很重要
- 記憶體優化:經過一段時間,差異數據表會累積不再需要的舊檔案。 清理有助於清除這些檔案、釋出儲存空間並降低成本。
- 效能改善:移除不必要的檔案可藉由減少讀取作業期間需要掃描的檔案數目,來增強查詢效能。
- 數據完整性:確保只保留相關檔案有助於維護數據的完整性,防止可能導致讀取器失敗或數據表損毀之未認可的檔案的潛在問題。
如何清理您的數據目的地
若要在 Lakehouse 中清理您的 Delta 數據表,請遵循下列步驟:
- 流覽至您的 Lakehouse:從您的 Microsoft Fabric 帳戶,移至所需的 Lakehouse。
- 存取數據表維護:在 Lakehouse 總管中,以滑鼠右鍵按下您要維護的數據表,或使用省略號來存取內容功能表。
- 選取維護選項:選擇 [ 維護] 功能表項,然後選取 [ 真空] 選項。
- 執行 vacuum 命令:設定保留閾值(預設值為七天),然後選取 [ 立即執行] 來執行 vacuum 命令。
最佳作法
- 保留期間:設定至少七天的保留間隔,以確保不會過早移除舊的快照集和未認可的檔案,這可能會中斷並行的數據表讀取器和寫入器。
- 定期維護:將定期清理排程為數據維護例程的一部分,讓您的 Delta 數據表保持優化並準備好進行分析。
藉由將真空納入您的數據維護策略,您可以確保 Lakehouse 目的地對您的數據流作業保持有效率、符合成本效益且可靠。
如需 Lakehouse 中數據表維護的詳細資訊,請參閱 Delta 數據表維護檔。
Nullable
在某些情況下,當您有可為 Null 的資料行時,Power Query 會偵測為不可為 Null,而且寫入資料目的地時,資料行類型不可為 Null。 在重新整理期間,會發生下列錯誤:
E104100 Couldn't refresh entity because of an issue with the mashup document MashupException.Error: DataFormat.Error: Error in replacing table's content with new data in a version: #{0}., InnerException: We can't insert null data into a non-nullable column., Underlying error: We can't insert null data into a non-nullable column. Details: Reason = DataFormat.Error;Message = We can't insert null data into a non-nullable column.; Message.Format = we can't insert null data into a non-nullable column.
若要強制執行可為 Null 的資料行,您可以嘗試下列步驟:
從資料目的地刪除資料表。
從資料流程中移除資料目的地。
使用下列 Power Query 程式碼進入資料流程並更新資料類型:
Table.TransformColumnTypes( #"PREVIOUS STEP", { {"COLLUMNNAME1", type nullable text}, {"COLLUMNNAME2", type nullable Int64.Type} } )
新增資料目的地。
資料類型轉換和向上調整
在某些情況下,資料流程內的資料類型與下列資料目的地中支援的資料類型不同,這是我們已設定的一些預設轉換,以確保您仍然可以在資料目的地中取得您的資料:
Destination | Dataflow Datatype | Destination Datatype |
---|---|---|
Fabric 倉儲 | Int8.Type | Int16.Type |