日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

RDBMS vs. NoSQL Clojure概述

發(fā)布時間:2025/3/17 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RDBMS vs. NoSQL Clojure概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

RDBMS vs. NoSQL 合作還是競爭

數(shù)據(jù)庫要解決的主要問題

不管是RDBMS還是NoSQL,在大的方面他們都屬于數(shù)據(jù)庫這個范疇,這個范疇之內(nèi)所要面臨的一些共同問題有哪些呢。下面的圖是一個大致的歸納。

從圖中可以看出,一個數(shù)據(jù)庫系統(tǒng)主要解決以下幾個問題:

  • 數(shù)據(jù)的存儲,即要存入哪些數(shù)據(jù)到系統(tǒng)中,當然在data definition這一塊,有schema和no schema兩種,說白了就是數(shù)據(jù)格式和數(shù)據(jù)關(guān)系的定義問題
  • 完成了data definition,那么接下來自然要發(fā)生的事情就是將數(shù)據(jù)真正的存儲到系統(tǒng)之中,即針對數(shù)據(jù)的各種操作crud(create, read, update and delete)
  • 數(shù)據(jù)存儲進來之后,需要挖掘數(shù)據(jù)的意義或者利用已有的數(shù)據(jù)進行統(tǒng)計分析,data analytic當然也可以說是data retrieval,我個人傾向于data analytic這一說法
  • 當然數(shù)據(jù)庫系統(tǒng)還有一個非常重要的方面即data control,哪些人可以訪問,哪些人不能訪問,不同的人看到的內(nèi)容不僅相同
  • 結(jié)構(gòu)化和非結(jié)構(gòu)化

    RDBMS的一大特點就是數(shù)據(jù)是嚴格結(jié)構(gòu)化的,存入的數(shù)據(jù)必須屬于預先定義好的某一數(shù)據(jù)結(jié)構(gòu),否則就不能存入,而NoSQL則放松了這一要求。

    在不同的應(yīng)用場景中,兩者優(yōu)缺點立顯,比如銀行系統(tǒng),要存儲的數(shù)據(jù)格式一般是事先可以預估,其改變的可能比較少,再比如稅務(wù)之類的。

    而在電商和互聯(lián)網(wǎng)應(yīng)用中,往往意味著經(jīng)常進行數(shù)據(jù)格式的更改,如果采用RDBMS,schema改變帶來的開發(fā)工作則會非常巨大。

    數(shù)據(jù)的一致性

    在數(shù)據(jù)的一致性方面,RDBMS通過外鍵約束或者trigger等方式在server側(cè)來保證數(shù)據(jù)的約束。

    從達到數(shù)據(jù)一致性的時間來看RDBMS是立即一致(immediately consistency)而NoSQL則是最終一致(eventual consistency),舉個應(yīng)用場景,對銀行賬戶的任何修改都必須是即時一致的,約不參容忍不一致的出現(xiàn)。

    Scalability

    如果說到數(shù)據(jù)庫的動態(tài)擴容,則NoSQL明顯技勝一籌。

    當然MySQL的NDB cluster在動態(tài)擴容方面,其能力也還是不錯的。

    數(shù)據(jù)分析或數(shù)據(jù)挖掘工作

    從數(shù)據(jù)分析的層面來看,RDBMS和NoSQL之間的成熟度差距是巨大的。

    RDBMS為數(shù)據(jù)分析提供了一個清晰的標準,那就是SQL。利用SQL有非常明確的標準來進行規(guī)范,利用這些規(guī)范可以對數(shù)據(jù)進行各種各樣的查詢,而且內(nèi)置了許多函數(shù),如average,sum,count之類,讓在進行報表分析時,輕松異常。

    NoSQL 中的No有人解釋為not only的意思,但何嘗又不是No SQL二字的縮寫了即there is no sql interface in the database system. 當然像MongoDB是支持Sql like的查詢語句的,但NoSQL確實沒有一套標準規(guī)范對數(shù)據(jù)的查詢和分析。

    機會在哪里

    正因為NoSQL中沒有一個統(tǒng)一進行數(shù)據(jù)分析的標準,所以現(xiàn)在出現(xiàn)了很多實時數(shù)據(jù)處理分析的框架,最火的莫過于Spark,且Spark有最強大的hadoop發(fā)行廠商Cloudera的強勁支持,大有一統(tǒng)NoSQL數(shù)據(jù)分析框架之勢,未來的發(fā)展勢頭將會異常迅猛。學會使用Spark有可能會是數(shù)據(jù)分析行業(yè)的一個基本的從業(yè)要求。

    總結(jié)

    個人以為NoSQL不是以傳統(tǒng)RDBMS的終結(jié)者身份出現(xiàn),而是對RDBMS的一種補充來填補RDBMS所不能勝任領(lǐng)域的技術(shù)實現(xiàn)。

    NoSQL在發(fā)展的初期,其實是通過放棄RDBMS的多種約束來達到其兩個主要目的,一是數(shù)據(jù)的海量存儲二是數(shù)據(jù)的動態(tài)可擴。至于數(shù)據(jù)分析則實現(xiàn)手法各異,對實時性的要求不是太高,故MapReduce之類的離線分析能滿足其需求。

    在相當長的時間內(nèi)會MySQL還是有飯吃的,當然需要同時花相當?shù)木砭o跟NoSQL的技術(shù)發(fā)展。

    Clojure概述

    楔子

    由于閱讀storm源碼的原因,頭一次接觸到Clojure。沒有花特別的時間來研究clojure語法,只是在一些特殊的用法時,才查了一下clojure官網(wǎng)的文檔,基本上能夠很快的理解其意思。

    在理解了storm中的基本處理流程之后,花了一段時間好好的看了幾本clojure編程的書籍,書籍名稱及評價分別如下。

  • clojure programming 介紹了clojure語言的基本特點,同時對于clojure的工程實踐做了比較詳細的介紹
  • programming clojure 重點全部在于介紹clojure語言的特點,對于clojure在實際中的應(yīng)用介紹比較簡略,個人以為在對clojure語言本身的介紹方面,這本要優(yōu)于上面提到的clojure programming一書
  • the joy of clojure? 該書籍從一個比較高的層面來思考clojure為什么要設(shè)計成這樣,有點類似于c++中的c++沉思錄一類的
  • 語言概述

    clojure是龐大的lisp編程語言家族中的一個新成員,所以其有l(wèi)isp語言的鮮明特征,一切皆函數(shù)。

    clojure語言的核心主要涉及如下幾個部分。

  • 函數(shù)式編程
  • 數(shù)據(jù)類型
  • 條件判斷語句,循環(huán)控制語句
  • 集合 如set,list,vector, map
  • sequence 這個是非常特殊的一部分,從傳統(tǒng)的c或java轉(zhuǎn)換到clojure編程,常常容易在這卡住
  • 函數(shù)
  • 變量聲明
  • 集合解構(gòu)
  • 宏?(特色所在)
  • 并發(fā)編程 (concurrent programming)
  • STM
  • 面向?qū)ο?clojure吸收并借鑒了object-oriented的編程語言的一些優(yōu)點,
  • 函數(shù)重載 defmulti
  • 接口 defprotocol 解決is-a的問題

    ?

  • 練習

    clojure的語法非常簡潔優(yōu)雅,花不了半天的時間就能大體知道個大概,但要想徹底的掌握還是需要大量的練習才行。

    哪些題目值得花時間,哪些不值一提,這個已經(jīng)有人想到了,并搞了個很好的網(wǎng)站。http://www.4clojure.com?到該網(wǎng)站注冊一個用戶名,總共150道題,難度由淺入深,是不可多得的學習資源。

    clojure中的語法糖不是特別多,但想一個不落的記處還是有點累,為此完全可以將clojure cheatsheet放置在辦公桌最顯眼的地方,不多就兩張A4張。http://clojure.org/cheatsheet

    總結(jié)

    以上是生活随笔為你收集整理的RDBMS vs. NoSQL Clojure概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。