一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

实现TrinoIceberg连接中的Update功能的方法与流程

2022-06-05 10:58:32 来源:中国专利 TAG:
实现trinoiceberg连接中的update功能的方法
技术领域
:1.本发明涉及数据处理
技术领域
:,具体涉及一种实现trinoiceberg连接中的update功能的方法、一种计算机设备和一种非临时性计算机可读存储介质。
背景技术
::2.iceberg是一种用于大型分析数据集的开放表格格式,它使用一种类似于sql(structuredquerylanguage,结构化查询语言)表的高性能表格式,可以将表添加到spark(一种专为大规模数据处理而设计的快速通用的计算引擎)、trino(一种用于大数据分析的快速分布式sql查询引擎)、flink(一种开源流处理框架)和hive(一种数据仓库工具)等计算引擎中并支持对该表格式的增删查改等操作。3.目前,目前能支持iceberg表的update操作的计算引擎只有spark以及flink,从而在实时、离线计算分析上提供了更多的计算场景,满足更多的业务需求,而trino不支持对iceberg表的update操作。4.trino是一款基于内存的pb级分布式sql计算引擎,它通过connector(连接器)spi(serialperipheralinterface,串行外设接口)实现了计算层和存储层的低耦合,使其支持对各种数据源的访问与操作,并具有跨源查询的特性。iceberg作为数据湖方案之一,支持icebergconnector的update语法是trino在对接数据湖方案中的重要一环,而相关技术中,trino不支持对iceberg表的update操作,从而导致trino对接iceberg数据时无法实现数据的批量更新功能。技术实现要素:5.为解决上述技术问题,本发明的第一个目的在于提出一种实现trinoiceberg连接中的update功能的方法。6.本发明的第二个目的在于提出一种计算机设备。7.本发明的第三个目的在于提出一种非临时性计算机可读存储介质。8.本发明采用的技术方案如下:9.本发明第一方面的实施例提出了一种实现trinoiceberg连接中的update功能的方法,包括以下步骤:通过trinoenginesql执行引擎接收并解析用户提交的updatesql任务,以获取可执行计划;通过trino提供的updatablepagesource软件编程接口,来支持对iceberg元数据以及底层数据的update功能逻辑;根据所述update功能逻辑,通过iceberg提供的rowdelta应用编程接口,对iceberg底层数据进行数据update操作。10.本发明上述提出的实现trinoiceberg连接中的update功能的方法还可以具有如下附加技术特征:11.根据本发明的一个实施例,通过trinoenginesql执行引擎接收并解析用户提交的updatesql任务,以获取可执行计划,具体包括:通过所述trinoenginesql执行引擎接收用户提交的所述updatesql任务;所述trinoenginesql执行引擎根据所述updatesql任务获取用户提交的session,并根据所述用户提交的session对用户进行权限鉴定;如果权限鉴定通过,则使用逻辑计划器对所述updatesql任务进行解析,生成抽象语法树,并根据所述updatesql任务所在的catalog,结合从对应的connector中获取所述updatesql任务所涉及的表的元数据信息以及trinoengine的语法优化器的优化规则,将所述updatesql任务优化并转换成逻辑计划;通过分布式计划器根据所述逻辑计划生成分布式查询计划,并交给执行计划器;所述执行计划器将所述分布式查询计划转换成可执行的计划,并通过节点管理器发现获取可用节点,并将所述可执行的计划分发到所述可用节点进行执行。12.根据本发明的一个实施例,通过trino提供的updatablepagesource软件编程接口,来支持对iceberg元数据以及底层数据的update功能逻辑,具体包括:根据所述可执行计划,通过splitmanager软件编程接口获取所述updatesql任务所涉及的表的split信息;对每个所述split信息创建一个updatablepagesource软件编程接口,以使trinoengine通过updatablepagesource软件编程接口提供的getnextpage方法获取下一页数据,并在读取所述下一页数据时根据sql条件执行过滤并生成过滤后的结果页面;根据所述结果页面,通过所述updatablepagesource软件编程接口在updatarows方法中根据rowid完成数据的deletefile文件以及insertfile文件的生成;在updateablepagesource软件编程接口的finish方法中用iceberg提供的transaction应用编程接口对所述deletefile文件以及所述insertfile文件进行底层元数据记录以及数据的新增和删除;当所述trinoengine处理完所有splits的页面后,trinoengine调用connectormetadata软件编程接口的finishupdate方法提交事物。13.根据本发明的一个实施例,根据所述update功能逻辑,通过iceberg提供的rowdelta应用编程接口,对iceberg底层数据进行数据update操作,具体包括:判断所述deletefile文件以及所述insertfile文件的filecontent的类型;如果所述类型为data类型,则通过rowdelta.addinsertfile方法将文件的位置信息以及数据信息添加到iceberg表元数据信息中;如果为pos-deletetion类型,则通过rowdelta.adddeletefile方法将文件的位置信息以及数据信息添加到iceberg表元数据信息中;如果所述类型不为所述data类型且不为所述pos-deletetion类型,则抛出不支持该类型的异常;提交本次事务,完成对所述updatesql任务的数据update操作。14.本发明第二方面的实施例提出了一种计算机设备。15.本发明第三方面的实施例提出了一种非临时性计算机可读存储介质。16.本发明的有益效果:17.本发明可以在通过trino对接iceberg数据时支持update功能,能让用户将跑批以及即席查询登操作在同一套引擎中完成,方便高效的完成更多的批处理场景,不仅可以减少任务的开发成本、运维成本,还可以将数据的etl、建模以及分析都在olap(on-linetransactionprocessing,联机分析处理)分析引擎中完成,以及可以消除数据口径不一致问题。附图说明18.图1是根据本发明一个实施例的实现trinoiceberg连接中的update功能的方法的流程图。具体实施方式19.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。20.图1是根据本发明一个实施例的实现trinoiceberg连接中的update功能的方法的流程图,如图1所示,该方法包括以下步骤:21.s1,通过trinoenginesql执行引擎接收并解析用户提交的updatesql任务,以获取可执行计划。22.进一步地,通过trinoenginesql执行引擎接收并解析用户提交的updatesql任务,以获取可执行计划,具体包括:通过trinoenginesql执行引擎接收用户提交的updatesql任务;trinoenginesql执行引擎根据updatesql任务获取用户提交的session,并根据用户提交的session对用户进行权限鉴定;如果权限鉴定通过,则使用逻辑计划器对updatesql任务进行解析,生成抽象语法树,并根据updatesql任务所在的catalog,结合从对应的connector中获取updatesql任务所涉及的表的元数据信息以及trinoengine的语法优化器的优化规则,将updatesql任务优化并转换成逻辑计划;通过分布式计划器根据逻辑计划生成分布式查询计划,并交给执行计划器;执行计划器将分布式查询计划转换成可执行的计划,并通过节点管理器发现获取可用节点,并将可执行的计划分发到可用节点进行执行。23.具体地,通过trinoenginesql执行引擎接收用户提交的updatesql任务,根据updatesql任务获取用户提交的session(会话),并根据用户提交的session对用户进行权限鉴定,如果权限鉴定不通过,则返回给客户端权限不通过。24.如果权限通过,则对鉴权通过后的updatesql任务使用逻辑计划器进行解析,生成抽象语法树(ast),并根据updatesql任务所在的catalog,结合从对应的connector中获取updatesql任务所涉及的表的元数据信息以及trinoengine的语法优化器(optimizer)的优化规则将其优化并转换成逻辑计划。通过分布式计划器生成分布式查询计划并交给执行计划器执行计划器将其分布式查询计划转换成真正可执行的计划,并通过服务发现获取可用的节点,并将该计划分发到这些可用的节点进行执行。25.s2,通过trino提供的updatablepagesource软件编程接口,来支持对iceberg元数据以及底层数据的update功能逻辑。26.进一步地,根据本发明的一个实施例,通过trino提供的updatablepagesource软件编程接口,来支持对iceberg元数据以及底层数据的update功能逻辑,具体包括:根据可执行计划,通过splitmanager软件编程接口获取updatesql任务所涉及的表的split信息;对每个split信息创建一个updatablepagesource软件编程接口,以使trinoengine通过updatablepagesource软件编程接口提供的getnextpage方法获取下一页数据,并在读取下一页数据时根据sql条件执行过滤并生成过滤后的结果页面;根据结果页面,通过updatablepagesource软件编程接口在updatarows方法中根据rowid完成数据的deletefile文件以及insertfile文件的生成;在updateablepagesource软件编程接口的finish方法中用iceberg提供的transaction应用编程接口对deletefile文件以及insertfile文件进行底层元数据记录以及数据的新增和删除;当trinoengine处理完所有splits的页面后,trinoengine调用connectormetadata软件编程接口的finishupdate方法提交事物。27.s3,根据update功能逻辑,通过iceberg提供的rowdelta应用编程接口,对iceberg底层数据进行数据update操作。28.进一步地,根据本发明的一个实施例,根据update功能逻辑,通过iceberg提供的rowdelta应用编程接口,对iceberg底层数据进行数据update操作,具体包括:判断deletefile文件以及insertfile文件的filecontent的类型;如果类型为data类型,则通过rowdelta.addinsertfile方法将文件的位置信息以及数据信息添加到iceberg表元数据信息中;如果为pos-deletetion类型,则通过rowdelta.adddeletefile方法将文件的位置信息以及数据信息添加到iceberg表元数据信息中;如果类型不为data类型且不为pos-deletetion类型,则抛出不支持该类型的异常;提交本次事务,完成对updatesql任务的数据update操作。29.由此,实现trinoiceberg连接中的update功能。30.综上,根据本发明实施例的实现trinoiceberg连接中的update功能的方法,可以在通过trino对接iceberg数据时支持update功能,能让用户将跑批以及即席查询登操作在同一套引擎中完成,方便高效的完成更多的批处理场景,不仅可以减少任务的开发成本、运维成本,还可以将数据的etl、建模以及分析都在olap分析引擎中完成,以及可以消除数据口径不一致问题。31.本发明还提出一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现上述的实现trinoiceberg连接中的update功能的方法。32.根据本发明实施例的计算机设备,存储在存储器的计算机程序被处理器执行时,通过trinoenginesql执行引擎接收并解析用户提交的updatesql任务,以获取可执行计划,通过trino提供的updatablepagesource软件编程接口,来支持对iceberg元数据以及底层数据的update功能逻辑,根据update功能逻辑,通过iceberg提供的rowdelta应用编程接口,对iceberg底层数据进行数据update操作,从而可以在通过trino对接iceberg数据时支持update功能,能让用户将跑批以及即席查询登操作在同一套引擎中完成,方便高效的完成更多的批处理场景,不仅可以减少任务的开发成本、运维成本,还可以将数据的etl、建模以及分析都在olap分析引擎中完成,以及可以消除数据口径不一致问题。33.此外,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的实现trinoiceberg连接中的update功能的方法。34.根据本发明实施例的非临时性计算机可读存储介质,存储在其上的计算机程序被处理器执行时,通过trinoenginesql执行引擎接收并解析用户提交的updatesql任务,以获取可执行计划,通过trino提供的updatablepagesource软件编程接口,来支持对iceberg元数据以及底层数据的update功能逻辑,根据update功能逻辑,通过iceberg提供的rowdelta应用编程接口,对iceberg底层数据进行数据update操作,从而可以在通过trino对接iceberg数据时支持update功能,能让用户将跑批以及即席查询登操作在同一套引擎中完成,方便高效的完成更多的批处理场景,不仅可以减少任务的开发成本、运维成本,还可以将数据的etl、建模以及分析都在olap分析引擎中完成,以及可以消除数据口径不一致问题。35.在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。36.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。37.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属
技术领域
:的技术人员所理解。38.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。39.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。40.本
技术领域
:的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。41.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。42.上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。43.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献