CN110287198A - 基于HBase数据库的金融数据索引方法 - Google Patents
基于HBase数据库的金融数据索引方法 Download PDFInfo
- Publication number
- CN110287198A CN110287198A CN201910583626.2A CN201910583626A CN110287198A CN 110287198 A CN110287198 A CN 110287198A CN 201910583626 A CN201910583626 A CN 201910583626A CN 110287198 A CN110287198 A CN 110287198A
- Authority
- CN
- China
- Prior art keywords
- hbase database
- index
- data
- indexing means
- major key
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及基于HBase数据库的金融数据索引方法,包括:A.一级索引的行主键设置:将业务代码、业务类型、交易日期和交易时间进行字符串组合,形成HBase数据库中每一行数据唯一性的行主键;B.二级索引设置:建立常见业务查询列与所述行主键之间的映射关系,并将所述的映射关系存储在映射关系表中。本发明基于HBase数据库的金融数据索引方法,有效提高了对金融数据的索引效率,并且能够支持多维度的索引,大幅度简化了索引过程。
Description
技术领域
本发明涉及对数据库数据的索引方法,具体讲是基于HBase数据库的金融数据索引方法。
背景技术
在金融领域的数据中包括了股票、期权、期货的代码、类型、每个交易日从开盘到封盘的数据记录等,数据记录的更新速度为秒级、毫秒级,因此这类数据的历史基数、日增量都非常庞大,如此海量的历史数据和日增量数据对于存储设备以及业务的快速多维查询、分析,都产生了巨大的挑战。
当前对金融行情交易数据进行存储和处理主要采用的是关系型数据库或直接存储于本地磁盘的方式。此类方式的存储和查询效率都非常低下,并不能很好地服务于具有高频、实时、数据字段变化、多维查询等特点的金融领域的量化分析、交易业务。
目前常用的存储及查询方式有以下几种:
1.以CSV文件形式存储于本地磁盘,查询和计算业务时需要重新定位、解析CSV文件。
2.数据存储在传统关系型数据库中,如MySQL、Oracle等。
3.数据存储在Hive数据仓库中,该数据仓库在传统关系型数据库的基础上建立,可以实现离线查询与计算。
4.数据存储于HBase数据库,但rowkey(数据库每条记录的行主键)设计方式单一,不支持多变的、多维度的业务查询。
以上现有的这些方式的缺点包括:
1.不能满足对于数据快速业务查询、计算与相应速度的要求。
对于业务查询和计算,每次需要对本次所需数据进行一次文件解析,不同时间节点的同一业务,需要重复解析同样数据,效率低下,严重耗时;
对于单次业务所需数据量较大且内存不能一次存储的情况下,需要对所需数据进行分割多批次计算处理,严重耗时。
2.存储占据大量硬盘空间。
将海量历史金融行情文件存储于本地磁盘,并不能很好地采用压缩技术,占用大量磁盘空间,物理硬件耗费巨大。
3.数据维度变化不适用于传统关系型数据库。
随着技术的发展,金融行情数据的数据记录维度(字段)发生变化,而传统型数据库并不能很好地适应表结构经常变化的情况,因为每次表结构的变化,均需对海量历史数据进行复制、迁移,或者重新导入,耗费不可容忍的时间限度,且造成数据丢失的风险。
4.数据安全。
存在文件安全问题,误操作造成数据删改等后果。
5.多维查询。
rowkey设计单一,不能满足业务多维度查询、查询需求的多样性。
发明内容
本发明提供了一种基于HBase数据库的金融数据索引方法,解决现有存储方式中索引效率低、并发性差的问题,提高数据的索引效率。
本发明基于HBase数据库的金融数据索引方法,包括:
A.一级索引的行主键设置:将业务代码、业务类型、交易日期和交易时间进行字符串组合,形成HBase数据库中每一行数据唯一性的行主键;
B.二级索引设置:建立常见业务查询列与所述行主键之间的映射关系,并将所述的映射关系存储在映射关系表中。
通常在对数据库的索引中只有一级索引,即通过行主键(rowkey)进行的索引,这种索引方式对一般的数据量是可行的,但对金融数据这种基数庞大的数据索引时效率会非常低下,因此本发明引入了二级索引,以满足金融领域的多维度、高效率的索引需求,避免了将rowkey作为唯一索引方式过于单一的不足。
为了保证在对HBase数据写入时,不会将大量同属性的数据都写入数据库的同一分区,造成数据库热点问题,导致索引效率下降,因此在步骤A中,将业务代码、业务类型、交易日期或交易时间中构成行主键前缀的部分进行编码或反转后,再进行字符串组合。这样使得组合后的行主键的前缀不再相同,避免了数据库热点问题,提高了索引的效率。
优选的,所述的编码为HASH编码。HASH编码是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出。
在此基础上,为了使索引效率最优化,步骤A中,通过脚本对金融数据在HBase数据库的每个分区的数据存储量定时进行检测,如果检测到其中有已存储的数据量超过设定阈值的分区,则对该分区进行拆分,使每个分区当前已存储的数据量均衡,提高检索效率。拆分方式可以采用常规的ConstantSizeRegionSplitPolicy方式或KeyPrefixRegionSplitPolicy方式等。
本发明基于HBase数据库的金融数据索引方法,有效提高了对金融数据的索引效率,并且能够支持多维度的索引,大幅度简化了索引过程。
以下结合实施例的具体实施方式,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。
附图说明
图1为本发明基于HBase数据库的金融数据索引方法的流程图。
具体实施方式
如图1所示本发明基于HBase数据库的金融数据索引方法,包括:
A.一级索引的行主键(rowkey)设置:将业务代码、业务类型、交易日期和交易时间中构成行主键的前缀部分进行编码或反转,使每条记录的前缀都不相同,然后将其进行字符串组合,形成HBase数据库中每一行数据唯一性的行主键,以避免数据库热点问题,提高索引效率。
以股票业务为例:
在股票业务中包括有股票代码、股票类型、交易日期和交易时间。其中,股票类型为股票所属的交易所:“SH”、“SZ”,分别用“0”、“1”表示。为确保rowkey唯一性,交易时间精确到秒或者毫秒。为了避免数据库热点的问题,将行主键的前缀部分进行编码或反转,使每条记录的前缀都不相同。行主键的一种设置方式为:
对每个交易日期或股票代码进行HASH编码。因此通过HASH编码对行主键进行设置有两种方式:
rowkey1=交易日期HASH值+股票代码+股票类型+交易时间
rowkey2=股票代码HASH值+交易日期+股票类型+交易时间
行主键的另一种设置方式为将交易日期或股票代码反转(倒序),通过反转对行主键进行设置有两种方式:
rowkey3=交易日期反转+股票代码+股票类型+交易时间
rowkey4=股票代码反转+交易日期+股票类型+交易时间
为了使索引效率最优化,通过脚本对金融数据在HBase数据库的每个分区的数据存储量定时进行检测,如果检测到其中有已存储的数据量超过设定阈值的分区,则对该分区进行拆分,使每个分区当前已存储的数据量均衡,由此提高检索效率。拆分方式可以采用常规的ConstantSizeRegionSplitPolicy方式或KeyPrefixRegionSplitPolicy方式等。
B.二级索引设置:建立常见业务查询列与所述行主键之间的映射关系,并将所述的映射关系存储在映射关系表中。
例如,如查询满足开盘价c01、收盘价c02、成交额c03的多维查询。可将这三列的值与rowkey的映射关系存储在映射关系表中,以保证多维查询的速度。如,rowkey和单一列映射如表1所示:
表1:
rowkey1 | c01 |
rowkey2 | c01 |
rowkey3 | c02 |
rowkey4 | c02 |
rowkey5 | c03 |
rowkey6 | c03 |
… | … |
rowkeyn | c0n |
rowkey和多列映射如表2所示:
表2:
rowkey1 | c01 | … | cx1 |
rowkey2 | c01 | … | cx2 |
rowkey3 | c02 | … | cx3 |
rowkey4 | c02 | … | cx4 |
rowkey5 | c03 | … | cx5 |
rowkey6 | c03 | … | cx6 |
… | … | … | … |
rowkeyn | c0n | … | cxn |
其中c01,c02,…,c0n;cx1,cx2,…,cxn为业务查询时的常用列。
将本发明的索引方法与现有的常规CCIndex索引方法和Solr索引方法,以及未加索引的方法进行对比,按照不同数据量的HBase数据库表,以10次查询平均值作为最终结果,如表3~表5所示:
表3:
表数据量:100万 | 本发明 | CCIndex索引 | Solr索引 | 未加索引 |
平均响应时间 | 427ms | 518ms | 703ms | 查询超时 |
表4:
表数据量:1000万 | 本发明 | CCIndex索引 | Solr索引 | 未加索引 |
平均响应时间 | 1060ms | 1209ms | 1491ms | 查询超时 |
表5:
表数据量:1亿 | 本发明 | CCIndex索引 | Solr索引 | 未加索引 |
平均响应时间 | 6046ms | 7304ms | 10044ms | 查询超时 |
从测试数据可以看出,本发明索引方法在处理金融行情数据查询时,能够非常明显的提高查询效率,而且数据量越大,本发明索引方法的效率提升的越明显,特别是在对业务多维度查询中更能够体现出高速、便捷的特点。
Claims (4)
1.基于HBase数据库的金融数据索引方法,其特征包括:
A.一级索引的行主键设置:将业务代码、业务类型、交易日期和交易时间进行字符串组合,形成HBase数据库中每一行数据唯一性的行主键;
B.二级索引设置:建立常见业务查询列与所述行主键之间的映射关系,并将所述的映射关系存储在映射关系表中。
2.如权利要求1所述的基于HBase数据库的金融数据索引方法,其特征为:步骤A中,将业务代码、业务类型、交易日期或交易时间中构成行主键前缀的部分进行编码或反转后,再进行字符串组合。
3.如权利要求2所述的基于HBase数据库的金融数据索引方法,其特征为:所述的编码为HASH编码。
4.如权利要求1至3之一所述的基于HBase数据库的金融数据索引方法,其特征为:步骤A中,通过脚本对金融数据在HBase数据库的每个分区的数据存储量定时进行检测,如果检测到其中有已存储的数据量超过设定阈值的分区,则对该分区进行拆分,使每个分区当前已存储的数据量均衡,提高检索效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910583626.2A CN110287198A (zh) | 2019-07-01 | 2019-07-01 | 基于HBase数据库的金融数据索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910583626.2A CN110287198A (zh) | 2019-07-01 | 2019-07-01 | 基于HBase数据库的金融数据索引方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110287198A true CN110287198A (zh) | 2019-09-27 |
Family
ID=68020342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910583626.2A Pending CN110287198A (zh) | 2019-07-01 | 2019-07-01 | 基于HBase数据库的金融数据索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110287198A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259004A (zh) * | 2020-01-08 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 一种存储引擎中数据索引的方法以及相关装置 |
CN111797134A (zh) * | 2020-06-23 | 2020-10-20 | 北京小米松果电子有限公司 | 分布式数据库的数据查询方法、装置和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252528A (zh) * | 2014-09-04 | 2014-12-31 | 国家电网公司 | 基于标识符空间映射的大数据二级索引构建方法 |
CN105589910A (zh) * | 2014-12-31 | 2016-05-18 | ***股份有限公司 | 基于HBase的海量交易数据检索及*** |
CN106682077A (zh) * | 2016-11-18 | 2017-05-17 | 山东鲁能软件技术有限公司 | 一种基于Hadoop技术的海量时序数据存储实现方法 |
US20180285400A1 (en) * | 2013-12-31 | 2018-10-04 | International Business Machines Corporation | Index maintenance based on a comparison of rebuild vs. update |
CN109522315A (zh) * | 2018-10-26 | 2019-03-26 | 苏宁易购集团股份有限公司 | 一种数据库处理方法及*** |
CN109829015A (zh) * | 2019-01-16 | 2019-05-31 | 成都有据量化科技有限公司 | 基于HBase的金融数据存储方法、装置以及存储介质 |
-
2019
- 2019-07-01 CN CN201910583626.2A patent/CN110287198A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180285400A1 (en) * | 2013-12-31 | 2018-10-04 | International Business Machines Corporation | Index maintenance based on a comparison of rebuild vs. update |
CN104252528A (zh) * | 2014-09-04 | 2014-12-31 | 国家电网公司 | 基于标识符空间映射的大数据二级索引构建方法 |
CN105589910A (zh) * | 2014-12-31 | 2016-05-18 | ***股份有限公司 | 基于HBase的海量交易数据检索及*** |
CN106682077A (zh) * | 2016-11-18 | 2017-05-17 | 山东鲁能软件技术有限公司 | 一种基于Hadoop技术的海量时序数据存储实现方法 |
CN109522315A (zh) * | 2018-10-26 | 2019-03-26 | 苏宁易购集团股份有限公司 | 一种数据库处理方法及*** |
CN109829015A (zh) * | 2019-01-16 | 2019-05-31 | 成都有据量化科技有限公司 | 基于HBase的金融数据存储方法、装置以及存储介质 |
Non-Patent Citations (2)
Title |
---|
加勒比海带: "HBase二级索引的设计(案例讲解)", 《HTTPS://WWW.CNBLOGS.COM/DIAOZHAOJIAN/P/7405162.HTML》 * |
奔跑的MAX蜗牛: "rowkey设计原则和方法", 《HTTPS://BLOG.CSDN.NET/QQ_34896163/ARTICLE/DETAILS/86537551》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259004A (zh) * | 2020-01-08 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 一种存储引擎中数据索引的方法以及相关装置 |
CN111259004B (zh) * | 2020-01-08 | 2023-04-14 | 腾讯科技(深圳)有限公司 | 一种存储引擎中数据索引的方法以及相关装置 |
CN111797134A (zh) * | 2020-06-23 | 2020-10-20 | 北京小米松果电子有限公司 | 分布式数据库的数据查询方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110990638B (zh) | 基于fpga-cpu异构环境的大规模数据查询加速装置及方法 | |
Larsen | Components of uncertainty | |
Taghizadeh-Hesary et al. | Response of macro variables of emerging and developed oil importers to oil price movements | |
US8533203B2 (en) | Identifying synonyms of entities using a document collection | |
CN104794123B (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
Guth et al. | Theological perspectives and environmentalism among religious activists | |
CN102622434B (zh) | 数据存储方法、查找方法及装置 | |
Niu et al. | Network structure, distribution and the growth of Chinese international research collaboration | |
AU2008203532A1 (en) | Method and System for Processing Information | |
CN101499065B (zh) | 基于fa的表项压缩方法及装置、表项匹配方法及装置 | |
CN105653609A (zh) | 基于内存的数据处理方法及装置 | |
CN110287198A (zh) | 基于HBase数据库的金融数据索引方法 | |
Yang et al. | A framework for web table mining | |
CN113254995B (zh) | 数据脱敏方法、装置、***及计算机可读介质 | |
Yan-Li et al. | Research on data preprocessing in credit card consuming behavior mining | |
Hyk et al. | Integrated reporting of mining enterprises: Bibliometric analysis | |
CN109710742A (zh) | 一种个股公告自然语言查询处理的方法、***及设备 | |
Nailah et al. | The Zakat & Technology | |
CA2418093A1 (en) | Data compiling method | |
WO2008085358A1 (en) | Accelerating queries using temporary enumeration representation | |
CN104751362A (zh) | 一种订单提交方法及装置 | |
Singh et al. | Green database model for stock market: a case study of Indian stock market | |
CN114911826A (zh) | 一种关联数据检索方法和*** | |
CN115328943A (zh) | 数据处理方法和设备 | |
CN112214983A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190927 |