你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
事件网格数据连接(预览版)
事件网格引入是用于侦听 Azure 存储并在订阅事件发生时更新 Azure 数据资源管理器以提取信息的管道。 数据资源管理器使用 Azure 事件网格订阅从 Azure 存储(Blob 存储和 ADLSv2)持续引入 Blob 创建或重命名通知,并通过事件中心将这些通知流式传输到数据资源管理器。
事件网格引入管道需要完成几个步骤。 在数据资源管理器中创建将引入特定格式数据的目标表。 然后在数据资源管理器中创建事件网格数据连接。 事件网格数据连接需要知道事件路由信息,例如要将数据发送到的表和表映射。 还可以指定引入属性,这些属性描述要引入的数据、目标表和映射。 可以生成示例数据并上传 blob 或重命名 blob 以测试连接。 在导入后删除 blob。 此过程可以通过 Azure 门户进行管理。
数据格式
注意
可以在 BlobStorage
、StorageV2
或 Data Lake Storage Gen2 的 Azure 存储帐户上设置事件网格通知订阅。
引入属性
可以通过 blob 元数据指定 blob 引入的引入属性。 可以设置以下属性:
属性 | 属性说明 |
---|---|
rawSizeBytes |
原始(未压缩的)数据的大小。 对于 Avro/ORC/Parquet,此值是应用特定于格式的压缩之前的大小。 请通过将此属性设置为未压缩数据大小(以字节为单位)来提供原始数据大小。 |
kustoTable |
现有目标表的名称。 替代“Data Connection ”边栏选项卡上设置的“Table ”。 |
kustoDataFormat |
数据格式。 替代“Data Connection ”边栏选项卡上设置的“Data format ”。 |
kustoIngestionMappingReference |
要使用的现有引入映射的名称。 替代“Data Connection ”边栏选项卡上设置的“Column mapping ”。 |
kustoIgnoreFirstRecord |
如果设置为 true ,则 Kusto 将忽略 Blob 的第一行。 在表格格式数据(CSV、TSV 或类似格式)中使用将忽略标题。 |
kustoExtentTags |
字符串,表示将附加到生成的盘区的标记。 |
kustoCreationTime |
替代 blob 的 $IngestionTime,格式为 ISO 8601 字符串。 用于回填。 |
事件路由
设置 Blob 存储与数据资源管理器群集的连接时,指定目标表属性:
- 表名称
- 数据格式
- mapping
此设置是用于数据的默认路由,也称为 static routing
。
还可以使用 blob 元数据指定每个 blob 的目标表属性。 将按照引入属性指定的方式动态路由数据。
以下示例演示如何在上传 blob 元数据之前对其设置引入属性。 Blob 路由到不同的表。
有关详细信息,请参阅上传 blob。
// Blob is dynamically routed to table `Events`, ingested using `EventsMapping` data mapping
blob = container.GetBlockBlobReference(blobName2);
blob.Metadata.Add("rawSizeBytes", "4096"); // the uncompressed size is 4096 bytes
blob.Metadata.Add("kustoTable", "Events");
blob.Metadata.Add("kustoDataFormat", "json");
blob.Metadata.Add("kustoIngestionMappingReference", "EventsMapping");
blob.UploadFromFile(jsonCompressedLocalFileName);
上传 Blob
可以从本地文件创建 blob,将引入属性设置到 blob 元数据,然后上传它。 有关示例,请参阅通过订阅事件网格通知将 Blob 引入数据资源管理器
注意
- 使用
BlockBlob
生成数据。 不支持AppendBlob
。 - 使用 Azure Data Lake Gen2 存储 SDK 需要使用
CreateFile
上传文件,最后使用Flush
并将 close 参数设置为“true”。
- 如果事件中心终结点未确认收到事件,Azure 事件网格将激活重试机制。 如果此重试发送失败,事件网格可以使用“死信”过程将未送达的事件发送给存储帐户。 有关详细信息,请参阅事件网格消息传递和重试。
重命名 blob
使用 ADLSv2 时,可以重命名 Blob 以触发 Blob 向数据资源管理器的引入。 有关示例,请参阅通过订阅事件网格通知将 Blob 引入数据资源管理器。
注意
- 可以在 ADLSv2 中重命名目录,但不会触发“已重命名 blob”事件,也不会在目录中引入 blob。 若要在重命名后引入 blob,请直接重命名所需的 blob。
- 如果在创建数据连接时定义了用于跟踪特定主题的筛选器。
使用存储生命周期删除 blob
数据资源管理器不会在引入 Blob 后删除它。 请使用 Azure Blob 存储生命周期来管理你的 blob 删除。 建议将 blob 保留三到五天。
已知事件网格问题
- 使用数据资源管理器导出用于事件网格引入的文件时,请注意:
- 如果提供给导出命令的连接字符串或提供给外部表的连接字符串是 ADLS Gen2 格式的连接字符串(例如
abfss://filesystem@accountname.dfs.core.windows.net
),但没有为分层命名空间启用存储帐户,则不会触发事件网格通知。 - 如果没有为分层命名空间启用该帐户,则连接字符串必须使用 Blob 存储格式(例如 )。 即使使用 ADLS Gen2 连接字符串,导出也可以按预期工作,但是不会触发通知,并且事件网格引入也不会进行。
- 如果提供给导出命令的连接字符串或提供给外部表的连接字符串是 ADLS Gen2 格式的连接字符串(例如