System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据实时分析领域,尤其涉及一种基于duckdb的ap型缓存设置方法。
技术介绍
1、在数据开发中,往往需要对一些热数据或高频访问数据进行各种分析(数据价值往往随着时间推移也不断下降)。建立一套分布式的高性能分析型缓存系统,解决中小型数据集(单个模型十亿级数据以下)的数据实时可见性问题和高性能数据计算问题,尤为必要。
2、在数据建模中,传统数据库oracle,mysql等对ap的支持较弱,稍微复杂的ap或者大量的ap存在时,都可能让数据库不堪重负。而clickhouse,doris之类的分析型数据库,用户除了往往需要处理数据同步过程,对数据高频更新的情况,数据可见性问题十分突出(因磁盘特性,大多数mpp数据库采用的lsm结果需要后台定时merge才能数据可见)
3、绝大多数企业都会选择传统关系型数据库来支持交易等重要在线业务。在数据分析的需求情况下,一般的it企业往往通过建存储过程,物化视图来实现数据的分析。it能力较强一些的公司,往往会引入类似clickhouse,doris之类的高性能分析型数据库,通过把关系型数据库数据定时同步(clickhouse,doris等都无法支持高频数据同步,都是批处理数据同步支持较好)至其中来实现高性能分析。
4、尽管后者解决了数据高性能计算的问题,但依旧无法解决数据实时更新的问题(即高频update情况下clickhouse,doris等ap数据库无法数据实时可见);同时需要维护一条关系型数据库到ap型数据库的数据同步链路,并保证双方的数据一致性
5、基于duckdb实现的分布式缓存系统,大大增强在数据分析时的性能,并且数据实时可见。在该分布式缓存系统中,不再需要用户处理维护数据同步链路,源数据变更(包括插入,更新,删除)数据实时可见,可分析。目前单个节点(可以简单类比数据库的表或视图)的缓存数据,可以是十亿级。
6、因此,需要解决如下问题中的至少一个:
7、·大量中小型数据集的高性能adhoc问题;
8、·低频分析查询的缓存自动lru问题,高频分析查询的缓存自动加载问题;
9、·缓存高效使用。用户不需要维护数据同步链路和保证数据一致性,也不需要进行复杂缓存开发;
10、·源头数据变更时(insert/update/delete),数据实时可见,数据分析结果准实时可见;
11、·不同缓存计算任务可线性扩容,不同缓存节点数据默认会分布在不同机器上执行,
12、也会视调用频率自动把相关节点移动到同一台机器上执行。
13、·集群机器故障时,不会引起大量缓存节点重新分布的问题。
技术实现思路
1、因此,本专利技术提出了如下解决方案:
2、一种基于duckdb的ap型缓存应用设置方法,包括如下步骤:
3、步骤1,设置为数据节点时,所述数据节点为取数的一段表达(sql或api),对输出数据进行缓存;设置为计算节点时,所述计算节点为数据计算逻辑计算结果集进行缓存。数据节点为取数的节点,计算节点为利用数据节点和计算节点以数据流方式组织依赖关系,进行数据加工表达的节点。
4、优选地,还包括步骤2-1,当缓存的配置失效时间到达时,如为数据节点,则重新加载远端数据至缓存中。如为计算节点,则加载数据并按照计算逻辑进行加工计算后,把计算结果写入计算节点缓存中。其为被动计算模式。
5、优选地,当上游数据发生变更时,则包括步骤2-2,将数据自动同步到缓存系统,更新数据节点缓存中的数据,把计算结果更新到计算节点缓存中。其为主动计算模式。
6、优选地,还包括步骤1-1,为所述数据节点、计算节点和缓存节点赋予名称。
7、优选地,还包括步骤3,根据所述名称命名对应的缓存,并按照所述名称进行hash分布。
8、优选地,还包括步骤4,当第一集群机器发生故障时,所述数据节点、计算节点和数据流的缓存按照变更后的集群路由表进行hash,平均分布到其他集群机器上。
9、优选地,还包括步骤5,当集群扩容时,所述数据节点、计算节点和数据流的缓存中的一部分在新的集群机器上。
10、优选地,在所述步骤4中,采用一致性hash,在每个集群机器上设置虚拟hash,以便在所述第一集群机器发生故障时只有hash环上临近所述第一集群机器的少数所述节点重新分布。
11、优选地,在所述步骤2之前还包括将源数据库中的数据经由路由同步到所述集群机器上。
12、优选地,在所述步骤2之前还包括获取集群机器的所述数据节点、计算节点和数据流的缓存的元数据以用于与同步数据一起被适配器采纳。
13、关于本专利技术的术语:
14、数据节点:
15、为取数的一段表达,通常为sql取数语句或者api取数接口。
16、计算节点:
17、数据计算的逻辑表达,使用数据节点或计算机点进行的数据开发。也可以称为模型定义。
18、dag:
19、平台数据开发模式,数据流的方式来表达计算节点的组织依赖关系。
20、缓存节点:
21、即数据节点或计算节点进行了结果集的缓存。
22、缓存过期配置:
23、指对缓存节点(可以是数据节点,也可以是计算节点)配置的缓存过期时间配置策略。当过期时间到达时。如果缓存节点为数据节点,则重新加载数据。如果缓存节点为计算节点,则重新加载进行dag数据计算,并把结果集写进缓存节点。
24、主动计算是指当数据发生变化时,缓存中的数据根据设定的条件选择进行重新计算或者不重新计算,被动计算是数据发生变化时则强制缓存中的数据重新计算。
25、通过本专利技术实现了下述效果中的至少一个:
26、数据计算中,对中小型数据集可以高性能计算。很好应对热数据的计算,复杂计算(计算成本高),高频访问的计算场景。(计算性能较oracle(搭配高端硬件)计算性能提升超100倍)
27、用户对缓存的使用成本足够低。不需要维护上游db到缓存的链路,不需要在缓存上建表等。只需要把节点配置成缓存。
28、分布式缓存能力。面对大量节点需要缓存的情况,可以轻松应对。并且用户对分布式完全无感。缓存数据实时可见。源数据高频update,缓存节点数据实时可见。
本文档来自技高网...【技术保护点】
1.一种基于duckDB的AP型缓存设置方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于duckDB的AP型缓存设置方法,其特征在于,还包括步骤2-1,当缓存的配置失效时间到达时,数据节点则重新加载远端数据至所述数据节点缓存中,计算节点则加载数据并按照计算逻辑进行加工计算后,把计算结果写入所述计算节点缓存中。
3.根据权利要求2所述的基于duckDB的AP型缓存设置方法,其特征在于,当上游数据发生变更时,则包括步骤2-2,数据自动同步到缓存系统,更新数据节点缓存中的数据,把计算结果更新到计算节点缓存中。
4.根据权利要求3所述的基于duckDB的AP型缓存设置方法,其特征在于,还包括步骤1-1,为所述数据节点、计算节点和所述数据节点缓存和所述计算节点缓存赋予名称。
5.根据权利要求4所述的基于duckDB的AP型缓存设置方法,其特征在于,还包括步骤3,根据所述名称命名对应的缓存,并按照所述名称进行hash分布。
6.根据权利要求5所述的基于duckDB的AP型缓存设置方法,其特征在于,还包括步骤4,当第一集
7.根据权利要求6所述的基于duckDB的AP型应用缓存设置方法,其特征在于,在所述步骤2之前还包括将源数据库中的数据经由集群路由同步到对应机器上。
8.根据权利要求5所述的基于duckDB的AP型应用缓存设置方法,其特征在于,缓存节点在一段时间内没有被访问时,会被自动清除缓存(自动LRU)。
...【技术特征摘要】
1.一种基于duckdb的ap型缓存设置方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于duckdb的ap型缓存设置方法,其特征在于,还包括步骤2-1,当缓存的配置失效时间到达时,数据节点则重新加载远端数据至所述数据节点缓存中,计算节点则加载数据并按照计算逻辑进行加工计算后,把计算结果写入所述计算节点缓存中。
3.根据权利要求2所述的基于duckdb的ap型缓存设置方法,其特征在于,当上游数据发生变更时,则包括步骤2-2,数据自动同步到缓存系统,更新数据节点缓存中的数据,把计算结果更新到计算节点缓存中。
4.根据权利要求3所述的基于duckdb的ap型缓存设置方法,其特征在于,还包括步骤1-1,为所述数据节点、计算节点和所述数据节点缓存和所述计算节点缓存赋予名称...
【专利技术属性】
技术研发人员:杨竞霜,叶壹力,
申请(专利权)人:嘉实远见科技北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。