大資料從百萬級別資料的分析角度,資料庫如何選擇?

2021-06-29 03:53:25 字數 1134 閱讀 9965

現在需要做乙個資料儲存,500w左右的資料,日後每天大約產生5w條左右的資料。想把這些資料儲存起來,供日後的資料分析用?使用上面說的三種資料庫中的哪中比較好?是否有必要建立集群?

個人看法是:從長遠角度看,由於單台機器的效能瓶頸,後期肯定要做集群,單純的做複製最終也無法緩解單台master上讀的負擔。因此,使用mysql的話會使用cluser。但是了解到mysql的cluser要用好的化還要做負載均衡,而mysql的均衡器是第三方的,無法很好的與mysql整合。使用mongodb的自動分片集群能很好的解決這個問題,而且它的讀寫效能也快。hbase提供了大資料儲存的解決方案。

回到我問題,最終是要在大資料的基礎上做資料分析,雖然mongodb也能與mapreduce整合,但想必hbase做這一塊會更有優勢。

雲碼答案:

百萬級的資料,無論側重oltp還是olap,當然就是mysql了。

過億級的資料,側重oltp可以繼續mysql,側重olap,就要分場景考慮了。

實時計算場景:強調實時性,常用於實時性要求較高的地方,可以選擇storm;

批處理計算場景:強調批處理,常用於資料探勘、分析,可以選擇hadoop;

實時查詢場景:強調查詢實時響應,常用於把db裡的資料轉化索引檔案,通過搜尋引擎來查詢,可以選擇solr/elasticsearch;

企業級ods/edw/資料集市場景:強調基於關係性資料庫的大資料實時分析,常用於業務資料整合,可以選擇greenplum;

資料庫系統一般分為兩種型別:

傳統資料庫側重交易處理,即oltp,關注的是多使用者的同時的雙向操作,在保障即時性的要求下,系統通過記憶體來處理資料的分配、讀寫等操作,存在io瓶頸。

oltp(on-line transaction processing,聯機事務處理)系統也稱為生產系統,它是事件驅動的、面向應用的,比如電子商務**的交易系統就是乙個典型的oltp系統。

oltp的基本特點是:

資料庫的各種操作主要基於索引進行。

分析型資料庫是以實時多維分析技術作為基礎,即側重olap,對資料進行多角度的模擬和歸納,從而得出資料中所包含的資訊和知識。

olap(on-line analytical processing,聯機分析處理)是基於資料倉儲的資訊分析處理過程,是資料倉儲的使用者介面部分。olap系統是跨部門的、面向主題的,其基本特點是:

百萬級別資料庫優化技巧

優化方向 sql語句優化 索引 分表.sql語句優化 1 不要返回用不到的資料 select from shop user select id username from shop user 2 where 跟 order by 是搜尋的關鍵,避免全表掃瞄。考慮在對應的列上建立索引 where 語句...

百萬級別的大資料查詢效能分析

實際上可以從下面幾個方面提高效能 最根本的還是從索引查詢,避免全表掃瞄。1.伺服器端 資料表資料太多的話要建立索引,以提高查詢速度 查詢改用儲存過程,實際上現在比較傾向於所有查詢都寫能儲存過程,在實際過程中應根據具體情況而定。2.伺服器 客戶端 查詢時一次不要從伺服器端取過多的資料,以免過多地占用網...

JAVA使用POI如何匯出百萬級別資料

經常使用excel的人應該都能知道excel2007及以上版本可以輕鬆實現儲存百萬級別的資料,但是系統中的大量資料如何能夠快速準確的匯入到excel中這好像是個難題,對於一般的web系統,我們為了解決成本,基本都是使用的入門級web伺服器tomcat,jdk在32為系統中支援的記憶體不能超過2個g,...