本文說明如何逐步將分析工作負載從 Azure 資料總管轉換成 Fabric Real-Time 智慧中的 Eventhouse,而不會停機。 首先使用 Fabric 作為查詢層 ,而 ADX 會繼續擷取資料以探索 Fabric 的功能。 當您準備就緒時,請將結構描述和資料擷取移轉至 Fabric,以全面移轉。
如果您無法等待 ADX 中的資料因保留期到期而移除,且需要將資料複製到 Eventhouse,可考慮使用開源工具 Kusto Copy。
備註
若要瞭解 Fabric Real-Time 智慧與類似 Azure 解決方案之間的差異,請參閱 與 Azure 解決方案比較。
在 Fabric 中取用 ADX 資料
僅保留 ADX 以供擷取,並使用這兩種方法之一將查詢移至 Fabric,以使用 Fabric 中的 ADX 資料,而不複寫資料。
Fabric 資料庫捷徑(追隨者)
建立 Azure 資料總管資料庫的 資料庫捷徑 ,並在不將資料移轉至 Fabric 的情況下進行查詢。 Fabric Real-Time Intelligence 工作負載中的資料庫捷徑,是 Kusto 查詢語言 (KQL) 資料庫內嵌、指向 Azure Data Explorer 中來源資料庫的參照。 資料庫捷徑的行為類似於 追蹤者資料庫。 它是唯讀的,會以輕微延遲 (秒到幾分鐘) 同步處理新資料,並讓所有 Fabric 專案檢視和查詢 ADX 資料,而不需要重新擷取它。
你可以包含所有來源子項目,或使用資料表層級共享,只暴露工作負載所需的資料表、捷徑資料表、實體化檢視和函式。 對於叢集 URI 方法,建立捷徑時選擇 共享實體 中的子項目。 對於邀請令牌,資料提供者會預先定義共享的子項目。 來源資料庫與 Fabric 資料庫捷徑必須位於同一租戶與區域。 關於選擇行為與依賴關係,請參見「選擇共享實體」。
將 ADX 叢集附加為可查詢來源
在 Fabric 中,請確定您已連線到 ADX 叢集。 在 KQL 查詢集中新增 Azure 資料總管來源,可讓特定 Fabric 專案 (例如查詢集和即時儀表板) 查詢 ADX 資料。 如需更多資訊,請參閱 在 KQL 查詢集內查詢資料 - Microsoft Fabric。
試用 Fabric 的功能,例如 Copilot 協助產生查詢、Notebooks、Activator,以及針對您的 ADX 資料的 Power BI 報表。 在 Fabric 中執行所有儀錶板和查詢,同時讓資料擷取持續在 ADX 中進行。 當您準備好完全移轉時,請遵循後續步驟。
高階移轉步驟
請遵循下列步驟,從 ADX 移轉至 Fabric:
- 使用 ADX 架構在 Fabric 中建立新的 KQL 資料庫
- 使用聯集運算子建立檢視,以存取 KQL 資料庫中的資料表和 ADX 資料庫中的資料表
- 將查詢端點重新導向至 Fabric Eventhouse 中的 KQL 資料庫
- 將資料擷取切換至網狀架構
- 淘汰 ADX 叢集
下列各節提供每個步驟的詳細資訊。
在 Fabric 中使用 ADX 架構建立 KQL 資料庫
在 Fabric 事件庫中建立空的 KQL 資料庫,最終會取代 ADX 資料庫。 它必須具有與 ADX 資料庫相同的資料表和函式架構。 如需指示,請參閱 建立事件室和 KQL 資料庫。
複寫結構描述
使用 Sync Kusto 或從 ADX 資料庫匯出結構描述,以在 Fabric KQL 資料庫中重新建立它。 SyncKusto 是專用工具,可在環境之間同步處理 Kusto 資料庫架構 (資料表、函式等)。
或者,你也可以在 ADX 執行 KQL 指令:
.show database schema as csl script,產生包含所有資料表定義、函式與政策的腳本,然後在 Fabric.execute database script的 KQL 資料庫中執行該生成腳本。驗證結構描述
確認 KQL 資料庫中的所有資料表、資料行、資料類型和相關原則 (保留、快取等) 都符合 ADX 資料庫中的資料表、資料行、資料類型和相關原則。 此時,Fabric KQL 資料庫是空的,但已準備好接收資料,而且您仍然可以使用 [在 Fabric 中探索 ADX 資料] 區段中的方法來查詢 ADX。
建立聯合視圖以實現無縫資料存取
若要避免資料移轉期間發生任何中斷,請在 Fabric 中建立 KQL 檢視,以結合舊 ADX 資料庫和新 Fabric KQL 資料庫的資料。 此方法可讓查詢在轉換期間傳回完整的資料集:
定義聯集檢視
針對每個資料表,在 Fabric 中建立預存函式 (with
.create function with (view=true)),以將 Fabric 資料表與對應的 ADX 資料表聯合。 將函數命名為與表格完全相同的名稱,以透明地覆蓋它。 例如,對於表格MyTable,請使用下列命令建立函數:.create function with (view=true) MyTable() { MyTable | union cluster("YourADXCluster").database("YourDatabase").MyTable }此檢視會傳回 Fabric KQL 資料庫中本機
MyTable(目前為空或正在接收新資料)與 ADX 資料庫中遠端資料表MyTable的聯集。因為檢視的名稱是 MyTable,所以使用該資料表名稱的任何查詢或報告都會自動查詢這兩個來源。
Fabric 和 ADX 可能位於不同的叢集或租用戶中。 如果建立命令對外部參考提出錯誤,請在建立函數時使用
skipvalidation=true選項,這有時是跨叢集函數所必需的。測試檢視
在檢視上執行計數或範例查詢 (例如,
MyTable | count) ,以確保它從 ADX 傳回資料。 Fabric KQL 資料庫現在仍是空的,但當您在下一個步驟中移轉擷取時,檢視會開始傳回舊記錄和新記錄。
將查詢端點重新導向至 Fabric Eventhouse 中的 KQL 資料庫
現在更新您的工具和應用程式,以查詢新的 Fabric KQL 資料庫,而不是 ADX 資料庫:
更新連接字串
變更分析應用程式、KQL 查詢或 Power BI 報表,以使用 KQL 資料庫的端點 (查詢 URI),而不是 ADX 叢集。 查詢會保持不變,因為資料表名稱和 KQL 未變更,但它們現在會在 Fabric 中執行。 由於上一個步驟中建立了聯集檢視,查詢 Fabric KQL 資料庫的使用者仍可透過該檢視取得來自 ADX 的所有歷史資料,以及任何新擷取到 Fabric 中的資料。
測試報告和應用程式
請確定儀錶板和腳本會如預期般從 Fabric KQL 資料庫取得結果。 效能可能略有不同。 如果您使用了捷徑,Fabric 可能會快取一些 ADX 資料。 此步驟會有效地將查詢端點移至 Fabric。 從這裡開始,所有讀取/查詢作業都會發生在 Fabric 上。
將資料擷取切換至 Fabric
由於查詢現已由 Fabric 處理,請將傳入的資料流導向至 Fabric:
重新指向擷取管線
變更所有資料生產者,例如 IoT 裝置、擷取-轉換-載入 (ETL) 作業、事件中樞連線,以及先前內嵌至 ADX 資料庫的其他專案,以便內嵌至 Fabric KQL 資料庫。 此步驟可以包括變更叢集 URL、驗證,或更新 Azure Data Factory、串流分析或自訂應用程式中的連接字串,以使用 KQL 資料庫 擷取端點或 URI。
驗證新的資料流程
檢查新記錄是否位於 KQL 資料庫中的資料表中。 Fabric 中的 KQL 資料庫會開始累積資料。 因為您使用的是聯合檢視,所以 Fabric 中的查詢仍會顯示統一的資料集。 隨著時間的流逝,ADX 中的資料會變得過時,因為在此切換之後不會將新資料擷取至 ADX。
淘汰 ADX 叢集
當您確信在 Fabric 中已可取得所有必要資料時,請淘汰舊的 ADX 資源:
移除聯集參照
變更或卸除聯集檢視,讓查詢不會從 ADX 叢集提取。 例如,將函式定義更新為
MyTable { MyTable }僅使用本機資料,或在 Fabric 中的實體資料表具有所有資料時捨棄函式。 檢查您的查詢和儀表板在僅使用 Fabric 資料時是否如預期般運作。封存或傳輸歷史資料(如有需要)
如果 ADX 中仍有未移動的歷史數據 (例如,如果您沒有等候其過期) ,請考慮在關機之前將該數據匯出至 Fabric。 否則,如果 ADX 中的數據超出保留需求,請繼續。
停用 ADX
當 Fabric 同時提供查詢和擷取時,請關閉或刪除 ADX 叢集以節省成本。 所有使用者現在都應該連線到 Fabric。
總結
藉由遵循本文中的步驟,您可以從 ADX 移轉至 Fabric,並將中斷降到最低。 您可以先將消費層移轉至 Fabric,藉此啟用 Copilot、Power BI、Notebooks 和 Activator 等功能,然後再逐步將後端移轉至 Fabric。 現在,Fabric 的即時智慧 (Eventhouse) 會同時負責資料的擷取與查詢,而 ADX 並未在使用中。