CN116186041A - 数据湖索引创建方法、装置、电子设备及计算机存储介质 - Google Patents
数据湖索引创建方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN116186041A CN116186041A CN202310143967.4A CN202310143967A CN116186041A CN 116186041 A CN116186041 A CN 116186041A CN 202310143967 A CN202310143967 A CN 202310143967A CN 116186041 A CN116186041 A CN 116186041A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- lake
- target data
- target
- 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.)
- Pending
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- 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)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种数据湖索引创建方法、装置、电子设备及计算机存储介质,在数据湖获取到目标数据的情况下,获取目标数据的数据动态变化信息,再根据目标数据的数据动态变化信息,提取目标数据的数据特征。最后根据提取到的目标数据的数据特征,创建数据湖索引。如此,在数据动态入湖过程中,对目标数据变更记录进行实时采集探查,构建生成目标数据的数据特征,进而触发索引管理服务进行索引的自动创建,提高了数据湖索引创建的灵活性,并且由于是根据入湖数据自身的数据特征针对性地进行索引创建,以此基于创建的数据湖索引进行数据查询时可提高数据检索性能。
Description
技术领域
本申请属于大数据技术领域,尤其涉及一种数据湖索引创建方法、装置、电子设备及计算机存储介质。
背景技术
数据湖的定义为高度可扩展的数据存储区域,以原始格式存储大量原始数据,直到需要使用为止。数据湖可以存储所有类型的数据,对帐户大小或文件没有固定限制,也没有定义特定用途。数据来自不同的来源,可以是结构化的、半结构化的,甚至是非结构化的,数据可按需查询。
为了获得较优的数据查询和处理性能,现有的数据湖索引一般是在代码层面选择固定的索引或者用户自定义固定索引,需要预先设置索引,使得目前的数据湖索引创建缺乏灵活性。
发明内容
本申请实施例提供一种数据湖索引创建方法、装置、电子设备及计算机存储介质,能够根据海量数据的数据分布和数据值特征,自动对索引进行触发创建,提高数据湖索引创建的灵活性。
第一方面,本申请实施例提供一种数据湖索引创建方法,该方法可以包括:
在数据湖获取到目标数据的情况下,获取目标数据的数据动态变化信息,数据动态变化信息用于映射目标数据在进入数据湖的过程中的事务动作;
根据目标数据的数据动态变化信息,提取目标数据的数据特征;
根据提取到的目标数据的数据特征,创建数据湖索引。
在其中一个实施例中,上述涉及到的根据目标数据的数据动态变化信息,提取目标数据的数据特征,包括:
根据目标数据的数据动态变化信息,生成数据变更记录文件;
根据数据变更记录文件,提取得到目标数据的数据特征。在其中一个实施例中,上述涉及到的根据目标数据的数据动态变化信息,生成数据变更记录文件,包括:
记录数据动态变化信息中的目标数据的动作类变更信息和数据统计类变更信息,生成数据变更记录文件,动作类变更信息用于指示对目标数据进行插入、删除或更新的变更动作,数据统计类变更信息用于指示对目标数据进行统计的变更动作。
在其中一个实施例中,上述涉及到的数据变更记录文件包括目标数据的至少一条数据变更记录;
根据数据变更记录文件,提取得到目标数据的数据特征,包括:
解析数据变更记录文件,得到至少一条数据变更记录;
根据至少一条数据变更记录和目标数据的类型,通过自动特征工程对目标数据进行特征构建,得到目标数据的数据特征,目标数据的类型包括文本类型、数据类型、类别类型、地理空间类型、日期和时间类型以及维度类型中的任一种。
在其中一个实施例中,上述涉及到的自动特征工程包括至少一个特征基元;
根据至少一条数据变更记录和目标数据的类型,通过自动特征工程对目标数据进行特征构建,得到目标数据的数据特征,包括:
根据至少一条数据变更记录,针对目标数据的类型,通过自动特征工程中的至少一个特征基元,对目标数据进行叠加特征构建,提取得到目标数据的数据特征。
在其中一个实施例中,上述涉及到的根据提取到的目标数据的数据特征,创建数据湖索引之后,还包括:
在获取到查询请求的情况下,基于数据湖索引计算多个预设查询路径中各预设查询路径的查询代价,选择查询代价满足预设条件的预设查询路径作为目标查询路径;
根据目标查询路径,对查询请求对应的数据进行查找。
在其中一个实施例中,上述涉及到的根据提取到的目标数据的数据特征,创建数据湖索引之后,还包括:
对目标数据进行数据特征分析,得到数据特征分析结果;
根据目标数据的数据特征分析结果,对预设的数据湖索引进行更新,预设的数据湖索引为数据湖被设置的初始索引。
第二方面,本申请实施例提供一种数据湖索引创建装置,该装置可以包括:
获取模块,用于在数据湖获取到目标数据的情况下,获取目标数据的数据动态变化信息,数据动态变化信息用于映射目标数据在进入数据湖的过程中的事务动作;
提取模块,用于根据目标数据的数据动态变化信息,提取目标数据的数据特征;
创建模块,用于根据提取到的目标数据的数据特征,创建数据湖索引。
第三方面,本申请实施例提供了一种电子设备,设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行指令,以实现如第一方面的任一项实施例中所示的数据湖索引创建方法。
第四方面,本申请实施例提供了一种计算机存储介质,该计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如第一方面的任一项实施例中所示的数据湖索引创建方法。
第五方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在可读存储介质中,设备的至少一个处理器从存储介质读取并执行计算机程序,使得设备执行第一方面的任一项实施例中所示的数据湖索引创建方法。
本申请实施例提供了一种数据湖索引创建方法、装置、电子设备及计算机存储介质,相较于现有技术,本申请具有以下有益效果:
本申请实施例的一种数据湖索引创建方法、装置、电子设备及计算机存储介质,在数据湖获取到目标数据的情况下,获取目标数据的数据动态变化信息,再根据目标数据的数据动态变化信息,提取目标数据的数据特征。最后根据提取到的目标数据的数据特征,创建数据湖索引。
如此,在数据动态入湖过程中,对目标数据变更记录进行实时采集探查,构建生成目标数据的数据特征,进而触发索引管理服务进行索引的自动创建,提高了数据湖索引创建的灵活性,并且由于是根据入湖数据自身的数据特征针对性地进行索引创建,以此基于创建的数据湖索引进行数据查询时可提高数据检索性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据湖索引创建方法的流程示意图;
图2是本申请实施例提供的另一种数据湖索引创建方法的流程示意图;
图3是本申请实施例提供的一种数据湖索引创建系统的架构示意图;
图4是本申请实施例提供的一种数据湖索引创建装置的结构示意图;
图5是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
首先针对本申请中的专有名词进行介绍。
一:数据湖的数据组织方式
数据湖是大数据领域近几年才提出的一种灵活的,高兼容性的集中存储系统,一般由HDFS,OSS,S3等存储对象,ORC,Parquet等存储格式,iceberg,hudi等开放组织形式等自底向上共同构成了数据湖统一存储格式。
在开放组织形式层,数据湖元数据管理包含物理数据文件目录,统计信息,版本管理,文件组装等信息,比如元数据对包含对数据文件中数据Min/Max值等统计信息,加快数据检索。
二:索引技术
索引技术在数据库领域的应用相当广泛。通过索引技术能加快对数据的查询定位,减少对不必要的数据的读取,大大降低磁盘IO和CPU负载。不同的索引分类也涉及不同的索引实现技术,并且,在有些特定场景下,索引直观代表了原始数据,能通过索引直接查找到数据。
但在大数据领域,由于涉及到海量数据以及特殊的存储形式和特殊的应用场景,索引与数据库索引在技术实现方式上有很大不同。大数据领域索引主要集中在如何减少对数据文件的访问,如何跳过更多无关数据文件,加快查询速度。由于数据量巨大,有效的索引设计能大大提高大数据量的访问性能。
三:基于代价优化器(Cost Based Optimizer,CBO)
在开放引擎或者数据仓库如Clickhouse,Snowflake等中,SQL引擎首先会对客户端提交的SQL语句进行语法和词法解析生成语法树(AST树),通过遍历树结构生成逻辑执行计划后进入优化器中进行执行裁剪,以降低执行消耗,提高查询性能,生成物理执行计划进入执行引擎进行最终的查询执行。优化器一般分为基于规则优化器(Rule BasedOptimizer,RBO)和CBO两种:RBO是基于规则的优化器,根据内置的规则进行执行替换,比如常见的谓词下推,常量合并等,但相对来说,此种优化方法单一固定,灵活度低;CBO是一种数据敏感型优化方法,会根据数据统计信息和一定的代价计算模型来计算各种可能“执行计划”的资源消耗,一般包括磁盘IO,CPU,内存等,从中选用资源消耗最低的执行方案,作为最优运行方案。
优化器在现有的关系型数据库Mysql、Oracle,批处理引擎hive、spark,流处理引擎flink中都广泛存在,但设计和功能上也各有差异,如Hive表的统计信息不是强写入的,很多情况不存在统计信息或者是过时的,查询计划无法做基给予执行代价消耗的优化。
元数据被定义为描述数据的数据,其本质仍是数据,但可以看作是一种电子式目录,用于描述数据及信息资源的属性或内容、协助用户检索、使用数据。可以理解的是,在本申请实施例中,元数据为数据湖中用于描述目标数据及信息资源的属性或内容、协助用户检索、使用目标数据的数据,而目标数据为以实时和/或批的方式进入数据湖的数据。
相关技术中,为了获得最优的数据查询和处理性能,现有的数据库或者数据仓库系统在查询引擎和存储方面做了强相关适配,使得计算和存储以一种最优的组合方式适配存在。比如,使用专有的存储格式来适配引擎处理能力以达到对SQL的彻底优化,如clickhouse等会在后台定时将文件合并成特定大小或者对数据进行排序来适配引擎侧查询;同时,也有很多执行引擎上的优化方法在逐渐出现。在获取性能优势的同时带来了引擎和存储的强绑定,特殊定制化等问题,使得在进行数据开放共享时需要在不同数仓间进行同一份数据的多份复制传递,IT系统建设以烟囱方式野蛮生产,缺乏统一的管控,数据一致性无法保障,资源利用率也大大降低,此种情况下,数据湖概念也应运而生。
而大数据发展的新阶段——数据湖阶段,数据湖以灵活、开放共享的标准格式定位决定了其在数据存储组织层面无法最优的适配所有引擎来达到与数仓类似的性能,因此上述存储和引擎强绑定来获取性能提升的方案并不适合数据湖。现有的一种开放数据湖优化方向是按照存储和引擎分开优化的方式并行进行:
在数据湖存储组织优化上,会通过预先定义索引类型,预先创建固定索引,比如Min/Max,BloomFilter,bitmap位图索引等组织和排序方式。
在开放引擎层面,在SQL runtime层面做了大量的优化,尽可能的减少与数仓性能上的差距。但依旧在性能上和存储查询引擎强绑定,高定制化的数据库有一定差距。
目前的数据湖索引一般在代码层面选择固定的索引或者用户自定义固定索引,由于无法进行实时元数据统计,且无法根据数据特征分布自动进行索引构建,导致数据索引和数据组织上无法适配真实数据的特征分布,无法自动创建索引,因此需要预先设置索引,使得目前的数据湖查询分析缺乏灵活性,并且在和上层引擎配合加速的方案设计更少。
现有技术方案的缺点:
1.缺少自动化的索引管理系统,索引种类固定单一,需要在创建schema时人工手动指定索引类型;
2.无法根据海量数据的数据分布和数据值特征,自动选择特定索引进行触发创建和删除;
3.缺乏实时驱动的元数据探查统计服务,不具备数据分布统计特征提取的时效性;
4.缺少开放索引接口,不能支持灵活定制索引;
5.索引种类单调,导致无法向引擎侧CBO优化器提供多种执行路径进而评估出最优执行计划。
为了解决现有技术中存在的问题,本申请实施例提供了一种数据湖索引创建方法、装置、电子设备及计算机存储介质,在数据湖获取到目标数据的情况下,获取目标数据的数据动态变化信息,再根据目标数据的数据动态变化信息,提取目标数据的数据特征。最后根据提取到的目标数据的数据特征,创建数据湖索引。
如此,在数据动态入湖过程中,对目标数据变更记录进行实时采集探查,构建生成目标数据的数据特征,进而触发索引管理服务进行索引的自动创建,提高了数据湖索引创建的灵活性,并且由于是根据入湖数据自身的数据特征针对性地进行索引创建,以此基于创建的数据湖索引进行数据查询时可提高数据检索性能
本申请实施例提供了一种数据湖索引创建方法、装置、电子设备及计算机存储介质。下面首先对本申请实施例所提供的数据湖索引创建方法进行介绍。如图1所示,本申请实施例提供的数据湖索引创建方法,包括以下步骤:
S101:在数据湖获取到目标数据的情况下,获取目标数据的数据动态变化信息,数据动态变化信息用于映射目标数据在进入数据湖的过程中的事务动作;
S102:根据目标数据的数据动态变化信息,提取目标数据的数据特征;
S103:根据提取到的目标数据的数据特征,创建数据湖索引。
本申请实施例提供了一种数据湖索引创建方法、装置、电子设备及计算机存储介质,在数据湖获取到目标数据的情况下,获取目标数据的数据动态变化信息,再根据目标数据的数据动态变化信息,提取目标数据的数据特征。最后根据提取到的目标数据的数据特征,创建数据湖索引。如此,在数据动态入湖过程中,对目标数据变更记录进行实时采集探查,构建生成目标数据的数据特征,进而触发索引管理服务进行索引的自动创建,提高了数据湖索引创建的灵活性,并且由于是根据入湖数据自身的数据特征针对性地进行索引创建,以此基于创建的数据湖索引进行数据查询时可提高数据检索性能
在S101中,在目标数据以实时和批的方式入湖过程中,会有插入、更新、删除等不同的事务动作,目标数据的范围,分布,类型也在动态变化中,以上行为都会在数据湖元数据中进行映射。
在一个示例中,在数据入湖的初始阶段,由于数据量较少不宜根据数据特征创建索引,在一种可能的实施方式中,可由用户根据业务需求和经验来指定索引字段、索引类型以及数据排序方式,完成一次手动索引的后台创建,得到初始索引,后续随着数据逐渐入湖,再通过对入湖数据进行数据特征分析以对初始索引进行动态更新,得到较为完善的数据湖索引。需要说明的是,上述介绍的创建初始索引的方式不是必须步骤,在具体实现时,还可采用其他方式创建初始索引,比如就直接利用初始入户的数据创建初始索引,或者直接使用预先创建的常规索引作为初始索引等。
在S102中,将目标数据的变更动作记录到数据动态变化信息中,再根据目标数据的数据动态变化信息,生成数据变更记录文件,其中,数据变更记录文件包括目标数据的至少一条数据变更记录,数据变更记录用于记录目标数据的数据动态变化。在一个具体的实施例中,会在数据湖元数据中进行映射。通过WAL预先将变更记录写入日志文件中,再将日志文件持久化为数据湖元数据manifestlist中。
在一个示例中,根据目标数据的数据动态变化信息,提取目标数据的数据特征,包括:
根据目标数据的数据动态变化信息,生成数据变更记录文件;
根据数据变更记录文件,提取得到目标数据的数据特征。
在一个示例中,根据目标数据的数据动态变化信息,生成数据变更记录文件,包括:
记录数据动态变化信息中的目标数据的动作类变更信息和数据统计类变更信息,生成数据变更记录文件,动作类变更信息用于指示对目标数据进行插入、删除或更新的变更动作,数据统计类变更信息用于指示对目标数据进行统计的变更动作。
其中,可以根据数据变更记录文件,对目标数据进行特征构建,提取得到目标数据的数据特征。在一个示例中,数据变更记录文件包括目标数据的至少一条数据变更记录;根据数据变更记录文件,提取得到目标数据的数据特征,包括:
解析数据变更记录文件,得到至少一条数据变更记录;
根据至少一条数据变更记录和目标数据的类型,通过自动特征工程对目标数据进行特征构建,得到目标数据的数据特征,目标数据的类型包括文本类型、数据类型、类别类型、地理空间类型、日期和时间类型以及维度类型中的任一种。
其中,自动特征工程作为消息队列的消费者,实时解析获取目标数据变更记录。针对数据湖中不同类型数据,自动特征工程特征提取方式支持以下类型:文本类型(word2vec,tf-idf);数值类型(归一化,统计值,离线化等);类别类型(hash,one-hot);地理空间类型(经纬度,海拔高度);日期和时间类型(tsfresh);多维(降维分析等)。
在一个示例中,自动特征工程包括至少一个特征基元;
根据至少一条数据变更记录和目标数据的类型,通过自动特征工程对目标数据进行特征构建,得到目标数据的数据特征,包括:
根据至少一条数据变更记录,针对目标数据的类型,通过自动特征工程中的至少一个特征基元,对目标数据进行叠加特征构建,提取得到目标数据的数据特征。
其中,特征基元作为自动特征工程中的最小单位,分为聚合类基元和转换类基元,并后台内置各个基元的计算逻辑。动作类元数据和数据类元数据共同作为原始数据集参与到特征基元的计算中。通过对一个或者多个特征基元叠加构造数据特征。
在S103中,在一个示例中,在目标数据的数据特征满足预设索引创建类型的情况下,在数据湖中创建数据湖索引。在一个示例中,根据通过S102提取到的目标数据的数据特征,根据预设的数据特征与触发创建索引类型的映射关系,当目标数据的数据特征满足触发创建索引的类型时,在数据湖中创建目标数据的数据湖索引。
在一个示例中,根据提取到的目标数据的数据特征,创建数据湖索引之后,还包括:
对目标数据进行数据特征分析,得到数据特征分析结果;根据目标数据的数据特征分析结果,对预设的数据湖索引进行更新,预设的数据湖索引为数据湖被设置的初始索引。
其中,在手动设置得到初始索引后,随着数据逐渐入湖,可以通过对入湖数据进行数据特征分析以对初始索引进行动态更新,得到较为完善的数据湖索引。
为了在保证数据湖灵活性的同时提高数据湖的检索性能,如图2所示,在S103之后,还可以包括以下步骤:
S201:在获取到查询请求的情况下,基于数据湖索引计算多个预设查询路径中各预设查询路径的查询代价,选择查询代价满足预设条件的预设查询路径作为目标查询路径;
S202:根据目标查询路径,对查询请求对应的数据进行查找。
通过代价优化器,在多个预设查询路径中确定目标查询路径,再根据目标查询路径,对目标查询数据进行查找,能够保证数据湖灵活性的同时提高数据湖的检索性能。
在S201中,基于数据湖索引计算多个预设查询路径中各预设查询路径的查询代价,选择查询代价满足预设条件的预设查询路径作为目标查询路径,其中,预设条件可以根据实际需求设置,例如将查询代价最小的预设查询路径作为目标查询路径,在此不做限定。举例说明,如果在数据查询过程中,索引A的查询代价小于索引B的查询代价,则将索引A对应的预设查询路径作为目标查询路径。在一个具体的实施例中,在索引存储接口设计上需向上兼容查询引擎中的CBO接口,使得CBO优化器能计算多个预设查询路径中各预设查询路径的查询代价,进行最优查询路径选取。
在S202中,在一个具体的实施例中,基于上述方式构建的数据湖索引结构包括多种类型的索引方式,在执行SQL查询时,查询引擎在得到多种可能查询路径时,可通过CBO计算代价最小的查询路径作为最优查询路径执行SQL任务。
为了便于对本申请实施例提供的数据湖索引创建方法进行理解,以下通过一个具体的实施例对本申请实施例提供的方法进行介绍。
本申请实施例提出一种实时进行数据特征分布提取,对数据湖索引和数据组织进行自动创建和优化的索引集合管理设计,来加速数据湖查询检索,在保障数据湖灵活,兼容等特征的同时,缩小数据湖与专有数仓性能上的差距。
在SQL引擎的实现过程中,客户端提交的SQL语句经过解析器完成词法和语法解析后,遍历生成的语法树节点形成初始逻辑执行计划,大多数引擎都已经内置了基于规则优化策略,通过规则优化器完成规则替换,形成逻辑执行计划,该过程非本申请实施例内容,故该部分不再详述。上述过程产生的逻辑执行计划,将会通过基于代价的优化器(CBO)进行物理执行过程的消耗评估,选定资源消耗最小路径作为实际的物理执行,最终通过执行引擎完成物理数据的读写和查询,由查询引擎将结果返回给客户端,完成一次数据查询分析过程。
本方案设计了在数据动态入湖过程中,对元数据变更的实时采集探查,映射提取为数据的动态特征,通过自动特征提取系统生成数据关键特征,进而触发索引管理服务进行索引的自动创建和删除,促进CBO在数据湖查询检索确定最优路径过程中索引结构的多样,保证数据湖灵活性的同时提高数据湖检索性能。
本申请实施例的技术架构设计如图3所示。以下将会在四个方面对本申请实施例的技术实现细节进行描述:
1.以SPI方式开放索引接口,兼容支持更多索引类型的定制开发
数据湖以文件形式对索引文件和数据文件进行对应存储,并按SPI方式开放索引接口,具备可插拔的特性,兼容支持更多索引类型的定制开发。目前已支持常见的索引类型如下:B+树、Hash索引、布隆过滤器、位图索引、简单索引、HFlie索引。
在数据湖中,由于实际的数据是以文件方式存储,为加速查询,通常会对文件内数据的分布方式进行定义:如常见的最大值/最小值(Max/Min)排序或者Z-曲线(Z-ordering)排序相结合,达到减少数据文件扫描,裁剪检索空间,降低磁盘IO,提高检索效率的目的。
在数据入湖的初始阶段,由于数据量较少不宜根据数据特征创建索引,在一种可能的试试方式中,可由用户根据业务需求和经验来指定索引字段、索引类型以及数据排序方式,完成一次手动索引的后台创建,得到初始索引,后续随着数据逐渐入湖,再通过对入湖数据进行数据特征分析以对初始索引进行动态更新,得到较为完善的数据湖索引。当然,前述介绍的创建初始索引的方式不是必须步骤,在具体实现时,还可采用其他方式创建初始索引,比如就直接利用初始入户的数据创建初始索引,或者直接使用预先创建的常规索引作为初始索引等。
2.实时元数据实时探查服务
在数据以实时和批的方式入湖过程中,会有insert,update,delete等不同的事务动作,数据的范围,分布,类型也在动态变化中,以上行为都会在数据湖元数据中进行映射。通过预写日志(Write ahead Log,WAL)预先将变更记录写入日志文件中,再将日志文件持久化为数据湖元数据manifestlist中。
元数据探查服务将会实时监控日志文件变更,使用变更数据捕获(Change datacapture,CDC)方式,借助debezium将日志变更转化为时间驱动,写入消息队列中,每条消息以事件ID作为唯一标志。
3.使用自动特征工程探查元数据分布,自动触发索引管理服务运行
自动特征工程作为消息队列的消费者,实时解析获取元数据变更记录。变更记录受到insert,update,delete等动作类变更和数据统计类变更的共同影响。根据元数据变更记录使用自动特征工程方法定时对数据进行特征构建,针对触发创建条件的,调度下游索引管理服务进行索引管理,包括索引创建和删除。
针对数据湖中不同类型数据,自动特征工程特征提取方式支持如下:
·文本类型:word2vec,tf-idf
·数值类型:归一化,统计值,离线化等
·类别类型:hash,one-hot
·地理空间类型:经纬度,海拔高度
·日期和时间类型:tsfresh
·多维:降维分析等
在实现中,可通过pandas将元数据表抽象为实体(entity),多个元数据表构成多张实体集合,结合实体间的关系形成实体集(entityset)。
特征基元作为特征工程中的最小单位,分为聚合类基元和转换类基元,并后台内置各个基元的计算逻辑。动作类元数据和数据类元数据共同作为原始数据集参与到特征基元的计算中。通过对一个或者多个特征基元叠加构造数据特征,实现以下构造方法:
聚合方法:将父表对子表的分组计算统计量。
转换方法:对一张表中一列或多列进行操作。
通过以上方案提取的数据关键特征,降低了原始数据分布中的冗余和噪声干扰,提高下面数据特征和索引映射原则的准确性。其中数据特征与触发创建索引类型的映射关系,如表1所示。
表1:数据特征与触发创建索引类型的映射关系
随着数据不断入湖,数据特征会更加明显有效,结合开放索引定制接口,可以逐渐支撑更符合数据特征而触发创建的索引。
同时,随着数据特征的改变,比如数值大的数据由于业务原因被逐渐delete掉,那么实时元数据探查服务会快速洞察到数据分布的变化,特征工程会自动化构造max特征并发现低于索引触发域值,索引管理系统则自动更新min/max索引结构,保证索引的合理性,降低索引对存储和检索的压力,维持索引集合在一个合理的水位。
4.兼容开源CBO接口
该系统作为数据湖索引的自动管理系统,在索引存储接口设计上需向上兼容查询引擎中的CBO接口,使得CBO优化器能直接进行查询计划判断,进行最优查询路径选取。基于上述方式构建的数据湖索引结构包括多种类型的索引方式,在执行SQL查询时,查询引擎在得到多种可能查询路径时,可通过CBO计算代价最小的查询路径作为最优查询路径执行SQL任务。
基于上述实施例提供的一种数据湖索引创建方法,相应地,如图4所示,本申请实施例提供一种数据湖索引创建装置400,该装置可以包括:
获取模块401,用于在数据湖获取到目标数据的情况下,获取目标数据的数据动态变化信息,数据动态变化信息用于映射目标数据在进入数据湖的过程中的事务动作;
提取模块402,用于根据目标数据的数据动态变化信息,提取目标数据的数据特征;
创建模块403,用于根据提取到的目标数据的数据特征,创建目标数据的数据湖索引。
在一个实施例中,提取模块402可以包括:
生成单元,用于根据目标数据的数据动态变化信息,生成数据变更记录文件;
提取单元,用于根据数据变更记录文件,提取得到目标数据的数据特征。
在一个实施例中,生成单元可以具体用于:
记录数据动态变化信息中的目标数据的动作类变更信息和数据统计类变更信息,生成数据变更记录文件,动作类变更信息用于指示对目标数据进行插入、删除或更新的变更动作,数据统计类变更信息用于指示对目标数据进行统计的变更动作。
在一个实施例中,提取单元可以包括:
解析单元,用于解析数据变更记录文件,得到至少一条数据变更记录;
构建单元,用于根据至少一条数据变更记录和目标数据的类型,通过自动特征工程对目标数据进行特征构建,得到目标数据的数据特征,目标数据的类型包括文本类型、数据类型、类别类型、地理空间类型、日期和时间类型以及维度类型中的任一种。
在一个实施例中,构建单元可以具体用于:
根据至少一条数据变更记录,针对目标数据的类型,通过自动特征工程中的至少一个特征基元,对目标数据进行叠加特征构建,提取得到目标数据的数据特征。
在一个实施例中,数据湖索引创建装置400还可以包括:
第一查找模块,用于在获取到查询请求的情况下,计算多个预设查询路径中各预设查询路径的查询代价,选择查询代价满足预设条件的预设查询路径作为目标查询路径;
第二查找模块,用于根据目标查询路径和数据湖索引,对所述查询请求对应的数据进行查找。
在一个实施例中,数据湖索引创建装置400还可以包括:
第一更新模块,用于对目标数据进行数据特征分析,得到数据特征分析结果;
第二更新模块,用于根据目标数据的数据特征分析结果,对预设的数据湖索引进行更新,预设的数据湖索引为数据湖被设置的初始索引。
基于上述实施例提供的数据湖索引创建方法和装置,本申请实施例还提供一种电子设备500,如图5所示:
包括处理器501,存储器502,存储在存储器502上并可在处理器501上运行的计算机程序,该计算机程序被处理器501执行时实现上述数据湖索引创建方法实施例的各个过程,且能达到相同的技术效果。
具体地,上述处理器501可以包括中央处理器(CPU),或者特定集成电路(ASIC,Application Specific Integrated Circuit),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括硬盘驱动器(HDD,Hard Disk Drive)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB,Universal Serial Bus)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关容灾设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。
在特定实施例中,存储器可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本申请的一方面的方法所描述的操作。
处理器501通过读取并执行存储器502中存储的计算机程序指令,以实现上述实施例中的任意一种数据湖索引创建方法。
在一个示例中,电子设备还可包括通信接口503和总线510。作为一种示例,如图5所示,处理器501、存储器502、通信接口503通过总线510连接并完成相互间的通信。
通信接口503,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线510包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据湖索引创建方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,的计算机可读存储介质,如只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本申请的实施例的方法、装置和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种数据湖索引创建方法,其特征在于,包括:
在数据湖获取到目标数据的情况下,获取所述目标数据的数据动态变化信息,所述数据动态变化信息用于映射所述目标数据在进入所述数据湖的过程中的事务动作;
根据所述目标数据的所述数据动态变化信息,提取所述目标数据的数据特征;
根据提取到的所述目标数据的所述数据特征,创建数据湖索引。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据的所述数据动态变化信息,提取所述目标数据的数据特征,包括:
根据所述目标数据的所述数据动态变化信息,生成数据变更记录文件;
根据所述数据变更记录文件,提取得到所述目标数据的所述数据特征。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标数据的所述数据动态变化信息,生成数据变更记录文件,包括:
记录所述数据动态变化信息中的所述目标数据的动作类变更信息和数据统计类变更信息,生成所述数据变更记录文件,所述动作类变更信息用于指示对所述目标数据进行插入、删除或更新的变更动作,所述数据统计类变更信息用于指示对所述目标数据进行统计的变更动作。
4.根据权利要求2所述的方法,其特征在于,所述数据变更记录文件包括所述目标数据的至少一条数据变更记录;
所述根据所述数据变更记录文件,提取得到所述目标数据的数据特征,包括:
解析所述数据变更记录文件,得到所述至少一条数据变更记录;
根据所述至少一条数据变更记录和所述目标数据的类型,通过自动特征工程对所述目标数据进行特征构建,得到所述目标数据的所述数据特征,所述目标数据的类型包括文本类型、数据类型、类别类型、地理空间类型、日期和时间类型以及维度类型中的任一种。
5.根据权利要求4所述的方法,其特征在于,所述自动特征工程包括至少一个特征基元;
所述根据所述至少一条数据变更记录和所述目标数据的类型,通过自动特征工程对所述目标数据进行特征构建,得到所述目标数据的所述数据特征,包括:
所述根据所述至少一条数据变更记录,针对所述目标数据的类型,通过所述自动特征工程中的所述至少一个特征基元,对所述目标数据进行叠加特征构建,提取得到所述目标数据的所述数据特征。
6.根据权利要求1所述的方法,其特征在于,所述根据提取到的所述目标数据的所述数据特征,创建数据湖索引之后,还包括:
在获取到查询请求的情况下,基于所述数据湖索引计算多个预设查询路径中各预设查询路径的查询代价,选择所述查询代价满足预设条件的预设查询路径作为目标查询路径;
根据所述目标查询路径,对所述查询请求对应的数据进行查找。
7.根据权利要求1所述的方法,其特征在于,所述根据提取到的所述目标数据的所述数据特征,创建数据湖索引,包括:
对所述目标数据进行数据特征分析,得到数据特征分析结果;
根据所述目标数据的所述数据特征分析结果,对预设的数据湖索引进行更新,所述预设的数据湖索引为所述数据湖被设置的初始索引。
8.一种数据湖索引创建装置,其特征在于,所述装置包括:
获取模块,用于在数据湖获取到目标数据的情况下,获取所述目标数据的数据动态变化信息,所述数据动态变化信息用于映射所述目标数据在进入数据湖的过程中的事务动作;
提取模块,用于根据所述目标数据的所述数据动态变化信息,提取所述目标数据的数据特征;
创建模块,用于根据提取到的所述目标数据的所述数据特征,创建数据湖索引。
9.一种电子设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-7任意一项所述的数据湖索引创建方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-7任意一项所述的数据湖索引创建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310143967.4A CN116186041A (zh) | 2023-02-21 | 2023-02-21 | 数据湖索引创建方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310143967.4A CN116186041A (zh) | 2023-02-21 | 2023-02-21 | 数据湖索引创建方法、装置、电子设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116186041A true CN116186041A (zh) | 2023-05-30 |
Family
ID=86439973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310143967.4A Pending CN116186041A (zh) | 2023-02-21 | 2023-02-21 | 数据湖索引创建方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116186041A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251214A (zh) * | 2023-11-17 | 2023-12-19 | 北京偶数科技有限公司 | 基于分布式数据库Apache Hudi表格式数据操作指令的执行方法 |
-
2023
- 2023-02-21 CN CN202310143967.4A patent/CN116186041A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251214A (zh) * | 2023-11-17 | 2023-12-19 | 北京偶数科技有限公司 | 基于分布式数据库Apache Hudi表格式数据操作指令的执行方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11126647B2 (en) | System and method for hierarchically organizing documents based on document portions | |
US9201931B2 (en) | Method for obtaining search suggestions from fuzzy score matching and population frequencies | |
CN110275920B (zh) | 数据查询方法、装置、电子设备及计算机可读存储介质 | |
US8938475B2 (en) | Managing business objects data sources | |
US9619571B2 (en) | Method for searching related entities through entity co-occurrence | |
EP3055786A1 (en) | Automatic definition of entity collections | |
CN101634983A (zh) | 一种文本分类方法和装置 | |
CN104199965A (zh) | 一种语义信息检索方法 | |
CN110928903B (zh) | 数据提取方法及装置、设备和存储介质 | |
CN111930615B (zh) | 代码质量评估方法及装置 | |
CN105608232A (zh) | 一种基于图形数据库的bug知识建模方法 | |
CN109558166A (zh) | 一种面向缺陷定位的代码搜索方法 | |
CN101706790A (zh) | 搜索引擎中包含web对象的聚类方法 | |
CN116186041A (zh) | 数据湖索引创建方法、装置、电子设备及计算机存储介质 | |
CN105095436A (zh) | 数据源数据自动建模方法 | |
CN108073641B (zh) | 查询数据表的方法和装置 | |
CN104881446A (zh) | 搜索方法及装置 | |
CN110874366A (zh) | 数据处理、查询方法和装置 | |
CN116610810A (zh) | 基于调控云知识图谱血缘关系的智能搜索方法及系统 | |
US9336280B2 (en) | Method for entity-driven alerts based on disambiguated features | |
CN116467291A (zh) | 一种知识图谱存储与搜索方法及系统 | |
US10331715B2 (en) | Metadata enrichment with a keyword definition editor | |
CN112783758A (zh) | 测试案例库与特征库生成方法、设备及存储介质 | |
CN110569243A (zh) | 一种数据查询方法、数据查询插件和数据查询服务器 | |
CN117390064B (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 |