999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

超越NoSQL:為分布式SQL正名

2020-08-15 13:37:14AndrewC.Oliver沈建苗
計算機世界 2020年30期
關鍵詞:數據庫分析

Andrew C. Oliver 沈建苗

起初有文件,后來有基于結構化文件的導航數據庫,然后出現了IMS和CODASYL。大概40年前,出現了首批關系數據庫。在20世紀八、九十年代的大部分時間,“數據庫”嚴格意義上指“關系數據庫”。SQL(標準查詢語言)占主導地位。

后來隨著面向對象編程語言日益流行,一些人認為,解決面向對象語言和關系數據庫“阻抗不匹配”的辦法是在數據庫中映射對象。因此,我們最后迎來了“面向對象的數據庫”。對象數據庫方面有意思的地方是,在許多情況下,它們基本上是內置對象映射器的普通數據庫。這種數據庫后來漸漸失寵,下一個真正的主流嘗試是2010年代的“NoSQL”。

攻擊SQL

NoSQL以同樣的方式攻擊關系數據庫和SQL。這回的主要問題是,互聯網顛覆了具有40年歷史關系數據庫管理系統(RDBMS)架構的基本前提。這種數據庫旨在節省寶貴的磁盤空間,并可縱向擴展。然而現在有太多的用戶和太多的任務,一臺胖服務器處理不了。NoSQL數據庫則宣稱,如果數據庫沒有連接(join),沒有標準查詢語言(因為實現SQL需要花費時間),也沒有數據完整性,那么就可以橫向擴展以處理眾多用戶。這解決了縱向擴展的問題,但也帶來了新問題。

與這些聯機交易處理系統(OLTP)并行開發的是另一種關系數據庫,名為聯機分析處理系統(OLAP)。這種數據庫支持關系結構,但在執行查詢時就知道它們將返回大量數據。上世紀八、九十年代的公司企業仍主要由批處理驅動。此外,OLAP系統為開發和分析人員提供了將數據想象成n維數據集并加以存儲的能力。如果你設想二維數組和基于兩個索引的查詢,以便基本上與恒定時間一樣高效,但是隨后在此基礎上添加另一個維度,以便可以執行實質上是3個或更多因素(比如供應、需求和競爭對手數量)的查詢,你就可以更高效地分析和預測。然而,構建這些元素是一項費力又高度面向批處理的工作。

圖形數據庫幾乎與橫向擴展型NoSQL同一時間面市。許多事物本身不是“關系型”,或者不是基于集合論和關系代數,而是基于父子關系或朋友的朋友關系。一個典例是模型中的產品系列-產品品牌-款型-部件。如果你想知道“我的筆記本電腦搭載什么主板?”,會發現制造商的采購來源很復雜,光有品牌或型號可能不夠。如果你想知道某產品系列中使用的所有主板,在經典(非CTE即通用表表達式)SQL中,你必須遍歷表,并且分多個步驟進行查詢。最初,大多數圖形數據庫根本就不分片。實際上,無需將數據實際存儲為圖形,就能完成許多類型的圖形分析。

兌現和未兌現的NoSQL承諾

NoSQL數據庫的擴展性確實比Oracle數據庫、DB2或SQL Server(它們都基于40年前的一種設計)好得多。然而,每種NoSQL數據庫都存在新的限制:

鍵值存儲:沒有比db.get(鍵)更簡單的查詢了。然而,世界上許多數據和使用場景無法以這種方式來設計結構。此外,我們其實在談論緩存策略。在任何數據庫中,主鍵查詢速度很快。重要的只是內存中的數據。在理想情況下,它們像哈希圖一樣擴展。然而,如果要跑30趟數據庫才能將數據放回去或進行任何類型的復雜查詢,這行不通。這些系統現在更常作為緩存實施在其他數據庫的前面。(例子:Redis。)

文檔數據庫:這種數據庫之所以流行起來,是由于它們使用JSON,對象又易于序列化成JSON。這種數據庫的第一個版本沒有連接,將整個“實體”放到一個龐大的文檔中有其自身的缺點。沒有事務保證,你還會遇到數據完整性問題。今天,一些文檔數據庫支持一種不太可靠的事務,但它不是大多數人習慣的同一種保護級別。而且,即使對簡單查詢而言,這種數據庫在延遲方面常常速度很慢,盡管它們就吞吐量而言擴展性更好。(例子:MongoDB和Amazon DocumentDB。)

列存儲:這種數據庫的查詢速度與鍵值存儲一樣快,它們可以存儲更復雜的數據結構。然而,如果執行像跨3個表(RDBMS術語)或3個集合(MongoDB術語)連接這樣的操作,會讓人痛苦不堪。這種數據庫確實適合時間序列數據(請給我在下午1點至2點出現的所有事務)。

還有其他更深奧的NoSQL數據庫。然而,所有這些數據庫的共同點是不支持通用數據庫慣用語,而且往往專注于“特殊用途”。一些流行的NoSQL數據庫(比如MongoDB)編寫了出色的數據庫前端和生態系統工具,因而開發人員很容易采用它們,但存儲引擎存在嚴重的限制,更不用說彈性和可擴展性方面的限制了。

數據庫標準仍然很重要

關系數據庫占主導地位的原因之一是,它們有一個通用的工具生態系統。首先有SQL。雖然數據庫方言可能不一樣——如果你是開發或分析人員,想從SQL Server 6.5升級到Oracle 7,可能不得不修復查詢,并使用“(+)”用于外部連接,但是簡單的切實可行,復雜的很容易轉換。

其次,你有ODBC以及后來的JDBC等。幾乎任何可以連接到一個RDBMS的工具(除非為了管理該RDBMS而專門設計)都可以連接到其他任何RDBMS。有許多人每天連接到RDBMS,并將數據倒入到Excel以便分析。我不是指Tableau或其他數百種工具,而是指“鼻祖”Excel。

NoSQL擯棄了標準。MongoDB不使用SQL作為主要語言。MongoDB的勁敵Couchbase尋找一種查詢語言來取代基于Java的mapreduce框架時,更是創建了一套自己的SQL方言。

標準很重要,無論是為了支持工具生態系統,還是由于許多查詢數據庫的人不是開發人員——他們都知道SQL。

猜你喜歡
數據庫分析
隱蔽失效適航要求符合性驗證分析
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
電力系統及其自動化發展趨勢分析
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
中西醫結合治療抑郁癥100例分析
在線教育與MOOC的比較分析
主站蜘蛛池模板: 久久国产毛片| 国产无码精品在线| 国产亚洲欧美在线中文bt天堂| 国产在线拍偷自揄拍精品| 婷婷99视频精品全部在线观看| 日韩在线永久免费播放| 日韩大乳视频中文字幕| 国产精品成人久久| 思思热在线视频精品| 欧美a在线| 97精品久久久大香线焦| 成人午夜久久| 99久久无色码中文字幕| 亚洲第一页在线观看| 中文字幕永久在线观看| 国产96在线 | 国产美女丝袜高潮| 国模粉嫩小泬视频在线观看| 幺女国产一级毛片| 美女视频黄频a免费高清不卡| 亚洲男人的天堂久久香蕉网| 欧美国产综合色视频| 99久久性生片| 国产成本人片免费a∨短片| 19国产精品麻豆免费观看| 亚洲中文字幕无码爆乳| 久久久久国产一级毛片高清板| 99无码中文字幕视频| 国产成人AV大片大片在线播放 | 欧美精品在线免费| 欧美日韩中文字幕在线| 综合成人国产| 亚洲国产精品不卡在线| 国产在线精品人成导航| 国产精品免费露脸视频| 激情五月婷婷综合网| 国产成人无码AV在线播放动漫 | 少妇精品在线| 九色综合伊人久久富二代| 九九热精品视频在线| 亚洲第一中文字幕| 91精品久久久无码中文字幕vr| 成年免费在线观看| 国产在线观看一区二区三区| 欧美日本在线观看| 久久semm亚洲国产| 青青草国产免费国产| 亚洲综合极品香蕉久久网| 亚洲无码高清免费视频亚洲 | yjizz国产在线视频网| 国产一线在线| 91一级片| 色婷婷成人网| 国产精品久久久久久久久| 欧美亚洲国产精品第一页| 中文字幕亚洲另类天堂| 国产精品亚洲一区二区三区z | 国产又粗又猛又爽视频| 嫩草国产在线| 五月激情婷婷综合| 欧美性久久久久| 亚洲成人福利网站| 亚洲国产精品无码AV| 一区二区三区在线不卡免费| 无码福利日韩神码福利片| 久久青青草原亚洲av无码| 无码高清专区| 日韩欧美综合在线制服| 日本久久免费| 伊人网址在线| 久久香蕉国产线看观看亚洲片| 高h视频在线| 国产精品观看视频免费完整版| 99热最新网址| 国产无吗一区二区三区在线欢| 亚洲人成影院午夜网站| 四虎国产精品永久一区| 福利视频一区| 青青青国产精品国产精品美女| 人妻夜夜爽天天爽| 四虎永久在线精品影院| 欧美区一区|