【大數據】什麼是數據倉庫?

閱讀文本大概需要 3 分鐘。

數據庫我們大家都知道,在平時的 Web 開發中用到的比較多。但是數據倉庫是什麼呢?他倆有啥區別呢?在開始之前先分享一個小故事:

1.

在很久很久以前,世界上生活着許多種族,有人類,有矮人,有精靈......他們有着不同的信仰,不同的文化,彼此相安無事。可是,有一個鋼鐵直男卻偏偏想要統治整個世界。

如何統治這麼多不同文化信仰的種族呢?猥瑣男想出一個餿主意,打造出幾枚擁有魔力的戒指,免費送給不同種族的領袖,讓他們可以更好地統治各自的族人。

當各個種族的領袖美滋滋地戴上各自的魔戒,走上人生巔峯的時候,猥瑣男又打造出一枚獨一無二的至尊魔戒。他利用至尊魔戒的力量控制了所有的魔戒,從而控制了各個種族的領袖,繼而控制了整個世界。

這個故事告訴我們:數據庫和數據倉庫之間的關係。

如果說,那個世界的每一個生命個體都是一條數據記錄,那麼普通的魔戒的地位就好比是數據庫,而至尊魔戒的地位就好比是數據倉庫。

2.

什麼是數據倉庫?

給一個定義?

數據倉庫,英文名稱 Data Warehouse,簡寫爲DW。數據倉庫顧名思義,是一個很大的數據存儲集合,出於企業的分析性報告和決策支持目的而創建,對多樣的業務數據進行篩選與整合。它爲企業提供一定的BI(商業智能)能力,指導業務流程改進、監視時間、成本、質量以及控制。

看到這裏你可能還不是很清楚他到底是幹嘛的,但是你得明確一個方向,它是面向決策的。

數據倉庫的輸入方是各種各樣的數據源,最終的輸出用於企業的數據分析、數據挖掘、數據報表等方向。

那麼,數據倉庫都有什麼特點呢?

1.主題性

不同於傳統數據庫對應於某一個或多個項目,數據倉庫根據使用者實際需求,將不同數據源的數據在一個較高的抽象層次上做整合,所有數據都圍繞某一主題來組織。

這裏的主題怎麼來理解呢?比如對於城市,“天氣溼度分析”就是一個主題,對於淘寶,“用戶點擊行爲分析”就是一個主題。

2.集成性

數據倉庫中存儲的數據是來源於多個數據源的集成,原始數據來自不同的數據源,存儲方式各不相同。要整合成爲最終的數據集合,需要從數據源經過一系列抽取、清洗、轉換的過程。大家從上圖也可以看到,數據來源於 Mysql 、MongoDB、其他第三方數據源。

3.穩定性

數據倉庫中保存的數據是一系列歷史快照,不允許被修改。用戶只能通過分析工具進行查詢和分析。這裏說明一點,數據倉庫基本上是不許允許用戶進行修改,刪除操作的。大多數的場景是用來查詢分析數據。

4.時變性

數據倉庫會定期接收新的集成數據,反應出最新的數據變化。這和特點並不矛盾。注意,這裏與實時性不同。

3.

主流的開源數據倉庫:Hive

在大數據應用中,Hive 用的比較多一些,因爲啥?免費啊。性能也算可以。至於其他的商業數據數據倉庫,性能要比 Hive 高出很多,但是中小公司沒必要去花大量成本去使用商業數據倉庫了。

這個 Hive 作爲數據倉庫,具體做了什麼呢?

一句話:Hive 的主要作用就是講結構化的數據映射爲 Hive 數據庫表,並提供 HQL 查詢語句,可以將 HQL 語句轉化爲 MapReduce 任務運行。

確切地說,Hive是基於Hadoop的數據倉庫工具,可以對存儲在HDFS上的文件數據集進行查詢和分析處理。Hive對外提供了類似於SQL語言的查詢語言 HiveQL,在做查詢時將HQL語句轉換成MapReduce任務,在Hadoop層進行執行。

換一個角度,就是一個不懂編程語言的 DBA 也可以使用 Hive 編寫 HQL 語句進行數據統計。給數據分析帶來跟大的便宜性。

上面出現的名詞解釋:

1.HDFS

Hadoop的分佈式文件系統,在這裏作爲數據倉庫的存儲層。圖中的Data Node就是HDFS的衆多工作節點。

2.MapReduce

一種針對海量數據的離線分佈式並行計算模型,可以簡單理解爲對多個數據分片的數據轉換和合並。

3.Hbase

HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分佈式存儲系統,是一個開源數據庫。利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集羣。

4.

上面是從原理角度講了數據倉庫以及數據倉庫其中一款開源工具 Hive 。

實際中,我們的目的做數據處理。要知道數據處理大致可以分成兩大類:聯機事務處理OLTP(on-line transaction processing)、聯機分析處理OLAP(On-Line Analytical Processing)。OLTP是傳統的關係型數據庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。OLAP是數據倉庫系統的主要應用,支持複雜的分析操作,側重決策支持,並且提供直觀易懂的查詢結果。 

下圖是兩種數據處理方式的對比,這裏你可以具體到數據庫和數據倉庫的對比。

通過兩種對比,可以看出傳統數據庫和數據倉庫分別使用的場景。

要求實時性(秒級以及更快的場景)業務需求,使用的數據庫(OLTP)模型。

整合歷史數據以及大量數據源數據的場景,且不要求響應時間的,使用數據倉庫(OLAP)。

5.

在實際的使用中,Hive 也要結合關係型數據庫進行使用。Hive 運行時,元數據信息是保存在關係中數據庫中,一般使用 Mysql 數據庫存儲。

對大數據以及人工智能概念都是模糊不清的,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大數據學習qq羣:458345782,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大數據講師給大家免費授課,給大家分享目前國內最完整的大數據高端實戰實用學習流程體系 。從java和linux入手,其後逐步的深入到HADOOP-hive-oozie-web-flume-python-hbase-kafka-scala-SPARK等相關知識一一分享!

                                                            大數據

                                                             數據

                                                              大

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章