【问题标题】:Push data to Azure SQL database将数据推送到 Azure SQL 数据库
【发布时间】:2017-12-03 20:14:06
【问题描述】:

我是使用 Azure SQL 数据库的新手。我被赋予了将 1 亿条记录文本文件推送到 Azure SQL 数据库的任务。我正在寻找如何以有效的方式做到这一点的建议。

【问题讨论】:

  • 定义高效..
  • 我担心在将数据加载到表后执行查找查询所花费的时间
  • 这是一个经常性的任务吗?天蓝色数据工厂呢?
  • 是的,这将是一项经常性的任务。我还没有检查过 azure 数据工厂。我正在寻找某种数据库,例如 sql server,我需要在其中推送这些数据,然后从那里查询。
  • 你应该,它是为这样的任务而设计的。 Supported file formats,文件在哪里,本地还是云端?

标签: sql database azure azure-sql-database


【解决方案1】:

您可以通过多种方式将本地数据上传到 SQL Azure 数据库

  • SSIS - 正如 Randy 所说,您可以创建一个 SSIS 包(使用 SSMS)并安排一个 SQL 代理作业来定期运行这个包。
  • Azure Data Factory - 您可以定义一个 ADF 管道,定期将数据从本地文件上传到 SQL Azure 数据库。根据您的要求,您可能只需要管道的初始“连接和收集”部分,或者您可能希望在管道中添加进一步的额外处理
  • bcp - “批量复制程序”实用程序可用于在 SqlServer 和数据文件之间复制数据。与 SSIS 包类似,您可以使用 SQL 代理作业来安排使用 bcp 的定期上传。
  • SqlBulkCopy - 我怀疑你是否需要这个,但如果你需要以编程方式将它集成到你的应用程序中,这个类可以帮助你通过 .NET 代码实现与 bcp 实用程序相同的功能(bcp 更快)。

【讨论】:

    【解决方案2】:

    我会通过 SSIS 使用 SQL Studio Managemenet Studio 执行此操作(如果它是一次性操作)。如果您打算重复执行此操作,您可以安排 SSIS 作业按计划执行。 SSIS 将使用小批量进行批量插入,因此您不应该遇到事务日志问题并且它应该是高效的(因为批量插入)。不过,在执行此插入之前,您可能需要考虑您的性能层,这样您就不会受到 Azure 的严重限制和可能的超时。

    【讨论】:

    • 谢谢。您是否估计过转移所需的时间
    • 这完全取决于您在 Azure 中的性能层、每行的宽度(字节数)以及您要导入的表上的索引数。您的行越宽,导入每一行所需的时间就越长。每行的宽度会对导入速度产生巨大影响。
    • 酷。还有一件事兰迪。将数据加载到表中后,您是否有任何建议来优化表以进行查找查询(例如,如果列中的值重复多次)
    • 这是一个完全不同的话题,可能值得提出一个完全不同的问题。
    • 请回答这个问题@Randy。 stackoverflow.com/questions/47623756/…
    猜你喜欢
    • 1970-01-01
    • 2016-01-27
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多