apache-spark - 将大量数据从 SQL Server 传输和转换到 Azure SQL Server 的最佳方法。 Azure 数据工厂、HDInsight 等

标签 apache-spark hadoop azure-sql-database azure-hdinsight azure-data-factory-2

我想找到将 20 GB SQL 数据从安装在客户现场服务器 Client 上的 SQL Server 数据库传输到我们的 Azure SQL Server Source 的最佳方法,S4 有 200 DTUs性能每月 320 美元。在进行初始设置时,我们设置了一个 Azure 数据工厂,通过多个表副本复制超过 20 GB,例如,客户端表 A 的内容到源表 A,客户端表 B 的内容到源表 B,等等。然后我们运行许多提取器存储过程,通过将这些源表连接在一起,将源表中的数据插入到阶段表中,例如,源 A 连接到源 B。之后是增量副本,但初始设置确实需要永远。

目前S4的复制时间在12小时左右,解压时间为4小时。以每月 2400 美元的价格将性能层级提高到 1600 个 DTU 的 S9 将时间减少到 6 小时,提取时间为 2 小时,但这带来了更高的成本。

我想知道是否还有其他 Azure 方法。与将 Azure SQL DB 扩展到 S9 等相比,使用 Hadoop 或 Spark 设置 HDInsight 集群在成本方面是否更有效? S9 每月 2400 美元,为期 31 天,每小时 3.28 美元。 Azure HDInsight Clusters of Memorized Optimized Nodes of a D14 v2 instance每小时 1.496 美元,因此它比 S9 便宜。但是,它在性能方面如何比较。复制过程会更快还是提取过程会更快?

我还不习惯大数据方法。感谢您提供的所有帮助。

最佳答案

Azure 数据工厂复制事件提供一流的安全、可靠和高性能数据加载解决方案。它使您能够每天跨各种云和本地数据存储复制数十 TB 的数据。Copy Activity 提供高度优化的数据加载体验,易于配置和设置。

可以看到复制事件的性能引用表:enter image description here 该表显示了基于内部测试运行的单个复制事件中给定源和接收器对的复制吞吐量数(以 MBps 为单位)。

如果您希望使用 Azure 数据工厂复制事件可以更快地传输数据,Azure 提供了三种方法来实现更高的吞吐量:

  1. 数据集成单元。数据集成单元 (DIU)(以前称为云数据移动单元或 DMU)是表示数据工厂中单个单元的功率(CPU、内存和网络资源分配的组合)的度量。您可以通过使用更多数据集成单元 (DIU) 来实现更高的吞吐量。您将根据复制操作的总时间付费。您为数据移动支付的总持续时间是跨 DIU 的持续时间总和。

  2. 平行复制。我们可以使用 parallelCopies 属性来指示您希望复制事件使用的并行度。对于每个复制事件运行,数据工厂确定用于将数据从源数据存储复制到目标数据存储的并行副本数。

  3. 分阶段复制。当您将数据从源数据存储复制到接收器数据存储时,您可以选择使用 Blob 存储作为临时暂存存储。

您可以采用这些方法通过复制事件调整数据工厂服务的性能。

有关 Azure 数据工厂复制 liveness 能的更多详细信息,请参阅: https://learn.microsoft.com/en-us/azure/data-factory/copy-activity-performance#data-integration-units

关于apache-spark - 将大量数据从 SQL Server 传输和转换到 Azure SQL Server 的最佳方法。 Azure 数据工厂、HDInsight 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53808469/

相关文章:

scala - Apache Spark:将结果保存到数据库

python - Pyspark 导入 .py 文件不起作用

asp.net-mvc - 通用成员(member)提供商造成用户性能问题

hadoop - Hortonworks环境中的Pentaho MapReduce作业抛出错误

azure - Azure 数据工厂复制事件使用什么协议(protocol)?

sql-server-ce - 将 SQL CE 4.0 数据库迁移到 Sql Azure 的最佳方法

apache-spark - 是否可以在一个 Spark 应用程序的单个 Spark 工作器中启动多个 Executor?

Java Apache Spark 将 TSV 格式转换为 JavaRDD

mongodb - 带有 MongoDB 的 MapReduce 真的非常慢(30 小时,而同等数据库在 MySQL 中为 20 分钟)

apache-spark - 带有企业安全包的 HDInsight 上的 Zeppelin 笔记本