SQL Server 2019 新特性之 SQL Server大數據羣集 介紹(一)

SQL Server 2019 新特性之 SQL Server大數據羣集 介紹(一)

從開始SQL Server 2019 預覽,SQL Server 大數據羣集允許你部署的 Kubernetes 上運行的 SQL Server、 Spark 和 HDFS 容器的可縮放羣集。 並行運行這些組件,以使您能夠讀取、 寫入,並處理從 TRANSACT-SQL 或 Spark 的大數據、 使您輕鬆合併和分析大數據大容量高價值關係數據。

SQL Server 大數據羣集是有Linux 容器的羣集Kubernetes進行協調。

Kubernetes (k8s)概念

Kubernetes的名字來自希臘語,意思是“舵手” 或 “領航員”K8s是將8個字母“ubernete”替換爲“8”的縮寫。

Kubernetes 是開放源代碼容器業務流程協調程序,可以縮放容器部署,根據需求。 下表定義了一些重要的 Kubernetes 術語:

   
Cluster Kubernetes 羣集是一組計算機,稱爲節點。 一個節點控制羣集,並指定主節點;剩餘的節點是輔助角色節點。 Kubernetes 主機是負責分發在輔助角色之間的工作,並監視羣集的運行狀況。
Node 節點運行容器化應用程序。 它可以是物理機或虛擬機。 Kubernetes 羣集可以包含的物理機和虛擬機節點的組合。
Pod Pod 是 Kubernetes 的原子部署單位。 Pod 是一個或多個容器的邏輯組-和關聯的資源需要運行應用程序。 每個 pod 的節點; 上運行節點可以運行一個或多個 pod。 Kubernetes 主機會自動分配到羣集中節點的 pod。

 

在 SQL Server 大數據羣集中,Kubernetes 負責 SQL Server 大數據羣集; 的狀態Kubernetes 構建和配置羣集節點,將 pod 分配給節點,並監視羣集的運行狀況。

 

大數據羣集體系結構

 

在羣集中的節點分爲三個邏輯平面: 控制平面、 計算平面和數據平面。 每個平面羣集中具有不同的職責。 在 SQL Server 大數據羣集中的每個 Kubernetes 節點託管組件的至少一個平面的 pod。

 

 

控制平面

控制平面提供管理和安全的羣集。 它包含 Kubernetes 主機SQL Server 主實例,和其他羣集級別服務,例如 Hive 元存儲和 Spark 驅動程序。

計算平面

計算平面提供到羣集的計算資源。 它包含在 Linux pod 上運行 SQL Server 的節點。 計算平面中的 pod 分爲計算池特定處理任務。 計算池可以充當PolyBase橫向擴展組中通過不同數據源如作爲 HDFS、 Oracle、 MongoDB 或 Teradata 的分佈式查詢。

數據平面

數據平面用於數據暫留和緩存。 它包含的 SQL 數據池和存儲池。 SQL 數據池包含在 Linux 上運行 SQL Server 的一個或多個 pod。 它用於從 SQL 查詢或 Spark 作業引入數據。 SQL Server 大數據羣集的數據集市將保留在數據池。 存儲池包含的存儲池 pod 組成 Linux、 Spark 和 HDFS 上的 SQL Server。 在 SQL Server 大數據羣集中的所有存儲節點都是 HDFS 羣集的成員。

 

由於需要使用 Azure Kubernetes 服務 (AKS) 來創建SQL Server 2019 的大數據羣集。

AKS是容器的集羣,下面先解釋下容器是什麼

什麼是容器

容器是與系統其他部分隔離開的一系列進程。運行這些進程所需的所有文件都由另一個鏡像提供,這意味着從開發到測試再到生產的整個過程中,Linux 容器都具有可移植性和一致性。因而,相對於依賴重複傳統測試環境的開發渠道,容器的運行速度要快得多。

  • 更高效的利用系統資源

  • 更快速的啓動時間

  • 一致的運行環境

  • 持續交付和部署

  • 更輕鬆的遷移

  • 更輕鬆的維護和擴展

  • 對比傳統虛擬機總結

 

 

特性 容器 虛擬機
啓動 秒級 分鐘級
硬盤使用 一般爲 MB 一般爲 GB
性能 接近原生 弱於
系統支持量 單機支持上千個容器 一般幾十個

 

傳統的應用部署方式是通過插件或腳本來安裝應用。這樣做的缺點是應用的運行、配置、管理、所有生存週期將與當前操作系統綁定,這樣做並不利於應用的升級更新/回滾等操作,當然也可以通過創建虛機的方式來實現某些功能,但是虛擬機非常重,並不利於可移植性。

新的方式是通過部署容器方式實現,每個容器之間互相隔離,每個容器有自己的文件系統 ,容器之間進程不會相互影響,能區分計算資源。相對於虛擬機,容器能快速部署,由於容器與底層設施、機器文件系統解耦的,所以它能在不同雲、不同版本操作系統間進行遷移。

容器佔用資源少、部署快,每個應用可以被打包成一個容器鏡像,每個應用與容器間成一對一關係也使容器有更大優勢,使用容器可以在build或release 的階段,爲應用創建容器鏡像,因爲每個應用不需要與其餘的應用堆棧組合,也不依賴於生產環境基礎結構,這使得從研發到測試、生產能提供一致環境。類似地,容器比虛機輕量、更“透明”,這更便於監控和管理。最後,

容器優勢總結:

  • 快速創建/部署應用:與VM虛擬機相比,容器鏡像的創建更加容易。

  • 持續開發、集成和部署:提供可靠且頻繁的容器鏡像構建/部署,並使用快速和簡單的回滾(由於鏡像不可變性)。

  • 開發和運行相分離:在build或者release階段創建容器鏡像,使得應用和基礎設施解耦。

  • 開發,測試和生產環境一致性:在本地或外網(生產環境)運行的一致性。

  • 雲平臺或其他操作系統:可以在 Ubuntu、RHEL、 CoreOS、on-prem、Google Container Engine或其它任何環境中運行。

  • Loosely coupled,分佈式,彈性,微服務化:應用程序分爲更小的、獨立的部件,可以動態部署和管理。

  • 資源隔離

  • 資源利用:更高效

 

使用Kubernetes能做什麼?

可以在物理或虛擬機的Kubernetes集羣上運行容器化應用,Kubernetes能提供一個以“容器爲中心的基礎架構”,滿足在生產環境中運行應用的一些常見需求,如:

什麼是Azure Kubernetes 服務 (AKS)

Azure Kubernetes 服務 (AKS) 管理託管的 Kubernetes 環境,使用戶無需具備容器業務流程專業知識即可快速、輕鬆地部署和管理容器化的應用程序。 它還通過按需預配、升級和縮放資源,消除了正在進行的操作和維護的負擔,而無需使應用程序脫機。

 

下一集:在 Azure Kubernetes 服務 (AKS)部署SQL Server 大數據羣集

盡請期待!


作者簡介: Max Shen(阿特),爲了成爲數據專家而努力,萬一實現了呢!有多年的系統運維,數據庫運維經驗。近20年的IT從業經驗,在微軟有超過10年的工作經驗。對數據庫運維調優,排錯,有獨到能力。電話微信18628037379,[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章