摘要:今天我們來(lái)介紹一下基于阿里云表格存儲(chǔ),以及相關(guān)的大數(shù)據(jù)產(chǎn)品來(lái)采集與分析數(shù)據(jù)的方案。我們嘗試一種基于和阿里云其他大數(shù)據(jù)產(chǎn)品的新方案,我們先看架構(gòu)圖圖中關(guān)鍵路徑分析頁(yè)等客戶端先通過(guò)埋點(diǎn)系統(tǒng)收集數(shù)據(jù),然后通過(guò)表格存儲(chǔ)的將數(shù)據(jù)寫(xiě)入的原始數(shù)據(jù)表。
摘要: 摘要 在互聯(lián)網(wǎng)高度發(fā)達(dá)的今天,ipad、手機(jī)等智能終端設(shè)備隨處可見(jiàn),運(yùn)行在其中的APP、網(wǎng)站也非常多,如何采集終端數(shù)據(jù)進(jìn)行分析,提升軟件的品質(zhì)非常重要,例如PV/UV統(tǒng)計(jì)、用戶行為數(shù)據(jù)統(tǒng)計(jì)與分析等。雖然場(chǎng)景簡(jiǎn)單,但是數(shù)據(jù)量大,對(duì)系統(tǒng)的吞吐量、實(shí)時(shí)性、分析能力、查詢能力都有較高的要求,搭建起來(lái)并不容易。
摘要
在互聯(lián)網(wǎng)高度發(fā)達(dá)的今天,ipad、手機(jī)等智能終端設(shè)備隨處可見(jiàn),運(yùn)行在其中的APP、網(wǎng)站也非常多,如何采集終端數(shù)據(jù)進(jìn)行分析,提升軟件的品質(zhì)非常重要,例如PV/UV統(tǒng)計(jì)、用戶行為數(shù)據(jù)統(tǒng)計(jì)與分析等。雖然場(chǎng)景簡(jiǎn)單,但是數(shù)據(jù)量大,對(duì)系統(tǒng)的吞吐量、實(shí)時(shí)性、分析能力、查詢能力都有較高的要求,搭建起來(lái)并不容易。今天我們來(lái)介紹一下基于阿里云表格存儲(chǔ),以及相關(guān)的大數(shù)據(jù)產(chǎn)品來(lái)采集與分析數(shù)據(jù)的方案。
TableStore
TableStore(表格存儲(chǔ))是阿里云自主研發(fā)的專業(yè)級(jí)分布式NoSQL數(shù)據(jù)庫(kù),是基于共享存儲(chǔ)的高性能、低成本、易擴(kuò)展、全托管的半結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)平臺(tái),支撐互聯(lián)網(wǎng)和物聯(lián)網(wǎng)數(shù)據(jù)的高效計(jì)算與分析。
目前不管是阿里巴巴集團(tuán)內(nèi)部,還是外部公有云用戶,都有成千上萬(wàn)的系統(tǒng)在使用。覆蓋了重吞吐的離線應(yīng)用,以及重穩(wěn)定性,性能敏感的在線應(yīng)用。表格存儲(chǔ)的具體的特性可以看下面這張圖片。
基于TableStore的數(shù)據(jù)采集分析系統(tǒng)
一個(gè)典型的數(shù)據(jù)采集分析統(tǒng)計(jì)平臺(tái),對(duì)數(shù)據(jù)的處理,主要由如下五個(gè)步驟組成:
對(duì)于上圖流程的具體實(shí)現(xiàn),網(wǎng)上有許多可以參考的案例,數(shù)據(jù)在客戶端采集完以后,如果量比較小,我們可能直接在后端的API上做一次透?jìng)?,然后持久化到RDBMS類型的數(shù)據(jù)庫(kù)中就好了,通過(guò)Sql可以進(jìn)行數(shù)據(jù)分析。如果數(shù)據(jù)量很大,就需要一些中間件來(lái)輔助收集和上傳,然后分別將數(shù)據(jù)寫(xiě)入到在線和離線的系統(tǒng)中,比如先上傳到Flume,F(xiàn)lume可以做數(shù)據(jù)的采集與聚合,再將Flume作為消息的生產(chǎn)者,將生產(chǎn)的消息數(shù)據(jù)通過(guò)Kafka Sink發(fā)布到Kafka中,Kafka作為消息隊(duì)列的角色,可以對(duì)接后端的在線和離線計(jì)算平臺(tái)。如下圖所示:
引入Flume和Kafka的原因有很多,比如他們可以處理大流量的數(shù)據(jù)、做數(shù)據(jù)聚合、保證數(shù)據(jù)不丟失等,但最關(guān)鍵的原因是他們擁有高吞吐的能力。引入的組件多,系統(tǒng)的復(fù)雜性和成本也會(huì)相應(yīng)的增加,上圖中,Spark Streaming/Storm分析完成以后,結(jié)果數(shù)據(jù)還需要引入另外的存儲(chǔ)組件進(jìn)行存儲(chǔ),比如HBase/MySQL,如果引入MySQL可能還需要再引入Redis做熱點(diǎn)數(shù)據(jù)緩存,這樣一來(lái)就更加復(fù)雜了。
我們嘗試一種基于TableStore和阿里云其他大數(shù)據(jù)產(chǎn)品的新方案,我們先看架構(gòu)圖:
圖中關(guān)鍵路徑分析:
1、Web頁(yè)、APP等客戶端先通過(guò)埋點(diǎn)系統(tǒng)收集數(shù)據(jù),然后通過(guò)表格存儲(chǔ)的SDK將數(shù)據(jù)寫(xiě)入TableStore的原始數(shù)據(jù)表。
2、MaxCompute直讀TableStore原始數(shù)據(jù)表的數(shù)據(jù)進(jìn)行分析,然后QuickBI讀取MaxCompute的數(shù)據(jù)進(jìn)行展示,具體操作可參考:MaxCompute直讀直寫(xiě)表格存儲(chǔ)、QuickBI新建云數(shù)據(jù)源。
3、TableStore原始數(shù)據(jù)表中的數(shù)據(jù)可增量同步到ElasticSearch或者openSearch中,同步方法參考:TableStore數(shù)據(jù)同步到ElasticSearch,TableStore數(shù)據(jù)同步到OpenSearch。
4、TableStore中的數(shù)據(jù)可增量同步到Blink/Flink進(jìn)行分析,分析完以后的數(shù)據(jù)再寫(xiě)回TableStore的結(jié)果數(shù)據(jù)表中,DavaV讀取結(jié)果數(shù)據(jù)表的數(shù)據(jù)進(jìn)行展示。
新架構(gòu)優(yōu)勢(shì)分析:
1、客戶端數(shù)據(jù)直讀直寫(xiě)TableStore,不需要再引入API層進(jìn)行數(shù)據(jù)透?jìng)?,降低了?fù)雜度,對(duì)于大型應(yīng)用來(lái)說(shuō)也減少了不少的服務(wù)器成本。
2、TableStore已經(jīng)對(duì)接了豐富了大數(shù)據(jù)組件,包括阿里云的大數(shù)據(jù)產(chǎn)品和開(kāi)源大數(shù)據(jù)產(chǎn)品,數(shù)據(jù)的同步與讀寫(xiě)非常容易。
3、實(shí)時(shí)分析與離線分析后的結(jié)果數(shù)據(jù)再寫(xiě)回TableStore,DataV直接讀取結(jié)果數(shù)據(jù)進(jìn)行展示,因?yàn)門ableStore具備高性能與高吞吐特點(diǎn),不需要再引入Redis等緩存組件,可以簡(jiǎn)化整個(gè)系統(tǒng)。
直讀直寫(xiě)安全問(wèn)題:
關(guān)于數(shù)據(jù)直讀直寫(xiě)TableStore,大家可能都會(huì)想到一個(gè)安全的問(wèn)題,客戶端直連TableStore不是要把AccessKey和AccessId暴露在客戶端嗎?答案是不用,我們使用STSToken授權(quán)訪問(wèn)TableStore,過(guò)程如下圖所示:
TableStore提供的SDK都支持使用STS授權(quán)的方式進(jìn)行訪問(wèn),示例可參考TableStore NodeJs SDK使用STSToken,使用STS方式訪問(wèn)TableStore需要控制好授權(quán)策略,客戶端不需要的接口請(qǐng)不要授權(quán)。
瀏覽器跨域訪問(wèn)TableStore:
如果在瀏覽器端直接訪問(wèn)TableStore,由于瀏覽器有同源策略的限制,會(huì)產(chǎn)生跨域問(wèn)題。因?yàn)門ableStore的EndPoint域名與用戶Web站點(diǎn)的域名不同。解決這個(gè)問(wèn)題的思路有兩個(gè):一是Web端不直接訪問(wèn)TableStore,改為先請(qǐng)求自己的Web Server端,Web Server端再使用TableStore SDK來(lái)發(fā)起請(qǐng)求,這樣其實(shí)就是后端訪問(wèn)了,問(wèn)題解決了但也沒(méi)了我們直讀直寫(xiě)的優(yōu)勢(shì);二是TableStore服務(wù)端通過(guò)某種方式直接支持js跨域請(qǐng)求,這條路我們正在支持當(dāng)中,當(dāng)前處于開(kāi)發(fā)階段,支持的方式是cors協(xié)議支持跨域。但目前也有快捷的支持方式,如果您有瀏覽器直接訪問(wèn)TableStore的需求,可以直接聯(lián)系我們,支持起來(lái)也很快。
作者:boxiao
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/61912.html
摘要:摘要阿里云表格存儲(chǔ)于近期功能再升級(jí),升級(jí)后的表格存儲(chǔ)支持對(duì)采集的數(shù)據(jù)進(jìn)行持久化存儲(chǔ),其新增支持,以及最新發(fā)布的能夠幫助用戶輕松構(gòu)建千萬(wàn)級(jí)和流系統(tǒng)。功能一支持對(duì)采集的數(shù)據(jù)進(jìn)行持久化存儲(chǔ)阿里云表格存儲(chǔ)支持對(duì)采集的數(shù)據(jù)進(jìn)行持久化存儲(chǔ)。 摘要: 阿里云表格存儲(chǔ)于近期功能再升級(jí),升級(jí)后的表格存儲(chǔ)支持對(duì)DataHub采集的數(shù)據(jù)進(jìn)行持久化存儲(chǔ),其Python SDK新增支持Python 3.x,以及...
摘要:產(chǎn)品新功能發(fā)布阿里云發(fā)布對(duì)象存儲(chǔ)支持默認(rèn)加密功能對(duì)象存儲(chǔ)在客戶端和服務(wù)器端具備全面的安全加密能力。針對(duì)小鵬汽車的一系列需求,阿里云為其打造業(yè)界首個(gè)定制車載閃電立方深度學(xué)習(xí)解決方案?!咀钚聞?dòng)態(tài)】 表格存儲(chǔ)TableStore全新升級(jí),打造統(tǒng)一的在線數(shù)據(jù)存儲(chǔ)平臺(tái)! 表格存儲(chǔ) TableStore 是阿里云面向海量結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)自研的 Serverless NoSQL 數(shù)據(jù)庫(kù),被廣泛用于社...
摘要:接下來(lái)來(lái)看一下是如何編寫(xiě)一個(gè)組件的,在看源碼之前,首先還是要對(duì)他的組件的大致功能有一個(gè)了解,這樣我們?cè)诳丛创a的時(shí)候才會(huì)知道這一段大概實(shí)現(xiàn)了什么功能。最后我實(shí)現(xiàn)的功能文檔以及最終的一個(gè)樣例 在你實(shí)現(xiàn)一個(gè)組件過(guò)程中,一定要注意一下幾點(diǎn) 將代碼模塊化并且分離。如果你將大量的邏輯或者是代碼都放在鉤子函數(shù)中(比如mounted),那么寫(xiě)出來(lái)的組件代碼將非常丑陋,這樣子寫(xiě)出的代碼也往往難以維護(hù)。...
摘要:本文章從如下圖所示的最基本的入手,分析組件源代碼。本人已經(jīng)對(duì)組件原來(lái)的源碼進(jìn)行削減,源碼點(diǎn)擊這里下載。還有兩個(gè)重要的函數(shù)與。在組件的階段會(huì)調(diào)用更新,從而觸發(fā)重新渲染。例如當(dāng)組件加載后發(fā)送請(qǐng)求,待請(qǐng)求響應(yīng)賦值,重新渲染。 本文章從如下圖所示的最基本的table入手,分析table組件源代碼。本人已經(jīng)對(duì)table組件原來(lái)的源碼進(jìn)行削減,源碼點(diǎn)擊這里下載。本文只對(duì)重要的代碼片段進(jìn)行講解,推薦...
閱讀 2239·2021-11-19 09:55
閱讀 2724·2021-11-11 16:55
閱讀 3254·2021-09-28 09:36
閱讀 2033·2021-09-22 16:05
閱讀 3387·2019-08-30 15:53
閱讀 1853·2019-08-30 15:44
閱讀 2972·2019-08-29 13:10
閱讀 1408·2019-08-29 12:30