大數(shù)據(jù)取數(shù)工具演進(jìn)之路
在降本增效的大環(huán)境下,人力資源和服務(wù)器資源都愈發(fā)的緊張,但人們對于數(shù)據(jù)獲取的需求卻在不斷的提高。大家期望可以查詢的速度更快,查詢的數(shù)據(jù)量更大,查詢的交互更友好,查詢工具的使用門檻更低......本文從大數(shù)據(jù)的起源講起,逐步講解到現(xiàn)在的大數(shù)據(jù)取數(shù)產(chǎn)品。
一、大數(shù)據(jù)起源
1.1、google論文發(fā)布
如果問存儲數(shù)據(jù)量最大的互聯(lián)網(wǎng)公司是哪家?那做搜索的Google應(yīng)該是一個有力的競爭者。
作為一家搜索引擎公司,Google需要保存大量網(wǎng)頁數(shù)據(jù),還要對海量的數(shù)據(jù)進(jìn)行快速的搜索、計算、排名等處理。而在這個過程中,有大量的數(shù)據(jù)需要存儲和計算,所以Google內(nèi)部研發(fā)出了對應(yīng)的解決方案,并在2003年開始相繼公布了對應(yīng)的技術(shù)解決方案,也就是開啟大數(shù)據(jù)工業(yè)時代的三駕馬車。
其中兩篇論文是:
- 于2003年發(fā)布《The Google File System》,用于處理海量網(wǎng)頁的存儲
- 于2004年 發(fā)布《MapReduce: Simplified Data Processing on Large Clusters》,可用于處理海量網(wǎng)頁的索引計算問題
這兩篇論文讓業(yè)界為之一振,這時突然大家恍然大悟,原來還可以這么玩。Google的思路是部署一個大規(guī)模的服務(wù)器集群,通過分布式的方式將海量數(shù)據(jù)分散的存儲在這個集群的不同節(jié)點上,然后再利用集群上的所有機(jī)器進(jìn)行數(shù)據(jù)計算。 通過這種方式,Google其實不需要買很多很貴的服務(wù)器,而是把很多普通的服務(wù)器組織到一起,實現(xiàn)了更加強(qiáng)大的功能。
1.2、Hadoop誕生
Lucene(ES)創(chuàng)始人Doug Cutting閱讀了Google的論文后,他非常興奮,緊接著就根據(jù)論文原理初步實現(xiàn)了類似GFS和MapReduce的功能。這也就是后來的Hadoop,主要包括Hadoop分布式文件系統(tǒng)HDFS(Hadoop Distributed File System)和大數(shù)據(jù)計算引擎MapReduce。
1.2.1、HDFS
HDFS是一種分布式文件系統(tǒng),用于存儲和管理大規(guī)模數(shù)據(jù)集的分布式存儲解決方案,通過目錄樹來定位文件。
HDFS的思想:
1、文件數(shù)據(jù)以數(shù)據(jù)塊的方式進(jìn)行切分,數(shù)據(jù)塊可以存儲在集群任意服務(wù)器上,所以HDFS存儲的文件可以非常大。
2、DataNode存儲的數(shù)據(jù)塊會進(jìn)行復(fù)制,使每個數(shù)據(jù)塊在集群里有多個備份,保證了數(shù)據(jù)的可靠性。
HDFS的目錄:
你看到的是一個文件系統(tǒng)而不是很多文件系統(tǒng)。比如你說我要獲取/hdfs/tmp/file1的數(shù)據(jù),你引用的是一個文件路徑,但是實際的數(shù)據(jù)存放在很多不同的機(jī)器上。
1.2.2、MapReduce
MapReduce是一個分布式運(yùn)算程序的編程框架,核心功能是將用戶編寫的業(yè)務(wù)邏輯代碼和自帶默認(rèn)組件整合成一個完整的分布式運(yùn)算程序,并發(fā)運(yùn)行在一個Hadoop集群上。
MapReduce的思想:
這個模型既簡單又強(qiáng)大,簡單是因為它只包含Map和Reduce兩個過程,強(qiáng)大之處又在于它可以實現(xiàn)大數(shù)據(jù)領(lǐng)域幾乎所有的計算需求。我們用大數(shù)據(jù)里面的HolleWorld,也就是wordcount為例說明
代碼實現(xiàn):
Map
Redece
1.3、一點思考
現(xiàn)在大家聽到分布式、大數(shù)據(jù)之類的詞,肯定一點兒也不陌生。
但如果我們回到03、04年,那時鵝廠剛才在香港上市,F(xiàn)acebook和支付寶都是剛剛創(chuàng)立,整個互聯(lián)網(wǎng)還處于懵懂時代。
大多數(shù)公司對數(shù)據(jù)處理的關(guān)注點其實還是聚焦在單機(jī)上,在思考如何提升單機(jī)的性能,尋找更貴更好的服務(wù)器,大家覺得一切都是那么順理成章。
如果回到那個時候,我們能不能跳出思維限制,給出其它方向的解決方案。
二、Hive
2.1、Hive的出現(xiàn)
MapReduce降低了大數(shù)據(jù)編程的難度,很多工程師都可以通過MapReduce開發(fā)大數(shù)據(jù)程序來進(jìn)行數(shù)據(jù)獲取。
但是對于其他有大數(shù)據(jù)分析需求的人,比如數(shù)據(jù)分析師,他們對SQL更加熟悉,但是去編寫MapReduce程序還是有一定的學(xué)習(xí)成本。而且如果每次統(tǒng)計和分析都開發(fā)相應(yīng)的MapReduce程序,人力成本也比較高。那么有沒有辦法進(jìn)行優(yōu)化,讓SQL直接運(yùn)行在大數(shù)據(jù)平臺上呢?
這樣的產(chǎn)品一出現(xiàn),瞬間把大數(shù)據(jù)取數(shù)的門檻大幅度降低,研發(fā)的效率提高的同時,用戶范圍也進(jìn)一步擴(kuò)大。
更進(jìn)一步的,把這些SQL沉淀成模板后,一些愿意動手的業(yè)務(wù)人員也可以初步進(jìn)行大數(shù)據(jù)分析。
2.2、一點思考
思路打開之后,各種類似的SQL引擎產(chǎn)品被設(shè)計了出來,例如執(zhí)行在HBase上的SQL引擎。
有時兩個已經(jīng)存在的東西做結(jié)合可以產(chǎn)生非常好的效果,例如人臉識別、掌紋和支付結(jié)合,功能機(jī)上疊加拍照,大模型和各種數(shù)據(jù)產(chǎn)品的結(jié)合等等。
三、指標(biāo)庫表取數(shù)
雖然Hive降低了大數(shù)據(jù)分析的難度,讓更多的人可以參與的大數(shù)據(jù)的使用上,但很多業(yè)務(wù)人員有沒有數(shù)據(jù)相關(guān)基礎(chǔ)。那能不能有一種不需要有代碼基礎(chǔ),明白業(yè)務(wù)邏輯就能使用的數(shù)據(jù)工具。這類分析工具很多公司都會做,大家的思路也基本類似。
3.1、交互邏輯
主要的產(chǎn)品交互模式就是基于拖拽或篩選的方式,對需要的指標(biāo)和維度進(jìn)行選擇后進(jìn)行分析。本質(zhì)其實就是引導(dǎo)用戶寫一條SQL,而用戶并不需要關(guān)注SQL的語法,進(jìn)一步降低用戶使用的門檻。
火山:
指標(biāo)支持自己配置和直接選擇已有指標(biāo),維度支持功能比較豐富
神策:
3.2、一點思考
1、對于一個工具類的產(chǎn)品,經(jīng)常會面臨著易用性和靈活性的矛盾。如果設(shè)計的足夠靈活,這樣可以支持更多更復(fù)雜的情況,但往往也意味著使用門檻的提高,目標(biāo)用戶的減少。
相反如果設(shè)計的足夠易用,雖然門檻低了,目標(biāo)用戶多了,但很多情況支持不到,或者支持的不完整。在做產(chǎn)品設(shè)計的時候經(jīng)常需要基于業(yè)務(wù)需求、實現(xiàn)成本、項目發(fā)展階段來進(jìn)行設(shè)計。
2、如果我們進(jìn)一步對指標(biāo)和庫表取數(shù)在易用性上提升,那會是什么產(chǎn)品形態(tài)
本文由 @暮雪云然 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)
- 目前還沒評論,等你發(fā)揮!