创建资源集模式规则
大规模数据处理系统通常将单个表作为多个文件存储在存储中。 此概念在 Microsoft Purview 中使用资源集来表示。 资源集是数据目录中的单个对象,表示存储中的大量资产。 若要了解详细信息,请参阅了解资源集。
扫描存储帐户时,Microsoft Purview 使用一组定义的模式来确定一组资产是否为资源集。 在某些情况下,Microsoft Purview 的资源集分组可能无法准确反映数据资产。 通过资源集模式规则,可自定义或替代 Microsoft Purview 检测哪些资源可分组为资源集的方式,以及其在目录中的显示方式。
以下源类型当前支持模式规则:
- Azure Data Lake Storage Gen2
- Azure Blob 存储
- Azure 文件
必须启用高级资源集功能集才能创建资源集模式规则。 若要了解详细信息,请参阅了解高级资源集。
如何创建资源集模式规则
按照以下步骤创建新的资源集模式规则:
转到数据映射。 从“源管理”标题下的菜单中选择“模式规则”。 选择“+ 新建”以创建新规则集。
输入资源集模式规则的范围。 选择要在其上创建规则集的存储帐户类型和存储帐户的名称。 每组规则都是相对于“文件夹路径”字段中指定的文件夹路径范围应用的。
若要为配置范围输入规则,请选择“+ 新建规则”。
在以下字段中输入以创建规则:
选择“添加”以保存规则。
注意
创建模式规则后,所有新扫描将在引入过程中应用规则。 数据目录中的现有资产将通过后台进程进行更新,该过程可能需要几个小时。
模式规则语法
创建资源集模式规则时,请使用下面的语法来指定应用规则的资产。
动态替换器(单括号)
在模式规则中,将单括号用作“动态替换器”。 使用格式 {<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>}}
将使用资产名称中的匹配值。
可用替换类型
下面是可在静态和动态替换器中使用的可用类型:
类型 | 结构 |
---|---|
string | 由一个或多个 Unicode 字符(包括空格等分隔符)组成的序列。 |
int | 由 1 个或多个 0-9 ASCII 字符组成的序列,可以以 0 为前缀(例如 0001)。 |
guid | UUID 的一系列 32 或 8-4-4-4-12 字符串表示形式,如 RFC 4122 中所定义。 |
date | RFC 3339 中指定的由 6 个或 8 个 0-9 ASCII 字符组成的序列,可以选择使用分隔符 yyyymmdd、yyyy-mm-dd、yymmdd 和 yy-mm-dd。 |
time | RFC 3339 中指定的由 4 个或 6 个 0-9 ASCII 字符组成的序列,可以选择使用分隔符 HHmm、HH:mm、HHmmss 和 HH:mm:ss。 |
timestamp | RFC 3339 中指定的由 12 个或 14 个 0-9 ASCII 字符组成的序列,可以选择使用分隔符 yyyy-mm-ddTHH:mm、yyyymmddhhmm、yyyy-mm-ddTHH:mm:ss 和 yyyymmddHHmmss。 |
boolean | 可以包含“true”或“false”,不区分大小写。 |
数字 | 由 0 个或更多个 0-9 ASCII 字符组成的序列,可以以 0 为前缀(例如 0001),后跟点“.”(可选)以及由 1 个或更多个 0-9 ASCII 字符组成的序列,可以以 0 为后缀(例如 .100) |
hex | 由集 0-1 和 A-F 组成的包含一个或更多个 ASCII 字符的序列,该值可以以 0 为前缀 |
区域设置 | 与 RFC 5646 中指定的语法匹配的字符串。 |
应用资源集模式规则的顺序
下面是应用模式规则的操作顺序:
如果资产与两个规则匹配,则将优先应用更具体的范围。 例如,范围
container/folder
中的规则将在范围container
中的规则之前应用。特定范围内规则的顺序。 这可以在 UX 中进行编辑。
如果某个资产与任何指定的规则都不匹配,则将应用默认的资源集试探法。
示例
示例 1
将 SAP 数据提取到完整和增量负载中
输入
文件:
https://myazureblob.blob.core.chinacloudapi.cn/bar/customer/full/2020/01/13/saptable_customer_20200101_20200102_01.txt
https://myazureblob.blob.core.chinacloudapi.cn/bar/customer/full/2020/01/13/saptable_customer_20200101_20200102_02.txt
https://myazureblob.blob.core.chinacloudapi.cn/bar/customer/delta/2020/01/15/saptable_customer_20200101_20200102_01.txt
https://myazureblob.blob.core.chinacloudapi.cn/bar/customer/full/2020/01/17/saptable_customer_20200101_20200102_01.txt
https://myazureblob.blob.core.chinacloudapi.cn/bar/customer/full/2020/01/17/saptable_customer_20200101_20200102_02.txt
模式规则
范围:https://myazureblob.blob.core.chinacloudapi.cn/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.chinacloudapi.cn/bar/customer/{extract}/{year}/{month}/{day}/saptable_customer_{date_from}_{date_to}_{sequence}.txt
示例 2
avro 格式的 IoT 数据
输入
文件:
https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro
https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/02-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro
模式规则
范围:https://myazureblob.blob.core.chinacloudapi.cn/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.chinacloudapi.cn/bar/raw/machinename-89/{date}/{time}-{id}.avro
资源集 2
显示名称: machine-90
限定名称:https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-90/{date}/{time}-{id}.avro
示例 3
avro 格式的 IoT 数据
输入
文件:
https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro
https://myazureblob.blob.core.chinacloudapi.cnbar/raw/machinename-89/02-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro
模式规则
范围:https://myazureblob.blob.core.chinacloudapi.cn/bar/
显示名称: “Machine-{{machineid}}”
限定名称:raw/machinename-{{machineid:int}}/{date:date}/{time:time}-{id:int}.avro
资源集: true
输出
资源集 1
显示名称: machine-89
限定名称:https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/{date}/{time}-{id}.avro
资源集 2
显示名称: machine-90
限定名称:https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-90/{date}/{time}-{id}.avro
示例 4
不分组到资源集中
输入
文件:
https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro
https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/02-01-2020/22:33:22-001.avro
https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro
模式规则
范围:https://myazureblob.blob.core.chinacloudapi.cn/bar/
显示名称:Machine-{{machineid}}
限定名称:raw/machinename-{{machineid:int}}/{{:date}}/{{:time}}-{{:int}}.avro
资源集: false
输出
四个单独的资产
资产 1
显示名称: machine-89
限定名称:https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/01-01-2020/22:33:22-001.avro
资产 2
显示名称: machine-89
限定名称:https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/01-01-2020/22:33:22-002.avro
资产 3
显示名称: machine-89
限定名称:https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-89/02-01-2020/22:33:22-001.avro
资产 4
显示名称: machine-90
限定名称:https://myazureblob.blob.core.chinacloudapi.cn/bar/raw/machinename-90/01-01-2020/22:33:22-001.avro