在本指南中,您將會:
使用 OneLake 檔案總管將資料上傳至 OneLake。
使用 Fabric 筆記本讀取 OneLake 上的資料,並以 Delta 資料表的形式回寫。
使用 Fabric 筆記本,藉助 Spark 分析及轉換資料。
使用 SQL 查詢 OneLake 上的唯一資料複本。
必要條件
開始進行之前,您必須:
下載並安裝 OneLake 檔案總管。
使用 Lakehouse 項目建立工作區。
下載 WideWorldImportersDW 資料集。 您可以使用 Azure 儲存體總管來連線至
https://fabrictutorialdata.blob.core.windows.net/sampledata/WideWorldImportersDW/csv/full/dimension_city,並下載一組 csv 檔案。 或者,您可以使用自己的 csv 資料,並視需要更新詳細資料。
上傳數據
在本節中,您會使用 OneLake 檔案總管將測試數據上傳至 Lakehouse。
在 OneLake 檔案瀏覽器中,瀏覽至您的 lakehouse,並在
/Files目錄下建立名為dimension_city的子目錄。
使用 OneLake 檔案總管將範例 csv 檔案複製到 OneLake 目錄
/Files/dimension_city。導航至 Power BI 或 Fabric 服務中的 Lakehouse,並檢視您的檔案。
建立 Delta 數據表
在本節中,您會使用 Delta 格式,將 Unmanaged CSV 檔案轉換成受控數據表。
注意
請務必直接在 Lakehouse 的 [資料表] 區段下建立、載入或創建 Delta-Parquet 資料的捷徑。 請勿在 [數據表] 區段底下的子資料夾中巢狀您的數據表。 Lakehouse 無法將子資料夾識別為數據表,並將子資料夾標示為 不明。
在 Lakehouse 中,選擇「開啟筆記本」,然後「新增筆記本」以建立新的筆記本。
使用 Fabric 筆記本,將 CSV 檔案轉換成 Delta 格式。 下列程式碼片段會從使用者建立的目錄
/Files/dimension_city讀取資料,並將其轉換成 Delta 資料表dim_city。將代碼段複製到筆記本數據格編輯器中。 將佔位符替換為您自己的工作區資訊,然後點選 運行資料格 或 運行全部。
import os from pyspark.sql.types import * for filename in os.listdir("/lakehouse/default/Files/dimension_city"): df=spark.read.format('csv').options(header="true",inferSchema="true").load("abfss://<YOUR_WORKSPACE_NAME>@onelake.dfs.fabric.microsoft.com/<YOUR_LAKEHOUSE_NAME>.Lakehouse/Files/dimension_city/"+filename,on_bad_lines="skip") df.write.mode("overwrite").format("delta").save("Tables/dim_city")提示
您可以用滑鼠右鍵按兩下目錄名稱,然後選取 [複製ABFS路徑],以擷取目錄的完整ABFS路徑。
若要查看新的資料表,請更新
/Tables目錄的檢視。 選取 [數據表] 目錄旁的 [...] 其他選項,然後選取 [重新整理 ]。
查詢和修改數據
在本節中,您會使用 Fabric 筆記本與數據表中的數據互動。
在相同的 Fabric 筆記本中使用 SparkSQL 查詢您的資料表。
%%sql SELECT * from <LAKEHOUSE_NAME>.dim_city LIMIT 10;新增名為 newColumn 且資料類型為整數的新資料行,進而修改 Delta 資料表。 將這個新增資料行的所有記錄的值設定為 9。
%%sql ALTER TABLE <LAKEHOUSE_NAME>.dim_city ADD COLUMN newColumn int; UPDATE <LAKEHOUSE_NAME>.dim_city SET newColumn = 9; SELECT City,newColumn FROM <LAKEHOUSE_NAME>.dim_city LIMIT 10;
您也可以透過 SQL 分析端點,存取 OneLake 上的任何 Delta 資料表。 SQL 分析端點會參考 OneLake 上 Delta 資料表的相同實體複本,並提供 T-SQL 體驗。
導航到您的 Lakehouse,然後從下拉選單中選取 Lakehouse>SQL 分析端點。
選取 [[新增 SQL 查詢],以使用 T-SQL 查詢數據表。
將下列程式碼複製並貼上到查詢編輯器中,然後選取 執行。
SELECT TOP (100) * FROM [<LAKEHOUSE_NAME>].[dbo].[dim_city];