使用 ADF 处理事件中心 XML 文件数据以存储在 SQL 表上

问题描述 投票:0回答:1

我们有2个系统,1个系统发送XMl文件中的数据并将其存储到Azure事件中心,我需要处理XMl文件数据并将其存储在sql server表中。 1 秒内将多个文件发送到事件中心。

目前我们已经尝试过

  1. 带有存储过程的azure函数可以做到这一点,但对于失败的情况存在性能问题。
  2. 尝试使用带有逻辑应用程序和ADF的事件网格来实现azure hub,但未能成功。

任何人都可以建议一些最佳方法和链接。

azure-functions azure-logic-apps oracle-adf azure-eventgrid eventhub
1个回答
0
投票

在这种情况下您可以使用 ADF。首先,将事件中心数据发送到 ADLS gen2 或 Blob 存储。然后,您就可以利用ADF来实现您的要求了。

要将事件中心数据发送到存储帐户,您需要在事件中心中启用 Capture

enter image description here

根据您的要求给出时间窗口和切片窗口,并给出数据的容器。例如,我选择了 Avro 文件格式,您也可以根据您的要求选择 Parquet。

此后,您需要在ADF管道中使用映射数据流。在源中创建 Gen2 Avro 数据集,在接收器中创建 SQL 数据库数据集。

您可以使用计划触发器通过管道安排此数据流,以便将所有最新数据复制到您的目标。

对于增量加载并防止已加载的文件,您可以在数据流源中使用Move选项在每次管道运行中将源数据移动到临时存储。

enter image description here

或者如果您想在加载后删除这些文件,您可以选择删除源文件选项。

在接收器中,使用Upsert选项以避免重复数据。

在每次管道运行时,输入数据将被复制到您的目标,并且存储帐户中加载的文件将被删除或移动到临时位置。

您可以通过@Inder Rana浏览这个博客以了解有关此方法的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.