自創(chuàng)立之日起,酷克數(shù)據(jù)一直致力于降低企業(yè)進(jìn)行大數(shù)據(jù)分析的門檻,推動數(shù)據(jù)民主化。今天,我們朝這個目標(biāo)邁出了第一步:酷克數(shù)據(jù)在青云QingCloud上推出基于PostgreSQL和Greenplum Database的SQL-on-Cloud解決方案--HashData數(shù)據(jù)倉庫。利用HashData數(shù)據(jù)倉庫,企業(yè)用戶可以隨時隨地用標(biāo)準(zhǔn)的SQL客戶端和BI工具對海量數(shù)據(jù)進(jìn)行極速分析,輕松把握商業(yè)趨勢,及時應(yīng)對各種變化。
什么是HashData數(shù)據(jù)倉庫
HashData數(shù)據(jù)倉庫是一個高性能、完全托管的PB級數(shù)據(jù)倉庫服務(wù),讓企業(yè)用戶能夠更輕松地分析海量數(shù)據(jù)。通過使用HashData,企業(yè)用戶無需購買、配置和管理龐大的服務(wù)器集群,按使用量付費(fèi),沒有任何前期投入,使得數(shù)據(jù)存儲和分析的成本不到傳統(tǒng)解決方案的十分之一。另外,HashData數(shù)據(jù)倉庫兼容標(biāo)準(zhǔn)的JDBC和ODBC,無縫集成企業(yè)內(nèi)部已有的ETL和BI工具。這意味著HashData數(shù)據(jù)倉庫使用起來跟部署在企業(yè)內(nèi)部數(shù)據(jù)中心的傳統(tǒng)數(shù)據(jù)倉庫一樣自然方便。
HashData數(shù)據(jù)倉庫的優(yōu)勢
完全托管,快速上手
通過使用HashData云服務(wù),企業(yè)用戶可以在幾分鐘內(nèi)創(chuàng)建啟動一個包含幾個到幾十個甚至上百個節(jié)點(diǎn)(根據(jù)業(yè)務(wù)需求)的數(shù)據(jù)倉庫集群,數(shù)據(jù)加載后馬上可以開始數(shù)據(jù)分析任務(wù)。隨著業(yè)務(wù)負(fù)載的變化,用戶還可以動態(tài)地對數(shù)據(jù)倉庫集群進(jìn)行縱向伸縮(scale up and down)和橫向伸縮(scale in and out)。同時,由于是完全托管的云服務(wù),HashData數(shù)據(jù)倉庫承擔(dān)了所有的集群資源配置、數(shù)據(jù)備份、持續(xù)監(jiān)控、網(wǎng)絡(luò)遷移、錯誤恢復(fù)、高可用和升級等紛繁復(fù)雜、極易出錯的運(yùn)維工作,讓用戶專注于業(yè)務(wù)分析上面。
為數(shù)據(jù)倉庫而優(yōu)化的架構(gòu)
大規(guī)模并行處理(MPP)架構(gòu):基于企業(yè)級PostgreSQL數(shù)據(jù)庫和MPP架構(gòu)的分布式數(shù)據(jù)庫Greenplum Database,HashData數(shù)據(jù)倉庫通過將數(shù)據(jù)切片分布到各個計(jì)算節(jié)點(diǎn)后并行處理來解決海量數(shù)據(jù)分析的難題。每個HashData數(shù)據(jù)倉庫集群由一個稱為Master節(jié)點(diǎn)的主節(jié)點(diǎn)和多個稱為Segment節(jié)點(diǎn)的計(jì)算節(jié)點(diǎn)組成。主節(jié)點(diǎn)和每個計(jì)算節(jié)點(diǎn)都有自己獨(dú)立的CPU,內(nèi)存和外部存儲。主節(jié)點(diǎn)負(fù)責(zé)接收客戶端的請求,生成查詢計(jì)劃,并將計(jì)劃下發(fā)到每個計(jì)算節(jié)點(diǎn),協(xié)調(diào)查詢計(jì)劃的完成,最后匯總查詢結(jié)果返回給客戶端。計(jì)算節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的存儲以及查詢計(jì)劃的執(zhí)行。計(jì)算節(jié)點(diǎn)之間是沒有任何共享依賴的(shared nothing)。查詢在每個計(jì)算節(jié)點(diǎn)上面并行執(zhí)行,大大提升了查詢的效率。
列式存儲:HashData數(shù)據(jù)倉庫提供了列式的存儲策略。由于數(shù)據(jù)倉庫中的大部分查詢只涉及整表中的部分字段,相比于行式存儲需要加載整表的數(shù)據(jù),列式存儲只需要加載某幾列的數(shù)據(jù),磁盤的IO及內(nèi)存的消耗都顯著減小。同時,HashData數(shù)據(jù)倉庫還支持按列數(shù)據(jù)壓縮。由于同列的數(shù)據(jù)類型相同、甚至有很多值也相同,按列的壓縮比會非常高。這大大減少磁盤占用空間、讀寫IO和內(nèi)存占用空間,并提高了查詢的性能。
大表分區(qū):MPP架構(gòu)實(shí)現(xiàn)了對表數(shù)據(jù)的橫向物理切分,而表分區(qū)則是對表數(shù)據(jù)的縱向邏輯切分,將一張頂層(父)大表根據(jù)約束條件分成一層或多層子表,每一層包含多張子表。HashData數(shù)據(jù)倉庫支持基于數(shù)值范圍(如日期或價格)、列表包含的數(shù)值(如銷售地區(qū)或產(chǎn)品線)以及兩者組合的分區(qū)策略。當(dāng)查詢優(yōu)化器能夠利用查詢語句中的過濾條件(與分區(qū)表的約束條件進(jìn)行匹配)避免大部分分區(qū)掃描的時候,查詢性能將得到大幅的提升。
互聯(lián)互通,擁抱開源
HashData數(shù)據(jù)倉庫服務(wù)實(shí)現(xiàn)了多種途徑將存放在青云QingCloud上面的數(shù)據(jù)加載到數(shù)據(jù)倉庫中以供分析。對于傳統(tǒng)的沒有使用云的用戶,只需要先將數(shù)據(jù)文件上傳到青云QingCloud上面,同樣可以使用HashData數(shù)據(jù)倉庫來分析海量數(shù)據(jù)。
從QingStor對象存儲中加載數(shù)據(jù):傳統(tǒng)的用戶可以將數(shù)據(jù)文件上傳到青云QingCloud的對象存儲服務(wù)QingStor上,然后利用HashData提供的命令將QingStor中的數(shù)據(jù)并行加載到數(shù)據(jù)倉庫中。
從Hadoop中加載數(shù)據(jù):青云QingCloud提供了基于Hadoop框架的大數(shù)據(jù)處理服務(wù)。經(jīng)過大數(shù)據(jù)平臺加工后存放在HDFS上的數(shù)據(jù)可以通過HashData數(shù)據(jù)倉庫的SQL語句直接加載到數(shù)據(jù)倉庫中。
其它數(shù)據(jù)源:青云QingCloud提供了很多數(shù)據(jù)服務(wù),如關(guān)系型數(shù)據(jù)庫MySQL和PostgreSQL,NoSQL數(shù)據(jù)庫MongoDB,緩存服務(wù)redis,消息服務(wù)Kafka,以及服務(wù)器本身。在后續(xù)版本開發(fā)中,HashData會逐步實(shí)現(xiàn)相應(yīng)的訪問協(xié)議從這些服務(wù)將數(shù)據(jù)加載到數(shù)據(jù)倉庫中。
為了充分利用云平臺的特性,HashData數(shù)據(jù)倉庫在PostgreSQL和Greenplum Database的基礎(chǔ)上對系統(tǒng)架構(gòu)和運(yùn)行實(shí)現(xiàn)進(jìn)行了深度的優(yōu)化,但查詢接口(甚至是使用習(xí)慣)以及底層數(shù)據(jù)文件存儲格式和訪問協(xié)議保持與開源版本的PostgreSQL和Greenplum Database一致。即便是那些為青云QingCloud數(shù)據(jù)服務(wù)而開發(fā)的訪問協(xié)議代碼也將陸續(xù)開源。所以,使用HashData數(shù)據(jù)倉庫完全沒有數(shù)據(jù)綁架的風(fēng)險。
豐富的分析功能
作為企業(yè)級的數(shù)據(jù)庫和數(shù)據(jù)倉庫產(chǎn)品,PostgreSQL和Greenplum Database提供了豐富的分析功能。HashData數(shù)據(jù)倉庫在繼承這些功能的同時,并結(jié)合云平臺的特性進(jìn)行了調(diào)整和改進(jìn)。
SQL: HashData數(shù)據(jù)倉庫實(shí)現(xiàn)了ANSI SQL 2008標(biāo)準(zhǔn)和2003 OLAP擴(kuò)展,支持標(biāo)準(zhǔn)的JDBC和ODBC接口。業(yè)界常用的ETL和BI工具都可以支持HashData數(shù)據(jù)倉庫作為分析引擎。
用戶自定義分析:通過支持用戶自定義數(shù)據(jù)處理函數(shù),HashData數(shù)據(jù)倉庫大大擴(kuò)展了自身的分析能力。支持的語言包括PL/Pgsql,PL/C,PL/Python,PL/JAVA和PL/R。
機(jī)器學(xué)習(xí):HashData數(shù)據(jù)倉庫原生支持Apache MADlib,一個開源的,基于SQL的in-database機(jī)器學(xué)習(xí)庫。Apache MADlib基本包含了所有常見的機(jī)器學(xué)習(xí)方法。
其它:全文檢索和地理信息處理是很重要的分析功能。PostgreSQL社區(qū)提供了相應(yīng)的擴(kuò)展和項(xiàng)目,但這些功能模塊現(xiàn)在只支持單機(jī)版的執(zhí)行引擎。HashData數(shù)據(jù)倉庫計(jì)劃在未來的版本中提供基于這些項(xiàng)目的并行全文檢索和地理信息處理功能。
總結(jié)
上面討論了很多HashData數(shù)據(jù)倉庫的技術(shù)功能,但如同酷克數(shù)據(jù)的公司使命,HashData數(shù)據(jù)倉庫云服務(wù)給企業(yè)帶來的真正價值在于,它降低了企業(yè)進(jìn)行大數(shù)據(jù)分析的技術(shù)門檻,消除了規(guī)劃、購買和運(yùn)維大量基礎(chǔ)設(shè)施給企業(yè)帶來的負(fù)擔(dān),讓企業(yè)專注于自己的核心業(yè)務(wù)上面。加載數(shù)據(jù),分析數(shù)據(jù),挖掘價值,其他一切交給HashData!