本文回答 SQL Server 巨量數據叢集 概念、功能、部署、支援性和工具的常見問題。
最佳做法
關於檔案位置的建議最佳做法為何?
相較於在 Windows 或 Linux 上的裸機電腦上設定 SQL Server,在這方面的彈性較低。 在 Kubernetes 環境中,這些成品會抽象化,而且必須可攜式。 目前,針對每個 Pod 所提供的數據和記錄,有 2 個持續性磁碟區 (PV)可供設定。 如需詳細資訊,請參閱 Kubernetes 中使用 SQL Server 巨量數據叢集的數據持續性。
我需要在 SQL Server 巨量數據叢集上進行事務歷史記錄備份嗎?
您只需要針對 SQL Server 主要實例中的使用者資料庫執行記錄備份(視恢復模式或 HA 組態而定)。 數據集區資料庫僅使用 SIMPLE 恢復模式。 同樣適用於針對 PolyBase 建立的 DW* 資料庫。
如何監視分散式查詢是否實際使用計算集區?
您可以使用針對巨量數據叢集案例增強的現有PolyBase DMV。 如需詳細資訊,請參閱 監視和疑難解答 PolyBase。
是否可以透過 kubectl 直接設定和管理 Kubernetes API Server 的巨量數據叢集資源?
雖然您可以使用 Kubernetes API 或 kubectl 來修改某些設定,但不支援也不建議使用。 您必須 透過 azdata 執行所有巨量資料叢集管理作業。
如何備份儲存在 HDFS 中的數據?
您可以使用任何可透過 webHDFS 啟用硬體層級記憶體快照集或複製/同步的解決方案。 您也可以使用 azdata bdc hdfs cp,以取得詳細資訊,請參閱 azdata bdc hdfs。
概念和功能
是否有辦法「相應放大」預存程式? 例如,在計算集區上執行它嗎?
目前不是。 其中一個選項是在 AlwaysOn 可用性群組中部署 SQL Server。 然後,您可以使用 可讀取的次要複 本來執行某些程式(例如:ml 訓練/評分、維護活動等)。
如何動態調整集區的Pod?
目前不支援這種情況。
是否可以備份儲存在數據集區中的外部數據表?
數據集區實例中的資料庫沒有任何外部數據表的元數據, 就像任何使用者資料庫一樣。 您可以執行備份/還原,但為了避免結果不一致,您必須確定 SQL Master 實例 中元數據資料庫中的外部數據表元數據已同步。
數據集區是否提供分區化?
數據集區是分散式數據表概念。 分區化通常參考為 OLTP 概念 - 目前不支援此功能。
何時應該使用數據集區或存放集區進行原始數據儲存?
保留一詞集區來描述同質服務或應用程式的集合。 例如,數據集區是一組具狀態 SQL Server 計算和儲存集區,而存放集區則是一組 HDFS 和 Spark 服務。 SQL Server 主機是可在可用性群組中設定的單一實例或多個實例。 SQL Server 主要實例是 Linux 上的一般 SQL Server 實例,您可以使用 Linux 上可用的任何功能。 您應該先從數據模型、主要在實體上運作的實體和服務/應用程式開始。 所有數據不需要儲存在 SQL Server 或 HDFS 或數據集區等一個位置。 根據數據分析,您可以將大部分的數據儲存在 HDFS 中、將數據處理為更有效率的格式,並公開給其他服務。 其餘的數據會儲存在 SQL Master 實例中。
SQL Server 巨量數據叢集是否支援 GPU 型深度學習連結庫和計算(PyTorch、Keras、特定映射庫等等)。」
目前不支援這種情況。
是否有方法可設定集區的多個磁碟區宣告?
每個 Pod 只能有兩個保存的磁碟區 (PV)。 您可以在OS層級擷取磁碟區,並將其用於永續性記憶體。 例如,您可以使用多個磁碟建立 RAID 0 OS 磁碟分區,並使用本機記憶體布建器針對永續性磁碟區使用。 目前無法為每個 Pod 使用更多 PV。 PV 會對應至容器內的目錄,這是固定的。 如需保存磁碟區的詳細資訊,請參閱 Kubernetes 檔中的永續性磁碟區。
如果我們設定多個提供者和多個磁碟,HDFS 設定是否會使用所有數據磁碟區宣告來更新?
您可以將存放集區設定為在部署時間使用特定的儲存類別。 請參閱 Kubernetes 中使用 SQL Server 巨量數據叢集的數據持續性。
存取以 Ceph 為基礎的記憶體有哪些選項?
HDFS 階層處理可讓我們以透明方式與 S3 型通訊協定整合。 如需詳細資訊,請參閱 如何在巨量數據叢集中掛接 S3 以進行 HDFS 階層處理。
升級后是否保留 HDFS 中的數據?
是,數據會保留,因為數據是由永續性磁碟區支援,而升級只會部署具有新映像的現有Pod。
HDFS 階層處理如何控制快取?
使用 HDFS 階層處理時,數據會隨著在巨量數據叢集中執行的本機 HDFS 快取,讓使用者不需要將所有數據都帶入大型數據湖。 目前有一個可設定的空間配置給快取,預設為 2%。 數據會保留在快取中,但如果超過該臨界值,將會移除。 也會從 Lake 維護安全性,並套用所有 ACL。 如需詳細資訊,請參閱 在巨量數據叢集上設定 HDFS 階層處理。
我們可以使用 SQL Server 2019 將 Azure Data Lake Store Gen2 可視化嗎? 此整合會負責資料夾層級許可權嗎?
是,您可以使用 HDFS 階層處理將儲存在 ADLS Gen2 中的數據虛擬化。 一旦 HDFS 階層處理掛接至 ADLS Gen2,使用者就能夠查詢 HDFS 數據,並針對它執行 Spark 作業。 掛接的記憶體會出現在 --mount-path 所指定位置的 HDFS for Big Data Cluster 中,而且使用者可以使用該掛接路徑,就像使用本機記憶體一樣。 如需詳細資訊,請參閱這裡: 設定巨量數據叢集上的 HDFS 階層處理。 如需 HDFS 層許可權的詳細資訊,請參閱 管理 SQL Server 巨量數據叢集的 HDFS 許可權。
Azure Kubernetes Service 上主要節點的預設高可用性和/或備援設定為何?
AKS 控制平面支援 運行時間 SLA 保證 99.95% 可用性。 AKS 叢集節點(背景工作節點)使用可用性區域,如需詳細資訊,請參閱 AKS 可用性區域。 可用性區域 (AZ) 是 Azure 的高可用性供應專案,可保護應用程式和數據免於資料中心失敗。 AKS 針對不使用可用性區域的叢集支援 99.9% 可用性。 如需詳細資訊,請參閱 Azure Kubernetes Service (AKS) 的 SLA。
是否有方法可以保留 YARN 和 Spark 作業歷程記錄?
重新啟動sparkhead不會造成記錄遺失,這些記錄位於HDFS中。 您仍然應該會看到來自 /gateway/default/sparkhistory UI 的 Spark 歷程記錄。 針對 Yarn 容器記錄,由於 Yarn RM 重新啟動,因此不會在 Yarn UI 中看到這些應用程式,但這些 yarn 記錄仍在 HDFS 中,而且您可以從 Spark 記錄伺服器連結至它們。 您應該一律使用 Spark 歷程記錄伺服器作為診斷其 Spark 應用程式的進入點。
是否有方法可關閉任何集區的快取功能?
根據預設,系統會保留 1% 總 HDFS 記憶體,以快取已掛接的數據。 快取是跨掛接的全域設定。 目前,沒有公開的關閉方式,不過,可以透過 hdfs-site.dfs.provided.cache.capacity.fraction 設定來設定百分比。 此設定可控制叢集中總容量的分數,可用來從提供的存放區快取數據。 若要修改,請參閱 如何在部署後設定巨量數據叢集設定。 如需詳細資訊,請參閱 在 SQL Server 巨量數據叢集上設定 HDFS 階層處理。
如何在 SQL Server 2019 巨量數據叢集中排程 SQL 預存程式?
您可以在巨量數據叢集的 SQL Server 主要實例中使用 SQL Server Agent 服務。
巨量數據叢集是否支援原生時間序列數據案例,例如IoT使用案例所產生的案例?
此時,巨量數據叢集中的 InfluxDB 僅用於儲存巨量數據叢集中收集的監視數據,而且不會公開為外部端點。
提供的 InfluxDB 是否可以作為客戶資料的時間序列資料庫?
此時,巨量數據叢集中的 InfluxDB 僅用於儲存巨量數據叢集中收集的監視數據,而且不會公開為外部端點。
如何將資料庫新增至可用性群組?
在巨量數據叢集中,HA 組態會建立名為 containedag 的可用性群組,其中包含跨複本複寫的系統資料庫。 CREATE DATABASE 或 RESTORE 工作流程所建立的資料庫會自動新增至自主 AG 並植入。 在 SQL Server 2019 (15.0) CU2 之前,您必須連線到巨量數據叢集中的實體實例、還原資料庫,並將其新增至 containedag。 如需詳細資訊,請參閱部署高可用性 SQL Server 巨量資料叢集。
我可以為在巨量數據叢集中執行的元件設定核心/記憶體資源嗎?
此時,您可以使用 sp_configure 來設定 SQL 實例的記憶體,就像在 SQL Server 中一樣。 針對核心,您可以使用 ALTER SERVER CONFIGURATION SET PROCESS AFFINITY。 根據預設,容器會看到主機上的所有CPU,目前我們沒有辦法使用 Kubernetes 來指定資源限制。 針對計算集區/數據集區/存放集區,可以使用 SQL Server 主要實例的 EXECUTE AT DATA_SOURCE 語句來完成設定。
當其中一個 Kubernetes 背景工作節點關閉或中斷時,會發生什麼事?
未親和化至個別背景工作節點的 Pod 將會移至 Kubernetes 叢集中有足夠資源的另一個節點。 否則,Pod(s) 將無法造成中斷。
如果我將節點新增至 Kubernetes 叢集,巨量數據叢集是否會自動重新平衡?
此動作只取決於 Kubernetes。 除了使用節點標籤的Pod放置之外,沒有其他機制可從巨量數據叢集中控制重新平衡 Kubernetes 資源。
當我從 Kubernetes 叢集移除節點時,巨量數據叢集資源會產生什麼後果?
此動作相當於正在關機的主機節點。 有一些機制可使用污點程式在 Kubernetes 中協調此作業,而且通常會遵循此機制進行升級或節點維護。 如需詳細資訊,請參閱 Taints和Tolerations的 Kubernetes 檔。
Hadoop 是否與巨量數據叢集配套處理數據的複寫?
是,復寫因數是 HDFS 的其中一個可用組態。 如需詳細資訊,請參閱 設定永續性磁碟區。
巨量數據叢集在功能和整合方面是否與 Synapse 重疊?
這取決於您的使用案例和需求。 除了內部部署Microsoft支援的Spark和HDFS之外,巨量數據叢集還提供完整的SQL Server介面區。 巨量數據叢集可讓 SQL Server 客戶能夠整合到分析/巨量數據中。 Azure Synapse 純粹是一種分析平臺,為客戶提供雲端受控服務的第一級體驗,著重於相應放大分析。 Azure Synapse 並未將作業工作負載作為目標的一部分。 巨量數據叢集的目標是在資料庫分析案例中提供,更接近作存放區。
SQL Server 是否使用 HDFS 作為 SQL Server 巨量數據叢集中的記憶體?
SQL Server 實例的資料庫檔案不會儲存在 HDFS 中,不過,SQL Server 可以使用外部數據表介面來查詢 HDFS。
將數據儲存在每個數據集區的分散式數據表中有哪些可用的散發選項?
ROUND_ROBIN和 REPLICATED。 ROUND_ROBIN是預設值。 哈希無法使用。
巨量數據叢集是否包含Spark Thrift 伺服器? 如果是,ODBC 端點是否會公開以連線到Hive中繼存放區數據表?
我們目前會透過 Thrift 通訊協定公開 Hive 中繼存放區 (HMS)。 我們記錄通訊協定,但目前尚未開啟 ODBC 端點。 您可以透過Hive中繼存放區 HTTP 通訊協定存取它,如需詳細資訊,請參閱 Hive 中繼存放區 HTTP 通訊協定。
數據載入
是否可以將數據從 SnowFlake 擷取到巨量數據叢集?
Linux 上的 SQL Server (也適用於巨量數據叢集中的 SQL Server 主要實例)不支援一般 ODBC 數據源,這可讓您安裝第三方 ODBC 驅動程式(SnowFlake、DB2、PostgreSQL 等),並查詢這些數據源。 此功能目前僅適用於 Windows 上的 SQL Server 2019 (15.0)。 在巨量數據叢集中,您可以使用 JDBC 透過 Spark 讀取資料,並使用 MSSQL Spark 連接器內嵌至 SQL Server。
是否可以使用自定義 ODBC 資料來源將資料內嵌至巨量數據叢集?
Linux 上的 SQL Server (也適用於巨量數據叢集中的 SQL Server 主要實例)不支援一般 ODBC 數據源,這可讓您安裝第三方 ODBC 驅動程式(SnowFlake、DB2、PostgreSQL 等)並加以查詢。
如何使用 PolyBase CTAS 將數據匯入相同的數據表,而不是每次執行 CTAS 時建立 NEW 數據表?
您可以使用 INSERT..SELECT 方法來避免每次都需要新的數據表。
將數據載入數據集區而不是直接以本機數據表的形式載入主要實例的優點/考慮為何?
如果您的 SQL Server 主要實例有足夠的資源來滿足分析工作負載,則一律是最快速的選項。 如果您想要將執行卸除至分散式查詢的其他 SQL 實例,數據集區會有所説明。 您也可以使用數據集區來平行擷取 Spark 執行程式的數據至不同的 SQL 實例,因此從 Hadoop 分散式文件系統 (HDFS) 產生的大型數據集載入效能通常比進入單一 SQL Server 實例更好。 不過,這也很難說,因為您仍然可以在 SQL Server 中有多個數據表,並視需要插入平行。 效能取決於許多因素,因此沒有單一指導方針或建議。
如何監視數據集區數據表中的數據分佈?
您可以使用 EXECUTE AT 來查詢 DMV,例如sys.dm_db_partition_stats來取得每個本機數據表中的數據。
curl 是上傳檔案至 HDFS 的唯一選項嗎?
否,您可以使用 azdata bdc hdfs cp。 如果您提供根目錄,命令會以遞歸方式複製整個樹狀結構。 只要變更來源/目標路徑的內容,您就可以使用此命令來複製/輸出。
如何將數據載入數據集區?
您可以使用 MSSQL Spark 連接器連結庫來協助進行 SQL 和資料集區擷取。 如需引導式逐步解說,請參閱 教學課程:使用Spark作業將數據內嵌至 SQL Server 數據集區。
如果我在 (Windows) 網路路徑上有很多數據,其中包含許多資料夾/子資料夾和文本檔,如何將其上傳至巨量數據叢集上的 HDFS?
嘗試 提供 azdata bdc hdfs cp 。 如果您提供根目錄,命令會以遞歸方式複製整個樹狀結構。 只要變更來源/目標路徑的內容,您就可以使用此命令來複製/輸出。
是否可以增加已部署叢集上的存放集區大小?
目前沒有 azdata 介面可執行此作業。 您可以選擇手動調整所需的 PVC 大小。 重設大小是一項複雜的作業,請參閱 Kubernetes 檔中的永續性磁碟區。
數據虛擬化
何時應該使用連結的伺服器與PolyBase?
請參閱這裡的主要差異和使用案例: PolyBase 常見問題。
支持的數據虛擬化來源為何?
巨量數據叢集支援來自 ODBC 來源 的數據虛擬化 – SQL Server、Oracle、MongoDB、Teradata 等。它也支援將遠端存放區分層,例如 Azure Data Lake Store Gen2 和 S3 相容的記憶體,以及 AWS S3A 和 Azure Blob 檔案系統(ABFS)。
我可以使用PolyBase將儲存在 Azure SQL 資料庫中的數據虛擬化嗎?
是,您可以使用巨量數據叢集中的 PolyBase 來存取 Azure SQL Database 中的數據。
為什麼 CREATE TABLE 語句包含關鍵詞 EXTERNAL? EXTERNAL 與標準 CREATE TABLE 有何不同?
一般而言,外部關鍵詞表示數據不在 SQL Server 實例中。 例如,您可以在 HDFS 目錄頂端定義存放集區資料表。 數據會儲存在 HDFS 檔案中,而不是儲存在資料庫檔案中,但外部數據表會提供介面,讓您將 HDFS 檔案查詢為關係型數據表,就好像在資料庫中一樣。
存取外部數據的概念稱為數據虛擬化,如需詳細資訊,請參閱 使用 PolyBase 進行數據虛擬化。 如需在 HDFS 中從 CSV 檔案虛擬化數據的教學課程,請參閱 [從存放集區 巨量數據叢集虛擬化 CSV 數據。
使用在 SQL Server 巨量數據叢集與 SQL Server 內執行的 SQL Server 進行的數據虛擬化有何差異?
如需比較,請參閱 巨量數據叢集中的 PolyBase 與獨立實例中的 PolyBase。
如何輕鬆地告知外部數據表指向數據集區與存放集區?
您可以藉由查看數據源位置前置詞來判斷外部數據表的類型,例如,sqlserver://、oracle://、sqlhdfs:// sqldatapool://。
部署
我的巨量數據叢集部署失敗。 如何查看發生錯誤的原因?
請參閱 使用 Azure Data Studio 筆記本管理 SQL Server 巨量數據叢集。 另請參閱 針對 Kubernetes 進行疑難解答中的疑難解答主題。
巨量數據叢集設定中可以設定的所有專案是否有明確的清單?
您可以在部署時間完成的所有自訂項目記載於設定 叢集資源和服務的部署設定中。 如需Spark,請參閱 在巨量數據叢集中設定Apache Spark和Apache Hadoop。
我們可以將 SQL Server Analysis Services 與 SQL Server 巨量數據叢集一起部署嗎?
否。 具體而言,Linux 上的 SQL Server 不支援 SQL Server Analysis Services (SSAS),因此您必須在 Windows 伺服器上安裝 SQL Server 實例,才能執行 SSAS。
巨量數據叢集是否支援在 EKS 或 GKS 中部署?
巨量數據叢集可以根據 1.13 版和更新版本,在任何 Kubernetes 堆疊上執行。 不過,我們尚未在 EKS 或 GKS 上執行巨量數據叢集的特定驗證。
什麼是在巨量數據叢集中執行的 HDFS 和 Spark 版本?
Spark 為 2.4,HDFS 為 3.2.1。 如需巨量數據叢集中所含開放原始碼軟體的完整詳細數據,請參閱 開放原始碼軟體參考。
如何在Spark中安裝連結庫和套件?
您可以使用範例筆記本中的步驟在作業提交時新增套件, 以在Spark中安裝套件。
我需要使用 SQL Server 2019 來使用 R 和 Python for SQL Server 巨量數據叢集嗎?
機器學習服務 (ML) 服務 (R 和 Python) 從 SQL Server 2017 開始提供。 ML 服務也適用於 SQL Server 巨量數據叢集。 如需詳細資訊,請參閱 什麼是 SQL Server 機器學習服務與 Python 和 R?。
授權
SQL Server 授權如何適用於 SQL Server 巨量數據叢集?
請參閱更詳細的授權指南, 下載 PDF。
如需摘要,請觀看 SQL Server 授權影片:巨量數據叢集 |公開的數據。
安全
巨量數據叢集是否支援Microsoft Entra ID(先前稱為 Azure Active Directory](/entra/fundamentals/new-name)?
目前不是。
我們可以使用整合式驗證連線到巨量數據叢集主機嗎?
是,您可以使用整合式驗證來連線到各種巨量數據叢集服務(使用 Active Directory)。 如需詳細資訊,請參閱 在 Active Directory 模式中部署 SQL Server 巨量數據叢集。 另請參閱 巨量數據叢集的安全性概念。
如何為巨量數據叢集中的各種服務新增使用者?
在基本身份驗證模式(使用者名稱/密碼)中,不支援為控制器或 Knox 閘道/HDFS 端點新增多個使用者。 這些端點唯一支援的使用者是root。 針對 SQL Server,您可以使用 Transact-SQL 來新增使用者,就像任何其他 SQL Server 實例一樣。 如果您為其端點部署具有 AD 驗證的巨量數據叢集,則支援多個使用者。 如需如何在部署時間設定AD群組的詳細資訊,請參閱這裡。 如需詳細資訊,請參閱 在 Active Directory 模式中部署 SQL Server 巨量數據叢集。
若要讓巨量數據叢集提取最新的容器映像,我是否有可限制的輸出IP範圍?
您可以檢閱 Azure IP 範圍和服務標籤 – 公用雲端中各種服務所使用的 IP 位址。 請注意,這些IP位址會定期輪替。
為了讓控制器服務從 Microsoft Container Registry (MCR) 提取容器映射,您必須授與 MicrosoftContainerRegistry 區段中所指定 IP 位址的存取權。 另一個選項是設定私人 Azure Container Registry,並將巨量數據叢集設定為從該處提取。 在此情況下,您必須公開 AzureContainerRegistry 區段中指定的 IP 位址。 執行 SQL Server 巨量數據叢集的離線部署中會提供如何執行此動作和腳本的指示。
我可以在空置環境中部署巨量數據叢集嗎?
是,如需詳細資訊,請參閱 執行 SQL Server 巨量數據叢集的離線部署。
功能「Azure 記憶體加密」預設也適用於 AKS 型巨量資料叢集?
這取決於 Azure Kubernetes Service (AKS) 中的動態記憶體布建工具組態。 如需詳細資訊,請參閱這裡: Azure Kubernetes Service (AKS) 中記憶體和備份的最佳做法。
我可以在巨量數據叢集中輪替 SQL Server 和 HDFS 加密的密鑰嗎?
是的。 如需詳細資訊,請參閱 巨量數據叢集中的主要版本。
我可以輪替自動產生的 Active Directory 對象的密碼嗎?
是,您可以使用 SQL Server 巨量數據叢集 CU13 中引進的新功能,輕鬆地輪替 自動產生的 Active Directory 對象 密碼。 如需詳細資訊,請參閱 AD 密碼輪替。
支援
Spark 和 HDFS 是否部署在 Microsoft 支援的 SQL Server 巨量數據叢集中?
是,Microsoft支援巨量數據叢集中隨附的所有元件。
SparkML 和 SQL Server ML 服務的支援模型為何?
SQL Server ML Services 支持原則與 SQL Server 的支持原則相同,不同之處在於每個主要版本都隨附新的運行時間版本。 SparkML 連結庫本身是開放原始碼軟體(OSS)。 我們會在巨量數據叢集中封裝許多 OSS 元件,Microsoft支援此功能。
適用於 SQL Server 巨量數據叢集的 Red Hat Enterprise Linux 8 (RHEL8) 支持平臺嗎?
目前不是。 如需 測試的組態,請參閱這裡。
工具
Azure Data Studio 中的筆記本基本上是 Jupyter 筆記本嗎?
是,它只是在 Azure Data Studio 中呈現的相同 Jupyter 核心。
'azdata' 工具是否開放原始碼?
否, azdata 目前不是開放原始碼。
訓練資源
有哪些巨量數據叢集訓練選項可供使用?
以下是一些您可以使用的資源:
研討會:Kubernetes - 從裸機到 SQL Server 巨量數據叢集
工作坊:SQL Server 巨量數據叢集 - 架構
教學課程:準備 Azure Kubernetes Service (AKS) 的應用程式
(PDF)案例研究:MS SQL Server 2019 巨量數據叢集中在 Apache Spark 上執行的 SQL 工作負載