堅持寫技術博客以來的幾點感受與NoSQL技術漫談

      網友投稿 707 2025-04-01

      在學習的時候,我一直保持著記筆記或者做簡單總結的習慣,內容比較隨性,但這些內容有助于自己的快速回顧。在技術領域,最好的總結是一個直觀的流程圖,所謂"一圖勝千言",然后配以簡單的文字說明。但可惜,那時沒有想過寫作公開的技術博客,周邊也缺乏這樣的氛圍。

      幾個月前,正式決定開始寫博客和公眾號。初衷還是希望能督促自己在業余時間的學習,當正式開始以后,如下幾點內容感受非常深刻:

      1. "以輸出倒逼輸入",這就要求每天必須堅持學習。如果寫作只是將自己知道的內容寫出來,對于我,那將變成一件枯燥而無趣的事情。

      2. 公開的內容對質量會有更高的要求,進一步提高了對學習的要求。

      3. 如果寫作的內容得到其他人的認可,可以帶給自己更多堅持下去的信心。

      但頻繁更新卻是一件極其艱難的事情。技術總結內容,通常需要細致的閱讀源碼細節,如果追求高質量輸出,難以在短時間內快速完成。另外因日常工作方面的原因,自由可支配的時間時常不受控制。

      上面這些內容,更多的是自己的幾點感受。希望閱讀了此文的同學們也能開始自己的技術寫作,對于已經開始的,也應該長期堅持下去。

      接下來是關于NoSQL技術的一些漫談內容。最初,對于這個公眾號名稱,我曾糾結過一段時間。NoSQL一詞,儼然已過了風頭正盛的時期,甚至聽起來像一個"過時"的概念。關于這個公眾號,主要想探討如下領域的內容:

      - 分布式KeyValue系統

      - 稀疏矩陣形態的寬列存儲技術

      - 搜索技術

      - 圖數據庫技術

      - 文檔數據庫技術

      - 時序/時空數據庫技術

      - 多模數據庫技術

      - 分布式索引技術

      - NewSQL技術

      - 分布式計算技術

      認真思考一下,也只有NoSQL一詞可將其盡可能的囊括起來。每一種技術,都有自己獨特的精彩實現內容,但更多的是一些通用的技術,如RPC通信技術,索引技術,分布式共識算法,MVCC, SQL能力等等。

      對比于NoSQL,NewSQL聽起來像是一個更新潮的概念。Google對于NoSQL與NewSQL技術架構的影響可謂深遠,我們先來看看Google從Bigtable到Spanner/F1的演進過程,下面列舉了每一種技術的設計關鍵點:

      Bigtable:

      LSM-Tree架構

      Auto-Scaling

      基于分布式文件系統GFS/Colossus

      稀疏矩陣

      Schema less設計

      行級事務

      異步容災(Paper中提及但最終未實現)

      Megastore:

      基于Bigtable構建

      在NoSQL與RDBMS之間做了妥協,支持半關系型模型

      支持SQL接口

      支持多種二級索引類型

      基于Paxos協議實現了跨DataCenters間的同步容災

      支持Entity Group級別的跨行事務

      Spanner:

      參考了Bigtable的設計后全新實現

      Auto-Scaling

      半關系型模型

      支持SQL接口

      支持同步容災

      支持廣泛的分布式事務能力

      F1:

      基于Spanner構建

      分布式SQL查詢能力

      支持事務一致性的二級索引

      支持異步的Schema變更

      支持樂觀事務

      數據變更歷史記錄跟蹤

      關于NoSQL與NewSQL,這篇文章《NewSQL是否是NoSQL的取代者?》做了更詳細的探討。這里僅簡單的羅列一下觀點:

      -?NoSQL通常指一種非關系型存儲技術,涉及的范圍廣泛,本身與是否具有SQL接口能力無關。

      -?NewSQL更多是指一種分布式的關系型數據庫技術,典型意義上的NewSQL包括Spanner, CockroachDB, NuoDB以及國內的TiDB,它通常會更加強調分布式事務能力。

      NewSQL更多是RDBMS與NoSQL技術結合的一種產物,對于傳統的應用,會更加友好,也具有廣泛的普適性。在可預見的未來,它也一直會有可觀的市場空間。而每一種NoSQL技術更像是一種專業化能力的存在:

      - HBase:稀疏矩陣,基于KeyValue提供了簡單的讀寫接口

      - Elasticsearch:提供分布式搜索能力

      - Druid:基于事件數據的OLAP能力

      - Neo4j:提供圖數據庫能力

      - OpenTSDB/InfluxDB:提供時序數據庫能力

      在"nosql-database.org"這個網站中,收錄了大量的NoSQL技術,大家可以參考一下。

      堅持寫技術博客以來的幾點感受與NoSQL技術漫談

      如果每一種技術只提供一種專業的能力,那就帶來了通用性方面的問題,同一份數據時常需要在不同的系統中各復制一份是一個無法忍受的問題。從應用的角度來看,大家更期望一種"One Size Fit More/All"的技術,但這在技術實現上幾乎不可能。多模數據庫似乎是一個不錯的答案,它的設計理念為:

      "基于一套存儲引擎,提供多種模型,多種訪問接口"

      以當前火熱的AZure Cosmos DB為例,支持如下三種模型:

      -?Document

      - Graph

      - KeyValue

      AZure Cosmos DB基于上面三種模型,提供了多語言(Java/Python/Node.js/.NET)訪問接口,并且提供了MongoDB Document API以及基于SQL的訪問接口。

      再以ArrangoDB為例,它同樣支持如下三種模型:

      -?Document

      - Graph

      - KeyValue

      ArrangoDB主要提供了AQL(SQL-Like)接口以及HTTP接口。

      多模數據庫像是NoSQL技術的大雜燴,但的確不失為NoSQL技術一個不錯的演進方向。隨著公有云,人工智能,物聯網等行業的快速發展,以及即將到來的5G技術,需要存儲和查詢的數據量也會變得越來越大,相信NoSQL技術會生生不息,一定會取得更廣泛的應用場景。 這也是本公眾號將內容聚焦在"NoSQL"領域的一個關鍵原因。

      本文轉載自微信公眾號【Nosql漫談】。

      分布式 NoSQL 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何取消下達的命令(命令行怎么撤銷)
      下一篇:Excel中怎樣根據出生日期提取生肖?一個函數輕松解決
      相關文章
      99亚洲乱人伦aⅴ精品| 色噜噜亚洲精品中文字幕| 亚洲AV无码国产一区二区三区| 亚洲一卡2卡3卡4卡5卡6卡 | 亚洲AV无码资源在线观看| 亚洲欧洲日产韩国在线| 亚洲精品午夜久久久伊人| 亚洲成熟xxxxx电影| 亚洲国产人成在线观看69网站| 日本亚洲国产一区二区三区| 国产成人精品久久亚洲| 相泽亚洲一区中文字幕| 亚洲精品无码乱码成人 | 色噜噜AV亚洲色一区二区| 久久久久亚洲av毛片大| 在线播放亚洲第一字幕| 亚洲线精品一区二区三区| 亚洲午夜国产精品无码| 国产亚洲综合成人91精品| 亚洲成色WWW久久网站| 久久久久亚洲AV成人无码| 亚洲男人第一av网站| 亚洲美女激情视频| 亚洲国产精品网站久久| 亚洲免费福利在线视频| 亚洲日产乱码一二三区别| 久久精品国产亚洲av天美18| 国产大陆亚洲精品国产| 亚洲日韩在线观看免费视频| 亚洲色欲久久久综合网| 亚洲Aⅴ无码专区在线观看q| 亚洲高清无在码在线无弹窗| 亚洲国产精品成人综合色在线婷婷| 亚洲mv国产精品mv日本mv| 亚洲熟妇丰满xxxxx| 人人狠狠综合久久亚洲高清| 久久夜色精品国产亚洲av| 久久精品国产精品亚洲色婷婷| 亚洲黄色在线观看网站| 亚洲国产激情在线一区| 国产亚洲欧美日韩亚洲中文色|