摘要: 摘要 在互联网高度发达的今天,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
相关推荐
《基于TableStore的数据采集分析系统》 在当前数字化时代,数据采集与分析已经成为提升软件质量的关键环节,如PV/UV统计、用户行为分析等。面对海量的智能终端数据,构建一个能够满足高吞吐、实时性、分析能力和...
适用于Go的Aliyun tablestore SDK关于此后SDK基于阿里云表格存储服务API构建。阿里云表格存储是阿里云自主研发的NoSQL数据存储服务,提供海量结构化数据的存储和实时访问。运行环境推荐使用Go 1.4及以上。安装方法...
8. **场景实战**:书中通过实际案例,详细讲解了如何使用Tablestore构建大规模订单系统,涵盖架构设计、数据同步、SQL查询、数据分析等多个环节。 在电商订单场景中,Tablestore常被用作分层存储架构的一部分,用于...
阿里云TableStore是一款高效、可扩展、全托管的NoSQL多模型数据库服务,它提供了海量结构化数据的存储和实时查询能力。此压缩包“tablestore-aliyun-win-v1.2.1.zip”显然是针对Windows平台设计的一个图形用户界面...
首先,`tablestore-aliyun-v1.2.1.exe` 是一个针对阿里云表格存储的客户端软件,用于与OTS服务进行交互。这个客户端版本为1.2.1,提供Windows平台的安装包,使得开发者能够方便地在本地进行开发和测试,然后部署到...
综上所述,Flink Table Store 是 Flink 生态系统中的一个重要组成部分,它实现了流批一体的存储方案,旨在提供高效、易用且灵活的数据处理能力,满足现代大数据仓库的实时分析和批量处理需求。通过其丰富的功能和...
阿里云Table Store是一款分布式NoSQL数据存储服务,它提供海量结构化数据的存储和实时查询功能,广泛应用于大数据分析、物联网(IoT)、日志分析等领域。PHP版SDK是针对开发者提供的工具,使得PHP程序员可以方便地在...
在这个背景下,tablestore库可能提供了与容器化平台如Docker和Kubernetes集成的能力,以及对分布式系统协调工具Zookeeper的支持。 Zookeeper是一个分布式的、开放源码的协调服务,用于管理配置信息、命名服务、...
作为一款NoSQL数据库,Table Store提供了丰富的数据模型,支持海量数据的存储和实时查询,适用于大数据分析、物联网(IoT)、日志分析等多种场景。 **一、OTS客户端** OTS(Open Table Service)客户端是用于与表格...
- **场景实战**:通过实际案例,如大规模订单系统,展示如何利用Tablestore构建高可用、高性能的存储架构,包括数据同步、SQL查询、联邦查询、数据处理和分析等。 在订单系统实践中,Tablestore被用作冷数据存储,...
在数据模型部分,Table Store产品的数据模型被介绍为一个基于行存储的NoSQL数据库,支持多种数据类型,包括数字、字符串、日期和时间等。 在数据存储部分,Table Store产品的数据存储机制被介绍为一个高性能的存储...
舆情系统使用TableStore存储海量原始数据,并与ElasticSearch结合,实现数据的闭环分析。 TableStore的技术架构 TableStore的技术架构包括分布式+LSM存储引擎、动态负载均衡、热点快速迁移等特点。TableStore还...
python实现清tablestore和redis tablestore不支持一键清库,我们需要根据主键单条删除。
阿里云专有云Enterprise版表格存储TableStore V3.1.0 产品简介 ...阿里云专有云Enterprise版表格存储TableStore V3.1.0 产品简介是企业构建大规模数据存储系统的理想选择,能够满足企业对大数据存储和分析的需求。
在基于STM32F407的多通道数据采集系统中,数据采集是通过ADC(模拟数字转换器)模块完成的,该模块能够将来自传感器或其他模拟信号源的输入转换为数字值,以便微控制器进行处理。在描述中提到的"双BUFF"策略,是数据...
TableStore的应用场景包括大规模数据存储、实时数据处理、数据分析等领域。TableStore能够帮助企业快速构建大规模数据存储和处理系统,从而提高企业的数据处理能力和业务效率。 该资源摘要信息对阿里云专有云...
Java医疗数据分析管理系统源码 运行环境 jdk8+tomcat8+mysql+eclipse+maven 项目技术 spring+spring mvc+mybatis+bootstrap+jquery+bootstrap-table+echarts 登录地址:http://localhost:8080/log/do.html 管理员 ...
Apache Flink Table Store 是一个专为实时数据处理和分析设计的高性能存储系统,它结合了流处理和批处理的优势,提供了全链路实时流动的数据处理能力。Flink Table Store 主要应用于构建实时数仓和动态表,支持高效...
总之,基于Flink的分布式数据分析系统利用Java编程语言,结合Flink的强大功能,能够有效地处理和分析大规模数据,满足实时和离线分析的需求。开发者可以通过理解Flink的API、窗口机制、状态管理等核心概念,构建出...
在应用场景部分,文档可能会讨论Table Store如何适用于日志存储、物联网(IoT)数据处理、社交网络分析、推荐系统等多种业务场景。同时,文档也会包含最佳实践,指导用户如何优化数据模型、配置读写策略,以及如何进行...