CN109933589B - 用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法 - Google Patents
用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法 Download PDFInfo
- Publication number
- CN109933589B CN109933589B CN201910197747.3A CN201910197747A CN109933589B CN 109933589 B CN109933589 B CN 109933589B CN 201910197747 A CN201910197747 A CN 201910197747A CN 109933589 B CN109933589 B CN 109933589B
- Authority
- CN
- China
- Prior art keywords
- result
- count
- data
- aggregation
- value
- 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
Links
Images
Abstract
本发明涉及一种用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法,涉及数据结构技术领域。本发明能够高效准确地将复杂的异形树形数据结构转换为简单易用的数组型数据结构,此方法解决了ES聚合结果复杂难以解析的问题,一定程度上满足不限级聚合结果的转换需要。
Description
技术领域
本发明涉及数据结构技术领域,具体涉及一种用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法。
背景技术
随着云时代的来临,大数据也吸引了越来越多的关注。大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库、数据挖掘电网、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。ElasticSearch是一个基于Lucene的搜索服务器,设计用于云计算中,能够达到实时搜索、稳定、可靠、快速,使用方便的目的。如要建立一个网站或应用程序,并要实现搜索和统计的相关功能,而ElasticSearch统计数据时默认返回的Aggregations数据结构是非常复杂的,不利于开发时使用。因此需要解决此种复杂数据结构在开发中带来的难以解析使用的问题。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何解决ES聚合结果复杂难以解析的问题。
(二)技术方案
为了解决上述技术问题,本发明提供了一种用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法,包括以下步骤:步骤一、获取ElasticSearch聚合的结果;步骤二、转换结果数据,步骤三、数据汇总;
步骤一中获取ElasticSearch聚合的结果时,使用Es聚合运算API与查询API相结合的方法;步骤二的转换结果数据分为三个子步骤:转换结果集为JSON、递归取值、数据转换;步骤三是将步骤二得到的数据结构的最终数据用于数据汇总。
优选地,步骤一具体包括以下步骤:
1.创建Es查询SearchRequestBuildersrb:
srb创建方法为TransportClient.prepareSearch(索引名称).setTypes(索引类型)
2.创建过滤条件QueryBuilderqb
qb创建方法为QueryBuilders.termsQuery(参数名,参数值)
3.创建聚合TermsAggregationBuildertAggb
创建字段f1所对应的聚合agg1,并命名为"f1_count",方法为:AggregationBuilders.terms("f1_count").field("f1.raw"),以同样的方法创建字段f2、f3所对应的聚合agg2、agg3,并分别命名为"f2_count"、"f3_count";
tAggb创建方法为:
tAggb=agg1.subAggregation(agg2.subAggregation(agg3));
subAggregation表示聚合关系;
4.添加过滤和聚合
在查询时加入过滤和聚合约束:
srb.setQuery(qb).addAggregation(tAggb);
SearchResponse sr=srb.execute().actionGet()。
优选地,步骤二中将结果集转换为JSON具体为:
ElasticSearch聚合的结果集为不规则的树形结果,每不同层根节点名称都互不相同,但每相同层间根节点的名称相同,给ES每一层的聚合结果起名的时候使用当前聚合字段名+"_count",为:f1_count,f2_count,f3_count,采用com.alibaba.fastjson的API将聚合结果SearchResponse转换为JSONObject并取出aggregations对象,得到json格式的待转换数据aggs。
优选地,步骤二中递归取值过程中,已知条件为:
待转换数据,JSON格式的aggs
聚合字段,为f1、f2、f3
递归取值过程使用java语言实现的方法如下:
使用一个变量level作为类指针使用,同时记录当前层数与当前层数变量名的作用,方法参数分别为(JSONObject aggs,String[]fields,Integerlevel,String keys,Map<String,String>rst),依次代表:
提取和转换数据类型的聚合结果aggs;
已定义的聚合字段fields,为:new String[]{"f1","f2","f3"};
层级level,为Integer类型,本身含义为层数,也用做fs[level]即每一层的变量名f1或f2或f3或fn;
每次遍历结果Map的key,keys格式为v1;;v2;;v3的字符串,分别是f1_count,f2_count,f3_count对应对象的"key"的值;
用来存储结果的Map;
递归对象选取,实际最终结果的值都存放在f1_count,f2_count,f3_count的buckets数组对象中,故第一步需要确定此数组对象的变量:JSONArraybuckets=aggs.getJSONObject(fields[level]+"_count").getJSONArray("buckets");
判断level是否变化,由于level表示层数,在代码中特殊处理level的值:
若buckets不为null或level的值未超过fields的长度,则表示此次递归可正常进行,循环取出此时buckets数组中每个元素对应的对象的key值,判断key不为null且层数未达到最大层数,则进行递归,递归前将层数增大则下次即进入下一层的buckets;
若buckets为空或level的值超过fields的长度,则不进行递归下一层,此次递归需要将level值返回,以便下次递归使用,此时存在另一种情况:若递归正常开始,则满足若buckets为空或level的值超过fields的长度时,代表本次已完成第一次完整遍历,此时控制level的值回退至上一层;
参数传递,由于每次遍历需要把每一层的buckets的每一个"key"对应的值传递至最后,所以条件满足递归前,将当前"key"对应的值与上一层的值拼接为一个新的值:keys+key+";;"以;;为分割的一个字符串,若考虑到拼接字符串时对象新建带来的资源消耗问题,将此处String keys换成StringBufferkeys,当keys传递到最后一层,即树形结构的叶子节点处,需将此时keys作为Map的key值此时buckets某元素的doc_count对应值作为Map的value值,将这个结果保存在Map中,当递归完成时,所有所需结果已存储在Map中。
优选地,步骤二中进行数据转换时将Map转换为JSONArray,递归完成的结果Map存储的数据为一个中间结果,将其再次转换成为易使用的数据类型。
优选地,步骤二中进行数据转换时将Map转换为JSONArray具体方法为:遍历Map所有key-value,key值以";;"符号分割为与fs数组长度相等的字符串数组,则此时数组下标相同的即为一对值,至此所有结果转换完成。
优选地,所述数据汇总的形式为报表汇总。
优选地,所述报表汇总的形式为表格。
优选地,所述报表汇总的形式为柱状图或折线图。
(三)有益效果
本发明能够高效准确地将复杂的异形树形数据结构转换为简单易用的数组型数据结构,此方法解决了ES聚合结果复杂难以解析的问题,一定程度上满足不限级聚合结果的转换需要。
附图说明
图1为本发明的转换过程中的聚合流程图;
图2为异形树数据结构示意图;
图3为本发明的转换中间结果一示意图;
图4为本发明的转换中间结果二示意图;
图5为本发明中将结果集转换为JSON的流程图;
图6为本发明的递归取值示意图;
图7为本发明的转换过程示意图;
图8为本发明的报表汇总效果图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明的用于报表汇总的基于ElasticSearch聚合运算结果的数据结构转换方法主要涉及基于ElasticSearch聚合运算的异形树形结果(如图2),转换为简单易用的数组型数据结构的一种递归算法设计。递归算法在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法,递归方法可以被用于解决很多计算机科学问题,因此它是计算机科学中十分重要的一个概念。本发明使用递归方法解决一个遍历异形树数据结构(见图2)的问题(转换为图3的结果),进而转换为可使用的json格式的数据。
本发明的用于报表汇总的基于ElasticSearch聚合运算结果的数据结构转换方法包含三个大步骤:步骤一、获取ElasticSearch聚合的结果,步骤二、转换结果数据,步骤三、报表汇总。
步骤一、获取ElasticSearch聚合的结果时,使用到Es聚合运算API与普通查询API相结合的方法。具体如下(聚合流程如图1):
1.创建Es查询(SearchRequestBuilder srb):
srb创建方法为TransportClient.prepareSearch(索引名称).setTypes(索引类型)
2.创建过滤条件(QueryBuilder qb)
qb创建方法为QueryBuilders.termsQuery(参数名,参数值)
3.创建聚合(TermsAggregationBuilder tAggb)
创建字段f1所对应的聚合(agg1),并命名为"f1_count",方法为:AggregationBuilders.terms("f1_count").field("f1.raw"),f2、f3与之相同(agg2、agg3)。
tAggb创建方法为(示例中字段f1、f2、f3分别创建,并创建其聚合关系subAggregation,其关系类似父子关系:agg1是agg2的父级,agg2是agg3的父级,最终得到的agg1则为三个字段所对应的聚合关系):
tAggb=agg1.subAggregation(agg2.subAggregation(agg3));
4.添加过滤和聚合
在查询时加入过滤和聚合约束:
srb.setQuery(qb).addAggregation(tAggb);
SearchResponse sr=srb.execute().actionGet();
步骤二、转换结果数据分为三个子步骤:转换结果集为JSON、递归取值、数据转换;
ElasticSearch的聚合为异形树形结果,示例中结果为按照字段f1、f2、f3做聚合运算,其每一层级有一个互不相同的名,示例中命名为f1_count、f2_count、f3_count(如图2);数据经过一个递归运算后,提取出树种所有叶子节点的key和doc_count的值,每个叶子节点所对应的值(doc_count)为最终所需的值,此时为所有结果为key的map对象,由于聚合运算把所有相同结果合并,此时形如图3中的map的key值是唯一的,故结果是合理的;由于聚合字段是已知条件,则遍历map分别取出对应的字段相应值(如图4)。此时json为一个json数组,结果罗列出所有树形数据中的值。
1.将结果集转换为JSON
本发明中ElasticSearch聚合的结果集为不规则的树形结果,每不同层根节点名称都互不相同,但每相同层间根节点的名称相同。为下一步解析做准备,给ES每一层的聚合结果起名的时候使用当前聚合字段名+"_count",示例中为:f1_count,f2_count,f3_count。采用com.alibaba.fastjson的API将聚合结果SearchResponse转换为JSONObject并取出aggregations对象,转换流程如图5。至此得到json格式的待转换数据aggs。
2.递归取值
已知条件:
(c)待转换数据,JSON格式的aggs
(d)聚合字段,示例中为f1、f2、f3
此阶段为主要转换方法,如图6所示,aggs为类树形结构数据,现需完成获取每一层buckets数组中所有key的值与每个叶子节点组成的一个键值对,形如图3。由于树形结构是未知层数且每层对象名不同,所以需要一个类指针作用的level变量,使递归时能确认这一层的聚合字段名称。由于需要记录每一层buckets数据中每一个key的值,所以需要一个变量keys存储一次遍历遇到的所有key值,如第一次遍历能获取到的所有key值为:v1、v2、v3。由于需要最终的结果值keys为与叶子节点的doc_count值的键值对,所以需要一个变量Map来存储每次遍历后的结果。
具体使用java语言实现的方法如下:
(5)转换方法的核心为使用一个变量level,作为类指针使用,同时记录当前层数与当前层数变量名的作用。方法参数分别为(JSONObject aggs,String[]fields,Integerlevel,String keys,Map<String,String>rst),依次代表:
⑥提取和转换数据类型的聚合结果aggs(示例中如图2所示)
⑦已定义的聚合字段fields(示例中为:new String[]{"f1","f2","f3"})
⑧层级level(示例中为Integer类型,代表含义如图6左侧,本身含义为层数,也用做fs[level]即每一层的变量名f1或f2或f3或fn)
⑨每次遍历结果Map的key(keys格式为v1;;v2;;v3的字符串,分别是f1_count,f2_count,f3_count对应对象的"key"的值)
⑩用来存储结果的Map(rst结果如图3所示)。
(6)递归对象选取,实际最终结果的值都存放在f1_count,f2_count,f3_count的buckets数组对象中,故第一步需要确定此数组对象的变量:JSONArraybuckets=aggs.getJSONObject(fields[level]+"_count").getJSONArray("buckets")
(7)判断level是否变化,由于level表示层数,需要在代码中特殊处理level的值:
c)若buckets不为null或level的值未超过fields的长度(避免数组下标越界错误出现),则表示此次递归可正常进行。循环取出此时buckets数组中每个元素对应的对象的key值,判断key不为null且层数未达到最大层数(fields的数组程度为层数的最大层数),则进行递归,递归前将层数增大则下次即可进入下一层的buckets;
d)若buckets为空或level的值超过fields的长度,则不进行递归下一层,此次递归需要将level值返回,以便下次递归使用,此时存在另一种情况:若递归正常开始,则满足上述条件(若buckets为空或level的值超过fields的长度)时,代表本次已完成第一次完整遍历,如图6中JSONArray的第一个值,此时需要控制level的值回退至上一层;
(8)参数传递,由于每次遍历需要把每一层的buckets的每一个"key"对应的值传递至最后,所以条件满足递归前(如(3)a)情况时),将当前"key"对应的值与上一层的值拼接为一个新的值:keys+key+";;"(以;;为分割的一个字符串),若考虑到拼接字符串时对象新建带来的资源消耗问题,可将此处String keys换成StringBuffer keys。当keys传递到最后一层(level层数未达到最大层数),即树形结构的叶子节点处,需将此时keys作为Map的key值此时buckets某元素的doc_count对应值作为Map的value值,将这个结果保存在Map中,当递归完成时,所有所需结果已存储在Map中。
3.将Map转换为JSONArray
递归完成的结果Map存储的数据(如图3)为一个中间结果,需要再次转换成为易使用的数据类型。方法如下:
遍历Map所有key-value,key值可以";;"符号分割为与fs数组长度相等的字符串数组,则此时数组下标相同的即为一对值,第一个结果的转换过程如图7,至此所有结果转换完成后如图4。
步骤三、报表汇总
将步骤二得到的图4所示数据结构的最终数据用于报表汇总等表格、柱状图或折线图中,如图8所示。
本发明能够高效准确地将复杂的异形树形数据结构转换为简单易用的数组型数据结构,此方法解决了ES聚合结果复杂难以解析的问题,一定程度上满足不限级聚合结果的转换需要。ES是当前流行的企业级搜索引擎,因此可以利用本发明这种方法来解决所有这些聚合结果转换问题。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (6)
1.一种用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法,其特征在于,包括以下步骤:步骤一、获取ElasticSearch聚合的结果;步骤二、转换结果数据,步骤三、数据汇总;
步骤一中获取ElasticSearch聚合的结果时,使用Es聚合运算API与查询API相结合的方法;步骤二的转换结果数据分为三个子步骤:转换结果集为JSON、递归取值、数据转换;步骤三是将步骤二得到的数据结构的最终数据用于数据汇总;
步骤一具体包括以下步骤:
1.创建Es查询SearchRequestBuilder srb:
srb创建方法为TransportClient.prepareSearch(索引名称).setTypes(索引类型)
2.创建过滤条件QueryBuilder qb
qb创建方法为QueryBuilders.termsQuery(参数名,参数值)
3.创建聚合TermsAggregationBuilder tAggb
创建字段f1所对应的聚合agg1,并命名为"f1_count",方法为:AggregationBuilders.terms("f1_count").field("f1.raw"),以同样的方法创建字段f2、f3所对应的聚合agg2、agg3,并分别命名为"f2_count"、"f3_count";
tAggb创建方法为:
tAggb=agg1.subAggregation(agg2.subAggregation(agg3));
subAggregation表示聚合关系;
4.添加过滤和聚合
在查询时加入过滤和聚合约束:
srb.setQuery(qb).addAggregation(tAggb);
SearchResponse sr=srb.execute().actionGet();
步骤二中将结果集转换为JSON具体为:
ElasticSearch聚合的结果集为不规则的树形结果,每不同层根节点名称都互不相同,但每相同层间根节点的名称相同,给ES每一层的聚合结果起名的时候使用当前聚合字段名+"_count",为:f1_count,f2_count,f3_count,采用com.alibaba.fastjson的API将聚合结果SearchResponse转换为JSONObject并取出aggregations对象,得到json格式的待转换数据aggs;
步骤二中递归取值过程中,已知条件为:
(a)待转换数据,JSON格式的aggs
(b)聚合字段,为f1、f2、f3
递归取值过程使用java语言实现的方法如下:
(1)使用一个变量level作为类指针使用,同时记录当前层数与当前层数变量名的作用,方法参数分别为(JSONObject aggs,String[]fields,Integer level,String keys,Map<String,String>rst),依次代表:
①提取和转换数据类型的聚合结果aggs;
②已定义的聚合字段fields,为:new String[]{"f1","f2","f3"};
③层级level,为Integer类型,本身含义为层数,也用做fs[level]即每一层的变量名f1或f2或f3或fn;
④每次遍历结果Map的key,keys格式为v1;;v2;;v3的字符串,分别是f1_count,f2_count,f3_count对应对象的"key"的值;
⑤用来存储结果的Map;
(2)递归对象选取,实际最终结果的值都存放在f1_count,f2_count,f3_count的buckets数组对象中,故第一步需要确定此数组对象的变量:JSONArraybuckets=aggs.getJSONObject(fields[level]+"_count").getJSONArray("buckets");
(3)判断level是否变化,由于level表示层数,在代码中特殊处理level的值:
a)若buckets不为null或level的值未超过fields的长度,则表示此次递归可正常进行,循环取出此时buckets数组中每个元素对应的对象的key值,判断key不为null且层数未达到最大层数,则进行递归,递归前将层数增大则下次即进入下一层的buckets;
b)若buckets为空或level的值超过fields的长度,则不进行递归下一层,此次递归需要将level值返回,以便下次递归使用,此时存在另一种情况:若递归正常开始,则满足若buckets为空或level的值超过fields的长度时,代表本次已完成第一次完整遍历,此时控制level的值回退至上一层;
(4)参数传递,由于每次遍历需要把每一层的buckets的每一个"key"对应的值传递至最后,所以条件满足递归前,将当前"key"对应的值与上一层的值拼接为一个新的值:keys+key+";;"以;;为分割的一个字符串,若考虑到拼接字符串时对象新建带来的资源消耗问题,将此处String keys换成StringBuffer keys,当keys传递到最后一层,即树形结构的叶子节点处,需将此时keys作为Map的key值此时buckets某元素的doc_count对应值作为Map的value值,将这个结果保存在Map中,当递归完成时,所有所需结果已存储在Map中。
2.如权利要求1所述的方法,其特征在于,步骤二中进行数据转换时将Map转换为JSONArray,递归完成的结果Map存储的数据为一个中间结果,将其再次转换成为易使用的数据类型。
3.如权利要求2所述的方法,其特征在于,步骤二中进行数据转换时将Map转换为JSONArray具体方法为:遍历Map所有key-value,key值以";;"符号分割为与fs数组长度相等的字符串数组,则此时数组下标相同的即为一对值,至此所有结果转换完成。
4.如权利要求1所述的方法,其特征在于,所述数据汇总的形式为报表汇总。
5.如权利要求4所述的方法,其特征在于,所述报表汇总的形式为表格。
6.如权利要求4所述的方法,其特征在于,所述报表汇总的形式为柱状图或折线图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910197747.3A CN109933589B (zh) | 2019-03-15 | 2019-03-15 | 用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910197747.3A CN109933589B (zh) | 2019-03-15 | 2019-03-15 | 用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109933589A CN109933589A (zh) | 2019-06-25 |
CN109933589B true CN109933589B (zh) | 2021-03-05 |
Family
ID=66987270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910197747.3A Active CN109933589B (zh) | 2019-03-15 | 2019-03-15 | 用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109933589B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990401B (zh) * | 2019-11-22 | 2023-07-28 | 上海景域文化传播股份有限公司 | 一种酒店搜索方法及系统 |
CN111522819A (zh) * | 2020-04-24 | 2020-08-11 | 上海用天网络科技有限公司 | 一种树型结构数据汇总的方法及系统 |
CN113032436B (zh) * | 2021-04-16 | 2022-05-31 | 苏州臻璇数据信息技术有限公司 | 基于文章内容和标题的搜索方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133267A (zh) * | 2017-04-01 | 2017-09-05 | 北京京东尚科信息技术有限公司 | 查询elasticsearch集群的方法、装置、电子设备和可读存储介质 |
CN108520037A (zh) * | 2018-03-30 | 2018-09-11 | 新华三大数据技术有限公司 | 数据查询方法、装置及数据可视化系统 |
-
2019
- 2019-03-15 CN CN201910197747.3A patent/CN109933589B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133267A (zh) * | 2017-04-01 | 2017-09-05 | 北京京东尚科信息技术有限公司 | 查询elasticsearch集群的方法、装置、电子设备和可读存储介质 |
CN108520037A (zh) * | 2018-03-30 | 2018-09-11 | 新华三大数据技术有限公司 | 数据查询方法、装置及数据可视化系统 |
Non-Patent Citations (1)
Title |
---|
Java解析ES查询结果的聚合JSONObject;懒惰的gler;《https://blog.csdn.net/u010858605/article/details/88355821》;20190308;正文第一~三部分 * |
Also Published As
Publication number | Publication date |
---|---|
CN109933589A (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11119834B2 (en) | Artificial creation of dominant sequences that are representative of logged events | |
US9805079B2 (en) | Executing constant time relational queries against structured and semi-structured data | |
US9607061B2 (en) | Using views of subsets of nodes of a schema to generate data transformation jobs to transform input files in first data formats to output files in second data formats | |
JP3230677B1 (ja) | 自動集計方法、自動集計装置および記録媒体 | |
CN104573124B (zh) | 一种基于并行化关联规则算法的教育云应用统计方法 | |
CN109933589B (zh) | 用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法 | |
US11907203B2 (en) | Path encoded tree structures for operations | |
US20120072412A1 (en) | Evaluating execution plan changes after a wakeup threshold time | |
CN102411580B (zh) | 可扩展标记语言文档的检索方法及装置 | |
CN111324577B (zh) | 一种Yml文件读写的方法及装置 | |
CN103678550A (zh) | 一种基于动态索引结构的海量数据实时查询方法 | |
CN112667860A (zh) | 一种子图匹配方法、装置、设备及存储介质 | |
CN114218218A (zh) | 基于数据仓库的数据处理方法、装置、设备及存储介质 | |
US20230315727A1 (en) | Cost-based query optimization for untyped fields in database systems | |
US7472130B2 (en) | Select indexing in merged inverse query evaluations | |
CN114372174A (zh) | 一种xml文档分布式查询方法及系统 | |
Ahsaan et al. | Big data analytics: challenges and technologies | |
CN111290714B (zh) | 数据读取方法和装置 | |
CN115982177B (zh) | 一种基于树形维度的数据归集的方法、装置、设备及介质 | |
CN101968747B (zh) | 一种机群应用管理系统及其应用管理方法 | |
CN104376000A (zh) | 确定网页属性的方法及装置 | |
CN116257636A (zh) | 枚举数据字典统一管理方法、装置、电子设备及存储介质 | |
US11023674B2 (en) | Generation and application of object notation deltas | |
US11074401B2 (en) | Merging delta object notation documents | |
CN110162531B (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 |