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