System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,并且更具体地,涉及一种基于clickhouse数据库的业务表单反写/读取方法及系统。
技术介绍
1、clickhouse是一个用于联机分析(olap)的列式数据库管理系统(dbms),对于大多数查询而言,处理速度至少提高了100倍。
2、flinkcdc是apache flink的一组源连接器,使用更改数据捕获(cdc)技术从mysql、postgresql 等数据库摄取更改的增量数据,以便在需要时可以轻松地将这些数据合并到其他系统中。
3、业务单据反写是指将下游业务单据某个字段对应的数据反写到上游单据的指定字段上,即是根据下游业务单据某个字段对应的数据来计算上游业务单据的指定字段上的内容。例如,销售订单的下游单据有生产主计划、生产任务单、生产报工单、生产入库单、销售发货单、采购单、销售出库单、退货单以及对应的生产数量、任务数量、报工数量、生产入库数量、销售发货数量、采购数量、销售出库数量和退货数量等。由于单据的种类和数量关系非常多,需要获取某些数据时,需要大量的查找过程,通过单据反写的方式就避免了大量的查找过程,而且将数据反写到上游单据中,也方便根据这些数据做出业务决策,比如根据销售订单反写的已出库产品数量,判断出所有产品是否已出库,则决定是否关闭此订单。
4、目前,将下游业务单据的实际执行情况反写到上游业务单据中,通常所采用的方法有两种:
5、一、针对每个具体的业务单据,收集其反写需求,通过硬编码实现,即在下游业务单据的保存或者确认代码中,直接编写反写至业务
6、二、配置出各业务单据的反写规则,通过单据按钮或者业务流程环节触发。该方法描述出需要把哪个字段值或者计算结果,反写到上游哪种业务单据的哪个字段上,上游单据的业务表要根据反写需求建立很多反写字段,并把反写规则转换为元数据进行存储;在单据保存或者业务流程的某个环节,读取出其配置的全部反写规则,根据反写规则所描述的内容,逐一把反写量反写到上游业务单据相应的字段上。该方法减少了反写的硬编码,提高了开发效率,但扩展性、反写业务和常规业务的耦合性以及业务数据库的并发性降低并没有解决。
技术实现思路
1、针对上述问题,本申请提出了一种基于clickhouse数据库的业务表单反写/读取方法,包括:
2、根据业务数据库中存储的业务表单,建立所述业务表单的元数据描述,并根据所述元数据描述建立所述业务表单元数据的解析引擎;
3、基于所述解析引擎解析业务数据库中增加/修改目标业务表单的表单元数据,并基于所述表单元数据,对所述增加/修改的目标业务表单的元数据进行抓取,并将所述抓取的元数据映射为用于反写所述增加/修改的目标业务表单的元数据;
4、基于clickhouse数据库接收所述增加/修改的目标业务表单的元数据,根据所述业务解析引擎在所述clickhouse数据库中建立反写表,基于反写表根据所述增加/修改的目标业务表单的反写元数据,对所述增加/修改的目标业务表单进行反写,得到反写业务表单;
5、根据所述目标业务表单的表单元数据,读取反写业务表单。
6、可选的,建立所述业务表单的元数据描述,包括:建立表单元数据的描述、抓取元数据的描述和反写元数据的描述;
7、所述表单元数据的描述,包括:
8、业务表单的主数据和明细数据的关联关系描述和业务表单页面字段显示名称、数据类型、对应在业务数据库的字段及反写元数据的对照关系描述;
9、所述抓取元数据的描述,包括:
10、业务表单元数据的抽取条件描述、关联规则描述和转换规则描述;
11、所述反写元数据的描述,包括:
12、反写表的类型及字段显示名称/类型的描述。
13、可选的,表单元数据的描述、抓取元数据的描述和反写元数据的描述,用于建立解析引擎;
14、所述解析引擎,包括:表单元数据模型、抓取元数据模型和反写元数据模型;
15、其中,根据所述表单元数据的描述建立表单元数据模型,根据抓取元数据的描述建立抓取元数据模型,根据所述反写元数据的描述建立反写元数据模型。
16、可选的,表单换数据模型用于根据所述表单元数据的描述,解析业务数据中增加/修改目标业务表单的表单元数据;所述抓取元数据模型用于对抓取的元数据进行映射,将所述抓取的元数据映射为用于反写所述增加/修改的目标业务表单的元数据;所述反写元数据模型用于为clickhouse数据库提供反写元数据的描述;
17、所述clickhouse数据库根据所述反写元数据的描述,在clickhouse数据库中建立summingmergetree引擎,所述summingmergetree引擎用于建立反写表。
18、可选的,方法还包括:
19、根据抓取元数据的描述,建立用于抓取元数据的抓取程序;
20、监控业务数据库的增加/修改目标业务表单的变化,并生成变化日志,在监控到业务数据库的变化日志后,抓取元数据模型启动抓取程序,抓取业务数据库增加/修改的目标业务表单的元数据。
21、再一方面,本申请还提出了一种基于clickhouse数据库的业务表单反写/读取系统,包括:
22、描述单元,用于根据业务数据库中存储的业务表单,建立所述业务表单的元数据描述,并根据所述元数据描述建立所述业务表单元数据的解析引擎;
23、解析单元,用于基于所述解析引擎解析业务数据库中增加/修改目标业务表单的表单元数据,并基于所述表单元数据,对所述增加/修改的目标业务表单的元数据进行抓取,并将所述抓取的元数据映射为用于反写所述增加/修改的目标业务表单的元数据;
24、反写/读取单元,用于基于clickhouse数据库接收所述增加/修改的目标业务表单的元数据,根据所述业务解析引擎在所述clickhouse数据库中建立反写表,基于反写表根据所述增加/修改的目标业务表单的反写元数据,对所述增加/修改的目标业务表单进行反写,得到反写业务表单;根据所述目标业务表单的表单元数据,读取反写业务表单。
25、可选的,建立所述业务表单的元数据描述,包括:建立表单元数据的描述、抓取元数据的描述和反写元数据的描述;
26、所述表单元数据的描述,包括:
27、业务表单的主数据和明细数据的关联关系描述和业务表单页面字段显示名称、数据类型、对应在业务数据库的字段及反写元数据的对照关系描述;
28、所述抓取元数据的描述,包括:
29、业务表本文档来自技高网...
【技术保护点】
1.一种基于ClickHouse数据库的业务表单反写/读取方法,其特征在于,所述业务表单反写/读取方法,包括:
2.根据权利要求1所述的业务表单反写/读取方法,其特征在于,所述建立所述业务表单的元数据描述,包括:建立表单元数据的描述、抓取元数据的描述和反写元数据的描述;
3.根据权利要求2所述的业务表单反写/读取方法,其特征在于,所述表单元数据的描述、抓取元数据的描述和反写元数据的描述,用于建立解析引擎;
4.根据权利要求3所述的业务表单反写/读取方法,其特征在于,所述表单换数据模型用于根据所述表单元数据的描述,解析业务数据中增加/修改目标业务表单的表单元数据;所述抓取元数据模型用于对抓取的元数据进行映射,将所述抓取的元数据映射为用于反写所述增加/修改的目标业务表单的元数据;所述反写元数据模型用于为ClickHouse数据库提供反写元数据的描述;
5.根据权利要求3所述的业务表单反写/读取方法,其特征在于,所述方法还包括:
6.一种基于ClickHouse数据库的业务表单反写/读取系统,其特征在于,所述业务表单反写/读取
7.根据权利要求6所述的业务表单反写/读取系统,其特征在于,所述建立所述业务表单的元数据描述,包括:建立表单元数据的描述、抓取元数据的描述和反写元数据的描述;
8.根据权利要求7所述的业务表单反写/读取系统,其特征在于,所述表单元数据的描述、抓取元数据的描述和反写元数据的描述,用于建立解析引擎;
9.根据权利要求8所述的业务表单反写/读取系统,其特征在于,所述表单换数据模型用于根据所述表单元数据的描述,解析业务数据中增加/修改目标业务表单的表单元数据;所述抓取元数据模型用于对抓取的元数据进行映射,将所述抓取的元数据映射为用于反写所述增加/修改的目标业务表单的元数据;所述反写元数据模型用于为ClickHouse数据库提供反写元数据的描述;
10.根据权利要求8所述的业务表单反写/读取系统,其特征在于,所述解析单元还用于:
...【技术特征摘要】
1.一种基于clickhouse数据库的业务表单反写/读取方法,其特征在于,所述业务表单反写/读取方法,包括:
2.根据权利要求1所述的业务表单反写/读取方法,其特征在于,所述建立所述业务表单的元数据描述,包括:建立表单元数据的描述、抓取元数据的描述和反写元数据的描述;
3.根据权利要求2所述的业务表单反写/读取方法,其特征在于,所述表单元数据的描述、抓取元数据的描述和反写元数据的描述,用于建立解析引擎;
4.根据权利要求3所述的业务表单反写/读取方法,其特征在于,所述表单换数据模型用于根据所述表单元数据的描述,解析业务数据中增加/修改目标业务表单的表单元数据;所述抓取元数据模型用于对抓取的元数据进行映射,将所述抓取的元数据映射为用于反写所述增加/修改的目标业务表单的元数据;所述反写元数据模型用于为clickhouse数据库提供反写元数据的描述;
5.根据权利要求3所述的业务表单反写/读取方法,其特征在于,所述方法还包括:
<...【专利技术属性】
技术研发人员:邓超,高正文,
申请(专利权)人:优铸科技北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。