将数据加载到 Azure SQL DW

Load data to Azure SQL DW

我要为 SQL DW 加载大量数据。将数据传输到 Azure 的最佳方式是什么?我应该使用 Import/Export 还是 AzCopy?每种方法需要多长时间?

您可以浏览下面的文档,找出最适合您的选项。

https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-overview-load/

如果您在本地 SQL 服务器中已有数据,则可以使用迁移向导工具将该数据加载到 Azure SQL 数据库。

http://sqlazuremw.codeplex.com/

加载数据的过程取决于数据量。对于非常小的数据集 (<100 GB),您可以简单地使用批量复制命令行实用程序 (bcp.exe) 从 SQL 服务器导出数据,然后导入到 Azure SQL 数据仓库.

对于大于 100 GB 的数据集,您可以使用 bcp.exe 导出数据,使用 AzCopy, create an external table (via TSQL code) and then pull the data in via a Create Table As Select (CTAS) 语句等工具将数据移动到 Azure Blob 存储。根据您与云的连接,更新到 1 TB 或 2 TB 效果很好。

对于非常大的数据集,比如超过几个 TB,您可以使用 Azure Import/Export 服务将数据移动到 Azure Blob 存储,然后使用 PolyBase/CTAS 加载数据。

使用 PolyBase/CTAS 路线将使您能够利用 Azure SQL 数据仓库 - 一个基于 MPP 的系统中的多个计算节点和数据处理的并行特性。这将大大提高数据摄取性能,因为每个计算节点都能够与其他节点并行处理数据块。

还有一个考虑因素是在 CTAS 声明时增加 SQL 数据仓库中可用的 DWU(计算资源)数量。这将增加计算资源的数量,增加额外的并行性,从而减少总摄取时间。