如何使用 azure 流分析根据输出/blob 存储中的数据仅插入不同的行?

Posted

技术标签:

【中文标题】如何使用 azure 流分析根据输出/blob 存储中的数据仅插入不同的行?【英文标题】:How insert only distinct rows based on data in output/blob storage using azure stream analytics? 【发布时间】:2019-08-02 05:44:10 【问题描述】:

我正在尝试使用 azure 流分析查询语言基于该输出 Blob 存储中的旧数据在我的输出 Blob 存储中仅存储不同的行。 例如: 在第一次插入时,我得到了一些流分析输入的值,如下所示

Name, Score
saran, 100
raj,   90

以上数据作为输出存储在blob中。

在第二次插入时,我从流分析输入中得到下表

Name, Score
saran, 90
jeeva, 80

现在,在将这些数据存储到 blob 之前,我必须比较旧数据 一个带有新数据的 blob,并且只将不同的数据插入到 blob 中,我还想更新现有数据的值。 提前致谢

【问题讨论】:

【参考方案1】:

您的主要要求是在 ASA blob 存储输出中实现 Upsert 功能,据我所知,您无法在 blob 存储输出中获得该功能。

但是,您可以考虑在 blob 存储(最终目标)之前将数据加载到以下输出中作为解决方法:

1.Azure Cosmos DB SQL API:

流分析与 Azure Cosmos DB 的集成允许您根据给定的文档 ID 列在容器中插入或更新记录。更多详细信息,请参阅official document。

2.SQL数据库:

你可以使用sql数据库中的存储过程来实现upsert,请参考这个帖子:How to implement a conditional Upsert stored procedure?

经过上述过程,您可以将数据加载到blob存储中。例如,在ADF中使用copy activity。

【讨论】:

谢谢,如果我使用 Power BI 作为输出,我该如何解决我提出的问题。 @saranrajkumar 我对 ASA upsert 的所有了解都列在我的回答中。您可以将 PB 连接到 Azure Blob 存储:georgevwoods.com/2019/01/26/… @saranrajkumar 那么,有什么更新吗?我的回答对你有帮助吗?

以上是关于如何使用 azure 流分析根据输出/blob 存储中的数据仅插入不同的行?的主要内容,如果未能解决你的问题,请参考以下文章

Azure 流分析测试查询编辑器与 ComosDB 和 Blob 中的最终输出不匹配

Microsoft Azure 流分析和 Blob 存储输入

Azure Blob 存储和流分析

如何使用 Azure.Storage.Blobs 上传流

Azure 流分析:SQL 输出不起作用

Azure 流分析 -> 我真的对路径前缀有多少控制?