建立資源集模式規則
大規模數據處理系統通常會將單一數據表儲存在記憶體中作為多個檔案。 此概念會使用資源集Microsoft Purview 中表示。 資源集是數據目錄中的單一物件,代表記憶體中的大量資產。 若要深入瞭解,請 參閱瞭解資源集。
掃描記憶體帳戶時,Microsoft Purview 會使用一組定義的模式來判斷資產群組是否為資源集。 在某些情況下,Microsoft Purview 的資源集群組可能不會正確反映您的數據資產。 資源集模式規則可讓您自定義或覆寫 Microsoft Purview 如何偵測哪些資產群組為資源集,以及它們在目錄中的顯示方式。
模式規則目前支援下列來源類型:
- Azure Data Lake Storage Gen2
- Azure Blob 儲存體
- Azure 檔案
- Amazon S3
必須啟用進階資源集功能集,才能建立資源集模式規則。 若要深入瞭解,請 參閱瞭解進階資源集。
如何建立資源集模式規則
請遵循下列步驟來建立新的資源集模式規則:
移至數據對應。 從 [來源管理] 標題下的功能表中選取 [模式規則 ]。 選 取 [+ 新增 ] 以建立新的規則集。
輸入資源集模式規則的範圍。 選取您的記憶體帳戶類型,以及您想要建立規則集的記憶體帳戶名稱。 每組規則都會相對於 [資料夾路徑] 字段中指定的資料夾路徑範圍套 用 。
若要輸入設定範圍的規則,請選取 [+ 新增規則]。
在下列欄位中輸入 以建立規則:
選取 [ 新增] 以儲存規則。
注意事項
建立模式規則之後,所有新的掃描都會在擷取期間套用規則。 數據目錄中的現有資產會透過背景程式更新,最多可能需要數小時的時間。
模式規則語法
建立資源集模式規則時,請使用下列語法來指定要套用哪些資產規則。
動態取代器 (單一括弧)
單一括弧會在模式規則中當做 動態取代程式 使用。 使用 格式 {<replacerName>:<replacerType>}
,在限定名稱中指定動態取代器。 如果相符,則會使用動態取代器作為群組條件,指出資產應該以資源集表示。 如果資產群組為資源集,則資源集限定路徑會包含 {replacerName}
指定取代程式的位置。
例如,如果兩個資產 folder1/file-1.csv
與 folder2/file-2.csv
規則 {folder:string}/file-{NUM:int}.csv
相符,則資源集會是單一實體 {folder}/file-{NUM}.csv
。
特殊案例:未分組至資源集時的動態取代程式
如果模式規則已啟用 [不要群組為資源集 ],則取代程式名稱是選擇性字段。
{:<replacerType>}
是有效的語法。 例如, file-{:int}.csv
會成功比對 file-1.csv
和 , file-2.csv
並建立兩個不同的資產,而不是資源集。
雙括弧 (靜態取代器)
雙括弧會在模式規則的限定名稱中當做 靜態取代程式 使用。 使用 格式 {{<replacerName>:<replacerType>}}
,在限定名稱中指定靜態取代器。 如果相符,每一組唯一的靜態取代器值都會建立不同的資源集群組。
例如,如果兩個資產 folder1/file-1.csv
與 folder2/file-2.csv
規則 {{folder:string}}/file-{NUM:int}.csv
相符,則會建立 folder1/file-{NUM}.csv
兩個資源集和 folder2/file-{NUM}.csv
。
靜態取代器可用來指定與模式規則相符之資產的顯示名稱。 在 {{<replacerName>}}
規則的顯示名稱中使用 ,將會在資產名稱中使用相符的值。
可用的取代類型
以下是可用於靜態和動態取代器的可用類型:
類型 | 結構 |
---|---|
字串 | 一系列的一或多個 Unicode 字元,包括空格等分隔符。 |
int | 一系列 1 或 0-9 個 ASCII 字元,可以是 0 個前置詞 (例如 0001) 。 |
GUID | UUID 的 32 或 8-4-4-4-4-12 字串表示,如 RFC 4122 中所定義。 |
date | 具有選擇性分隔符的 6 或 8 0-9 個 ASCII 字元系列:yyyymmdd、yyyy-mm-dd、yymmdd、yy-mm-dd,在 RFC 3339 中指定。 |
時間 | 一系列 4 或 6 個 0-9 個 ASCII 字元,具有選擇性分隔符: RFC 3339 中指定的 HHmm、HH:mm、HHmmss、HH:mm:ss。 |
時間戳 | 具有選擇性分隔符的 12 或 14 0-9 個 ASCII 字元系列:yyyy-mm-ddTHH:mm、yyyymmddhhmm、yyyy-mm-ddTHH:mm:ss、 RFC 3339 中指定的 yyyyy-mm-ddTHHHmmss。 |
布林值 | 可以包含 'true' 或 'false',不區分大小寫。 |
number | 一系列 0 或 0-9 個 ASCII 字元,可以是 0 個前置詞 (例如,0001) 後面接著一個點 '.',以及一系列 1 或 0-9 個 ASCII 字元,它可以是 0 個後置 (例如.100) |
十六進位 | 從集合 0-1 和 A-F 一系列的一或多個 ASCII 字元,此值可以是 0 個前置詞 |
地區設定 | 符合 RFC 5646 中指定之語法的字串。 |
套用資源集模式規則的順序
以下是套用模式規則的作業順序:
如果資產符合兩個規則,則會優先使用更特定的範圍。 例如,範圍中的規則會在範圍內
container/folder
container
的規則之前套用。特定範圍內的規則順序。 這可以在UX中編輯。
如果資產不符合任何指定的規則,則會套用預設資源集啟發學習法。
範例
範例 1
SAP 數據擷取至完整和差異負載
輸入
檔案:
https://myazureblob.blob.core.windows.net/bar/customer/full/2020/01/13/saptable_customer_20200101_20200102_01.txt
https://myazureblob.blob.core.windows.net/bar/customer/full/2020/01/13/saptable_customer_20200101_20200102_02.txt
https://myazureblob.blob.core.windows.net/bar/customer/delta/2020/01/15/saptable_customer_20200101_20200102_01.txt
https://myazureblob.blob.core.windows.net/bar/customer/full/2020/01/17/saptable_customer_20200101_20200102_01.txt
https://myazureblob.blob.core.windows.net/bar/customer/full/2020/01/17/saptable_customer_20200101_20200102_02.txt
模式規則
範圍:https://myazureblob.blob.core.windows.net/bar/
顯示名稱: 「外部客戶」
限定名稱:customer/{extract:string}/{year:int}/{month:int}/{day:int}/saptable_customer_{date_from:date}_{date_to:time}_{sequence:int}.txt
資源集: true
輸出
一個資源集資產
顯示名稱: 外部客戶
限定名稱:https://myazureblob.blob.core.windows.net/bar/customer/{extract}/{year}/{month}/{day}/saptable_customer_{date_from}_{date_to}_{sequence}.txt
範例 2
avro 格式的IoT資料
輸入
檔案:
https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro
https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/02-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro
模式規則
範圍:https://myazureblob.blob.core.windows.net/bar/
規則 1
顯示名稱: 'machine-89'
限定名稱:raw/machinename-89/{date:date}/{time:time}-{id:int}.avro
資源集: true
規則 2
顯示名稱: 'machine-90'
限定名稱:raw/machinename-90/{date:date}/{time:time}-{id:int}.avro
資源集: true
輸出
兩個資源集
資源集 1
顯示名稱: machine-89
限定名稱:https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/{date}/{time}-{id}.avro
資源集 2
顯示名稱: machine-90
限定名稱:https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/{date}/{time}-{id}.avro
範例 3
avro 格式的IoT資料
輸入
檔案:
https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro
https://myazureblob.blob.core.windows.netbar/raw/machinename-89/02-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro
模式規則
範圍:https://myazureblob.blob.core.windows.net/bar/
顯示名稱: 'Machine-{{machineid}}'
限定名稱:raw/machinename-{{machineid:int}}/{date:date}/{time:time}-{id:int}.avro
資源集: true
輸出
資源集 1
顯示名稱: machine-89
限定名稱:https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/{date}/{time}-{id}.avro
資源集 2
顯示名稱: machine-90
限定名稱:https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/{date}/{time}-{id}.avro
範例 4
不要分組到資源集
輸入
檔案:
https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro
https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/02-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro
模式規則
範圍:https://myazureblob.blob.core.windows.net/bar/
顯示名稱:Machine-{{machineid}}
限定名稱:raw/machinename-{{machineid:int}}/{{:date}}/{{:time}}-{{:int}}.avro
資源集: false
輸出
四個個別資產
資產 1
顯示名稱: machine-89
限定名稱:https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro
資產 2
顯示名稱: machine-89
限定名稱:https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro
資產 3
顯示名稱: machine-89
限定名稱:https://myazureblob.blob.core.windows.net/bar/raw/machinename-89/02-01-2020/22:33:22-001.avro
資產 4
顯示名稱: machine-90
限定名稱:https://myazureblob.blob.core.windows.net/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro