CN113946574A - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113946574A CN113946574A CN202111047311.XA CN202111047311A CN113946574A CN 113946574 A CN113946574 A CN 113946574A CN 202111047311 A CN202111047311 A CN 202111047311A CN 113946574 A CN113946574 A CN 113946574A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- data source
- schema
- real
- 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 26
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000004458 analytical method Methods 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 abstract description 17
- 238000011161 development Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 239000008280 blood Substances 0.000 description 6
- 210000004369 blood Anatomy 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/242—Query formulation
- G06F16/2433—Query languages
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开关于数据处理方法、装置、电子设备及存储介质,该方法包括:在检测到不存在数据源对应的逻辑表时,获取数据源的元信息;根据元信以及数据表结构调整信息,获取第二Schema信息;获取与由第二Schema信息注册得到的逻辑表对应的SQL语句信息;基于解析SQL语句信息所得的逻辑表名对应的目标Schema信息,将数据源创建为匹配当前任务环境的目标数据表;根据解析SQL语句信息所得的待操作信息,对该目标数据表进行处理。从而可以极大的方便用户在基于实时计算平台上开发实时任务。基于本公开可以降低了对无Schema的数据源的实时计算的难度,以及提高实时计算的可行性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
在大数据领域中,实时计算是重要技术之一,其广泛应用于实时处理、实时报表、实时监控报警、实时算法模型训练、实时推荐等,可提升实时数据获取分析和决策的实效性。SQL(Structured Query Language,结构化查询语言)是大数据领域最广泛使用的开发语言,其极大地降低了实时开发的门槛。
然而,基于SQL的实时计算的数据源,例如分布式发布订阅消息***Kafka、或者其他需要访问如远程数据服务Redis(Remote Dictionary Server)和分布式存储***Hbase(Hadoop DataBase)等数据库,这些数据源的数据格式是一种无Schema(数据表结构)的数据源,无法直接编写SQL进行实时计算。
相关技术中,为了实现对无Schema的数据源的实时计算,通常需要用户编写SQL的DDL(Data Definition Language,一种数据定义语言)来定义表的Schema。这样存在至少两个不足:1)编写DDL过程繁琐且容易出错,尤其是字段较多的情形。2)如果数据源的Schema是多层嵌套或者是复杂类型如结构体struct或者数组array,DDL的支持都不太友好。上述不足会在一定程度上提高对无Schema的数据源的实时计算的难度和以及降低无Schema的数据源的实时计算的可行性。
发明内容
本公开提供一种数据处理方法、装置、电子设备及存储介质,以至少解决相关技术中通过用户编写SQL的DDL来定义表的Schema所带来的编写过程繁琐、容易出错,以及不支持多层嵌套或复杂类型数据中至少一种问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据处理方法,包括:
在检测到不存在数据源对应的逻辑表时,获取所述数据源的元信息,所述元信息包括数据基本信息和数据定义文件;所述数据定义文件用于定义数据源的序列化与反序列化的机制;
根据所述数据定义文件对所述数据基本信息进行分析,获取所述数据源对应的第一数据表结构Schema信息;
获取对所述第一Schema信息的数据表结构调整信息,并基于所述第一Schema信息和所述数据表结构调整信息,获得第二Schema信息;所述第二Schema信息包括字段名称和字段类型;
基于所述第二Schema信息中的字段名称和字段类型,将所述数据源注册为逻辑表;
获取与所述逻辑表对应的结构化查询语言SQL语句信息,并解析所述SQL语句信息得到逻辑表名和待操作信息,获得所述逻辑表名对应的目标Schema信息;
基于所述目标Schema信息,将所述数据源创建为匹配当前任务环境的目标数据表;
根据所述待操作信息,对所述目标数据表进行处理。
作为一种可选的实施方式,所述获取所述数据源的元信息包括:
若不存在与所述数据源匹配的注册数据源,获取所述数据源对应的数据源信息;
根据所述数据源信息注册所述数据源,并获取注册数据源对应的数据基本信息;
获取所述数据源对应的数据定义文件,根据所述数据定义文件和所述数据基本信息确定所述数据源的元信息。
作为一种可选的实施方式,所述获取所述数据源的元信息包括:
若存在与所述数据源匹配的注册数据源,绑定所述注册数据源与所述数据源;
获取所述注册数据源的数据基本信息;
获取所述数据源对应的数据定义文件,并根据所述数据定义文件和所述数据基本信息确定所述注册数据源对应的元信息,所述注册数据源对应的元信息为所述数据源的元信息。
作为一种可选的实施方式,所述基于所述第二Schema信息中的字段名称和字段类型,将所述数据源注册为逻辑表步骤之后,所述方法还包括:
将所述数据源的第二Schema信息及对应的逻辑表名注册到Schema服务;
基于元数据中心存储的数据源对应的实时Schema信息,更新所述Schema服务中所述第二Schema信息。
作为一种可选的实施方式,所述获取与所述逻辑表对应的结构化查询语言SQL语句信息步骤包括:
展示所述逻辑表对应的第二Schema信息;
获取基于所展示的第二Schema信息编写的结构化语言SQL语句信息。
作为一种可选的实施方式,所述根据所述待操作信息,对所述目标数据表进行处理步骤包括:
根据所述目标数据表对应的字段名称和字段类型,动态解析所述数据源的数据;
对解析得到的数据执行所述待操作信息指示的处理指令。
作为一种可选的实施方式,在检测到不存在数据源对应的逻辑表时,获取所述数据源的元信息步骤之前,所述方法还包括:
在检测到存在数据源对应的逻辑表的情况下,从Schema服务中获取所述逻辑表对应的目标Schema信息。
根据本公开实施例的第二方面,提供一种数据处理装置,包括:
第一获取模块,被配置为执行在检测到不存在数据源对应的逻辑表时,获取所述数据源的元信息,所述元信息包括数据基本信息和数据定义文件;所述数据定义文件用于定义数据源的序列化与反序列化的机制;
第二获取模块,被配置为执行根据所述数据定义文件对所述数据基本信息进行分析,获取所述数据源对应的第一数据表结构Schema信息;
第三获取模块,被配置为执行获取对所述第一Schema信息的数据表结构调整信息,并基于所述第一Schema信息和所述数据表结构调整信息,获得第二Schema信息;所述第二Schema信息包括字段名称和字段类型;
注册模块,被配置为执行基于所述第二Schema信息中的字段名称和字段类型,将所述数据源注册为逻辑表;
解析模块,被配置为执行获取与所述逻辑表对应的结构化查询语言SQL语句信息,并解析所述SQL语句信息得到逻辑表名和待操作信息,获得所述逻辑表名对应的目标Schema信息;
第一处理模块,被配置为执行基于所述目标Schema信息,将所述数据源创建为匹配当前任务环境的目标数据表;
第二处理模块,被配置为执行根据所述待操作信息,对所述目标数据表进行处理。
作为一种可选的实施方式,所述第一获取模块包括:
第一获取子模块,被配置为执行若不存在与所述数据源匹配的注册数据源,获取所述数据源对应的数据源信息;
第二获取子模块,被配置为执行根据所述数据源信息注册所述数据源,并获取注册数据源对应的数据基本信息;
第一确定子模块,被配置为执行获取所述数据源对应的数据定义文件,根据所述数据定义文件和所述数据基本信息确定所述数据源的元信息。
作为一种可选的实施方式,所述第一获取模块包括:
绑定子模块,被配置为执行若存在与所述数据源匹配的注册数据源,绑定所述注册数据源与所述数据源;
第三获取子模块,被配置为执行获取所述注册数据源的数据基本信息;
第二确定子模块,被配置为执行获取所述数据源对应的数据定义文件,并根据所述数据定义文件和所述数据基本信息确定所述注册数据源对应的元信息,所述注册数据源对应的元信息为所述数据源的元信息。
作为一种可选的实施方式,所述装置还包括:
注册模块,被配置为执行将所述数据源的第二Schema信息及对应的逻辑表名注册到Schema服务;
更新模块,被配置为执行基于元数据中心存储的数据源对应的实时Schema信息,更新所述Schema服务中所述第二Schema信息。
作为一种可选的实施方式,所述解析模块包括:
展示子模块,被配置为执行展示所述逻辑表对应的第二Schema信息;
第四获取子模块,被配置为执行获取基于所展示的第二Schema信息编写的结构化语言SQL语句信息。
作为一种可选的实施方式,所述解析模块包括:
第五获取子模块,被配置执行从Schema服务中,获取与所述逻辑表名对应的目标Schema信息。
作为一种可选的实施方式,所述第二处理模块包括:
第一处理子模块,被配置执行根据所述目标数据表对应的字段名称和字段类型,动态解析所述数据源的数据;
第二处理子模块,被配置执行对解析得到的数据执行所述待操作信息指示的处理指令。
作为一种可选的实施方式,所述装置还包括:
第四获取模块,被配置执行在检测到存在数据源对应的逻辑表的情况下,从Schema服务中获取所述逻辑表对应的目标Schema信息。
根据本公开实施例的第三方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述中任一实施方式所述的数据处理方法。
根据本公开实施例的第四方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述任一实施方式所述的数据处理方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述任一种实施方式中提供的数据处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开实施例在检测到不存在数据源对应的逻辑表时,获取数据源的元信息;根据元信以及数据表结构调整信息,获取第二Schema信息;获取与由第二Schema信息注册得到的逻辑表对应的SQL语句信息;基于解析SQL语句信息所得的逻辑表名对应的目标Schema信息,将数据源创建为匹配当前任务环境的目标数据表;根据解析SQL语句信息所得的待操作信息,对该目标数据表进行处理。从而可以极大的方便用户在基于类似Flink SQL的实时计算平台上开发实时任务。整个数据源注册和使用表的过程简单,自动加载和更新避免了手动操作;此外数据源注册后可以共享使用,该数据源注册后可以即为逻辑表,方便数据治理,如血缘关系,数据元信息等,降低了对无Schema的数据源的实时计算的难度,以及提高实时计算的效率和可行性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种数据处理方法的实施环境示意图。
图2是根据一示例性实施例示出的一种数据处理方法的流程示意图。
图3是根据一示例性实施例示出的一种数据处理方法的流程示意图。
图4是根据一示例性实施例示出的一种数据处理方法的流程示意图。
图5是根据一示例性实施例示出的一种数据处理方法的部分流程示意图。
图6是根据一示例性实施例示出的一种数据处理装置的流程示意图。
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
对本公开实施例进行进一步详细说明之前,对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释。
SQL(Structured Query Language,结构化查询语言):是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库***。
Schema:是数据表结构,其为数据库对象的集合,Schema中包含了各种对象,如表(table)、索引(index)、视图(view)等。
无Schema:是指不用表结构,也即无数据表结构,数据结构自由度很高。
DDL(Data Definition Language,数据定义语言):是指在创建表的时候用到的一些SQL,比如CREATE、ALTER、DROP等。DDL主要是用在定义或改变表的结构、数据类型、表之间的链接和约束等初始化工作上。
数据源:用于产生流式数据或静态数据集的数据来源。示例性地,数据源可以包括分布式发布订阅消息***Kafka、远程数据服务Redis、分布式存储***Hbase等中任一种。当然本公开涉及的数据源包括但不限于此,还可包括Hadoop分布式文件***HDFS、Flume等中的任意一种。
Flink:是指支持流计算并提进一步提高实时性分析的***。Flink作为一个针对流数据和批数据的分布式处理引擎,基本具备了高吞吐、低延迟、高性能的数据处理特点,也支持了时间、会话、计数等相对灵活的各类窗口语义。
Flink SQL:是Flink实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准SQL语义的开发语言。
图1是根据一示例性实施例示出的一种数据处理方法的实施环境示意图,参见图1,该实施环境可以包括数据处理***10和终端20。
数据处理***10可以用于提供后台的数据处理服务,例如实时计算服务、实时统计服务等。终端20可以用于获取用户输入的SQL语句,并将该SQL语句发送至数据处理***10,以获取数据处理***10的数据处理服务结果。
上述数据处理***10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述终端20还可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能可穿戴设备、数字助理、增强现实设备、虚拟现实设备等实体设备或者运行于实体设备中的应用程序,但并不局限于此。上述数据处理***10与终端20之间可以通过有线或无线通信方式进行直接或间接地连接,本公开在此不做限制。
示例性地,继续如图1所示,数据处理***10可以包括实时计算平台11、元数据中心12和Schema服务13。其中,
实时计算平台11可以至少用于为能够实现流数据实时计算处理的平台,例如Flink SQL实时计算平台。这里的Flink SQL实时计算平台可以用于用户在这个平台上编写SQL语句做Flink实时计算,会使用到各种无数据表结构的数据源如Kafka,Redis,Hbase抽象成的表。
元数据中心12可以至少用于存储各种数据源的元信息。以数据源为Kafka为例,元信息可以包括Kafka所在的集群名、主题topic名称、Schema的类型(比如Protocol Buffer、json等),数据定义文件(比如Protocol Buffer定义文件)等中至少一种。用户可以根据元信息搜索到对应的数据源。
Schema服务13可以至少用于注册、以及管理数据源抽象的表对应的Schema的服务。
需要说明的是,上述数据处理***10的结构框架包括但不限于此,还可为其他结构框架,例如元数据中心12的功能也可以集成到实时计算平台11,需保存这些元信息即可,和/或,Schema服务13的功能也可以集成到实时计算平台11,本公开在此不做限制。
通常,基于SQL的实时计算的数据源,例如分布式发布订阅消息***Kafka、或者其他需要访问如远程数据服务Redis(Remote Dictionary Server)和分布式存储***Hbase(Hadoop DataBase)等数据库,这些数据源的数据格式是一种无Schema(数据表结构)的数据源,进而无法直接编写SQL进行计算。相关技术中,为了实现对无Schema的数据源的实时计算,用户需要编写SQL的DDL(一种数据定义语言)来定义表的Schema。然而,通过编写DDL方式来实现无数据结构的数据源的SQL计算,不仅存在编写DDL过程繁琐且容易出错的问题,尤其是字段较多的情形,需要编写的SQL数量较多更容易出错,而且DDL不支持多层嵌套类型(例如表格嵌套表格类型、数组嵌套数组类型等)或者其他复杂数据类型(例如对象类型、数组类型、结构体类型等)的数据编写,从而会在一定程度上影响对无Schema的数据源的实时计算的难度和可行性,进而在一定程度上制约着对无数据表结构的数据源的实时计算。由此,本公开提供一种数据处理方法、装置、电子设备及存储介质,以至少解决上述至少一种技术问题。
图2是根据一示例性实施例示出的一种数据处理方法的流程图,如图2所示,数据处理方法可以应用于电子设备或数据处理装置,包括以下步骤。
在步骤S201中,在检测到不存在数据源对应的逻辑表时,获取所述数据源的元信息,所述元信息包括数据基本信息和数据定义文件。
其中,所述数据定义文件用于定义数据源的序列化与反序列化的机制。
在一实施方式中,数据源包括需要使用的无数据表结构的目标数据源,例如包括但不限于为分布式发布订阅消息***Kafka、或者其他需要访问如远程数据服务Redis(Remote Dictionary Server)和分布式存储***Hbase(Hadoop DataBase)等。这些数据源中的字段通常是把数据值序列化为如类似0101的字节数组进行存储的,由于没有字段名称和字段类型,也就无法形成表,进而无法编写SQL进行计算。
元信息用于反映数据源的元数据信息。示例性地,这里的元信息至少包括数据基本信息和数据定义文件。
该数据基本信息包括但不限于数据源所在的集群名、主题topic名称、数据源的Schema的类型等。以数据源为Kafka为例,数据源所在的集群名可以为Kafka所在的集群名。数据源的Schema的类型可以包括但不限于为Protocol Buffer、Json等。
该数据定义文件用于定义数据源的序列化与反序列化的机制,其中序列化是指把数据从结构化转换为类似0101的字节数组的二进制数据序列的过程,反序列化是指把序列化的二进制数据序列转换为易于处理和读写的数据结构的过程。例如,该数据定义文件可以包括但不限于为Protocol Buffer定义文件、Json定义文件、Thrift定义文件等。该数据定义文件根据数据源的元信息中的数据源的Schema的类型确定。通过该数据定义文件可以确定无数据表结构的数据源中的各字节数组的字段名称和字段类型,进而确定每个字段名称和字段类型对应的具体值。
这里的逻辑表是经过数据定义后的表,包括字段名称和字段类型。一个实施例中,逻辑表用于向展示给用户,目的是让用户可以基于该逻辑表的字段名称和字段类型编写SQL语句。另一个实施例中,逻辑表用于电子设备基于该逻辑表的字段名称和字段类型生成SQL语句。
在一实施方式中,上述步骤S201,获取所述数据源的元信息的步骤可以分为以下两种情况。
第一种情况:在一可选方式中,所述获取所述数据源的元信息可以包括:
在步骤S301中,若不存在与所述数据源匹配的注册数据源,获取所述数据源对应的数据源信息;
在步骤S302中,根据所述数据源信息注册所述数据源,并获取注册的数据源对应的数据基本信息;
在步骤S303中,获取所述数据源对应的数据定义文件,根据所述数据定义文件和所述数据基本信息确定所述数据源的元信息。
仅作为示例性地,实时计算平台在确定不存在数据源对应的逻辑表时,判断元数据中心是否存在与所述数据源匹配的已注册数据源,若判断不存在与所述数据源匹配的已注册数据源时,获取所述数据源对应的数据源信息。这里的数据源信息包括但不限于为数据源的基本信息、以及Schema对应的文件或者代码链接等,以便于基于该数据源信息获取到数据源并进行注册。接着,获取注册的数据源对应的数据基本信息,以及所述数据源对应的数据定义文件,并根据所述数据定义文件和所述数据基本信息确定所述数据源的元信息。这里的数据定义文件可以与数据源对应,其可以根据数据源预先定义好并进行存储。
第二种情况:在一可选方式中,所述获取所述数据源的元信息包括:
在步骤S301’中,若存在与所述数据源匹配的目标注册数据源,绑定所述注册数据源与所述数据源;
在步骤S302’中,获取所述注册数据源的数据基本信息;
在步骤S303’中,获取所述数据源对应的数据定义文件,并根据所述数据定义文件和所述数据基本信息确定所述注册数据源对应的元信息,所述注册数据源对应的元信息为所述数据源的元信息。
仅作为示例性地,实时计算平台在确定不存在数据源对应的逻辑表时,判断元数据中心是否存在与所述数据源匹配的已注册数据源,若判断存在与所述数据源匹配的注册数据源时,将该注册数据源与数据源进行绑定,之后获取注册数据源对应的数据基本信息、以及数据源对应的数据定义文件,并根据所述数据定义文件和所述数据基本信息确定所述注册数据源对应的元信息,之后将注册数据源对应的元信息作为所述数据源的元信息。这里的数据定义文件也可以与数据源对应,其可以根据数据源预先定义好并进行存储。
上述实施例,在确定不存在数据源对应的逻辑表时,在判定存在匹配的注册数据源时进行绑定,之后基于该注册数据源确定数据源的元信息,减少数据源的重复注册,进一步减少数据处理计算量,同时提高了实时处理效率。在判定不存在匹配的注册数据源时,基于数据源对应的数据源信息自动注册该数据源,提高数据处理的扩展性,减少手动操作。
在步骤S203中,根据所述数据定义文件对所述数据基本信息进行分析,获取所述数据源对应的第一数据表结构Schema信息。
在一实施方式中,基于所述元信息中的数据定义文件,由于数据定义文件中定义数据源的序列化与反序列化的机制,可以基于数据定义文件对数据基本信息进行分析,将数据源中的各字段的字节数组转换为对应的数据值,进而得到字段名称和字段类型,从而基于该字段名称和字段类型生成数据源对应的第一数据表结构Schema信息。
在步骤S205中,获取对所述第一Schema信息的数据表结构调整信息,并基于所述第一Schema信息和所述数据表结构调整信息,获得第二Schema信息;所述第二Schema信息包括字段名称和字段类型。
在一实施方式中,在获取到数据源对应的第一Schema信息之后,可以向用户展示第一Schema信息,以使得用户确认该第一Schema信息是否匹配。具体地,可以向用户展示包括但不限于为字段名称、字段类型、字段描述等内容,以方便用户快速确认获取的第一Schema信息是否匹配。若接收到确定该第一Schema信息匹配的确定操作之后,可以对展示的第一Schema信息的数据结构进行调整操作,比如但不限于为删除字段、修改字段名称、修改字段描述、设置为主键等操作。
本申请实施例实现了对第一Schema信息进行调整操作,即对第一Schema信息进行数据结构调整,从而基于第一Schema信息和数据表结构调整信息得到第二Schema信息,该第二Schema信息包括字段名称和字段类型。
当然,在一些情况下,可以不对第一Schema信息进行任何数据结构的调整操作,此时第一Schema信息和第二Schema信息可以相同。
在步骤S207中,基于所述第二Schema信息中的字段名称和字段类型,将所述数据源注册为逻辑表。
仅作为示例性地,在对第一Schema信息执行了数据结构调整之后,可以触发注册按钮,进而使得实时计算平台将数据源注册为逻辑表。实时计算平台获取到注册表指令时,可以获取到数据源对应的第一Schema信息和数据结构调整信息,也即获得第二Schema信息,并基于该第二Schema信息中的字段名称和字段类型,将数据源注册为逻辑表。这里的逻辑表可以理解为数据库中的视图,是一张虚拟表,该逻辑表可以映射到一张物理表,也可以由多张物理表组成,这些物理表可以来自于不同的数据源。注册得到的逻辑表可以由具有相同含义的字段对应的数据源构成。
在一可选实施方式中,所述步骤S207,基于所述第二Schema信息中的字段名称和字段类型,将所述数据源注册为逻辑表步骤之后,所述方法还可以包括:
在步骤S401中,将所述数据源的第二Schema信息及对应的逻辑表名注册到Schema服务;
在步骤S403中,基于元数据中心存储的数据源对应的实时Schema信息,更新所述Schema服务中第二Schema信息。
仅作为示例性地,在将数据源注册为逻辑表的情况下,可以将数据源的第二Schema信息及对应的逻辑表名绑定并注册到Schema服务中。例如,在Schema服务中的注册内容可以表示为:{(Schema_1,name_1),(Schema_2,name_2),.......,(Schema_n,name_n)},各第二Schema信息(Schema_1~Schema_n)与对应的逻辑表名(name_1~name_n)进行了绑定。由于第二Schema信息与对应的逻辑表名进行了绑定,则两者建立了一一对应的关联关系,以便于后续能够根据逻辑表的表名确定对应的第二Schema信息。这里的Schema服务可以为用于存储Schema信息的程序API(Application Programming Interface,应用程序接口)。
本申请实施例,根据实际需求定时或在需要时对Schema服务中各Schema信息进行动态更新。在动态更新过程中,Schema服务可以从元数据中心中获取数据源的实时Schema信息,并根据该实时Schema信息来动态更新Schema服务中第二Schema信息,也即将Schema服务中第二Schema信息更新为获取的实时Schema信息。
上述实施例,数据源的基本信息的保存和更新在元数据中心进行,实时计算平台获取数据源的元信息并动态解析元信息的实时Schema信息,如此可以避免用户手动变更数据源的字段名和字段类型。在实际应用中,实时计算平台可以是从Schema服务中获取数据源的Schema信息,为了保证数据源的真实Schema(保存在元数据中心)与用户在实时计算平台使用的Schema信息的一致性,Schema服务可以定时或者在需要时自动获取元数据中心的数据源对应的实时Schema信息,并进行更新,这样用户可以实时获取最新的数据源。同时由于数据源的基本信息的保存和更新在元数据中心进行,用户基于实时计算平台获取的Schema信息与元数据中心的真实Schema信息一致,方便了在Schema服务注册后的表能够在多用户之间实现数据共享。
在步骤S209中,获取与所述逻辑表对应的结构化查询语言SQL语句信息,并解析所述SQL语句信息得到逻辑表名和待操作信息,获得所述逻辑表名对应的目标Schema信息。可以理解,所述目标Schema信息为所述数据源对应的最新的Schema信息。
在一实施方式中,所述获取与所述逻辑表对应的结构化查询语言SQL语句信息可以包括:
展示所述数据源对应的第二Schema信息,所述第二Schema信息至少包括字段名称和字段类型;
获取基于所展示的第二Schema信息编写的结构化语言SQL语句信息。
仅作为示例性地,实时计算平台可以向用户展示数据源对应的第二Schema信息,也可以向用户展示包含第二Schema信息的逻辑表。该第二Schema信息至少包括字段名称和字段类型,还可包括逻辑表名、数据源名称、数据源类型等。具体的,可以通过在网页界面上向用户展示数据源对应的第二Schema信息,以便于用户基于该第二Schema信息编写结构化语言SQL语句信息,之后实时计算平台便可以获取该SQL语句信息。
在另一实时方式中,所述获取与所述逻辑表对应的结构化查询语言SQL语句信息可以包括:获取所述数据源对应的第二Schema信息,所述第二Schema信息至少包括字段名称和字段类型;基于所述第二Schema信息生成结构化语言SQL语句信息。
仅作为示例性地,实时计算平台可以自动获取数据源对应的第二Schema信息。该第二Schema信息至少包括字段名称和字段类型,还可包括逻辑表名、数据源名称、数据源类型等。实时计算平台根据获取的第二Schema信息中的字段名称和字段类型,自动生成语法正常的至少一条初始SQL语句信息,接着,可以将生成的初始SQL语句信息展示给用户,用户通过选择操作或确认操作来确定最终的SQL语句信息,以便于实时计算平台基于最终确定的SQL语句信息执行后续操作。如此,可以通过自动编写SQL语句信息来减少用户操作步骤,提高数据处理效率。
在一实施方式中,获取到与逻辑表对应的结构化查询语言SQL语句信息,并解析该SQL语句信息得到逻辑表名和待操作信息。接着,可以从Schema服务中,获得所述逻辑表名对应的目标Schema信息,该目标Schema信息为数据源对应的当前Schema信息。如此,通过将数据源的第二Schema信息及对应的逻辑表名注册到Schema服务,并动态更新Schema服务中各Schema信息,建立了Schema服务与实时计算平台之间的联系,以便于后续根据实时计算平台解析得到的逻辑表名方便快速地从Schema服务中获取对应的目标Schema信息,提高实时计算效率。
仅作为示例,若获取的SQL语句信息为sql=”select ab from table_1”,则通过解析该SQL语句信息得到对应的逻辑表名table_1,之后利用该table_1从Schema服务中获取与所述逻辑表名对应的Schema信息。由于Schema服务中存储的Schema信息与元数据中心对应的数据源是动态更新的,也就是说,Schema服务中的Schema信息可能进行了调整。故而,这里的从Schema服务获得的Schema信息可以为第二Schema信息,也可为更新后的第二Schema信息。接着,获取数据源对应的数据库类型(例如Kafka类型、Redis类型和Hbase类型等至少一种),之后根据合并所获取的Schema信息和数据库类型确定所述数据源对应目标Schema信息。该目标Schema信息包括更丰富的数据结构,更能反映数据源对应的真实数据信息。
上述实施例,通过获取数据源对应的数据库类型,并结合解析SQL语句得到的逻辑表名对应的Schema信息来确定目标Schema信息,使得该目标Schema信息包括更丰富的数据结构,更能反映数据源对应的真实数据信息,便于更好地将该数据源创建为匹配当前任务环境的目标数据表。
在步骤S211中,基于所述目标Schema信息,将所述数据源创建为匹配当前任务环境的目标数据表。
其中,所述当前任务环境为实时计算平台运行的环境,该实时计算平台可以包括但不限于Flink SQL平台、Storm平台、Spark平台等。所述目标数据表包括实时计算平台环境所依赖的表。
示例性的,以实时计算平台为Flink SQL平台为例,则目标数据表为Flink SQL平台能够识别的表,例如该表可以表示为Flink table,这里的当前任务环境为Flink table环境(TableEnvironment)。具体地,Flink SQL平台获取到数据源对应的目标Schema信息,确定目标Schema信息对应的数据库类型,接着基于该数据库类型获得数据源对应的真实数据,进而可以基于该目标Schema信息所提供的数据格式(例如Json,Csv、ProtocolBuffer等)、字段名称和字段类型等和真实数据,在当前环境TableEnv下采用TableEnvironment的例如createTemporary()等方法,将数据源创建为指定输出端且匹配当前任务环境的目标数据表,也即Flink SQL平台能够识别的Flink table。因为这个Flink table在Flink环境下是一个真实的表,可以进行实时运算。
在步骤S213中,根据所述待操作信息,对所述目标数据表进行处理。
在一实施方式中,所述目标数据表包括实时计算平台环境所依赖的表。所述根据所述待操作信息,对所述目标数据表进行处理步骤可以包括:根据所述目标数据表对应的字段名称和字段类型,动态解析所述数据源的数据;对解析得到的数据执行所述待操作信息指示的处理指令。
以Flink SQL平台为例,Flink SQL平台根据Flink table动态解析数据源的数据;之后基于所述待操作信息,对解析得到的数据进行实时处理。这里的实时处理包括但不限于实时查询、实时计算、实施统计、实时搜索、实时监控、实时推荐等中至少一种。
本公开实施例在检测到不存在数据源对应的逻辑表时,获取数据源的元信息;根据元信以及数据表结构调整信息,获取第二Schema信息;获取与由第二Schema信息注册得到的逻辑表对应的SQL语句信息;基于解析SQL语句信息所得的逻辑表名对应的目标Schema信息,将数据源创建为匹配当前任务环境的目标数据表;根据解析SQL语句信息所得的待操作信息,对该目标数据表进行处理。从而可以极大地方便用户在基于类似Flink SQL的实时计算平台上开发实时任务。整个数据源注册和使用表的过程简单,自动加载和更新避免了手动操作;此外数据源注册后可以共享使用,该数据源注册后可以即为逻辑表,方便数据治理,如血缘关系(例如同源同库血缘关系、同源异库血缘关系、异源数据血缘关系等),数据元信息等治理,降低了对无Schema的数据源的实时计算的难度,以及提高实时计算的效率和可行性,同时支持包括多层嵌套类型在内的数据类型的数据处理。
此外,对元数据中心的信息进行获取和动态解析,各种数据源的基本信息保存和更新到一个地方即元数据中心。实时计算平台获取数据源的元信息动态解析Schema信息。这样可以避免用户手动填写以及变更数据源的字段名称和字段类型。Schema服务需定时或者在需要时自动获取元数据中心的数据源对应的实时Schema信息,并进行更新,这样用户可以实时获取最新的数据源,从而可以保证数据源的真实Schema与用户在实时计算平台使用的Schema信息的一致性。同时由于数据源的基本信息的保存和更新在元数据中心进行,用户基于实时计算平台获取的Schema信息与元数据中心的真实Schema信息同步,方便了在Schema服务注册后的表能够在多用户之间实现数据共享。数据源的元信息都存储在元数据中心,方便了各种数据源的统计和管理,比如数据源之间的血缘关系、数据源和逻辑表之间的关系,极大地方便了数据治理。数据源可以方便地进行数据探查和数据预览,数据源的Schema信息都管理在元数据中心和Schema服务中,用户可以方便地在数据开发平台预览数据源的内容如Kafka消息等。正常情况下,如果需要预览Kafka的消息还需要单独编写程序,而本申请无需额外手动编写程序,即可通过元数据中心和Schema服务,在数据开发平台预览数据源的Kafka消息,省去了手动程序编写步骤,不仅简化了数据预览过程,而且提高了实时处理效率。
在一可选实施方式中,所述方法还可包括:
在检测到存在数据源对应的逻辑表的情况下,从Schema服务中获取所述逻辑表对应的目标Schema信息。
仅作为示例性地,实时计算平台可以检索本地是否存在数据源对应的逻辑表,若检测到存在数据源对应的逻辑表时,说明之前有用户已经在实时计算平台中注册过该逻辑表,如此可以无需重复注册逻辑表,获取检索到的该逻辑表的逻辑表名。这里的Schema服务可以为上述应用环境图中的Schema服务,Schema服务中可以存储有逻辑表名和Schema信息的映射关系,该映射关系可以通过向Schema服务中对应注册逻辑表和Schema信息的方式实现。接着,根据该逻辑表名从Schema服务中获取与该逻辑表名对应的目标Schema信息。
上述实施例,通过检测是否存在数据源对应的逻辑表,当检测到存在该逻辑表时,直接利用该逻辑表来获取第二Schema信息,而当前用户无需重复注册数据源对应的逻辑表,可以减少数据处理的计算量,提高了实时计算的效率,同时实现了注册后的表在多个用户之间的共享。
图5是根据一示例性实施例示出的一种数据处理方法的部分流程图,如图5所示,数据处理方法可以应用于电子设备或数据处理装置,以该电子设备为上述实施环境示意图中数据处理***以及实时计算平台为Flink SQL平台为例进行说明,包括以下步骤。
在步骤S501中,在实时计算平台检索是否存在数据源对应的逻辑表,若存在则实时计算平台使用该逻辑表,并执行步骤S503中部分步骤及后续步骤;若不存在则执行步骤S502。
在步骤S502中,检索元数据中心是否存在数据源对应的注册数据源,若存在,则在实时计算平台绑定注册数据源与数据源,并根据获取的注册数据源的数据基本信息和数据源对应的数据定义文件,确定数据源对应的元信息;若不存在,则获取数据源对应的数据源信息,并根据该数据源信息在元数据中心注册数据源,以及根据获取的注册数据源对应的数据基本信息和数据源对应的数据定义文件,确定数据源对应的元信息。
在步骤S503中,实时计算平台根据数据定义文件对数据基本信息进行分析,获取数据源对应的第一数据表结构Schema信息,获取对第一Schema信息的数据表结构调整信息(如删除字段、修改字段名称、修改字段描述、设置为主键等调整操作信息);并基于第一Schema信息(如包括(字段1,类型1)、(字段2,类型2)和(字段3,类型3))和所述数据表结构调整信息(如删除字段2的调整操作信息),获得第二Schema信息(如(字段1,类型1)和(字段3,类型3));该第二Schema信息包括字段名称和字段类型;基于第二Schema信息中的字段名称和字段类型,将该数据源注册为逻辑表;展示数据源的Schema信息如字段名称字段类型,并向Schema服务发送注册信息,注册信息包括数据源的Schema信息。
Schema服务定时或者在实时计算平台请求时,获取元数据中心的数据源的变更信息(如字段名称和/或字段类型的调整信息),并动态更新数据源Schema信息。
在步骤S504中,用户根据实时计算平台展示的数据源的字段名称字段类型编写SQL语句信息,无需DDL创建数据源和表。实时计算平台接收SQL语句信息。
在步骤S505中,实时计算平台解析该SQL语句信息得到逻辑表名和待操作信息,并根据该逻辑表名从Schema服务获取对应Schema信息。
在步骤S506中,实时计算平台基于该Schema信息创建数据源对应的Flink Table;Flink作业运行时,根据待操作信息和对应的Flink Table动态的解析数据源的数据,完成实时计算。
关于本实施例中的方法,其具体方式和有益效果已经在前述方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种数据处理装置框图。参照图6,该装置包括:
第一获取模块610,被配置为执行在检测到不存在数据源对应的逻辑表时,获取所述数据源的元信息,所述元信息包括数据基本信息和数据定义文件;所述数据定义文件用于定义数据源的序列化与反序列化的机制;
第二获取模块620,被配置为执行根据所述数据定义文件对所述数据基本信息进行分析,获取所述数据源对应的第一数据表结构Schema信息;
第三获取模块630,被配置为执行获取对所述第一Schema信息的数据表结构调整信息,并基于所述第一Schema信息和所述数据表结构调整信息,获得第二Schema信息;所述第二Schema信息包括字段名称和字段类型;
注册模块640,被配置为执行基于所述第二Schema信息中的字段名称和字段类型,将所述数据源注册为逻辑表;
解析模块650,被配置为执行获取与所述逻辑表对应的结构化查询语言SQL语句信息,并解析所述SQL语句信息得到逻辑表名和待操作信息,获得所述逻辑表名对应的目标Schema信息;
第一处理模块660,被配置为执行基于所述目标Schema信息,将所述数据源创建为匹配当前任务环境的目标数据表;
第二处理模块670,被配置为执行根据所述待操作信息,对所述目标数据表进行处理。
作为一种可选的实施方式,所述第一获取模块包括:
第一获取子模块,被配置为执行若不存在与所述数据源匹配的注册数据源,获取所述数据源对应的数据源信息;
第二获取子模块,被配置为执行根据所述数据源信息注册所述数据源,获取注册数据源对应的数据基本信息;
第一确定子模块,被配置为执行获取所述数据源对应的数据定义文件,并根据所述数据定义文件和所述数据基本信息确定所述数据源的元信息。
作为一种可选的实施方式,所述第一获取模块包括:
绑定子模块,被配置为执行若存在与所述数据源匹配的注册数据源,绑定所述注册数据源与所述数据源;
第三获取子模块,被配置为执行获取所述注册数据源的数据基本信息;
第二确定子模块,被配置为执行获取所述数据源对应的数据定义文件,并根据所述数据定义文件和所述数据基本信息确定所述注册数据源对应的元信息,所述注册数据源对应的元信息为所述数据源的元信息。
作为一种可选的实施方式,所述装置还包括:
注册模块,被配置为执行将所述数据源的第二Schema信息及对应的逻辑表名注册到Schema服务;
更新模块,被配置为执行基于元数据中心存储的数据源对应的实时Schema信息,更新所述Schema服务中所述第二Schema信息。
作为一种可选的实施方式,所述解析模块包括:
展示子模块,被配置为执行展示所述逻辑表对应的第二Schema信息;
第四获取子模块,被配置为执行获取基于所展示的第二Schema信息编写的结构化语言SQL语句信息。
作为一种可选的实施方式,所述第二处理模块包括:
第一处理子模块,被配置执行根据所述目标数据表对应的字段名称和字段类型,动态解析所述数据源的数据;
第二处理子模块,被配置执行对解析得到的数据执行所述待操作信息指示的处理指令。
作为一种可选的实施方式,所述装置还包括:
第四获取模块,被配置执行在检测到存在数据源对应的逻辑表的情况下,从Schema服务中获取所述逻辑表对应的目标Schema信息。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种电子设备的框图。参照图7,电子设备包括处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行存储器上所存放的指令时,实现上述实施例中任一数据处理方法的步骤。
该电子设备可以终端、服务器或者类似的运算装置,以该电子设备是服务器为例,图7是根据一示例性实施例示出的一种用于数据处理方法的电子设备的框图,该电子设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(Central Processing Units,CPU)710(处理器710可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器730,一个或一个以上存储应用程序723或数据722的存储介质720(例如一个或一个以上海量存储设备)。其中,存储器730和存储介质720可以是短暂存储或持久存储。存储在存储介质720的程序可以包括一个或一个以上模块,每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器710可以设置为与存储介质720通信,在电子设备700上执行存储介质720中的一系列指令操作。
电子设备700还可以包括一个或一个以上电源760,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口740,和/或,一个或一个以上操作***721,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
输入输出接口740可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备700的通信供应商提供的无线网络。在一个实例中,输入输出接口740包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个示例性实施例中,输入输出接口740可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子设备的结构造成限定。例如,电子设备700还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由电子设备700的处理器执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述任一种实施方式中提供的数据处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
在检测到不存在数据源对应的逻辑表时,获取所述数据源的元信息,所述元信息包括数据基本信息和数据定义文件;所述数据定义文件用于定义数据源的序列化与反序列化的机制;
根据所述数据定义文件对所述数据基本信息进行分析,获取所述数据源对应的第一数据表结构Schema信息;
获取对所述第一Schema信息的数据表结构调整信息,并基于所述第一Schema信息和所述数据表结构调整信息,获得第二Schema信息;所述第二Schema信息包括字段名称和字段类型;
基于所述第二Schema信息中的字段名称和字段类型,将所述数据源注册为逻辑表;
获取与所述逻辑表对应的结构化查询语言SQL语句信息,并解析所述SQL语句信息得到逻辑表名和待操作信息,获得所述逻辑表名对应的目标Schema信息;
基于所述目标Schema信息,将所述数据源创建为匹配当前任务环境的目标数据表;
根据所述待操作信息,对所述目标数据表进行处理。
2.根据权利要求1所述的方法,其特征在于,所述获取所述数据源的元信息包括:
若不存在与所述数据源匹配的注册数据源,获取所述数据源对应的数据源信息;
根据所述数据源信息注册所述数据源,并获取注册数据源对应的数据基本信息;
获取所述数据源对应的数据定义文件,根据所述数据定义文件和所述数据基本信息确定所述数据源的元信息。
3.根据权利要求1所述的方法,其特征在于,所述获取所述数据源的元信息包括:
若存在与所述数据源匹配的注册数据源,绑定所述注册数据源与所述数据源;
获取所述注册数据源的数据基本信息;
获取所述数据源对应的数据定义文件,并根据所述数据定义文件和所述数据基本信息确定所述注册数据源对应的元信息,所述注册数据源对应的元信息为所述数据源的元信息。
4.根据权利要求1-3任一所述的方法,其特征在于,所述基于所述第二Schema信息中的字段名称和字段类型,将所述数据源注册为逻辑表步骤之后,所述方法还包括:
将所述数据源的第二Schema信息及对应的逻辑表名注册到Schema服务;
基于元数据中心存储的数据源对应的实时Schema信息,更新所述Schema服务中所述第二Schema信息。
5.根据权利要求4所述的方法,其特征在于,所述获取与所述逻辑表对应的结构化查询语言SQL语句信息步骤包括:
展示所述逻辑表对应的第二Schema信息;
获取基于所展示的第二Schema信息编写的结构化语言SQL语句信息。
6.根据权利要求1-3任一所述的方法,其特征在于,所述根据所述待操作信息,对所述目标数据表进行处理步骤包括:
根据所述目标数据表对应的字段名称和字段类型,动态解析所述数据源的数据;
对解析得到的数据执行所述待操作信息指示的处理指令。
7.一种数据处理装置,其特征在于,包括:
第一获取模块,被配置为执行在检测到不存在数据源对应的逻辑表时,获取所述数据源的元信息,所述元信息包括数据基本信息和数据定义文件;所述数据定义文件用于定义数据源的序列化与反序列化的机制;
第二获取模块,被配置为执行根据所述数据定义文件对所述数据基本信息进行分析,获取所述数据源对应的第一数据表结构Schema信息;
第三获取模块,被配置为执行获取对所述第一Schema信息的数据表结构调整信息,并基于所述第一Schema信息和所述数据表结构调整信息,获得第二Schema信息;所述第二Schema信息包括字段名称和字段类型;
注册模块,被配置为执行基于所述第二Schema信息中的字段名称和字段类型,将所述数据源注册为逻辑表;
解析模块,被配置为执行获取与所述逻辑表对应的结构化查询语言SQL语句信息,并解析所述SQL语句信息得到逻辑表名和待操作信息,获得所述逻辑表名对应的目标Schema信息;
第一处理模块,被配置为执行基于所述目标Schema信息,将所述数据源创建为匹配当前任务环境的目标数据表;
第二处理模块,被配置为执行根据所述待操作信息,对所述目标数据表进行处理。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的数据处理方法。
9.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至6中任一项所述的数据处理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111047311.XA CN113946574A (zh) | 2021-09-06 | 2021-09-06 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111047311.XA CN113946574A (zh) | 2021-09-06 | 2021-09-06 | 数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113946574A true CN113946574A (zh) | 2022-01-18 |
Family
ID=79328166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111047311.XA Pending CN113946574A (zh) | 2021-09-06 | 2021-09-06 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113946574A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115455010A (zh) * | 2022-11-09 | 2022-12-09 | 以萨技术股份有限公司 | 一种基于milvus数据库的数据处理方法、电子设备及存储介质 |
-
2021
- 2021-09-06 CN CN202111047311.XA patent/CN113946574A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115455010A (zh) * | 2022-11-09 | 2022-12-09 | 以萨技术股份有限公司 | 一种基于milvus数据库的数据处理方法、电子设备及存储介质 |
CN115455010B (zh) * | 2022-11-09 | 2023-02-28 | 以萨技术股份有限公司 | 一种基于milvus数据库的数据处理方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11860874B2 (en) | Multi-partitioning data for combination operations | |
US10928970B2 (en) | User-interface for developing applications that apply machine learning | |
US11277498B2 (en) | Method, apparatus and system for processing data | |
US10055509B2 (en) | Constructing an in-memory representation of a graph | |
US8239423B2 (en) | System and method for semantic exposure of data stored in a dynamic schema | |
US10565199B2 (en) | Massively parallel processing database middleware connector | |
CN106326381B (zh) | 基于MapDB构建的HBase数据检索方法 | |
US11907246B2 (en) | Methods, systems, and computer readable mediums for performing a free-form query | |
US10445316B2 (en) | Dynamic generation of database queries in query builders | |
US11762775B2 (en) | Systems and methods for implementing overlapping data caching for object application program interfaces | |
US11520733B2 (en) | Source data assignment based on metadata | |
US20230334046A1 (en) | Obtaining inferences to perform access requests at a non-relational database system | |
US11507591B2 (en) | Methods, systems, and computer readable mediums for command engine execution | |
CN113190517B (zh) | 数据集成方法、装置、电子设备和计算机可读介质 | |
CN113946574A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113760961B (zh) | 数据查询方法和装置 | |
US20140047377A1 (en) | Retrieving data from an external data source | |
CN114443599A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
WO2023164294A1 (en) | Query splitter for an inverted index datastore | |
CN113961569B (zh) | 一种医疗数据etl任务同步方法和装置 | |
US11347732B1 (en) | JSON persistence service | |
US11556316B2 (en) | Distributed extensible dynamic graph | |
US10114864B1 (en) | List element query support and processing | |
US11789971B1 (en) | Adding replicas to a multi-leader replica group for a data set | |
CN113424174A (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 |