來源:數(shù)據(jù)觀 時間:2017-08-17 15:19:20 作者:Keith D. Foote(數(shù)據(jù)觀/黃玉葉 譯)
數(shù)據(jù)架構是一系列決定收集哪些數(shù)據(jù),如何在數(shù)據(jù)庫系統(tǒng)中使用、處理和存儲數(shù)據(jù)的規(guī)則、策略以及模型。例如,數(shù)據(jù)集成是依賴于數(shù)據(jù)架構用于集成過程中的指令。如果沒有從編程范式轉換到數(shù)據(jù)架構范式,現(xiàn)代計算機將會變得更加笨拙遲鈍。
(圖片來源:維多利亞/ Shutterstock.com)
對于早期的計算機,創(chuàng)建過分簡單化的程序是為了處理特定類型的計算機問題,甚至沒有考慮過數(shù)據(jù)集成的概念,每個程序之間都是單獨分開的。二十世紀四十年代至七十年代,程序處理是最主要的問題,有關建立數(shù)據(jù)架構的問題根本考慮得少之又少,甚至不在考慮的范圍之內。程序員致力于讓計算機通過執(zhí)行特定的操作,以支持組織的短期目標。只有定義為“程序需要”的數(shù)據(jù)被使用,計算機才不會被用于長期的數(shù)據(jù)存儲,恢復數(shù)據(jù)需要能夠編寫、檢索特定信息的程序,而這相當耗費時間和金錢。
編程范式轉換為數(shù)據(jù)庫架構范式
1970年,Edgar F. Codd公開發(fā)表題為“大型共享數(shù)據(jù)庫數(shù)據(jù)的關系模型”的論文,文中提到了組織起數(shù)據(jù)的相關步驟,Codd的理論基于運用于集合論里面的數(shù)學運算,結合了一列規(guī)則,以確保數(shù)據(jù)被存儲在最小冗余里。他的方法成功的創(chuàng)建了數(shù)據(jù)庫架構,簡化了計算機的效能。在Codd的理論之前,COBOL程序和大多數(shù)其他的程序都是按等級排列的,這樣的排列使得搜索有必要從總類別開始,然后再逐漸縮小搜索類別。而Codd提供的相關途徑則允許用戶更加有序、有效地利用二維表儲存數(shù)據(jù)。(Codd 稱之為“關系法”)
1976年,在麻省理工學院工作的Peter Chen發(fā)表題為“實體-關系模型對數(shù)據(jù)的統(tǒng)一視圖”的論文,文中介紹了實體/關系建模,也就是今天被廣泛熟知的“數(shù)據(jù)建?!薄K詧D表的形式生動形象地呈現(xiàn)了數(shù)據(jù)架構,兩年后,Oracle宣布推出首款涉及業(yè)務的關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。
以計算機為工具工作的人們開始意識到數(shù)據(jù)架構比程序架構更加靠譜。它的穩(wěn)定性源自重新設計系統(tǒng)的中間部分,并將進程彼此隔離(類似于程序員將程序隔離的方式),重新設計的關鍵在于添加了數(shù)據(jù)緩沖區(qū)。
緩沖區(qū)最初是一個臨時記憶儲存系統(tǒng),旨在從原始計算機的內存中快速移除數(shù)據(jù),這樣計算機就不會陷入運阻,并能繼續(xù)解決問題。 然后,數(shù)據(jù)從緩沖區(qū)傳輸?shù)酱蛴C,“慢慢”打印出最新的計算結果。今天的數(shù)據(jù)緩沖區(qū)的版本是一個由設備共享的區(qū)域,或者一個程序的進程,它們以不同的速度運行,或者有不同的優(yōu)先級?,F(xiàn)代緩沖區(qū)允許每個進程(或設備)在沒有沖突的情況下運行,與緩存類似,緩沖區(qū)充當“中間存儲空間”,但也有助于協(xié)調不同的活動,而不是簡單地簡化內存訪問。
商業(yè)界很快就意識到Edgar F. Codd和Peter Chen的見解的優(yōu)勢,新的數(shù)據(jù)架構設計顯而易見的比程序結構更快更靈活更穩(wěn)定。此外,他們的見解促使計算機編程社區(qū)發(fā)生了文化上的轉變,數(shù)據(jù)結構現(xiàn)在被認為是遠比程序重要得多。
假設:數(shù)據(jù)在范式轉換中丟失
數(shù)據(jù)架構的進化需要消除三個基本的假設(假設的定義:一些被認為是理所當然的事情;一種缺乏有力證據(jù)的猜測,卻被當作事實來看待。)
假設1:每個程序必須和其他程序隔離開來。這種隔離論導致了程序代碼、數(shù)據(jù)定義和數(shù)據(jù)條目的重復。Codd的關系法解決了不必要的副本麻煩,他的模型將數(shù)據(jù)庫的模架或布局從物理信息存儲中分離出來(成為數(shù)據(jù)庫系統(tǒng)的標準)。他的關系模型指出,數(shù)據(jù)不需要存儲在單獨的、孤立的程序中,數(shù)據(jù)條目和程序編碼不需要不必要地復制。一個單獨的關系數(shù)據(jù)庫足以用于存儲所有的數(shù)據(jù),所以,一致性可能(幾乎可以)得到保證,并且也更易于查找錯誤。
假設2:輸入和輸出是對等的,設計上應該讓他們相匹配。目前,輸出和輸入設備的數(shù)據(jù)處理速率有很大差異,這與預想著兩者以相同速度運行的期望是完全不同的。緩沖區(qū)的使用開啟了實現(xiàn)輸出、輸入的區(qū)別對待,Peter Chen的革新揭示了數(shù)據(jù)創(chuàng)造者和數(shù)據(jù)用戶之間的差異。數(shù)據(jù)用戶通常希望從潛藏在數(shù)據(jù)庫下的不同部分看到大量的信息以作比較,并從中提取最有用的信息。數(shù)據(jù)創(chuàng)造者,從另外一方面來說,則專注于處理數(shù)據(jù),一次一個進程。數(shù)據(jù)創(chuàng)造者(輸入)和數(shù)據(jù)用戶(輸出)兩者的目的是截然不同的。
假設3:企業(yè)組織應該反應在他們的計算機程序里面。隨著緩沖區(qū)和關系數(shù)據(jù)庫的運用,“程序”這個概念應該會逐漸模仿公司的結構,更加靈活的數(shù)據(jù)庫取代了企業(yè)在提供有用結構方面的角色,同時收集和處理信息?,F(xiàn)代數(shù)據(jù)模型既反映了企業(yè)的組織結構,也反映了用于實現(xiàn)目標的工具。
SQL和數(shù)據(jù)架構
Codd的關系法導致結構化的查詢語言(SQL),在上世紀八十年代成為了標準的查詢語言。關系數(shù)據(jù)庫變得非常受歡迎,促進了數(shù)據(jù)庫市場的發(fā)展,這反過來又導致了等級數(shù)據(jù)庫模型的沒落。
二十世紀九十年代早期,許多主要的計算機公司仍然專注于程序,試圖銷售昂貴而復雜的數(shù)據(jù)庫產(chǎn)品?;匾运麄兊膭t是新的、更具競爭力的企業(yè)開始發(fā)布工具和軟件(如:Oracle開發(fā)人員、PowerBuilder)用來增強系統(tǒng)數(shù)據(jù)架構。二十世紀九十年代中期,互聯(lián)網(wǎng)的使用推進了數(shù)據(jù)庫行業(yè)的顯著增長以及計算機的總體銷售情況。
數(shù)據(jù)庫架構性的設計,引領了數(shù)據(jù)管理的蓬勃發(fā)展。企業(yè)已經(jīng)發(fā)現(xiàn)了信息本身對公司的價值,二十世紀九十年代以后,諸如“數(shù)據(jù)管理員”、“數(shù)據(jù)庫管理員”的標題開始出現(xiàn)。數(shù)據(jù)管理員的職責在于保證數(shù)據(jù)使用中的高質量和完整性。
關系數(shù)據(jù)庫管理系統(tǒng)使創(chuàng)建一個呈現(xiàn)概念模式(某種類型的映射)的數(shù)據(jù)庫成為可能,然后提供數(shù)據(jù)庫的不同透視圖,這是為數(shù)據(jù)創(chuàng)建者和數(shù)據(jù)使用者設計的。另外,每個數(shù)據(jù)庫管理系統(tǒng)都可以將其物理存儲參數(shù)與列結構和表分開。
NoSQL和數(shù)據(jù)架構
NoSQL不是一個程序,它是一個數(shù)據(jù)庫管理系統(tǒng),使用的是相當簡單的架構。在處理大數(shù)據(jù)和不需要關系模型時,它是很有用的。NoSQL數(shù)據(jù)庫系統(tǒng)在管理和存儲數(shù)據(jù)的方法和過程中是非常多樣化的。SQL系統(tǒng)在功能方面通常比NoSQL系統(tǒng)具有更大的靈活性,但是缺乏NoSQL系統(tǒng)的可伸縮性。但是,現(xiàn)在有許多商業(yè)軟件包可以結合“兩個世界的最佳方式”,而且更多的軟件包將會一直進入市場。
最近,一些機構組織在DATAVERSITY的文章和訪談中(還有許多其他的可能性)提供了一種數(shù)據(jù)架構解決方案,利用關系數(shù)據(jù)庫中常見的工具來處理大數(shù)據(jù)。Kyvos Insights公司銷售與Hadoop存儲系統(tǒng)兼容的軟件,它們的“Hadoop/OLAP ”組合在不同程度上促進了非結構化和結構化數(shù)據(jù)的處理,使得人們可以相對輕松地對大數(shù)據(jù)進行分析。
Hackolade公司也銷售一款軟件包,采用一種用戶友好數(shù)據(jù)模型提供了“高功能”的工具來處理NoSQL。該軟件將NoSQL融合了可視化圖形的簡明性,結合Hackolade其他工具一起使用,既減少開發(fā)時間,又提高了應用程序的質量。他們的軟件目前和Couchbase、DynamoDB、MongoDB 模式兼容(他們計劃未來能囊括更多NoSQL數(shù)據(jù)庫)。
RedisLabs將他們的云計算與他們的軟件包Redis Pack結合在一起,提供另一個架構解決方案。Redis Pack和它的云計算提供了三種優(yōu)勢:速度、持久性(保存您的信息),以及他們提供的數(shù)據(jù)類型的多樣性。從本質上來說,Redis是一個“非??臁钡腘oSQL、鍵值數(shù)據(jù)存儲,同時可以充當數(shù)據(jù)庫、緩存和消息代理。
Reltio提供服務。他們已經(jīng)創(chuàng)建了一個云管理平臺,并提供完成處理大數(shù)據(jù)所需的工具和服務。他們提供研究人員,將來自多個來源的大數(shù)據(jù)與主數(shù)據(jù)管理(MDM)合并在一起,并開發(fā)統(tǒng)一的目標。Reltio的系統(tǒng)支持多種行業(yè)領域,包括零售、生命科學、娛樂、醫(yī)療保健和政府。
數(shù)據(jù)架構從早期就完全改變了,并且很可能是由于一些新的趨勢,例如物聯(lián)網(wǎng)、云計算、微服務、高級分析、機器學習和人工智能,以及像Blockchain這樣的新興技術,將會繼續(xù)改變未來的發(fā)展方向。
[作者簡介]Keith D. Foote,自由撰稿人、作家;是一名游歷甚廣的退伍軍人。他有著豐富的物理學知識背景,涉獵于數(shù)據(jù)科學的商業(yè)應用領域。
原文來源 Dateversity,作者/Keith D. Foote
翻譯:黃玉葉
校對:余超蓉
責任編輯:陳近梅