背景
在共享充电宝场景中,一些日常的运维操作可能会要求存储系统能够提供快速的OLAP解决方案。例如运维人员可能不具备开发环境,但会有一些简单查询或计算的需求。、表格存储Tablestore控制台提供了主键查询和多元索引查询两种方式。在已经创建了多元索引的表上,可以通过Tablestore控制台实现快速查询;在未建立多元索引的表上,则不能直接根据属性列进行查询、计算。所以,需要存储系统能够提供便捷的SQL访问能力。
实现方案
采用DLA+Tablestore+OSS的方案实现使用SQL语言对Tablestore中的数据进行查询分析。DLA(Data Lake Analytic)提供了分布式SQL查询计算服务,可对复杂的SQL查询进行拆分,产生多个子任务并发执行,提升数据查询速度。Tablestore作为数据存储主库,打通了与DLA之间的连接,可接受DLA的各类查询任务。OSS是一款分布式对象存储系统,在此方案中用于保存DLA查询结果。三者之间的关系图如下:
实现步骤
开通服务
- 开通表格存储Tablestore服务
- 开通OSS服务,请参考文档开通OSS服务。
- 开通DLA服务。
建立Tablestore数据源
- 登录DLA官网,进入DLA控制台。
- 点击元数据管理,选择Tablestore数据源。
- 填写调度配置,搜索Tablestore实例,自动映射表schema,点击创建。
- 选择对应的元数据,点击进入SQL控制台。
- 编写SQL语句
SQL查询示例
- 示例:查询10条已下线的机柜记录
- 示例:查询用户手机号为15130755023的所有订单记录
- 示例:查询机柜D1911624846530008的时序记录
SQL结果存储
- 登录OSS官网,进入OSS控制台。
- 选择Bucket文件,查看SQL结果存储文件。
小结
DLA分布式SQL查询计算服务基于Tablestore的范围查询与过滤器的方式,可以在无多元索引的前提下,将复杂的SQL查询拆解为多个子任务并发执行,从而完成对表格存储Tablestore中的数据进行SQL查询分析。同时可以使用OSS服务保存SQL查询结果,避免一些耗时查询的重复执行。