本文概述了如何在 Microsoft Fabric 的 Data Factory 管線中配置 Parquet 格式。
支援的功能
下列活動和連接器支援 Parquet 格式做為來源和目的地。
| 類別 | 連接器/活動 |
|---|---|
| 支援的連接器 | Amazon S3 |
| Amazon S3 相容 | |
| Azure Blob 儲存體 | |
| Azure Data Lake Storage Gen1 | |
| Azure Data Lake Storage Gen2 \(部分機器翻譯\) | |
| Azure 檔案 | |
| 檔案系統 | |
| FTP | |
| 谷歌雲存儲 | |
| HTTP | |
| Lakehouse 檔案 | |
| Oracle 雲端儲存空間 | |
| SFTP | |
| 支援的活動 | 複製活動(來源/目的地) |
| 查閱活動 | |
| GetMetadata 活動 | |
| 刪除活動 |
複製活動中的 Parquet 格式
若要設定 Parquet 格式,請在管線複製活動的來源或目的地中選擇您的連線,然後在 [檔案格式] 下拉式清單中選取 [Parquet]。 選取 [設定 ] 以進一步設定此格式。
Parquet 格式作為來源
選取 [檔案格式] 區段中的 [設定] 之後,快顯 [檔案格式設定] 對話框中會顯示下列屬性。
- 壓縮類型:選擇用來讀取下拉式清單中的 Parquet 檔案的壓縮編解碼器。 您可以選擇 None、gzip (.gz)、snappy、lzo、Brotli (.br)、Zstandard、lz4、lz4frame、bzip2 (.bz2) 或 lz4hadoop。
Parquet 格式為目的地
選取 [ 設定] 之後,快顯 [檔案格式設定 ] 對話框中會顯示下列屬性。
壓縮類型:選擇用來寫入下拉式清單中的 Parquet 檔案的壓縮編解碼器。 您可以選擇 None、gzip (.gz)、snappy、lzo、Brotli (.br)、Zstandard、lz4、lz4frame、bzip2 (.bz2) 或 lz4hadoop。
使用 V 順序:啟用 parquet 檔案格式的寫入時間優化。 如需詳細資訊,請參閱 Delta Lake 資料表最佳化和 V 順序。 預設會啟用此功能。
在 [目的地] 索引標籤的 [進階設定] 底下,會顯示下列 Parquet 格式相關屬性。
- 每個檔案的資料列數上限:當您將資料寫入資料夾時,可以選擇寫入多個檔案,並指定每個檔案的資料列數上限。 指定您想要為每個檔案寫入的最大資料列。
-
檔名前置詞:適用於設定每個檔案的資料列上限時。 當您將資料寫入多個檔案時,請指定檔案名稱前置詞,使系統進行此模式:
<fileNamePrefix>_00000.<fileExtension>。 如果未指定,系統會自動產生檔案名稱前置詞。 當來源是以檔案為基礎的存放區,或啟用資料分割選項的資料存放區時,系統不會套用此屬性。
映射
對於 映射 標籤頁配置,如果您未將 Parquet 格式應用為目標資料存放區,請移至 映射。
編輯目的地資料類型
將資料以 Parquet 格式複製到目的地連接器時 (除了 對應中的組態) 之外,您可以在啟用進階 Parquet 類型設定後指定某些目的地欄類型。 您也可以設定 IsNullable 選項,以指定每個 Parquet 欄位是否允許 null 值。 IsNullable 的預設值是 true。
下列映射是利用服務在內部支援編輯的臨時資料類型,轉化為 Parquet 資料類型。
| 臨時服務資料類型 | Parquet 邏輯類型 | 鑲木地板物理類型 |
|---|---|---|
| DateTime | 選項 1:空值 選項 2:時間戳記 |
選項 1:INT96(預設) 選項 2:INT64(單位:MILLIS、MICROS、NANOS(預設)) |
| DateTimeOffset | 選項 1:空值 選項 2:時間戳記 |
選項 1:INT96(預設) 選項 2:INT64(單位:MILLIS、MICROS、NANOS(預設)) |
| TimeSpan | TIME | INT32(單位:MILLIS) INT64(單位:MICROS、NANOS(預設)) |
| Decimal | 十進位的 | INT32 (1 <= 精度 <= 9) INT64 (9 < 精度 < = 18) FIXED_LEN_BYTE_ARRAY (精細度 > 18) (預設) |
| GUID | 選項 1:字串 選項 2:UUID |
選項 1:BYTE_ARRAY (預設) 選項 2:FIXED_LEN_BYTE_ARRAY |
| 位元組陣列 | null | BYTE_ARRAY (預設) 或FIXED_LEN_BYTE_ARRAY |
例如,來源中 decimalData 資料行的類型會轉換為臨時服務類型:Decimal。 根據上面的映射表,目標欄的映射類型是根據指定的精度自動確定的。 如果精度為 9 或更小,則映射到 INT32。 對於高於 9 且最高為 18 的精確度值,它會映射到 INT64。 如果精確度超過 18,則會對應至 FIXED_LEN_BYTE_ARRAY。
Parquet 的資料類型對應
以 Parquet 格式從來源連接器複製資料時,會使用下列從 Parquet 資料類型到服務內部使用的臨時資料類型的對應。
| Parquet 邏輯類型 | 鑲木地板物理類型 | 臨時服務資料類型 |
|---|---|---|
| null | BOOLEAN | 布林值 |
| INT(8,真) | 智力32 | S種類 |
| INT(8,錯誤) | 智力32 | 位元組 |
| INT(16,真) | 智力32 | 整數16 |
| INT(16,錯誤) | 智力32 | UInt16 |
| INT(32,真) | 智力32 | 整數32 |
| INT(32,錯誤) | 智力32 | UInt32 |
| INT(64,真) | 智力64 | 整數64 |
| INT(64,錯誤) | 智力64 | UInt64 |
| null | FLOAT | Single |
| null | 雙 | Double |
| 十進位的 | INT32、INT64、FIXED_LEN_BYTE_ARRAY 或 BYTE_ARRAY | Decimal |
| DATE | 智力32 | Date |
| TIME | INT32 或 INT64 | DateTime |
| TIMESTAMP | 智力64 | DateTime |
| 列舉 | BYTE_ARRAY | 繩子 |
| UUID | FIXED_LEN_BYTE_ARRAY | GUID |
| null | BYTE_ARRAY | 位元組陣列 |
| STRING | BYTE_ARRAY | 繩子 |
以 Parquet 格式將資料複製到目的地連接器時,會使用下列對應,從服務內部使用的臨時資料類型到 Parquet 資料類型。
| 臨時服務資料類型 | Parquet 邏輯類型 | 鑲木地板物理類型 |
|---|---|---|
| 布林值 | null | BOOLEAN |
| S種類 | INT | 智力32 |
| 位元組 | INT | 智力32 |
| 整數16 | INT | 智力32 |
| UInt16 | INT | 智力32 |
| 整數32 | INT | 智力32 |
| UInt32 | INT | 智力32 |
| 整數64 | INT | 智力64 |
| UInt64 | INT | 智力64 |
| Single | null | FLOAT |
| Double | null | 雙 |
| DateTime | null | 國際96 |
| DateTimeOffset | null | 國際96 |
| Date | DATE | 智力32 |
| TimeSpan | TIME | 智力64 |
| Decimal | 十進位的 | INT32、INT64 或 FIXED_LEN_BYTE_ARRAY |
| GUID | STRING | BYTE_ARRAY |
| 繩子 | STRING | BYTE_ARRAY |
| 位元組陣列 | null | BYTE_ARRAY |
資料表摘要
Parquet 作為來源
使用 Parquet 格式時,複製活動 [來源 ] 區段支援下列屬性。
| 名稱 | 描述 | 值 | 必要 | JSON 腳本屬性 |
|---|---|---|---|---|
| 檔案格式 | 選取要使用的檔案格式。 | Parquet | Yes | type (在 datasetSettings 下):Parquet |
| 壓縮類型 | 用來讀取 Parquet 檔案的壓縮編解碼器。 | 從下列項目中選擇: None gzip (.gz) snappy lzo 布羅特利 (.br) Zstandard lz4 lz4frame bzip2 (.bz2) lz4hadoop |
No | compressionCodec: gzip snappy lzo brotli zstd lz4 lz4frame bz2 lz4hadoop |
Parquet 作為目的地
使用 Parquet 格式時,複製活動 目的地 區段支援下列屬性。
| 名稱 | 描述 | 值 | 必要 | JSON 腳本屬性 |
|---|---|---|---|---|
| 檔案格式 | 選取要使用的檔案格式。 | Parquet | Yes | type (在 datasetSettings 下):Parquet |
| 使用 V-Order | parquet 檔格式的寫入時間優化。 | 已選取或未選取 | No | enableVertiParquet |
| 壓縮類型 | 用來寫入 Parquet 檔案的壓縮編解碼器。 | 從下列項目中選擇: None gzip (.gz) snappy lzo 布羅特利 (.br) Zstandard lz4 lz4frame bzip2 (.bz2) lz4hadoop |
No | compressionCodec: gzip snappy lzo brotli zstd lz4 lz4frame bz2 lz4hadoop |
| 每個檔案的最大資料列 | 當您將資料寫入資料夾時,可以選擇寫入多個檔案,並指定每個檔案的資料列上限。 指定您想要為每個檔案寫入的最大資料列。 | <每個檔案的資料列數上限> | No | maxRowsPerFile |
| 檔名前置詞 | 適用於設定 每個檔案 的資料列上限時。 當您將資料寫入多個檔案時,請指定檔案名稱前置詞,使系統進行此模式:<fileNamePrefix>_00000.<fileExtension>。 如果未指定,系統會自動產生檔案名稱前置詞。 當來源是以檔案為基礎的存放區,或啟用資料分割選項的資料存放區時,系統不會套用此屬性。 |
<您的檔名前置詞> | No | fileNamePrefix |