亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL與NoSQL的區別

發布時間:2021-09-24 09:52:28 來源:億速云 閱讀:120 作者:iii 欄目:數據庫

本篇內容主要講解“SQL與NoSQL的區別”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“SQL與NoSQL的區別”吧!

一、專家簡介
VoltDB公司首席技術官Ryan Betts表示,SQL已經贏得了大型企業的廣泛部署,大數據是它可以支持的另一個領域。
Couchbase公司首席執行官Bob Wiederhold表示,NoSQL是可行的選擇,并且從很多方面來看,它是大數據的最佳選擇,特別是涉及到可擴展性時。
二、SQL經歷時間的考驗,并仍然在蓬勃發展
結構化查詢語言(SQL)是經過時間考驗的勝利者,它已經主宰了幾十年,目前大數據公司和組織(例如谷歌、Facebook、Cloudera和Apache)正在積極投資于SQL。
在成為主導技術(例如SQL)后,有時候我們很容易忘記其優越性。SQL的獨特優勢包括:
1. SQL能夠加強與數據的交互,并允許對單個數據庫設計提出問題。這是很關鍵的特征,因為無法交互的數據基本上是沒用的,并且,增強的交互性能夠帶來新的見解、新的問題和更有意義的未來交互。
2. SQL是標準化的,使用戶能夠跨系統運用他們的知識,并對第三方附件和工具提供支持。
3. SQL能夠擴展,并且是多功能和經過時間驗證的,這能夠解決從快寫為主導的傳輸到掃描密集型深入分析等問題。
4. SQL對數據呈現和存儲采用正交形式,一些SQL系統支持JSON和其他結構化對象格式,比NoSQL具有更好的性能和更多功能。
雖然NoSQL的出現帶來了一些影響,但SQL仍然主導著市場,并在大數據領域贏得了很多投資和廣泛部署。
NoSQL的說法很含糊,對于本次討論,我借用Rick Cattell對NoSQL的定義,即提供簡單操作(例如密鑰/數值存儲)或簡單記錄和索引,并專注于這些簡單操作的橫向可擴展性的系統。
很顯然,現在很多新的數據庫并不是都一樣,認識每種數據庫背后的原理以及潛在問題是成功的關鍵。NoSQL的主要特點使其更適合于特定的問題。例如,圖形數據庫更適合于數據通過關系組織的情況,而專門的文本搜索系統更適合于需要實時搜索的情況。
在這里,讓我們看看SQL系統的主要優勢和差異化功能:
* SQL可實現交互性。 SQL是一種聲明性查詢語言。用戶說出他們想要什么(例如,顯示過去五年三月份期間頂級客戶的地理位置),數據庫內部就會構件算法并提取請求的結果。相比之下,NoSQL編程創新MapReduce是一種程序性查詢技術。在用戶提出請求時,MapReduce要求用戶不僅說出自己想要什么,而且要求他們陳述如何產生答案。
這聽起來像一個無趣的技術差異,但這很關鍵,原因在于:首先,聲明性SQL查詢更容易通過圖形化工具以及點擊報告構建器來構建。這讓分析師、操作員、管理者和其他不具備軟件編程能力的員工進行數據庫查詢;其次,數據庫引擎可以利用內部信息來選擇最有效的算法。改變數據庫的物理布局或數據庫,最佳算法仍然能夠計算出來。而在程序性系統中,編程人員需要重新訪問和重新編程算法,這是非常昂貴且容易出錯的過程。
市場理解這個關鍵區別。在2010年,谷歌宣布部署SQL來補充MapReduce,主要受內部用戶需求所驅動。最近,Facebook發布了Presto(一種SQL部署)來查詢其PB級HDFS集群。根據Facebook表示:“隨著我們的倉庫增長到PB級,以及我們的需求變化,我們清楚地意識到,我們需要一個提供低延時查詢的互動系統。”此外,Cloudera也正在構建Impala—另一個基于HDFS的SQL部署。
* SQL是標準化的。 雖然供應商有時候會添加自己的語言到SQL界面,但SQL的核心是標準化的,還有其他規格(例如ODBC和JDBC)提供廣泛可用的穩定界面到SQL存儲。這帶來了一個管理和操作工具生態系統,可以在SQL系統之上設計、監控、檢查、探索和構建應用程序。
SQL用戶和程序員可用跨多個后端系統重復使用其API和UI知識,減少了應用程序的開發時間。標準化還允許聲明性第三方提取、轉換、加載(ETL)工具,使企業可以在數據庫之間以及跨系統傳輸數據。
* SQL可擴展。 認為SQL必須犧牲以獲得可擴展性的看法,完全是錯誤的。如前所述,Facebook創建了一個SQL界面來查詢PB級數據。SQL能夠非常有效地運行極快的ACID傳輸。SQL對數據存儲和索引提供的抽象[注]化允許跨各種問題和數據集大小的一致使用,讓SQL可以跨集群復制數據存儲有效地運行。使用SQL作為界面獨立于構建云、規模或HA系統,SQL中并沒有什么在阻止和限制容錯、高可用性和復制。事實上,所有現代SQL系統支持云友好型橫向可擴展性、復制和容錯性。
* SQL支持JSON。 幾年前,很多SQL系統增加了XML文檔支持。現在,隨著JSON成為一種流行的數據交換格式,SQL供應商也紛紛加入了JSON型的支持。基于現在靈活的編程過程和web基礎設施的正常運行時間要求,我們很需要結構化數據類型的支持。Oracle 12c、PostgreSQL 9.2、VoltDB和其他支持JSON的數據庫,通常具有優于“原生”JSON的性能。
SQL將繼續贏得市場份額,并會繼續看到新的投資和部署。NoSQL數據庫提供專有查詢語言或簡單的鍵值語義,而沒有更深層次的技術差異化。現代SQL系統提供可擴展性的同時,還支持更豐富的查詢語義,并有龐大的用戶安裝基礎,廣泛的生態系統整合和深度企業部署。
三、NoSQL更適合大數據應用程序
NoSQL越來越多地被認為是關系型數據庫的可行替代品,特別是對于大數據應用程序。此外,無模式數據模型通常更適合于現在捕捉和處理的數據種類和類型。
當我們談論NoSQL領域的大數據時,我們指的是從操作數據庫讀取和寫入。不要將操作數據庫與分析數據庫混淆,這通常會查看大量數據,并從這些數據獲取可視性。
雖然操作數據庫的大數據看起來不具有可分析性,但操作數據庫通常會存儲超大量用戶的大型數據集,這些用戶經常需要訪問數據來實時執行交易。這種數據庫的操作規模也解釋了NoSQL的關鍵特性,也就是為什么NoSQL是大數據應用程序的關鍵的原因。
四、NoSQL是可擴展性的關鍵
每次技術行業經歷硬件發展的根本性轉變時,都會出現一個拐點。在數據庫領域,從縱向擴展到橫向擴展的轉變推動了NoSQL的發展。關系型數據庫(包括來自甲骨文和IBM的數據庫)是縱向擴展。也就是說,它們是集中式、共享一切的技術,只能通過增加更多昂貴的硬件來擴展。
而NoSQL數據庫是分布式橫向擴展技術。它們使用了分布式節點集(稱為集群)來提供高度彈性擴展功能,讓用戶可以添加節點來動態處理負載。
分布式橫向擴展的做法通常要比縱向做法更加便宜。商業關系型數據庫的授權費用也讓人望而卻步,因為他們的價格是按每臺服務器來計算。另一方面,NoSQL數據庫通常是開源技術,按照運行的服務器集群收費,而且價格相對便宜。
五、NoSQL是靈活性的關鍵
關系型數據庫和NoSQL數據模型有很大的不同。關系型模式獲取數據,并將數據分配到很多相互關聯的表中,這些表通過外鍵相互應用。
當用戶需要對數據集運行查詢時,所需信息需要從多個表中收集(通常涉及數百個企業應用程序),并結合這些信息,再提供給應用程序。同樣地,當寫入數據時,需要在多個表協調和執行寫入。當數據相對較少,并且,數據以較慢速度流入數據庫時,關系型數據庫通常能夠捕捉和存儲信息。然而,現在的應用程序通常需要快速寫入(和讀取)海量數據。
NoSQL數據庫采用非常不同的模式。在其核心,NoSQL數據庫其實是“NoREL”,或者說非關系型,這意味著它們沒有依賴于表以及表之間的聯系,以存儲和組織信息。例如,以文檔為導向的NoSQL數據庫獲取你想要存儲的數據,并采用JSON格式整合到文檔中。每個JSON文檔可以被你的應用程序視為一個對象。JSON文檔可能會提取跨越25個表的數據,將數據集成到一個文檔中。
聚合這些信息可能會導致信息重復,但由于存儲已不再是一個成本問題,數據模型靈活性、發布所產生文檔的簡便性以及讀取和寫入性能提高,讓這成為不錯的選擇。
六、NoSQL是大數據應用程序的關鍵
通過第三方(包括社交媒體網站),數據正變得越來越容易捕捉和訪問。這些數據包括:個人用戶信息、地理位置數據、用戶生產的內容、機器記錄數據和傳感器產生的數據。企業還可以依賴于大數據來推動其關鍵任務型應用程序。同時,企業正在轉向到NoSQL數據庫,因為這種數據庫非常適合現在新型的數據類型。
開發人員想要一個靈活的數據庫,可以很容易適應新的數據類型,并且,不會受第三方數據供應商的內容結構變化的影響。大多數新數據是非結構化和半結構化,因此,開發人員也需要能夠有效存儲這些數據的數據庫。然而,關系型數據庫采用的嚴格定義的基于模式的做法讓其不可能快速整合新數據類型,并且很不適合于非結構化和半結構化數據。

到此,相信大家對“SQL與NoSQL的區別”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

木兰县| 陕西省| 藁城市| 弥勒县| 宁城县| 泗阳县| 金坛市| 建宁县| 定兴县| 迭部县| 公安县| 兰溪市| 墨脱县| 长泰县| 晋州市| 罗山县| 高碑店市| 射洪县| 泗洪县| 邯郸县| 马山县| 湘西| 德惠市| 德庆县| 拉萨市| 海晏县| 内丘县| 吉水县| 绥宁县| 鲁山县| 枣庄市| 常德市| 周宁县| 黄山市| 隆化县| 山西省| 丰原市| 正镶白旗| 竹北市| 柳江县| 台州市|