使用 COPY 語句將數據內嵌至倉儲
適用於: Microsoft Fabric 中的倉儲
COPY 語句是將數據內嵌至 Warehouse 數據表的主要方式。 COPY 會從外部 Azure 記憶體帳戶執行高輸送量數據擷取,並彈性地設定來源檔格式選項、儲存遭拒數據列的位置、略過標頭數據列和其他選項。
本教學課程示範使用 T-SQL COPY 語句之 Warehouse 數據表的數據擷取範例。 它會使用來自 Azure 開放數據集的 Bing COVID-19 範例數據。 如需此數據的詳細資訊,包括其架構和許可權,請參閱 Bing COVID-19。
注意
若要深入瞭解 T-SQL COPY 語句,包括更多範例和完整語法,請參閱 COPY(Transact-SQL)。
建立表格
使用 COPY 語句之前,必須先建立目的地數據表。 若要建立此範例的目的地數據表,請使用下列步驟:
在您的 Microsoft Fabric 工作區中,尋找並開啟您的倉儲。
切換至 [ 首頁] 索引標籤,然後選取 [ 新增 SQL 查詢]。
若要在本教學課程中建立做為目的地的數據表,請執行下列程序代碼:
CREATE TABLE [dbo].[bing_covid-19_data] ( [id] [int] NULL, [updated] [date] NULL, [confirmed] [int] NULL, [confirmed_change] [int] NULL, [deaths] [int] NULL, [deaths_change] [int] NULL, [recovered] [int] NULL, [recovered_change] [int] NULL, [latitude] [float] NULL, [longitude] [float] NULL, [iso2] [varchar](8000) NULL, [iso3] [varchar](8000) NULL, [country_region] [varchar](8000) NULL, [admin_region_1] [varchar](8000) NULL, [iso_subdivision] [varchar](8000) NULL, [admin_region_2] [varchar](8000) NULL, [load_time] [datetime2](6) NULL );
使用 COPY 語句內嵌 Parquet 數據
在第一個範例中,我們會使用 Parquet 來源載入數據。 由於此數據可供公開使用,且不需要驗證,因此您可以藉由指定來源和目的地,輕鬆地複製此數據。 不需要驗證詳細數據。 您只需要指定 FILE_TYPE
自變數。
使用下列程式代碼搭配 Parquet 來源執行 COPY 語句:
COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet'
WITH (
FILE_TYPE = 'PARQUET'
);
使用 COPY 語句擷取 CSV 數據,並略過標頭數據列
逗號分隔值 (CSV) 檔案通常會有一個標頭數據列,以提供代表 CSV 檔案中數據表的數據行名稱。 COPY 語句可以從 CSV 檔案複製數據,並略過來源檔案標頭中的一或多個數據列。
如果您執行先前的範例以從 Parquet 載入資料,請考慮刪除資料表中的所有資料:
DELETE FROM [dbo].[bing_covid-19_data];
若要從略過標頭數據列的 CSV 檔案載入資料,請使用下列程式代碼:
COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv'
WITH (
FILE_TYPE = 'CSV',
FIRSTROW = 2
);
檢查結果
COPY 語句會藉由將 4,766,736 個數據列內嵌到新的數據表來完成。 您可以執行傳回資料表中資料列總數的查詢,以確認作業已成功執行:
SELECT COUNT(*) FROM [dbo].[bing_covid-19_data];
如果您執行這兩個範例而不刪除執行之間的資料列,您會看到此查詢的結果,其數據列數目是兩倍。 雖然這適用於此案例中的數據擷取,但當您要進一步實驗此數據時,請考慮刪除所有數據列和擷取數據一次。
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應