【问题标题】:Azure logic apps: Exporting large data from database into CSV fileAzure 逻辑应用:将大数据从数据库导出到 CSV 文件
【发布时间】:2020-07-07 04:33:55
【问题描述】:

我正在开发基于 Azure Logic App 的解决方案,以将数据从数据库导出到 CSV 文件。

到目前为止,我能够做到以下几点:

  1. 使用 SQL 数据库连接器并执行存储过程来检索数据
  2. 创建 CSV 文件
  3. 使用 FTP 连接器将文件上传到 FTP 服务器

使用这种方法,问题将是数据大小。我正在尝试找出一种处理大数据导出的方法。以下是我能想到的不同方法:

选项1:在SP中使用分页,迭代收集数据。

问题 1.1:在 Logic App 的每个循环中,都会生成多个 CSV 文件。如何将每次迭代的数据合并到一个 CSV 文件中?

问题 1.2:我正在考虑使用一个变量数组来收集每次迭代的数据,然后从变量数组创建 CSV 文件。如果变量数组的大小变得太大,我会遇到什么问题吗?

选项 2:在某处我读到您可以通过分块来克服数据大小问题。

问题:我什至不确定数据库连接器是否支持分块,我能否将数据导出到单个 CSV 文件中?

选项 3:创建多个 CSV 文件,然后将它们合并为一个 CSV 文件?

问题:这可以在 Logic 应用程序中实现吗?还是我需要实现一个逻辑函数来处理 CSV 文件的合并?

【问题讨论】:

  • 您是否查看过 Azure 数据工厂而不是逻辑应用程序?这正是它旨在处理的工作流程。
  • @JoelCochran,你说得对,DF 比逻辑应用更适合。但正在为此探索 Logic 应用程序,因为它可以由业务分析师轻松配置。

标签: azure-logic-apps


【解决方案1】:

如果不知道您所谈论的数据量,很难说出不同的选项。

1- 是的,您可以使用分页,我建议在您的 sql server 中使用 SP 来返回数据以及页面大小和数量:https://social.technet.microsoft.com/wiki/contents/articles/40060.sql-pagination-for-bulk-data-transfer-with-logic-apps.aspx

1.1 默认情况下LogicApps中的for-each是并行执行的,勾选For each设置并更改并发控制:https://docs.microsoft.com/sv-se/azure/logic-apps/logic-apps-control-flow-loops#foreach-loop-sequential

可以使用“create csv table”将SP返回的数据转换为csv https://docs.microsoft.com/sv-se/azure/logic-apps/logic-apps-perform-data-operations#create-csv-table-action

【讨论】:

    猜你喜欢
    • 2019-03-31
    • 2014-11-05
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    相关资源
    最近更新 更多