本文介绍表格存储的系统架构和典型应用架构。
系统架构
表格存储的架构如下图所示。
业务场景
表格存储适用于元数据、消息数据、时空数据、大数据等场景下的系统搭建。
数据接入
表格存储提供SDK、DataWorks、IoT规则引擎等多种数据接入方式,支撑应用数据、消息数据、物联网数据等不同业务类型结构化数据的存储。
Tablestore
多模型数据存储
表格存储针对不同业务类型的结构化数据提供了宽表(WideColumn)模型、时序(TimeSeries)模型和消息(Timeline)模型三种数据存储模型。
模型
描述
宽表模型
类Bigtable/HBase模型,可应用于元数据、大数据等多种场景,支持数据版本、生命周期、主键列自增、条件更新、局部事务、原子计数器、过滤器等功能。更多信息,请参见宽表模型。
时序模型
针对时间序列数据的特点进行设计的模型,可应用于物联网设备监控、设备采集数据、机器监控数据等场景,支持自动构建时序元数据索引、丰富的时序查询能力等功能。更多信息,请参见时序模型。
消息模型
针对消息数据场景设计的模型,可应用于IM、Feed流等消息场景。能满足消息场景对消息保序、海量消息存储、实时同步的需求,同时支持全文检索与多维度组合查询。更多信息,请参见消息模型。
多元化数据索引
除了支持主键查询,表格存储还支持二级索引和多元索引的索引方式,提供强大的数据查询能力。
索引类型
描述
数据表主键
数据表类似于一个巨大的Map,它的查询能力也就类似于Map,只能通过主键查询。
二级索引
通过创建一张或多张索引表,使用索引表的主键列查询,相当于把数据表的主键查询能力扩展到了不同的列。
多元索引
使用了倒排索引、BKD树、列存等结构,具备丰富的查询能力,例如非主键列的条件查询、多条件组合查询、地理位置查询、全文检索、模糊查询、嵌套结构查询、统计聚合等。
冷热分层存储
数据存储支持自动冷热分层,同时表格存储支持高性能实例和容量型实例两种实例规格来满足不同业务的数据存储需求。
实例规格
描述
高性能实例
适用于对读写性能和并发都要求非常高的场景,例如游戏、金融风控、社交应用、推荐系统等。
容量型实例
适用于对读性能不敏感,但对成本较为敏感的业务,例如日志监控数据、车联网数据、设备数据、时序数据、物流数据、舆情监控等。
数据湖投递
将表数据全量备份或实时投递数据到数据湖OSS中存储。投递的数据兼容开源生态标准,按照Parquet列存格式存储,兼容Hive命名规范。您可以使用E-MapReduce直接对投递到OSS的数据进行外表分析。
计算生态对接
支持对接主流开源流批计算引擎,包括Flink、Spark、Presto等。
与阿里大数据平台生态组件有较完善的对接,包括DataWorks、DataHub、MaxCompute等。
典型应用架构
根据使用场景不同,表格存储有互联网应用架构、数据湖架构和物联网架构三种典型应用架构。
互联网应用架构
互联网应用架构包括数据库分层架构和分布式结构化数据存储架构,主要用于电商订单、直播弹幕、网盘中文件元数据、社交网络中即时通讯等场景。
数据库分层架构
在数据库分层架构中,使用Tablestore配合MySQL来完成应用系统的业务需求,利用MySQL的事务能力来处理对事务强需求的写操作与部分读操作,利用Tablestore的数据检索能力和大数据存储来实现数据存储、查询与分析。
分布式结构化数据存储架构
在分布式结构化数据存储架构中,Tablestore直连应用系统实现简单的事务处理和高并发数据读写。
数据湖架构
数据湖架构主要用于数据中台、推荐系统、风控系统等场景。
在数据湖架构中,表格存储作为源表、结果表或者维表对接流批计算引擎实现大数据计算与分析。
物联网架构
物联网架构主要用于车联网、智能家电、工业物联网、物流等场景。
在物联网架构中,表格存储作为IoT基础设施中的统一数据存储平台来存储物联网平台相关的时序数据、元数据、消息数据等,并提供丰富的数据分析处理能力。