如何使用 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 中的最终输出不匹配