CN111767327A - 数据流间具有依赖关系的数据仓库构件方法与系统 - Google Patents
数据流间具有依赖关系的数据仓库构件方法与系统 Download PDFInfo
- Publication number
- CN111767327A CN111767327A CN202010404874.9A CN202010404874A CN111767327A CN 111767327 A CN111767327 A CN 111767327A CN 202010404874 A CN202010404874 A CN 202010404874A CN 111767327 A CN111767327 A CN 111767327A
- Authority
- CN
- China
- Prior art keywords
- data
- data stream
- warehoused
- storage
- database
- 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.)
- Granted
Links
Images
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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据流间具有依赖关系的数据仓库构建方法,包括如下步骤:初始化数据仓库的主题表;从不同的业务数据库实时获取待入库数据流;判断所述待入库数据流所描述的事实对象中是否包含即将落库的目标主题表的目标字段对应的主键,如果包含,则判定所述待入库数据流为主表,如果不包含,则判定所述待入库数据流为从表;对判定为主表的待入库数据流进行主表入库,对判定为从表的待入库数据流进行从表入库;对已入库数据流进行写库,得到统一主题层的数据仓库。本发明实现了对多个不同业务数据库的多张数据表的数据流的可信的依赖关系构造,可高效构建大数据实时数据仓库数据层。
Description
技术领域
本发明涉及数据仓库技术领域,特别涉及一种数据流间具有依赖关系的数据仓库构建方法、系统及计算机设备。
背景技术
目前,oracle等关系型数据库依然是主要的业务数据库,基于关系型数据库构建统一主题层的大数据的数据仓库,通常都是定时跑批的模式,而实时场景的大数据平台框架,如基于lambda或kappa数据架构构筑的大数据平台架构,通常是直接基于实时流或实时流及批量表做统计计算,因此需要一种实时构造大数据的数据仓库的数据层。
基于lambda或kappa数据架构来构筑大数据平台架构,采集的数据是基于web、android、应用程序埋点日志等所汇集起来的事件流设计,最常见的就是基于5w1h等系列的事件接入模型,数据流进入后,基于Batch Layer和Speed Layer,将流数据和批数据拉通后进行统计分析,kappa通过统一实时和批量计算引擎解决了实时构建与批量数据流口径不一致问题,但其设计理念在实际实施时,会碰到事件流的模型(如5w1h系列模型)和基于业务数据库的3NF模型不同,导致在时间窗口内的流数据和批数据之间要进行大量的拉通运算,且并不会将该数据源的历史全量数据及所有变更数据以这种方式直接落库到数据仓库的主题层。若直接接入3NF模型的数据变更流,数据库操作变更数据流的一个表的变更日志就是一条数据变更流,上千张数据流分散在多个不同业务数据库中,不同数据流流之间的依赖关系需要重建,构建依赖关系后数据流才能直接实时落库到大数据整合数据层上,因此缺乏一种构造数据流间可信依赖关系的手段。
发明内容
基于此,有必要提供一种数据流间具有依赖关系的数据仓库构建方法、系统及计算机设备,以解决现有技术中实时构建数据仓库时,不同数据流之间依赖关系需要重建才能落库于数据层上,导致构建效率低的技术问题。
本发明实施例一方面提供一种数据流间具有依赖关系的数据仓库构建方法,其包括如下步骤:
初始化数据仓库的主题表;从不同的业务数据库实时获取待入库数据流;
判断所述待入库数据流所描述的事实对象中是否包含即将落库的目标主题表的目标字段对应的主键,如果包含,则判定所述待入库数据流为主表,如果不包含,则判定所述待入库数据流为从表;
对判定为主表的待入库数据流进行主表入库,对判定为从表的待入库数据流进行从表入库;
对已入库数据流进行写库,得到统一主题层的数据仓库。
作为上述实施例的进一步改进,所述主表入库,具体为:
将所述待入库数据流的各待入库字段根据准入过滤器入库到所述目标主题表的指定位置。
作为上述实施例的进一步改进,所述从表入库,具体为:
以与所述待入库数据流的关系为主表的主题表作为路径起点,以所述目标主题表作为路径终点,进行寻址定位,根据寻址路径将所述待入库数据流的各待入库字段入库到所述目标主题表的指定位置。
作为上述实施例的进一步改进,根据寻址定位路径将所述数据流的各待入库字段入库到所述目标主题表的指定位置,具体为:
判断所述寻址路径所关联的数据流是否包含未入库数据流,如果包含,则将所述待入库数据流添加至延时队列,进行延时入库,如果不包含,则根据寻址路径将所述待入库数据流的各待入库字段入库到所述目标主题表的指定位置。
作为上述实施例的进一步改进,将所述待入库数据流添加至延时队列,具体为:
以所述待入库数据流的事实对象为维度,与所述延时队列中已经存在的延时数据流进行匹配,判断是否存在事实对象相同的延时数据流与待入库数据流,如果存在,则将待入库数据流与延时数据流进行压缩,然后添加至延时队列,如不存在,则直接将所述待入库数据流添加至延时队列。
作为上述实施例的进一步改进,所述延时入库,具体为:
定时对所述延时队列进行全队扫描,对所述延时队列中的延时数据流重新进行入库操作;如果所述延时队列中存在设定时间阈值内一直无法入库的延时数据流,则将相应的延时数据流转入人工审查流程;
所述延时入库还包括:
在对所述待入库数据流进行从表入库之前,先查询所述延时队列中是否存在因所述待入库数据流还未入库而阻塞的前置入库的延时数据流,如果存在,则对所述待入库数据流和所述延时数据流进行合并入库,如果不存在,则直接对所述待入库数据流执行从表入库。
作为上述实施例的进一步改进,对已入库数据流进行写库,具体为:
根据已入库数据流的落库主题表的主键值查询目标主题表,判断已入库数据流的字段值是否已经存在于目标主题表中,如果不存在,则直接插入所述已入库数据流的字段值,如果已经存在,则进一步判断所述已入库数据流的字段值的数据置信度是否大于具有相同主键值数据的数据置信度,如果大于,则进行数据更新,如果不大于,则跳过当前字段值,转入下一个字段值的写库。
作为上述实施例的进一步改进,本方法还包括:
如果所述待入库数据流的待入库字段中包含不止一个目标主题的目标字段对应的主键时,则对所述待入库数据流的待入库字段进行衍生入库;
如果不止一个所述待入库数据流的待入库字段包含同一个目标主题的目标字段对应的主键时,则各所述待入库数据流的待入库字段通过条件聚合入库或设置优先级并按优先级依次入库。
本发明实施例另一方面提供一种数据流间具有依赖关系的数据仓库构建系统,包括:
数据采集模块,从不同的业务数据库实时获取待入库数据流;
主表关系匹配模块,用于初始化数据仓库的主题表;判断所述待入库数据流所描述的事实对象中是否包含即将落库的目标主题表的目标字段对应的主键,如果包含,则判定所述待入库数据流为主表,如果不包含,则判定所述待入库数据流为从表;
入库模块,用于对判定为主表的待入库数据流进行主表入库,对判定为从表待入库数据流进行从表入库;
写库模块,用于对已入库数据流进行写库,得到统一主题层的数据仓库。
本发明实施例再一方面提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述方法的步骤。
本发明实施例的数据流间具有依赖关系的数据仓库构建方法、系统及计算机设备,将不同业务数据库的数据流之间的依赖关系识别为主从表关系,在保证实时时效的前提下,实现了对多个不同业务数据库的多张数据表的数据流的可信的依赖关系构造的效果,使得采集的数据流可以直接实时落库到数据仓库的数据层上,实现了大数据实时数据仓库数据层的高效构建。
附图说明
通过附图中所示的本发明优选实施例更具体说明,本发明上述及其它目的、特征和优势将变得更加清晰。在全部附图中相同的附图标记指示相同的部分,且并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本的主旨。
图1为本发明实施例的数据流间具有依赖关系的数据仓库构建方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
如图1所示,本发明实施例提供一种数据流间具有依赖关系的数据仓库构建方法,其包括如下步骤:
S11、初始化数据仓库的主题表; S12、从不同的业务数据库实时获取待入库数据流;
S2、判断待入库数据流所描述的事实对象中是否包含即将落库的目标主题表的目标字段对应的主键,如果包含,则判定待入库数据流为主表,如果不包含,则判定待入库数据流为从表;
S31、对判定为主表的待入库数据流进行主表入库;S32、对判定为从表的待入库数据流进行从表入库;
S4、对已入库数据流进行写库,得到统一主题层的数据仓库。
本发明实施例公开了一种在保证实时时效的基础下,解决多个个业务数据库的多个张表的表数据变更流的可信依赖关系的构造问题。本实施例中业务数据库的容量为15个,业务数据库的容量主要根据集群的处理能力来决定,表的数量为130张。
具体的,首先与组件(如kafka)对接采集数据流,为保证同表的数据流时序,在与采集数据流的组件对接时,同一张数据表共用一个partition。将初始化后的数据仓库中间层定义为参考库,将组件对接业务数据库所采集的多源变更数据流与参考库各表的关系,识别为主从关系,识别方法如下:将数据表A描述的数据事实对象,与需要入库参考库中的主题表topicX的字段对应的主题主键进行匹配,如果在事实对象中能获得参考库的主题表topicX的主键信息,则当前数据表A作为主表接入;如果获取不到主键,而表示需要通过其他数据表属性集合进行关联后才能入库到topicX,则将该数据表定义为从表。每条数据流都代表一张数据表,如A表,基于参考库的不同主题可为主,也可为从,或同时为主与从,这个是根据数据表A的待入库字段与目标主题之间的关系而决定。
该实时构造数据可信依赖关系的方式可同时使用在实时计算刷新数据库数据层与数据仓库数据层初始化阶段,可保证实时计算入库和数据仓库数据层初始化的运算逻辑一致,从而保证数据口径一致。
具体的,本实施例中,将各系统数据库的数据表所描述的事实对象统一归纳成固定主键,即将各系统数据库表的数据拉通成大宽表,得到数据仓库的主题表表头如表1所示。其包括4个维度主题:当事人、事件、协议、用户。
表1、数据仓库的主题表表头
当事人 | 可标识为一个人的字段 | 属性列1(值,置信度,有效期) | 属性列2(值,置信度,有效期) | 属性列3(值,置信度,有效期) | … |
事件 | 可描述一个事件的字段 | ||||
协议 | 可描述一份协议的字段 | ||||
用户 | 可触达一个用户的字段 |
初始化主题表步骤与入库步骤一致,不过初始化要再入库步骤开始之前完成,而实时数据流的采集进程必须在初始化的时间节点之前启动,防止数据断片。
建立各主题表间的定位路径,设计各主题表的过滤条件及入库条件。
在主题表初始化完成后,对待入库数据流进行入库之前,还需要对待入库数据流进行步骤S13,即数据清洗,以纠正数据错误。数据清洗采用常用的数据清洗方法实现即可。本实施例中数据清洗步骤:获取待入库数据流中源数据的数据表、字段以及操作类型,经过滤装置,然后进行数据格式转换,数据准入判断,字段间组合操作。
数据清洗完成后即可执行入库流程,本实施例中为了在入库的同时建立各数据流之间的依赖关系,首先进行了主从关系的匹配流程。
具体的,本实施例中首先建立mapper映射表与dict映射表分别对待入库数据流的数据信息和目标主题信息进行描述,便于对待入库数据流进行主从关系的匹配。
mapper映射表的表头如表2所示:
表2、mapper映射表表头
mapperKey | confidence | topic | bin | usage | validity | ··· | sourceNum |
mapperKey: 描述待入库字段信息,包括数据表名.数据字段名。
usage: 描述当前待入库字段在插入主题时的作用,5表示数据可直接入库、0表示数据作为寻址定位字段存在、6表示数据可直接入库并且当数据操作为删除时可将其删除。
topic: usage的值为5/6时,topic为数据插入的目标主题名称、usage的值为0时,topic为寻址定位的路径起点的主题名称。
bin: 数据插入目标主题时对应的目标字段名。
sourceNum: 当前待入库数据需要同时插入的目标主题数量。
validity: 数据有效期,0表示长期有效,大于0表示有效时间,单位秒,使用的时候根据场景判断如果对数据时效有要求则可用这个值进行判断。
confidence: 数据置信度,由于描述同一主题相同信息的字段可能来自不同的业务数据库,针对每一个入库字段在配置入库时设定其置信度。在数据入库前会查询主题中是否已经存在当前描述信息,如果存在则用置信度高的数据覆盖置信度低的数据,然后在入库,如果不存在则直接插入。
Dict映射表的表头如表3所示:
表3、Dict映射表的表头
dictKey | topic | mapperKey |
dictKey :目标主题表主键的字段名称。
topic: 目标主题表主题名称。
mapperKey: 目标主题表主键的索引字段名称,其值为主键值。
根据以上表头设置,将本实施例中需要进行入库的数据流进行整理,得到mapper映射表如表4所示:
表4、mapper映射表
mapperKey | confidence1 | topic1 | bin1 | usage1 | validity1 | sourceNum |
application.idno | 0.8 | stakeholder | idno | 5 | 0 | 1 |
application.caseno | 0.8 | event | caseno | 5 | 0 | 1 |
work. caseno | 0.8 | event | caseno | 0 | 0 | 1 |
work. work_addr | 0.8 | stakeholder | workAddr | 5 | 0 | 1 |
dict映射表如表5所示:
表5、dict映射表
dictKey | topic | mapperKey |
IDNO | stakeholder | IDNO |
CUSTOMERNO | stakeholder | IDNO |
APPNUMBER | event | APPNUM |
APPNUM | event | APPNUM |
mapper映射表和dict字典表存储在分布式的内存数据库,因是列式存储,可实现实时动态添加。
表4中列出了两张需要进行入库的数据流:用户申请信息表application和工作信息表work。
对用户申请信息表application进行主从关系匹配, 用户申请信息表application所描述的事实对象包括身份标识idno和进件标识caseno两个字段,dict映射表的dictKey列中包含有身份标识idno可以匹配,即匹配成功,可以判断用户申请信息表application为主表,可直接入库。
对工作信息表work进行主从关系匹配:工作信息表work所描述的事实对象包括进件标识caseno的地址work_addr,并不包含dictKey列中任一主键,因此判断工作信息表work为从表。
待入库数据流的主从关系确认以后,就可以对其进行入库了。
在优选实施例中,主表入库,具体为:
将待入库数据流的各待入库字段根据准入过滤器入库到目标主题表的指定位置。
例如,用户申请信息表application中待入库字段身份标识idno的目标主题是当事人stakeholder ,用户申请信息表application与当事人主题stakeholder为“主表”关系,则待入库字段idno直接根据准入过滤器入库到stakeholder的指定位置。
在优选实施例中,从表入库,具体为:
以与待入库数据流的关系为主表的主题表作为路径起点,以目标主题表作为路径终点,进行寻址定位,根据寻址路径将待入库数据流的各待入库字段入库到目标主题表的指定位置。
主题表可根据5w2h模型或者维度表模型来设计,各主题表都描述一类数据事实对象,各主题表之间的事实对象的关联关系,都代表着一个固定的寻址定位路径。例如,工作信息表work的需要计入当事人主题,而内部没有描述当事人的信息,将与工作信息表work关系为主表的主题表event定义为路径起点,将需要落库的目标主题表stakeholder定义为路径终点,进行寻址即可将待入库字段入库到目标主题表。
在优选实施例中,根据寻址定位路径将数据流的各待入库字段入库到目标主题表的指定位置,具体为:
判断寻址路径所关联的数据流是否包含未入库数据流,如果包含,则执行S322,即将待入库数据流添加至延时队列,进行延时入库,如果不包含,则执行S321,即根据寻址路径将待入库数据流的各待入库字段入库到目标主题表的指定位置。
虽然进行主从关系匹配后,可将多流依赖关系转换成主从表关系,将多数据流之间的关系解耦和,但为从表关系时,依然会存在寻址定位路径里的关联关系延时建立。例如,获取需要入库字段对应的主题作为路径终点topicY,获取定位字段所在的主题作为路径起点topicX,根据已经固定好的topicX到topicY的跳跃路径执行查询操作获取topicY对应数据的主键值,如果topicY的主键所依赖数据流B的描述对象还未入库写库,即查询不到相应主键值,则认为寻址定位失败,将当前数据块执行入延时队列流程,延时入库;如果查询到则直接按寻址路径执行数据入库流程。
本实施例中延时队列如下:
表6、延时队列表头
timestamp | topicX | filedsM | topicY | refreshCount | tableKey | locateM |
入库时间 | 定位起点 | 入主题字段 | 定位终点 | 重试次数 | 数据主键 | 定位字段 |
timestamp:入库时间轮训策略中如果时间很长了降低轮训频率。
refreshCount:重视次数轮训策略中如果次数多了降低轮训频率。
tableKey:数据主键,当有相同主键数据接入进来时需要先查看队列中是否存在,如果存在则进行和合并删除并且删除队列中当前数据。如果不存在则直接进行后面步骤。
在优选实施例中,将待入库数据流添加至延时队列,具体为:
以待入库数据流的事实对象为维度,与延时队列中已经存在的延时数据流进行匹配,判断是否存在事实对象相同的延时数据流与待入库数据流,如果存在,则将待入库数据流与延时数据流进行压缩,然后添加至延时队列,如不存在,则直接将待入库数据流添加至延时队列。
入延时队列的数据流以描述事实对象为维度与队列中已存在数据流之间做匹配,若相同则做压缩,以当前传递的入队列数据块、定位字段为最新数据更新旧的数据块,然后重新入队列覆盖,同时将队列中入队列次数递增1、更新入队列时间为当前时间,保证时序;若不相同则直接入队列,初始化相应数据的入队列次数为1、入队列时间为当前时间插入队列中。
在优选实施例中,延时入库,具体为:
定时对延时队列进行全队扫描,对延时队列中的延时数据流重新进行入库操作;如果延时队列中存在设定时间阈值内一直无法入库的延时数据流,则将相应的延时数据流转入人工审查流程。
数据流进入延时队列后,延时队列会进行刷新步骤,即定时执行延时队列全表扫描,获取数据入队列次数、入队列时间。设置队列处理策略,包括刷新条件和删除条件。根据设定的队列处理策略判断是否满足刷新条件,如果满足刷新条件(如间隔一定时间间隔)则对延时数据流再次进行寻址定位路径的判断,如果路径打通即可实现入库,还未打通则继续延时。如果满足删除条件则将当前数据从队列中删除。如果都不满足则不作处理等待下一次的队列刷新处理流程。在较长时间间隔后,若发现队列中还有无法入库的数据流,则转到数据治理平台人工审查岗,进行数据质量检查,通过这个方式,很容易发现新建系统对接上游业务系统时未覆盖全场景的情况。
在优选实施例中,延时入库还包括:
在对待入库数据流进行从表入库之前,先查询延时队列中是否存在因待入库数据流还未入库而阻塞的前置入库的延时数据流,如果存在,则对待入库数据流和延时数据流进行合并入库,如果不存在,则直接对待入库数据流执行从表入库。
入库后待入库字段落库的目标主题就确定了,然后需要将字段值插入相应的位置完成写库。
在优选实施例中,对已入库数据流进行写库,具体为:
根据已入库数据流的落库主题表的主键值查询主题表,判断已入库数据流的字段值是否已经存在于主题表中,如果不存在,则直接插入已入库数据流的字段值,如果已经存在,则进一步判断已入库数据流的字段值的数据置信度是否大于具有相同主键值数据的数据置信度,如果大于,则进行数据更新,如果不大于,则跳过当前字段值,转入下一个字段值的写库。
写库前先获取入库字段值、字段入库的目标主题、目标主题主键值、字段操作类型、字段置信度、字段有效期。根据目标主题主键值查询数据仓库的主题表,判断已入库数据是否已经存在于主题表中,如果不存在则直接执行插入操作写入,即将已入库数据直接插入主题表指定位置,如果存在则比较两者的数据置信度,如果已入库数据的数据置信度较高则执行更新操作更新,以已入库字段替换更新数据置信度低的数据,如果已入库数据的数据置信度较低,则跳过当前已入库字段。(值,置信度,有效期)。
例如,描述客户单位主题,同时在在A系统 (前置系统)的work_a表和B系统 (后端系统)work_b表有配置。
mapperKey | confidence 1 | topic1 | bin1 | usage1 | validity1 | sourceNum |
work_a.work_addr | 0.5 | event | workAddr | 5 | 0 | 1 |
work_b.work_addr | 0.8 | event | workAddr | 5 | 0 | 1 |
如果work_a.work_addr先入库并写库,则work_b.work_addr入库后,由于work_b.work_addr数据置信度较高,因此会进行更新操作,替换work_a.work_addr。如果work_b.work_addr先入库写库,则work_a.work_addr入库后,由于work_a.work_addr数据置信度较低,则直接跳过该字段的写库,进入下一字段的入库、写库流程。
在优选实施例中,本方法还包括:
如果待入库数据流的待入库字段中包含不止一个目标主题的目标字段对应的主键时,则对待入库数据流的待入库字段进行衍生入库;
如果不止一个待入库数据流的待入库字段包含同一个目标主题的目标字段对应的主键时,则各待入库数据流的待入库字段通过条件聚合入库或设置优先级并按优先级依次入库。
在进行数据入库时,待入库数据流的待入库字段与参考库的表字段并不一定都是一一对应的的入库关系。如果同一待入库字段需要同时入库到不同的主题表(例如topicZ的z字段和topicY的y字段),则对待入库字段进行衍生,然后入库到不同主题表。如果不同待入库字段(例如A表的a字段和B表的b字段)需要一同入库到同一主题表,则设置聚合条件对多个待入库字段进行聚合,然后入库到主题表,或者为多个待入库字段设置优先级,按优先级顺序依次进行入库。
本发明实施例还提供一种数据流间具有依赖关系的数据仓库构建系统,其包括:
数据采集模块,从不同的业务数据库实时获取待入库数据流;
主表关系匹配模块,用于初始化数据仓库的主题表;判断待入库数据流所描述的事实对象中是否包含即将落库的目标主题表的目标字段对应的主键,如果包含,则判定待入库数据流为主表,如果不包含,则判定待入库数据流为从表;
入库模块,用于对判定为主表的待入库数据流进行主表入库,对判定为从表待入库数据流进行从表入库;
写库模块,用于对已入库数据流进行写库,得到统一主题层的数据仓库。
本实施例提供的数据流间具有依赖关系的数据仓库构建系统,用于实现数据流间具有依赖关系的数据仓库构建方法,因此,数据流间具有依赖关系的数据仓库构建方法所具备的技术效果,数据流间具有依赖关系的数据仓库构建系统同样具备,再次不再赘述。
本发明实施例还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例的方法的步骤。该计算机设备可以是可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器、处理器。
本实施例中,存储器(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card ,SMC),安全数字(Secure Digital ,SD)卡,闪存卡(Flash Card)等。当然,存储器还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器通常用于存储安装于计算机设备的操作系统和各类应用软件等。此外,存储器还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器通常用于控制计算机设备的总体操作。本实施例中,处理器用于运行存储器中存储的程序代码或者处理数据,以实现上述实施例的数据流间具有依赖关系的数据仓库构建方法。
本发明实施例的数据流间具有依赖关系的数据仓库构建方法、系统及计算机设备,通过将数据流间依赖关系识别为主从表关系,解决多个业务数据库的多张表的表数据变更流之间的可信依赖关系的构造问题。基于本发明,企业可根据原有业务系统的关系型业务数据库,通过监控业务数据库的表变更数据流,快速建设出一套分布式的实时数据仓库的维度表,该实时数据仓库建立在分布式的实时数据库上,其列式存储特性,可以支撑动态配置扩展,可以在做数据画像,实时标签,实时客群筛选等场景发挥关键作用,目前该方法构造的实时数据仓库已应用在实时构网规则计算,准实时标签计算、客服画像等领域。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据流间具有依赖关系的数据仓库构建方法,其特征在于,包括如下步骤:
初始化数据仓库的主题表;从不同的业务数据库实时获取待入库数据流;
判断所述待入库数据流所描述的事实对象中是否包含即将落库的目标主题表的目标字段对应的主键,如果包含,则判定所述待入库数据流为主表,如果不包含,则判定所述待入库数据流为从表;
对判定为主表的待入库数据流进行主表入库,对判定为从表的待入库数据流进行从表入库;
对已入库数据流进行写库,得到统一主题层的数据仓库。
2.根据权利要求1所述的数据流间具有依赖关系的数据仓库构建方法,其特征在于,所述主表入库,具体为:
将所述待入库数据流的各待入库字段根据准入过滤器入库到所述目标主题表的指定位置。
3.根据权利要求1所述的数据流间具有依赖关系的数据仓库构建方法,其特征在于,所述从表入库,具体为:
以与所述待入库数据流的关系为主表的主题表作为路径起点,以所述目标主题表作为路径终点,进行寻址定位,根据寻址路径将所述待入库数据流的各待入库字段入库到所述目标主题表的指定位置。
4.根据权利要求3所述的数据流间具有依赖关系的数据仓库构建方法,其特征在于,根据寻址定位路径将所述数据流的各待入库字段入库到所述目标主题表的指定位置,具体为:
判断所述寻址路径所关联的数据流是否包含未入库数据流,如果包含,则将所述待入库数据流添加至延时队列,进行延时入库,如果不包含,则根据寻址路径将所述待入库数据流的各待入库字段入库到所述目标主题表的指定位置。
5.根据权利要求4所述的数据流间具有依赖关系的数据仓库构建方法,其特征在于,将所述待入库数据流添加至延时队列,具体为:
以所述待入库数据流的事实对象为维度,与所述延时队列中已经存在的延时数据流进行匹配,判断是否存在事实对象相同的延时数据流与待入库数据流,如果存在,则将待入库数据流与延时数据流进行压缩,然后添加至延时队列,如不存在,则直接将所述待入库数据流添加至延时队列。
6.根据权利要求4所述的数据流间具有依赖关系的数据仓库构建方法,其特征在于,所述延时入库,具体为:
定时对所述延时队列进行全队扫描,对所述延时队列中的延时数据流重新进行入库操作;如果所述延时队列中存在设定时间阈值内一直无法入库的延时数据流,则将相应的延时数据流转入人工审查流程;
所述延时入库还包括:
在对所述待入库数据流进行从表入库之前,先查询所述延时队列中是否存在因所述待入库数据流还未入库而阻塞的前置入库的延时数据流,如果存在,则对所述待入库数据流和所述延时数据流进行合并入库,如果不存在,则直接对所述待入库数据流执行从表入库。
7.根据权利要求1所述的数据流间具有依赖关系的数据仓库构建方法,其特征在于,对已入库数据流进行写库,具体为:
根据已入库数据流的落库主题表的主键值查询目标主题表,判断已入库数据流的字段值是否已经存在于目标主题表中,如果不存在,则直接插入所述已入库数据流的字段值,如果已经存在,则进一步判断所述已入库数据流的字段值的数据置信度是否大于具有相同主键值数据的数据置信度,如果大于,则进行数据更新,如果不大于,则跳过当前字段值,转入下一个字段值的写库。
8.根据权利要求1所述的数据流间具有依赖关系的数据仓库构建方法,其特征在于,还包括:
如果所述待入库数据流的待入库字段中包含不止一个目标主题的目标字段对应的主键时,则对所述待入库数据流的待入库字段进行衍生入库;
如果不止一个所述待入库数据流的待入库字段包含同一个目标主题的目标字段对应的主键时,则各所述待入库数据流的待入库字段通过条件聚合入库或设置优先级并按优先级依次入库。
9.一种数据流间具有依赖关系的数据仓库构建系统,其特征在于,包括:
数据采集模块,从不同的业务数据库实时获取待入库数据流;
主表关系匹配模块,用于初始化数据仓库的主题表;判断所述待入库数据流所描述的事实对象中是否包含即将落库的目标主题表的目标字段对应的主键,如果包含,则判定所述待入库数据流为主表,如果不包含,则判定所述待入库数据流为从表;
入库模块,用于对判定为主表的待入库数据流进行主表入库,对判定为从表待入库数据流进行从表入库;
写库模块,用于对已入库数据流进行写库,得到统一主题层的数据仓库。
10.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010404874.9A CN111767327B (zh) | 2020-05-14 | 2020-05-14 | 数据流间具有依赖关系的数据仓库构建方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010404874.9A CN111767327B (zh) | 2020-05-14 | 2020-05-14 | 数据流间具有依赖关系的数据仓库构建方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111767327A true CN111767327A (zh) | 2020-10-13 |
CN111767327B CN111767327B (zh) | 2021-06-15 |
Family
ID=72719260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010404874.9A Active CN111767327B (zh) | 2020-05-14 | 2020-05-14 | 数据流间具有依赖关系的数据仓库构建方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767327B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486984A (zh) * | 2020-11-25 | 2021-03-12 | 招商华软信息有限公司 | 一种收费车型库的更新方法、装置、设备和存储介质 |
CN113407613A (zh) * | 2021-08-20 | 2021-09-17 | 北京国电通网络技术有限公司 | 文件解析方法、装置、电子设备和计算机可读介质 |
CN113760997A (zh) * | 2021-09-10 | 2021-12-07 | 成都知道创宇信息技术有限公司 | 数据置信度计算方法及装置、计算机设备和可读存储介质 |
CN114328759A (zh) * | 2021-12-28 | 2022-04-12 | 厦门市美亚柏科信息股份有限公司 | 一种数据仓库的数据构建与管理方法及终端 |
CN115292274A (zh) * | 2022-06-29 | 2022-11-04 | 江苏昆山农村商业银行股份有限公司 | 一种数据仓库主题模型构建方法和系统 |
CN117009998A (zh) * | 2023-08-29 | 2023-11-07 | 上海倍通医药科技咨询有限公司 | 一种数据检验方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6721749B1 (en) * | 2000-07-06 | 2004-04-13 | Microsoft Corporation | Populating a data warehouse using a pipeline approach |
CN104252506A (zh) * | 2013-06-28 | 2014-12-31 | 易保网络技术(上海)有限公司 | 同步构建业务模型和数据仓库模型及其映射的方法及系统 |
CN104866576A (zh) * | 2015-05-25 | 2015-08-26 | 广州精点计算机科技有限公司 | 一种Data Vault模型数据仓库自动构建的方法及装置 |
CN107818114A (zh) * | 2016-09-14 | 2018-03-20 | 中国移动通信有限公司研究院 | 一种数据处理方法、装置及数据库 |
CN109033452A (zh) * | 2018-08-23 | 2018-12-18 | 重庆富民银行股份有限公司 | 一种数据仓库智能构建装载方法及系统 |
CN109388636A (zh) * | 2017-08-11 | 2019-02-26 | 中国移动通信集团重庆有限公司 | 业务数据插入数据库方法、装置、计算机设备及存储介质 |
US20190384835A1 (en) * | 2018-06-14 | 2019-12-19 | Sap Se | Ingestion engine method and system |
CN110619014A (zh) * | 2019-09-18 | 2019-12-27 | 国网江苏省电力有限公司宝应县供电分公司 | 一种基于etl的数据抽取方法 |
CN110727724A (zh) * | 2019-09-09 | 2020-01-24 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 数据抽取方法、装置、计算机设备和存储介质 |
-
2020
- 2020-05-14 CN CN202010404874.9A patent/CN111767327B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6721749B1 (en) * | 2000-07-06 | 2004-04-13 | Microsoft Corporation | Populating a data warehouse using a pipeline approach |
CN104252506A (zh) * | 2013-06-28 | 2014-12-31 | 易保网络技术(上海)有限公司 | 同步构建业务模型和数据仓库模型及其映射的方法及系统 |
CN104866576A (zh) * | 2015-05-25 | 2015-08-26 | 广州精点计算机科技有限公司 | 一种Data Vault模型数据仓库自动构建的方法及装置 |
CN107818114A (zh) * | 2016-09-14 | 2018-03-20 | 中国移动通信有限公司研究院 | 一种数据处理方法、装置及数据库 |
CN109388636A (zh) * | 2017-08-11 | 2019-02-26 | 中国移动通信集团重庆有限公司 | 业务数据插入数据库方法、装置、计算机设备及存储介质 |
US20190384835A1 (en) * | 2018-06-14 | 2019-12-19 | Sap Se | Ingestion engine method and system |
CN109033452A (zh) * | 2018-08-23 | 2018-12-18 | 重庆富民银行股份有限公司 | 一种数据仓库智能构建装载方法及系统 |
CN110727724A (zh) * | 2019-09-09 | 2020-01-24 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 数据抽取方法、装置、计算机设备和存储介质 |
CN110619014A (zh) * | 2019-09-18 | 2019-12-27 | 国网江苏省电力有限公司宝应县供电分公司 | 一种基于etl的数据抽取方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486984A (zh) * | 2020-11-25 | 2021-03-12 | 招商华软信息有限公司 | 一种收费车型库的更新方法、装置、设备和存储介质 |
CN112486984B (zh) * | 2020-11-25 | 2023-05-30 | 招商华软信息有限公司 | 一种收费车型库的更新方法、装置、设备和存储介质 |
CN113407613A (zh) * | 2021-08-20 | 2021-09-17 | 北京国电通网络技术有限公司 | 文件解析方法、装置、电子设备和计算机可读介质 |
CN113407613B (zh) * | 2021-08-20 | 2021-11-09 | 北京国电通网络技术有限公司 | 文件解析方法、装置、电子设备和计算机可读介质 |
CN113760997A (zh) * | 2021-09-10 | 2021-12-07 | 成都知道创宇信息技术有限公司 | 数据置信度计算方法及装置、计算机设备和可读存储介质 |
CN114328759A (zh) * | 2021-12-28 | 2022-04-12 | 厦门市美亚柏科信息股份有限公司 | 一种数据仓库的数据构建与管理方法及终端 |
CN115292274A (zh) * | 2022-06-29 | 2022-11-04 | 江苏昆山农村商业银行股份有限公司 | 一种数据仓库主题模型构建方法和系统 |
CN115292274B (zh) * | 2022-06-29 | 2023-12-26 | 江苏昆山农村商业银行股份有限公司 | 一种数据仓库主题模型构建方法和系统 |
CN117009998A (zh) * | 2023-08-29 | 2023-11-07 | 上海倍通医药科技咨询有限公司 | 一种数据检验方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111767327B (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111767327B (zh) | 数据流间具有依赖关系的数据仓库构建方法与系统 | |
CN111125260A (zh) | 一种基于SQL Server的数据同步方法及系统 | |
CN110445828B (zh) | 一种基于Redis的数据分布式处理方法及其相关设备 | |
CN106503008B (zh) | 文件存储方法和装置及文件查询方法和装置 | |
CN112052082B (zh) | 任务属性优化方法、装置、服务器及存储介质 | |
CN102780603A (zh) | 网站流量控制方法及装置 | |
CN110175206A (zh) | 用于多数据库分离的智能分析业务方法、系统及介质 | |
CN111708895B (zh) | 一种知识图谱系统的构建方法及装置 | |
CN114706836B (zh) | 一种基于机载嵌入式数据库的数据生命周期管理方法 | |
CN106874343B (zh) | 一种时序数据库的数据删除方法及系统 | |
CN116089414A (zh) | 基于海量数据场景的时序数据库写入性能优化方法及装置 | |
CN112711606A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
US11157506B2 (en) | Multiform persistence abstraction | |
CN113254463A (zh) | 一种榜单更新的方法、系统及介质 | |
EP4174675A1 (en) | On-board data storage method and system | |
CN115329011A (zh) | 数据模型的构建方法、数据查询的方法、装置及存储介质 | |
CN111752941B (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
CN113535727B (zh) | 信息系统的数据输出方法及数据输出装置、电子设备 | |
CN100486177C (zh) | 一种网管对网元进行同步操作的方法及其系统 | |
CN115809268A (zh) | 一种基于分片索引的自适应查询方法和装置 | |
CN114564621A (zh) | 一种关联数据的方法、装置、设备及可读存储介质 | |
CN113590667A (zh) | 一种基于Spark Streaming的实时数据更新及管理方法 | |
CN108984720B (zh) | 基于列存储的数据查询方法、装置、服务器及存储介质 | |
CN117390040B (zh) | 基于实时宽表的业务请求处理方法、设备及存储介质 | |
CN113298106A (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 |