CN111125099B - 基于Druid宽表的关联数据处理方法及装置 - Google Patents

基于Druid宽表的关联数据处理方法及装置 Download PDF

Info

Publication number
CN111125099B
CN111125099B CN201911259790.4A CN201911259790A CN111125099B CN 111125099 B CN111125099 B CN 111125099B CN 201911259790 A CN201911259790 A CN 201911259790A CN 111125099 B CN111125099 B CN 111125099B
Authority
CN
China
Prior art keywords
dimension
field
druid
dimension value
data
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
CN201911259790.4A
Other languages
English (en)
Other versions
CN111125099A (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.)
Suning Cloud Computing Co Ltd
Original Assignee
Suning Cloud Computing 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 Suning Cloud Computing Co Ltd filed Critical Suning Cloud Computing Co Ltd
Priority to CN201911259790.4A priority Critical patent/CN111125099B/zh
Publication of CN111125099A publication Critical patent/CN111125099A/zh
Application granted granted Critical
Publication of CN111125099B publication Critical patent/CN111125099B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • 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/2455Query execution
    • G06F16/24552Database cache management

Landscapes

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

Abstract

本发明公开一种基于Druid宽表的关联数据处理方法及装置,涉及数据处理技术领域,能够解决上游系统的某个维度数据频繁变更时,需要同步刷新Druid宽表导致机器资源消耗大的缺陷。该方法包括:获取包括Druid数据源,将Druid数据源通过宽表方式列出后得到Druid宽表存储在存储块中;基于当前Druid宽表中频繁变更的维值字段,构建用于管理维度中维值频繁变更的配置表;定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将维度字段及对应的维值字段加载至内存中缓存;根据查询请求从存储块中获取当前Druid宽表的维度字段和维值字段,和/或,从内存中获取与维度字段对应且发生变更的维值字段,汇总统计后输出查询结果。该装置应用有上述方法。

Description

基于Druid宽表的关联数据处理方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于Druid宽表的关联数据处理方法及装置。
背景技术
随着大数据技术的稳步发展,面向海量数据具有实时查询与分析功能的OLAP存储系统也得到了广泛的运用,比如Druid,现有的Druid一般采用宽表方案,也既所有字段在宽表中全部铺开的反范式设计模式,此种模式具有查询速度快的优点。但是,在Druid上游系统的某个维度数据出现变更时,需要刷新存储在Druid中segment(存储块)的数据才能实现相应维度数据的更新,众所周知,由于宽表中的维度数据量巨大,若Druid上游系统的维度数据发生频繁变更,同步采取频繁刷新segment的方案将会消耗巨大的机器资源,显然,对于频繁变更的维度数据采用同步刷新segment的方案已不能满足实际使用需求。
发明内容
本发明的目的在于提供一种基于Druid宽表的关联数据处理方法及装置,能够解决上游系统的某个维度数据频繁变更时,需要同步刷新Druid宽表导致机器资源消耗大的缺陷。
为了实现上述目的,本发明的一方面提供一种基于Druid宽表的关联数据处理方法,包括:
获取包括维度字段和维值字段的Druid数据源,将所述Druid数据源通过宽表方式列出后得到Druid宽表存储在存储块中;
基于当前Druid宽表中频繁变更的维值字段,构建用于管理维度中维值频繁变更的配置表;
定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将所述维度字段及对应的所述维值字段加载至内存中缓存;
根据查询请求从存储块中获取当前Druid宽表的维度字段和维值字段,和/或,从内存中获取与所述维度字段对应且发生变更的维值字段,汇总统计后输出查询结果。
优选地,将维度在配置表中管理且发生数据变更的维值字段加载至内存中缓存之后还包括:
将缓存的所述维度字段及对应的所述维值字段植入所述Druid宽表,更新Druid宽表的版本后重新存储于存储块中;
清空内存中缓存的加载数据。
优选地,基于当前Druid宽表中频繁变更的维值字段,构建用于管理维度中维值频繁变更的配置表的方法包括:
获取存储块中最新版本的Druid宽表作为当前Druid宽表,并在当前Druid宽表中任一维度字段中的维值字段变更次数超过阈值时,构建用于管理匹配所述维度字段的维度字段定义配置表,以及构建用于管理维值字段缓存的对应关系配置表。
优选地,定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将所述维度字段及对应的所述维值字段加载至内存中缓存的方法包括:
定时获取新产生的Druid数据源,将其与当前Druid宽表比较匹配出在所述维度字段定义配置表中管理且对应维值字段发生了数据变更的维度字段;
根据所述对应关系配置表从新产生的Druid数据源中提取出与所述维度字段相对应的维值字段;
将变更的维值字段和与之对应的维度字段加载至内存中缓存。
优选地,根据查询请求从存储块中获取当前Druid宽表的维度字段和维值字段,和/或,从内存中获取与所述维度字段对应且发生变更的维值字段,汇总统计后输出查询结果的方法包括:
获取用户的查询请求,所述查询请求中包括查询维度字段信息、查询维值字段信息和查询过滤条件信息;
根据查询请求检索是否存在与所述查询维度字段信息匹配的维度字段定义配置表;
若不存在直接从Druid数据源中提取对应的维度字段和原始的维值字段输出查询结果;
若存在则基于关联的所述对应关系配置表从内存的缓存中提取增量的维值字段,然后再从Druid数据源中提取原始的维值字段,将增量的维值字段和原始的维值字段汇总合并后与维度字段一同输出查询结果。
较佳地,所述维度字段定义配置表包括开关功能,当检索到内存缓存中存在与所述查询维度字段信息匹配的维度字段定义配置表,但开关功能处于关闭状态时直接从Druid数据源中提取对应的维度字段和原始的维值字段输出查询结果,当检索到内存缓存中存在与所述查询维度字段信息匹配的维度字段定义配置表,且开关功能处于开启状态时从内存的缓存中提取增量的维值字段,然后再从Druid数据源中提取原始的维值字段,将增量的维值字段和原始的维值字段汇总合并后与维度字段一同输出查询结果。
可选地,所述维度字段定义配置表、所述对应关系配置表和所述缓存数据存储在Mysql数据库中。
与现有技术相比,本发明提供的基于Druid宽表的关联数据处理方法具有以下有益效果:
本发明提供的基于Druid宽表的关联数据处理方法中,从上游系统中获取Druid数据源,采用反范式设计模式将Druid数据源中的维度字段和维值字段拉宽列出得到Druid宽表存储于存储块中,然后基于当前Druid宽表中频繁变更的维值字段,在Mysql数据库中构建用于管理维度中维值频繁变更的配置表,通过该配置表的应用能够定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将发生变更的维值字段放入Mysql数据库的内存中缓存,这样当用户发出查询请求时,若缓存中没有匹配的维值字段则说明此段时间查询的维值字段数据未发生变更,此时直接从存储块中调取相关维度字段和维值字段输出结果即可,若缓存中存在匹配的维值字段说明此段时间查询的维值字段数据发生了变更,此时需在缓存中调取变更的增量维值字段并与存储块中的原始维值字段汇总后与维度字段一同输出查询结果。
可见,相比较于现有技术在上游系统输出Druid数据源中的维值字段频繁变更同步刷新Druid宽表的技术方案而言,本发明通过配置表的设置,采取定时将发生数据变更的维值字段加载至内存中缓存,以在用户查询时将增量维值字段与原始维值字段合并输出的技术方案能够减少对Druid宽表刷新的频率,由此在达到相同查询效果的同时显著降低Druid宽表刷新对机器资源的消耗。
本发明的另一方面提供一种基于Druid宽表的关联数据处理装置,应用有上述技术方案提到的基于Druid宽表的关联数据处理方法,该装置包括:
数据源获取单元,用于获取包括维度字段和维值字段的Druid数据源,将所述Druid数据源通过宽表方式列出后得到Druid宽表存储在存储块中;
配置表构建单元,用于基于当前Druid宽表中频繁变更的维值字段,构建用于管理维度中维值频繁变更的配置表;
数据比对单元,用于定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将所述维度字段及对应的所述维值字段加载至内存中缓存;
数据查询单元,用于根据查询请求从存储块中获取当前Druid宽表的维度字段和维值字段,和/或,从内存中获取与所述维度字段对应且发生变更的维值字段,汇总统计后输出查询结果。
优选地,还包括:
数据更新单元,用于将缓存的所述维度字段及对应的所述维值字段植入所述Druid宽表,更新Druid宽表的版本后重新存储于存储块中;
数据清空单元,用于清空内存中缓存的加载数据。
与现有技术相比,本发明提供的基于Druid宽表的关联数据处理装置的有益效果与上述技术方案提供的基于Druid宽表的关联数据处理方法的有益效果相同,在此不做赘述。
本发明的第三方面提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述基于Druid宽表的关联数据处理方法的步骤。
与现有技术相比,本发明提供的计算机可读存储介质的有益效果与上述技术方案提供的基于Druid宽表的关联数据处理方法的有益效果相同,在此不做赘述。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为实施例中基于Druid宽表的关联数据处理方法的一种流程示意图;
图2为实施例中基于Druid宽表的关联数据处理方法的另一种流程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
实施例一
请参阅图1,本实施例提供一种基于Druid宽表的关联数据处理方法,包括:
获取包括维度字段和维值字段的Druid数据源,将所述Druid数据源通过宽表方式列出后得到Druid宽表存储在存储块中;基于当前Druid宽表中频繁变更的维值字段,构建用于管理维度中维值频繁变更的配置表;定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将所述维度字段及对应的所述维值字段加载至内存中缓存;根据查询请求从存储块中获取当前Druid宽表的维度字段和维值字段,和/或,从内存中获取与所述维度字段对应且发生变更的维值字段,汇总统计后输出查询结果。
本实施例提供的基于Druid宽表的关联数据处理方法中,从上游系统中获取Druid数据源,采用反范式设计模式将Druid数据源中的维度字段和维值字段拉宽列出得到Druid宽表存储于存储块中,然后基于当前Druid宽表中频繁变更的维值字段,在Mysql数据库中构建用于管理维度中维值频繁变更的配置表,通过该配置表的应用能够定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将发生变更的维值字段放入内存中缓存,这样当用户发出查询请求时,若缓存中没有匹配的维值字段则说明此段时间查询的维值字段数据未发生变更,此时直接从存储块中调取相关维度字段和维值字段输出结果即可,若缓存中存在匹配的维值字段说明此段时间查询的维值字段数据发生了变更,此时需在缓存中调取变更的增量维值字段并与存储块中的原始维值字段汇总后与维度字段一同输出查询结果。
可见,相比较于现有技术在上游系统输出Druid数据源中的维值字段频繁变更同步刷新Druid宽表的技术方案而言,本实施例通过配置表的设置,采取定时将发生数据变更的维值字段加载至内存中缓存,以在用户查询时将增量维值字段与原始维值字段合并输出的技术方案能够减少对Druid宽表刷新的频率,由此在达到相同查询效果的同时显著降低Druid宽表刷新对机器资源的消耗。
上述实施例中,在步骤将维度在配置表中管理且发生数据变更的维值字段加载至内存中缓存之后还包括:
将缓存的维度字段及对应的维值字段植入Druid宽表,更新Druid宽表的版本后重新存储于存储块中;清空内存中缓存的加载数据。
具体实施时,内存中定时缓存有发生变更的维值字段以及关联的维度字段,为了保证Druid宽表中的Druid数据源能够被及时刷新,需定时将缓存的维值字段以及关联的维度字段植入Druid宽表,并清空缓存的加载数据,通过引入版本化的概念对Druid宽表的版本不断进行更新,在后续定时获取新产生的Druid数据源时,直接将新产生的Druid数据源与最新版本(当前版本)的Druid宽表进行比对,提取发生数据变更的维值字段缓存至内存,反复循环上述过程定期更新Druid宽表版本,同时清空内存中现有缓存的加载数据从而循环接收新产生的变更数据,另外,由于内存中仅对变更数据进行了缓存,相对于全量数据缓存的方案来说减少了内存的占用,优化了系统框架对数据处理的消耗。
可以理解的是,定时的时间可以为一天也可以为5分钟或者其他任一时段,本实施例对此不做限制,具体实施时,本领域技术人员可根据对数据查询的频率要求自由设置,例如,对数据查询实时性要求不高时,可将定时时间设置为一天,这样定时任务每天只需跑一次,也既一天中仅将当前版本Druid宽表与最新产生的Druid数据源比对一次,再例如,对数据查询实时性要求较高时,将定时时间设置为5分钟,这样定时任务每间隔5分钟跑一次,也既每间隔5分钟将当前版本Druid宽表与最新产生的Druid数据源比对一次,然后提取在配置表中管理且发生数据变更的加载数据,并将其同步至Mysql库中的内存缓存,当然,如果加载数据量较大也可以将其同步至Mysql库中的Redis,通过类似缓存的设置,Druid宽表无需在每次加载数据变更时同步刷新,对于百万级数据的Druid宽表来说减少了刷新次数可以极大地减少机器资源的消耗。
上述实施例中,基于当前Druid宽表中频繁变更的维值字段,构建用于管理维度中维值频繁变更的配置表的方法包括:
获取存储块中最新版本的Druid宽表作为当前Druid宽表,并在当前Druid宽表中任一维度字段中的维值字段变更次数超过阈值时,构建用于管理匹配所述维度字段的维度字段定义配置表,以及构建用于管理维值字段缓存的对应关系配置表。
具体实施时,Druid宽表中包括多个维度字段和多个维值字段,且维度字段与维值字段存在匹配对应的关系,示例性地,维度字段可以为订单号、商品编码、商品名称、发货地编码和发货地名称等标题,维值字段对应为对应维度字段的具体数据,如订单号数据、商品编码数据、商品名称数据、发货地编码数据和发货地名称数据,指标对应为商品金额数据,一般来讲订单号数据、商品编码数据、发货地编码数据和发货地名称数据等维值数据较为固定,但由于不同时期可能会对相同商品采用不同的商品名称命名方式,例如将“苹果手机”命名为“iphone”,因此可构建用于订单维度字段的维度字段定义配置表,以及构建用于管理订单维值字段的对应关系配置表,其中,维度字段定义配置表中包括维度编码信息、维度名称信息、缓存类型信息、Druid数据源信息、启用开关、创建时间信息和更新时间信息等,对应关系配置表中包括维值编码信息、维值名称信息、维度编码信息、启用开关、创建时间信息和更新时间信息等,维度字段定义配置表与对应关系配置表基于维度编码信息和维值编码信息相互关联。
根据上述具体实施过程可知,通过预先设置维度字段定义配置表能够对当前Druid宽表中待监控的维度字段进行选择监控,以使在新产生Druid数据源传入时,仅对在维度字段定义配置表中匹配的维度字段进行监控,同时在对应关系配置表中管理的数据进行提取并缓存,能够减少缓存数据对内存资源的占用,而且内存具有查询速度快的特点,可在用户发起查询请求时迅速反馈增量的维值字段,提供如同在Druid宽表中直接查询的快速体验。示例性地,存储块为segment。需要说明的是,对于本领域技术人员来说此处的增量不仅指增加的维值字段,而是对发生变化维值字段的统称,包括增加、减少或变更的维值字段。
具体地,上述实施例中定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将维度字段及对应的维值字段加载至内存中缓存的方法包括:
定时获取新产生的Druid数据源,将其与当前Druid宽表比较匹配出在维度字段定义配置表中管理且对应维值字段发生了数据变更的维度字段,当前Druid宽表作为源表快照数据,用于与新产生的Druid数据源的比对获取变更字段;根据维值字段对应关系配置表从新产生的Druid数据源中提取出与维度字段相对应的维值字段;将变更的维值字段和与之对应的维度字段加载至内存中缓存。
具体实施时,仍以上述实施例中订单Druid宽表进行示例性说明,在当月的订单Druid宽表相较于上一版本,也即上月的订单Druid宽表在订单号、商品编码、商品名称、发货地编码和发货地名称的维度字段均未变动,唯一变动的是商品名称维度字段,故在定时获取到新产生的Druid数据源后,匹配出在维度字段定义配置表中管理且对应维值字段发生了数据变更的维度字段,也即匹配出商品名称维度字段,然后根据维值字段对应关系配置表,从新产生的Druid数据源中提取出商品名称数据发生变更的维值字段,最终将变化部分的维值字段及关联的维度字段加载至内存中缓存。
上述实施例中,根据查询请求从存储块中获取当前Druid宽表的维度字段和维值字段,和/或,从内存中获取与维度字段对应且发生变更的维值字段,汇总统计后输出查询结果的方法包括:
获取用户的查询请求,查询请求中包括查询维度字段信息、查询维值字段信息和查询过滤条件信息;根据查询请求检索是否存在与查询维度字段信息匹配的维度字段定义配置表;若不存在直接从Druid数据源中提取对应的维度字段和原始的维值字段输出查询结果;若存在则基于关联的对应关系配置表从内存的缓存中提取增量的维值字段,然后再从Druid数据源中提取原始的维值字段,将增量的维值字段和原始的维值字段汇总合并后与维度字段一同输出查询结果。
可选地,维度字段定义配置表包括开关功能,当检索到内存的缓存中存在与所述查询维度字段信息匹配的维度字段定义配置表,但开关功能处于关闭状态时直接从Druid数据源中提取对应的维度字段和原始的维值字段输出查询结果,当检索到内存的缓存中存在与所述查询维度字段信息匹配的维度字段定义配置表,且开关功能处于开启状态时从内存的缓存中提取增量的维值字段,然后再从Druid数据源中提取原始的维值字段,将增量的维值字段和原始的维值字段汇总合并后与维度字段一同输出查询结果。
具体实施时,请参阅图2,用于发起查询请求,将查询请求中的维度字段信息与维度字段定义配置表匹配,若Mysql数据库中未配置该表或已配置但处于关闭状态(IS_USE=N),则说明该维度字段没有在内存中缓存加载数据,此时可直接从当前Druid宽表调取相关的维度字段和维值字段反馈输出,若Mysql数据库中已配置该表且该表处于开启状态(IS_USE=Y),则说明该维度字段有在内存中缓存加载数据,需继续维值字段信息的检索流程,若在缓存加载数据中检索不到相关维值字段,此时说明该维值字段未做过变更,可直接提取当前Druid宽表的相关维度字段和维值字段反馈输出,若检索到,此时说明该维值字段做过变更,需从内存的缓存中提取增量的维值字段,然后再从Druid数据源中提取原始的维值字段,将增量的维值字段和原始的维值字段汇总合并后与维度字段一同反馈输出。
需要说明的是,本实施例在应用层面,采用前台框架封装、更新替换的方式展示结果集,解决维表关联问题;并且在设计层面,本实施例采用范式+反范式结合的设计方式,即在底层存储层面的Druid宽表采用反范式设计方案,在结果集处理层面又结合范式设计方案,汇总合并后输出关联的维值字段和维度字段;此为,在维度数据存储层面,引入Druid宽表版本化的概念,将上游系统产出的Druid数据源与当前版本Druid宽表进行比对,将差异化数据单独提取出来加载至内存中缓存,减少了内存占用、优化框架处理消耗;通过维度字段定义配置表开关功能的设计,能够支持灵活的配置方式,当维度字段定义配置表众多且各表的维度数据变更频率不定时,可以根据需求随意选择任一个或几个的维度字段定义配置表切出或切入框架封装的范围,也即内存缓存的范围。
实施例二
本实施例提供一种基于Druid宽表的关联数据处理装置,包括:
数据源获取单元,用于获取包括维度字段和维值字段的Druid数据源,将所述Druid数据源通过宽表方式列出后得到Druid宽表存储在存储块中;
配置表构建单元,用于基于当前Druid宽表中频繁变更的维值字段,构建用于管理维度中维值频繁变更的配置表;
数据比对单元,用于定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将所述维度字段及对应的所述维值字段加载至内存中缓存;
数据查询单元,用于根据查询请求从存储块中获取当前Druid宽表的维度字段和维值字段,和/或,从内存中获取与所述维度字段对应且发生变更的维值字段,汇总统计后输出查询结果。
优选地,还包括:
数据更新单元,用于将缓存的所述维度字段及对应的所述维值字段植入所述Druid宽表,更新Druid宽表的版本后重新存储于存储块中;
数据清空单元,用于清空内存中缓存的加载数据。
与现有技术相比,本实施例提供的基于Druid宽表的关联数据处理装置的有益效果与上述实施例提供的基于Druid宽表的关联数据处理方法的有益效果相同,在此不做赘述。
实施例三
本实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述基于Druid宽表的关联数据处理方法的步骤。
与现有技术相比,本实施例提供的计算机可读存储介质的有益效果与上述技术方案提供的基于Druid宽表的关联数据处理方法的有益效果相同,在此不做赘述。
本领域普通技术人员可以理解,实现上述发明方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,上述程序可以存储于计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,上述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种基于Druid宽表的关联数据处理方法,其特征在于,包括:
获取包括维度字段和维值字段的Druid数据源,将所述Druid数据源通过宽表方式列出后得到Druid宽表存储在存储块中;
基于当前Druid宽表中频繁变更的维值字段,构建用于管理维度中维值频繁变更的配置表;
定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将所述维度字段及对应的所述维值字段加载至内存中缓存;
根据查询请求从存储块中获取当前Druid宽表的维度字段和维值字段,和/或,从内存中获取与维度字段对应且发生变更的维值字段,汇总统计后输出查询结果。
2.根据权利要求1所述的方法,其特征在于,将维度在配置表中管理且发生数据变更的维值字段加载至内存中缓存之后还包括:
将缓存的维度字段及对应的维值字段植入所述Druid宽表,更新Druid宽表的版本后重新存储于存储块中;
清空内存中缓存的加载数据。
3.根据权利要求2所述的方法,其特征在于,基于当前Druid宽表中频繁变更的维值字段,构建用于管理维度中维值频繁变更的配置表的方法包括:
获取存储块中最新版本的Druid宽表作为当前Druid宽表,并在当前Druid宽表中任一维度字段中的维值字段变更次数超过阈值时,构建用于匹配维度字段的维度字段定义配置表,以及构建用于管理维值字段缓存的对应关系配置表。
4.根据权利要求3所述的方法,其特征在于,定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将所述维度字段及对应的所述维值字段加载至内存中缓存的方法包括:
定时获取新产生的Druid数据源,将其与当前Druid宽表比较匹配出在所述维度字段定义配置表中管理且对应维值字段发生了数据变更的维度字段;
根据所述对应关系配置表从新产生的Druid数据源中提取出与维度字段相对应的维值字段;
将变更的维值字段和与之对应的维度字段加载至内存中缓存。
5.根据权利要求4所述的方法,其特征在于,根据查询请求从存储块中获取当前Druid宽表的维度字段和维值字段,和/或,从内存中获取与维度字段对应且发生变更的维值字段,汇总统计后输出查询结果的方法包括:
获取用户的查询请求,所述查询请求中包括查询维度字段信息、查询维值字段信息和查询过滤条件信息;
根据查询请求检索是否存在与所述查询维度字段信息匹配的维度字段定义配置表;
若不存在直接从Druid数据源中提取对应的维度字段和原始的维值字段输出查询结果;
若存在则基于关联的所述对应关系配置表从内存的缓存中提取增量的维值字段,然后再从Druid数据源中提取原始的维值字段,将增量的维值字段和原始的维值字段汇总合并后与维度字段一同输出查询结果。
6.根据权利要求5所述的方法,其特征在于,所述维度字段定义配置表包括开关功能,当检索到内存的缓存中存在与所述查询维度字段信息匹配的维度字段定义配置表,但开关功能处于关闭状态时直接从Druid数据源中提取对应的维度字段和原始的维值字段输出查询结果,当检索到内存的缓存中存在与所述查询维度字段信息匹配的维度字段定义配置表,且开关功能处于开启状态时从内存的缓存中提取增量的维值字段,然后再从Druid数据源中提取原始的维值字段,将增量的维值字段和原始的维值字段汇总合并后与维度字段一同输出查询结果。
7.根据权利要求3-6任一项所述的方法,其特征在于,所述维度字段定义配置表、所述对应关系配置表和缓存的数据存储在Mysql数据库中。
8.一种基于Druid宽表的关联数据处理装置,其特征在于,包括:
数据源获取单元,用于获取包括维度字段和维值字段的Druid数据源,将所述Druid数据源通过宽表方式列出后得到Druid宽表存储在存储块中;
配置表构建单元,用于基于当前Druid宽表中频繁变更的维值字段,构建用于管理维度中维值频繁变更的配置表;
数据比对单元,用于定时从新产生Druid数据源中获取维度在配置表中管理且发生数据变更的维值字段,并将所述维度字段及对应的所述维值字段加载至内存中缓存;
数据查询单元,用于根据查询请求从存储块中获取当前Druid宽表的维度字段和维值字段,和/或,从内存中获取与维度字段对应且发生变更的维值字段,汇总统计后输出查询结果。
9.根据权利要求8所述的装置,其特征在于,还包括:
数据更新单元,用于将缓存的维度字段及对应的维值字段植入所述Druid宽表,更新Druid宽表的版本后重新存储于存储块中;
数据清空单元,用于清空内存中缓存的加载数据。
10.一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其特征在于,计算机程序被处理器运行时执行上述权利要求1至7任一项所述方法的步骤。
CN201911259790.4A 2019-12-10 2019-12-10 基于Druid宽表的关联数据处理方法及装置 Active CN111125099B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911259790.4A CN111125099B (zh) 2019-12-10 2019-12-10 基于Druid宽表的关联数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911259790.4A CN111125099B (zh) 2019-12-10 2019-12-10 基于Druid宽表的关联数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN111125099A CN111125099A (zh) 2020-05-08
CN111125099B true CN111125099B (zh) 2022-12-09

Family

ID=70498159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911259790.4A Active CN111125099B (zh) 2019-12-10 2019-12-10 基于Druid宽表的关联数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN111125099B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100177A (zh) * 2020-09-04 2020-12-18 北京三快在线科技有限公司 数据存储方法、装置、计算机设备及存储介质
CN112364018B (zh) * 2020-11-02 2021-07-16 上海钐昆网络科技有限公司 一种生成宽表的方法、装置、设备及存储介质
CN112307008B (zh) * 2020-12-14 2023-12-08 湖南蚁坊软件股份有限公司 一种Druid压实方法
CN112860737B (zh) * 2021-03-11 2022-08-12 中国平安财产保险股份有限公司 数据查询方法、装置、电子设备及可读存储介质
CN115525722B (zh) * 2022-11-04 2023-03-21 杭州小电科技股份有限公司 宽表数据的同步方法、装置、电子装置和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010141182A2 (en) * 2009-06-02 2010-12-09 Saffron Technology, Inc. Methods, systems and computer program products for providing a distributed associative memory base
CN107766445B (zh) * 2017-09-23 2021-06-01 湖南胜云光电科技有限公司 一种支持多维度检索的高效快速数据检索方法

Also Published As

Publication number Publication date
CN111125099A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
CN111125099B (zh) 基于Druid宽表的关联数据处理方法及装置
US11119997B2 (en) Lock-free hash indexing
CN108920698B (zh) 一种数据同步方法、装置、系统、介质及电子设备
CN103853727B (zh) 提高大数据量查询性能的方法及系统
KR102005831B1 (ko) 범위-기반 검색을 위한 데이터 저장 관리
US11176099B2 (en) Lockless synchronization of LSM tree metadata in a distributed system
US8719254B2 (en) Efficient querying using on-demand indexing of monitoring tables
US11734258B2 (en) Constraint data statistics
CN103678494A (zh) 客户端同步服务端数据的方法及装置
US11468093B2 (en) Synopsis based advanced partition elimination
US20200201821A1 (en) Synchronization of index copies in an lsm tree file system
CN108182213A (zh) 一种基于分布式系统的数据处理优化装置及方法
US9235613B2 (en) Flexible partitioning of data
US10762068B2 (en) Virtual columns to expose row specific details for query execution in column store databases
CN114328981B (zh) 基于模式映射的知识图谱建立和数据获取方法、装置
CN115033646A (zh) 一种基于Flink&Doris构建实时数仓系统的方法
US20220229821A1 (en) Data restoration using dynamic data structure altering
US20200192959A1 (en) System and method for efficiently querying data using temporal granularities
CN113849524B (zh) 一种数据处理方法及装置
CN113590713A (zh) 分布式系统参数同步方法、装置、电子设备及计算机可读存储介质
CN107622124B (zh) 基于块数据的数据查询方法及系统
CN116628001A (zh) 一种页面数据的加载方法、装置及介质
CN115718787A (zh) 数据表数据同步方法、查询方法、电子设备及存储介质
CN116089533A (zh) 一种基于数据库的数据同步方法、设备及介质
CN117349327A (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