我应该怎么做才能确保在 Azure SQL 数据仓库中使用 transact-SQL 获得最佳查询性能,同时在 Azure Blob 存储中组合来自 SQL 的数据集和非关系数据?任何输入将不胜感激。
2 回答
最佳做法是将数据从 Azure Blob 存储加载到 SQL 数据仓库,而不是尝试对该数据进行交互式查询。
原因是当您对驻留在 Azure Blob 存储中的数据(通过外部表)运行查询时,SQL 数据仓库(在幕后)将所有数据从 Azure Blob 存储导入 SQL 数据仓库临时表以进行处理查询。因此,即使您在外部表上运行 SELECT TOP 1 查询,该表的整个数据集也将临时导入以处理查询。
因此,如果您知道您将经常查询外部数据,建议您使用 CREATE TABLE AS SELECT 命令将数据永久显式加载到 SQL 数据仓库中,如文档所示:https ://azure.microsoft .com/en-us/documentation/articles/sql-data-warehouse-load-with-polybase/。
作为最佳实践,尽可能将 Azure 存储数据分解为不超过 1GB 的文件,以便使用 SQL 数据仓库进行并行处理。有关如何在 SQL 数据仓库中配置 Polybase 以从 Azure 存储 Blob 加载数据的更多信息,请访问:https ://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-load-with-polybase /
让我知道这是否有帮助!