【发布时间】:2018-12-18 12:57:41
【问题描述】:
我想找到将 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 集群的成本效率更高吗?每月 2400 美元的 S9 31 天是每小时 3.28 美元。 Azure HDInsight Clusters of Memorized Optimized Nodes of a D14 v2 instance 每小时 1.496 美元,因此它比 S9 便宜。但是,它在性能方面如何比较。复制过程会更快还是提取过程会更快?
我还不习惯大数据方法。谢谢大家的帮助。
【问题讨论】:
-
如果您想在此处调查大数据方法,请使用 Azure Databricks。它具有 Spark 和对按需集群的一流支持。您可以使用 ADF 加载 Azure Blob 存储,并在加载 SQL Server 之前尝试使用 Spark SQL 进行连接。
-
您是否有理由无法暂时扩大规模,即仅在您的工作期间进行?正如@LeonYue 建议的那样,在数据工厂中启用暂存选项可能会有所作为 - 请确认。您是否还可以确认您正在执行增量加载,而不是每次都完全重新加载?你有 ExpressRoute 吗?对于这个相对较小的体积,提取物确实显得格外长。
-
@wBob 。时间是错误的。很抱歉,但是复制时间确实需要很长时间。我们现在已经切换到增量副本,这对我们有很大帮助。我将问题改写为更多关于客户端的初始设置和做一个需要永远的初始副本。转换数据仍然需要很长时间,因为新数据也必须引用旧数据。
标签: apache-spark hadoop azure-sql-database azure-hdinsight azure-data-factory-2