我试图建立一个系统,每次Cosmos DB存储中有一个新文件时,我的Azure函数都会被触发(Cosmos DB触发器),我的目标是从文件中获取传入数据并发送并将其发送到我的Azure SQL,因此我可以基于此创建实时的Power BI报告。 我对整个过程有一些疑问,如果有人可以提供帮助,我将不胜感激,因为我对在Microsoft文档中阅读的信息量(相关和无关)感到困惑。
我知道这是太多问题,但是我宁愿一次问所有这些问题,而不是提出几个主题。 也许这些信息已经存在了,但是由于我是该领域的新手,并且还编码,所以我发现自己很快迷路了,而且不确定是否在寻找正确的信息/文档/视频教程。>
谢谢。
答案 0 :(得分:0)
您的描述很详细,我试图涵盖您的所有问题。
1。我是否需要在Azure SQL数据库中创建一个与json数据相对应的表?我喜欢准备表格模板还是 转换会自动发生吗?
是的,您需要创建一个与cosmos db集合中的json格式相对应的表。它不会自动发生。
2。对于这种情况,当我执行Azure功能时,是否需要输入/输出绑定?我自己的理解是,我不需要 任何约束力,但我不确定。
否,您不需要配置输入和输出绑定。只需要您的cosmos数据库配置,例如数据库名称,集合名称。请参考此example。
3。是否可以从文档中选择要传输到SQL的数据?或者我只能说整个数据都应该转移到SQL 数据库?
在此问题之前,我想根据您的要求为您提供建议。您可以按照以下步骤操作:
a。使用Azure Function Cosmos Db触发器监视集合中添加或更新的文档。
b。在上面的功能中,您需要收集传入的文档,然后使用cosmos db sdk将它们保存到新的集合中。(现在称为temp collection)
c。这是重点,请使用Azure Data Factory copy activity将临时集合中的数据复制到sql数据库中。请参考以下文档:
https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-cosmos-db
https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-sql-database
回到第三个问题,可以。您可以设置query设置来过滤源数据。
4。此类任务的命令/代码是什么?例如,如果我想说传输这些数据(或整个文档,因为它是一个json 文件)到SQL数据库。
Azure Data Factory复制活动可以用sdk或powershell调用。请参阅此doc。
5。我没有找到有关此特定任务的任何文档,因此,如果您可以向我发送指向该任务的链接,我也将不胜感激。
在以上视图中找到答案。
6。为了使azure函数位于Cosmos DB和Azure SQL数据库之间,我显然需要一个集合/集合名称 包括在我的azure函数设置中,但是我不知道那是什么, 在Azure上创建Cosmos DB时会创建什么东西?
要使用我的方案,您需要创建临时集合。执行复制活动后,需要将其清空。我建议您每天运行作业,以便可以清空昨天的数据。