一种基于模型缓存实现的离线仓库实时交互方法与系统

文档序号:1798198 发布日期:2021-11-05 浏览:1次 >En<

阅读说明:本技术 一种基于模型缓存实现的离线仓库实时交互方法与系统 (Offline warehouse real-time interaction method and system based on model cache ) 是由 蔡予 谢赟 葛兵 陈大伟 于 2021-08-24 设计创作,主要内容包括:本发明公开了一种基于模型缓存实现的离线仓库实时交互方法与系统,方法包含以下步骤:捕获页面的交互操作数据并转换为系统可记录的元数据信息;对元数据信息进行拆分并存储得到元数据;对元数据中需要缓存处理的建模类元数据进行数据建模得到缓存建模数据;对需要缓存处理的计算类元数据进行数据计算得到缓存执行结果数据并返回至页面展示;重复执行上述步骤直至得到离线处理信号时执行:对元数据中需要离线处理的建模类元数据进行数据建模得到离线建模数据;对需要离线处理的计算类元数据进行数据计算得到离线执行结果数据并返回至页面展示;系统包含页面交互模块、元数据处理模块、缓存建模模块、缓存计算模块、离线建模模块、离线计算模块。(The invention discloses a method and a system for realizing real-time interaction of an offline warehouse based on model caching, wherein the method comprises the following steps: capturing interactive operation data of a page and converting the interactive operation data into metadata information which can be recorded by a system; splitting and storing the metadata information to obtain metadata; performing data modeling on modeling metadata needing caching processing in the metadata to obtain caching modeling data; performing data calculation on the calculation metadata needing cache processing to obtain cache execution result data and returning the cache execution result data to a page for displaying; the steps are repeatedly executed until the off-line processing signal is obtained, and the following steps are executed: performing data modeling on modeling metadata needing offline processing in the metadata to obtain offline modeling data; performing data calculation on the calculation metadata needing offline processing to obtain offline execution result data, and returning the offline execution result data to a page for displaying; the system comprises a page interaction module, a metadata processing module, a cache modeling module, a cache calculation module, an offline modeling module and an offline calculation module.)

一种基于模型缓存实现的离线仓库实时交互方法与系统

技术领域

本发明涉及离线仓库实时交互领域,具体涉及一种基于模型缓存实现的离线仓库实时交互方法与系统。

背景技术

随着大数据行业的发展,数据仓库的建设越来越多,人们对数据仓库建设的效率要求在不断提高,从建设时间、建设成本、建设灵活性方面考虑,数据仓库建设方式正在逐步的从传统的纯代码式数据开发,向实时交互式数据开发演变;

实时交互式数据开发是将数据处理的过程进行拆解、简化、封装、可复用,让数据开发过程由之前的编写一套代码,再去运行验证结果的传统方式,变为每一步数据开发动作都可以瞬时获得预览结果,并可以随时调整数据处理的策略、方式或目标的实时交互方式,可以大幅度减少数据开发过程中常见的预期错误、数据返工等现象,提升大数据建设过程中的效率;

目前,市场中的数据仓库多采用hive数据库进行建设,虽然具有分布式计算、平滑扩容、高可用等诸多优点,但它在应对实时交互式数据开发的过程中存在诸多劣势,第一点计算延迟高,hive作为数据仓库的优势更多是可以支撑大数据量的计算而不崩溃,但在同等数据量、同等配置下的计算速率比不过关系型数据库;第二点建表延迟高,hive作为离线型数据仓库,不善于应对频繁的建表、建模类操作,导致其响应延迟高,无法满足实时交互式数据开发过程中的灵活建模要求;第三点资源消耗大,采用传统hive离线仓库支撑实时交互式的数据开发场景时,频繁的预计算和数据变动会导致其在数据资源包括计算耗时、存储占用、集群网络、磁盘IO方面消耗过大;

此外,针对大数据复杂的离线处理场景,如字段级别处理包含重命名、增减字段、更改类型等;对内容的处理,包含字段的增、删、改等多种操作;涉及到多表之间的处理常包含表关联、表合并等操作;整体数据处理过程中,涉及的大数据量表、多字段表、多个关联表等场景下,使用传统的开发方式,更容易造成数据返工的情况,但市面上通用的离线仓库无法满足实时交互式数据开发。

发明内容

本发明要解决的技术问题是现有的传统开发方式,更容易造成数据返工的情况,但市面上通用的离线仓库无法满足实时交互式数据开发,本发明提供一种基于模型缓存实现的离线仓库实时交互方法,本发明还提供一种基于模型缓存实现的离线仓库实时交互系统,能够通过设置缓存建模模块、缓存计算模块、离线建模模块、离线计算模块,并借助并行写入、数据采样处理的技术来保障数据处理过程中页面操作与数据结果之间的实时交互要求,相比与传统数据开发方式具有更高的灵活性、实时性和可控性;同时对于离线处理的数据场景,采用存算分离架构,通过数据建模与数据计算的分离运行,实现海量数据处理下的实时交互反馈与数据执行结果之间的的最终一致性,并具有更低响应延迟,更低资源消耗的优势,可以大幅度提升数据建设的效率,用以解决现有技术导致的缺陷。

为解决上述技术问题本发明提供以下的技术方案:

第一方面,一种基于模型缓存实现的离线仓库实时交互方法,其中,包含以下步骤:

步骤1:捕获页面的交互操作数据并转换为系统可记录的元数据信息;

步骤2:保持最终逻辑一致性对元数据信息进行拆分并存储,得到元数据;

步骤3:对元数据中需要缓存处理的建模类元数据进行数据建模得到缓存建模数据;

步骤4:基于缓存建模数据对需要缓存处理的计算类元数据进行数据计算得到缓存执行结果数据,并返回至页面展示;

步骤5:重复执行步骤1-4,当捕获到页面的交互操作数据中存在离线处理信号时执行步骤6;

步骤6:对元数据中需要离线处理的建模类元数据进行数据建模得到离线建模数据;

步骤7:基于离线建模数据对需要离线处理的计算类元数据进行数据计算得到离线执行结果数据,并返回至页面展示。

上述的一种基于模型缓存实现的离线仓库实时交互方法,其中,步骤1中所述页面交互操作数据包含页面代码开发、点击数据处理功能按钮操作;

步骤1中的所述数据处理策略包含缓存处理执行策略、离线处理执行策略;

步骤2中所述元数据包含建模类元数据、计算类元数据;

步骤3中需要缓存处理的所述建模类元数据通过具有快速建模特性的数据库进行数据建模得到所述缓存建模数据,将所述建模类元数据(比如建表语句DDL)发送至所述数据库后能够快速建模(建表,缓存建模的结果实际就是创建了一张数据表),所述数据库采用内存型数据库或关系型数据库等具有快速建模特性的数据库,能够快速返回数据执行结果如建模状态信息、建模基本信息,建模系统时间等;

步骤4中对需要缓存处理的计算类元数据进行数据计算的方法包含随机采样、数据摘要、关键段提取、离散抽样中的任一种,牺牲部分查询精度显著降低查询时间;

步骤6中所述离线建模数据还需进行业务对照处理、语法分析处理、质保测试处理后与所述缓存建模数据保持结果一致,通过输入、业务、输出三段逻辑架构,针对缓存处理和离线处理不同的技术架构实现同一份数据在输入段上的连通性,在业务段上的处理逻辑的相似性和最终数据执行结果的一致性;输入就是交互页面的操作,比如拖拽了一张表,对“身份证”这个字段进行处理,去除不符合要求的数据值,这一点对于缓存策略或离线策略来说,输入都是相同的;输出和输入一样,在交互页面上操作这个表需要输出到哪个数据库中,这一点对于缓存策略或离线策略来说,输出也是相同的;业务区别在与,缓存策略的建模和计算操作是对内存型数据库的,离线策略的建模和计算操作是对hive数据仓库的,通过业务对照、语法分析、测试保障等手段,来确保业务中的数据结果是一致的;

步骤7中对需要离线处理的计算类元数据进行数据计算的方法包含使用Tez计算框架或MapReduce计算框架或Storm计算框架或Spark计算框架进行批数据的计算处理,使用对于资源的切分实现存算分离并发处理,并使用分配不同的资源域、峰值配置以及分布式高可用动态扩缩容的方法,对轻量、海量的数据计算资源分配最大化,降低响应延迟与资源消耗。

上述的一种基于模型缓存实现的离线仓库实时交互方法,其中,所述页面代码开发包含python计算机编程语言、php计算机编程语言、R计算机编程语言、JavaScript计算机编程语言、shell计算机编程语言、sql结构化查询语言、java计算机编程语言、golang计算机编程语言的代码块或脚本、二进制文件;

所述点击数据处理功能按钮操作按照场景区分包含数据输入、数据探查、数据清洗、数据映射、数据加工、数据脱敏、数据加密、数据输出的操作;

按照功能区分包含创建表、清空表、删除表、增加字段列、删除字段列,修改字段列名称、修改字段列类型、修改字段列注释、修改主键字段列、修改索引字段列、修改分区字段列、字段内容处理、表级处理、表间处理的操作;

所述建模类元数据信息包含创建表、清空表、删除表、改动表结构操作;

所述计算类元数据信息包含字段内容处理操作、表级处理操作、表间处理操作。

上述的一种基于模型缓存实现的离线仓库实时交互方法,其中,所述改动表结构操作包含对已存在的表结构进行增加字段列、删除字段列,修改字段列名称、修改字段列类型、修改字段列注释、修改主键字段列、修改索引字段列、修改分区字段列;

所述字段内容处理操作包含添加缺省值、替换指定内容、字段内容拼接、字段内容运算、截取指定位置内容、指定内容添加文字、删减指定内容、合并字段内容、分裂字段内容;

所述表级处理操作包括过滤、聚合、分组、筛选、限制;

所述表间处理操作包括多表关联、交叉连接、多表合并、多表间值运算。

第二方面,一种基于模型缓存实现的离线仓库实时交互系统,其中,包含页面交互模块、元数据处理模块、缓存建模模块、缓存计算模块、离线建模模块、离线计算模块;

所述页面交互模块用于获取系统页面上发生的页面交互操作数据并按照数据处理策略转化为传输至所述元数据模块的元数据信息,所述页面交互模块还用于获取离线处理信号并传输至所述离线建模模块;

所述元数据模块用于将所述元数据信息拆分成建模类元数据、计算类元数据并分别传输至所述缓存建模模块、所述离线建模模块;

所述缓存建模模块用于对需要缓存处理的建模类元数据进行数据建模处理得到缓存建模数据,并将需要缓存处理的计算类元数据传输至所述缓存计算模块;

所述缓存计算模块用于基于所述缓存建模模块的执行情况对需要缓存处理的计算类元数据进行数据计算处理得到传输至所述页面交互模块、所述元数据模块的缓存执行结果数据;

所述离线建模模块用于接收到所述离线处理信号后对需要离线处理的建模类元数据进行数据建模处理得到离线建模数据,并将需要离线处理的计算类元数据传输至所述离线计算模块;

所述离线计算模块用于基于所述离线建模模块的执行情况对需要离线处理的计算类元数据进行数据计算处理得到传输至所述页面交互模块、所述元数据模块的离线执行结果数据。

上述的一种基于模型缓存实现的离线仓库实时交互系统,其中,所述页面交互操作数据包含页面代码开发、点击数据处理功能按钮操作;

所述数据处理策略包含缓存处理执行策略、离线处理执行策略;

所述元数据包含建模类元数据、计算类元数据;

所述建模类元数据通过所述缓存建模模块内置的具有快速建模特性的数据库进行数据建模得到所述缓存建模,在数据建模时摒弃传统hive离线数仓存在的高延时劣势,使用支持极速DDL特性的某类数据库如内存型数据库或关系型数据库搭建缓存建模模块,当获取到建模类元数据信息时,可以快速返回数据执行结果如建模状态信息、建模基本信息、建模系统时间等,保障数据处理过程中实时交互的高效性和连贯性;

对需要缓存处理的所述计算类元数据进行数据计算的方法包含随机采样、数据摘要、关键段提取、离散抽样中的任一种,基于所述缓存建模模块的执行情况,对需要缓存处理的计算类元数据进行数据计算处理,返回执行结果数据至所述页面交互模块展示和所述元数据处理模块记录,基于所述缓存建模模块生成的实例数据模型,对所获取到的计算类元数据信息执行数据计算操作,其中不会对全部数据执行计算操作,以避免大数据量表、多字段表、多表关联处理情况下的高延时、高资源消耗问题;通过随机采样、数据摘要等技术,牺牲部分查询精度显著降低查询时间,以适应实时交互要求,譬如针对全部数据进行关键段提取,取一千行数据,或者采用离散抽样方式尽可能保证字段内容分布的均匀性与代表性,依次进行数据计算,返回数据执行结果,确保页面交互模块中数据处理过程中预览处理结果、并根据结果不断调整数据开发内容的交互实时性与准确性;

所述页面交互模块获得执行结果数据后,即意味着基于实时交互的数据开发过程开始进展,随着数据开发的深入,各种类型的建模、计算操作从所述页面交互模块反馈至所述建模模块、所述缓存计算模块、再反馈回所述页面交互模块,即反复执行步骤1、步骤2、步骤3、步骤4,直至完成全部数据处理操作包括数据输入、数据探查、数据清洗、数据映射、数据加工、数据输出等场景,保存所有操作元数据信息,同时由于数据开发中存在多种不确定型,如源头数据变化、数据建设范围更改、数据内容要求调整,系统可以最大限度的保障数据处理过程中的灵活性与机动性。

所述离线建模模块还用于对所述离线建模数据进行业务对照处理、语法分析处理、质保测试处理后与所述缓存建模数据保持结果一致,针对缓存处理与离线处理不同的技术架构,不同模块间统一识别元数据信息,按照输入、业务、输出三段逻辑架构,通过技术手段实现不同模块在输入段上的连通性、在业务段上的功能一致,在输出端的结果相同,即为最终逻辑(结果)一致性;

对需要离线处理的所述计算类元数据进行数据计算的方法包含使用Tez计算框架或MapReduce计算框架或Storm计算框架或Spark计算框架进行批数据的计算处理。

数据建模型信息在所述离线建模模块中处理,数据计算类信息在所述离线计算模块中处理,相比于传统hive数仓一体化处理的架构,通过对于资源的切分,实现存算分离的并发处理优势,在此基础上,可以针对不同类型的元数据信息,通过分配不同的资源域、峰值配置以及借助分布式的高可用动态扩缩容特性,实现对于轻量、海量的数据计算资源分配最大化,保障实时交互反馈与数据执行结果之间的的最终一致性,并具有更低响应延迟,更低资源消耗的优势,可以大幅度提升数据建设的效率

上述的一种基于模型缓存实现的离线仓库实时交互系统,其中,所述页面代码开发包含python计算机编程语言、php计算机编程语言、R计算机编程语言、JavaScript计算机编程语言、shell计算机编程语言、sql结构化查询语言、java计算机编程语言、golang计算机编程语言的代码块或脚本、二进制文件;

所述点击数据处理功能按钮操作按照场景区分包含数据输入、数据探查、数据清洗、数据映射、数据加工、数据脱敏、数据加密、数据输出的操作;

按照功能区分包含创建表、清空表、删除表、增加字段列、删除字段列,修改字段列名称、修改字段列类型、修改字段列注释、修改主键字段列、修改索引字段列、修改分区字段列、字段内容处理、表级处理、表间处理的操作;

所述建模类元数据信息包含创建表、清空表、删除表、改动表结构操作;

所述计算类元数据信息包含字段内容处理操作、表级处理操作、表间处理操作。

上述的一种基于模型缓存实现的离线仓库实时交互系统,其中,所述改动表结构操作包含对已存在的表结构进行增加字段列、删除字段列,修改字段列名称、修改字段列类型、修改字段列注释、修改主键字段列、修改索引字段列、修改分区字段列;

所述字段内容处理操作包含添加缺省值、替换指定内容、字段内容拼接、字段内容运算、截取指定位置内容、指定内容添加文字、删减指定内容、合并字段内容、分裂字段内容;

所述表级处理操作包括过滤、聚合、分组、筛选、限制;

所述表间处理操作包括多表关联、交叉连接、多表合并、多表间值运算。

第三方面,一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法的步骤。

依据上述本发明一种基于模型缓存实现的离线仓库实时交互方法与系统提供的技术方案具有以下技术效果:

通过设置缓存建模模块、缓存计算模块、离线建模模块、离线计算模块,并借助并行写入、数据采样处理的技术来保障数据处理过程中页面操作与数据结果之间的实时交互要求,相比与传统数据开发方式具有更高的灵活性、实时性和可控性;同时对于离线处理的数据场景,采用存算分离架构,通过数据建模与数据计算的分离运行,实现海量数据处理下的实时交互反馈与数据执行结果之间的的最终一致性,并具有更低响应延迟,更低资源消耗的优势,可以大幅度提升数据建设的效率。

附图说明

图1为本发明一种基于模型缓存实现的离线仓库实时交互方法的流程图;

图2为本发明一种基于模型缓存实现的离线仓库实时交互系统的结构图;

图3为发明一种基于模型缓存实现的离线仓库实时交互系统与传统数据开发的逻辑对比示意图。

其中,附图标记如下:

页面交互模块101、元数据处理模块102、缓存建模模块103、缓存计算模块104、离线建模模块105、离线计算模块106。

具体实施方式

为了使发明实现的技术手段、创造特征、达成目的和功效易于明白了解,下结合具体图示,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。

基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。

同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。

本发明的第一实施例是提供一种基于模型缓存实现的离线仓库实时交互方法,本发明第二实施例是提供一种基于模型缓存实现的离线仓库实时交互系统,目的是通过设置缓存建模模块、缓存计算模块、离线建模模块、离线计算模块,并借助并行写入、数据采样处理的技术来保障数据处理过程中页面操作与数据结果之间的实时交互要求,相比与传统数据开发方式具有更高的灵活性、实时性和可控性;同时对于离线处理的数据场景,采用存算分离架构,通过数据建模与数据计算的分离运行,实现海量数据处理下的实时交互反馈与数据执行结果之间的的最终一致性,并具有更低响应延迟,更低资源消耗的优势,可以大幅度提升数据建设的效率。

如图1所示,第一方面,第一实施例,一种基于模型缓存实现的离线仓库实时交互方法,其中,包含以下步骤:

步骤1:捕获页面的交互操作数据并转换为系统可记录的元数据信息;

步骤2:保持最终逻辑一致性对元数据信息进行拆分并存储,得到元数据;

步骤3:对元数据中需要缓存处理的建模类元数据进行数据建模得到缓存建模数据;

步骤4:基于缓存建模数据对需要缓存处理的计算类元数据进行数据计算得到缓存执行结果数据,并返回至页面展示;

步骤5:重复执行步骤1-4,当捕获到页面的交互操作数据中存在离线处理信号时执行步骤6;

步骤6:对元数据中需要离线处理的建模类元数据进行数据建模得到离线建模数据;

步骤7:基于离线建模数据对需要离线处理的计算类元数据进行数据计算得到离线执行结果数据,并返回至页面展示。

上述的一种基于模型缓存实现的离线仓库实时交互方法,其中,步骤1中页面交互操作数据包含页面代码开发、点击数据处理功能按钮操作;

步骤1中的数据处理策略包含缓存处理执行策略、离线处理执行策略;

步骤2中元数据包含建模类元数据、计算类元数据;

步骤3中需要缓存处理的建模类元数据通过具有快速建模特性的数据库进行数据建模得到缓存建模数据,将建模类元数据(比如建表语句DDL)发送至数据库后能够快速建模(建表,缓存建模的结果实际就是创建了一张数据表),数据库采用内存型数据库或关系型数据库等具有快速建模特性的数据库,能够快速返回数据执行结果如建模状态信息、建模基本信息,建模系统时间等;

步骤4中对需要缓存处理的计算类元数据进行数据计算的方法包含随机采样、数据摘要、关键段提取、离散抽样中的任一种,牺牲部分查询精度显著降低查询时间;

步骤6中离线建模数据还需进行业务对照处理、语法分析处理、质保测试处理后与缓存建模数据保持结果一致,通过输入、业务、输出三段逻辑架构,针对缓存处理和离线处理不同的技术架构实现同一份数据在输入段上的连通性,在业务段上的处理逻辑的相似性和最终数据执行结果的一致性;输入就是交互页面的操作,比如拖拽了一张表,对“身份证”这个字段进行处理,去除不符合要求的数据值,这一点对于缓存策略或离线策略来说,输入都是相同的;输出和输入一样,在交互页面上操作这个表需要输出到哪个数据库中,这一点对于缓存策略或离线策略来说,输出也是相同的;业务区别在与,缓存策略的建模和计算操作是对内存型数据库的,离线策略的建模和计算操作是对hive数据仓库的,通过业务对照、语法分析、测试保障,来确保业务中的数据结果是一致的;

步骤7中对需要离线处理的计算类元数据进行数据计算的方法包含使用Tez计算框架或MapReduce计算框架或Storm计算框架或Spark计算框架进行批数据的计算处理,使用对于资源的切分实现存算分离并发处理,并使用分配不同的资源域、峰值配置以及分布式高可用动态扩缩容的方法,对轻量、海量的数据计算资源分配最大化,降低响应延迟与资源消耗。

上述的一种基于模型缓存实现的离线仓库实时交互方法,其中,页面代码开发包含python计算机编程语言、php计算机编程语言、R计算机编程语言、JavaScript计算机编程语言、shell计算机编程语言、sql结构化查询语言、java计算机编程语言、golang计算机编程语言的代码块或脚本、二进制文件;

点击数据处理功能按钮操作按照场景区分包含数据输入、数据探查、数据清洗、数据映射、数据加工、数据脱敏、数据加密、数据输出的操作;

按照功能区分包含创建表、清空表、删除表、增加字段列、删除字段列,修改字段列名称、修改字段列类型、修改字段列注释、修改主键字段列、修改索引字段列、修改分区字段列、字段内容处理、表级处理、表间处理的操作;

建模类元数据信息包含创建表、清空表、删除表、改动表结构操作;

计算类元数据信息包含字段内容处理操作、表级处理操作、表间处理操作。

上述的一种基于模型缓存实现的离线仓库实时交互方法,其中,改动表结构操作包含对已存在的表结构进行增加字段列、删除字段列,修改字段列名称、修改字段列类型、修改字段列注释、修改主键字段列、修改索引字段列、修改分区字段列;

字段内容处理操作包含添加缺省值、替换指定内容、字段内容拼接、字段内容运算、截取指定位置内容、指定内容添加文字、删减指定内容、合并字段内容、分裂字段内容;

表级处理操作包括过滤、聚合、分组、筛选、限制;

表间处理操作包括多表关联、交叉连接、多表合并、多表间值运算。

如图2-3所示,第二方面,第二实施例,一种基于模型缓存实现的离线仓库实时交互系统,其中,包含页面交互模块101、元数据处理模块102、缓存建模模块103、缓存计算模块104、离线建模模块105、离线计算模块106;

页面交互模块101用于获取系统页面上发生的页面交互操作数据并按照数据处理策略转化为传输至元数据模块的元数据信息,页面交互模块101还用于获取离线处理信号并传输至离线建模模块105;

元数据模块用于将元数据信息拆分成建模类元数据、计算类元数据并分别传输至缓存建模模块103、离线建模模块105;

缓存建模模块103用于对需要缓存处理的建模类元数据进行数据建模处理得到缓存建模数据,并将需要缓存处理的计算类元数据传输至缓存计算模块104;

缓存计算模块104用于基于缓存建模模块103的执行情况对需要缓存处理的计算类元数据进行数据计算处理得到传输至页面交互模块101、元数据模块的缓存执行结果数据;

离线建模模块105用于接收到离线处理信号后对需要离线处理的建模类元数据进行数据建模处理得到离线建模数据,并将需要离线处理的计算类元数据传输至离线计算模块106;

离线计算模块106用于基于离线建模模块105的执行情况对需要离线处理的计算类元数据进行数据计算处理得到传输至页面交互模块101、元数据模块的离线执行结果数据。

上述的一种基于模型缓存实现的离线仓库实时交互系统,其中,页面交互操作数据包含页面代码开发、点击数据处理功能按钮操作;

数据处理策略包含缓存处理执行策略、离线处理执行策略;

元数据包含建模类元数据、计算类元数据;

建模类元数据通过缓存建模模块103内置的具有快速建模特性的数据库进行数据建模得到缓存建模,在数据建模时摒弃传统hive离线数仓存在的高延时劣势,使用支持极速DDL特性的某类数据库如内存型数据库或关系型数据库搭建缓存建模模块103,当获取到建模类元数据信息时,可以快速返回数据执行结果如建模状态信息、建模基本信息、建模系统时间等,保障数据处理过程中实时交互的高效性和连贯性;

对需要缓存处理的计算类元数据进行数据计算的方法包含随机采样、数据摘要、关键段提取、离散抽样中的任一种,基于缓存建模模块103的执行情况,对需要缓存处理的计算类元数据进行数据计算处理,返回执行结果数据至页面交互模块101展示和元数据处理模块102记录,基于缓存建模模块103生成的实例数据模型,对所获取到的计算类元数据信息执行数据计算操作,其中不会对全部数据执行计算操作,以避免大数据量表、多字段表、多表关联处理情况下的高延时、高资源消耗问题;通过随机采样、数据摘要等技术,牺牲部分查询精度显著降低查询时间,以适应实时交互要求,譬如针对全部数据进行关键段提取,取一千行数据,或者采用离散抽样方式尽可能保证字段内容分布的均匀性与代表性,依次进行数据计算,返回数据执行结果,确保页面交互模块101中数据处理过程中预览处理结果、并根据结果不断调整数据开发内容的交互实时性与准确性;

页面交互模块101获得执行结果数据后,即意味着基于实时交互的数据开发过程开始进展,随着数据开发的深入,各种类型的建模、计算操作从页面交互模块101反馈至建模模块、缓存计算模块104、再反馈回页面交互模块101,即反复执行步骤1、步骤2、步骤3、步骤4,直至完成全部数据处理操作包括数据输入、数据探查、数据清洗、数据映射、数据加工、数据输出等场景,保存所有操作元数据信息,同时由于数据开发中存在多种不确定型,如源头数据变化、数据建设范围更改、数据内容要求调整,系统可以最大限度的保障数据处理过程中的灵活性与机动性,如图3所示为本技术方案与传统数据开发的差异。

离线建模模块105还用于对离线建模数据进行业务对照处理、语法分析处理、质保测试处理后与缓存建模数据保持结果一致,针对缓存处理与离线处理不同的技术架构,不同模块间统一识别元数据信息,按照输入、业务、输出三段逻辑架构,通过技术手段实现不同模块在输入段上的连通性、在业务段上的功能一致,在输出端的结果相同,即为最终逻辑(结果)一致性;

对需要离线处理的计算类元数据进行数据计算的方法包含使用Tez计算框架或MapReduce计算框架或Storm计算框架或Spark计算框架进行批数据的计算处理。

数据建模型信息在离线建模模块105中处理,数据计算类信息在离线计算模块106中处理,相比于传统hive数仓一体化处理的架构,通过对于资源的切分,实现存算分离的并发处理优势,在此基础上,可以针对不同类型的元数据信息,通过分配不同的资源域、峰值配置以及借助分布式的高可用动态扩缩容特性,实现对于轻量、海量的数据计算资源分配最大化,保障实时交互反馈与数据执行结果之间的的最终一致性,并具有更低响应延迟,更低资源消耗的优势,可以大幅度提升数据建设的效率

上述的一种基于模型缓存实现的离线仓库实时交互系统,其中,页面代码开发包含python计算机编程语言、php计算机编程语言、R计算机编程语言、JavaScript计算机编程语言、shell计算机编程语言、sql结构化查询语言、java计算机编程语言、golang计算机编程语言的代码块或脚本、二进制文件;

点击数据处理功能按钮操作按照场景区分包含数据输入、数据探查、数据清洗、数据映射、数据加工、数据脱敏、数据加密、数据输出的操作;

按照功能区分包含创建表、清空表、删除表、增加字段列、删除字段列,修改字段列名称、修改字段列类型、修改字段列注释、修改主键字段列、修改索引字段列、修改分区字段列、字段内容处理、表级处理、表间处理的操作;

建模类元数据信息包含创建表、清空表、删除表、改动表结构操作;

计算类元数据信息包含字段内容处理操作、表级处理操作、表间处理操作。

上述的一种基于模型缓存实现的离线仓库实时交互系统,其中,改动表结构操作包含对已存在的表结构进行增加字段列、删除字段列,修改字段列名称、修改字段列类型、修改字段列注释、修改主键字段列、修改索引字段列、修改分区字段列;

字段内容处理操作包含添加缺省值、替换指定内容、字段内容拼接、字段内容运算、截取指定位置内容、指定内容添加文字、删减指定内容、合并字段内容、分裂字段内容;

表级处理操作包括过滤、聚合、分组、筛选、限制;

表间处理操作包括多表关联、交叉连接、多表合并、多表间值运算。

第三方面,一种计算机可读存储介质,其中,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现第一方面中任一项的方法的步骤。

例如,存储器可以包括随机存储器、闪存、只读存储器、可编程只读存储器、非易失性存储器或寄存器等;

处理器可以是中央处理器(Central Processing Unit,CPU)等,或者是图像处理器(Graphic Processing Unit,GPU)存储器可以存储可执行指令;

处理器可以执行在存储器中存储的执行指令,从而实现本文描述的各个过程。

可以理解,本实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者;

其中,非易失性存储器可以是ROM(Read-OnlyMemory,只读存储器)、PROM(ProgrammableROM,可编程只读存储器)、EPROM(ErasablePROM,可擦除可编程只读存储器)、EEPROM(ElectricallyEPROM,电可擦除可编程只读存储器)或闪存。

易失性存储器可以是RAM(RandomAccessMemory,随机存取存储器),其用作外部高速缓存;

通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM(StaticRAM,静态随机存取存储器)、DRAM(DynamicRAM,动态随机存取存储器)、SDRAM(SynchronousDRAM,同步动态随机存取存储器)、DDRSDRAM(DoubleDataRate SDRAM,双倍数据速率同步动态随机存取存储器)、ESDRAM(Enhanced SDRAM,增强型同步动态随机存取存储器)、SLDRAM(SynchlinkDRAM,同步连接动态随机存取存储器)和DRRAM(DirectRambusRAM,直接内存总线随机存取存储器)。本文描述的存储器205旨在包括但不限于这些和任意其它适合类型的存储器205。

在一些实施方式中,存储器存储了如下的元素,升级包、可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序;

其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

应用程序,包含各种应用程序,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序中。

本领域技术人员可以明白的是,结合本文中所公开的实施例描述的各示例的单元及算法步骤能够以电子硬件、或者软件和电子硬件的结合来实现;

这些功能是以硬件还是软件方式来实现,取决于技术方案的特定应用和设计约束条件;

本领域技术人员可以针对每个特定的应用,使用不同的方式来实现所描述的功能,但是这种实现并不应认为超出本申请的范围。

在本申请实施例中,所公开的系统、装置和方法可以通过其它方式来实现;

例如,单元或模块的划分仅仅为一种逻辑功能划分,在实际实现时还可以有另外的划分方式;

例如,多个单元或模块或组件可以进行组合或者可以集成到另一个系统中;

另外,在本申请实施例中的各功能单元或模块可以集成在一个处理单元或模块中,也可以是单独的物理存在等等。

应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在机器可读存储介质中;

因此,本申请的技术方案可以以软件产品的形式来体现,该软件产品可以存储在机器可读存储介质中,其可以包括若干指令用以使得电子设备执行本申请实施例所描述的技术方案的全部或部分过程;

上述存储介质可以包括ROM、RAM、可移动盘、硬盘、磁盘或者光盘等各种可以存储程序代码的介质。

综上,本发明的一种基于模型缓存实现的离线仓库实时交互方法与系统,能够通过设置缓存建模模块、缓存计算模块、离线建模模块、离线计算模块,并借助并行写入、数据采样处理的技术来保障数据处理过程中页面操作与数据结果之间的实时交互要求,相比与传统数据开发方式具有更高的灵活性、实时性和可控性;同时对于离线处理的数据场景,采用存算分离架构,通过数据建模与数据计算的分离运行,实现海量数据处理下的实时交互反馈与数据执行结果之间的的最终一致性,并具有更低响应延迟,更低资源消耗的优势,可以大幅度提升数据建设的效率。

以上对发明的具体实施例进行了描述。需要理解的是,发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;本领域技术人员可以在权利要求的范围内做出各种变形或修改做出若干简单推演、变形或替换,这并不影响发明的实质内容。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种对内存数据进行操作的方法、系统、设备及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!