共用方式為


PolyBase 功能和限制

適用於: SQL Server 2016 (13.x) 及以後版本 Azure SQL Database AzureSynapse AnalyticsAnalytics 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 才能正常運作,累積更新安裝也必須成功。 因此,不支援將這些資料庫置於可用性群組中。