CN117033497B - 数据湖上数据更新与读取的方法及相关设备 - Google Patents
数据湖上数据更新与读取的方法及相关设备 Download PDFInfo
- Publication number
- CN117033497B CN117033497B CN202311267583.XA CN202311267583A CN117033497B CN 117033497 B CN117033497 B CN 117033497B CN 202311267583 A CN202311267583 A CN 202311267583A CN 117033497 B CN117033497 B CN 117033497B
- Authority
- CN
- China
- Prior art keywords
- data
- reading
- updating
- field
- execution plan
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012937 correction Methods 0.000 claims abstract description 12
- 230000004044 response Effects 0.000 claims description 12
- 230000008520 organization Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 230000001502 supplementing effect Effects 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 34
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- JEIPFZHSYJVQDO-UHFFFAOYSA-N iron(III) oxide Inorganic materials O=[Fe]O[Fe]=O JEIPFZHSYJVQDO-UHFFFAOYSA-N 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- 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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- 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/23—Updating
- G06F16/2393—Updating materialised views
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据湖上数据更新与读取的方法及相关设备。其中,方法包括:获取数据更新与读取请求;根据所述数据更新与读取请求,生成与所述数据更新与读取请求对应的初始任务执行计划;根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划;按照所述修正任务执行计划,执行数据更新与读取任务。能够得到与逻辑数据结构一致的执行计划,提高执行计划的执行效率,能够在一定程度上解决数据湖适配不同的大数据处理框架时的读写行为一致性的问题。
Description
技术领域
本申请涉及数据存储技术领域,尤其涉及一种数据湖上数据更新与读取的方法及相关设备。
背景技术
随着大数据时代的到来,数据湖项目成为了越来越多企业组织中的热门话题。数据湖为集中存储、处理和分析大规模数据的平台,可以将企业的所有数据汇总到一个位置,实现数据的共享、标准化和优化,从而为企业决策者和数据分析师提供更加全面和深入的洞察力。
数据湖为上层应用提供服务,需要使用不同的大数据处理框架进行海量数据的处理与存储。如何实现数据湖适配不同的大数据处理框架时的读写行为一致性,是亟待解决的问题。
发明内容
有鉴于此,本申请的目的在于提出一种数据湖上数据更新与读取的方法及相关设备。
基于上述目的,本申请提供了数据湖上数据更新与读取的方法包括:
获取数据更新与读取请求;
根据所述数据更新与读取请求,生成与所述数据更新与读取请求对应的初始任务执行计划;
根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划;
按照所述修正任务执行计划,执行数据更新与读取任务。
在其中一些实施例中,所述根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划包括:
读取所述数据更新与读取请求对应的逻辑数据结构,得到所述逻辑数据结构的第一字段集合;
读取所述与所述数据更新与读取请求对应的数据文件的物理数据结构,得到所述数据文件的第二字段集合;
对所述第一字段集合与所述第二字段集合进行集合求交,得到字段交集;
根据所述字段交集和所述逻辑数据结构的字段组织顺序,修正所述初始任务执行计划中的数据文件的字段读取内容和字段读取顺序。
在其中一些实施例中,还包括:
分析所述字段交集的第三字段集合的字段与所述逻辑数据结构的第一字段集合的字段是否一致;
响应于确定所述第一字段集合包括不存在于所述第三字段集合中的字段,在数据内存模型中补充所述不存在于所述第三字段集合中的字段。
在其中一些实施例中,所述数据文件对应的数据记录具有更新时间和主键值;所述数据文件包括原始数据文件和增量数据文件;所述执行更新与读取任务包括:
提供全局优先队列,所述全局优先队列中包括原始数据文件对应的数据记录和增量数据文件对应的数据记录;
响应于确定全局优先队列中的数据记录不为空,根据更新时间和主键值,确定全局优先队列中的数据记录的推出顺序;
根据推出顺序从小到大排列从所述全局优先队列中推出的数据记录;
将所述推出的数据记录中主键值相同的数据记录进行逐字段合并,得到合并数据记录,并将该合并数据记录读取至数据内存模型中。
在其中一些实施例中,所述根据更新时间和主键值,确定全局优先队列中的数据记录的推出顺序包括:
将全局优先队列中的数据记录根据主键值从小到大进行排序,得到第一推出顺序;
响应于确定主键值相同的数据记录的数量为多个,分析多个数据记录的更新时间;
将所述多个数据记录根据更新时间从旧到新进行排序,得到主键值相同的数据记录的第二推出顺序。
在其中一些实施例中,所述将所述推出的数据记录中主键值相同的数据记录进行逐字段合并,得到合并数据记录包括:
将所述推出的数据记录中主键值相同的数据记录中相同字段的数据值进行合并;
将主键值相同的多个推出的数据记录中推出顺序最大的数据记录对应的字段的数据值确定为合并数据记录中的数据值。
在其中一些实施例中,所述执行数据更新与读取任务包括:
通过基于系统级编程语言的软件执行数据更新与读取任务。
本申请实施例还提供一种数据湖上数据更新与读取的装置,包括:
获取模块,用于获取数据更新与读取请求;
生成模块,用于根据所述数据更新与读取请求,生成与所述数据更新与读取请求对应的初始任务执行计划;
修正模块,用于根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划;
执行模块,用于按照所述修正任务执行计划,执行数据更新与读取任务。
本申请实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如前任一所述方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如前任一项所述的方法。
从上面所述可以看出,本申请提供的数据湖上数据更新与读取的方法及相关设备,通过获取数据更新与读取请求;根据所述数据更新与读取请求,生成与所述数据更新与读取请求对应的初始任务执行计划;根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划;按照所述修正任务执行计划,执行数据更新与读取任务;能够得到与逻辑数据结构一致的执行计划,提高执行计划的执行效率,能够在一定程度上解决数据湖适配不同的大数据处理框架时的读写行为一致性的问题。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的本申请实施例的数据湖上数据更新与读取的方法的流程示意图;
图2为本申请实施例的数据流向的示意图;
图3为本申请实施例的生成初始任务执行计划的流程示意图;
图4为本申请实施例的得到修正任务执行计划的流程示意图;
图5为本申请实施例的执行合并读取任务的流程示意图;
图6为本申请实施例的确定全局优先队列中的数据记录的推出顺序的流程示意图;
图7为本申请实施例的数据湖上数据更新与读取的装置的示意图;
图8为本申请本实施例的电子设备硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
相关技术中,不同的大数据处理框架的数据逻辑可能是不相同的,为了满足能够使用不同的大数据处理框架进行海量数据的处理与存储,数据湖需要适配各个大数据处理框架的数据读写逻辑,同时保持对各个大数据处理框架中数据读写行为的一致性。这导致了更大的适配成本以及可能出现读写行为一致性难以保证的问题。
基于此,本申请实施例提供了数据湖上数据更新与读取的方法及相关设备,通过对比数据更新和与读取请求中的逻辑数据结构和数据文件的物理数据结构,得到与逻辑数据结构一致的执行计划,提高执行计划的执行效率,能够在一定程度上解决数据湖适配不同的大数据处理框架时的读写行为一致性的问题。
图1示出了本申请实施例的数据湖上数据更新与读取的方法的流程示意图。图2示出了本申请实施例的数据流向的示意图。
如图1所示,本申请实施例的数据湖上数据更新与读取的方法可以包括:
在步骤S100,获取数据更新与读取请求。通常,可以从数据湖中的大数据处理框架处获取数据更新与读取请求。大数据处理框架可以是例如Apache Spark、Apache Flink等基于内存计算的大数据并行计算框架,也可以是例如Preosto等分布式SQL查询的执行引擎。应当理解的是,大数据处理框架的类型仅作示例性说明,不做具体限定。
大数据处理框架可以为提供专业的大数据处理支持的计算机软件,可用于构建大型的、低延迟的数据分析应用程序。大数据处理框架可以提供基于内存的数据内存模型,其本质是一种分布式的内存抽象,表示一个数据分区的数据记录集合在内存中的表达形式。一个数据内存模型通常只能通过其他的数据内存模型转换而创建。基于数据内存模型的计算任务可理解为:从稳定的物理存储中读取数据记录,数据记录被传入由一组确定性操作构成的有向无环图,然后写回稳定物理存储之中。通过数据内存模型还可以将数据记录集合临时存储到内存中,使得多个操作之间可以很方便地重复使用数据记录集合。
对于基于数据内存模型的计算任务的执行需要经过两个大的阶段:分别是逻辑计划(LogicalPlan)和物理计划(PhysicalPlan)。逻辑计划阶段会将数据内存模型的计算任务转换成由一组逻辑性操作构成的逻辑有向无环图,其中的逻辑性操作会映射到有向无环图中的不同节点。顾名思义,逻辑计划阶段生成的逻辑有向无环图并不会直接提交执行,而是仅作为中间阶段。物理计划阶段将上一步逻辑计划阶段生成的逻辑有向无环图进行进一步转换,生成物理有向无环图。物理有向无环图的节点会直接生成数据内存模型或者对数据内存模型进行转换操作。得到物理有向无环图后,即可提交到大数据处理框架执行。
在其中一些实施例中,大数据处理框架提交执行数据内存模型的计算任务时,会产生数据更新与读取请求,用于读取数据内存模型或者更新数据内存模型。在一些实施例中,可以自大数据处理框架的数据更新与读取接口处获取大数据处理框架的数据更新与读取的逻辑。其中,数据更新与读取接口本质上可以为一种编程接口抽象,通过编程者(也即开发人员)编写数据更新与读取接口的相关信息后,即可在大数据处理框架执行数据内存模型的计算任务时,实现自定义的数据更新与读取逻辑。
在步骤S200,根据所述数据更新与读取请求,生成与所述数据更新与读取请求对应的初始任务执行计划。所述数据更新与读取请求对应的数据可以为列式格式存储的数据。通常列式格式存储,可以理解为存储结构化数据时,在底层的存储介质上,数据是以列的方式来组织的,即存储完若干条数据记录的首个字段后,再存储这些数据记录的第二个字段,然后再存储这些数据记录的第三个字段,以此类推,当这些数据记录的所有字段都存储完毕后,再按照上述的方式,组织存储下一批若干条数据记录的所有字段。应当说明的是,列式格式存储与行式格式存储是不同的。行式格式存储可以理解为存储结构化数据时,在底层的存储介质上,数据是以行的方式来组织的,即存储完一条数据记录的所有字段,再存储下一条数据记录的所有字段,以此类推。
在其中一些实施例中,如图3所示,所述根据所述数据更新与读取请求,生成与所述数据更新与读取请求对应的初始任务执行计划可以包括:
S210,获取数据更新与读取请求的配置项。在一些实施例中,该配置项可以从大数据处理框架的数据更新与读取接口处获取。这样可以获取到在大数据处理框架执行数据内存模型的计算任务时,发生的从实际物理存储读取数据或者将数据更新实际物理存储的请求对应的配置项。数据更新与读取接口的配置项可以包括但不限于连接实际物理存储的账户、实际物理存储的网络地址、请求数据内容的数据结构、数据文件位于实际物理存储的存储位置和实际数据文件的数据结构等等。该步骤的执行主体可以为大数据处理框架。
在其中一些实施例中,数据更新与读取接口的配置项可以包括两类配置项,第一类配置项用于描述数据内容的列式格式存储的数据结构,该类配置项包括但不限于数据字段的数据类型、每个数据记录批次的数据数量、数据的主键值等。第二类配置项用于描述大数据处理框架与实际物理存储的连接和数据传输协议,该类配置项包括但不限于连接实际物理存储的账户、实际物理存储的网络地址、数据文件位于实际物理存储的存储位置等。对应地,可以通过分别获取第一类配置项和第二类配置项,来得到所需的配置项。其中,可以通过获取第一类配置项得到数据更新与读取请求对应的逻辑数据结构。可以通过获取第二类配置项得到所述数据更新与读取请求对应的数据文件在实际物理存储中的存储位置。
S220,解析所述数据更新与读取请求的配置项,获取数据更新与读取请求对应的逻辑数据结构和所述数据更新与读取请求对应的数据文件在实际物理存储中的存储位置,生成与所述数据更新与读取请求对应的初始任务执行计划。
在其中一些实施例中,可以通过对所述数据更新与读取请求的配置项进行序列化,并发送给解析模块。解析模块接收到数据后进行反序列,得到配置项,通过解析配置项得到数据更新与读取请求中的数据内容的数据结构(也即数据更新与读取请求对应的逻辑数据结构)以及数据文件在实际物理存储中的存储位置。
在步骤S300中,根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划。其中,所述数据更新与读取请求对应的数据文件的物理数据结构可以自前述的第一配置项中获取。这样可以避免数据更新与读取请求对应的数据内容的逻辑数据结构与数据文件的物理数据结构不一致时,导致的数据更新与读取任务的执行效率或者影响数据更新与读取的正确性。
在其中一些实施例中,如图4所示,所述根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划可以包括:
S310,读取所述数据更新与读取请求对应的逻辑数据结构,得到所述逻辑数据结构的第一字段集合。逻辑数据结构可以理解为数据更新与读取请求所对应的数据结构。
S320,读取所述与所述数据更新与读取请求对应的数据文件的物理数据结构,得到所述数据文件的第二字段集合。物理数据结构可以理解为数据更新与读取请求所对应的数据的实际数据结构。
在一些实施例中,在读取数据文件时,仅读取数据文件的数据结构信息,不读取数据文件的内容,得到每个数据文件的字段集合。这样可以提高数据文件读取的效率。
S330,对所述第一字段集合与所述第二字段集合进行集合求交,得到字段交集。
S340,根据所述字段交集,修正所述初始任务执行计划中的数据文件的字段读取内容;或根据所述字段交集和所述逻辑数据结构的字段组织顺序,修正所述初始任务执行计划中的数据文件的字段读取内容和执行顺序。
这样,通过进行集合求交,能够得到逻辑数据结构与物理数据结构的交集,避免在执行数据更新与读取任务时,读取存在于数据文件但是不存在于数据更新与读取请求内容中的字段,能够提高读取效率。
在实际应用中,第一字段集合可以由“姓名”和“年龄”两个字段组成。其中,第一个字段“姓名”的数据类型可以为字符串类型;第二个字段是“年龄”的数据类型可以为32位无符号整数类型。而第二字段集合可以由三个字段组成,其中前两个字段和第一字段集合中的字段完全一样,第三个字段是“性别”,数据类型是字符串类型。那么在取得字段交集后,根据字段交集确定对数据文件的字段读取内容,能够避免对数据文件的全部三个字段都进行数据读取,导致的对第三个字段“性别”进行读取时使用的资源的浪费,提高运作效率。
当逻辑数据结构的字段组织顺序与数据文件中的字段交集的字段组织顺序不一致时,根据逻辑数据结构的字段组织顺序修正数据文件中的字段交集的字段组织顺序,得到修正后的字段读取顺序。这样,通过修正所述初始任务执行计划中的数据文件的字段读取内容和字段读取顺序,能够重新确定执行数据文件的字段读取内容和对该字段读取内容的读取顺序,避免读取顺序与请求数据的字段不一致的问题,提高字段读取的准确性和读取的速度。
在实际应用中,第一字段集合可以由“姓名”、“年龄”和“性别”三个字段组成。其中,第一个字段“姓名”的数据类型可以为字符串类型;第二个字段 “年龄”的数据类型可以为32位无符号整数类型。第三个字段 “性别”的数据类型可以为字符串类型。而第二字段集合可以由三个字段“姓名”、“年龄”、“性别”组成,但是数据文件中三个字段的组织顺序是“姓名”、“性别”、“年龄”。这样,通过修正后的字段读取顺序执行字段读取,能够避免直接按照数据文件的实际数据结构执行数据读取任务,在数据读取完成后,导致的读取结果中第二个字段的列式格式数据实际上为“性别”字段的数据,第三个字段的列式格式数据实际上为“年龄”字段的数据,而是得到与逻辑数据结构的字段组织顺序一致的第二个字段为“年龄”且第三个字段为“性别”的数据,使得在执行数据更新与读取任务后所得的数据内存模型中的数据内容和数据内存模型请求的数据结构相一致,提高大数据处理框架使用所述数据内存模型执行其他计算任务,所得计算结果的正确性。
因此,本申请实施例的通过对初始任务执行计划进行数据结构修正,能够尽量避免资源浪费或者正确性受到影响的情况。
在其中一些实施例中,在步骤S340之后,还可以包括:
分析所述字段交集的第三字段集合的字段与所述逻辑数据结构的第一字段集合的字段是否一致;
响应于确定所述第一字段集合包括不存在于所述第三字段集合中的字段,在数据内存模型中补充所述不存在于所述第三字段集合中的字段。其中,数据内存模型为在执行数据更新与读取任务之后,得到的数据内存模型。
在其中一些实施例中,所述补充可以通过使用缺省值作为该类不存在与所述第三字段集合中的字段的数据值。这样,可以提高在执行数据更新与读取任务之后,得到的数据内存模型的完整性。
接下来,在步骤S400,按照所述修正任务执行计划,执行数据更新与读取任务。通常,在得到所述经过修正任务执行计划后,会在大数据处理框架提交任务执行计划,并开始执行数据更新与读取任务。
在一些实施例中,可以通过基于系统级编程语言的软件执行数据更新与读取任务。这样,能够实现数据记录在大数据处理框架与存储框架之间的读写交互,能够同时与各种大数据处理框架与存储框架兼容,并保证读写性能的高效以及读写执行的安全性和健壮性。
其中,系统级编程语言可以包括Apache Parquet、Apache Arrow及Rust语言。Apache Parquet为一种开源的列式存储数据文件格式,能够适配多种语言与存储框架。Apache Arrow为一种开源的列式存储数据内存格式,能够用于在各种语言和系统间高效地存储和交换数据。执行数据更新与读取任务的软件可以通过 Rust语言来实现。Rust语言是一门通用的、编译型编程语言,保留了系统级编程语言C语言的良好运行性能,并使用了比C语言编译器更强大编译器达到更高的运行安全性和稳定性。这样,本申请实施例的基于系统级编程语言的软件,能够在不修改软件内容的情况下,在不同的操作系统架构和大部分计算机架构中正常运行,具有较高兼容性,可以适配各种系统,从而能够适配不同的大数据处理框架。
在其中一些实施例中,数据更新与读取任务的执行可以支持两种模式,包括写出时复制(Copy On Write)模式和读取时合并(Merge On Read)模式。其中,写出时复制模式执行数据更新任务代价高,而执行数据读取任务代价低。读取时合并模式执行数据更新任务代价低,而执行数据读取任务代价高,可以根据不同的任务需求进行模式的灵活选择。
其中,在写出时复制模式下,执行数据更新任务时,会对文件(例如数据文件)进行就地更新(In-Place Update)。当一个文件(例如数据文件)中的数据需要修改时,会创建一个新的文件副本,并在新的副本上进行修改,即在数据写入期间同步合并原有数据并重写文件。在数据更新的过程中,数据读取任务会从原有数据文件中读取数据,当数据更新完成并生成新的数据文件后,数据读取任务才会从新的数据文件中读取数据。
读取时合并模式与写出时复制模式不同,采取异地更新(Out-of-Place Update)的方式。执行数据更新任务时,如果需要对原有数据文件进行更新,不对原文件进行修改,而是更新关于更新数据内容的增量文件。执行数据读取任务时,则需要将原始文件与增量文件的数据进行合并返回最终的结果。通常数据合并的方法为根据主键进行数据合并。
在其中一些实施例中,采用读取时合并模式执行数据更新与读取任务。所述数据文件对应的数据记录具有更新时间和主键值;所述数据文件包括原始数据文件和增量数据文件。也即,原始数据文件对应的数据记录具有更新时间和主键值,且增量数据文件对应的数据记录也具有更新时间和主键值。如图5所示,所述执行更新与读取任务具体可以包括:
S410,提供全局优先队列,所述全局优先队列中包括原始数据文件对应的数据记录和增量数据文件对应的数据记录。其中,原始数据文件对应的数据记录和增量数据文件对应的数据记录分别具有对应的更新时间和主键值。
S420,响应于确定全局优先队列中的数据记录不为空,根据更新时间和主键值,确定全局优先队列中的数据记录的推出顺序。可以理解的是,当全局优先队列中的数据记录为空时,数据读取任务完成。具体地,如图6所示,可以通过下述方法确定推出顺序:
S421,将全局优先队列中的数据记录根据主键值从小到大进行排序,得到第一推出顺序。
S422,响应于确定主键值相同的数据记录的数量为多个,分析多个数据记录的更新时间。
S423,将所述多个数据记录根据更新时间从旧到新进行排序,得到主键值相同的数据记录的第二推出顺序。其中,在将所述多个数据记录根据更新时间从旧到新进行排序后可以计算得到多个数据记录的文件序号值,文件序号越小的更新时间越早。在执行全局优先队列中的元素(也即数据记录)出队时,会优先推出队列中主键的排序值最小的数据记录,如果同时存在多个主键的排序值最小的数据记录,会选择其中所属数据文件的更新时间最旧(也即文件序号最小)的数据记录推出优先队列。
S430,根据推出顺序从小到大排列从所述全局优先队列中推出的数据记录。
S440,将所述推出的数据记录中主键值相同的数据记录进行逐字段合并,得到合并数据记录,并将该合并数据记录读取至数据内存模型中。其中,逐字段合并会将所有数据记录中主键值相同的数据记录的相同字段的数据值合并计算得到一个数据值,并将此数据值作为最终数据记录对应字段的数据值,得到一条合并的数据记录。对于不同的字段可以支持不同的合并计算方式。应当理解的是,如果不存在主键值相同的数据记录,则不会进行合并。
默认的合并计算方式可以为计算该字段在所有数据记录中最后的数据值。在其中一些实施例中,所述将所述推出的数据记录进行逐字段合并,得到合并数据记录可以包括:
将所述推出的数据记录中主键值相同的多个推出的数据记录中相同字段的数据值进行合并;
将主键值相同的多个推出的数据记录中推出顺序最大的数据记录对应的字段的数据值确定为合并数据记录中的数据值。
这样,在执行数据更新与读取任务时,对原始文件对应的数据记录与增量文件对应的数据记录中相同主键值的多条数据记录,根据数据记录的更新时间从旧到新的顺序重新编排,合并成一条数据更新到数据内存模型中,能够实现数据记录合并后的数据读取内容的正确性。
在其中一些实施例中,对于多个数据文件(也即原始数据文件和增量数据文件)中的每个数据文件,可以分别构造一个数据记录迭代器。通过数据记录迭代器实现数据记录的逐条读取,即将每条数据记录按照主键的排序值从小到大的顺序从数据文件中读取到内存之中。其中,在数据读取初始化阶段,可以同时处理所有数据文件对应的数据记录迭代器,将每个数据记录迭代器中的前若干条主键排序值相等的数据记录推出迭代器,同时将这些数据记录插入到全局优先队列中。
本申请实施例提供的数据湖上数据更新与读取的方法,通过从大数据处理框架获取数据更新与读取请求,对数据更新与读取请求进行解析,得到数据更新与读取请求的逻辑数据结构以及数据文件的物理存储位置,同时生成数据更新与读取任务的物理执行计划。然后解析数据文件的物理数据结构并与数据更新与读取请求的逻辑数据结构进行对比计算,对数据更新与读取任务的物理执行计划进行修正和优化,用以保证执行计划的正确性与优化执行计划的执行效率。执行数据更新与读取任务的物理执行计划时,使用系统级编程语言Rust实现数据更新与读取软件,具有较高运行性能的同时兼具安全性、稳定性和兼容性。本申请实施例支持写出时复制和读取时合并两种数据更新与读取模式,并针对读取时合并模式在满足数据文件的所有数据记录已经按主键值排序的情况,进一步根据数据记录的更新时间进行从旧到新排序,确定主键值相同的数据记录的推出顺序,优化了数据读取任务的执行方案。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种数据湖上数据更新与读取的装置。
参考图7,所述数据湖上数据更新与读取的装置,可以包括:
获取模块510,用于获取数据更新与读取请求;
生成模块520,用于根据所述数据更新与读取请求,生成与所述数据更新与读取请求对应的初始任务执行计划;
修正模块530,用于根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划;
执行模块540,用于按照所述修正任务执行计划,执行数据更新与读取任务。
在其中一些实施例中,所述根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划包括:
读取所述数据更新与读取请求对应的逻辑数据结构,得到所述逻辑数据结构的第一字段集合;
读取所述与所述数据更新与读取请求对应的数据文件的物理数据结构,得到所述数据文件的第二字段集合;
对所述第一字段集合与所述第二字段集合进行集合求交,得到字段交集;
根据所述字段交集和所述逻辑数据结构的字段组织顺序,修正所述初始任务执行计划中的数据文件的字段读取内容和字段读取顺序。
在其中一些实施例中,还包括补充模块,用于:
分析所述字段交集的第三字段集合的字段与所述逻辑数据结构的第一字段集合的字段是否一致;
响应于确定所述第一字段集合包括不存在于所述第三字段集合中的字段,在数据内存模型中补充所述不存在于所述第三字段集合中的字段。
在其中一些实施例中,所述数据文件对应的数据记录具有更新时间和主键值;所述数据文件包括原始数据文件和增量数据文件;所述按照所述修正任务执行计划,执行更新与读取任务包括:
提供全局优先队列,所述全局优先队列中包括原始数据文件对应的数据记录和增量数据文件对应的数据记录;
响应于确定全局优先队列中的数据记录不为空,根据更新顺序和主键值,确定全局优先队列中的数据记录的推出顺序;
根据推出顺序从小到大排列从所述全局优先队列中推出的数据记录;
将所述推出的数据记录进行逐字段合并,得到合并数据记录,并将该合并数据记录读取至数据内存模型中。
在其中一些实施例中,所述根据更新顺序和主键值,确定全局优先队列中的数据记录的推出顺序包括:
将全局优先队列中的数据记录根据主键值从小到大进行排序,得到第一推出顺序;
响应于确定主键值相同的数据记录的数量为多个,分析多个数据记录的更新时间;
将所述多个数据记录根据更新时间从旧到新进行排序,得到主键值相同的数据记录的第二推出顺序。
在其中一些实施例中,所述将所述推出的数据记录进行逐字段合并,得到合并数据记录包括:
将所述推出的数据记录中主键值相同的多个推出的数据记录中相同字段的数据值进行合并;
将主键值相同的多个推出的数据记录中推出顺序最大的数据记录对应的字段的数据值确定为合并数据记录中的数据值。
在其中一些实施例中,所述执行数据更新与读取任务包括:
通过基于系统级编程语言的软件执行数据更新与读取任务。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的数据湖上数据更新与读取的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的数据湖上数据更新与读取的方法。
图8示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图, 该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线 1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的数据湖上数据更新与读取的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的数据湖上数据更新与读取的方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的数据湖上数据更新与读取的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例所述的数据湖上数据更新与读取的方法相对应的,本申请还提供了一种计算机程序产品,其包括计算机程序指令。在一些实施例中,所述计算机程序指令可以由计算机的一个或多个处理器执行以使得所述计算机和/或所述处理器执行所述的数据湖上数据更新与读取的方法。对应于所述的数据湖上数据更新与读取的方法各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使所述计算机和/或所述处理器执行如上任一实施例所述的数据湖上数据更新与读取的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种数据湖上数据更新与读取的方法,其特征在于,包括:
获取数据更新与读取请求;
根据所述数据更新与读取请求,生成与所述数据更新与读取请求对应的初始任务执行计划;
根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划;
按照所述修正任务执行计划,执行数据更新与读取任务;
其中,所述根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划包括:
读取所述数据更新与读取请求对应的逻辑数据结构,得到所述逻辑数据结构的第一字段集合;
读取所述与所述数据更新与读取请求对应的数据文件的物理数据结构,得到所述数据文件的第二字段集合;
对所述第一字段集合与所述第二字段集合进行集合求交,得到字段交集;
根据所述字段交集和所述逻辑数据结构的字段组织顺序,修正所述初始任务执行计划中的数据文件的字段读取内容和字段读取顺序。
2.根据权利要求1所述的方法,其特征在于,还包括:
分析所述字段交集的第三字段集合的字段与所述逻辑数据结构的第一字段集合的字段是否一致;
响应于确定所述第一字段集合包括不存在于所述第三字段集合中的字段,在数据内存模型中补充所述不存在于所述第三字段集合中的字段。
3.根据权利要求1所述的方法,其特征在于,所述数据文件对应的数据记录具有更新时间和主键值;所述数据文件包括原始数据文件和增量数据文件;所述按照所述修正任务执行计划,执行数据更新与读取任务包括:
提供全局优先队列,所述全局优先队列中包括原始数据文件对应的数据记录和增量数据文件对应的数据记录;
响应于确定所述全局优先队列中的数据记录不为空,根据更新时间和主键值,确定所述全局优先队列中的数据记录的推出顺序;
根据推出顺序从小到大排列从所述全局优先队列中推出的数据记录;
将所述推出的数据记录中主键值相同的数据记录进行逐字段合并,得到合并数据记录,并将该合并数据记录读取至数据内存模型中。
4.根据权利要求3所述的方法,其特征在于,所述根据更新时间和主键值,确定全局优先队列中的数据记录的推出顺序包括:
将全局优先队列中的数据记录根据主键值从小到大进行排序,得到第一推出顺序;
响应于确定主键值相同的数据记录的数量为多个,分析多个数据记录的更新时间;
将所述多个数据记录根据更新时间从旧到新进行排序,得到主键值相同的数据记录的第二推出顺序。
5.根据权利要求4所述的方法,其特征在于,所述将所述推出的数据记录中主键值相同的数据记录进行逐字段合并,得到合并数据记录包括:
将所述推出的数据记录中主键值相同的数据记录中相同字段的数据值进行合并;
将主键值相同的多个推出的数据记录中推出顺序最大的数据记录对应的字段的数据值确定为合并数据记录中的数据值。
6.根据权利要求1所述的方法,其特征在于,所述执行数据更新与读取任务包括:
通过基于系统级编程语言的软件执行数据更新与读取任务。
7.一种数据湖上数据更新与读取的装置,其特征在于,包括:
获取模块,用于获取数据更新与读取请求;
生成模块,用于根据所述数据更新与读取请求,生成与所述数据更新与读取请求对应的初始任务执行计划;
修正模块,用于根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划;
执行模块,用于按照所述修正任务执行计划,执行数据更新与读取任务;
其中,所述根据所述数据更新与读取请求对应的逻辑数据结构与所述数据更新与读取请求对应的数据文件的物理数据结构,修正所述初始任务执行计划,得到修正任务执行计划包括:
读取所述数据更新与读取请求对应的逻辑数据结构,得到所述逻辑数据结构的第一字段集合;
读取所述与所述数据更新与读取请求对应的数据文件的物理数据结构,得到所述数据文件的第二字段集合;
对所述第一字段集合与所述第二字段集合进行集合求交,得到字段交集;
根据所述字段交集和所述逻辑数据结构的字段组织顺序,修正所述初始任务执行计划中的数据文件的字段读取内容和字段读取顺序。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6任意一项所述的方法。
9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如权利要求1至6任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311267583.XA CN117033497B (zh) | 2023-09-28 | 2023-09-28 | 数据湖上数据更新与读取的方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311267583.XA CN117033497B (zh) | 2023-09-28 | 2023-09-28 | 数据湖上数据更新与读取的方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117033497A CN117033497A (zh) | 2023-11-10 |
CN117033497B true CN117033497B (zh) | 2024-01-23 |
Family
ID=88632093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311267583.XA Active CN117033497B (zh) | 2023-09-28 | 2023-09-28 | 数据湖上数据更新与读取的方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117033497B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819255A (en) * | 1996-08-23 | 1998-10-06 | Tandem Computers, Inc. | System and method for database query optimization |
US6023707A (en) * | 1997-01-16 | 2000-02-08 | Fujitsu Limited | On-line database duplication with incorporation of concurrent database updates |
US8793223B1 (en) * | 2009-02-09 | 2014-07-29 | Netapp, Inc. | Online data consistency checking in a network storage system with optional committal of remedial changes |
CN111400301A (zh) * | 2019-01-03 | 2020-07-10 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7461052B2 (en) * | 2004-12-06 | 2008-12-02 | International Business Machines Corporation | Abstract query plan |
US11709833B2 (en) * | 2016-06-24 | 2023-07-25 | Dremio Corporation | Self-service data platform |
US11907215B2 (en) * | 2021-09-08 | 2024-02-20 | Sap Se | Staged query compilation with common data structure |
-
2023
- 2023-09-28 CN CN202311267583.XA patent/CN117033497B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819255A (en) * | 1996-08-23 | 1998-10-06 | Tandem Computers, Inc. | System and method for database query optimization |
US6023707A (en) * | 1997-01-16 | 2000-02-08 | Fujitsu Limited | On-line database duplication with incorporation of concurrent database updates |
US8793223B1 (en) * | 2009-02-09 | 2014-07-29 | Netapp, Inc. | Online data consistency checking in a network storage system with optional committal of remedial changes |
CN111400301A (zh) * | 2019-01-03 | 2020-07-10 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117033497A (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ben-Nun et al. | A modular benchmarking infrastructure for high-performance and reproducible deep learning | |
US20190391791A1 (en) | Acceleration techniques for graph analysis programs | |
Murray et al. | {CIEL}: A universal execution engine for distributed {Data-Flow} computing | |
CN103177057B (zh) | 用于内存列存储数据库的多核算法 | |
US7836435B2 (en) | Checking for memory access collisions in a multi-processor architecture | |
CN103870246A (zh) | 用于线程的simd执行的编译器控制区调度 | |
US7779393B1 (en) | System and method for efficient verification of memory consistency model compliance | |
CN101652746A (zh) | 浮点操作的改善以及相关的改善 | |
JP6432450B2 (ja) | 並列計算装置、コンパイル装置、並列処理方法、コンパイル方法、並列処理プログラムおよびコンパイルプログラム | |
Christidis et al. | Enabling serverless deployment of large-scale ai workloads | |
CN105074657A (zh) | 并行管道中的发散分支的硬件和软件解决方案 | |
CN115525287A (zh) | 多阶段编译器架构 | |
CN113360157A (zh) | 一种程序编译方法、设备以及计算机可读介质 | |
CN105573763A (zh) | 一种支持rtos的嵌入式系统建模方法 | |
CN117033497B (zh) | 数据湖上数据更新与读取的方法及相关设备 | |
CN117291260A (zh) | 深度学习框架适配方法、装置、设备、存储介质和产品 | |
CN113778564B (zh) | 一种高效执行evm智能合约的方法、设备及储存介质 | |
JP4870956B2 (ja) | 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部 | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
Diez Dolinski et al. | Distributed simulation of P systems by means of map-reduce: first steps with Hadoop and P-Lingua | |
US20220374398A1 (en) | Object Creation from Schema for Event Streaming Platform | |
Lim et al. | R High Performance Programming | |
CN114489861A (zh) | 目标组件转化方法、装置、电子设备及可读存储介质 | |
Matz et al. | Automated partitioning of data-parallel kernels using polyhedral compilation | |
Lukavsky | Building Big Data Pipelines with Apache Beam: Use a single programming model for both batch and stream data processing |
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 |