CN112084191B - 一种基于Spark SQL的OpenTsdb时序数据查询方法 - Google Patents

一种基于Spark SQL的OpenTsdb时序数据查询方法 Download PDF

Info

Publication number
CN112084191B
CN112084191B CN202010916301.4A CN202010916301A CN112084191B CN 112084191 B CN112084191 B CN 112084191B CN 202010916301 A CN202010916301 A CN 202010916301A CN 112084191 B CN112084191 B CN 112084191B
Authority
CN
China
Prior art keywords
data
opentsdb
time sequence
time
spark sql
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010916301.4A
Other languages
English (en)
Other versions
CN112084191A (zh
Inventor
苑晓龙
贾德星
周正德
张晖
高传集
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202010916301.4A priority Critical patent/CN112084191B/zh
Publication of CN112084191A publication Critical patent/CN112084191A/zh
Application granted granted Critical
Publication of CN112084191B publication Critical patent/CN112084191B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种基于Spark SQL的OpenTsdb时序数据查询方法,涉及时序序列数据技术领域,其实现内容包括:(1)通过Spark SQL内置的DataFrame API自定义OpenTsdb数据源,包括:(1.1)定义Spark SQL数据表的元数据,(1.2)访问OpenTsdb底层存储HBase表中的数据,结合定义的schema与“tsdb‑meta”表中的数据,解析tsdb表中的时序数据,(1.3)通过tsdb表,对每个Region分区进行统计分析,为Spark SQL的Catalyst优化器提供算子下推、逻辑计划生成、物理执行计划优化提供数据支撑,提升Spark SQL的执行效率;(2)通过Spark SQL语句查询分析OpenTsdb中存储的时序数据。本发明可以提升OpenTsdb的易用性、兼容性,尤其在大量时序数据库复杂查询分析的场景下,还可以提升查询的响应时间,提升OpenTsdb的查询分析性能。

Description

一种基于Spark SQL的OpenTsdb时序数据查询方法
技术领域
本发明涉及时序序列数据技术领域,具体的说是一种基于Spark SQL的OpenTsdb时序数据查询方法。
背景技术
物联网IoT(Internet of Things)体系分为感知层、传输层、应用层,随着物联网技术的发展,越来越多的物(设备或传感器等)相互连接起来,从而产生了海量的时序数据,在此背景下,诞生了满足海量数据快速存储的专业领域型数据库-时序数据库OpenTsdb。
OpenTsdb是基于Hbase的时序数据库,又称时间序列数据库,不具备通用性,主要针对具有时间特性和需求的数据,如监控数据、温度变化数据等。OpenTsdb说是数据库,但并不能称作为数据库,它是在Hbase(HBase才是具有存储功能的)的基础上,进行数据结构的优化和处理,从而适合存储具有时间特性的数据,同时提供特定的工具进行查询等操作
时间序列数据是指是一段时间内某个特定指标量的一系列数值数据点,OpenTsdb将时序数据通过指标和标签以及时间戳来唯一标识一个指标量,这些指标数据具有不可变性。TSD是OpenTsdb的服务进程,它是基于HBase集群的无状态服务,它通过将指标和标签数据数字化映射的方式、指定时间间隔的相同标签的指标数据聚合的方式以及Snappy、Zlib等数据压缩技术提高数据I/O的效率。
物联网平台中数据快速存储和读取的时序数据库OpenTsdb基于HTTP协议的RESTFUL风格的API查询,但并未对标准SQL语句查询提供支持,在易用性和大量时序数据复杂统计分析性能方面稍显不足。
发明内容
本发明针对物联网平台中数据快速存储和读取的时序数据库OpenTsdb未对标准SQL语句查询提供支持的缺陷,提供一种基于Spark SQL的OpenTsdb时序数据查询方法。
本发明的一种基于Spark SQL的OpenTsdb时序数据查询方法,解决上述技术问题采用的技术方案如下:
一种基于Spark SQL的OpenTsdb时序数据查询方法,其实现内容包括:
(1)通过Spark SQL内置的DataFrame API自定义OpenTsdb数据源,具体包括:
(1.1)定义Spark SQL数据表的元数据,
(1.2)访问OpenTsdb底层存储HBase表中的数据,结合定义的元数据与“tsdb-meta”表中的数据,解析tsdb表中的时序数据,
(1.3)通过tsdb表,对每个Region分区进行统计分析,为Spark SQL的Catalyst优化器提供算子下推、逻辑计划生成、物理执行计划优化提供数据支撑,提升Spark SQL的执行效率;
(2)通过Spark SQL语句查询分析OpenTsdb中存储的时序数据。
可选的,步骤(1.1)定义Spark SQL数据表的元数据,其具体实现为:
定义一个实现Spark的数据源、读取支持接口的时序数据源装置,通过数据源选项提供HBase集群地址、tsdb表、tsdb-meta表、时间序列数据精度、数据表元数据描述各项参数信息,在创建读取器方法中根据上述参数创建时序数据源读取器装置。
进一步可选的,步骤(1.2)解析tsdb表中的时序数据时,需要定义一个实现数据源读取器、下推过滤算子、报告统计数据、下推需求列、报告分区数据接口的时序数据源读取器装置;
时序数据源读取器装置实现读取元数据方法,读取数据表元数据描述信息创建结构体类型实例,
时序数据源读取器装置在计划输入分区方法中根据HBase数据库中“tsdb”表的Region列表创建时序数据输入分区实例集合列表,
时序数据源读取器装置实现过滤器下推方法支持算子下推。
优选的,时序数据源读取器装置实现过滤器下推方法中具体支持时序数据时间戳、标签键值、指标三个字段的算子下推。
进一步可选的,步骤(1.3)中,对每个Region分区进行统计分析,此时,
基于定义的时序数据源读取器装置,根据预估统计数据方法统计各个Region分区的数据量,根据Rowkey分析指标与Region分区的映射关系、时间戳与Region分区的映射关系、标签键值对于Region分区的映射关系,为Catalyst优化器优化执行计划提供数据支撑。
进一步可选的,时序数据源读取器装置采用广播的方式将HBase
中”tsdb-meta”表中的数据广播到所有执行读取任务的执行器中,避免频繁的网络I/O,减少时序数据的解析耗费时间,加快时序数据的解析速度。
进一步可选的,步骤(1.3)中,对每个Region分区进行统计分析,这一过程中,需要定义一个实现输入分区接口的时序数据输入分区,此时,
每个HBase“tsdb”数据表Region分区对应一个输入分区实例,在创建分区器方法中创建时序数据分区器,优化数据块位置方法为执行当前输入分区读取任务的执行器指定最优的数据块位置,即为数据本地化读取策略提供支持。
进一步可选的,解析tsdb表中的时序数据,并通过tsdb表对每个Region分区进行统计分析,这一过程中,需要定义一个实现输入分区读取器接口的时序数据输入分区读取器,时序数据输入分区读取器通过直接获取和下一个方法迭代读取Region并解析时序数据,读取完毕后调用close()方法关闭资源。
优选的,用户通过JDBC桥接器、控制台、应用程序中的任一方式作为入口,使用Spark SQL语句查询分析OpenTsdb中存储的时序数据。
本发明的一种基于Spark SQL的OpenTsdb时序数据查询方法,与现有技术相比具有的有益效果是:
本发明使用Spark SQL语句查询分析OpenTsdb中存储的时序数据,可以提升OpenTsdb的易用性、兼容性,尤其在大量时序数据库复杂查询分析的场景下,还可以提升查询的响应时间,提升OpenTsdb的查询分析性能。
附图说明
附图1是本发明的方法流程架构图;
附图2是本发明自定义OpenTsdb数据源的实现类图。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
实施例一:
结合附图1,本实施例提出一种基于Spark SQL的OpenTsdb时序数据查询方法,其实现内容包括:
(1)通过Spark SQL内置的DataFrame API自定义OpenTsdb数据源,具体包括:
(1.1)定义Spark SQL数据表的元数据,结合附图2,其具体实现为:
定义一个实现Spark的数据源DataSourceV2、读取支持接口ReadSupport的时序数据源装置TsdbDataSource,通过数据源DataSourceOptions选项提供HBase集群地址、tsdb表、tsdb-meta表、时间序列数据精度、数据表元数据描述各项参数信息,在创建读取器createReader方法中根据上述参数创建时序数据源读取器装置TsdbDataSourceReader。
(1.2)访问OpenTsdb底层存储HBase表中的数据,结合定义的元数据与“tsdb-meta”表中的数据,解析tsdb表中的时序数据,结合附图2,其具体实现为:
定义一个实现数据源读取器DataSourceReader、下推过滤算子SupportPushDownFilters、报告统计数据SupportsReportStaticstics、下推需求列SupportPushDownRequiredColumns、报告分区数据SupportReportPartitioning接口的时序数据源读取器装置TsdbDataSourceReader;
时序数据源读取器装置TsdbDataSourceReader实现读取元数据readSchema方法,读取数据表元数据描述信息创建结构体StructType类型实例,
时序数据源读取器装置TsdbDataSourceReader在计划输入分区
planInputPartitions()方法中根据HBase数据库中“tsdb”表的Region列表创建时序数据输入分区TsdbInputPartition实例集合列表,
时序数据源读取器装置TsdbDataSourceReader实现过滤器下推pushedFilters方法具体支持时序数据时间戳、标签键值、指标三个字段的算子下推。
(1.3)通过tsdb表,对每个Region分区进行统计分析,为Spark SQL的Catalyst优化器提供算子下推、逻辑计划生成、物理执行计划优化提供数据支撑,提升Spark SQL的执行效率。这一过程中,
基于定义的时序数据源读取器装置TsdbDataSourceReader,根据预估统计数据estimateStatistics方法统计各个Region分区的数据量,根据Rowkey分析指标与Region分区的映射关系、时间戳与Region分区的映射关系、标签键值对于Region分区的映射关系,为Catalyst优化器优化执行计划提供数据支撑。
时序数据源读取器装置TsdbDataSourceReader采用广播的方式将HBase
中”tsdb-meta”表中的数据广播到所有执行读取任务的执行器Executor中,避免频繁的网络I/O,减少时序数据的解析耗费时间,加快时序数据的解析速度。
结合附图2,步骤(1.3)中,还需要定义一个实现输入分区InputPartition接口的时序数据输入分区TsdbInputPartition,此时,每个HBase“tsdb”数据表Region分区对应一个输入分区InputPartition实例,在创建分区器
createPartitionReader()方法中创建时序数据分区器TsdbInputPartitionReader,优化数据块位置perferredLocation()方法为为执行当前输入分区InputPartition读取任务的执行器Executor指定最优的数据块位置,即为数据本地化读取策略提供支持。
需要补充的一点是,解析tsdb表中的时序数据,并通过tsdb表对每个Region分区进行统计分析,这一过程中,还需要定义一个实现输入分区读取器InputPartitionReader接口的时序数据输入分区读取器TsdbInputPartitionReader,时序数据输入分区读取器TsdbInputPartitionReader通过get()和next()方法迭代读取Region并解析时序数据,读取完毕后调用close()方法关闭资源。
(2)用户通过JDBC桥接器、控制台、应用程序中的任一方式作为入口,使用SparkSQL语句查询分析OpenTsdb中存储的时序数据。Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。
综上可知,采用本发明的一种基于Spark SQL的OpenTsdb时序数据查询方法,可以提升OpenTsdb的易用性、兼容性,尤其在大量时序数据库复杂查询分析的场景下,还可以提升查询的响应时间,提升OpenTsdb的查询分析性能。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。

Claims (9)

1.一种基于Spark SQL的OpenTsdb时序数据查询方法,其特征在于,其实现过程包括:
(1)通过Spark SQL内置的DataFrame API自定义OpenTsdb数据源,具体包括:
(1.1)定义Spark SQL数据表的元数据,
(1.2)访问OpenTsdb底层存储HBase表中的数据,结合定义的元数据与“tsdb-meta”表中的数据,解析tsdb表中的时序数据,
(1.3)通过tsdb表,对每个Region分区进行统计分析,为Spark SQL的Catalyst优化器提供算子下推、逻辑计划生成、物理执行计划优化提供数据支撑;
(2)通过Spark SQL语句查询分析OpenTsdb中存储的时序数据。
2.根据权利要求1所述的一种基于Spark SQL的OpenTsdb时序数据查询方法,其特征在于,步骤(1.1)定义Spark SQL数据表的元数据,其具体实现为:
定义一个实现Spark的数据源、读取支持接口的时序数据源装置,通过数据源选项提供HBase集群地址、tsdb表、tsdb-meta表、时间序列数据精度、数据表元数据描述各项参数信息,在创建读取器方法中根据上述参数创建时序数据源读取器装置。
3.根据权利要求2所述的一种基于Spark SQL的OpenTsdb时序数据查询方法,其特征在于,步骤(1.2)解析tsdb表中的时序数据时,需要定义一个实现数据源读取器、下推过滤算子、报告统计数据、下推需求列、报告分区数据接口的时序数据源读取器装置;
时序数据源读取器装置实现读取元数据方法,读取数据表元数据描述信息创建结构体类型实例,
时序数据源读取器装置实现计划输入分区方法中根据HBase数据库中“tsdb”表的Region列表创建时序数据输入分区实例集合列表,
时序数据源读取器装置实现过滤器下推方法支持算子下推。
4.根据权利要求3所述的一种基于Spark SQL的OpenTsdb时序数据查询方法,其特征在于,时序数据源读取器装置实现过滤器下推方法中具体支持时序数据时间戳、标签键值、指标三个字段的算子下推。
5.根据权利要求4所述的一种基于Spark SQL的OpenTsdb时序数据查询方法,其特征在于,步骤(1.3)中,对每个Region分区进行统计分析,此时,
基于定义的时序数据源读取器装置,根据预估统计数据方法统计各个Region分区的数据量,根据Rowkey分析指标与Region分区的映射关系、时间戳与Region分区的映射关系、标签键值对于Region分区的映射关系,为Catalyst优化器优化执行计划提供数据支撑。
6.根据权利要求5所述的一种基于Spark SQL的OpenTsdb时序数据查询方法,其特征在于,时序数据源读取器装置采用广播的方式将HBase中”tsdb-meta”表中的数据广播到所有执行读取任务的执行器中。
7.根据权利要求5所述的一种基于Spark SQL的OpenTsdb时序数据查询方法,其特征在于,步骤(1.3)中,对每个Region分区进行统计分析,这一过程中,需要定义一个实现输入分区接口的时序数据输入分区,此时,
每个HBase“tsdb”数据表Region分区对应一个输入分区实例,在创建分区器方法中创建时序数据分区器,优化数据块位置方法为执行当前输入分区读取任务的执行器指定最优的数据块位置,即为数据本地化读取策略提供支持。
8.根据权利要求5所述的一种基于Spark SQL的OpenTsdb时序数据查询方法,其特征在于,解析tsdb表中的时序数据,并通过tsdb表对每个Region分区进行统计分析,这一过程中,需要定义一个实现输入分区读取器接口的时序数据输入分区读取器;
时序数据输入分区读取器通过直接获取和下一个方法迭代读取Region并解析时序数据,读取完毕后调用close()方法关闭资源。
9.根据权利要求1所述的一种基于Spark SQL的OpenTsdb时序数据查询方法,其特征在于,用户通过JDBC桥接器、控制台、应用程序中的任一方式作为入口,使用Spark SQL语句查询分析OpenTsdb中存储的时序数据。
CN202010916301.4A 2020-09-03 2020-09-03 一种基于Spark SQL的OpenTsdb时序数据查询方法 Active CN112084191B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010916301.4A CN112084191B (zh) 2020-09-03 2020-09-03 一种基于Spark SQL的OpenTsdb时序数据查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010916301.4A CN112084191B (zh) 2020-09-03 2020-09-03 一种基于Spark SQL的OpenTsdb时序数据查询方法

Publications (2)

Publication Number Publication Date
CN112084191A CN112084191A (zh) 2020-12-15
CN112084191B true CN112084191B (zh) 2023-12-26

Family

ID=73732591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010916301.4A Active CN112084191B (zh) 2020-09-03 2020-09-03 一种基于Spark SQL的OpenTsdb时序数据查询方法

Country Status (1)

Country Link
CN (1) CN112084191B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704296A (zh) * 2021-08-03 2021-11-26 浪潮云信息技术股份公司 一种基于Spark SQL的计算下推查询优化方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279286A (zh) * 2015-11-27 2016-01-27 陕西艾特信息化工程咨询有限责任公司 一种交互式大数据分析查询处理方法
CN110442602A (zh) * 2019-07-02 2019-11-12 新华三大数据技术有限公司 数据查询方法、装置、服务器及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7937319B2 (en) * 2005-03-21 2011-05-03 Oversight Technologies, Inc. Methods and systems for compliance monitoring knowledge base
CA2560277A1 (en) * 2004-03-19 2005-09-29 Oversight Technologies, Inc. Methods and systems for transaction compliance monitoring
US9355145B2 (en) * 2011-01-25 2016-05-31 Hewlett Packard Enterprise Development Lp User defined function classification in analytical data processing systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279286A (zh) * 2015-11-27 2016-01-27 陕西艾特信息化工程咨询有限责任公司 一种交互式大数据分析查询处理方法
CN110442602A (zh) * 2019-07-02 2019-11-12 新华三大数据技术有限公司 数据查询方法、装置、服务器及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于数据仓库技术的决策支持系统的研究与应用;李敏强, 潘振江, 寇纪淞;系统工程理论与实践(03);全文 *

Also Published As

Publication number Publication date
CN112084191A (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
CN108197237B (zh) 可视化数据采集到展现系统
CN105183735B (zh) 数据的查询方法及查询装置
CN104620239B (zh) 自适应查询优化
CN108256088A (zh) 一种基于键值数据库的时序数据的存储方法及系统
CN109542967B (zh) 基于xbrl标准的智慧城市数据共享系统及方法
CN104899295B (zh) 一种异构数据源数据关联分析方法
CN103970902A (zh) 一种大量数据情况下的可靠即时检索方法及系统
CN111078702A (zh) 一种sql语句分类管理及统一查询方法和装置
CN102779138B (zh) 实时数据的硬盘存取方法
CN102063449A (zh) 提高数据库中数据对象统计信息可靠性的方法及装置
CN102298598A (zh) 一种专利信息分析方法及装置
CN106599052A (zh) 一种基于ApacheKylin的数据查询系统及其方法
CN111400288A (zh) 数据质量检查方法及系统
CN104951509A (zh) 一种大数据在线交互式查询方法及系统
CN111061758A (zh) 数据存储方法、装置及存储介质
CN113177090A (zh) 数据处理方法及装置
CN112084191B (zh) 一种基于Spark SQL的OpenTsdb时序数据查询方法
CN108804594A (zh) 一种新闻内容全文检索引擎的构建方法及装置
CN102314514B (zh) 一种表格数据结构化的作用域方法
CN114328601A (zh) 数据降采样和数据查询方法、系统及存储介质
CN113515610A (zh) 一种基于面向对象语言处理的档案管理方法
CN116737113B (zh) 面向海量科学数据的元数据目录管理系统及方法
CN110019192B (zh) 数据库的检索方法及装置
CN116126973A (zh) 气象格点数据管理方法和装置
CN114925054A (zh) 一种基于元模型的元数据管理系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant