创建资源集模式规则
大规模数据处理系统通常将单个表作为多个文件存储在存储中。 此概念使用资源集在 Microsoft Purview 中表示。 资源集是 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>}}
规则的显示名称中使用 将在资产名称中使用匹配的值。
可用的替换类型
下面是可在静态和动态替换器中使用的可用类型:
类型 | 结构 |
---|---|
string | 一系列包含一个或多个 Unicode 字符,包括分隔符(如空格)。 |
int | 一系列包含 1 个或更多 0-9 个 ASCII 字符,可以是 0 前缀 (例如 0001) 。 |
guid | RFC 4122 中定义的 UUID 的一系列 32 或 8-4-4-4-4-12 字符串表示形式。 |
date | 一系列包含 6 或 8 个 0-9 个 ASCII 字符的可选分隔符:yyyymmdd、yyyy-mm-dd、yymmdd、yy-mm-dd,在 RFC 3339 中指定。 |
time | 一系列包含 4 或 6 个 0-9 个 ASCII 字符的可选分隔符: 在 RFC 3339 中指定的 HHmm、HH:mm:mm、HHmmss、HH:mm:ss。 |
时间戳 | 一系列包含 12 或 14 个 0-9 个 ASCII 字符的可选分隔符:yyyy-mm-ddTHH:mm、yyyymmddhhmm、yyyyy-mm-ddTHH:mm:ss、yyyyymmddHHHmmss。 |
boolean | 可以包含“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