|
SQL系統(tǒng)的主要優(yōu)勢和差異化功能 |
作者:佚名 來源:網(wǎng)絡 |
在這里,讓我們看看SQL系統(tǒng)的主要優(yōu)勢和差異化功能: * SQL可實現(xiàn)交互性。 SQL是一種聲明性查詢語言。用戶說出他們想要什么(例如,顯示過去五年三月份期間頂級客戶的地理位置),數(shù)據(jù)庫內(nèi)部就會構(gòu)件算法并提取請求的結(jié)果。相比之下,NoSQL編程創(chuàng)新MapReduce是一種程序性查詢技術。在用戶提出請求時,MapReduce要求用戶不僅說出自己想要什么,而且要求他們陳述如何產(chǎn)生答案。 這聽起來像一個無趣的技術差異,但這很關鍵,原因在于:首先,聲明性SQL查詢更容易通過圖形化工具以及點擊報告構(gòu)建器來構(gòu)建。這讓分析師、操作員、管理者和其他不具備軟件編程能力的員工進行數(shù)據(jù)庫查詢;其次,數(shù)據(jù)庫引擎可以利用內(nèi)部信息來選擇最有效的算法。改變數(shù)據(jù)庫的物理布局或數(shù)據(jù)庫,最佳算法仍然能夠計算出來。而在程序性系統(tǒng)中,編程人員需要重新訪問和重新編程算法,這是非常昂貴且容易出錯的過程。 市場理解這個關鍵區(qū)別。在2010年,谷歌宣布部署SQL來補充MapReduce,主要受內(nèi)部用戶需求所驅(qū)動。最近,F(xiàn)acebook發(fā)布了Presto(一種SQL部署)來查詢其PB級HDFS集群。根據(jù)Facebook表示:“隨著我們的倉庫增長到PB級,以及我們的需求變化,我們清楚地意識到,我們需要一個提供低延時查詢的互動系統(tǒng)。”此外,Cloudera也正在構(gòu)建Impala—另一個基于HDFS的SQL部署。 * SQL是標準化的。 雖然供應商有時候會添加自己的語言到SQL界面,但SQL的核心是標準化的,還有其他規(guī)格(例如ODBC和JDBC)提供廣泛可用的穩(wěn)定界面到SQL存儲。這帶來了一個管理和操作工具生態(tài)系統(tǒng),可以在SQL系統(tǒng)之上設計、監(jiān)控、檢查、探索和構(gòu)建應用程序。 SQL用戶和程序員可用跨多個后端系統(tǒng)重復使用其API和UI知識,減少了應用程序的開發(fā)時間。標準化還允許聲明性第三方提取、轉(zhuǎn)換、加載(ETL)工具,使企業(yè)可以在數(shù)據(jù)庫之間以及跨系統(tǒng)傳輸數(shù)據(jù)。 * SQL可擴展。 認為SQL必須犧牲以獲得可擴展性的看法,完全是錯誤的。如前所述,F(xiàn)acebook創(chuàng)建了一個SQL界面來查詢PB級數(shù)據(jù)。SQL能夠非常有效地運行極快的ACID傳輸。SQL對數(shù)據(jù)存儲和索引提供的抽象[注]化允許跨各種問題和數(shù)據(jù)集大小的一致使用,讓SQL可以跨集群復制數(shù)據(jù)存儲有效地運行。使用SQL作為界面獨立于構(gòu)建云、規(guī);騂A系統(tǒng),SQL中并沒有什么在阻止和限制容錯、高可用性和復制。事實上,所有現(xiàn)代SQL系統(tǒng)支持云友好型橫向可擴展性、復制和容錯性。 * SQL支持JSON。 幾年前,很多SQL系統(tǒng)增加了XML文檔支持,F(xiàn)在,隨著JSON成為一種流行的數(shù)據(jù)交換格式,SQL供應商也紛紛加入了JSON型的支持;诂F(xiàn)在靈活的編程過程和web基礎設施的正常運行時間要求,我們很需要結(jié)構(gòu)化數(shù)據(jù)類型的支持。Oracle 12c、PostgreSQL 9.2、VoltDB和其他支持JSON的數(shù)據(jù)庫,通常具有優(yōu)于“原生”JSON的性能。 SQL將繼續(xù)贏得市場份額,并會繼續(xù)看到新的投資和部署。NoSQL數(shù)據(jù)庫提供專有查詢語言或簡單的鍵值語義,而沒有更深層次的技術差異化,F(xiàn)代SQL系統(tǒng)提供可擴展性的同時,還支持更豐富的查詢語義,并有龐大的用戶安裝基礎,廣泛的生態(tài)系統(tǒng)整合和深度企業(yè)部署。..
|
|