適用對象: 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