CN116662414A - 数据处理方法、装置、设备、存储介质及程序产品 - Google Patents
数据处理方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN116662414A CN116662414A CN202310927561.5A CN202310927561A CN116662414A CN 116662414 A CN116662414 A CN 116662414A CN 202310927561 A CN202310927561 A CN 202310927561A CN 116662414 A CN116662414 A CN 116662414A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- layer
- query statement
- logic
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 238000004364 calculation method Methods 0.000 claims abstract description 163
- 238000012545 processing Methods 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000004590 computer program Methods 0.000 claims abstract description 14
- 230000007246 mechanism Effects 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 21
- 238000004458 analytical method Methods 0.000 description 13
- 238000007405 data analysis Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000010276 construction Methods 0.000 description 7
- 230000008520 organization Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 208000025174 PANDAS Diseases 0.000 description 2
- 208000021155 Paediatric autoimmune neuropsychiatric disorders associated with streptococcal infection Diseases 0.000 description 2
- 240000004718 Panda Species 0.000 description 2
- 235000016496 Panda oleosa Nutrition 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 235000004919 Ariocarpus fissuratus Nutrition 0.000 description 1
- 244000176187 Ariocarpus fissuratus Species 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- 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/24—Querying
- G06F16/245—Query processing
-
- 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/24—Querying
- G06F16/248—Presentation of query results
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- 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)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品;所述方法应用于数据仓库,所述数据仓库包括原始数据层以及虚拟数据应用层,所述虚拟数据应用层用于维护至少一个数据计算逻辑,所述原始数据层用于维护原始数据,方法包括:获取查询语句的计算逻辑标识;基于所述计算逻辑标识从所述虚拟数据应用层中查询对应所述查询语句的目标数据计算逻辑以及数据位置信息;从所述原始数据层获取对应所述数据位置信息的目标原始数据,并对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。通过本申请,能够提高数据仓库的计算效率并节约存储空间。
Description
技术领域
本申请涉及数据库技术,尤其涉及一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
数据仓库(Data Warehouse)是来自一个或多个不同源的集成数据的中央存储库,通过对数据仓库中的数据分析,可以帮助企业,改进业务流程,控制成本,提高产品质量等。数据仓库的两个主要功能包括存储分析数据和处理分析数据。
在大数据环境中,数据仓库的构建通常采用四层分层模型,在实现数据分析的过程中,为了更灵活的支撑上一层的数据复用,每一层都需要有数据逻辑组织、定时计算、落盘存储的过程,一旦其中一层发生数据错误,都要自底向上所有分层数据的重复计算,导致数据库的资源成本较高且处理效率较低。
发明内容
本申请实施例提供一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够提高数据仓库的计算效率并节约存储空间。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据处理方法,所述方法应用于数据仓库,所述数据仓库包括原始数据层以及虚拟数据应用层,所述虚拟数据应用层用于维护至少一个数据计算逻辑,所述原始数据层用于维护原始数据,所述方法包括:
获取查询语句的计算逻辑标识;
基于所述计算逻辑标识从所述虚拟数据应用层中查询对应所述查询语句的目标数据计算逻辑以及数据位置信息;
从所述原始数据层获取对应所述数据位置信息的目标原始数据,并对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。
本申请实施例提供一种数据处理装置,所述装置应用于数据仓库,所述数据仓库包括原始数据层以及虚拟数据应用层,所述虚拟数据应用层用于维护至少一个数据计算逻辑,所述原始数据层用于维护原始数据,所述装置包括:
获取模块,用于获取查询语句的计算逻辑标识;
查询模块,用于基于所述计算逻辑标识从所述虚拟数据应用层中查询对应所述查询语句的目标数据计算逻辑以及数据位置信息;
计算模块,用于从所述原始数据层获取对应所述数据位置信息的目标原始数据,并对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。
在上述方案中,所述获取模块,还用于:执行以下处理中任意一种:获取实时数据服务请求,从所述实时数据服务请求中提取实时查询语句,并获取与所述实时查询语句对应的计算逻辑标识;获取批数据服务请求,从所述批数据服务请求中提取离线查询语句,并获取与所述离线查询语句对应的计算逻辑标识。
在上述方案中,所述查询模块,还用于:当所述查询语句是实时查询语句时,通过所述虚拟数据应用层从元数据库中查询与所述计算逻辑标识匹配的目标数据计算逻辑以及实时数据的数据位置信息;当所述查询语句是批查询语句时,通过所述虚拟数据应用层从元数据库中查询与所述计算逻辑标识匹配的目标数据计算逻辑以及离线数据的数据位置信息;其中,所述元数据库以视图的形式存储有:与每个所述计算逻辑标识对应的数据计算逻辑以及数据位置信息。
在上述方案中,所述原始数据层部署有与每个应用场景匹配的数据计算引擎;所述计算模块,还用于:从所述原始数据层获取与所述查询语句所属的应用场景匹配的目标数据计算引擎;通过多个所述数据计算引擎中的目标数据计算引擎获取对应所述数据位置信息的目标原始数据,并针对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。
在上述方案中,所述计算模块,还用于:当所述查询语句是批查询语句时,将所述数据计算逻辑以及所述数据位置信息编译为离线批处理任务;将所述离线批处理任务提交至所述原始数据层,以从所述原始数据层获取对应所述数据位置信息的目标原始数据,并对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。
在上述方案中,所述计算模块,还用于:获取与业务方提供的异构数据匹配的数据协议;基于所述数据协议从所述业务方读取符合所述数据位置信息的目标异构数据,并从所述目标异构数据中获取对应所述数据位置信息的目标原始数据。
在上述方案中,所述计算模块,还用于:对来源于业务方的实时数据执行数据写入任务,以写入到所述原始数据层;从所述原始数据层读取符合所述数据位置信息的目标实时数据作为所述原始数据。
在上述方案中,所述计算模块,还用于:获取所述业务方的业务需求;基于与所述业务需求匹配的写入机制对所述实时数据执行数据写入任务,以写入到所述原始数据层的在线数据计算引擎;其中,所述写入机制包括以下至少之一:基于时间窗口的写入机制、基于数据规模的写入机制。
在上述方案中,所述计算模块,还用于:基于任一写入机制将所述实时数据写入到所述原始数据层的离线数据计算引擎;其中,所述写入机制包括以下至少之一:基于时间窗口的写入机制、基于数据规模的写入机制。
在上述方案中,所述计算模块,还用于:当所述查询语句不具有所述计算逻辑标识时,获取所述查询语句的订阅需求;从所述原始数据层执行对应所述订阅需求的查询处理,得到用于响应所述查询语句的查询结果。
本申请实施例提供一种电子设备,包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的数据处理方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,用于引起处理器执行时,实现本申请实施例提供的数据处理方法。
本申请实施例提供一种计算机程序产品,包括计算机可执行指令,所述计算机可执行指令被处理器执行时,实现本申请实施例提供的数据处理方法。
本申请实施例具有以下有益效果:
本申请实施例采取两层数据仓库结构,从而实现了简化的数据仓库结构,并且在本申请实施例提供的数据仓库中,可以直接在虚拟数据应用层中查询到数据计算逻辑以及数据位置信息,即虚拟数据应用层可以维护数据计算逻辑以及数据位置信息而非原始数据,从而可以节约数据仓库的存储空间占用,相应的本申请实施例是从原始数据层获取对应数据位置信息的目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果,实现了轻量化的数据计算,提高查询效率。
附图说明
图1是相关技术中的数据仓库的结构示意图;
图2是本申请实施例提供的数据处理***的结构示意图;
图3是本申请实施例提供的电子设备的结构示意图;
图4A是本申请实施例提供的数据处理方法的第一个流程示意图;
图4B是本申请实施例提供的数据处理方法的第二个流程示意图;
图4C是本申请实施例提供的数据处理方法的第三个流程示意图;
图4D是本申请实施例提供的数据处理方法的第四个流程示意图;
图5是本申请实施例提供的数据仓库的结构示意图;
图6是本申请实施例提供的计算机***的原理示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解, “一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)虚拟数据应用层(VADS,Virtual Application Data Service):具体指在数仓分层抽象设计实现过程中,直接以数据逻辑的虚拟视图形式存储数据计算逻辑,数据应用侧按照实际的业务需求按需提交视图形式的数据计算逻辑到引擎,以获取数据应用层需要的数据结果。
2)SmallSQL:是虚拟数据应用层中数据计算逻辑的一种表达形式,将数据处理逻辑通过短小清晰的SQL语句进行表达,并存储在元数据库中。
3)联机分析处理(OLAP,On-Line Analytical Processing):OLAP是数据仓库***的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
在大数据环境中,数据仓库的构建方案通常采用如图1所示的数据分层模型,将数据分析处理分为四层:第一层是原始数据层(ODS,Operational Data Store),第二层明细数据层(DWD,Data WareHouse Detail),第三层是汇总数据层(DWS,Data WarehouseSummary),第四层是数据应用层(ADS,Application Data Service)。这种设计,在实现数据分析的过程中,为了更灵活地支撑上一层数据复用,每层都需要有数据逻辑的组织、定时计算、落盘存储的过程,一旦其中一层发生数据错误,都要自底向上对所有分层数据的重复计算,导致计算成本比较高且计算效率比较低。
本申请实施例提供一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够提高数据仓库的计算效率并节约存储空间。
本申请实施例所提供的数据处理方法,可以由终端独自实现;也可以由终端和服务器协同实现,例如终端独自承担下文的数据处理方法,或者,终端向服务器发送查询语句,服务器根据接收的查询语句,执行数据处理方法,具体而言,获取查询语句的计算逻辑标识;基于计算逻辑标识从虚拟数据应用层中查询对应查询语句的目标数据计算逻辑以及数据位置信息,即虚拟数据应用层可以维护数据计算逻辑以及数据位置信息而非原始数据,从而可以节约数据仓库的存储空间占用;从原始数据层获取对应数据位置信息的目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果,实现了轻量化的数据计算,提高查询效率。
下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为笔记本电脑、平板电脑、台式计算机、机顶盒、移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备,车载设备)、智能手机、智能音箱、智能手表、智能电视、车载终端等各种类型的用户终端。下面,将说明电子设备实施为终端时示例性应用。
参见图2,图2是本申请实施例提供的实时数据处理***10的架构示意图,终端(示例性示出终端200)通过网络300连接服务器100,其中,网络300可以是广域网或者局域网,又或者是二者的组合。
在一些实施例中,以电子设备是终端为例,本申请实施例提供的数据处理方法可以由终端实现。例如,终端200本地执行本申请实施例提供的数据处理方法,终端200接收查询语句,并获取查询语句的计算逻辑标识;基于计算逻辑标识从虚拟数据应用层中查询对应查询语句的目标数据计算逻辑以及数据位置信息,即虚拟数据应用层可以维护数据计算逻辑以及数据位置信息而非原始数据,从而可以节约数据仓库的存储空间占用;从原始数据层获取对应数据位置信息的目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果,实现了轻量化的数据计算,提高查询效率。
在一些实施例中,本申请实施例提供的数据处理方法也可以由服务器和终端协同实现。例如,终端200接收查询语句,并向服务器100发送查询语句,服务器100获取查询语句的计算逻辑标识;基于计算逻辑标识从虚拟数据应用层中查询对应查询语句的目标数据计算逻辑以及数据位置信息,即虚拟数据应用层可以维护数据计算逻辑以及数据位置信息而非原始数据,从而可以节约数据仓库的存储空间占用;从原始数据层获取对应数据位置信息的目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果,实现了轻量化的数据计算,提高查询效率。
在一些实施例中,终端或服务器可以通过运行各种计算机可执行指令或计算机程序来实现本申请实施例提供的数据处理方法。举例来说,计算机可执行指令可以是微程序级的命令、机器指令或软件指令。计算机程序可以是操作***中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作***中安装才能运行的程序;也可以是嵌入至任意APP中的小程序,即只需要下载到浏览器环境中就可以运行的程序。总而言之,上述的计算机可执行指令可以是任意形式的指令,上述计算机程序可以是任意形式的应用程序、模块或插件。
在一些实施例中,服务器100可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,其中,云服务可以是实时数据处理服务,供终端进行调用。
在一些实施例中,多个服务器可组成为一区块链,而服务器100为区块链上的节点,区块链中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。其中,本申请实施例提供的数据处理方法所相关的数据(例如实时数据处理的逻辑)可保存于区块链上。
下面说明本申请实施例提供的用于实时数据处理的电子设备的结构,参见图3,图3是本申请实施例提供的用于实时数据处理的电子设备500的结构示意图。以电子设备500是终端为例说明,图3所示的用于实时数据处理的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线***540耦合在一起。可理解,总线***540用于实现这些组件之间的连接通信。总线***540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线***540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作***551,包括用于处理各种基本***服务和执行硬件相关任务的***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他电子设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的数据处理装置可以采用软件方式实现,本申请实施例提供的数据处理装置可以提供为各种软件实施例,包括应用程序、软件、软件模块、脚本或代码在内的各种形式。
图3示出了存储在存储器550中的数据处理装置555,其可以是程序和插件等形式的软件,并包括一系列的模块,包括获取模块5551、查询模块5552以及计算模块5553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
本申请实施例适用于在数据应用端点查询密集型的场景,例如在大数据集合中,选取某个或某类数据进行分析计算。下面首先介绍本申请实施例涉及的数据仓库构建方案。
数据仓库构建是大数据环境中,数据平台相关的数据***建设过程中非常重要的一环,高效的数据仓库构建模式,是上层数据平台***快速迭代研发以及***可用性的重要保障。本申请实施例提供一种面向异构大数据且针对实时数仓的数据处理方法,参见图5,在数据仓库的建设上,将数据仓库分为两层:第一层是原始数据层(下面简称ODS),第二层是虚拟数据应用层(下面简称VADS)。VADS是虚拟应用数据层,这里可以看做是DWD、DWS、ADS这三层数据逻辑的虚拟化组织,VADS不是捆绑集成的模式,这里是按需对计算模式进行输出,在整个过程中间不会进行落盘存储,即不额外存储DWD、DWS、ADS的分层数据。
本申请实施例抛弃相关技术中的四层数据仓库模型,采用ODS和VADS两层数仓建设的抽象设计,同时VADS层是基于业务视角的逻辑组织,按需触发数据分析计算。VADS层可以结合业务的数据分析需求场景,以主题模型来设计贴合实际业务的场景分析;将所有场景分析的计算,设计成SmallSQL来进行表达,以灵活适应业务侧的变更和迭代。
本申请实施例抽象出两层数仓模型的方法论,同时结合图6所示的计算机***原型支撑上层数据平台***中的数据计算内容。
首先介绍计算机***原型中涉及的各个部分。
1、数据源(Data Source):表示数据仓库***的数据来源,主要包括两种数据源,一种是异构数据源,一种是实时数据源;这两种数据源同时在***中进行兼容。
2、核心数据仓库***(DataWare House System):这是本申请实施例的核心***,该***模型支持本申请实施例提出的两层数仓建模的方法论。
3、统一数据服务***(Data Service):具有本申请实施例数仓***的对接接口,并提供两种数据服务的模式,一种是实时数据计算服务,一种是批处理数据计算模式。
下面首先介绍数据源,数据源包括异构数据以及实时数据流。
4、异构数据(Heterogeneous):在实际***落地的过程中,通常会获取其他***的接口数据、远程数据等非统一数据结构的数据,这类数据在本申请实施例中被抽象成异构数据,按异构数据类型来实现异构数据协议的支撑,这里的异构数据包括通过HTTP接口或SSH接口获取的JSON、CSV以及KV等格式的数据。
5、实时数据流(Streaming):是需要通过消息中间件实时对接到***中的实时数据流,这种类型的数据往往结合消息中间件兼容的数据协议,实现按行下发,只要支持内容的扩展即可。对这类数据的处理,很多开源***已经做到比较好的兼容如Starrocks、ClickHouse、Druid等即席OLAP引擎,都有很好的兼容性。实时数据流包括Binlog数据、Metric数据、Traces数据、Logs数据以及Reportor数据。
下面介绍核心数据仓库***,核心数据仓库***包括以下几个模块:
6、统一元数据库(Uni Meta Store):元数据库存储了该数据仓库***中的OLAP库、表、列信息,按统一的标准协议进行组织,通过统一元数据,对底层异构数据屏蔽,上层应用层统一通过库、表、列的结构表达,所有数据皆为“表”,基于表再做业务逻辑相关的数据表达。元数据库是上层SmallSQL执行过程中的核心依赖。
7、异构数据拉取和解析器(Data Fetcher):由于源端数据来源的多样性,在日常的数据业务支撑过程中,经常会碰到一些数据通过远程服务的模式提供,按需去访问拉取;该模块主要对远程服务拉取的数据进行统一支撑,DataFetcher模块会依据源端异构的数据协议进行扩展支撑,如JSON、CSV、KV等等,在该模块中都会实现相关的数据解析器;对异构数据的解析上,可以进行横向扩展,兼容一些非常见类型的数据格式类型。
8、实时数据消息队列管理器(Message Queue):实际上是消息中间件层,主要承担数据传输的作用,将数据通过消息的方式主动及时上报,这里上报是实时的,一般延迟非常小,基本上在毫秒级别。消息中间件的选型上,有Inlong、Kafka、RabbitMQ、RocketMQ等开源框架。
9、即席查询引擎数据写入模块(Sink Connector):即席查询引擎数据写入模块主要负责从MessageQueue里实时读取需求,然后写入到OLAP引擎中,目前不同的OLAP引擎,因为底层的存储协议、索引机制不同,写入的性能也会不同。一般情况下,实时消息完整写入引擎提供查询的过程中,会有30s左右的延迟,该模块依据数据的业务需求以及***稳定性的考量,灵活去选择按“时间间隔”、“数据量”的“攒批”机制来保障数据写入的时效性。
10、离线引擎数据写入模块(BatchSink):离线引擎写入模块通常是直接写入到HDFS这种分布式文件***中,离线写入模块采用攒批写的机制,提供按时间窗口、按数据规模等机制进行写入,以提高文件写入的效率。
11、异构数据计算引擎(Pandas):异构数据计算引擎,该引擎向下屏蔽远程数据协议的差异性,向上统一以“表”为对象提供给业务做分析计算。同时采用标准SQL作为数据分析计算语言进行支持。也就是说用户无需关注底层数据的获取方式,只需依据SmallSQL来对数据进行访问,如聚合等标准的SQL计算操作,在该引擎都能够支撑。
12、即席查询OLAP引擎(OLAP Online):在该***中,OLAP引擎是可扩展的,这里是一个多OLAP引擎协作的模式,这个机制主要是OLAP引擎结合场景的特性,有比较大的优势差异,比如Druid在时序数据分析场景性能优越,Clickhouse采用列存,在单表查询场景中有极大的性能优势,Starrocks比较适合高并发综合查询的场景。在实际的业务落地过程中,会依据业务场景、数据特性、以及OLAP引擎的发展,有不同的技术选型,选择一个或多个OLAP引擎,“异源异构”是当前大数据生态存在的客观事实,这里提出对多OLAP引擎的支持,同时也是在实际业务落地过程中的存在且要面对和解决的问题。
13、离线批处理计算引擎(OLAP Offline):批处理引擎,主要用于某些场景的批量数据订阅功能,该订阅功能,也是按需来触发,不需要从底向上的DWD、DWS的计算。按需来启动相关的计算任务,计算完成后,将数据通过订阅服务输出给到应用方。
14、虚拟数据应用层(VADS):VADS通过SmallSQL来完成对业务层数据需求逻辑的表达,同时以“视图”的模式将逻辑存储在元数据库中,在VADS层完成对数仓模型的组织,如按业务主题进行组织。在VADS层采用SmallSQL的机制,来对VADS层的虚拟视图进行表达。下面介绍SmallSQL的示例,具体地:
SELECT app_id //检索APP标识
instance_id, //检索实例标识
stage_id, //检索阶段标识
avg(input_records) as avg_input_records, //求输入记录的平均值
avg(input_size) as avg_input_size, //求输入尺寸的平均值
avg(shuffle_input_records) as avg_shuffle_input_records, //求混合输入记录的平均值
avg(shuffle_local_intput_size+shufle_remote_input_size) as avg_shuffle_input_size,l //求混合当地输入尺寸以及混合近期输入尺寸的平均值
avg(shuffle_output_records) as avg_shuffle_output_records, //求混合输出记录的平均值
avg(shuffle_output_size) as avg_shuffle_output_size, //求混合输出记录的平均值
avg(output_records) as avg_output_records,//求输出记录的平均值
avg(output_size) as avg_output_size, //求输出尺寸的平均值
min(start_time) as executor_min_start_time, //开始时间的最小值
max(start_time) as executor_max_start_time //开始时间的最大值
FROM spark_task //从启动任务中检索
WHERE thedate in ({currentDate})
and app_id in ({sparkInstanceId}) //限定检索范围的日期以及APP标识
GROUP BY app_id, //根据APP标识分组
instance_id, //根据实例标识分组
stage_id //根据阶段标识分组
该SmallSQL示例中,主要是在计算Spark作业阶段粒度的输入输出相关特征指标,如平均输入记录数、输入大小等。这种场景,直接依赖ODS层数据,建立逻辑视图,提供上层业务支撑。
15、数据即席计算执行器(SmallSQL Executor):该模块完成SmallSQL的向下兼容,将SmallSQL放到相应的更高效的执行引擎来计算执行。
16、数据批处理执行器(Batch Executor):批处理执行器,主要用于支撑上层业务侧需要批量获取规模比较大的数据用于支撑业务。每次计算,都是按需触发,该功能模块能支持单次或周期性的执行机制。
下面介绍统一数据服务***(Data Service)。
17、实时数据计算服务(Real Time Data Service):实时计算服务是本申请实施例的核心链路,可以提供数据延迟30秒以内的高查询率的查询服务。
18、批处理数据计算服务(Batch Data Subcriber):批处理模式,会将VADS层的数据计算逻辑,转化层批量数据计算模式,提交到批处理计算引擎进行数据计算,产出需要的数据结果。
19、实时模式(Realtime):实时服务子***,主要包含了从原始数据实时接入到OLAP、VADS、SmallSQL Executor,是本申请实施例的主要链路,该***90%以上的数据查询计算服务都会通过实时模式来进行支持。
20、批处理服务模式(Batch):批处理服务模式,是***的旁支链路,可以依据业务的诉求对该链路进行集成。
如前,本申请实施例提供的数据处理方法可以由各种类型的电子设备实施,例如终端、服务器,又或者是二者的结合。因此下文中不再重复说明各个步骤的执行主体。参见图4A,图4A是本申请实施例提供的数据处理方法的第一个流程示意图,方法应用于数据仓库,数据仓库包括原始数据层以及虚拟数据应用层,虚拟数据应用层用于维护至少一个数据计算逻辑,原始数据层用于维护原始数据,结合图4A示出的步骤进行说明。
在步骤101中,获取查询语句的计算逻辑标识。
作为示例,这里的查询语句是指用户所直接输入的查询语句,例如SELECT用于从表中选取数据,FROM用于指定要查询的表名称,ORDER BY用于将结果集按照指定的列进行排序。这里的查询语句还可以是响应于用户针对客户端的人机交互操作生成的查询语句。每个查询语句会对应有计算逻辑标识,这里查询语句和计算逻辑标识之间的关系是预先配置好的。
在一些实施例中,步骤101中获取查询语句的计算逻辑标识,可以通过以下任意一种技术方案实现:获取实时数据服务请求,从实时数据服务请求中提取实时查询语句,并获取与实时查询语句对应的计算逻辑标识;获取批数据服务请求,从批数据服务请求中提取离线查询语句,并获取与离线查询语句对应的计算逻辑标识。
作为示例,本申请实施例可以提供两种应用模式,一种是实时数据计算服务,一种是批处理数据计算服务。当获取来自于实时数据计算服务的实时数据服务请求时,采用实时数据计算服务的应用模式,实时数据服务请求可以指定要查询的数据计算逻辑的计算逻辑标识,这里的数据计算逻辑可以是SmallSQL或者是SQL,本申请实施例优先使用SmallSQL作为数据计算逻辑,原因在于SmallSQL的逻辑更加简洁清晰,后续可迭代性以及可维护性更高。当获取来自于批处理数据计算服务的批数据服务请求时,采用批处理数据计算服务的应用模式,批数据服务请求指定要查询的SmallSQL(数据计算逻辑)的计算逻辑标识。通过本申请实施例可以响应两种数据服务请求,从而向个人用户或企业提供更加全面的数据查询服务。
以公司业务查询***为例进行说明,这里的实时数据服务请求可以来自于用户的在线数据查询请求,实时数据服务实际上是流式计算,对时间窗口内的数据或者最近数据记录进行查询或处理,例如查询某个业务当前最新的利润均值,查询语句可以是对应“查询某个业务当前最新的的利润均值”这个查询请求的数据库查询语句,并获取与数据库查询语句对应的计算逻辑标识,这里的计算逻辑标识可以是数字标识或者字母标识。
继续以公司业务查询***为例进行说明,这里的批数据服务请求可以来自于用户的批数据查询请求,批数据服务请求是对大批量数据进行查询或者处理,例如查询某个业务在2021年度至2022年度的利润指标,查询语句可以是对应“查询某个业务在2021年度至2022年度的利润指标”这个查询请求的数据库查询语句,并获取与数据库查询语句对应的计算逻辑标识,这里的计算逻辑标识可以是数字标识或者字母标识。
在步骤102中,基于计算逻辑标识从虚拟数据应用层中查询对应查询语句的目标数据计算逻辑以及数据位置信息。
在一些实施例中,参见图4B,步骤102中基于计算逻辑标识从虚拟数据应用层中查询对应查询语句的目标数据计算逻辑以及数据位置信息,可以通过图4B示出的步骤1021至步骤1022实现。
在步骤1021中,当查询语句是实时查询语句时,通过虚拟数据应用层从元数据库中查询与计算逻辑标识匹配的目标数据计算逻辑以及实时数据的数据位置信息。
作为示例,下面以第一数据位置信息指代实时数据的数据位置信息,第一数据位置信息表征原始数据中实时查询语句涉及到的实时数据的存储位置。
为了响应于查询语句,需要获取特定的原始语句以及特定的数据计算逻辑,再基于特定的数据计算逻辑以及特定的原始语句进行计算,得到查询结果。这里的原始数据包括实时数据以及离线数据两种,实时数据来自于异构数据(数据源)以及实时数据流(数据源)中至少之一,虽然离线数据也来源于实时数据流,但是离线数据是一段时间以前接收到的实时数据流落盘存储的数据,即不具有时效性。
实时数据主要是指数据延迟小的数据,例如毫秒、秒、分钟级的延迟。例如,双十一统计每秒的订单数。
实时查询语句是对应实时数据服务请求的查询语句,当查询语句是实时查询语句时,表征需要获取的原始数据的类型是实时原始数据,因此这里从元数据库中查询得到的数据位置信息是第一数据位置信息,其中,所述第一数据位置信息表征原始数据中实时数据的存储位置。这里的实时数据与具体业务相关,例如是某个APP的后台实时数据。
继续以公司业务查询***为例进行说明,实时查询语句可以是对应“查询某个业务当前最新的的利润均值”这个查询请求的数据库查询语句,实时数据具体可以是公司业务后台实时更新的利润数值,第一数据位置信息可以是“公司业务后台实时更新的利润数值”在原始数据层中的存储位置,例如数据表的存储位置以及所在数据表的行号等等。
作为示例,参见图6,调用数据即席计算执行器,这里的数据即席计算执行器实际上是数据库组件,例如数据即席计算执行器可以是数据库组件SinkConnector,数据即席计算执行器依据SmallSQL的标识查询元数据库(这里数据计算逻辑存储在元数据库中)获取SmallSQL的具体内容以及数据位置信息。
在步骤1022中,当查询语句是批查询语句时,通过虚拟数据应用层从元数据库中查询与计算逻辑标识匹配的目标数据计算逻辑以及离线数据的数据位置信息。
作为示例,下面以第二数据位置信息指代离线数据的数据位置信息,第二数据位置信息表征原始数据中批查询语句涉及到的离线数据的存储位置。
作为示例,实时查询语句是对应实时数据服务请求的查询语句,批查询语句是对应批数据服务请求的查询语句。
离线数据一般是指一天前的历史数据,例如每天在凌晨12:00之后,处理前一天产生的数据,这里前一天所产生的数据即为离线数据。
作为示例,批查询语句是对应批数据服务请求的查询语句,当查询语句是批查询语句时,表征需要获取的原始数据的类型是离线的原始数据,因此这里从元数据库中查询得到的数据位置信息是第二数据位置信息,其中,所述第二数据位置信息表征原始数据中离线数据的存储位置。这里的离线数据与具体业务相关,例如是某个APP的后台离线数据。
继续以公司业务查询***为例进行说明,离线查询语句可以是对应“查询某个业务在2021年度至2022年度的利润指标”这个查询请求的数据库查询语句,离线数据具体可以是公司业务后台数据库存储的2021年度至2022年度与利润分析相关的所有原始数据,第二数据位置信息可以是“2021年度至2022年度与利润分析相关的所有原始数据”在原始数据层中的存储位置,例如数据表的存储位置以及所在数据表的行号等等。
作为示例,参见图6,调用数据批处理执行器,这里的数据批处理执行器实际上是数据库组件,例如数据批处理执行器可以是数据库组件BatchSink,数据批处理执行器依据SmallSQL的标识查询元数据库(这里数据计算逻辑存储在元数据库中)获取SmallSQL的具体内容以及离线数据的位置信息。
作为示例,元数据库以视图的形式存储有与每个计算逻辑标识对应的数据计算逻辑以及数据位置信息。元数据库存储了该数据仓库***中的OLAP库、表、列信息,按统一的标准协议进行组织,通过统一元数据,对原始数据层的异构数据屏蔽,虚拟数据应用层统一通过库、表、列的结构表达,所有数据皆为“表”,基于表再做业务逻辑相关的数据表达。元数据库是虚拟数据应用层维护的SmallSQL能够被执行的核心依赖。
在步骤103中,从原始数据层获取对应数据位置信息的目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果。
在一些实施例中,原始数据层部署有与每个应用场景匹配的数据计算引擎;参见图4C,步骤103中从原始数据层获取对应数据位置信息的目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果,可以通过图4C示出的步骤1031至本组1032实现。
在步骤1031中,从原始数据层获取与查询语句所属的应用场景匹配的目标数据计算引擎;
在步骤1032中,通过多个数据计算引擎中的目标数据计算引擎获取对应数据位置信息的目标原始数据,并针对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果。
作为示例,继续以公司业务查询***为例进行说明,例如需要查询不同时间的业务利润变化,查询语句所属的应用场景是时序数据分析场景,那么目标数据计算引擎是Druid引擎,由于数据位置信息可以表征数据存储位置,例如A表的第二行,通过Druid引擎从A表的第二行获取目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到查询结果,查询结果是业务利润变化的分析结果。
作为示例,数据计算引擎可以是OLAP引擎,OLAP引擎是可扩展的,本申请实施例中的数据计算引擎的工作模式可以为多个OLAP引擎协作处理的模式,利用OLAP引擎结合场景的特性,获取与所述数据位置信息相对应的目标原始数据。例如,所述多个OLAP引擎包括Druid引擎、Clickhouse引擎和Starrocks引擎,其中,Druid引擎在时序数据分析场景性能优越,Clickhouse引擎采用列存在单表查询场景中有极大的性能优势,Starrocks引擎比较适合高并发综合查询的场景,通过这三种引擎在不同场景中的优势,可以适配到不同的业务场景,从而可以更高效的获取到目标原始数据。
再例如,针对实时数据计算服务,参见图6,数据即席计算执行器依据从元数据库获取的信息,提交到对应的即席查询OLAP引擎,执行SmallSQL查询数据,然后返回到实时数据计算服务,提供给调用方,这里的调用方是发起实时数据计算服务请求的一端,以公司业务查询***为例进行说明,这里的调用方可以是公司业务查询***的后台服务器,或者是公司业务查询***的前端APP。
在一些实施例中,参见图4D,步骤103中从原始数据层获取对应数据位置信息的目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果,可以通过图4D示出的步骤1033至步骤1034实现。
在步骤1033中,当查询语句是批查询语句时,将数据计算逻辑以及数据位置信息编译为离线批处理任务。
在步骤1034中,将离线批处理任务提交至原始数据层,以从原始数据层获取对应数据位置信息的目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果。
作为示例,针对批量订阅服务,即查询语句是批查询语句的情况下,数据批处理执行器编译成离线批处理任务,提交到对应的离线批处理计算引擎,执行SmallSQL查询数据(这里的数据查询是异步任务),然后运行完后返回到批处理数据计算服务,提供给调用方,这里的调用方是发起批量订阅服务请求的一端,以公司业务查询***为例进行说明,这里的调用方可以是公司业务查询***的后台服务器,或者是公司业务查询***的前端APP。通过本申请实施例提出应对批查询语句的查询方案,即通过离线编译的方式,减轻实时计算资源的占用,有效提高实时数据的查询效率。
在一些实施例中,步骤103中从原始数据层获取对应数据位置信息的目标原始数据,可以通过以下技术方案实现:获取与业务方提供的异构数据匹配的数据协议;基于数据协议从业务方读取符合数据位置信息的目标异构数据,并从目标异构数据中获取对应数据位置信息的目标原始数据,这里的业务方指的是数据来源方。
作为示例,当数据来源是异构数据时,业务方提供相应的数据访问接口,并将数据访问接口注册到元数据库中(数据访问接口可以表征数据位置信息),在数据使用时,通过异构数据拉取和解析器实现数据读取。具体而言,获取其他***的接口数据、远程数据等非统一数据结构的数据,这类数据在本申请实施例中被抽象成异构数据。由于异构数据的数据来源具有多样性,因此需要数据仓库***对远程服务拉取的异构数据进行统一支撑,异构数据拉取和解析器会依据数据源中异构数据的数据协议进行扩展支撑(即支持不同格式的数据),如JSON、CSV、KV等等,对异构数据的解析上,可以进行横向扩展,兼容非常见的数据格式类型。
在一些实施例中,步骤103中从原始数据层获取对应数据位置信息的目标原始数据,可以通过以下技术方案实现:对来源于业务方的实时数据执行数据写入任务,以写入到原始数据层;从原始数据层读取符合数据位置信息的目标实时数据作为原始数据。
作为示例,当数据来源是实时数据时,采取数据主动写入OLAP引擎的模式,通过数据采集程序,将实时数据上报到消息中间件(实时数据消息队列管理器)中,进而写入到对应的OLAP引擎中,完成实时数据(作为原始数据)写入,再通过原始数据层按照需求读取符合数据位置信息的目标实时数据作为原始数据。
在一些实施例中,上述对来源于业务方的实时数据执行数据写入任务,以写入到原始数据层,可以通过以下技术方案实现:获取业务方的业务需求;基于与业务需求匹配的写入机制对实时数据执行数据写入任务,以写入到原始数据层的在线数据计算引擎;其中,写入机制包括以下至少之一:基于时间窗口的写入机制、基于数据规模的写入机制。
作为示例,这里的写入任务是通过图6示出的即席查询引擎数据写入模块实现的,即席查询引擎数据写入模块负责从实时数据消息队列管理器里实时读取需求,然后写入到OLAP引擎中,针对不同的OLAP引擎,因为底层的存储协议、索引机制不同,写入的性能也会不同。实时数据完整写入OLAP引擎提供的查询的过程中,会有30s左右的延迟,该即席查询引擎数据写入模块依据数据的业务需求以及***稳定性的考量,灵活去选择按“时间间隔”、“数据量”的“攒批”机制来保障数据写入的时效性。
在一些实施例中,上述对来源于业务方的实时数据执行数据写入任务,以写入到原始数据层,可以通过以下技术方案实现:基于任一写入机制将实时数据写入到原始数据层的离线数据计算引擎;其中,写入机制包括以下至少之一:基于时间窗口的写入机制、基于数据规模的写入机制。
作为示例,这里的写入任务是通过图6示出的离线引擎写入模块实现的,离线引擎写入模块通常是直接写入到HDFS这种分布式文件***中,离线写入模块采用攒批写的机制,提供按时间窗口、按数据规模等机制进行写入,以提高文件写入的效率。
在一些实施例中,当查询语句不具有计算逻辑标识时,获取查询语句的订阅需求;从原始数据层执行对应订阅需求的查询处理,得到用于响应查询语句的查询结果。
作为示例,当查询语句不具有对应的计算逻辑标识时,会调用图6示出的批处理引擎进行处理,批处理引擎主要用于某些场景的批量数据订阅功能,订阅功能也是按需来触发,按需来启动相关的计算任务,计算完成后,将数据通过订阅服务输出给到应用方。
本申请实施例采取两层数据仓库结构,从而实现了简化的数据仓库结构,并且在本申请实施例提供的数据仓库中,可以直接在虚拟数据应用层中查询到数据计算逻辑以及数据位置信息,即虚拟数据应用层可以维护数据计算逻辑以及数据位置信息而非原始数据,从而可以节约数据仓库的存储空间占用,相应的本申请实施例是从原始数据层获取对应数据位置信息的目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果,实现了轻量化的数据计算,提高查询效率。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
在一些实施例中,响应于针对客户端的操作,终端接收查询语句,并向服务器发送查询语句,服务器获取查询语句的计算逻辑标识;基于计算逻辑标识从虚拟数据应用层中查询对应查询语句的目标数据计算逻辑以及数据位置信息,即虚拟数据应用层可以维护数据计算逻辑以及数据位置信息而非原始数据,从而可以节约数据仓库的存储空间占用;从原始数据层获取对应数据位置信息的目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果,实现了轻量化的数据计算,提高查询效率。
由于实时技术的进步,很多数据分析场景已经全面进入了“准实时”阶段,上层业务的变更更加频发,响应速度上要求更高;这里提出的两层数仓模型,第一层是原始数据层(ODS),第二层是虚拟应用层数据层(VADS);这里只将原始数据存储入库,VADS层只存储数据分析的业务逻辑,业务逻辑可以依据上层业务需求及时调整和变更,然后按需来提交给“数仓”引擎进行计算,给出结果。
下面来介绍本申请实施例提供的两种应用服务,一种是实时数据计算服务,一种是批处理数据计算服务。
实时数据计算服务的模块应用顺序如下:通过实时数据计算服务指定要查询的SmallSQL的标识,调用数据即席计算执行器,数据即席计算执行器依据SmallSQL的标识查询元数据库(这里数据计算逻辑存储在元数据库中)获取SmallSQL的具体内容以及数据位置信息,然后数据即席计算执行器依据从元数据库获取的信息,提交到对应的即席查询OLAP引擎,执行SmallSQL查询数据,然后返回到实时数据计算服务,提供给调用方。
批量订阅服务的模块应用顺序如下:通过批处理数据计算服务指定要查询的SmallSQL的标识,调用数据批处理执行器,数据批处理执行器依据SmallSQL的标识查询元数据库(这里数据计算逻辑存储在元数据库中)获取SmallSQL的具体内容以及离线数据的位置信息,然后数据批处理执行器编译成离线批处理任务,提交到对应的离线批处理计算引擎,执行SmallSQL查询数据(这里的数据查询是异步任务),然后运行完后返回到批处理数据计算服务,提供给调用方。
最后介绍本申请实施例提供的数据上报过程支持两种模式,一种是支持异构数据的主动获取方式(异构数据),另一种是数据采集程序上报(实时数据)。第一种模式是异构数据主动获取的方式,业务方提供相应的数据访问接口(异构数据),并注册到元数据库中,在数据使用时,通过异构数据拉取和解析器提供数据读取。第二种模式是数据主动写入OLAP引擎的模式,通过数据采集程序(实时数据),将数据上报到消息中间件(实时数据消息队列管理器)中,再通过即席查询引擎数据写入模块以及离线引擎数据写入模块形成数据写入任务,写入到对应的OLAP引擎中,完成数据写入。
本申请实施例作为底层数仓***的基础,去除了繁杂的DWD、DWS的数据处理,直接采用VADS的数据分层设计,将数据逻辑通过SmallSQL的方式,建立起VADS虚拟数据应用层,按需支撑上层业务数据、特征数据的计算,输出业务分析结果和各种指标数据,同时包括特征数据,大幅度节省了DWD、DWS数仓层的研发成本和维护成本。
通过本申请实施例简化数据分层与数据处理链路,将数据处理逻辑和计算框架分离,提高数据逻辑的研发和维护效率。
具体而言,VADS层不存储实际的数据,计算结果不实际的落盘存储,只维护数据的计算逻辑,将计算逻辑以SmallSQL的组织形式,存储在元数据库中,通过数据即席计算执行器和数据批处理执行器完成对底层OLAP引擎的适配和逻辑转换,依据需求提供即席查询计算,将结果输出给数据应用方。
通过本申请实施例减少额外的数据存储和额外的计算开销,由数据应用层,按需来进行数据计算和聚合,同时保证数据时效性。
具体而言,由于VADS层的计算数据不落盘存储,只有计算逻辑存储在元数据库中,这里的存储空间是非常小的,基本上可以忽略不记,这里不像传统的数仓分层模型那样,会将每一层的数据结果存储在固定的数据存储设备中,占用大量存储空间;由于轻量级的按需计算,在OLAP引擎中,SmallSQL的执行性能好,能达到秒级响应。
本申请实施例能够很好的解决多存储和异构数据问题,通过对数据处理进行统一抽象,上层通过SmallSQL清晰表达出计算逻辑,底层实现SQL的Scan算子,兼容异构的数据聚合计算。
具体而言,通过数据即席计算执行器和数据批处理执行器,完成对底层OLAP引擎的统一适配和转换,做到多OLAP引擎的语法兼容,屏蔽了SQL层的语法差异性。同时针对一些异构数据源,如基于Http协议的json数据等,设计了Panda的数据处理引擎,将异构数据统一按“表”抽象,同时将元数据存储在元数据库中,提供统一的SmallSQL计算逻辑表达,并支持计算。
可以理解的是,在本申请实施例中,涉及到用户信息等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面继续说明本申请实施例提供的数据处理装置555的实施为软件模块的示例性结构,在一些实施例中,如图3所示,数据处理装置555应用于数据仓库,所述数据仓库包括原始数据层以及虚拟数据应用层,所述虚拟数据应用层用于维护至少一个数据计算逻辑,所述原始数据层用于维护原始数据,存储在存储器550的数据处理装置555中的软件模块可以包括:获取模块5551,用于获取查询语句的计算逻辑标识;查询模块5552,用于基于所述计算逻辑标识从所述虚拟数据应用层中查询对应所述查询语句的目标数据计算逻辑以及数据位置信息;计算模块5553,用于从所述原始数据层获取对应所述数据位置信息的目标原始数据,并对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。
在一些实施例中,所述获取模块5551,还用于执行以下处理中任意一种:获取实时数据服务请求,从所述实时数据服务请求中提取实时查询语句,并获取与所述实时查询语句对应的计算逻辑标识;获取批数据服务请求,从所述批数据服务请求中提取离线查询语句,并获取与所述离线查询语句对应的计算逻辑标识。
在一些实施例中,所述查询模块5552,还用于:当所述查询语句是实时查询语句时,通过所述虚拟数据应用层从元数据库中查询与所述计算逻辑标识匹配的目标数据计算逻辑以及实时数据的数据位置信息;当所述查询语句是批查询语句时,通过所述虚拟数据应用层从元数据库中查询与所述计算逻辑标识匹配的目标数据计算逻辑以及离线数据的数据位置信息;其中,所述元数据库以视图的形式存储有:与每个所述计算逻辑标识对应的数据计算逻辑以及数据位置信息。
在一些实施例中,所述原始数据层部署有与每个应用场景匹配的数据计算引擎;所述计算模块5553,还用于:从所述原始数据层获取与所述查询语句所属的应用场景匹配的目标数据计算引擎;通过多个所述数据计算引擎中的目标数据计算引擎获取对应所述数据位置信息的目标原始数据,并针对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。
在一些实施例中,所述计算模块5553,还用于:当所述查询语句是批查询语句时,将所述数据计算逻辑以及所述数据位置信息编译为离线批处理任务;将所述离线批处理任务提交至所述原始数据层,以从所述原始数据层获取对应所述数据位置信息的目标原始数据,并对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。
在一些实施例中,所述计算模块5553,还用于:获取与业务方提供的异构数据匹配的数据协议;基于所述数据协议从所述业务方读取符合所述数据位置信息的目标异构数据,并从所述目标异构数据中获取对应所述数据位置信息的目标原始数据。
在一些实施例中,所述计算模块5553,还用于:对来源于业务方的实时数据执行数据写入任务,以写入到所述原始数据层;从所述原始数据层读取符合所述数据位置信息的目标实时数据作为所述原始数据。
在一些实施例中,所述计算模块5553,还用于:获取所述业务方的业务需求;基于与所述业务需求匹配的写入机制对所述实时数据执行数据写入任务,以写入到所述原始数据层的在线数据计算引擎;其中,所述写入机制包括以下至少之一:基于时间窗口的写入机制、基于数据规模的写入机制。
在一些实施例中,所述计算模块5553,还用于:基于任一写入机制将所述实时数据写入到所述原始数据层的离线数据计算引擎;其中,所述写入机制包括以下至少之一:基于时间窗口的写入机制、基于数据规模的写入机制。
在一些实施例中,所述计算模块5553,还用于:当所述查询语句不具有所述计算逻辑标识时,获取所述查询语句的订阅需求;从所述原始数据层执行对应所述订阅需求的查询处理,得到用于响应所述查询语句的查询结果。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机程序或计算机可执行指令,处理器执行该计算机程序或计算机可执行指令,使得该电子设备执行本申请实施例上述的数据处理方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令或者计算机程序,当计算机可执行指令或者计算机程序被处理器执行时,将引起处理器执行本申请实施例提供的数据处理方法,例如,如图4A-图4D示出的数据处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
本申请实施例采取两层数据仓库结构,从而实现了简化的数据仓库结构,并且在本申请实施例提供的数据仓库中,可以直接在虚拟数据应用层中查询到数据计算逻辑以及数据位置信息,即虚拟数据应用层可以维护数据计算逻辑以及数据位置信息而非原始数据,从而可以节约数据仓库的存储空间占用,相应的本申请实施例是从原始数据层获取对应数据位置信息的目标原始数据,并对目标原始数据执行对应目标数据计算逻辑的数据计算处理,得到用于响应查询语句的查询结果,实现了轻量化的数据计算,提高查询效率。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (14)
1.一种数据处理方法,其特征在于,所述方法应用于数据仓库,所述数据仓库包括原始数据层以及虚拟数据应用层,所述虚拟数据应用层用于维护至少一个数据计算逻辑,所述原始数据层用于维护原始数据,所述方法包括:
获取查询语句的计算逻辑标识;
基于所述计算逻辑标识从所述虚拟数据应用层中查询对应所述查询语句的目标数据计算逻辑以及数据位置信息;
从所述原始数据层获取对应所述数据位置信息的目标原始数据,并对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。
2.根据权利要求1所述的方法,其特征在于,所述获取查询语句的计算逻辑标识,包括:
执行以下处理中任意一种:
获取实时数据服务请求,从所述实时数据服务请求中提取实时查询语句,并获取与所述实时查询语句对应的计算逻辑标识;
获取批数据服务请求,从所述批数据服务请求中提取离线查询语句,并获取与所述离线查询语句对应的计算逻辑标识。
3.根据权利要求1所述的方法,其特征在于,所述基于所述计算逻辑标识从所述虚拟数据应用层中查询对应所述查询语句的目标数据计算逻辑以及数据位置信息,包括:
当所述查询语句是实时查询语句时,通过所述虚拟数据应用层从元数据库中查询与所述计算逻辑标识匹配的目标数据计算逻辑以及实时数据的数据位置信息;
当所述查询语句是批查询语句时,通过所述虚拟数据应用层从元数据库中查询与所述计算逻辑标识匹配的目标数据计算逻辑以及离线数据的数据位置信息;
其中,所述元数据库以视图的形式存储有:与每个所述计算逻辑标识对应的数据计算逻辑以及数据位置信息。
4.根据权利要求1所述的方法,其特征在于,所述原始数据层部署有与每个应用场景匹配的数据计算引擎;
所述从所述原始数据层获取对应所述数据位置信息的目标原始数据,并对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果,包括:
从所述原始数据层获取与所述查询语句所属的应用场景匹配的目标数据计算引擎;
通过多个所述数据计算引擎中的目标数据计算引擎获取对应所述数据位置信息的目标原始数据,并针对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。
5.根据权利要求1所述的方法,其特征在于,所述从所述原始数据层获取对应所述数据位置信息的目标原始数据,并对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果,包括:
当所述查询语句是批查询语句时,将所述数据计算逻辑以及所述数据位置信息编译为离线批处理任务;
将所述离线批处理任务提交至所述原始数据层,以从所述原始数据层获取对应所述数据位置信息的目标原始数据,并对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。
6.根据权利要求1所述的方法,其特征在于,所述从所述原始数据层获取对应所述数据位置信息的目标原始数据,包括:
获取与业务方提供的异构数据匹配的数据协议;
基于所述数据协议从所述业务方读取符合所述数据位置信息的目标异构数据,并从所述目标异构数据中获取对应所述数据位置信息的目标原始数据。
7.根据权利要求1所述的方法,其特征在于,所述从所述原始数据层获取对应所述数据位置信息的目标原始数据,包括:
对来源于业务方的实时数据执行数据写入任务,以写入到所述原始数据层;
从所述原始数据层读取符合所述数据位置信息的目标实时数据作为所述原始数据。
8.根据权利要求7所述的方法,其特征在于,所述对来源于业务方的实时数据执行数据写入任务,以写入到所述原始数据层,包括:
获取所述业务方的业务需求;
基于与所述业务需求匹配的写入机制对所述实时数据执行数据写入任务,以写入到所述原始数据层的在线数据计算引擎;
其中,所述写入机制包括以下至少之一:基于时间窗口的写入机制、基于数据规模的写入机制。
9.根据权利要求7所述的方法,其特征在于,所述对来源于业务方的实时数据执行数据写入任务,以写入到所述原始数据层,包括:
基于任一写入机制将所述实时数据写入到所述原始数据层的离线数据计算引擎;
其中,所述写入机制包括以下至少之一:基于时间窗口的写入机制、基于数据规模的写入机制。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述方法还包括:
当所述查询语句不具有所述计算逻辑标识时,获取所述查询语句的订阅需求;
从所述原始数据层执行对应所述订阅需求的查询处理,得到用于响应所述查询语句的查询结果。
11.一种数据处理装置,其特征在于,所述装置应用于数据仓库,所述数据仓库包括原始数据层以及虚拟数据应用层,所述虚拟数据应用层用于维护至少一个数据计算逻辑,所述原始数据层用于维护原始数据,所述装置包括:
获取模块,用于获取查询语句的计算逻辑标识;
查询模块,用于基于所述计算逻辑标识从所述虚拟数据应用层中查询对应所述查询语句的目标数据计算逻辑以及数据位置信息;
计算模块,用于从所述原始数据层获取对应所述数据位置信息的目标原始数据,并对所述目标原始数据执行对应所述目标数据计算逻辑的数据计算处理,得到用于响应所述查询语句的查询结果。
12.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现权利要求1至10任一项所述的数据处理方法。
13.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时实现权利要求1至10任一项所述的数据处理方法。
14.一种计算机程序产品,包括计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时实现权利要求1至10任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310927561.5A CN116662414A (zh) | 2023-07-27 | 2023-07-27 | 数据处理方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310927561.5A CN116662414A (zh) | 2023-07-27 | 2023-07-27 | 数据处理方法、装置、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116662414A true CN116662414A (zh) | 2023-08-29 |
Family
ID=87712145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310927561.5A Pending CN116662414A (zh) | 2023-07-27 | 2023-07-27 | 数据处理方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116662414A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577588A (zh) * | 2017-09-26 | 2018-01-12 | 北京中安智达科技有限公司 | 一种海量日志数据智能运维*** |
US20190026335A1 (en) * | 2017-07-23 | 2019-01-24 | AtScale, Inc. | Query engine selection |
CN112783887A (zh) * | 2019-11-07 | 2021-05-11 | 北京沃东天骏信息技术有限公司 | 一种基于数据仓库的数据处理方法及装置 |
CN112905595A (zh) * | 2021-03-05 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置及计算机可读存储介质 |
-
2023
- 2023-07-27 CN CN202310927561.5A patent/CN116662414A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190026335A1 (en) * | 2017-07-23 | 2019-01-24 | AtScale, Inc. | Query engine selection |
CN107577588A (zh) * | 2017-09-26 | 2018-01-12 | 北京中安智达科技有限公司 | 一种海量日志数据智能运维*** |
CN112783887A (zh) * | 2019-11-07 | 2021-05-11 | 北京沃东天骏信息技术有限公司 | 一种基于数据仓库的数据处理方法及装置 |
CN112905595A (zh) * | 2021-03-05 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106126641B (zh) | 一种基于Spark的实时推荐***及方法 | |
KR101621137B1 (ko) | 아파치 하둡을 위한 로우 레이턴시 쿼리 엔진 | |
Kraska | Finding the needle in the big data systems haystack | |
CN112905595A (zh) | 一种数据查询方法、装置及计算机可读存储介质 | |
CN108536778B (zh) | 一种数据应用共享平台及方法 | |
CN108021809A (zh) | 一种数据处理方法及*** | |
CN103500196A (zh) | 多并发大数据量环境下excel数据导出方法及其导出装置 | |
CN102193917A (zh) | 一种数据处理和查询方法和装置 | |
CN103390038A (zh) | 一种基于HBase的构建和检索增量索引的方法 | |
WO2020238597A1 (zh) | 基于Hadoop的数据更新方法、装置、***及介质 | |
CN109522341A (zh) | 实现基于sql的流式数据处理引擎的方法、装置、设备 | |
US10901811B2 (en) | Creating alerts associated with a data storage system based on natural language requests | |
CN102117331B (zh) | 视频搜索方法及*** | |
CN114461603A (zh) | 多源异构数据融合方法及装置 | |
CN111367681A (zh) | 面向云计算集群的高负载状态下的桥梁设计*** | |
CN116048817B (zh) | 数据处理控制方法、装置、计算机设备和存储介质 | |
CN112416991A (zh) | 一种数据处理方法、装置以及存储介质 | |
CN116126950A (zh) | 实时物化视图***和方法 | |
CN116166191A (zh) | 湖仓一体*** | |
CN117131059A (zh) | 报表数据处理方法、装置、设备及存储介质 | |
CN112506887B (zh) | 车辆终端can总线数据处理方法及装置 | |
CN114443599A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN117349368A (zh) | 基于Flink的跨库数据实时同步任务管理***及方法 | |
KR20100132752A (ko) | 데이터베이스 분산을 통한 서비스 성능 향상을 위한 질의 데이터 분산 처리시스템 | |
CN117216042A (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 |