我要为SQL DW加载大量数据。将数据传输到Azure的最佳方法是什么?我应该使用Import / Export还是AzCopy?每种方法需要多长时间?
答案 0 :(得分:3)
加载数据的过程取决于数据量。对于非常小的数据集(<100 GB),您只需使用批量复制命令行实用程序(bcp.exe)从SQL Server导出数据,然后导入到Azure SQL数据仓库。
对于大于100 GB的数据集,您可以使用bcp.exe导出数据,使用AzCopy之类的工具将数据移动到Azure Blob存储,创建外部表(通过TSQL代码)然后拉通过Create Table As Select (CTAS)语句输入数据。根据您与云的连接情况,这可以很好地更新到TB或者两个TB。
对于非常大的数据集,例如大于几个TB,您可以使用Azure Import/Export服务将数据移动到Azure Blob存储中,然后使用PolyBase / CTAS加载数据。
使用PolyBase / CTAS路由将允许您利用Azure SQL数据仓库(基于MPP的系统)中的多个计算节点和数据处理的并行特性。这将极大地改善数据提取性能,因为每个计算节点能够与其他节点并行处理数据块。
还有一个考虑因素是在CTAS语句时增加SQL数据仓库中可用的DWU(计算资源)的数量。这将增加计算资源的数量,增加额外的并行性,这将减少总的摄取时间。
答案 1 :(得分:2)
您可以浏览下面的文档,找出最适合您的选项。
https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-overview-load/
如果您已在内部部署SQL Server中拥有数据,则可以使用迁移向导工具将该数据加载到Azure SQL DB。