什么是 PolyBase
适用对象: SQL Server
Azure SQL 数据库
Azure SQL 数据仓库
并行数据仓库
借助 PolyBase , SQL Servwe 2016 实例可处理从 Hadoop 中读取数据的 Transact-SQL 查询。同一查询还可以访问 SQL Server 中的关系表。借助 PolyBase ,同一查询还可以联接 Hadoop 和 SQL Server 中的数据。在 SQL Server 中,外部表和外部数据源提供对 Hadoop 的连接。
PolyBase 将一些计算推送到 Hadoop 节点,以优化总体查询。不过,PolyBase 外部访问不仅限于 Hadoop 。其他未结构化的非关系表也受支持,如带分隔符的文本文件。
提示 SQL Server 2019 CTP 2.0 为 PolyBase 引入了新的连接器,包括 SQL Server、Oracle、Teradata 和 MongoDB。
支持的 SQL 产品和服务
PolyBase 对以下 Microsoft SQL 产品提供这些相同功能:
~ SQL Server 2016 及更高版本(仅限 Windows)
~ 分析平台系统(旧称为“并行数据仓库”)
~ Azure SQL 数据仓库
Azure 集成
借助 PolyBase 的基础帮助, T-SQL 查询还可以将数据导入和导出 Azure Blob 存储。此外,借助 PolyBase ,Azure SQL 数据仓库还可以将数据导入和导出 Azure Data Lake Store 和 Azure Blob 存储。
为什么要用 PolyBase ?
过去联接 SQL Server 数据与外部数据的难度更大。具体有下列两种不方便的方法:
~ 传送一半数据,这样所有数据都采用一种格式或其他格式。
~ 查询两个数据源,然后编写自定义查询逻辑,以在客户端一级联接和集成数据。
PolyBase 使用 T-SQL 来联接数据,因此可避免使用这两种不方便的方法。
为了简单起见,PolyBase 不要求在 Hadoop 环境中安装其他软件。查询外部数据所用的 T-SQL 语法也是用于查询数据库表的语法。PolyBase 实现的所有支持操作全都以透明方式发生。查询作者无需对 Hadoop 有任何了解。
PolyBase 用法
PolyBase 支持在 SQL Server 中使用以下方案:
~ 通过 SQL Server 或 PDW 查询 Hadoop 中存储的数据。
用户将数据存储在经济高效的分布式、可扩展系统中,例如 Hadoop 。
PolyBase 使得使用 T-SQL 查询数据更加容易。
~ 查询存储在 Azure Blob 存储中的数据。
Azure blob 存储是一个方便存储供 Azure 服务使用的数据的位置。
PolyBase 使得使用 T-SQL 访问数据变得更加容易。
~ 导入 Hadoop、Azure Blob 存储或 Azure Data Lake Store 中的数据。
通过将 Hadoop 、Azure Blob 存储或 Azure Date Lake Store 中的数据导入到关系表中,利用 Microsoft SQL 的列存储技术和分析功能的速度优势。
不需要单独的 ETL 或导入工具。
~ 将数据导出到 Hadoop、Azure Blob 存储或 Azure Data Lake Store。
将数据存档到 Hadoop 、Azure Blob 存储或 Azure Data Lake Store ,以获得经济高效的存储,并使数据保持联机以便于访问。
~ 与 BI 工具集成
结合使用 PolyBase 和 Microsoft 的商业智能和分析堆栈,或使用任何与 SQL Server 兼容的第三方工具。
“性能”
~ 将计算推送到 Hadoop。
查询优化器制定了基于成本的决策,以在执行此操作将提升查询性能时将计算推送到 Hadoop。
它使用外部表上的统计以制定基于开销的决策。
推送计算会创建 MapReduce 作业并利用 Hadoop 的分布计算资源。
~ 缩放计算资源。
若要提高查询性能,可以使用 SQL Server PolyBase 横向扩展组。
这使并行数据可以在 SQL Server 实例和 Hadoop 节点之间传输,并为处理外部数据添加计算资源。
后续步骤
在使用 PolyBase 之前,必须安装 PolyBase 功能。然后,请参阅以下配置指南,具体取决于你的数据源:
~ Haoop
~ Azure Blob