CN112732704B - 一种数据处理方法、装置及存储介质 - Google Patents
一种数据处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112732704B CN112732704B CN201910973133.XA CN201910973133A CN112732704B CN 112732704 B CN112732704 B CN 112732704B CN 201910973133 A CN201910973133 A CN 201910973133A CN 112732704 B CN112732704 B CN 112732704B
- Authority
- CN
- China
- Prior art keywords
- data
- data source
- query
- rdd
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/2282—Tablespace storage structures; 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/2455—Query execution
- G06F16/24553—Query execution of query operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据处理方法,所述方法包括:基于Spark获取至少一种数据源的数据,形成与所述数据源对应的弹性分布式数据集(RDD);基于与所述数据源对应的RDD生成第一注册临时表;构建至少两个第一注册临时表之间的关联关系,生成第一数据模型;所述第一数据模型用于数据查询。本申请还公开了一种数据处理装置及存储介质。通过本申请实施例能够缩小数据处理周期,提高数据查询效率。
Description
技术领域
本申请涉及数据处理技术,尤其涉及一种数据处理方法、装置及存储介质。
背景技术
现有技术中,对大数据进行分析时,首先技术人员要使用专业工具从数据源中抽取出所需的数据,经过数据的转换和清洗等,将数据加载到一个数据仓库中,然后建立分析数据模型,用户才能够根据模型进行数据分析。由于无法直接对各类数据源进行查询,也不能直接分析数据,造成数据处理周期过长,降低数据查询效率。
发明内容
为解决现有存在的技术问题,本申请实施例提供了一种数据处理方法、装置及存储介质,能至少解决现有技术中存在的上述问题。
本申请实施例提供一种数据处理方法,所述方法包括:
基于Spark获取至少一种数据源的数据,形成与所述数据源对应的弹性分布式数据集(Resilient Distributed Datasets,RDD);
基于与所述数据源对应的RDD生成第一注册临时表;
构建至少两个第一注册临时表之间的关联关系,生成第一数据模型;所述第一数据模型用于数据查询。
上述方案中,所述构建至少两个第一注册临时表之间的关联关系之后,所述方法还包括:
基于所述第一数据模型获取数据查询的维度和数据模型的度量;
将所述第一注册临时表映射为数据库表;
基于所述数据库表、所述数据查询的维度和所述数据模型的度量,生成数据立方。
上述方案中,所述生成第一数据模型之后,所述方法还包括:
基于所述至少两个第一注册临时表之间的关联关系,获取与所述关联关系对应的数据的RDD;
基于所述与所述关联关系对应的数据的RDD,生成第二注册临时表;
接收第一查询参数;
基于所述第一查询参数和所述第二注册临时表,获得第一数据查询结果。
上述方案中,所述生成第一数据模型之后,所述方法还包括:
基于所述数据立方,确定至少一个第二数据查询结果;
存储所述至少一个第二数据查询结果。
上述方案中,所述存储所述第二数据查询结果之后,所述方法还包括:
接收第二查询参数;
在所述至少一个第二数据查询结果中,确定与所述第二查询参数对应的目标查询结果。
上述方案中,所述基于Spark获取至少一种数据源的数据,形成与所述数据源对应的RDD,包括:
获取逗号分隔值(Comma Separated Values,CSV)文件数据源中的有效数据;
确定所述CSV文件的分隔符;
基于所述CSV文件的分隔符和所述有效数据的属性,获取第一数据;
基于所述第一数据,形成与所述CSV文件数据源对应的RDD。
上述方案中,所述基于Spark获取至少一种数据源的数据,形成与所述数据源对应的RDD,包括:
确定Java数据库连接(Java Data Base Connectivity,JDBC)数据源对应的数据库;
基于所述JDBC数据源对应的数据库,确定JDBC连接字符串属性;
连接所述JDBC数据源对应的数据库,获取第二数据;
基于所述第二数据,形成与所述JDBC数据源对应的RDD。
上述方案中,所述基于Spark获取至少一种数据源的数据,形成与所述数据源对应的RDD,包括:
确定Java脚本对象简谱(Java Script Object Notation,JSON)数据源的统一资源定位符和编码;
基于所述JSON数据源的统一资源定位符和编码,获取所述JSON数据源对应的数据;
添加所述JSON数据源对应的数据的时间格式和类型,生成第三数据;
基于所述第三数据,形成与所述JSON数据源对应的RDD。
本申请实施例提供一种数据处理装置,所述数据处理装置包括:
获取单元,用于基于Spark获取至少一种数据源的数据;
处理单元,用于形成与所述数据源对应的RDD;
生成单元,还用于基于与所述数据源对应的RDD生成第一注册临时表;构建至少两个第一注册临时表之间的关联关系,生成第一数据模型;所述第一数据模型用于数据查询。
上述方案中,所述获取单元,还用于基于所述第一数据模型获取数据查询的维度和数据模型的度量;
所述生成单元,还用于将所述第一注册临时表映射为数据库表;基于所述数据库表、所述数据查询的维度和所述数据模型的度量,生成数据立方。
上述方案中,所述获取单元,还用于基于所述至少两个第一注册临时表之间的关联关系,获取与所述关联关系对应的数据的RDD;
所述生成单元,还用于基于所述与所述关联关系对应的数据的RDD,生成第二注册临时表;
所述获取单元,还用于接收第一查询参数;
所述处理单元,还用于基于所述第一查询参数和所述第二注册临时表,获得第一数据查询结果。
上述方案中,所述第处理单元,还用于基于所述数据立方,确定至少一个第二数据查询结果;存储所述至少一个第二数据查询结果。
上述方案中,所述获取单元,还用于接收第二查询参数;
所述处理单元,还用于在所述至少一个第二数据查询结果中,确定与所述第二查询参数对应的目标查询结果。
上述方案中,所述获取单元,用于获取CSV文件数据源中的有效数据;
确定所述CSV文件的分隔符;
基于所述CSV文件的分隔符和所述有效数据的属性,获取第一数据;
所述处理单元,基于所述第一数据,形成与所述CSV文件数据源对应的RDD。
上述方案中,所述获取单元,用于确定JDBC数据源对应的数据库;
基于所述JDBC数据源对应的数据库,确定JDBC连接字符串属性;
连接所述JDBC数据源对应的数据库,获取第二数据;
所述处理单元,用于基于所述第二数据,形成与所述JDBC数据源对应的RDD。
上述方案中,所述获取单元,用于确定JSON数据源的统一资源定位符和编码;
基于所述JSON数据源的统一资源定位符和编码,获取所述JSON数据源对应的数据;
添加所述JSON数据源对应的数据的时间格式和类型,生成第三数据;
所述处理单元,用于基于所述第三数据,形成与所述JSON数据源对应的RDD。
本申请实施例提供一种数据处理装置,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,
所述处理器用于运行所述计算机程序时,执行上述的数据处理方法的步骤。
本申请实施例提供一种存储介质,存储有可执行程序,所述可执行程序被处理器执行时,实现上述的数据处理方法。
本申请实施例提供的数据处理方法、数据处理装置及存储介质,基于Spark获取至少一种数据源的数据,形成与所述数据源对应的RDD;基于与所述数据源对应的RDD生成第一注册临时表;构建至少两个第一注册临时表之间的关联关系,生成第一数据模型;所述第一数据模型用于数据查询。由于基于Spark获取的数据源可以是同构数据源,也可以是异构数据源;因此本申请生成的数据模型适用于各种数据,具有较好的适应性。基于Spark获取的数据源中的数据,无需进行数据清洗等前期处理,节省了操作流程。通过获取各个数据源对应的RDD对应的第一注册临时表,构建至少两个第一注册临时表之间的关联关系,使得能够快速、实时、全面的查询和分析不同类型的数据。并且,本申请实施例将第一数据模型作为一个数据表构建数据立方,使得构建数据立方时不再局限于星型模型或雪花模型,而是能够适应各种复杂数据模型。
附图说明
图1为本申请实施例数据处理装置的软/硬件结构示意图;
图2为本申请实施例提供的数据处理方法的可选处理流程示意图;
图3为本申请实施例提供的在数据源为CSV文件数据源的情况下,数据获取的处理流程示意图;
图4为本申请实施例提供的在数据源为JDBC数据源的情况下,数据获取的处理流程示意图;
图5为本申请实施例提供的在数据源为JSON数据源的情况下,数据获取的处理流程示意图;
图6为本申请实施例提供的生成数据立方的流程示意图;
图7为本申请实施例提供的当不创建数据立方或者选择实时查询时数据查询的流程示意图;
图8为本申请实施例提供的当用户已经创建数据立方或者没有强制要求实时查询时数据查询的流程示意图;
图9为本申请实施例数据处理装置的组成结构示意图。
具体实施方式
下面结合附图和具体实施例对本申请作进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
为更好地理解本申请实施例,下面对本申请实施例中涉及的名词和术语,以及与本申请相关的现有技术进行简单的说明。
1)数据立方
数据立方(Data Cube)是一种用于数据分析与索引的技术架构。它是针对大数据的处理利器,可以对元数据进行任意多关键字实时索引。通过数据立方对元数据进行分析之后,可以大大加快数据的查询和检索效率。
2)同构数据源
拥有相同数据库类型,支持相同的数据模型、访问方法、优化策略、并发控制算法,以及相同的命令语言和查询语言等的数据源。
3)异构数据源
数据源对应的数据库类型不同,可以是数据模型不同,也可以是同一数据模型但是由不同厂商提供的数据库产品。异构数据源,对应不同的数据模型、不同的访问方法、不同的优化策略、不同的并发控制算法以及不同的查询语言。
4)RDD
RDD是分布式内存的一个抽象概念,RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作而创建,然而这些限制使得实现容错的开销很低。
5)MapReduce
MapReduce是一种编程模型,用于大规模数据集的并行运算,映射(Map)函数用来把一组键值对映射成一组新的键值对,归约(Reduce)函数用来保证所有映射的键值对中的每一个共享相同的键组。
6)Hadoop
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System,HDFS)和MapReduce编程模型。HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上,具有良好的可扩展性和稳定性,适于大数据的存储。MapReduce用于大规模数据集的并行运算。
7)Spark
Spark是专为大规模数据处理而设计的快速通用的计算引擎,Spark拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是,基于Spark运算的中间输出结果可以保存在内存生成RDD;RDD作为Spark最根本的数据抽象,是只读的分区记录的集合,只能基于在稳定物理存储中的数据集上创建,或者在其他已有的RDD上执行转换操作产生一个新的RDD。转换后的RDD与原始的RDD之间产生的依赖关系,构成了血统。凭借血统,Spark保证了每一个RDD都可以被重新恢复。但RDD的所有转换都是惰性的,即只有当一个返回结果给驱动程序(Driver)的行动发生时,Spark才会创建任务读取RDD,然后真正触发转换的执行。因此Spark相比MapReduce具有更好的性能。Spark SQL是在Spark的基础上建立的结构化查询语言(Structured Query Language,SQL)引擎,可以将SQL翻译为Spark计算过程。不仅如此,Spark可以将多种类型的文件、JDBC数据源等注册为数据表,数据表之间可以进行关联查询。
8)Hive
Hive是建立在Hadoop上的数据仓库基础构架,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用。
9)Kylin
Kylin是一个开源的分布式联机分析处理(Online Analytical Processing,OLAP)引擎,Kylin使用Spark在Hive表的数据基础上根据用户指定的关联关系对数据进行预计算生成数据立方,并存储在HBase中。用户可以使用SQL对数据立方进行查询,由于聚合查询的结果已经通过预计算写入了HBase,因此实际上各类聚合计算结果不需要在查询时再次计算,而是根据条件直接定位到预计算的结果,因此可以做到亚秒级查询大量数据,相比实时计算拥有更好的性能。
10)HBase
HBase是一个高可靠性、高性能、可扩展的列存储数据库,与其他数据库不同的是,HBase仅使用行健(Row key)作为数据存储的物理索引,数据的存储完全按照Row key进行,因此使用Row key查询可以获得相当好的查询性能。
11)ETL
抽取-交互转换-加载(Extract-Transform-Load,ETL)技术,用来描述将数据从来源端经过抽取、交互转换、加载至目的端的过程。ETL是构建数据仓库的重要一环,技术人员使用专业工具从数据源抽取出所需的数据,经过数据清洗,将数据加载到数据仓库中。
12)商业智能
商业智能(Business Intelligence,BI),又称商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。
13)MySQL数据库
MySQL数据库是一种开放源代码的关系型数据库管理系统,使用最常用的数据库管理语言,即SQL进行数据库管理。
14)Oracle数据库
Oracle数据库是一款关系数据库管理系统。系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库解决方案。
15)SQLserver数据库
SQLserver数据库是一个关系数据库管理系统。SQLserver是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与Windows NT的有机结合,提供了基于事务的企业级信息管理系统方案。
16)PostgreSQL数据库
PostgreSQL数据库是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统。
17)DB2数据库
DB2是IBM开发的一种大型关系型数据库平台。它支持多用户或应用程序在同一条SQL语句中查询不同数据库甚至不同数据库管理系统(Database Management System,DBMS)中的数据。
ETL和商业智能这两个概念早在上世纪90年代就被广泛应用,但是随着大数据技术的涌现,传统的ETL和商业智能模式已经不能满足数据分析的要求。传统的ETL、商业智能手段需要技术人员为分析人员提前进行数据的转换和清洗,并最后将数据加载到一个数据仓库中,同时进行数据的预计算构建出数据立方,然后在商业智能系统中建立分析数据模型,分析人员才能够根据模型进行分析。
现有技术中,一些基于数据仓库的异构大数据整合方法和系统,是将文件和操作型数据存储(Operational Data Storage,ODS)模块中的数据通过ETL工具统一加载到Hadoop/Hive中,并将数据关联结果写入HBase中,然后进行数据的查询,不能直接进行异构数据源直接查询,造成处理周期过长,业务人员无法直接分析数据。另一些多源异构数据库融合系统及其数据查询方法,通过开发人员针对不同的数据库编写出对应的Web Service统一访问接口,然后通过Web Service对不同的数据库进行查询,各个查询的结果可以进行融合处理,并最后返回。但该方法需要对各个数据库进行定制开发,并且只支持对数据库数据源进行加载,不支持文件格式数据源,并且都是使用Web Service的方式进行查询并汇总结果,无法支持GB或TB级大规模结果的复杂处理,例如各数据库查询结果的再关联,仅能支持结果的再过滤或结果聚合计算。也就是说,该方法支持的查询数据量有限,并且从各个数据源中返回的查询结果很难进行结果的关联查询和复杂计算。
针对上述问题,本申请实施例提供一种数据处理方法、数据处理装置及存储介质,其中,数据处理装置作为实施数据处理方法的实体,在实际应用中可以采用多种方式来实施,例如,数据处理装置可以是智能手机、平板电脑、笔记本电脑、台式计算机等,数据处理装置的操作系统可以是各类操作系统,本申请实施例中的附图中以数据处理装置为台式计算机进行说明,这不构成对本申请实施例记载的技术方案所适用的数据处理装置类型的限定。
就数据处理装置10的软/硬件结构来说,参见图1,包括:硬件层、驱动层、操作系统层和应用层。然而,本领域的技术人员应当理解,用于数据处理的数据处理装置10可以根据实施需要设置较图1更多的组件,或者根据实施需要省略设置部分组件。
数据处理装置10的硬件层包括处理器161、输入/输出接口163,存储器164以及网络接口162,组件可以经系统总线连接通信。
处理器161可以采用中央处理器(Central Processing Unit,CPU)、微处理器(Microcontroller Unit,MCU)、专用集成电路(Application Specific IntegratedCircuit,ASIC)或逻辑可编程门阵列(Field-Programmable Gate Array,FPGA)实现。
输入/输出接口163可以采用如显示屏、触摸屏、扬声器等输入/输出器件实现。
存储器164可以采用闪存、硬盘、光盘等非易失性存储介质实现,也可以采用双倍率(Double Data Rate,DDR)动态缓存等易失性存储介质实现,其中存储有用以执行上述广告效果分析方法的可执行指令。
网络接口162向处理器161提供外部数据如异地设置的存储器164的基于网络传输协议(Transfer Control Protocol,TCP)/用户数据协议(User Datagram Protocol,UDP )的访问能力。
驱动层包括用于供操作系统166识别硬件层,并与硬件层各组件通信的中间件165,例如可以为针对硬件层的各组件的驱动程序的集合。
操作系统166用于提供面向用户的图形界面,操作系统166支持用户经由图形界面对点着设备的控制;本申请实施例对上述设备的软件环境如操作系统类型、版本不做限定,例如可以是Linux操作系统和UNIX操作系统等。
应用层包括用于实现本申请实施例提供的数据处理方法的应用程序167,当然,还可以包括其他程序168。
至此,已经按照其功能描述了本申请实施例中涉及的数据处理装置,基于图1示出的数据处理装置的软/硬件结构,继续对本申请实施例提供的数据处理的方案进行说明。
本申请借助开源的Hadoop、Spark、Hive、HBase、Kylin等技术对数据进行处理,使业务人员能够通过简单的拖拽构建支持多种数据源的商业智能分析系统。
图2示出了本申请实施例提供的数据处理方法的可选处理流程示意图,将根据各个步骤进行说明。
步骤S101,基于Spark获取至少一种数据源的数据,形成与所述数据源对应的RDD。
本申请实施例中,数据处理装置使用Spark作为获取数据源的工具,可以获取多种数据源的数据;如:数据文件中的数据,或与大数据相关的数据源的数据。在具体实施时,可以获取CSV文件数据源的数据、JDBC数据源的数据、以及JSON数据源的数据。其中,JDBC数据源可以包括用JDBC连接Kylin或Hive等获取相应的数据源,例如Kylin、Hive等。CSV文件数据源包括HDFS中生成的CSV文件,或其他应用程序生成的CSV文件。
基于上述获取的数据源,本申请的一些实施例中至少可以获取CSV文件数据源的数据、JDBC数据源的数据、以及JSON数据源的数据中的至少一种。
下面分别针对不同的数据源的数据获取过程进行说明。
在数据源为CSV文件数据源的情况下,数据获取的处理流程如图3所示,由数据处理装置执行,包括以下步骤:
步骤S1a,获取CSV文件数据源中的有效数据。
步骤S1b,确定所述CSV文件的分隔符。
步骤S1c,基于所述CSV文件的分隔符和所述有效数据的属性,获取第一数据。
步骤S1d,基于所述第一数据,形成与所述CSV文件数据源对应的RDD。
在具体实施时,可通过在数据处理装置的新建数据源界面或编辑数据源界面,指定文件的路径,将根据文件路径定位到相应的文件。具体地,可通过指定一个或多个文件名,或通过指定一个正则表达式获取定位的文件;其中,所述正则表达式,用于识别路径中所有需要加载的文件;然后对文件是否存在进行验证;并指定CSV文件是否需要去除第一行;指定CSV文件的分隔符;按照顺序指定数据列的名称和类型。需要说明的是,如果文件第一行是列名,可以自行识别列名。最后将文件加载到数据处理装置的内存中,并将加载文件生成RDD。
需要说明的是,数据处理装置在识别出路径中所有需要加载的文件之后,即步骤S1a之后,具体的,还可以选择对文件是否存在进行验证。通过验证文件是否存在,能够检查识别出的路径中所有需要加载的文件是否可以正常被获取到。一种可选的实施方式是,在数据处理装置的新建数据源界面或编辑数据源界面直接弹出查询结果的提示,如果查询结果表示没有该文件,用户可以选择修改所述正则表达式再次执行步骤S1a,也可以选择停止执行步骤S1a之后的操作;如果查询结果表示有该文件,则继续执行步骤S1b、步骤S1c、步骤S1d。
还需要说明的是,确定CSV文件是否需要去除第一行;具体的,如果CSV文件的第一行是列号,就必须去除第一行,保证包含列号的CSV文件的第一行不被提取到;如果CSV文件的第一行是数据属性定义,就必须去除第一行,保证包含数据属性定义的CSV文件的第一行不被提取到;如果CSV文件的第一行是数据,则不需要去除第一行。
还需要说明的是,数据处理装置将所述第一数据加载到数据处理装置的内存中之前,还可以对所述第一数据进行过滤,所述过滤条件支持常见的数据库比较运算符,可以包括大于、小于、等于以及LIKE操作等。数据处理装置将根据所述过滤条件,使用Spark将加载文件生成RDD。
在数据源为JDBC数据源的情况下,数据获取的处理流程如图4所示,由数据处理装置执行,包括以下步骤:
步骤S2a,确定JDBC数据源对应的数据库。
步骤S2b,基于所述JDBC数据源对应的数据库,确定JDBC连接字符串属性。
步骤S2c,连接所述JDBC数据源对应的数据库,获取第二数据。
步骤S2d,基于所述第二数据,形成与所述JDBC数据源对应的RDD。
在具体实施时,可通过在数据处理装置的新建数据源界面或编辑数据源界面,来指定需要连接的数据库类型或直接上传数据库JDBC Driver Java归档(Java Archive,Jar)包。需要说明的是,由于数据处理装置中内置了Oracle、MySQL、SQLserver、PostgreSQL、DB2、Hive、Kylin等常见数据库,所以可以直接指定需要连接的数据库类型;由于内置了支持JDBC的大数据数据源的JDBC Driver,所以可以通过上传数据库JDBC DriverJar包,连接其他JDBC数据源。在数据处理装置的新建数据源界面或编辑数据源界面,填写JDBC连接字符串需要的信息,所述JDBC连接字符串需要的信息可以包括链接字符串的协议类型、数据库地址、数据库端口、数据库名、用户名、密码等数据库属性参数。连接所述JDBC数据源对应的数据库后,具体的,可在所述JDBC数据源对应的数据库中获取一个或多个数据表,并为获取到的数据表填写别名,最后将填写过别名的数据表加载到数据处理装置的内存中,并将加载的数据表生成RDD。需要说明的是,JDBC数据源与CSV文件数据源不同,针对JDBC数据源,Spark可以通过Java JDBC接口获取各数据表的定义,因此不需要指定JDCB数据的列名和类型。
需要说明的是,数据处理装置将填写别名后的所述第二数据加载到数据处理装置的内存中之前,还可以对填写别名后的所述第二数据进行过滤,所述过滤条件支持常见的数据库比较运算符,可以包括大于、小于、等于以及LIKE操作等。数据处理装置将根据所述过滤条件,使用Spark将加载文件生成RDD。
在数据源为JSON数据源的情况下,数据获取的处理流程如图5所示,由数据处理装置执行,包括以下步骤:
步骤S3a,确定JSON数据源的统一资源定位符和编码。
步骤S3b,基于所述JSON数据源的统一资源定位符和编码,获取所述JSON数据源对应的数据。
步骤S3c,添加所述JSON数据源对应的数据的时间格式和类型,生成第三数据。
步骤S3d,基于所述第三数据,形成与所述JSON数据源对应的RDD。
在具体实施时,可通过在数据处理装置的新建数据源界面或编辑数据源界面,填写JSON数据源的统一资源定位符(Uniform Resource Locator,URL)和编码;具体的,也可以是指定本地JSON文件的URL和编码;将基于所述URL和编码获取到的文件加载到数据处理装置的内存中。由于JSON文件中包含列名和简单的数据类型,因此Spark可以识别字段名和类型,但是Spark不能识别日期时间等不包含在JSON文件定义中的类型,因此需要给加载到数据处理装置内存中的JSON文件添加时间的格式和类型。最后基于Spark将所述添加了时间格式和类型的文件生成新的RDD。
需要说明的是,数据处理装置将获取到的数据加载到数据处理装置的内存中之前,还可以对所述数据进行过滤,所述过滤条件支持常见的数据库比较运算符,可以包括大于、小于、等于以及LIKE操作等。
步骤S102,基于与所述数据源对应的RDD生成第一注册临时表。
本申请实施例中,数据处理装置基于与所述数据源对应的RDD生成第一注册临时表,所述第一注册临时表是分别对应不同数据源的注册临时列表。举例来说,当数据源为CSV文件数据源时,所述第一注册临时表包括基于与所述CSV文件数据源对应的RDD生成的;当数据源为JDBC数据源时,所述第一注册临时表包括基于与所述JDBC数据源对应的RDD生成的;当数据源为JSON数据源时,所述第一注册临时表包括基于与所述JSON数据源对应的RDD生成的。
所述第一注册临时表保存在数据处理装置的内存中,所述第一注册临时表中包括有数据库表的相关信息,比如包括表头、结构类型等。每个数据源对应的第一注册临时表有且仅与一个表标识(Identifier,ID)对应,所述表ID用于查询数据源对应的第一注册临时表。
步骤S103,构建至少两个第一注册临时表之间的关联关系,生成第一数据模型;所述第一数据模型用于数据查询。
本申请实施例中,数据处理装置构建至少两个第一注册临时表之间的关联关系,生成第一数据模型。其中,构建至少两个第一注册临时表之间的关联关系的过程,即为需要根据业务需要创建业务模型的过程。
在一可选实施例中,数据处理装置可以通过搜索获取指定的第一注册临时表;具体的,数据处理装置可以是通过第一注册临时表对应的表ID获取第一注册临时表,并将获取到的第一注册临时表通过拖拽的方式添加到新建数据模型的模型布中。数据处理装置通过数据源的JDBC接口、CSV文件中字段定义和JSON文件中字段定义中的至少两个,获取至少两个第一注册临时表的字段定义,并将所述字段定义显示在界面上。数据处理装置为至少两个第一注册临时表添加连线,将不同第一注册临时表的不同字段进行关联,并添加各个字段之间的关联关系。所述关联关系至少包括常见的数据库比较运算符,和/或各个关联关系之间的与或非逻辑关系。
需要说明的是,一个第一注册临时表在一个第一数据模型中仅能拖拽添加一次,但是一个第一注册临时表可以分别被拖拽添加到不同的数据模型中。
在一可选实施例中,构建至少两个第一注册临时表之间的关联关系之后,数据处理装置可以根据所述关联关系,创建Spark SQL,Spark将会根据SQL和第一数据模型进行数据查询,并支持对数据查询结果进行预览。数据处理装置还可根据数据查询请求返回一定数目的数据,以判断所述第一数据模型是否满足要求。如果所述第一数据模型不满足要求,则重复执行步骤S103,直到满足要求。
本申请实施例中,用户可以直接添加异构数据源或同构数据源,并直接通过拖拽注册临时表的方式构建数据模型;进而可以通过构建的数据模型使用Spark技术进行数据的实时查询和数据分析。如此,不仅能够避免前期冗长的ETL需求开发,还能够满足对不同数据源之间的数据直接进行联合分析的需求。
本申请实施例中,数据处理装置在生成第一数据模型之后,还可以生成数据立方。生成数据立方的流程示意图,如图6所示,包括以下步骤:
步骤S201,基于所述第一数据模型获取数据查询的维度和数据模型的度量。
本申请实施例中,数据处理装置基于所述第一数据模型获取数据查询的维度和数据模型的度量。
在一实施方式中,所述数据查询的维度可以是进行预聚合运算的列;在需要增量更新数据时,还需要选择标记增长的时间列;数据处理装置根据增长的时间列持续构建数据立方。所述数据模型的度量可以是聚合计算的函数,函数至少包括COUNT、SUM、AVG、COUNT_DISTINCT、MIN、MAX、TOP_N中的一个或多个。
在一实施方式中,数据处理装置基于所述第一数据模型获取数据查询的维度和数据模型的度量之前,还可以在数据立方的新建界面或编辑数据立方的界面上设置数据过滤条件,所述过滤条件支持常见的数据库比较运算符,比如大于、小于、等于以及LIKE操作等;所述过滤条件用于数据处理装置根据用户需求确定所需的第一注册临时表。
步骤S202,将所述第一注册临时表映射为数据库表。
本申请实施例中,数据处理装置将所述第一注册临时表映射为数据库表。
在一可选实施例中,数据处理装置在获取到数据查询的维度和数据模型的度量之后,使用Spark将从第一数据模型中查询到的全部第一注册临时表映射为一个数据库表,并加载到Hive中。
在另一可选实施方式中,如果在执行步骤S201之前,在数据立方的新建界面或编辑数据立方的界面上设置了数据过滤条件,那么在数据处理装置获取到数据查询的维度和数据模型的度量之后,使用Spark将第一数据模型中,基于所述过滤条件确定的第一注册临时表映射为一个数据库表,并加载到Hive中。
步骤S203,基于所述数据库表、所述数据查询的维度和所述数据模型的度量,生成数据立方。
本申请实施例中,数据处理装置基于所述数据库表、所述数据查询的维度和所述数据模型的度量,生成数据立方。
在一可选实施例中,数据处理装置将所述第一注册临时表映射为一张数据库表,并加载到Hive中之后,在Kylin中建立由一张单表构成的数据立方模型,并根据所述数据查询的维度和所述数据模型的度量生成数据立方。
需要说明的是,生成数据立方的数据,需要包括每一个涉及所述数据查询的维度的所述第一注册临时表中的对应数据。
步骤S204,数据处理装置基于所述数据立方,确定至少一个第二数据查询结果。
步骤S205,数据处理装置存储所述至少一个第二数据查询结果。
在一可选实施例中,可以是Kylin基于所述数据查询的维度从Hive表中读取数据,并根据所述数据模型的度量进行聚合计算,并将计算结果写入到HBase中。
需要说明的是,由于所述数据模型的度量可以是聚合计算的函数,所述聚合计算的函数可以包括COUNT、SUM、AVG、COUNT_DISTINCT、MIN、MAX、TOP_N等,基于多个聚合计算的函数能够生成多个所述第二数据查询结果。本申请实施例中,通过将预计算结果存储在HBase中,使得用户在获取第二数据查询结果时,能够直接从HBase中直接获取预先存储的第二数据查询结果,有效地提高了数据查询的效率。
本申请实施例中,数据处理装置在生成第一数据模型之后,还可以执行数据查询,本申请实施例中至少包括两种可选的数据查询的方式。
下面分别针对不同的数据查询的方式进行说明。
当不创建数据立方或者选择实时查询时,数据查询的流程如图7所示,包括以下步骤:
步骤S301,基于所述至少两个第一注册临时表之间的关联关系,获取与所述关联关系对应的数据的RDD。
本申请实施例中,数据处理装置基于所述至少两个第一注册临时表之间的关联关系,获取与所述关联关系对应的数据的RDD。
在一可选实施例中,当用户不创建数据立方或选择实时查询时,具体的,可以是数据处理装置根据所述至少两个第一注册临时表之间的关联关系,首先生成由各个Spark上下文临时表构建的关联查询语句,并通过Spark将关联查询结果生成新的RDD。
步骤S302,基于所述与所述关联关系对应的数据的RDD,生成第二注册临时表。
本申请实施例中,数据处理装置基于所述与所述关联关系对应的数据的RDD,生成第二注册临时表。
这里,数据处理装置可以基于步骤S301中新生成的RDD,生成第二注册临时表。
所述第二注册临时表保存在数据处理装置的内存中,所述第二注册临时表中包括有所述至少两个第一注册临时表之间的关联关系中包含的至少两个第一注册临时表中的信息,所述信息可以包括:第一注册临时表的表头、结构类型、数据信息等。
步骤S303,接收第一查询参数。
本申请实施例中,数据处理装置接收第一查询参数。
在一可选实施例中,所述第一查询参数可以是,数据处理装置在所述第二注册临时表基础上,使用Spark SQL运行步骤S301中所述的关联查询语句。
举个例子说,所述第一查询参数,可以是用户根据需求创建的。比如,用户的需求是,显示X日至Y日的名字为Z的雪糕的销售额并生成折线图。那么所述第一查询参数包含查询X日至Y日的名字为Z的雪糕的销售额数据,以及包含将X日至Y日的名字为Z的雪糕的销售额数据生成折线图的执行函数。
步骤S304,基于所述第一查询参数和所述第二注册临时表,获得第一数据查询结果。
本申请实施例中,数据处理装置基于所述第一查询参数和所述第二注册临时表,获得第一数据查询结果。
在一可选实施例中,具体的,可以是数据处理装置基于用户创建的第一查询参数获取添加数据源的代码,以及数据处理装置生成关联关系时Spark SQL执行的代码,然后将基于用户创建的第一查询参数获取的代码组合并提交Spark,再基于所述第一查询参数进行计算,获得第一数据查询结果,计算的结果可以用于展示。
本申请实施例中,数据处理装置能够实时分析、查询多种数据源构成的复杂数据;基于Spark能够查询海量数据,提升数据实时查询的速度。
当用户已经创建数据立方或者没有强制要求实时查询时,数据查询的流程如图8所示,包括以下步骤:
步骤S401,接收第二查询参数。
本申请实施例中,数据处理装置接收第二查询参数。
所述第二查询参数可以是用户根据需求创建的。
步骤S402,在所述至少一个第二数据查询结果中,确定与所述第二查询参数对应的目标查询结果。
本申请实施例中,数据处理装置在所述至少一个第二数据查询结果中,确定与所述第二查询参数对应的目标查询结果。由于生成数据立方时,数据处理装置已经将预先计算的可能具有关联关系的结果保存在HBase中,所以当用户已经创建数据立方或者没有强制要求实时查询时,可以直接从HBase中查询计算结果,而不需要再次进行计算。
在一可选实施例中数据处理装置,可以将拼接的SQL通过REST接口发送给Kylin,Kylin将会直接在HBase中查询计算结果,并且将数据返回,通过图表进行展示。
需要说明的是,本申请中数据处理装置将拼接的SQL发送给Kylin,可以通过多种接口,优选REST接口,所述接口用于数据处理装置将预计算结果对应的SQL发送给Kylin。
需要说明的是,如果在所述至少一个第二数据查询结果中,没有获取到目标查询结果。一种可选的方式是,执行步骤S301至步骤S304,即基于Spark进行实时查询。
例如,当已经创建数据立方,数据立方中包含有X日至Y日的名字为Z的雪糕的销售额的折线图,以及X日至Y日的名字为Z的雪糕的库存的折线图。比如,用户的需求一:获取X日至Y日的名字为Z的雪糕的销售额的折线图。那么所述第二查询参数用于在X日至Y日的名字为Z的雪糕的销售额的折线图,以及X日至Y日的名字为Z的雪糕的库存的折线图中,选择X日至Y日的名字为Z的雪糕的销售额的折线图,基于所述第二查询参数,用户可以获取到目标查询结果,即X日至Y日的名字为Z的雪糕的销售额的折线图。用户的需求二:显示X日至Y日所有品牌面粉的库存的折线图。由于数据立方中不包含该数据,所以用户可以选择实时查询的方式,基于步骤S103中生成的关联关系,通过Spark进行实时查询,即执行步骤S301至步骤S304。
本申请实施例中,基于SQL对数据立方进行查询,由于聚合运算的结果已经通过预计算写入了HBase,因此实际上各类聚合计算结果不需要在查询时再次计算,只需根据条件直接定位到预计算的结果,因此可以做到亚秒级查询海量数据,相比实时计算拥有更好的性能。
为实现上述实施例提供的数据处理方法,本申请实施例还提供一种数据处理装置,所述装置的组成结构示意图,如图9所示,包括:
获取单元501,用于基于Spark获取至少一种数据源的数据。
处理单元502,用于形成与所述数据源对应的RDD。
生成单元503,还用于基于与所述数据源对应的RDD生成第一注册临时表;构建至少两个第一注册临时表之间的关联关系,生成第一数据模型;所述第一数据模型用于数据查询。
在一可选实施例中,所述获取单元501,还用于基于所述第一数据模型获取数据查询的维度和数据模型的度量。
所述生成单元503,还用于将所述第一注册临时表映射为数据库表;基于所述数据库表、所述数据查询的维度和所述数据模型的度量,生成数据立方。
在一可选实施例中,所述获取单元501,还用于基于所述至少两个第一注册临时表之间的关联关系,获取与所述关联关系对应的数据的RDD。
所述生成单元503,还用于基于所述与所述关联关系对应的数据的RDD,生成第二注册临时表。
所述获取单元501,还用于接收第一查询参数。
所述处理单元502,还用于基于所述第一查询参数和所述第二注册临时表,获得第一数据查询结果。
在一可选实施例中,所述处理单元502,还用于基于所述数据立方,确定至少一个第二数据查询结果。存储所述至少一个第二数据查询结果。
上述方案中,所述获取单元501,还用于接收第二查询参数。
所述处理单元502,还用于在所述至少一个第二数据查询结果中,确定与所述第二查询参数对应的目标查询结果。
在一可选实施例中,所述获取单元501,用于获取CSV文件数据源中的有效数据。
确定所述CSV文件的分隔符。
基于所述CSV文件的分隔符和所述有效数据的属性,获取第一数据。
所述处理单元502,基于所述第一数据,形成与所述CSV文件数据源对应的RDD。
在一可选实施例中,所述获取单元501,用于确定JDBC数据源对应的数据库。
基于所述JDBC数据源对应的数据库,确定JDBC连接字符串属性。
连接所述JDBC数据源对应的数据库,获取第二数据。
所述处理单元502,用于基于所述第二数据,形成与所述JDBC数据源对应的RDD。
在一可选实施例中,所述获取单元501,用于确定JSON数据源的统一资源定位符和编码。
基于所述JSON数据源的统一资源定位符和编码,获取所述JSON数据源对应的数据。
添加所述JSON数据源对应的数据的时间格式和类型,生成第三数据。
所述处理单元502,用于基于所述第三数据,形成与所述JSON数据源对应的RDD。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储单元中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储单元包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储单元中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储单元中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储单元包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种数据处理方法,其特征在于,所述方法包括:
基于Spark获取至少一种数据源的数据,形成与所述数据源对应的弹性分布式数据集RDD;
基于与所述数据源对应的RDD生成第一注册临时表;
构建至少两个第一注册临时表之间的关联关系,生成第一数据模型;所述第一数据模型用于数据查询;
基于所述至少两个第一注册临时表之间的关联关系,获取与所述关联关系对应的数据的RDD;
基于所述与所述关联关系对应的数据的RDD,生成第二注册临时表;
接收第一查询参数;
基于所述第一查询参数和所述第二注册临时表,获得第一数据查询结果。
2.根据权利要求1所述的数据处理方法,其特征在于,所述构建至少两个第一注册临时表之间的关联关系之后,所述方法还包括:
基于所述第一数据模型获取数据查询的维度和数据模型的度量;
将所述第一注册临时表映射为数据库表;
基于所述数据库表、所述数据查询的维度和所述数据模型的度量,生成数据立方。
3.根据权利要求2所述的数据处理方法,其特征在于,所述生成第一数据模型之后,所述方法还包括:
基于所述数据立方,确定至少一个第二数据查询结果;
存储所述至少一个第二数据查询结果。
4.根据权利要求3所述的方法,其特征在于,所述存储所述第二数据查询结果之后,所述方法还包括:
接收第二查询参数;
在所述至少一个第二数据查询结果中,确定与所述第二查询参数对应的目标查询结果。
5.根据权利要求1至4任一项所述的数据处理方法,其特征在于,所述基于Spark获取至少一种数据源的数据,形成与所述数据源对应的RDD,包括:
获取逗号分隔值CSV文件数据源中的有效数据;确定所述CSV文件的分隔符;基于所述CSV文件的分隔符和所述有效数据的属性,获取第一数据;基于所述第一数据,形成与所述CSV文件数据源对应的RDD;
或者,确定Java数据库连接JDBC数据源对应的数据库;基于所述JDBC数据源对应的数据库,确定JDBC连接字符串属性;连接所述JDBC数据源对应的数据库,获取第二数据;基于所述第二数据,形成与所述JDBC数据源对应的RDD;
或者,确定Java脚本对象简谱JSON数据源的统一资源定位符和编码;基于所述JSON数据源的统一资源定位符和编码,获取所述JSON数据源对应的数据;添加所述JSON数据源对应的数据的时间格式和类型,生成第三数据;基于所述第三数据,形成与所述JSON数据源对应的RDD。
6.一种数据处理装置,其特征在于,所述数据处理装置包括:
获取单元,用于基于Spark获取至少一种数据源的数据;
处理单元,用于形成与所述数据源对应的RDD;
生成单元,还用于基于与所述数据源对应的RDD生成第一注册临时表;构建至少两个第一注册临时表之间的关联关系,生成第一数据模型;所述第一数据模型用于数据查询;
所述获取单元,还用于基于所述至少两个第一注册临时表之间的关联关系,获取与所述关联关系对应的数据的RDD;
所述生成单元,还用于基于所述与所述关联关系对应的数据的RDD,生成第二注册临时表;
所述获取单元,还用于接收第一查询参数;
所述处理单元,还用于基于所述第一查询参数和所述第二注册临时表,获得第一数据查询结果。
7.根据权利要求6所述的数据处理装置,其特征在于,
所述获取单元,还用于基于所述第一数据模型获取数据查询的维度和数据模型的度量;
所述生成单元,还用于将所述第一注册临时表映射为数据库表;基于所述数据库表、所述数据查询的维度和所述数据模型的度量,生成数据立方。
8.根据权利要求7所述的数据处理装置,其特征在于,
所述处理单元,还用于基于所述数据立方,确定至少一个第二数据查询结果;存储所述至少一个第二数据查询结果。
9.根据权利要求8所述的数据处理装置,其特征在于,
所述获取单元,还用于接收第二查询参数;
所述处理单元,还用于在所述至少一个第二数据查询结果中,确定与所述第二查询参数对应的目标查询结果。
10.根据权利要求6至9任一项所述的数据处理装置,其特征在于,
所述获取单元,用于获取CSV文件数据源中的有效数据;确定所述CSV文件的分隔符;基于所述CSV文件的分隔符和所述有效数据的属性,获取第一数据;所述处理单元,用于基于所述第一数据,形成与所述CSV文件数据源对应的RDD;
或者,所述获取单元,用于确定JDBC数据源对应的数据库;基于所述JDBC数据源对应的数据库,确定JDBC连接字符串属性;连接所述JDBC数据源对应的数据库,获取第二数据;所述处理单元,用于基于所述第二数据,形成与所述JDBC数据源对应的RDD;
或者,所述获取单元,用于确定JSON数据源的统一资源定位符和编码;基于所述JSON数据源的统一资源定位符和编码,获取所述JSON数据源对应的数据;添加所述JSON数据源对应的数据的时间格式和类型,生成第三数据;所述处理单元,用于基于所述第三数据,形成与所述JSON数据源对应的RDD。
11.一种数据处理装置,其特征在于,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至5任一项所述的数据处理方法的步骤。
12.一种存储介质,其特征在于,存储有可执行程序,所述可执行程序被处理器执行时,实现权利要求1至5任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910973133.XA CN112732704B (zh) | 2019-10-14 | 2019-10-14 | 一种数据处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910973133.XA CN112732704B (zh) | 2019-10-14 | 2019-10-14 | 一种数据处理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732704A CN112732704A (zh) | 2021-04-30 |
CN112732704B true CN112732704B (zh) | 2022-12-13 |
Family
ID=75588439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910973133.XA Active CN112732704B (zh) | 2019-10-14 | 2019-10-14 | 一种数据处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732704B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038239A (zh) * | 2017-12-27 | 2018-05-15 | 中科鼎富(北京)科技发展有限公司 | 一种异构数据源规范化处理方法、装置及服务器 |
CN108984547A (zh) * | 2017-05-31 | 2018-12-11 | 北京京东尚科信息技术有限公司 | 数据处理的方法和装置 |
-
2019
- 2019-10-14 CN CN201910973133.XA patent/CN112732704B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984547A (zh) * | 2017-05-31 | 2018-12-11 | 北京京东尚科信息技术有限公司 | 数据处理的方法和装置 |
CN108038239A (zh) * | 2017-12-27 | 2018-05-15 | 中科鼎富(北京)科技发展有限公司 | 一种异构数据源规范化处理方法、装置及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN112732704A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11036735B2 (en) | Dimension context propagation techniques for optimizing SQL query plans | |
US10831753B2 (en) | Query plan generation and execution in a relational database management system with a temporal-relational database | |
CN109997126B (zh) | 事件驱动提取、变换、加载(etl)处理 | |
US10528540B2 (en) | Dynamic aggregate generation and updating for high performance querying of large datasets | |
CN105122243B (zh) | 用于半结构化数据的可扩展分析平台 | |
JP6113693B2 (ja) | Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化 | |
CN107451225B (zh) | 用于半结构化数据的可缩放分析平台 | |
US8868594B2 (en) | Split processing paths for a database calculation engine | |
US11055352B1 (en) | Engine independent query plan optimization | |
JP2016509294A (ja) | 分散型データベースクエリ・エンジン用のシステムおよび方法 | |
US20200004750A1 (en) | Transforming a user-defined table function to a derived table in a database management system | |
CN112732704B (zh) | 一种数据处理方法、装置及存储介质 | |
US11475017B2 (en) | Asynchronous data enrichment for an append-only data store | |
US20200175402A1 (en) | In-database predictive pipeline incremental engine | |
CN107066330B (zh) | 模块化数据分布计划生成方法及系统 | |
Eftekhari et al. | BINARY: A framework for big data integration for ad-hoc querying | |
CN115630117B (zh) | 数据分析方法、物化视图生成方法及相关设备 | |
US10769164B2 (en) | Simplified access for core business with enterprise search | |
JPWO2018061070A1 (ja) | 計算機システム及び分析ソースデータ管理方法 | |
CN116126995A (zh) | 一种索引信息的生成方法、装置及计算机可读存储介质 | |
JP5673246B2 (ja) | データストア制御装置、データストア制御プログラムおよびデータストア制御方法 | |
CN118035270A (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 |