1. 程式人生 > >SQL Server 2019 深度解讀:微軟資料平臺的野望

SQL Server 2019 深度解讀:微軟資料平臺的野望

本文為筆者在InfoQ首發的原創文章,主要利用週末時間陸續寫成,也算近期用心之作。現轉載回自己的公眾號,請大家多多指教。

11 月 4 日,微軟正式釋出了其新一代資料庫產品 SQL Server 2019,帶來了大資料叢集、資料虛擬化等重磅特性。本次釋出距離上一個大版本 SQL Server 2017 不過短短兩年時間,這樣的迭代速度對於高度複雜的資料庫系統而言頗為驚人。兩年前 InfoQ 曾刊登長文《SQL Server 2017 正式釋出,微軟老牌資料庫如何繼往開來?》,此次我們再度與該文作者合作,為大家深度解讀 SQL Server 2019 的進展與特色。

21 世紀以來,資料平臺的戰場上烽火連天、精彩紛呈。所謂江山代有才人出,以 MongoDB、Redis、Neo4j 等為代表的 NoSQL 資料庫和 Hive、Impala、Presto 等 Hadoop 體系大資料解決方案風頭一時無兩。在這些年輕後輩們的衝擊之下,關係資料庫作為資料架構的中堅力量,不但沒有節節敗退,近年反倒有王者歸來、愈戰愈勇之勢。在如今各類關鍵系統的設計和架構中,關係型資料庫仍然以穩定的表現和豐富的特性佔據著核心地位。

SQL Server是關係資料庫中的傑出代表,是與 Oracle、DB2 齊名的企業級商用資料庫“三巨頭”之一。長達數十年的發展和磨礪,已讓它非常成熟穩定;而跟隨時代發展不斷地融合技術新趨勢,又使它非常全面。尤其上一個版本 SQL Server 2017 更是將此款傳奇資料庫帶入了廣闊的 Linux 世界,進一步拓展了它的潛在客戶群體和使用場景。

我們大可先簡單回顧 SQL Server 琳琅滿目的豐富特性。在兩年前的文章中我們提到,SQL Server 已經集傳統行儲存、可更新的列儲存、記憶體表、圖資料庫、機器學習等十八般武藝於一身。這其中許多先進的特性,有些是開源資料庫仍在苦苦追趕的領域,或是無法在同一個資料庫中進行完美的整合。這正是商業資料庫的價值所在:以高穩定性、高效能與高整合度贏得青睞,在幫助客戶支撐解決關鍵業務問題的同時,亦能簡化技術架構、減輕維護負擔。

僅僅兩年的時間,微軟就在上一代的基礎上發展構建出了全新的 SQL Server 2019,這樣的迭代速度對於高度複雜的資料庫系統而言頗為驚人。快節奏釋出固然和如今業界普遍激進的版本策略有關,但大家也一定好奇,一個已經高度成熟的商業資料庫系統,在這樣短的時間裡究竟能取得怎樣的進步?又在哪些方面針對變幻莫測的市場作出了自己的迴應呢?本文將與大家一同探索。

結合 SQL Server 2019 的新特性,我們接下來分別從核心引擎增強、資料虛擬化以及此版本最大亮點 SQL Server 大資料叢集三個方面來進行分析和探討。

核心引擎增強

我們首先從核心引擎部分說起。HTAP (Hybrid transaction/analytical processing) 混合負載能力是當今資料庫世界的趨勢,SQL Server 在這方面是行業引領者之一,之前版本已通過在單一引擎中完美整合行儲存和列儲存實現了對 OLTP 和 OLAP 工作負載的同時支撐。使用者不但可以同時查詢和連線行存和列存表,甚至可以為一個行儲存表新增非聚集的列儲存索引,使得單表能夠同時較好地支援 OLTP 和 OLAP 兩種工作模式和查詢場景。

SQL Server 2019 中繼續強化了對於混合負載能力的支援,通過潤物細無聲式的改進讓相關引擎進一步成熟,也使得日常使用更為便捷。例如在列儲存索引方面,現已允許線上地建立或重新構建 (REBUILD) 聚集列儲存索引——這將大大方便生產環境中大型列儲存表的維護和使用,既能節省儲存空間,又能提高後續查詢效能。在筆者接觸的生產環境中就常有列儲存表由於部分行的更新導致碎片問題,但為了保障線上業務的連續性,一直只能使用相對輕量的 REORGANIZE 命令進行簡單的維護。該問題有望在資料庫升級後徹底解決。

上一代 SQL Server 2017 中引入的圖資料引擎在 SQL Server 2019 中也得到了相當幅度的增強。其改進既包括在儲存層面支援圖資料表和索引使用多 filegroup 進行分割槽,還新增了極為重要的任意長度模式 (Arbitrary Length Pattern) 支援,使用者終於可以表達節點間任意次數的跳躍連通關係了。我們來看一個針對人物關係圖的官方查詢樣例:

SELECT PersonName, Friends
FROM (	
	SELECT
		Person1.name AS PersonName, 
		STRING_AGG(Person2.name, '->') WITHIN GROUP (GRAPH PATH) AS Friends,
		LAST_VALUE(Person2.name) WITHIN GROUP (GRAPH PATH) AS LastNode
	FROM
		Person AS Person1,
		friendOf FOR PATH AS fo,
		Person FOR PATH AS Person2
	WHERE MATCH(SHORTEST_PATH(Person1(-(fo)->Person2)+))
	AND Person1.name = 'Jacob'
) AS JacobReach
WHERE JacobReach.LastNode = 'Alice'

容易理解的是,該查詢將能夠幫助判斷 Jacob 與 Alice 兩人是否連通,並給出他們之間的最短關係路徑,而這條路徑的長度是不確定的。T-SQL 語法上的關鍵點在於 MATCH 子句:其中使用了一個 SHORTEST_PATH 方法來尋找計算圖中兩個給定節點間的最短距離。需注意該方法的輸入引數支援類似正則表示式語法的不定長模式,通過一個 + 號巧妙地表達了通過 friendOf 關係多次連續尋路,被加號括起的 -(fo)->Person2 即為可多次重複的部分。

上述特性是圖資料庫應用最常見的高階查詢場景之一,數學上被稱為傳遞閉包 (transitive closure)。該特性的加入意味著 SQL Server 2019 在圖查詢能力方面終於登堂入室,開始逐漸具備與專用圖資料庫競爭的實力。

商用資料庫一向對於硬體領域發展較為關注,不斷通過最新的硬體最大化效能潛力。永續性記憶體 (Persistent Memory, 常縮寫為 PMEM) 以其遠優於 SSD 硬碟的 IO 能力,成為了當下伺服器端硬體的熱點之一,英特爾等廠商紛紛大力規劃發展如 Optane DC 這樣的企業級永續性記憶體硬體產品。為此,SQL Server 2019 不失時機地推出了混合緩衝池 (Hybrid Buffer Pool) 特性,可讓永續性記憶體作為間於 DRAM 記憶體和 SSD 硬碟的儲存層,在效能攸關的頁面緩衝池上發揮顯著的加速作用。使用者選擇開啟此特性後,頁面緩衝池可擴充套件到 PMEM 裝置上的儲存空間,SQL Server 則直接通過記憶體對映 IO 訪問位於 PMEM 裝置上的資料頁。在許多情況下這樣可避免資料頁頻繁地從傳統磁碟拷貝到 DRAM,進行頁訪問時也能夠繞過作業系統的儲存協議棧開銷,從而取得巨大的效能提升。

永續性記憶體與記憶體對映訪問(來自微軟官方文件)

值得一提的是,甲骨文將於明年釋出的全新一代 Oracle 20c,同樣會提供對於永續性記憶體的支援——在這一點上,可謂與 SQL Server 英雄所見略同。

我們再來看程式語言整合方面。以往擴充套件 SQL Server 功能是 C#/.NET 的專利,例如使用者可以通過 SQL Server 的 CLR 整合呼叫.NET 編寫的 UDF。隨著微軟近年來的開放策略持續推進,更多語言進入了 SQL Server 的體系。兩年前我們曾介紹 SQL Server 2017 中集成了 Python/R 的環境以方便進行機器學習方面工作,而在 SQL Server 2019 中此次 Java 則成為了主要的整合和支援物件。通過全新的語言擴充套件體系 (SQL Server Language Extensions) 可使得 Java 類與方法直接在 SQL Server 伺服器上本地執行。使用者只需要實現微軟 Java 擴充套件 SDK (Microsoft Extensibility SDK for Java) 中的抽象類 AbstractSqlServerExtensionExecutor 即可讓自己封裝的 Java 程式碼通過 sp_execute_external_script 儲存過程在資料庫 T-SQL 上下文中呼叫執行。

一個與 Java 支援相關的話題是,由於 Oracle 對於 Java 的版權控制和使用條款不斷收緊,為避免 SQL Server 中內嵌 Oracle Java 環境帶來不必要的限制和風險,微軟近期與 Java 開源貢獻者和發行商 Azul Systems 達成了一系列合作,使用 Azul Zulu JRE/JDK(基於 OpenJDK)作為 Azure 雲和 SQL Server 上 Java 的預設選項。這樣 Azure 和 SQL Server 的使用者就可獲得和使用一款免費且受支援的 Java 執行環境,該環境能夠提供安全更新和 Bug 修復,免除了後顧之憂。我們預計類似的做法會逐步成為各大廠的必然選擇。這個來自 Azul Systems 的 Java 環境不但有助於上述 SQL Server 的 Java 擴充套件功能,更會為接下來將介紹的 PolyBase 功能和 SQL Server 大資料叢集起到至關重要的支撐作用。

上面涉及的各個新功能,只是 SQL Server 2019 引擎新能力的一部分。事實上新版本還有許多可圈可點的改進,如 APPROX_COUNT_DISTINCT 近似聚合函式、TempDB 元資料的記憶體化 (Memory-Optimized TempDB Metadata)、UTF-8 字元編碼支援、針對行儲存的批處理模式 (batch mode on rowstore) 支援以及行模式下的記憶體分配反饋 (row mode memory grant feedback) 等。這些特性分佈於儲存執行引擎的各個環節,進一步提升了 SQL Server 的能力和深度。

資料虛擬化

前面提到,支援多模型多正規化已經成為商業資料庫追求的重要目標之一,以求確立和維護在企業整體資料架構中的核心地位。但在實際情況下,異構資料來源總會客觀存在,所以從另一個思路上來說,如何加強並便利與異構資料來源之間的互聯互通,也逐漸成為了現代資料庫產品中的重要考量和評定標準。

資料互聯互通,最容易想到的就是使用類似 SSIS 和 Azure Data Factory 這樣的 ETL 工具來進行定時的資料傳輸。這固然是行之有效的方法,但存在資料時效性和資料重複等侷限。如今相較建立 ETL 通道更為先進的一種理念,就是資料虛擬化。所謂資料虛擬化,顧名思義就是不論資料以具體何種格式存放何處,都能以統一的抽象進行管理和訪問。技術上來說,以資料庫為核心的資料虛擬化體系主要以宣告式的外部表來指向和定義底層資料。

在 SQL Server 2019 版本中,微軟將資料虛擬化作為產品核心概念和主要建設目標提出,並在功能層面通過內建的 PolyBase 技術進行了關鍵支撐和加強。PolyBase 其實並非一個新面孔,它最早出現於 SQL Server 2012 Parallel Data Warehouse 中,服務於這個軟硬一體化的分散式 MPP 資料庫版本。PolyBase 元件在功能上賦予了資料庫層面定義指向 Hadoop/HDFS 資料的外部表的能力,成為幫助打通關係資料庫與 Hadoop 大資料生態系統的重要橋樑。在 SQL Server 2016 中 PolyBase 則真正變得成熟並且廣為人知,正式出現在了標準 SQL Server 中,大大地拓展了受眾。

Polybase 的外聯能力在 SQL Server 2019 版本中進一步得到了強化,除原先支援的 Hadoop 和 Azure Blob Storage 外,新版本額外添加了 SQL Server、Oracle、Teradata、MongoDB 和 ODBC 的支援。如果說 PolyBase 之前只是不起眼的附屬功能,在強調資料虛擬化的 SQL Server 2019 中已是位居聚光燈下的核心能力。

資料虛擬化能力(來自微軟官方文件)

不妨來看一個在 SQL Server 2019 中使用 PolyBase 配置遠端 MongoDB 資料來源的簡單例子,以此來理解資料虛擬化的落地形態。

CREATE DATABASE SCOPED CREDENTIAL MongoCredential 
	WITH IDENTITY = 'username', SECRET = 'password';
CREATE EXTERNAL DATA SOURCE MongoDBSource
	WITH (	
		LOCATION = 'mongodb://<server>[:<port>]',
		PUSHDOWN = ON,
		CREDENTIAL = MongoCredential 
	);
CREATE EXTERNAL TABLE MyMongoCollection(
	[_id] NVARCHAR(24) NOT NULL,  
	[column1] NVARCHAR(MAX) NOT NULL,
	[column2] INT NOT NULL
	-- ..., other columns to be mapped
)
	WITH (
		LOCATION='dbname.collectionname',
		DATA_SOURCE= MongoDBSource
	);

可以看到,通過 T-SQL 對憑證 (credential)、資料來源 (data source)、外部表 (external table) 這三個核心配置進行定義,就可以輕鬆地將 MongoDB 中的集合與欄位對映到 SQL Server 中來,後續即可對虛擬的外部表進行查詢。PolyBase 甚至還支援 MongoDB 中的物件、陣列等巢狀結構,允許在外部表定義時將複雜欄位打平。另外,雖然此處所舉的例子是針對 MongoDB,若需連線其他型別資料來源,配置的步驟也大致類似,只是相關引數的含義和形式有所不同。

值得注意的是,PolyBase 加持下的外部表使用起來與一般資料表無異,能夠與其他表進行 join 等操作,這大大方便了異構資料來源之間的整合,許多情況下能夠免除資料搬運的麻煩。當然,對於一些出於效能原因不便直接查詢的場景,也可用簡單的 SQL 語句將外部表資料方便地同步到 SQL Server 內部。

在技術實現層面,PolyBase 由於脫胎於 MPP 架構場景,所以其實具備很好的並行擴充套件能力——當遠端資料體量巨大時這一特性殊為重要,能夠極大地加速查詢的執行。使用者可以設立多個 SQL Server 例項(分為頭節點和計算節點)並編組為 PolyBase Scale-out Group 來協同工作,對外部大資料進行並行讀取和處理。從這個層面來看,PolyBase 模組已使 SQL Server 具備了分散式分析型資料庫的一些典型特徵。

PolyBase Scale-out Group 架構(來自微軟官方文件)

PolyBase 的另一個特點,是具備一定的查詢下推 (pushdown) 能力,在遠端能夠支援的情況下,查詢處理器會將符合條件的謂詞傳送到資料來源端進行就近處理,既提高查詢效能同時也減輕網路 IO 的負擔。例如,在面向 Hadoop 的讀取場景下,有時 PolyBase 會根據統計資訊選擇使用 MapReduce 來讀取過濾原始檔案,最終只需傳回部分結果資料而非全量資料。

綜上所述,資料虛擬化的理念和 PolyBase 技術的增強,有望幫助新一代 SQL Server 成為資料架構的中心。通過捏合和整合多種異構資料來源,SQL Server 2019 可有效降低企業架構複雜性,還能在資料冷熱分層、統一資料湖構建等應用場景中大顯身手。

SQL Server 大資料叢集

SQL Server 2019 最值得一提的重磅特性,恐怕就要數 SQL Server 大資料叢集了(SQL Serve Big Data Cluster)。憑藉創造性地將 Hadoop 和 Spark 等開源大資料技術元件直接納入 SQL Server 並在 Kubernetes 體系下無縫整合的大膽設計,SQL Server 大資料叢集在去年一經宣佈並開始有限預覽後,即引起了廣泛關注。因為大家都非常好奇:大資料、Hadoop、Spark、容器化、雲原生這些炙手可熱的技術熱詞將如何與一個傳統商業資料庫發生化學反應呢?

SQL Server 大資料叢集本質上既是 SQL Server 2019 的一個新特性,也是一種新的產品形態和部署方式。它具有以下幾個重要特點:(1) 將 SQL Server 以多例項形態進行部署和聯動,實現資料的分散式儲存、處理和計算 (2) 將 SQL Server 完全容器化並以 Kubernetes 為基礎架構實現底層計算資源的編排和管理 (3) 在自有分散式儲存基礎上額外內建提供了標準 HDFS 分散式檔案系統 (4) 在計算層面額外提供了標準 Spark 作為分散式計算引擎。其架構概覽圖如下所示:

SQL Server 大資料叢集架構(來自微軟官方文件)

可以看到,SQL Server 大資料叢集代表了微軟資料平臺最新的架構思想,從單純的與外部互聯互通,走向了與開源平臺技術的全面融合;從技術對接與相容,走向了你中有我、我中有你。這不能不說是一個大膽的嘗試,也是一個令人拍案叫絕的產品思路。它的好處顯而易見:從企業客戶角度來說 all-in-one 的設計大幅簡化了架構,使用者可基於此建設自己的一站式大資料平臺,開源與商業技術兩者兼得;從微軟角度而言,確保了開源工作負載在 SQL Server 叢集和體系內順利執行,類似一個商業 Hadoop 發行版本,無疑有利於其在開源時代繼續獲得商業上的成功。

如果想體驗 SQL Server 2019,最簡便的方法是先建立一個 Azure Kubernetes Service(AKS) 叢集(當然也支援其他雲或本地 K8s 叢集),然後藉助 azdata 命令列工具即可一鍵將 SQL Server 大資料叢集部署至 Kubernetes。筆者進行了相關的動手實驗和架構觀察,發現 SQL Server 大資料叢集在技術實現上可謂頗具看點,列舉部分如下:

  • 控制、計算、儲存等各節點實現了完全容器化,部署時可自動從微軟容器登錄檔 (Microsoft Container Registry) 下載相應映象並執行。
  • 大資料叢集的 master 例項支援多節點部署和高可用,通過結合 K8s 提供的底層故障檢測轉移能力和 SQL Server 中的可用性組 (Availability Group) 共同實現。
  • 分散式儲存底層由 VM 叢集掛載的磁碟組合構成,向上提供了兩種不同選擇 Data Pool 和 Storage Pool,分別對應私有和開源技術。使用時通過定義外部表指向 sqldatapool 或 sqlhdfs 協議下的地址進行掛載和訪問。兩種不同的儲存可以結合使用,互相配合。
  • Data Pool 提供了 SQL Server 自有的分散式儲存能力,一般配合 ROUND-ROBIN 資料分佈策略,可提供較高的資料載入效能。實際場景中可作為外部資料接入時的落地選擇,也可作為大查詢結果集的持久化儲存。
  • Storage Pool 對應的 Pod 高度集成了 Spark、HDFS DataNode 和 SQL Server 例項,對外提供了一個完整的 HDFS 檔案系統,可完美相容使用 Parquet 等開源體系的列儲存格式,還能通過 HDFS tiering 功能掛載使用 Amazon S3、Azure Data Lake Storage Gen2 等雲端儲存服務;查詢時 SQL Server 能夠通過 NameNode 提供的資訊進行尊重 data locality 的本地高速讀取,還能夠在許多情況下支援謂詞下推 (predicate pushdown)。
  • 大資料叢集全面整合 Spark 執行環境意義重大,意味著可使用標準 Spark 技術棧讀寫 Storage Pool,與 SQL Server 就地共享同一份資料。經驗證此次釋出整合的 Spark 版本為 2.4,是最新的大版本。
  • 大資料叢集自動安裝包含了 Elasticsearch 和 Kibana 元件,幫助監控系統各環節的關鍵指標與健康狀態。
  • 工具支援方面可使用跨平臺的 Azure Data Studio 連線 SQL Server 大資料叢集,SQL Server 2019 專用外掛大大方便了自助查詢、叢集管理、外部表建立等工作。還可在 Azure Data Studio 中使用廣受歡迎的 Jupyter Notebook 連線到叢集,通過 SQL、Python/PySpark 或 Scala/Spark 指令碼進行探索式資料分析和機器學習模型訓練。

限於篇幅,更多內容此處不再展開。若大家對其中一些關鍵細節和動手實操感興趣,可關注筆者微信公眾號“雲間拾遺”的後續文章瞭解更多資訊。

在定價方面,雖然 SQL Server 大資料叢集仍屬商用資料庫範疇,且佔用 CPU 核心數較多,但使用者不必過於擔心在授權費用方面的高額支出。SQL Server 團隊貼心地設計了成本友好的定價策略,主要體現為除 master 例項需要 Enterprise 或 Standard 版本授權外,其他佔大多數的 computer/data/storage 節點只需要按照專門設計且便宜許多的“Big Data Node”的方式進行計費,這會大大減輕使用者在選用 SQL Server 大資料集群后的成本負擔。

回過頭來看,SQL Server 大資料叢集雖然是全新的能力,但也許微軟其實早早就開始了相關佈局。因為容易發現 SQL Server 之前版本的一些成果,恰恰是此次大資料叢集得以橫空出世的技術前提。比如前面提到的歷經多年積累的 PolyBase 技術,正是 SQL Server 得以和大資料技術棧無縫互動的關鍵;又如 SQL Server 2017 開始引入的 Linux 版本,則是容器化封裝得以順利達成的重要基礎條件。

微軟近年來全面擁抱開源之後,正在逐漸獲得回報。擁抱開源既能夠拉近與社群和使用者的距離,也為最新的技術產品發展贏得了更大的設計靈活度。此次徹底容器化、使用 Kubernetes 進行編排並整合 Spark、HDFS 等開源元件的 SQL Server 大資料叢集,無疑也是這種“改革開放”和“拿來主義”策略的成功典範。

當然,任何事物都有其兩面性。對於 SQL Server 大資料叢集這樣的一體化架構模式,也有個別業界人士持有不同觀點,認為過度整合封裝未必是雲時代的架構演化方向,他們更傾向於計算儲存分離的架構,讓每個資料元件專注做好一件事情。這就是一個仁者見仁智者見智的問題了。也許 SQL Server 大資料叢集的設計初衷更側重基於本地部署的大型客戶,同時吸引對可遷移性和跨雲適配十分敏感的企業解決方案提供商——對這些場景而言,SQL Server 大資料叢集不失為極具競爭力的選擇。相信市場會給予我們最終的答案。

總結

世界即將跨入新的十年。在 2019 年末釋出的 SQL Server 2019,展現了微軟在新時代對下一個十年的展望和雄心。尤其是 SQL Server 大資料叢集的推出,相信將促成一批全新大資料平臺的落地,也會啟發業界思考未來大資料的架構模式,以及商業技術與開源世界和諧並存之道。

值得一提的是,SQL Server 2019 與 SQL Server 2017 一樣,擁有面向 Linux 的版本,並與 Linux 廠商一起提供官方的支援服務。事實上 SQL Server 對 Linux 的特性覆蓋也一直在默默地持續改進,2019 版本為 Linux 帶來了資料複製、Active Directory 整合、PolyBase on Linux 等重要特性。如果大家對於兩年前的首個 Linux 版本還持觀望態度的話,SQL Server 2019 對於 Linux 的相容性和功能集合已經完善了許多,是一個更好的 SQL Server for Linux,或許是時候可以“上車”了。

以云為先的微軟,除了雲原生化 SQL Server 2019 本身外,也必然會考慮將新一代版本的新能力逐漸同步到 Azure 雲的 PaaS 服務上。其實 Azure SQL Database 已經開始支援 SQL Server 2019 中如 APPROX_COUNT_DISTINCT 等部分新特性了,只需手動設定資料庫的相容性等級 (compatibility level) 為對應 2019 版本的 150 即可。再者如 PolyBase,之前在 Azure 上僅有 SQL Data Warehouse 提供了支援(主要用於訪問 Blob Storage),後續該特性很可能會在雲端得到相應的更新增強,也期待它拓展到 SQL Databases 或 SQL Managed Instance 等更多資料服務中。

最後,我們簡要地總結 SQL Server 2019 的發展策略如下:首先繼續夯實了原生支援多種資料架構正規化的多模核心,其次是不斷改進資料虛擬化技術 PolyBase 以強化外部聯接,最後通過擁抱和納入開源大資料技術體系實現整體融合。這是一個穩步發展、層層遞進的產品進化思路。不知作為使用者的你,是否已經心動?讓我們祝 SQL Server 2019 好運。

“雲間拾遺”專注於從使用者視角介紹雲端計算產品與技術,堅持以實操體驗為核心輸出內容,同時結合產品邏輯對應用場景進行深度解讀。歡迎掃描下方二維碼關注“雲間拾遺”微信公眾號。

相關推薦

SQL Server 2019 深度解讀微軟資料平臺

本文為筆者在InfoQ首發的原創文章,主要利用週末時間陸續寫成,也算近期用心之作。現轉載回自己的公眾號,請大家多多指教。 11 月 4 日,微軟正式釋出了其新一代資料庫產品 SQL Server 2019,帶來了大資料叢集、資料虛擬化等重磅特性。本次釋出距離上一個大版本 SQL Server 2017 不

[Spark周邊]--SQL Server 2019預覽結合了SQL Server和Apache Spark來建立統一的資料平臺

感謝原文作者:https://cloudblogs.microsoft.com/sqlserver/2018/09/24/sql-server-2019-preview-combines-sql-server-and-apache-spark-to-create-a-unified-data-pla

談談我的微軟特約稿SQL Server 2014 新特性IO資源調控》

一.本文所涉及的內容(Contents) 二.背景(Contexts)   寫這篇文章的目的是想記錄這次的撰寫文章的經歷,其實一篇技術文章來得並不容易,之前自己寫部落格的隨意性很強,排版可以根據自己喜好,但是一篇文章要被大家所接受,讓大家願意讀完其實是一件很難的事情,所以排版還是挺重要的,這裡我想提示

SQL Server 2019預覽結合了SQL Server和Apache Spark來建立統一的資料平臺

本文翻譯自: 今天在Ignite上,微軟宣佈推出SQL Server 2019。25年來,SQL Server幫助企業管理其關係資料的各個方面。在最近的版本中,SQL Server不僅通過統一圖形和關係資料來查詢關係資料,還通過R和Python模型培訓和評分將機器學習帶到資

深度學習】【物聯網】深度解讀深度學習在IoT大資料和流分析中的應用

作者|Natalie編輯|EmilyAI 前線導讀:在物聯網時代,大量的感知器每天都在收集併產生

SQL Server統計信息問題和解決方式

二次 就會 數據庫引擎 目的 獲得 差異 product primary tex 在網上看到一篇介紹使用統計信息出現的問題已經解決方式,感覺寫的很全面。在自己看的過程中順便做了翻譯。因為本人英文水平有限,可能中間有一些錯誤。假設有哪裏有問題歡迎大家批評指正。建議英文

SQL Server橫向擴展設計,實現與維護(2)- 分布式分區視圖

做的 img attach one 遠程 cnblogs ole out 不同的 為了使得朋友們對分布式分區視圖有個概念,也為了方便後面的內容展開,我們先看看下面一個圖: 講述分布式分區視圖之前,很有必要將之與我們常常熟悉的分區表和索引

SQL Server 2016新特性Temporal Table

clu let tween 事務 之間 small 激活 設置 版本 什麽是系統版本的Temporal Table 系統版本的Temporal Table是可以保存歷史修改數據並且可以簡單的指定時間分析的用戶表。 這個Temporal Table就是系統版本的Tempora

SQL Server索引內部結構SQL Server索引的階梯級別10

個數字 索引 avi 查詢 ica 關鍵字 比較 mage emp 作者David Durant,2012年1月20日 該系列 本文是“Stairway系列:SQL Server索引的階梯”的一部分 索引是數據庫設計的基礎,並告訴開發人員使用數據庫關於設計者的意圖。不幸的是

SQL Server 2016新特性DROP IF EXISTS

obj 宋體 fff article 特性 這一 ble family base 原文:SQL Server 2016新特性:DROP IF EXISTS ?? 在我們寫T-SQL要刪除某個對象(表、存儲過程等)時,一

SQL server 2008 安裝提示屬性不匹配

program mic http 屬性 file img png inf class 安裝SQL server 2008提示屬性不匹配 解決方案 確保C盤以及其子文件夾C:\Program Files\Microsoft SQL Server和C:\Program File

SQL Server Alwayson搭建一規劃

數據庫 SQL Server 規劃:3臺虛擬機:1臺作為域控(DC),另外2臺安裝SQL Server 序號 名稱 TCP/IPv4 備註 1 sqldc 192.168.0.100255.255.255.0192.168.0.254DNS:127.0.0.1 DC 2 sql01 192

SQL Server Alwayson搭建二域控配置

數據庫 SQL Server IP及配置 安裝AD及DNS 將服務器升級為域控服務器點擊 Promote this server to a domain controller,如下選擇 Add a new forest,Root domain name填寫sql.com(可自己定義:如abc

SQL Server Alwayson搭建三SQL服務器配置

數據庫 SQL Server 安裝.NET Framework 3.5/4.0 IP配置sql01sql02 安裝SQL Server 2014,選擇混合認證模式,設置sa密碼 服務器加域,成功後選擇重啟服務器 使用dcadmin登錄服務器,修改sqlserver服務帳號 關閉服務器防火墻至此,SQL

SQL Server Alwayson搭建四故障轉移集群配置

數據庫 SQL Server 確定仲裁模式配置故障轉移集群的時候,如果集群節點是奇數,那麽使用多數節點;如果集群節點是偶數,那麽使用多數節點和文件共享 (配置一個共享文件夾,各個節點都能訪問這個共享文件夾)因為是偶數節點(sql01和sql02),因此選擇多數節點和文件共享模式2.安裝故障轉移集群,s

SQL Server Alwayson搭建五Alwayson配置

數據庫 SQL Server 啟用Alwayson在SQL01和SQL02服務器上的Sql Server Configuration Manager中右鍵點擊SQL Server服務選擇Properties在AlwaysOn High Availability選項卡中可以看到Windows failo

ArcSDE for SQL Server建庫提示Case sensitive database is not supported

導語 今天有一個客戶諮詢,為什麼我的ArcGIS10.2 for SQL Server 建立企業級地理資料庫老是不成功,一直報Case sensitive database is not supported錯誤。 錯誤資訊 GP錯誤 Executing: Create

SQL Server On Linux(3)——SQL Server 2019 For Linux 下載並部署示例資料庫

  接上文SQL Server On Linux(2)——SQL Server 2019 For Linux安裝過程細節研究 正所謂工欲善其事必先利其器,讀者可能也跟作者一樣很迫切希望瞭解和嘗試SQL Server On Linux及SQL 2019的各種新特性,不過為了走得

SQL Server On Linux(2)——SQL Server 2019 For Linux安裝過程細節研究

  接上文SQL Server On Linux(1)——CentOS 7 安裝SQL Server2019 在安裝過程中,作者發現了一些資訊,這些資訊引起了作者的興趣,那麼下面作者把自己研究的結果分享出來,如果讀者對此有深入研究過,歡迎指正。 為什麼要研究這些東西?說白了就

SQL Server 2012中快速插入批量資料的示例及疑惑

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!