【问题标题】:How to transfer data from a document in CosmosDB to Azure SQL database?如何将数据从 CosmosDB 中的文档传输到 Azure SQL 数据库?
【发布时间】:2019-04-26 00:48:52
【问题描述】:

我正在尝试设置一个系统,每次我的 Cosmos DB 存储中有一个新文件时都会触发我的 Azure 函数(Cosmos DB 触发器),我的目标是从文件中获取传入数据,然后发送将它添加到我的 Azure SQL 中,这样我就可以根据它制作实时 Power BI 报告。 我对整个过程有一些疑问,如果有人可以提供帮助,我将不胜感激,因为我对我在 Microsoft 文档上阅读的大量信息(相关和不相关)感到困惑。

  1. 我需要在 Azure SQL 数据库中创建一个与 json 数据对应的表吗?就像我已经准备好表格模板还是自动进行转换?
  2. 对于这样的场景,当我制作我的 Azure 函数时,我需要输入/输出绑定吗?我自己的理解是我不需要任何绑定,但我不确定。
  3. 我可以从文档中选择哪些数据要传输到 SQL 中吗?还是只能说全部数据都转入SQL数据库?
  4. 此类任务的命令/代码是什么?例如,如果我想说将这些数据(或整个文档,给它是一个 json 文件)传输到 SQL 数据库。
  5. 我没有找到任何关于这个特定任务的文档,所以如果你们中的任何人可以给我一个链接,我也将不胜感激。
  6. 为了使 azure 函数位于 Cosmos DB 和 Azure SQL 数据库之间,我显然需要在我的 azure 函数设置中包含一个集合/集合名称,但我不知道那是什么,是什么在 Azure 上创建 Cosmos DB 时创建?

我知道这个问题太多了,但我宁愿一次问所有问题,而不是提出几个主题。 也许这些信息已经存在,但由于我是这个领域的新手,而且还编码,所以我发现自己很快就迷路了,我不确定我是否正在查看正确的信息/文档/视频教程。

提前致谢。

【问题讨论】:

  • 把数据放到SQL里面的逻辑是什么?您可以直接将 Power BI 连接到 Cosmos DB。
  • 逻辑是根本不允许我访问 Cosmos DB 数据库。
  • @SSRH 也许你可以采纳我的想法。有任何问题,请告诉我。
  • 非常感谢您花时间回复!在您描述的场景中,azure 函数的作用是什么?另外,您的方案如何为初始方案提供优势?再次感谢伙计!

标签: json azure triggers azure-sql-database azure-cosmosdb


【解决方案1】:

你的描述很详细,我试图涵盖你所有的问题。

1.我需要在我的Azure SQL数据库中建立一个与json数据对应的表吗?就像我已经准备好表格模板还是 转换会自动发生吗?

是的,你需要在cosmos db集合中创建一个json格式对应的表,它不会自动发生。

2.对于这样的场景,当我制作我的Azure函数时,我需要输入/输出绑定吗?我自己的理解是我不需要 任何绑定,但我不确定。

不,您不需要配置输入和输出绑定。只需要您的cosmos db配置,例如db名称,集合名称。请参考example

3.我可以从文档中选择哪些数据要传输到SQL吗?或者我只能说应该将整个数据传输到 SQL 数据库?

直到这个问题,我想根据您的要求向您提供我的建议。您可以按照以下步骤操作:

a.使用 Azure Function Cosmos Db Trigger 监控集合中添加或更新的文档。

b.在上述函数中,您需要收集传入的文档,然后使用 cosmos db sdk 将它们保存到新的集合中。(现在称为临时集合)

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 数据库。

可以使用 sdk 或 powershell 调用 Azure 数据工厂复制活动。请参考这个doc

5.我没有找到任何关于这个特定任务的文档,所以如果你们中的任何人可以给我一个链接,我也将不胜感激。

在以上观点中寻找答案。

6.为了使 azure 函数位于 Cosmos DB 和 Azure SQL 数据库之间,我显然需要一个集合/集合名称 包含在我的天蓝色功能设置中,但我不知道那是什么, 是在 Azure 上创建 Cosmos DB 时创建的吗?

要使用我的场景,您需要创建临时集合。复制活动执行后,您需要清空它。我建议您每天运行该作业,以便清空昨天的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多