基于TableStore/MaxCompute的数据采集分析系统介绍

优采云 发布时间: 2020-08-12 19:10

  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的需求,可以直接联系我们,支持上去也很快。

  总结

  表格储存因其高性能、高吞吐、高可靠的特点,使得它在数据采集这种对前端吞吐要求很高的场景下特别适用,客户端数据直读直写表格储存,也为前端节约了中间层数据流转这一层服务,减少了复杂性也节约了成本。另外,表格储存对接了丰富的估算、分析、展示工具可以覆盖数据采集与剖析的几乎所有场景,本文所介绍的周边组件也只囊括了一部分,更多的示例与说明请参考表格储存用户手册。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线