為 Direct Lake 建立 Lakehouse
本文說明如何建立 Lakehouse、在 Lakehouse 中建立 Delta 資料表,然後在 Microsoft Fabric 工作區中建立 Lakehouse 的基本語意模型。
開始建立 Direct Lake 的 Lakehouse 之前,請務必參閱 Direct Lake 概觀。
建立 Lakehouse
在您的 Microsoft Fabric 工作區中,選取 [新增]> [其他選項],然後在 [資料工程]中,選取 [Lakehouse] 磚。
在 [新增 Lakehouse] 對話方塊中輸入名稱,然後選取 [建立]。 名稱只可包含英數字元和底線。
驗證已建立新的 Lakehouse 並可成功開啟。
在 Lakehouse 中建立 Delta 資料表
建立新的 Lakehouse 後,您必須建立至少一個 Delta 資料表,Direct Lake 才能存取特定資料。 Direct Lake 可以讀取 parquet 格式的檔案,但為達到最佳效能,建議使用 VORDER 壓縮方法來壓縮資料。 VORDER 會使用 Power BI 引擎的原生壓縮演算法來壓縮資料。 如此一來,引擎即可快速載入資料至記憶體。
有多個選項可將資料載入 Lakehouse,包括資料管線和指令碼。 下列步驟使用 PySpark,以根據 Azure 開放資料集將 Delta 資料表新增至 Lakehouse:
在新建立的 Lakehouse 中,選取 [開啟筆記本],然後選取 [新增筆記本]。
複製下列程式碼片段並貼上至第一個程式碼儲存格中,讓 SPARK 存取開啟的模型,然後按下 Shift + Enter 以執行程式碼。
# Azure storage access info blob_account_name = "azureopendatastorage" blob_container_name = "holidaydatacontainer" blob_relative_path = "Processed" blob_sas_token = r"" # Allow SPARK to read from Blob remotely wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path) spark.conf.set( 'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name), blob_sas_token) print('Remote blob path: ' + wasbs_path)
驗證程式碼已成功輸出遠端 Blob 路徑。
複製下列程式碼並貼上至下一個儲存格中,然後按下 Shift + Enter。
# Read Parquet file into a DataFrame. df = spark.read.parquet(wasbs_path) print(df.printSchema())
驗證程式碼已成功輸出 DataFrame 結構描述。
複製下列指令碼並貼上至下一個儲存格中,然後按下 Shift + Enter。 第一個指令會啟用 VORDER 壓縮方法,而下一個指令會將 DataFrame 儲存為 Lakehouse 中的 Delta 資料表。
# Save as delta table spark.conf.set("spark.sql.parquet.vorder.enabled", "true") df.write.format("delta").saveAsTable("holidays")
驗證已成功完成所有 SPARK 作業。 展開 SPARK 作業清單以檢視更多詳細資料。
若要驗證已成功建立資料表,請在左上方區域中選取 [資料表] 旁的省略符號 (…),然後選取 [重新整理],接著展開 [資料表] 節點。
使用與上述相同的方法或其他支援方法,以為您想要分析的資料新增更多差異資料表。
為您的 Lakehouse 建立基本 Direct Lake 模型
在 Lakehouse 中,選取 [新增語意模型],然後在對話方塊中選取要包含的資料表。
選取 [確認] 以產生 Direct Lake 模型。 模型會根據 Lakehouse 的名稱自動儲存在工作區中,然後開啟模型。
選取 [開啟資料模型] 以開啟 Web 模型體驗,您可以在此體驗中新增資料表關聯性和 DAX 量值。
當您完成新增關聯性和 DAX 量值之後,即可建立報表、建置複合模型,並使用和任何其他模型相同的方式透過 XMLA 端點查詢模型。