Purview高级资源集模式不匹配:IoT数据分组规则失效排查
Purview资源集模式规则不生效问题排查
示例数据路径
/100/101/IOT00002/2023/07/14/IOT00002-Received-2023-07-14T10:15:12.3310000Z-MID-568536ffd9c84797a4ca42d9b8b69802.json
当前使用的模式规则
{mid:int}/{dt:int}/{folder:string}/{year:int}/{month:int}/{day:int}/{deviceid:string}-Received-{timestamp:timestamp}-MID-{messageid:guid}.json
规则不生效的核心问题
对比路径和规则,有两处关键匹配错误导致规则失效:
- 月份字段类型不匹配:路径中的月份是带前导零的字符串格式(
07),但规则中定义为{month:int}。Purview的int类型仅匹配无前导零的纯整数,无法识别07这类带格式的字符串,导致规则在月份段就匹配失败。需将{month:int}改为{month:string}。 - 时间戳格式未明确指定:路径中的时间戳是
2023-07-14T10:15:12.3310000Z,包含7位小数的毫秒部分。Purview默认的timestamp类型匹配规则不包含这种高精度格式,需显式指定格式,改为{timestamp:timestamp('yyyy-MM-ddTHH:mm:ss.fffffffZ')}。
另外,规则中将第三个路径段命名为{folder:string},但该段实际是设备ID(IOT00002),虽然不影响匹配,但建议改为{deviceid:string}保持语义一致,避免后续管理混淆。
调整后的正确规则示例:
{mid:int}/{dt:int}/{deviceid:string}/{year:int}/{month:string}/{day:int}/{deviceid:string}-Received-{timestamp:timestamp('yyyy-MM-ddTHH:mm:ss.fffffffZ')}-MID-{messageid:guid}.json
修改规则后重新触发全量扫描,即可按预期将同设备的IoT数据归为同一资源集。
内容的提问来源于stack exchange,提问作者Damo
相关产品推荐
相关产品推荐

