PolyBase 常見問題集

適用於:SQL Server 2016 (13.x) 和更新版本

PolyBase 與連結的伺服器

下表強調顯示 PolyBase 和連結的伺服器功能之間的差異:

PolyBase 連結的伺服器
資料庫範圍物件 執行個體範圍物件
使用 ODBC 驅動程式 使用 OLEDB 提供者
支援所有資料來源的唯讀作業,並寫入某些外部資料來源 同時支援讀取與寫入作業
可以向外延展從單一連線對遠端資料來源所進行的查詢 不可以向外延展從單一連線對遠端資料來源所進行的查詢
支援述詞下推 支援述詞下推
可用性群組不需要個別設定 可用性群組中的每個執行個體都需要個別設定
僅限基本驗證 基本與整合式驗證
適用於處理大量資料列的分析查詢 適用於傳回單一或少量資料列的 OLTP 查詢
使用外部表格的查詢無法參與分散式交易 分散式查詢可以參與分散式交易

SQL Server 2022 中的 PolyBase 有哪些新功能?

SQL Server 2022 (16.x) 現在支援使用 S3 REST API、內部部署或雲端中儲存在 Azure 儲存體帳戶 v2、Azure Data Lake Storage Gen2 或任何 S3 相容物件儲存體上的 CSV、Parquet 和 Delta 檔案。

SQL Server 2022 (16.x) 現在可以使用 CREATE EXTERNAL TABLE 作為 SELECT (CETAS),和 OPENROWSET、CREATE EXTERNAL TABLE (CET)等命令,以及所有新的 T-SQL 增強功能。

目前,SQL Server 2022 (16.x) 已移除對 Hadoop 外部資料來源的支援。

SQL Server 2022 (16.x) 累積更新 2 現在引進 Oracle TNS 檔案的支援。 如需詳細資訊和範例,請參閱建立外部資料來源

進一步了解利用 SQL Server 2022 PolyBase 進行資料虛擬化,並檢閱 SQL Server 2022 PolyBase 增強功能

SQL Server 2019 中的 PolyBase 有哪些新功能?

SQL Server 2019 (15.x) 中的 PolyBase 現在可以從更多不同的資料來源讀取資料。 這些外部資料來源的資料可儲存為 SQL Server 上外部表格。 PolyBase 也支援下推計算到這些外部資料來源,但不包括 ODBC 泛型型別。

相容的資料來源

  • SQL Server
  • Oracle
  • Teradata
  • MongoDB
  • 相容的 ODBC 泛型型別

SQL Server 2019 (15.x) 累積更新 19 現在引進 Oracle TNS 檔案的支援。 如需詳細資訊和範例,請參閱建立外部資料來源

注意

PolyBase 可讓您使用協力廠商 ODBC 驅動程式連線到外部資料來源。 這些驅動程式並未隨附於 PolyBase,且可能不會如預期般運作。 如需詳細資訊,請參閱設定 PolyBase 存取具有 ODBC 泛型型別的外部資料

我可以指定哪些 CONNECTION_OPTIONS 來連線到協力廠商資料來源?

請檢閱 建立外部資料來源 (Transact-SQL) CONNECTION_OPTIONS,以取得支援的 SQL Server、Oracle、Teradata、適用於 Cosmos DB 的 MongoDB API 和一般 ODBC 資料提供者的資料提供者連線選項。

如何檢視 PolyBase 下推計算的遠端查詢執行計畫?

視 SQL Server 版本而定,可以透過幾種方法進行。 請參閱 PolyBase 疑難排解 - 若要檢視 PolyBase 查詢計畫

如何判斷 PolyBase 下推計算是否正在執行?

Azure SQL Database 是否支援 PolyBase?

否,但您可以使用 OPENROWSET 函式查詢放在 Azure Blob 儲存體檔案中的資料,或使用建立外部表格,以從 Synapse Analytics 中的無伺服器 SQL 集區讀取。 如需詳細資訊,請參閱 Azure SQL 可以使用 Synapse SQL 外部表格讀取 Azure Data Lake 儲存體檔案

Azure SQL 受控執行個體是否支援 PolyBase?

Azure SQL 受控執行個體有自己的資料虛擬化功能,可將 Azure Data Lake Storage (ADLS) 和 Azure Blob 儲存體作為資料來源。 如需詳細資訊,請參閱使用 Azure SQL 受控執行個體進行資料虛擬化

我應該允許哪些連接埠通過 PolyBase 的防火牆?

除了 PolyBase 向外延展群組的情況下,不需要為 PolyBase 本身開啟其他連接埠。 如果沒有向外延展群組,PolyBase 服務本身就不需要任何防火牆規則。

在 Windows 伺服器上,PolyBase 會利用 SQL Server 組態管理員中,TCP/IP 設定內 IPAll 區段中 SQL Server 所使用的連接埠。 如需詳細資訊,請參閱 TCP/IP 屬性。 在 Linux 伺服器上,PolyBase 會利用 network.tcpport 設定。 如需詳細資訊,請參閱 TCP 通訊埠

針對多個 Windows 伺服器上的 PolyBase 向外延展群組,請參閱下一個問題中的連接埠資訊。

不過,您必須允許其他連接埠與 PolyBase 所使用的各種外部資料來源通訊。 請參閱 ODBC 設定、Azure 資源設定或特定資料來源文件。 例如:

來源平台 參考
Microsoft SQL Server SQL Server 所使用的通訊埠
Hortonworks HDP 管理 HDFS
Cloudera CDH CDH 元件所使用的連接埠

PolyBase 向外延展群組使用哪些連接埠?

根據預設,PolyBase 資料移動服務會透過 TCP 16450-16460 的連接埠範圍連線到向外延展群組的前端節點,通常是使用 16450-16453,加上連接埠 17001。 只有在設定 PolyBase 向外延展群組且應該允許通過伺服器防火牆時,才會使用這些連接埠。 SQL Server 安裝程式應該會在功能安裝時,自動建立允許這些連接埠的本機防火牆規則。 如需詳細資訊,請參閱在 Windows 上設定 PolyBase 向外延展群組

注意

Microsoft SQL Server PolyBase 向外延展群組即將淘汰。 向外延展群組功能將從 SQL Server 2022 (16.x) 中的產品中移除。

巨量資料叢集中的 PolyBase 與獨立執行個體中的 PolyBase

如需有關使用 ODBC 一般連接器之連線的詳細資訊,請瀏覽我們的設定 ODBC 泛型型別的操作指南

下表強調 SQL Server 2019 (15.x) 獨立安裝和 SQL Server 2019 (15.x) 巨量資料叢集中提供的 PolyBase 功能:

功能 巨量資料叢集 獨立執行個體
針對 SQL Server、Oracle、Teradata 和 Mongo DB 建立外部資料來源 X X
使用相容的協力廠商 ODBC 驅動程式建立外部資料來源 X
針對 HADOOP 資料來源建立外部資料來源 X X
針對 Azure Blob 儲存體建立外部資料來源 X X
在 SQL Server 資料集區上建立外部表格 X
在 SQL Server 存放集區上建立外部表格 X
向外延展查詢執行 X X (僅限 Windows)

重要

Microsoft SQL Server 2019 巨量資料叢集附加元件將會淘汰。 SQL Server 2019 巨量資料叢集的支援將於 2025 年 2 月 28 日結束。 平台上將完全支援含軟體保證 SQL Server 2019 的所有現有使用者,而且軟體將會持續透過 SQL Server 累積更新來維護,直到該時間為止。 如需詳細資訊,請參閱公告部落格文章Microsoft SQL Server 平台上的巨量資料選項