適用於: SQL Server 2016 (13.x) 及以後版本
Azure SQL Database Azure
Synapse Analytics
Analytics Platform System (PDW)
本文摘要說明 SQL Server 產品和服務可用的 PolyBase 功能。
產品版本的功能摘要
下表列出 PolyBase 的重要功能以及提供這些功能的產品。
| 功能 | SQL Server (自 2016 年起) | Azure SQL 資料庫 | Azure Synapse Analytics | 平行處理資料倉儲 |
|---|---|---|---|---|
| 使用 Transact-SQL 查詢 Hadoop 資料 | 是 | 無 | 無 | 是 |
| 從 Hadoop 匯入資料 | 是 | 無 | 無 | 是 |
| 匯出資料至 Hadoop | 是 | 無 | 無 | 是 |
| 在 Azure HDInsight 中查詢、匯入、匯出 | 無 | 無 | 無 | 無 |
| 將查詢計算下推到 Hadoop | 是 | 無 | 無 | 是 |
| 從 Azure Blob 儲存體匯入資料 | 是 | 是 1 | 是 | 是 |
| 匯出資料至 Azure Blob 儲存體 | 是 | 無 | 是 | 是 |
| 從 Azure Data Lake Store 匯入資料 | 無 | 無 | 是 | 無 |
| 將資料匯出至 Azure Data Lake Store | 無 | 無 | 是 | 無 |
| 從 Microsoft BI 工具執行 PolyBase 查詢 | 是 | 無 | 是 | 是 |
1 於 SQL Server 2017 (14.x) 中引進,請參閱 Azure Blob 儲存體中大量存取資料的範例。
已知限制
PolyBase 具有下列限制:
SQL Server 2019 (15.x) 之前的版本中,SQL Server 中的資料列大小 (包括可變長度資料行的完整長度) 上限為 32 KB,Azure Synapse Analytics 中則為 1 MB。 在 SQL Server 2019 (15.x) 和更新版本中,此限制隨即解除。 Hadoop 資料來源的上限維持在 1 MB,但僅限於其他資料來源的 SQL Server 上限。
將資料從 SQL Server 或 Azure Synapse Analytics 匯出為 ORC 檔案格式時,可能會限制具有大量文字的資料行。 由於 Java 記憶體不足錯誤訊息,因此只能限制為最少 50 個資料行。 若要解決這個問題,只需要匯出資料行的子集。
如果已啟用 Knox,PolyBase 就無法連線到任何 Hadoop 執行個體。
若您使用 Hive 資料表,且 transactional = true,PolyBase 就無法存取 Hive 資料表目錄中的資料。
PolyBase 服務需要 SQL Server 服務,才能讓 TCP/IP 網路通訊協定能夠正常運作。 此外,如果 TCP/IP 通訊協定組態設定 [全部接聽] 設定為 [否],則需要下列 TCP/IP 組態:
- IPAll 下 TCP 動態埠或 TCP 連接埠中正確接聽程式埠的專案。 由於 PolyBase 服務解析 SQL Server 引擎的接聽程式埠的方式,這是必要的步驟。
- 在 TCP/IP 屬性 > IP 位址中啟用所需的 IP 位址;否則,SQL Server 引擎將不會接受任何 TCP/IP 連線,PolyBase 服務仍然無法連線到 SQL Server 引擎。
如果已在核心程序中停用 IPv6,Linux 上的 SQL Server 的 PolyBase 將無法運作。 如需詳細資訊,請參閱 Linux 上的 SQL Server:已知問題。
PolyBase 服務需要啟用共用記憶體通訊協定才能正常運作。
如果您將預設 SQL Server 執行個體設定為接聽 1433 以外的 TCP 通訊埠,就無法將其當作 PolyBase 向外延展群組中的前端節點來使用。 執行
sp_polybase_join_group時,如果您傳遞 'MSSQLSERVER' 作為執行個體名稱,SQL Server 會假設連接埠 1433 是接聽程式連接埠,因此資料移動服務在啟動時無法連線到前端節點。搭配使用 PolyBase 時,不支援 Oracle 同義字。
Hadoop 外部資料來源不支援 UTF-8 定序。
自 SQL Server 2022 (16.x) 起不再支援 Hadoop。
伺服器名稱長度是由 15 個字元的 NetBIOS 名稱長度限制所系結。 如果您在建立伺服器名稱后變更為16個字元或更長,PolyBase 資料行動服務將不會啟動。
Always On 可用性群組不支援 PolyBase 向外延展群組。
安裝 PolyBase 的資料庫(如 DWConfiguration、DWDiagnostics、DWQueue)必須處於讀寫模式,PolyBase 才能正常運作,累積更新安裝也必須成功。 因此,不支援將這些資料庫置於可用性群組中。