
很多大數(shù)據(jù)應用的實施似乎都是在一個現(xiàn)有的數(shù)據(jù)倉庫上,添加一個或多個新的大容量數(shù)據(jù)流,還有一些支持數(shù)據(jù)存儲和業(yè)務分析的專業(yè)軟硬件。數(shù)據(jù)存儲問題通常是通過部署一個專門的硬件一體機來協(xié)調(diào),這樣就可以在存儲大量數(shù)據(jù)的同時還能夠提供超快的數(shù)據(jù)訪問。
在這樣的情況下,我們還需要考慮數(shù)據(jù)庫設計的問題么?
大數(shù)據(jù)環(huán)境下的數(shù)據(jù)建模
大多數(shù)DBA認為:良好的數(shù)據(jù)庫設計是系統(tǒng)和應用程序設計的一部分。很多的業(yè)務需求,如數(shù)據(jù)可用性,清理處理,還有應用性能都可以利用特定的數(shù)據(jù)庫設計加以解決。
那么對于大數(shù)據(jù)又如何呢?有趣的是,為大數(shù)據(jù)業(yè)務分析提供軟硬件解決方案的供應商總是宣稱數(shù)據(jù)庫設計并不是那么重要。他們認為,由于數(shù)據(jù)是以專門的格式進行存儲的,所以大多數(shù)數(shù)據(jù)庫設計便沒有了用武之地。
在這個問題上的困惑通常是源于對解決方案要以何種特殊的方式執(zhí)行大數(shù)據(jù)查詢的誤解。簡單來說就是,在大多數(shù)情況下,數(shù)據(jù)會存儲在兩個 地方:你當前的生產(chǎn)數(shù)據(jù)庫管理系統(tǒng)(DBMS)和新型專用的一體機。當前的生產(chǎn)流程是提取,轉(zhuǎn)換并加載數(shù)據(jù)到當前DBMS,繼續(xù)按原樣操作,還有一個額外 步驟:每當你加載數(shù)據(jù)到一個表的時候,你還要確保新數(shù)據(jù)也能被加載到新一體機中去。
在DBMS加載成功后,便可以馬上把數(shù)據(jù)加載到一體機,或者可以供后續(xù)執(zhí)行分批處理。而重要的是,在任何大數(shù)據(jù)查詢使用已加載數(shù)據(jù)來獲得性能改善之前,必須先把數(shù)據(jù)加載到一體機。
數(shù)據(jù)庫設計是質(zhì)量的保證
有質(zhì)量的數(shù)據(jù)庫設計意味著什么呢?一般來說,數(shù)據(jù)庫設計開始于數(shù)據(jù)模型和定義之間關(guān)系的業(yè)務規(guī)則。例如,訂單總是與客戶相關(guān)的,并且客戶可能沒有訂單或者有多個訂單。有了這些東西以及數(shù)據(jù)元素定義和屬性,數(shù)據(jù)庫設計就可以在以下領(lǐng)域解決,處理或是降低風險:
通過自動數(shù)據(jù)元素有效值檢查來協(xié)助避免缺陷;
在應用構(gòu)建和測試期間允許缺陷檢測和修復;
盡可能讓數(shù)據(jù)驗證接近其源頭;
提供穩(wěn)定性,可靠性,數(shù)據(jù)可訪問性和系統(tǒng)擴展性。
數(shù)據(jù)庫設計人員的做法有什么差別?
糟糕的數(shù)據(jù)庫設計對技術(shù)支持的影響非常之大,他們必須實時處理系統(tǒng)問題,這樣就會抬升定位和解決問題的成本。其在產(chǎn)品行為上還會體現(xiàn)為惹惱或是趕走客戶。而與糟糕設計相關(guān)的最常見的問題就是非常差得應用性能和數(shù)據(jù)沖突。
典型的修復方法包括數(shù)據(jù)庫重組或重新設計,如添加表索引和改變表分區(qū)和聚簇。然而,在大數(shù)據(jù)環(huán)境中,這些方法在專用一體機中通常是行 不通的。它們只會存在 于數(shù)據(jù)庫的基本表中。這是問題的癥結(jié)所在:盡管供應商聲稱你所有的數(shù)據(jù)都可以遷移至專用一體機,但這絕不是最佳的解決方案。
讓數(shù)據(jù)在主數(shù)據(jù)庫管理系統(tǒng)和一體機之間共存是最好的方法,其原因如下:
避免單點故障。專 用一體機往往存折一個單點故障。雖然有供應商和支持人員的努力,但是一體機中的軟硬件,網(wǎng)絡連接和流程都可能會發(fā)生故障。如果是這樣,如何才能進行滿意的 查詢呢?數(shù)據(jù)協(xié)同定位在數(shù)據(jù)庫管理系統(tǒng)中,查詢結(jié)果可以通過訪問基本表得以滿足。當然,性能肯定會受到影響;但是,如果不這樣做的話,在有人修復這一問題 之前,你的大數(shù)據(jù)應用都會是不可用的。
提供數(shù)據(jù)卸載。查詢并非是數(shù)據(jù)的唯一消費方。一種常見的用法是將生產(chǎn)數(shù)據(jù)卸載到測試環(huán)境。此外,某些第三方供應商軟件工具會直接訪問本地數(shù)據(jù)庫中的數(shù)據(jù),而這在一體機中是不可用的,因為數(shù)據(jù)是以專門的格式進行存儲的。
備份和恢復。最常見的備份和恢復工具都是以那些駐留在數(shù)據(jù)庫中的數(shù)據(jù)為基礎的。而第三方供應商工具通常用于高性能備份和恢復,包括索引恢復。這些備份是針對基本表和表空間執(zhí)行的,而非一體機。
某些性能狀況。在某些情況下,SQL查詢在一體機中無法執(zhí)行。這些限制都是定義在手冊中的,并且隨著供應商一體機和版本的不同而不同。在這些情況下,你別無選擇;你必須訪 問基本表并接受性能的下降。其中一些限制包含了特定的SQL語法,例如可滾動游標,動態(tài)SQL,使用多個字符編碼方案,某些相關(guān)表表達式,以及使用某些內(nèi) 置函數(shù)。
大數(shù)據(jù)的數(shù)據(jù)庫設計
因為你要同時在DBMS和專用一體機中保存數(shù)據(jù),所以標準數(shù)據(jù)庫設計規(guī)則對你來說仍然適用。有趣的是,由于一體機的存在,如今某些規(guī)則得以擴展或是變得更加復雜。下面是一些注意事項:
對索引的需求。索 引服務于 多種需求:它們可以賦予數(shù)據(jù)元素唯一性,它們可以賦予參照完整性關(guān)系,它們可以定義主鍵,并且它們可以定義額外訪問路徑。最后一項是十分重要的。 在大數(shù)據(jù)環(huán)境中,我們的想法是把長時間運行的查詢放進一體機中以進行高速處理。如果某些存在的索引僅僅是提供可選訪問路徑,那么可能就不再需要它們了。數(shù) 據(jù)庫設計或是重新設計應該包括對所謂性能索引的檢查。如果此索引不再被查詢所用,那么就可以刪除它們,從而節(jié)省表數(shù)據(jù)恢復所需要的磁盤空間,處理時間和恢 復時間。
刪除一體機的SQL限制。通常來說,數(shù)據(jù)的業(yè)務規(guī)則決定著數(shù)據(jù)庫設計的部分內(nèi)容。這包括進行物理分區(qū)以允許更快 的查詢和更簡便的數(shù)據(jù)清理,諸如字段約束在內(nèi)的數(shù)據(jù)元素域檢查,以及用于支持參照完整性規(guī)則的主鍵和外鍵定義。接著,應用程序開發(fā)人員會編寫SQL查詢來 訪問數(shù)據(jù)。此外,用戶可能擁有的報告工具會自動為查詢和報告生成SQL代碼。因為SQL查詢語法和功能取決于數(shù)據(jù)庫設計,所以設計人員需要對一體機限制熟 稔于胸。
為高速一體機的數(shù)據(jù)加載進行設計。現(xiàn)在正常的數(shù)據(jù)庫加載過程包含一個額外步驟:將數(shù)據(jù)加載進一體機。如何才能對此以最佳的方式實現(xiàn)呢?這主要取決于你的應用和數(shù)據(jù)波動程度,因此要考慮以下變量:
定期批量加載(每天,每小時)一體機,但要明白其中的數(shù)據(jù)并不完全是最新的。
細流加載,基本表中的記錄有過更新的地方會同步傳送至一體機。這樣就會保持一體機數(shù)據(jù)最新,但是記錄的處理要比批量加載緩慢許多。.
總結(jié)
雖然數(shù)據(jù)庫軟硬件方面的進步可以將數(shù)據(jù)查詢的速度提升一個檔次,但大數(shù)據(jù)和一體機并沒有把對良好數(shù)據(jù)庫設計的需求棄之不用。實際上,設計人員有更多的事情需要去考慮:備份和恢復,索引管理,多途徑數(shù)據(jù)訪問,以及SQL限制。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調(diào)研數(shù)據(jù)中的深度應用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03