CN116541377B - 任务的物化视图的处理方法、系统和电子设备 - Google Patents

任务的物化视图的处理方法、系统和电子设备 Download PDF

Info

Publication number
CN116541377B
CN116541377B CN202310501468.8A CN202310501468A CN116541377B CN 116541377 B CN116541377 B CN 116541377B CN 202310501468 A CN202310501468 A CN 202310501468A CN 116541377 B CN116541377 B CN 116541377B
Authority
CN
China
Prior art keywords
materialized view
identification information
materialized
view
history
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
Application number
CN202310501468.8A
Other languages
English (en)
Other versions
CN116541377A (zh
Inventor
游杰
魏烙
王俊华
张磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310501468.8A priority Critical patent/CN116541377B/zh
Publication of CN116541377A publication Critical patent/CN116541377A/zh
Application granted granted Critical
Publication of CN116541377B publication Critical patent/CN116541377B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2393Updating materialised views
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种任务的物化视图的处理方法、系统和电子设备。其中,该方法包括:确定在对调度任务执行查询的过程中运行的待创建物化视图,其中,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果;创建标识信息,其中,标识信息至少用于表示物化视图与第一计算结果之间的逻辑关系信息;获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度;基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图之间的视图内容。本申请解决了无法有效创建物化视图的技术问题。

Description

任务的物化视图的处理方法、系统和电子设备
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种任务的物化视图的处理方法、系统和电子设备。
背景技术
目前,计算平台推出了物化视图的概念,基于历史结构化查询语言(StructuredQuery Language,简称为SQL)和物理执行计划,当多个SQL含有公共子查询时,可以推荐一个可物化的公共子查询,该可物化的公共子查询用于指示模糊的公共子查询,也即,该子查询可能不存在于任何现有的SQL中。在公共子查询物化的前提下,子查询将不再执行SQL逻辑,而是读取物化表中的数据,但是该物化视图需要用户自行挑选物化逻辑,之后,人工发布上线。此外,由于数据仓库中的表存在时间分区,物化视图需等待自身的引用表数据产出才能创建。因此,物化视图存在创建时间不可控,提前预估收益困难,存在额外存储浪费,导致无法有效创建物化视图的技术问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种任务的物化视图的处理方法、系统和电子设备,以至少解决无法有效创建物化视图的技术问题。
根据本申请实施例的一个方面,提供了一种任务的物化视图的处理方法。该方法可以包括:确定在对调度任务执行查询的过程中运行的待创建物化视图,其中,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果;创建标识信息,其中,标识信息至少用于表示物化视图与第一计算结果之间的逻辑关系信息;获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到的第二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息;基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。
根据本申请实施例的另一方面,还提供了一种任务的物化视图的处理方法。该方法可以包括:通过调用第一接口获取目标请求,其中,第一接口包括第一参数,第一参数的参数值为目标请求,目标请求至少用于请求获取在对调度任务执行查询的过程中运行的待创建物化视图,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果;创建标识信息,其中,标识信息至少用于表示物化视图的与第一计算结果之间的逻辑关系信息;获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到的第二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息;基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容;通过调用第二接口输出创建的物化视图,或者,调整后的历史物化视图,其中,第二接口包括第二参数,第二参数的参数值为创建的物化视图,或者,调整后的历史物化视图。
根据本申请实施例的另一方面,还提供了一种任务的物化视图的处理系统。该系统包括:客户端,用于发送目标请求,其中,目标请求至少用于请求获取在对调度任务执行查询的过程中运行的待创建物化视图,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果;服务器,用于创建标识信息,其中,标识信息至少用于表示物化视图的与第一计算结果之间的逻辑关系信息;获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到的第二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息;基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。
根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序处理器运行时控制计算机存储介质所在设备执行任务的物化视图的处理方法。
根据本申请实施例的另一方面,还提供了一种电子设备,该电子设备包括存储器和处理器,存储器用于存储计算机可执行指令,处理器用于执行计算机可执行指令,该计算机可执行指令被处理器运行时执行任务的物化视图的处理方法。
在本申请实施例中,可以确定在对调度任务执行查询的过程中运行的待创建物化视图,其中,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果;创建标识信息,其中,标识信息至少用于表示物化视图与第一计算结果之间的逻辑关系信息;获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到的第二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息;基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。也就是说,在本申请实施例中,可以在调度任务使用物化视图进行优化计算时,考虑相似物化视图的处理逻辑,自动化创建和更新物化视图,从而避免逻辑高度相似的物化视图被频繁创建,存在额外存储,达到有效创建物化视图的技术效果,进而解决无法有效创建物化视图的技术问题。
容易注意到的是,上面的通用描述和后面的详细描述仅仅是为了对本申请进行举例和解释,并不构成对本申请的限定。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现任务的物化视图的处理方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种计算环境的结构框图;
图3是根据本申请实施例的一种服务网格的结构框图;
图4是根据本申请实施例1的任务的物化视图的处理方法的流程图;
图5是根据本申请实施例的一种SQL的抽象语法树的示意图;
图6是根据本申请实施例1的任务的物化视图的处理方法的流程图
图7是根据本申请实施例的一种任务的物化视图的处理系统的示意图;
图8是根据本申请实施例的一种物化视图的创建方法的流程图
图9是根据本申请实施例的一种节点示意图;
图10是根据本申请实施例中创建物化视图的指纹的方法的流程图;
图11是根据本申请实施例的一种物化视图的包含关系的示意图;
图12是根据本申请实施例的一种任务的物化视图的处理装置;
图13是根据本申请实施例的一种任务的物化视图的处理装置;
图14是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
物化视图,包括一个查询结果的数据库对象,是远程数据的本地副本,或者用来生成基于数据表求和的汇总表,物化视图可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询任务时,就可以避免进行耗时的操作,从而达到快速得到查询结果的目的;
任务,包含SQL、脚本、算法等类型,在开放数据处理服务(Open Data ProcessingService,简称为ODPS)上周期调度的计算过程;
任务启动时间,通常为一个计划任务(Cron)表达式,是一个具有时间含义的字符串,字符串以5-6个空格隔开,分为6-7个域,格式为“XXXXXXX”。其中,X用于表示一个域的占位符,最后一个代表年份的域非必须,可省略,单个域有多个取值时,使用半角逗号,隔开取值,单个域可以是确定的取值,也可以是具有逻辑意义的特殊字符;
任务依赖,任务执行的顺序,一个任务可以开始的必要条件是,上游依赖全部成功运行并且到达启动时间,例如,如果任务B依赖于任务A,则需要先完成任务A才能开始任务B;
大数据离线数据仓库,数据仓库是将多个数据来源的数据按照一定抽取(Extract)、转换(Transform)、加载(Load)至目标端的过程,可以用于决策分析的结构化数据环境,大数据离线数据仓库基于海量数据和大数据计算引擎,依据任务调度依赖网络,周期性(小时级别、天级别等)对数据进行的数据仓库;
引用表,用于表示一个SQL查询数据的来源物理表。
实施例
根据本申请实施例,提供了一种任务的物化视图的处理方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现任务的物化视图的处理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器(Micro Controller Unit,简称为MCU)或可编程逻辑器件(Field Programmable GateArray,简称为FPGA)等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(Input/Output,简称为I/O接口)、通用串行总线(Universal Serial Bus,简称为USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的任务的物化视图的处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的任务的物化视图的处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(Liquid Crystal Display,简称为LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
图1示出的硬件结构框图,不仅可以作为上述计算机终端10(或移动设备)的示例性框图,还可以作为上述服务器的示例性框图,一种可选实施例中,图2以框图示出了使用上述图1所示的计算机终端10(或移动设备)作为计算环境201中计算节点的一种实施例。图2示出了一种计算环境的结构框图,如图2所示,计算环境201包括运行在分布式网络上的多个(图中采用210-1,210-2,…,来示出)计算节点(如服务器)。计算节点都包含本地处理和内存资源,终端用户202可以在计算环境201中远程运行应用程序或存储数据。应用程序可以作为计算环境201中的多个服务220-1,220-2,220-3和220-4进行提供,分别代表服务“A”,“D”,“E”和“H”。
终端用户202可以通过客户端上的web浏览器或其他软件应用程序提供和访问服务,在一些实施例中,可以将终端用户202的供应和/或请求提供给入口网关230。入口网关230可以包括一个相应的代理来处理针对服务(计算环境201中提供的一个或多个服务)的供应和/或请求。
服务是根据计算环境201支持的各种虚拟化技术来提供或部署的。在一些实施例中,可以根据基于虚拟机(Virtual Machine,简称为VM)的虚拟化、基于容器的虚拟化和/或类似的方式提供服务。基于虚拟机的虚拟化可以是通过初始化虚拟机来模拟真实的计算机,在不直接接触任何实际硬件资源的情况下执行程序和应用程序。在虚拟机虚拟化机器的同时,根据基于容器的虚拟化,可以启动容器来虚拟化整个操作系统(OperatingSystem,简称为OS),以便多个工作负载可以在单个操作系统实例上运行。
在基于容器虚拟化的一个实施例中,服务的若干容器可以被组装成一个Pod(例如,Kubernetes Pod)。举例来说,如图2所示,服务220-2可以配备一个或多个Pod240-1,240-2,…,240-N(统称为Pod)。Pod可以包括代理245和一个或多个容器242-1,242-2,…,242-M(统称为容器)。Pod中一个或多个容器处理与服务的一个或多个相应功能相关的请求,代理245通常控制与服务相关的网络功能,如路由、负载均衡等。其他服务也可以配备类似于Pod的Pod。
在操作过程中,执行来自终端用户202的用户请求可能需要调用计算环境201中的一个或多个服务,执行一个服务的一个或多个功能可能需要调用另一个服务的一个或多个功能。如图2所示,服务“A”220-1从入口网关230接收终端用户202的用户请求,服务“A”220-1可以调用服务“D”220-2,服务“D”220-2可以请求服务“E”220-3执行一个或多个功能。
上述的计算环境可以是云计算环境,资源的分配由云服务提供上管理,允许功能的开发无需考虑实现、调整或扩展服务器。该计算环境允许开发人员在不构建或维护复杂基础设施的情况下执行响应事件的代码。服务可以被分割完成一组可以自动独立伸缩的功能,而不是扩展单个硬件设备来处理潜在的负载。
另一种可选实施例中,图3以框图示出了使用上述图1所示的计算机终端10(或移动设备)作为服务网格的一种实施例。图3示出了一种服务网格的结构框图,如图3所示,该服务网格300主要用于方便多个微服务之间进行安全和可靠的通信,微服务是指将应用程序分解为多个较小的服务或者实例,并分布在不同的集群/机器上运行。
如图3所示,微服务可以包括应用服务实例A和应用服务实例B,应用服务实例A和应用服务实例B形成服务网格300的功能应用层。在一种实施方式中,应用服务实例A以容器/进程308的形式运行在机器/工作负载容器组314(Pod),应用服务实例B以容器/进程310的形式运行在机器/工作负载容器组316(Pod)。
在一种实施方式中,应用服务实例A可以是商品查询服务,应用服务实例B可以是商品下单服务。
如图3所示,应用服务实例A和网格代理(sidecar)303共存于机器工作负载容器组614,应用服务实例B和网格代理305共存于机器工作负载容器314。网格代理303和网格代理305形成服务网格300的数据平面层(data plane)。其中,网格代理303和网格代理305分别以容器/进程304,容器/进程306的形式运行,可以接收请求312,以用于进行商品查询服务,并且网格代理303和应用服务实例A之间可以双向通信,网格代理305和应用服务实例B之间可以双向通信。此外,网格代理303和网格代理305之间还可以双向通信。
在一种实施方式中,应用服务实例A的流量都通过网格代理303被路由到合适的目的地,应用服务实例B的网络流量都通过网格代理305被路由到合适的目的地。需要说明的是,在此提及的网络流量包括但不限于超文本传输协议(Hyper Text Transfer Protocol,简称为HTTP),表述性状态传递(Representational State Transfer,简称为REST),高性能、通用的开源框架(google Remote Procedure Call,gRPC),开源的内存中的数据结构存储系统(Redis)等形式。
在一种实施方式中,可以通过为服务网格300中的代理(Envoy)编写自定义的过滤器(Filter)来实现扩展数据平面层的功能,服务网格代理配置可以是为了使服务网格正确地代理服务流量,实现服务互通和服务治理。网格代理303和网格代理305可以被配置成执行至少如下功能中的一种:服务发现(service discovery),健康检查(health checking),路由(Routing),负载均衡(Load Balancing),认证和授权(authenticationandauthorization),以及可观测性(observability)。
如图3所示,该服务网格300还包括控制平面层。其中,控制平面层可以是由一组在一个专用的命名空间中运行的服务,在机器/工作负载容器组(machine/Pod)302中由托管控制面组件301来托管这些服务。如图3所示,托管控制面组件301与网格代理303和网格代理305进行双向通信。托管控制面组件301被配置成执行一些控制管理的功能。例如,托管控制面组件301接收网格代理303和网格代理305传送的遥测数据,可以进一步对这些遥测数据做聚合。这些服务,托管控制面组件301还可以提供面向用户的应用程序接口(Application Programming Interface,简称为API),以便较容易地操纵网络行为,以及向网格代理303和网格代理305提供配置数据等。
在上述运行环境下,本申请提供了如图4所示的任务的物化视图的处理方法。图4是根据本申请实施例1的任务的物化视图的处理方法的流程图。如图4所示,该方法可以包括如下步骤:
步骤S401,确定在对调度任务执行查询的过程中运行的待创建物化视图。
在上述步骤S401中,调度任务用于指示通过SQL语言、脚本语言、算法语言在ODPS平台上执行周期调度,可以确定在对调度任务执行查询的过程中运行的待创建物化视图,其中,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果。
在该实施例中,ODPS平台可以提供物化视图,该物化视图为基于历史运行的查询任务计算得到的,例如,可以基于历史运行的查询任务中的公共子查询任务所对应的计算结果,确定对调度任务执行查询的过程中运行的待创建物化视图。
举例而言,当日ODPS平台提供的物化视图可以基于昨日运行的查询SQL集合计算得到,例如,可以基于SQL集合中待执行的多个查询任务生成节点表标签的有向无环图,之后,计算多个查询任务所得图之间的公共子图,并基于该公共子图生成待创建的物化视图。
在该实施例中,物化视图用于表示对调度任务执行查询计算所得到的第一计算结果,基于此,在基于物化视图执行调度任务时,可以直接从物化视图中读取数据,避免进行耗时的操作,从而达到快速得到查询结果的目的。
步骤S402,创建标识信息,其中,标识信息至少用于表示物化视图与第一计算结果之间的逻辑关系信息。
在上述步骤S402中,在确定出对调度任务执行查询的过程中运行的待创建物化视图之后,由于物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果,基于此,可以为待创建物化视图创建标识信息,其中,标识信息至少用于表示物化视图与第一计算结果之间的逻辑关系信息。
在该实施例中,物化视图是基于历史运行的查询任务中的公共子查询的计算结果得到的,由于计算过程为启发式计算,因此,物化视图无法返回精确的计算结果,也即,平台提供的物化视图即便在相同的查询SQL集合上也可能存在不同的计算结果,因此,可以对确定出的待创建物化视图创建标识信息,基于该标识信息可以确定出该物化视图是否出现过,其中,该标识信息可以为物化视图指纹,例如,SQL指纹或身份标识(Identitydocument,简称为ID)。
举例而言,该实施例可以通过以下步骤生成物化视图指纹。
第一步,先利用通用的SQL解析工具对SQL集合进行解析,得到抽象语法树(Abstract Syntax Tree,简称为AST),该抽象语法树可以结构化、层次化的描述SQL的结构和执行过程。
第二步,初始化上下文(Context),设置默认项目空间,初始化继承缓存区、当前缓存区、全局缓存区。
第三步,将SQL的抽象语法树理解为一个有向无环图,并从该抽象语法树的根节点开始,向下遍历,获取所有物理表的名称,通过物理表名称获取物理表的所有字段,将数据存储全局缓存区中。
第四步,删除SQL引用的物理表中未参与最外层select字段加工的字段。通常一个SQL引用的物理表的字段可能随时间发生变化,该变化可以为增多字段,或者减少字段。由于物化视图可能存在引用的物理字段,并不参与最外层任何select字段的加工,在这种情况下,该类字段的增多和减少,并不影响SQL的计算结果,因此,可以删除该类字段,以防止在生产标识信息的过程中造成影响。其中,在删除该类字段时,可以利用最简单深度优先搜索算法搜索SQL所引用的物理表中的各个物理字段是否到达最外层的Select字段,如果某个物理字段没有到达最外层的select字段,则将该字段删除。
第五步,一个SQL选择出来的字段,其先后顺序不会影响物化视图是否被下游命中,也不会影响计算的效率,因此,如果两个SQL仅仅是select字段的顺序的不同,则应该将两个SQL视为一个SQL,因此,可以利用select的逻辑字段名作为排序的依据,排序后构建新旧ID之间的映射关系,并进行全局替换。
第六步,从SQL的抽象语法树的根节点开始,利用宽度优先搜索进行访问,访问顺序取决于同层ID的字典序,一层访问结束,可以将该层的节点ID用中括号“[ ]”包裹,下层扩展节点用小括号“()”包裹,如果某个节点不存在下游节点,则可以用小括号“()”跟在该节点后,以表明该节点不存在下游节点。图5是根据本申请实施例的一种SQL的抽象语法树的示意图,以图5为例,序列结果可以表示为[A,(B,C)],[B,(E),C,(D,E)][D,(),E,()],其中,该序列结果对应的字典序为A>B>C>D>E。
第七步,可以将第六步中生成的序列结果,转换为一个自增ID,可以将该自增ID确定为物化视图对应的SQL指纹。
需要说明的是,SQL指纹具有以下特点,可以忽略常数差异带来的SQL差异,例如,常数节点的生成过程中,常数是一个节点,但是它的id和数值本身没有关系,数值为节点的一个属性,在“生成指纹的遍历过程”中,算法不会读取常数的属性。因此,SQL结构一致,但是数值属性不同的节点在指纹中是一个表达,因此,可以忽略常数差异带来的SQL差异;另外还可以忽略物理表字段变化带来的差异;还可以忽略select字段顺序或者条件语句顺序变化带来的差异。
步骤S403,获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度。
在上述步骤S403中,在生成待创建物化视图的标识信息之后,还可以获取待创建物化视图的标识信息与已创建的历史物化视图的标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到得二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息。
在该实施例中,可以基于待创建物化视图的标识信息确定待创建物化视图的SQL代码,并基于已创建的历史物化视图的标识信息确定已创建的历史物化视图的SQL代码,进而计算待创建物化视图的SQL代码与已创建的历史物化视图的SQL代码之间的相似度,并基于相似度进行视图创建。
步骤S404,基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。
在上述步骤S404中,在确定出待创建物化视图与已创建的历史物化视图之间的相似度之后,可以基于相似度进行视图创建,生成物化视图,或者调整历史物化视图的视图内容。
在该实施例中,可以基于待创建物化视图的标识信息确定待创建物化视图的SQL代码,并基于已创建的历史物化视图的标识信息确定已创建的历史物化视图的SQL代码,之后,将待创建物化视图的SQL代码与已创建历史物化视图的SQL代码进行比对,以确定两者之间的相似度,如果两种SQL代码在条件语句中的常数部分存在差异,则说明相似度较高,可以将待创建物化视图的代码与已创建物化视图的代码进行条件融合,以生成新的物化视图,否则,可以用待创建物化视图的代码代替已创建物化视图的代码,以得到新的物化视图。
可选地,也可以根据物化视图的历史运行时长,和运行时长的波动,重新估算待创建物化视图的最大运行时长,例如,可以使用长短期记忆网络(Long Short Term MemoryNetwork,简称为LSTM)算法预估待创建物化视图的最大运行时长,或者利用统计法计算均值来判断待创建物化视图的最大运行时长。在确定出待创建物化视图的最大运行时长之后,可以将该最大运行时长与已创建的历史物化视图的控制时长进行对比,当该待创建物化视图的最大运行时长不大于已创建的历史物化视图的控制时长是,可以利用该待创建的物化视图替换已创建的历史物化视图。
可选地,可以计算待创建物化视图的参数与已创建的历史物化视图的参数,并将计算出的参数进行对比,如果,待创建物化视图的参数相比与已创建的历史物化视图的参数发生变化,则可以基于待创建物化视图更新已创建的历史物化视图。
基于上述实施例步骤S401至步骤S404所公开的方案中,可以在调度任务使用物化视图进行优化计算时,考虑相似物化视图的处理逻辑,自动化创建和更新物化视图,从而避免逻辑高度相似的物化视图被频繁创建,存在额外存储,达到有效创建物化视图的技术效果,进而解决无法有效创建物化视图的技术问题。
下面对该实施例的上述方法进行进一步地介绍。
作为一种可选的实施方式,步骤S402,创建标识信息,包括:基于查询数据集的语法树,创建标识信息,其中,语法树用于表示查询数据集的数据结构和查询数据集用于对调度任务执行查询的过程。
在该实施例中,查询数据集为包含多个SQL查询语句的查询数据集,也即该查询数据集可以为SQL集合,可以获取查询数据集对应的语法树,该语法树为查询数据集对应的抽象语法树,且该语法树可以结构化、层次化描述一个SQL集合的结构和执行过程,因此,可以基于获取到的查询数据集的语法树创建标识信息,其中,该语法树用于表示查询数据集的数据结构和查询数据集用于对调度任务执行查询的过程,该标识信息可以为物化视图指纹,该物化视图指纹用于唯一标识一个物化视图。
举例而言,在获取查询数据集对应的语法树时,可以利用通用的SQL解析工具对SQL集合进行解析,进而得到SQL集合的抽象语法树。
举例而言,可以通过以下步骤生成物化视图指纹。
第一步,先利用通用的SQL解析工具对SQL集合进行解析,得到抽象语法树,该抽象语法树可以结构化、层次化的描述SQL的结构和执行过程。
第二步,初始化上下文(Context),设置默认项目空间,初始化继承缓存区、当前缓存区、全局缓存区。
第三步,将SQL的抽象语法树理解为一个有向无环图,并从该抽象语法树的根节点开始,向下遍历,获取所有物理表的名称,通过物理表名称获取物理表的所有字段,将数据存储全局缓存区中。
第四步,删除SQL引用的物理表中未参与最外层select字段加工的字段。通常一个SQL引用的物理表的字段可能随时间发生变化,该变化可以为增多字段,或者减少字段。由于物化视图可能存在引用的物理字段,并不参与最外层任何select字段的加工,在这种情况下,该类字段的增多和减少,并不影响SQL的计算结果,因此,可以删除该类字段,以防止在生产标识信息的过程中造成影响。其中,在删除该类字段时,可以利用最简单深度优先搜索算法搜索SQL所引用的物理表中的各个物理字段是否到达最外层的Select字段,如果某个物理字段没有到达最外层的select字段,则将该字段删除。
第五步,一个SQL选择出来的字段,其先后顺序不会影响物化视图是否被下游命中,也不会影响计算的效率,因此,如果两个SQL仅仅是select字段的顺序的不同,则应该将两个SQL视为一个SQL,因此,可以利用select的逻辑字段名作为排序的依据,排序后构建新旧ID之间的映射关系,并进行全局替换。
第六步,从SQL的抽象语法树的根节点开始,利用宽度优先搜索进行访问,访问顺序取决于同层ID的字典序,一层访问结束,可以将该层的节点ID用中括号“[ ]”包裹,下层扩展节点用小括号“()”包裹,如果某个节点不存在下游节点,则可以用小括号“()”跟在该节点后,以表明该节点不存在下游节点。图5是根据本申请实施例的一种SQL的抽象语法树的示意图,以图5为例,序列结果可以表示为[A,(B,C)],[B,(E),C,(D,E)][D,(),E,()],其中,该序列结果对应的字典序为A>B>C>D>E。
第七步,可以将第六步中生成的序列结果,转换为一个自增ID,可以将该自增ID确定为物化视图对应的SQL指纹。
需要说明的是,SQL指纹具有以下特点,可以忽略常数差异带来的SQL差异,例如,常数节点的生成过程中,常数是一个节点,但是它的id和数值本身没有关系,数值为节点的一个属性,在“生成指纹的遍历过程”中,算法不会读取常数的属性,因此,SQL结构一致,但是数值属性不同的节点在指纹中是一个表达,因此,可以忽略常数差异带来的SQL差异;另外还可以忽略物理表字段变化带来的差异;还可以忽略select字段顺序或者条件语句顺序变化带来的差异。
作为一种可选的实施方式,基于查询数据集创建标识信息,包括:将语法树转换为图结构,其中,图结构用于基于节点建立查询数据集中多个字段之间的关联关系;基于图结构创建标识信息。
在该实施例中,在获取到查询数据集的语法树之后,可以将语法树转换为图结构,并基于图结构创建标识信息,其中,该图结构用于基于节点建立查询数据集中多个字段之间的关联关系;多个字段包括物理字段和select字段。
举例而言,可以将SQL的语法树理解为一个有向无环图,并从该语法树的根节点开始,向下遍历,获取所有物理表的名称,通过物理表名称获取物理表的所有字段,将数据存储全局缓存区中。其中在向下遍历的过程中,节点之间的边关系取决于语法树中是否有层次关系,需要说明的是,条件语句指向逻辑运算的结果节点,而逻辑运算结果节点最终会指向group/where/having/join节点,由于group/where/having/join节点连接同层的select逻辑字段,用于表示某种过滤操作,基于此,当遍历完所有节点,可以得到一个从物理字段(引用表的字段)到最外层select字段别名的图结构。
作为一种可选的实施方式,基于图结构创建标识信息,包括:将图结构中的节点转换为节点序列;将节点序列生成标识信息。
在该实施例中,可以从SQL集合的抽象语法树的根节点开始,利用宽度优先搜索进行访问,访问顺序取决于同层ID的字典序,一层访问结束,可以将该层的节点ID用中括号“[ ]”包裹,下层扩展节点用小括号“()”包裹,如果某个节点不存在下游节点,则可以用小括号“()”跟在该节点后,以表明该节点不存在下游节点。如图5所示,节点序列结果可以表示为[A,(B,C)],[B,(E),C,(D,E)][D,(),E,()],其中,该节点序列结果对应的字典序为A>B>C>D>E。
在确定出节点序列之后,可以基于节点序列生成标识信息,其中,可以将节点序列转换为一个自增ID,可以将该自增ID确定为节点系列的标识信息。
作为一种可选的实施方式,基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容,包括:响应于相似度小于相似度阈值,至少基于标识信息进行视图创建,生成物化视图;响应于相似度不小于相似度阈值,至少基于历史标识信息调整历史物化视图的视图内容。
在该实施例中,可以基于待创建物化视图的标识信息确定待创建物化视图的SQL代码,并基于已创建的历史物化视图的标识信息确定已创建的历史物化视图的SQL代码,进而计算待创建物化视图的SQL代码与已创建的历史物化视图的SQL代码之间的相似度,并基于相似度进行视图创建,生成物化视图。
举例而言,在确定出待创建物化视图与已创建的历史物化视图之间的相似度之后,可以将该相似度与相似度阈值进行比较,其中,当响应于相似度小于相似度阈值,说明待创建物化视图与已创建的历史物化视图之间的相似度较小,基于此,可以基于待创建物化视图的标识信息进行视图创建,生成物化视图;反之,当响应于相似度不小于相似度阈值,则说明待创建物化视图与已创建的历史物化视图的相似度较高,在这种情况下,可以基于待创建物化视图对历史物化视图的视图内容进行调整,以使得物化视图满足当前的查询需求。
作为一种可选的实施方式,至少基于标识信息进行视图创建,生成物化视图,包括:基于标识信息、与物化视图的运行顺序需要关联的关联任务、物化视图需要的属性信息进行视图创建,生成物化视图。
在该实施例中,与物化视图的运行顺序需要关联的关联任务用于指示物化视图需要依赖的上下游节点,物化视图需要的属性信息用于指示物化视图的最大运行时长、物化视图的参数以及启动时间,基于此,在基于标识信息、与物化视图的运行顺序需要关联的关联任务、物化视图需要的属性信息进行视图创建,生成物化视图时,可以先通过SQL解析工具和元数据,得到待创建物化视图引用的物理表,以及物理表产出的任务节点,进而估算待创建物化视图的最大运行时长、物化视图的参数和启动时间。
举例而言,可以通过下述公式确定待创建物化视图的最大运行时长:
最大运行时长=历史均值*(1+历史最大波动率)*1.5
其中,历史均值用于表示历史物化视图的运行时长均值,历史最大波动率用于指示一个周期内运行时长的波动率,该历史最大波动率可以通过下述公式计算。
最大波动率=MAX{ABS(max_t–avg_t)/avg_t,ABS(min_t–avg_t)/avg_t}
其中,以7日/30日为一个周期观察,max_t和min_t分别表示这段时间内最大和最小运行时常,avg_t为其运行时长均值。
在确定出待创建物化视图的最大运行时长之后,可以进一步确定待创建物化视图的物化视图参数和启动时间。
举例而言,一个数据仓库的任务SQL会带有若干物化视图参数,比如,时间参数用于选取hive表的分区,由于ODPS平台提供的物化视图来源于执行计划,一般会将参数替换为常量。因此,可以根据物化视图指纹,寻找历史推荐的物化视图,如果查找到物化视图同一常量节点的数值变化符合时间参数规律,则将常数值进行替换。例如,可以判断SQLgraph合并的多日的常数值,进而确定常数值是否是随时间变化的日期参数,如果是,则在SQL文本上将“常数”替换为参数。例如,第一天获取到的SQL为Select*from table A wherecol1=“20220101”;第二天获取到的SQL为Select * from tableA where col1=“20220102”;由于常数为随时间变化的时间参数,因此,SQL的文本可以替换为Select *from tableA where col1=“${bizdate}”,${bizdate}被设置成ODPS的时间变量,在SQL运行时传入,可以启动时间针对物化删除节点,如果想要物化视图命中一些临时查询,可以延后物化删除节点的启动时间。
作为一种可选的实施方式,至少基于历史标识信息调整历史物化视图的视图内容,包括:响应于历史标识信息未处于第一黑名单中,调整历史物化视图的视图内容,其中,第一黑名单包括在对调度任务执行查询的过程中禁止运行的物化视图集的标识信息;或者,响应于与历史标识信息对应的历史物化视图的运行顺序关联的关联任务未处于第二黑名单中,调整历史物化视图的视图内容,其中,第二黑名单包括禁止与调度任务对应的历史物化视图集的运行顺序关联的关联任务集。
在该实施例中,历史标识信息可以为物化视图的指纹,在响应于历史标识信息未处于第一黑名单中,可以调整历史物化视图的视图内容,其中,第一黑名单包括在对调度任务执行查询的过程中禁止运行的物化视图的标识信息,其中,当物化视图的标识信息进入第一黑名单,则这个物化视图不能上线,且即便出现在之后的平台推荐的物化视图中也不会上线。
当响应于历史标识信息对应的历史物化视图的运行关联的关联任务未处于第二黑名单中,则调整历史物化视图的视图内容,其中,第二黑名单包括禁止与调度任务对应的历史物化视图集的运行顺序关联的关联任务集,例如,一些下游任务依赖。基于第二黑名单中存储的关联任务集,可以提升下游物化视图删除节点的执行效率。
作为一种可选的实施方式,调整历史物化视图的视图内容,包括:至少调整历史物化视图的历史运行时长,或者,调整与历史物化视图的运行顺序关联的关联任务。
在该实施例中,历史物化视图的属性信息包括SQL代码、历史运行时长、物化视图的参数等,因此,在调整历史物化视图的视图内容时,至少包括调整历史物化视图的历史运行时长来,或者,调整与历史物化视图的运行顺序关联的关联任务。其中,历史物化视图的历史运行时长可以通过历史运行数据进行修正。
在该实施例中,与历史物化视图的运行顺序关联的关联任务用于指示物化视图的任务依赖,因此,调整与历史物化视图的运行顺序关联的关联任务包括调整历史物化视图的任务依赖。
作为一种可选的实施方式,该方法还包括:获取在对调度任务执行查询的过程中运行历史物化视图所得到的历史运行数据;基于历史标识信息和历史运行数据确定历史物化视图未由多个下游任务引用,或者,运行历史物化视图所得到的收益指标低于收益指标阈值,将历史标识信息添加至第一黑名单,其中,历史标识信息用于标识历史运行数据,第一黑名单包括在对调度任务执行查询的过程中禁止运行的物化视图集的标识信息;或者,基于历史标识信息和历史运行数据确定历史物化视图未由多个下游任务中的部分下游任务引用,将部分下游任务添加至第二黑名单,其中,第二黑名单包括禁止与调度任务对应的历史物化视图集的运行顺序关联的关联任务集。
在该实施例中,历史运行数据可以为历史运行日志,基于此,可以获取对调度任务执行查询的过程中运行历史物化视图所得到的历史运行任务,并基于历史物化视图的历史标识信息和历史运行数据确定历史物化视图是否由多个下游任务引用,如果历史物化视图未被多个下游任务引用,可以将历史标识信息添加至第一黑名单,其中,历史标识信息用于标识历史运行数据,第一黑名单包括在对调度任务执行查询的过程中禁止运行的物化视图集的标识信息。
可选地,当运行历史物化视图所得到的收益指标低于收益指标阈值时,也可以将历史标识信息添加至第一黑名单中,例如,当一个历史物化视图被多个下游任务引用,可以确定多个下游任务读取物化视图的任务消耗,进而结合物化视图本身的消耗进行对比,假设物化视图消耗为X,下游n的任务读取物化视图的消耗为Y1、Y2、…、Yn,则物化视图的收益指标为(n-1)*X-SUM(Y-i) for i in[i,n]。在确定出物化视图的收益指标之后,可以将物化视图的收益指标与收益阈值进行对比,如果物化视图的收益指标低于收益指标阈值,则将历史标识信息添加至第一黑名单中。
可选地,还可以基于历史标识信息和历史运行数据确定历史物化视图未由多个下游任务中的部分下游任务引用,则将部分下游任务添加至第二黑名单中,其中,第二黑名单包括禁止与调度任务对应的历史物化视图集合运行顺序关联的关联任务集。
作为一种可选的实施方式,该方法还包括:响应于历史标识信息在第一黑名单中的时长大于时长阈值,从第一黑名单中释放历史标识信息;和/或,响应于历史物化视图的上游任务处于第一黑名单,从第一黑名单中释放历史标识信息。
在该实施例中,当某个历史标识信息满足释放条件时,可以将历史标识信息从第一黑名单中释放,例如,当响应于历史标识信息在第一黑名单中的时长大于时长阈值,则从第一黑名单中释放历史标识信息,和/或,当响应于历史物化视图的上游任务处于第一黑名单中,则从第一黑名单中释放历史标识信息,其中,该时长阈值可以基于历史物化视图的历史标识信息被添加至第一黑名单中的此时进行设置,此处不做具体限制。
举例而言,假设时长阈值为X个月,则如果一个历史标识信息进入第一黑名单超过X个月(时长阈值),并且平台依旧在推荐这个历史标识信息所标识的物化视图,那么该物化视图会从第一黑名单中释放,但是如果该历史标识信息再次进入第一黑名单,则相应的时长阈值可以调整为X+1个月。
再举例而言,由于物化视图的推荐属于随机推荐,且物化视图之间存在包含关系,也即,一个物化视图可以是另一个物化视图的子查询,例如,物化视图MV1包含于物化视图MV2,则说明物化视图MV1是物化视图MV2的一个子查询,则该物化视图MV1和物化视图MV2所覆盖的下游也存在包含关系,在这种情况下,如果两个物化视图同时在线,下游通常会选择其中的一个物化视图进行引用,假设下游均选择物化视图MV2进行引用,在这种情况下,当物化视图MV2的由于收益不达标下线后,物化视图MV1可以重新上线,但是物化视图MV2被引用后,物化视图MV1是不会被任何下游引用的。需要说明的是,物化视图越大,所需的计算代价越大,收益可能小于一些较小的物化视图。
作为一种可选的实施方式,该方法还包括:响应于生成的物化视图或调整后的历史物化视图运行结束,删除生成的物化视图或调整后的历史物化视图。
在该实施例中,当响应于生成的物化视图或调整后的历史物化视图运行结束,则说明该物化视图被下游节点使用完成,在这种情况下,可以删除该物化视图,以节省存储空间。
根据本申请实施例,从软件服务侧(Software-as-a-Service,简称为SaaS),还提供可一种任务的物化视图的处理方法。
图6是根据本申请实施例1的任务的物化视图的处理方法的流程图。如图6所示,该方法可以包括如下步骤:
步骤S601,通过调用第一接口获取目标请求。
在上述步骤S601中,用于执行任务的物化视图的处理方法的设备包括第一接口,第一接口包括第一参数,第一参数的参数值为目标请求,基于此,可以通过调用第一接口获取目标请求,其中,目标请求至少用于请求获取在对调度任务执行查询的过程中运行的待创建物化视图,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果。
步骤S602,创建标识信息。
在上述步骤S602中,由于目标请求至少用于请求获取在对调度任务执行查询的过程中运行的待创建物化视图,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果,基于此,在获取到目标请求之后,可以基于目标请求创建标识信息,其中,标识信息至少用于表示物化视图的与第一计算结果之间的逻辑关系信息。其中,创建标识信息的具体实现过程可以参考前述步骤S402的介绍,此处不再赘述。
步骤S603,获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度。
在上述步骤S603中,在创建待创建物化视图的标识信息之后,可以获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到的第二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息。
举例而言,可以基于待创建物化视图的标识信息确定待创建物化视图的SQL代码,并基于已创建的历史物化视图的标识信息确定已创建的历史物化视图的SQL代码,进而计算待创建物化视图的SQL代码与已创建的历史物化视图的SQL代码之间的相似度,并基于相似度进行视图创建。
步骤S604,基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。
在上述步骤S604中,在计算出待创建物化视图的标识信息与已创建的历史物化视图的标识信息之间的相似度之后,可以基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。
在该实施例中,在确定出待创建物化视图与已创建的历史物化视图之间的相似度之后,可以将该相似度与相似度阈值进行比较,其中,当响应于相似度小于相似度阈值,说明待创建物化视图与已创建的历史物化视图之间的相似度较小,基于此,可以基于待创建物化视图的标识信息进行视图创建,生成物化视图;反之,当响应于相似度不小于相似度阈值,则说明待创建物化视图与已创建的历史物化视图的相似度较高,在这种情况下,可以基于待创建物化视图对历史物化视图的视图内容进行调整,以使得物化视图满足当前的查询需求。
步骤S605,通过调用第二接口输出创建的物化视图,或者,调整后的历史物化视图。
在上述步骤S605中,用于执行任务的物化视图的处理方法的设备包括第二接口,通过调用第二接口输出创建的物化视图,或者,调整后的历史物化视图,其中,第二接口包括第二参数,第二参数的参数值为创建的物化视图,或者,调整后的历史物化视图。
基于上述实施例步骤S601至步骤S605所公开的方案中,通过调用第一接口获取目标请求,目标请求至少用于请求获取在对调度任务执行查询的过程中运行的待创建物化视图;获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容;通过调用第二接口输出创建的物化视图,或者,调整后的历史物化视图。也就是说,在本申请实施例中,可以在调度任务使用物化视图进行优化计算时,考虑相似物化视图的处理逻辑,自动化创建和更新物化视图,从而避免逻辑高度相似的物化视图被频繁创建,存在额外存储,达到有效创建物化视图的技术效果,进而解决无法有效创建物化视图的技术问题。
根据本申请实施例,还提供了一种任务的物化视图的处理系统。图7是根据本申请实施例的一种任务的物化视图的处理系统的示意图,如图7所示,该任务的物化视图的处理系统700包括:客户端701和服务器702,其中,客户端701与服务器702之间建立有通讯连接。
客户端701,用于发送目标请求,其中,目标请求至少用于请求获取在对调度任务执行查询的过程中运行的待创建物化视图,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果。
服务器702,用于创建标识信息,其中,标识信息至少用于表示物化视图的与第一计算结果之间的逻辑关系信息;获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到的第二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息;基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。
可选地,服务器702还用于获取在对调度任务执行查询的过程中运行创建的物化视图,或者运行更新后的历史物化视图,所得到的目标运行数据;基于目标运行数据确定创建的物化视图,或者更新后的历史物化视图的性能指标;响应于性能指标大于性能指标阈值,将创建的物化视图,或者更新后的历史物化视图发送至客户端。
下面结合优选实施方式对本申请实施例的技术方案进行进一步地举例介绍。
目前,计算平台推出了物化视图的概念,基于历史查询SQL和物理执行计划,当多个查询SQL含有相似的公共子查询时,会推荐一个可物化的公共子查询,该可物化的公共子查询用于指示模糊的公共子查询,也即,该子查询可能不存在于任何现有的SQL中。在公共子查询物化的前提下,相似的子查询将不再执行SQL逻辑,而是读取物化表中的数据,但是该物化视图需要用户自行挑选物化逻辑,之后,人工发布上线。此外,数据仓库中的表存在时间分区,物化视图要让下游命中,需等待自身的引用表数据产出才能进行创建,存在创建时间不可控,选择难,存在额外存储浪费的技术问题。
另外,由于每天计算所得的物化视图之间可能存在相似性,由于未考虑相似物化视图的处理逻辑,会出现逻辑高度相似的物化视图被频繁创建,从而提前预估收益困难,存在额外存储,错失更优的物化视图,导致无法有效创建物化视图的技术问题
然而,本申请实施例提供了一种任务的物化视图的处理方法。可以确定在对调度任务执行查询的过程中运行的待创建物化视图,其中,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果;创建标识信息,其中,标识信息至少用于表示物化视图与第一计算结果之间的逻辑关系信息;获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到的第二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息;基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。也就是说,在本申请实施例中,可以在调度任务使用物化视图进行优化计算时,考虑相似物化视图的处理逻辑,自动化创建和更新物化视图,从而避免逻辑高度相似的物化视图被频繁创建,存在额外存储,达到有效创建物化视图的技术效果,进而解决无法有效创建物化视图的技术问题。
下面对本申请实施例的任务的物化视图的处理方法进行进一步介绍。
任务的物化视图的处理包括物化视图的创建和物化视图的评估,图8是根据本申请实施例的一种物化视图的创建方法的流程图,如图8所示,该方法包括以下步骤:
步骤S801,获取若干查询SQL集合,及其对应的物化视图。
在上述步骤S801中,物化视图数据为若干查询SQL集合,一个集合对应一个物化视图,且一个查询SQL有其对应的数据仓局任务的ID。
步骤S802,创建物化视图的指纹。
在上述步骤S802中,当日平台提供的物化视图是基于昨日集群运行的查询SQL集合计算得到,由于计算过程为启发式计算,因此推荐的物化视图即便在一模一样的查询SQL集合上都会出现不同的结果,因此,可以为物化视图创建物化视图的指纹,该指纹可以作为保障和识别一个物化视图是否出现过的唯一凭证。
步骤S803,创建物化视图。
在上述步骤S803中,可以先确定物化视图需要依赖的上下游节点,通过SQL解析和元数据,可以得到物化视图引用的物理表S,以及物理表S的产出任务节点,可以将物理表S产出的多个任务节点汇总得到任务节点集合SN。通过上述步骤S801,可以获取到物化视图的来源查询SQL的计算任务节点,并将确定出的计算任务节点进行汇总,得到计算任务节点集合TN。
通过分析物化视图拟覆盖下游TN的历史运行时长,可以估算出物化视图的最大运行时长,其中,最大运行时长可以通过下述公式确定。
最大运行时长=历史均值*(1+历史最大波动率)*1.5
其中,历史均值用于指示历史物化视图的运行时长均值,历史最大波动率用于指示一个周期内运行时长的波动率,该历史最大波动率可以通过下述公式计算。
最大波动率=MAX{ABS(max_t–avg_t)/avg_t,ABS(min_t–avg_t)/avg_t}
其中,以7日/30日为一个周期观察,max_t和min_t分别表示这段时间内最大和最小运行时常,avg_t为其运行时长均值。
在确定出待创建物化视图的最大运行时长之后,可以进一步确定待创建物化视图的物化视图参数和启动时间。
举例而言,一个数据仓库的任务SQL会带有若干物化视图参数,比如,时间参数用于选取hive表的分区,由于平台提供的物化视图来源于执行计划,一般会将参数替换为常量。因此,可以根据物化视图指纹,寻找历史推荐的物化视图,如果查找到物化视图同一常量节点的数值变化符合时间参数规律,则将常数值进行替换。其中,时间参数有特定的格式,例如,yyyymmdd、yyyymmddhh和yyyymmddhhss,分别用于指示天、小时和分钟级别,时间参数变化规律用于指示多天指纹一致的公共子查询,如果同一常数节点中的数值呈现出时间参数格式,并且,数值按照“天”递增,则确定物化视图同一常量节点的数值变化符合时间参数规律。
再举例而言,可以判断SQL图合并的多日的常数值,进而确定常数值是否是随时间变化的日期参数,如果是,则在SQL文本上将“常数”替换为时间参数。例如,第一天获取到的SQL为Select * from tableA where col1=“20220101”;第二天获取到的SQL为Select *from tableA where col1=“20220102”;由于常数为随时间变化的时间参数,因此,SQL的文本可以替换为Select * from tableA where col1=“${bizdate}”,${bizdate}被设置成ODPS的时间变量,在SQL运行时传入,可以启动时间针对物化删除节点,如果想要物化视图命中一些临时查询,可以延后物化删除节点的启动时间。
可选地,还可以利用Shell脚本提交SQL任务,并监测任务报错情况,如失败,则自动重试一次,如任务超过最大运行时长,则设置任务重跑一次,最终以成功状态结束任务。
可选地,还可以创建针对物化视图参数和启动时间的物化视图删除节点,将物化视图控制节点上游依赖于任务节点集合SN,下游依赖于计算任务节点集合TN,图9是根据本申请实施例的一种节点示意图,如图9所示,创建物化视图的任务节点可以表示为csenode,物化视图删除节点可以表示为cse purge node,其中,该物化视图删除节点用于在物化视图想要覆盖的下游任务完成之后,删除物化视图以节省存储空间。
物化视图控制节点需要保障物化视图的运行不会影响到下游任务的产出,因此,需要控制运行时间和报错。即便视图没有创建成功,也需要顺利让下游运行。
步骤S804,更新物化视图。
在该实施例中,如果物化视图的指纹已经被创建过在线物化视图,且没有进入黑名单,则物化视图更新主要分成两个部分:更新物化视图自身,更新物化视图依赖,其中,更新物化视图自身主要包含以下三种情况。
第一种情况,如果当日计算的物化视图的SQL代码和线上物化视图的SQL代码不一致,比对代码是否是条件语句中常数部分的差异,如果是,可以做条件融合,否则,利用当日计算的物化视图的SQL代码替换线上物化视图的SQL代码。
第二种情况,根据物化视图的历史运行时长,和运行时长的波动,重新估算物化视图最大运行时长(可以使用LSTM等算法预估,也可以使用统计发计算均值来判断),并与线上物化视图的控制时长对比,如果物化视图的最大运行时长大于线上物化视图的控制时长,则可以利用物化视图替换线上物化视图,反之,则无需替换。
第三种情况,可以根据步骤S803重新计算物化视图的参数,如果计算得到的物化视图的参数发生变化,则可以更新线上物化视图,否则,不需要更新线上物化视图。
可选地,假设当日的物化视图为MV1,该物化视图的上游依赖为SN1,下游依赖为TN1,线上物化视图为MV,线上物化视图的上游依赖为SN,下游依赖为TN,则更新物化视图依赖包括以下步骤。
第一步,剔除黑名单关系。在物化视图的评估过程中,如果一个物化视图的下游,存在任务三天都没有引用某个物化视图,那么,该物化视图和该下游的依赖关系会被解除。为了防止该依赖关系在后续过程中再次被创建,则将该依赖关系加入到黑名单中,这样,在后续的物化视图和下游的关系计算中,需要提出这类“已经知道不会命中”的关系。
第二步,添加今日存在,但是线上不存在的关系。基于一天的任务的SQL计算得到的物化视图中,携带有该物化视图是从“哪些任务”的SQL计算得来的信息。这些任务构成了物化视图最初始的下游关系。由于前述介绍的物化视图是不稳定的,因此这个下游任务的集合会发生变化,所以会有今日存在但是之前不存在的下游关系,遇到这些关系,如果关系不在黑名单中,则需要将该关系添加至黑名单中。
第三步,删除今日不存在但之前存在的依赖关系。因为今日不存在但是之前存在的依赖关系,是在之前的物化视图计算过程中,包含了下游SQL任务。如果该下游任务引用了物化视图,那么可以认为“今日不存在的这个关系”是因为物化视图计算的不稳定带来的,否则,下游没有命中物化视图,因此,无论从“今天的物化视图上下游关系”角度,还是“黑名单关系”角度都需要删除该依赖关系。
下面对本申请实施例中创建物化视图指纹的步骤进行进一步介绍。
图10是根据本申请实施例中创建物化视图的指纹的方法的流程图,如图10所示,该方法包括以下步骤:
步骤S1001,利用SQL解析工具对查询SQL集合进行解析,得到抽象语法树。
在上述步骤S1001中,可以利用通用的SQL解析工具对SQL集合进行解析,得到抽象语法树,该抽象语法树可以结构化、层次化的描述SQL的结构和执行过程。
步骤S1002,遍历抽象语法树,生成SQL内部字段级血缘。
在上述步骤S1002中,可以将SQL的语法树理解为一个有向无环图,并从该语法树的根节点开始,向下遍历,获取所有物理表的名称,通过物理表名称获取物理表的所有字段,将数据存储全局缓存区中。其中在向下遍历的过程中,节点之间的边关系取决于语法树中是否有层次关系,需要说明的是,条件语句指向逻辑运算的结果节点,而逻辑运算结果节点最终会指向group/where/having/join节点,由于group/where/having/join节点连接同层的select逻辑字段,用于表示某种过滤操作,基于此,当遍历完所有节点,可以得到一个从物理字段(引用表的字段)到最外层select字段别名的图结构,其中,该图结构可以用于表示SQL内部字段级血缘。
步骤S1003,删除SQL引用的物理表中的特殊物理字段。
在上述步骤S1003中,可以删除SQL引用的物理表中未参与最外层select字段加工的字段。通常一个SQL引用的物理表的字段可能随时间发生变化,该变化可以为增多字段,或者减少字段。由于物化视图可能存在引用的物理字段,并不参与最外层任何select字段的加工,在这种情况下,该类字段的增多和减少,并不影响SQL的计算结果,因此,可以删除该类字段,以防止在生产标识信息的过程中造成影响。其中,在删除该类字段时,可以利用最简单深度优先搜索算法搜索SQL所引用的物理表中的各个物理字段是否到达最外层的Select字段,如果某个物理字段没有到达最外层的select字段,则将该字段删除。
步骤S1004,重排SQL图的过滤字段和select字段ID。
在上述步骤S1004中,一个SQL选择出来的字段,其先后顺序不会影响物化视图是否被下游命中,也不会影响计算的效率,因此,如果两个SQL仅仅是select字段的顺序的不同,则应该将两个SQL视为一个SQL,因此,可以利用select的逻辑字段名作为排序的依据,排序后构建新旧ID之间的映射关系,并进行全局替换。
此外,where条件和having条件都存在上述问题。不难发现,and/or前后条件交换并不会影响SQL。根据ODPS逻辑条件计算规则,从内而外以层次进行排序:同一层内,以or切割该层条件,然后对切割后的内部(均为and连接)先进行排序;对or连接部分进行排序。
步骤S1005,利用宽度有限算法遍历SQL图,生成带符号的序列结果。
在上述步骤S1005中,从SQL的抽象语法树的根节点开始,利用宽度优先搜索进行访问,访问顺序取决于同层ID的字典序,一层访问结束,可以将该层的节点ID用中括号“[ ]”包裹,下层扩展节点用小括号“()”包裹,如果某个节点不存在下游节点,则可以用小括号“()”跟在该节点后,以表明该节点不存在下游节点。如图5所示,序列结果可以表示为[A,(B,C)],[B,(E),C,(D,E)][D,(),E,()],其中,该序列结果对应的字典序为A>B>C>D>E。
步骤S1006,利用序列结果生成自增ID。
在上述步骤S1006中,可以将第六步中生成的序列结果,转换为一个自增ID,可以将该自增ID确定为物化视图对应的SQL指纹。
需要说明的是,SQL指纹具有以下特点,可以忽略常数差异带来的SQL差异,例如,常数节点的生成过程中,常数是一个节点,但是它的id和数值本身没有关系,数值为节点的一个属性,在“生成指纹的遍历过程”中,算法不会读取常数的属性,因此,SQL结构一致,但是数值属性不同的节点在指纹中是一个表达,因此,可以忽略常数差异带来的SQL差异;另外还可以忽略物理表字段变化带来的差异;还可以忽略select字段顺序或者条件语句顺序变化带来的差异。
下面对本申请实施例中物化视图的评估方法进行进一步介绍。
基于历史物化视图的运行情况,可以对创建的物化视图是否适合继续在线上运行进行评估。针对不适合继续在线上运行的物化视图进行下线,并将下线的物化视图的指纹添加至黑名单,以防止之后再次上线。因为黑名单的存在,还可以对黑名单的物化视图做重新评估,以释放出适合重新上线的物化视图指纹。
在该实施例中,包括两个永久黑名单,分别为指纹黑名单和依赖黑名单,其中,指纹黑名单用于存储下线的物化视图的指纹,需要说明的是,如果一个物化视图的指纹加入指纹黑名单,那么该物化视图不能上线,且即便出现在之后平台推荐的物化视图中也不会上线。
上述依赖黑名单用于存储禁止物化视图的下游依赖关系,基于依赖黑名单中存储的下游依赖关系,可以有效提升下游物化视图删除节点的执行效率。
在该实施例中,可以对物化视图的运行效果进行分析,其中,运行效果包括命中效果和收益,针对命中效果,可以通过元数据中执行计划替换结果来做判断。下游任务引用物理表替换成物化视图,则命中,否则不命中。如果一个物化视图其全部下游均不命中,则物化视图加入“指纹黑名单”,否则只将不命中的下游依赖加入“依赖黑名单”。
针对命中的任务,可以将其读取物化视图的任务消耗拿出来,与物化视图本身的消耗进行分析。假设物化视图消耗是X,下游n个任务读取物化视图的消耗为Y1,Y2,…,Yn,那么物化视图的收益为(n-1)*X–Sum(Y_i)for i in[1,n],如果收益是正,物化视图无需操作,否则将物化视图进行下线,并加入指纹黑名单。
下面对本申请实施例中黑名单释放机制进行进一步介绍。
在该实施例中,除指纹黑名单和依赖黑名单之外,还包括两个临时黑名单,其中,临时黑名单处理因为平台故障(例如,物化视图替换失败导致的报错),或者用户要求关闭物化视图等原因下线物化视图,则被下线的物化视图不会进入永久黑名单,在条件满足的情况下,该物化视图还会重新上线。
可选地,提供两种永久黑名单释放机制,分别为超时释放和依赖覆盖释放。
超时释放:针对永久“指纹黑名单”,如果一个物化视图指纹进入黑名单的时长超过X个月(变量值),并且平台依旧在推荐这个物化视图,那么该物化视图指纹会从黑名单中释放,但是,如果该物化视图指纹再次进入永久黑名单,则释放时间变成X+1个月。
依赖覆盖关系释放:由于物化视图的推荐是随机的,因此,物化视图之间本身存在包含关系(一个物化视图是另一个物化视图的子查询)。假设物化视图MV1包含于MV2(MV1是MV2的一个子查询),则物化视图能够覆盖的下游也存在包含关系。其中,图11是根据本申请实施例的一种物化视图的包含关系的示意图,如图11所示,如果两个视图同时在线,则下游通常选择其中一个进行命中。假设下游选择物化视图MV2命中,那么物化视图MV2收益不达标下线后,物化视图MV1是可以重新上线的,但是命中物化视图MV2后,物化视图MV1是不会被任何下游命中,因为一个物化视图越大,所需的计算代价越大,收益反而不如一下小的物化视图。
下面对本申请实施例中创建和评估物化视图的方法进行进一步介绍。
图12是根据本申请实施例的一种创建和评估物化视图的流程图,其中,该流程图包括以下步骤:
步骤S1201,获取若干查询SQL集合,及其对应的物化视图。
在该实施例中,上述步骤S1201的实现方式可以参考前述步骤S801介绍的方法,此处不再赘述。
步骤S1202,创建物化视图指纹。
在该实施例中,步骤S1202的实现方式可以参考前述步骤S802介绍的方法,此处不再赘述。
步骤S1203,确定创建的物化视图指纹是否为新指纹。
在该实施例中,可以将创建的物化视图指纹与已有的物化视图至今进行对比,进而确定该创建的物化视图指纹是否为新指纹,如果是,则执行步骤S1204,如果不是则执行步骤S1205。
步骤S1204,创建物化视图。
在该实施例中,步骤S1204的实现方式可以参考前述步骤S803介绍的方法,此处不再赘述。
步骤S1205,确定创建的物化视图指纹是否属于黑名单。
在该实施例中,可以将创建的物化视图的指纹与黑名单中的指纹进行对比,进而确定该创建的物化视图的指纹是否包含在黑名单中,如果该指纹不包含与黑名单,则执行步骤S1206。
步骤S1206,更新物化视图。
步骤S1207,根据历史运行物化视图分析效果。
在该实施例中,在生成物化视图之后,可以根据历史运行物化视图来评估生成的物化视图的效果,其中,该步骤S1207的具体实现方式可以参考前述对物化视图的运行效果进行分析的方法,此处不再赘述。
步骤S1208,将效果不佳的物化视图加入黑名单。
在该实施例中,可以将表现效果较差的物化视图添加至黑名单,其中,具体的实现方式可以参考介绍的将物化视图加入黑名单的方法,此处不再赘述。
步骤S1209,黑名单释放。
在该实施例中,当黑名单中的物化视图满足一定的条件,可以将该物化视图从黑名单中释放出来,其中,该步骤的具体实现方式可以参考前述介绍的黑名单释放的方法,此处不再赘述。
需要说明的是,上述序号仅仅为了描述,不代表实施例的优劣,在其他场景下,也可以采用其他顺序或者同时进行,此处不做具体限制。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例
根据本申请实施例,还提供了一种用于实施上述任务的物化视图的处理方法的任务的物化视图的处理装置,图13是根据本申请实施例的一种任务的物化视图的处理装置,如图13所示,该任务的物化视图的处理装置1300包括:确定单元1301、创建单元1302、获取单元1303和生成单元1304。
确定单元1301,用于确定在对调度任务执行查询的过程中运行的待创建物化视图,其中,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果.
创建单元1302,用于创建标识信息,其中,标识信息至少用于表示物化视图与第一计算结果之间的逻辑关系信息。
获取单元1303,用于获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到的第二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息。
生成单元1304,用于基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。
此处需要说明的是,上述确定单元1301、创建单元1302、获取单元1303、生成单元1304对应于实施例1中的步骤S401至步骤S404,四个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块或单元可以是存储在存储器(例如,存储器104)中并由一个或多个处理器(例如,处理器102a、102b,……,102n)处理的硬件组件或软件组件,上述模块也可以作为装置的一部分可以运行在实施例一提供的计算机终端10中。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
根据本申请实施例,还提供了一种用于实施上述任务的物化视图的处理方法的任务的物化视图的处理装置,图14是根据本申请实施例的一种任务的物化视图的处理装置,如图14所示,该任务的物化视图的处理装置1400包括:第一获取单元1401、创建单元1402、第二获取单元1403、生成单元1404、输出单元1405。
第一获取单元1401,用于通过调用第一接口获取目标请求,其中,第一接口包括第一参数,第一参数的参数值为目标请求,目标请求至少用于请求获取在对调度任务执行查询的过程中运行的待创建物化视图,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果。
创建单元1402,用于创建标识信息,其中,标识信息至少用于表示物化视图的与第一计算结果之间的逻辑关系信息。
第二获取单元1403,用于获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到的第二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息。
生成单元1404,用于基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。
输出单元1405,用于通过调用第二接口输出创建的物化视图,或者,调整后的历史物化视图,其中,第二接口包括第二参数,第二参数的参数值为创建的物化视图,或者,调整后的历史物化视图。
此处需要说明的是,上述第一获取单元1401、创建单元1402、第二获取单元1403、生成单元1404、输出单元1405对应于实施例1中的步骤S601至步骤S605,五个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块或单元可以是存储在存储器(例如,存储器104)中并由一个或多个处理器(例如,处理器102a、102b,……,102n)处理的硬件组件或软件组件,上述模块也可以作为装置的一部分可以运行在实施例一提供的计算机终端10中。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行任务的物化视图的处理方法中以下步骤的程序代码:确定在对调度任务执行查询的过程中运行的待创建物化视图,其中,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果;创建标识信息,其中,标识信息至少用于表示物化视图与第一计算结果之间的逻辑关系信息;获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到的第二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息;基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。
可选地,图15是根据本申请实施例的一种计算机终端的结构框图。如图15所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器1502、存储器1504、存储控制器、以及外设接口,其中,外设接口与射频模块、音频模块和显示器连接。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的任务的物化视图的处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的任务的物化视图的处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:基于查询数据集的语法树,创建标识信息,其中,语法树用于表示查询数据集的数据结构和查询数据集用于对调度任务执行查询的过程。
可选地,上述处理器还可以执行如下步骤的程序代码:将语法树转换为图结构,其中,图结构用于基于节点建立查询数据集中多个字段之间的关联关系;基于图结构创建标识信息。
可选的,上述处理器还可以执行如下步骤的程序代码:将语法树转换为图结构,其中,图结构用于基于节点建立查询数据集中多个字段之间的关联关系;基于图结构创建标识信息。
可选的,上述处理器还可以执行如下步骤的程序代码:将图结构中的节点转换为节点序列;将节点序列生成标识信息。
可选的,上述处理器还可以执行如下步骤的程序代码:响应于相似度小于相似度阈值,至少基于标识信息进行视图创建,生成物化视图;响应于相似度不小于相似度阈值,至少基于历史标识信息调整历史物化视图的视图内容。
可选的,上述处理器还可以执行如下步骤的程序代码:基于标识信息、与物化视图的运行顺序需要关联的关联任务、物化视图需要的属性信息进行视图创建,生成物化视图。
可选的,上述处理器还可以执行如下步骤的程序代码:响应于历史标识信息未处于第一黑名单中,调整历史物化视图的视图内容,其中,第一黑名单包括在对调度任务执行查询的过程中禁止运行的物化视图集的标识信息;或者,响应于与历史标识信息对应的历史物化视图的运行顺序关联的关联任务未处于第二黑名单中,调整历史物化视图的视图内容,其中,第二黑名单包括禁止与调度任务对应的历史物化视图集的运行顺序关联的关联任务集。
可选的,上述处理器还可以执行如下步骤的程序代码:至少调整历史物化视图的历史运行时长,或者,调整与历史物化视图的运行顺序关联的关联任务。
可选的,上述处理器还可以执行如下步骤的程序代码:获取在对调度任务执行查询的过程中运行历史物化视图所得到的历史运行数据;基于历史标识信息和历史运行数据确定历史物化视图未由多个下游任务引用,或者,运行历史物化视图所得到的收益指标低于收益指标阈值,将历史标识信息添加至第一黑名单,其中,历史标识信息用于标识历史运行数据,第一黑名单包括在对调度任务执行查询的过程中禁止运行的物化视图集的标识信息;或者,基于历史标识信息和历史运行数据确定历史物化视图未由多个下游任务中的部分下游任务引用,将部分下游任务添加至第二黑名单,其中,第二黑名单包括禁止与调度任务对应的历史物化视图集的运行顺序关联的关联任务集。
可选的,上述处理器还可以执行如下步骤的程序代码:响应于历史标识信息在第一黑名单中的时长大于时长阈值,从第一黑名单中释放历史标识信息;和/或,响应于历史物化视图的上游任务处于第一黑名单,从第一黑名单中释放历史标识信息。
可选的,上述处理器还可以执行如下步骤的程序代码:响应于生成的物化视图或调整后的历史物化视图运行结束,删除生成的物化视图或调整后的历史物化视图。
采用本申请实施例,提供了一种任务的物化视图的处理方案。可以在调度任务使用物化视图进行优化计算时,考虑相似物化视图的处理逻辑,自动化创建和更新物化视图,从而避免逻辑高度相似的物化视图被频繁创建,存在额外存储,达到有效创建物化视图的技术效果,进而解决无法有效创建物化视图的技术问题。
本领域普通技术人员可以理解,图所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,简称为MID)、PAD等终端设备。图15其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图15中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图15所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取器(Random Access Memory,简称为RAM)、磁盘或光盘等。
实施例
本申请的实施例还提供了一种计算机可读存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的任务的物化视图的处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定在对调度任务执行查询的过程中运行的待创建物化视图,其中,物化视图用于表示待对调度任务执行查询计算所得到的第一计算结果;创建标识信息,其中,标识信息至少用于表示物化视图与第一计算结果之间的逻辑关系信息;获取标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,历史物化视图用于表示已对调度任务执行查询计算所得到的第二计算结果,历史标识信息至少用于表示历史物化视图的与第二计算结果之间的逻辑关系信息;基于相似度进行视图创建,生成物化视图,或者,调整历史物化视图的视图内容。
可选地,在本实施例中,上述计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:基于查询数据集的语法树,创建标识信息,其中,语法树用于表示查询数据集的数据结构和查询数据集用于对调度任务执行查询的过程。
可选地,在本实施例中,上述计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:将语法树转换为图结构,其中,图结构用于基于节点建立查询数据集中多个字段之间的关联关系;基于图结构创建标识信息。
可选地,在本实施例中,上述计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:将语法树转换为图结构,其中,图结构用于基于节点建立查询数据集中多个字段之间的关联关系;基于图结构创建标识信息。
可选地,在本实施例中,上述计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:响应于相似度小于相似度阈值,至少基于标识信息进行视图创建,生成物化视图;响应于相似度不小于相似度阈值,至少基于历史标识信息调整历史物化视图的视图内容。
可选地,在本实施例中,上述计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:基于标识信息、与物化视图的运行顺序需要关联的关联任务、物化视图需要的属性信息进行视图创建,生成物化视图。
可选地,在本实施例中,上述计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:响应于历史标识信息未处于第一黑名单中,调整历史物化视图的视图内容,其中,第一黑名单包括在对调度任务执行查询的过程中禁止运行的物化视图集的标识信息;或者,响应于与历史标识信息对应的历史物化视图的运行顺序关联的关联任务未处于第二黑名单中,调整历史物化视图的视图内容,其中,第二黑名单包括禁止与调度任务对应的历史物化视图集的运行顺序关联的关联任务集。
可选地,在本实施例中,上述计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:至少调整历史物化视图的历史运行时长,或者,调整与历史物化视图的运行顺序关联的关联任务。
可选地,在本实施例中,上述计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:获取在对调度任务执行查询的过程中运行历史物化视图所得到的历史运行数据;基于历史标识信息和历史运行数据确定历史物化视图未由多个下游任务引用,或者,运行历史物化视图所得到的收益指标低于收益指标阈值,将历史标识信息添加至第一黑名单,其中,历史标识信息用于标识历史运行数据,第一黑名单包括在对调度任务执行查询的过程中禁止运行的物化视图集的标识信息;或者,基于历史标识信息和历史运行数据确定历史物化视图未由多个下游任务中的部分下游任务引用,将部分下游任务添加至第二黑名单,其中,第二黑名单包括禁止与调度任务对应的历史物化视图集的运行顺序关联的关联任务集。
可选地,在本实施例中,上述计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:响应于历史标识信息在第一黑名单中的时长大于时长阈值,从第一黑名单中释放历史标识信息;和/或,响应于历史物化视图的上游任务处于第一黑名单,从第一黑名单中释放历史标识信息。
可选地,在本实施例中,上述计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:响应于生成的物化视图或调整后的历史物化视图运行结束,删除生成的物化视图或调整后的历史物化视图。
采用本申请实施例,提供了一种任务的物化视图的处理方案。可以在调度任务使用物化视图进行优化计算时,考虑相似物化视图的处理逻辑,自动化创建和更新物化视图,从而避免逻辑高度相似的物化视图被频繁创建,存在额外存储,达到有效创建物化视图的技术效果,进而解决无法有效创建物化视图的技术问题。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (14)

1.一种任务的物化视图的处理方法,其特征在于,包括:
确定在对调度任务执行查询的过程中运行的待创建物化视图,其中,所述物化视图用于表示待对所述调度任务执行查询计算所得到的第一计算结果;
创建标识信息,其中,所述标识信息至少用于表示所述物化视图的与所述第一计算结果之间的逻辑关系信息;
获取所述标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,所述历史物化视图用于表示已对所述调度任务执行查询计算所得到的第二计算结果,所述历史标识信息至少用于表示所述历史物化视图的与所述第二计算结果之间的逻辑关系信息;
基于所述相似度进行视图创建,生成所述物化视图,或者,调整所述历史物化视图的视图内容;
其中,所述创建标识信息,包括:基于查询数据集的语法树,创建所述标识信息,其中,所述语法树用于表示所述查询数据集的数据结构和所述查询数据集用于对所述调度任务执行查询的过程。
2.根据权利要求1所述的方法,其特征在于,基于查询数据集创建所述标识信息,包括:
将所述语法树转换为图结构,其中,所述图结构用于基于节点建立所述查询数据集中多个字段之间的关联关系;
基于所述图结构创建所述标识信息。
3.根据权利要求2所述的方法,其特征在于,基于所述图结构创建所述标识信息,包括:
将所述图结构中的节点转换为节点序列;
将所述节点序列生成所述标识信息。
4.根据权利要求1所述的方法,其特征在于,基于所述相似度进行视图创建,生成所述物化视图,或者,调整所述历史物化视图的视图内容,包括:
响应于所述相似度小于所述相似度阈值,至少基于所述标识信息进行视图创建,生成所述物化视图;
响应于所述相似度不小于所述相似度阈值,至少基于所述历史标识信息调整所述历史物化视图的视图内容。
5.根据权利要求4所述的方法,其特征在于,至少基于所述标识信息进行视图创建,生成所述物化视图,包括:
基于所述标识信息、与所述物化视图的运行顺序需要关联的关联任务、所述物化视图需要的属性信息进行视图创建,生成所述物化视图。
6.根据权利要求4所述的方法,其特征在于,至少基于所述历史标识信息调整所述历史物化视图的视图内容,包括:
响应于所述历史标识信息未处于第一黑名单中,调整所述历史物化视图的视图内容,其中,所述第一黑名单包括在对所述调度任务执行查询的过程中禁止运行的物化视图集的标识信息;或者,
响应于与所述历史标识信息对应的所述历史物化视图的运行顺序关联的关联任务未处于第二黑名单中,调整所述历史物化视图的视图内容,其中,所述第二黑名单包括禁止与所述调度任务对应的历史物化视图集的运行顺序关联的关联任务集。
7.根据权利要求6所述的方法,其特征在于,调整所述历史物化视图的视图内容,包括:
至少调整所述历史物化视图的历史运行时长,或者,调整与所述历史物化视图的运行顺序关联的关联任务。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取在对所述调度任务执行查询的过程中运行所述历史物化视图所得到的历史运行数据;
基于所述历史标识信息和所述历史运行数据确定所述历史物化视图未由多个下游任务引用,或者,运行所述历史物化视图所得到的收益指标低于收益指标阈值,将所述历史标识信息添加至第一黑名单,其中,所述历史标识信息用于标识所述历史运行数据,所述第一黑名单包括在对所述调度任务执行查询的过程中禁止运行的物化视图集的标识信息;或者,
基于所述历史标识信息和所述历史运行数据确定所述历史物化视图未由所述多个下游任务中的部分下游任务引用,将所述部分下游任务添加至第二黑名单,其中,所述第二黑名单包括禁止与所述调度任务对应的历史物化视图集的运行顺序关联的关联任务集。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
响应于所述历史标识信息在所述第一黑名单中的时长大于时长阈值,从所述第一黑名单中释放所述历史标识信息;和/或,
响应于所述历史物化视图的上游任务处于所述第一黑名单,从所述第一黑名单中释放所述历史标识信息。
10.根据权利要求1至9中任意一项所述的方法,其特征在于,所述方法还包括:
响应于生成的所述物化视图或调整后的所述历史物化视图运行结束,删除生成的所述物化视图或调整后的所述历史物化视图。
11.一种任务的物化视图的处理方法,其特征在于,包括:
通过调用第一接口获取目标请求,其中,所述第一接口包括第一参数,所述第一参数的参数值为所述目标请求,所述目标请求至少用于请求获取在对调度任务执行查询的过程中运行的待创建物化视图,所述物化视图用于表示待对所述调度任务执行查询计算所得到的第一计算结果;
创建标识信息,其中,所述标识信息至少用于表示所述物化视图的与所述第一计算结果之间的逻辑关系信息;
获取所述标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,所述历史物化视图用于表示已对所述调度任务执行查询计算所得到的第二计算结果,所述历史标识信息至少用于表示所述历史物化视图的与所述第二计算结果之间的逻辑关系信息;
基于所述相似度进行视图创建,生成所述物化视图,或者,调整所述历史物化视图的视图内容;
通过调用第二接口输出创建的所述物化视图,或者,调整后的所述历史物化视图,其中,所述第二接口包括第二参数,所述第二参数的参数值为创建的所述物化视图,或者,调整后的所述历史物化视图;
其中,所述创建标识信息,包括:基于查询数据集的语法树,创建所述标识信息,其中,所述语法树用于表示所述查询数据集的数据结构和所述查询数据集用于对所述调度任务执行查询的过程。
12.一种任务的物化视图的处理系统,其特征在于,包括:
客户端,用于发送目标请求,其中,所述目标请求至少用于请求获取在对调度任务执行查询的过程中运行的待创建物化视图,所述物化视图用于表示待对所述调度任务执行查询计算所得到的第一计算结果;
服务器,用于创建标识信息,其中,所述标识信息至少用于表示所述物化视图的与所述第一计算结果之间的逻辑关系信息;获取所述标识信息与已创建的历史物化视图的历史标识信息之间的相似度,其中,所述历史物化视图用于表示已对所述调度任务执行查询计算所得到的第二计算结果,所述历史标识信息至少用于表示所述历史物化视图的与所述第二计算结果之间的逻辑关系信息;基于所述相似度进行视图创建,生成所述物化视图,或者,调整所述历史物化视图的视图内容;
其中,所述服务器用于通过以下步骤创建所述标识信息:基于查询数据集的语法树,创建所述标识信息,其中,所述语法树用于表示所述查询数据集的数据结构和所述查询数据集用于对所述调度任务执行查询的过程。
13.根据权利要求12所述的系统,其特征在于,所述服务器还用于获取在对所述调度任务执行查询的过程中运行创建的所述物化视图,或者运行更新后的所述历史物化视图,所得到的目标运行数据;基于所述目标运行数据确定创建的所述物化视图,或者更新后的所述历史物化视图的性能指标;响应于所述性能指标大于性能指标阈值,将创建的所述物化视图,或者更新后的所述历史物化视图发送至所述客户端。
14.一种电子设备,其特征在于,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至11中任意一项所述方法的步骤。
CN202310501468.8A 2023-04-27 2023-04-27 任务的物化视图的处理方法、系统和电子设备 Active CN116541377B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310501468.8A CN116541377B (zh) 2023-04-27 2023-04-27 任务的物化视图的处理方法、系统和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310501468.8A CN116541377B (zh) 2023-04-27 2023-04-27 任务的物化视图的处理方法、系统和电子设备

Publications (2)

Publication Number Publication Date
CN116541377A CN116541377A (zh) 2023-08-04
CN116541377B true CN116541377B (zh) 2024-05-14

Family

ID=87453692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310501468.8A Active CN116541377B (zh) 2023-04-27 2023-04-27 任务的物化视图的处理方法、系统和电子设备

Country Status (1)

Country Link
CN (1) CN116541377B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477524A (zh) * 2008-12-11 2009-07-08 金蝶软件(中国)有限公司 基于物化视图的系统性能优化方法及系统
CN110874367A (zh) * 2018-09-03 2020-03-10 阿里巴巴集团控股有限公司 结构化查询语言语句的可视化方法和装置
CN112286953A (zh) * 2020-09-25 2021-01-29 北京邮电大学 多维数据查询方法、装置和电子设备
WO2021114810A1 (zh) * 2020-05-29 2021-06-17 平安科技(深圳)有限公司 基于图结构的公文推荐方法、装置、计算机设备及介质
CN113986933A (zh) * 2021-09-03 2022-01-28 北京火山引擎科技有限公司 物化视图的创建方法、装置、存储介质及电子设备
CN114218263A (zh) * 2022-02-23 2022-03-22 浙江一山智慧医疗研究有限公司 物化视图的自动创建方法及基于物化视图的快速查询方法
CN115729961A (zh) * 2022-11-17 2023-03-03 中国农业银行股份有限公司 数据查询方法、装置、设备和计算机可读存储介质
CN115827663A (zh) * 2021-09-16 2023-03-21 华为技术有限公司 一种物化视图的方法以及相关设备
CN115934690A (zh) * 2022-11-17 2023-04-07 中国农业银行股份有限公司 数据清除方法和相关设备
CN115964182A (zh) * 2023-03-16 2023-04-14 阿里巴巴(中国)有限公司 资源的调度方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020057471A1 (en) * 2018-09-21 2020-03-26 Huawei Technologies Co., Ltd. Materialized views for database query optimization
US11308079B2 (en) * 2019-11-29 2022-04-19 Amazon Technologies, Inc. Maintaining data stream history for generating materialized views
US11921710B2 (en) * 2021-01-31 2024-03-05 Ab Initio Technology Llc Systems and methods for accessing data entities managed by a data processing system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477524A (zh) * 2008-12-11 2009-07-08 金蝶软件(中国)有限公司 基于物化视图的系统性能优化方法及系统
CN110874367A (zh) * 2018-09-03 2020-03-10 阿里巴巴集团控股有限公司 结构化查询语言语句的可视化方法和装置
WO2021114810A1 (zh) * 2020-05-29 2021-06-17 平安科技(深圳)有限公司 基于图结构的公文推荐方法、装置、计算机设备及介质
CN112286953A (zh) * 2020-09-25 2021-01-29 北京邮电大学 多维数据查询方法、装置和电子设备
CN113986933A (zh) * 2021-09-03 2022-01-28 北京火山引擎科技有限公司 物化视图的创建方法、装置、存储介质及电子设备
CN115827663A (zh) * 2021-09-16 2023-03-21 华为技术有限公司 一种物化视图的方法以及相关设备
CN114218263A (zh) * 2022-02-23 2022-03-22 浙江一山智慧医疗研究有限公司 物化视图的自动创建方法及基于物化视图的快速查询方法
CN115729961A (zh) * 2022-11-17 2023-03-03 中国农业银行股份有限公司 数据查询方法、装置、设备和计算机可读存储介质
CN115934690A (zh) * 2022-11-17 2023-04-07 中国农业银行股份有限公司 数据清除方法和相关设备
CN115964182A (zh) * 2023-03-16 2023-04-14 阿里巴巴(中国)有限公司 资源的调度方法和系统

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
" 基于查询聚类的物化视图动态选取策略研究";张江;《中国优秀硕士学位论文全文数据库(电子期刊)》(信息科技辑)(第2018第10期);I138-461 *
"达梦数据库物化视图的设计与实现";《中国优秀硕士学位论文全文数据库(电子期刊)》(信息科技辑)(第2009第5期);I138-744 *
"面向查询集覆盖的物化视图选择算法";郑凯;林南晖;索女中;;《小型微型计算机系统》;第第34卷卷(第2013第5期);1080-1084 *
VXMLR系统存储模式的自适应调整;周傲英, 胥正川, 郭志懋, 周水庚;计算机学报;20040412(第04期);全文 *
一种基于查询聚类的物化视图动态调整策略;冯霞;张江;左海超;;北京邮电大学学报;20180921(第04期);全文 *
基于查询和相对收益的物化视图选择算法;彭成;佟秋利;;计算机工程与设计;20130116(第01期);全文 *

Also Published As

Publication number Publication date
CN116541377A (zh) 2023-08-04

Similar Documents

Publication Publication Date Title
CN107644323B (zh) 一种面向业务流的智能审核系统
US9778967B2 (en) Sophisticated run-time system for graph processing
US10372492B2 (en) Job-processing systems and methods with inferred dependencies between jobs
US9639575B2 (en) Method and system for processing data queries
CN112905595A (zh) 一种数据查询方法、装置及计算机可读存储介质
CN106354729B (zh) 一种图数据处理方法、装置和系统
US10394805B2 (en) Database management for mobile devices
CN116508019A (zh) 用于数据库管理系统的基于学习的工作负载资源优化
CN111966692A (zh) 针对数据仓库的数据处理方法、介质、装置和计算设备
CN113420026B (zh) 数据库表结构变更方法、装置、设备及存储介质
CN115335821B (zh) 卸载统计收集
CN109213826A (zh) 数据处理方法和设备
CN114691658A (zh) 一种数据回溯方法、装置、电子设备及存储介质
US11526501B2 (en) Materialized views assistant
CN112506999B (zh) 基于云计算和人工智能的大数据挖掘方法及数字内容服务器
CN112860948A (zh) 基于多租户SaaS架构的元数据管理方法、系统及电子设备
CN116541377B (zh) 任务的物化视图的处理方法、系统和电子设备
CN115017185A (zh) 一种数据处理方法、装置及存储介质
CN112286895A (zh) 日志实时归因处理方法、装置和平台
JP7470769B1 (ja) クラウドのapiの変更を分析する方法
US20210286819A1 (en) Method and System for Operation Objects Discovery from Operation Data
CN115686583B (zh) 海量物联网设备升级方法、装置、电子设备和存储介质
US20240289337A1 (en) Techniques for managing storage and retention of time-series based event data
US20240248776A1 (en) Inventory management system for managing functions, resources and services of a telecommunications network
CN118132555A (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