一种基于presto的数据加载方法、装置及电子设备制造方法及图纸

技术编号:37369739 阅读:13 留言:0更新日期:2023-04-27 07:15
本发明专利技术属于数据处理技术领域,具体涉及一种基于presto的数据加载方法、装置及电子设备,该方法通过获取用户输入的数据库SQL语句,根据该数据库SQL语句配置kafka schema的映射关系,其中,kafka schema定义了presto和kafka元数据两者的映射关系,根据该数据库SQL语句加载kafka元数据,实现presto动态加载kafka数据,避免了重新启动presto主节点,解决现有的presto加载kafka数据时由于重新启动presto主节点,而无法对外提供服务的问题。而无法对外提供服务的问题。而无法对外提供服务的问题。

【技术实现步骤摘要】
一种基于presto的数据加载方法、装置及电子设备


[0001]本专利技术属于数据处理
,具体涉及一种基于presto的数据加载方法、装置及电子设备。

技术介绍

[0002]Presto是Facebook开源的MPP(Massive Parallel Processing)SQL引擎,其理念来源于一个叫Volcano的并行数据库,该数据库提出了一个并行执行SQL的模型,它被设计为用来专门进行高速、实时的数据分析。Presto是一个SQL计算引擎,分离计算层和存储层,其不存储数据,通过Connector SPI实现对各种数据源(Storage)的访问。Kafka最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。
[0003]目前,现有Presto查询Kafka中数据,是通过将一个静态的配置文件JSON来定义kafka schema,该schema定义了Kafka消息数据中field到Presto表中的column映射关系。现有的方案存在如下问题:
[0004]1、如果schema发生变化,比如Kafka需要新增一个字段映射,或者删除一个字段映射,都需要重新编辑配置文件保存最新的映射关系,并且还需要重新启动Presto主节点实例来加载最新的schema。
[0005]2、如果Kafka的某个topic下线,则意味着Presto中相对table需要清除,此时,需要重启Presto主节点实例来刷新内存的元数据信息。
[0006]对于上述问题都需要重新启动Presto主节点,这就意味着需要停止Presto服务,期间Presto无法对外提供服务,用户的体验上不友好。

技术实现思路

[0007]有鉴于此,本专利技术的目的在于提供一种基于presto的数据加载方法、装置及电子设备,以解决现有的presto加载kafka数据时由于重新启动presto主节点,而无法对外提供服务的问题。
[0008]根据本专利技术实施例的第一方面,提供一种基于presto的数据加载方法,包括:
[0009]获取用户输入的数据库SQL语句;其中,所述数据库SQL语句用于配置kafka schema的映射关系,所述kafka schema用于定义presto和kafka元数据两者的映射关系;
[0010]根据所述数据库SQL语句加载kafka元数据。
[0011]优选地,所述根据所述数据库SQL语句加载kafka元数据,包括:
[0012]对所述数据库SQL语句进行解析,确定语法信息、目标表信息,和/或,附加信息;
[0013]根据所述语法信息、目标表信息,和/或,所述附加信息配置kafka schema的映射关系;
[0014]根据所述映射关系加载所述kafka元数据。
[0015]优选地,所述根据所述语法信息、目标表信息,和/或,所述附加信息配置kafka schema的映射关系,包括:
[0016]若所述语法信息为create table语句,则将所述目标表信息以及所述附加信息组装kafka schema的映射关系;
[0017]若所述语法信息为alter table语句,则根据所述确定目标表信息更新kafka schema的映射关系;
[0018]若所述语法信息为drop table语句,则根据所述确定目标表信息删除kafka schema的映射关系。
[0019]优选地,所述目标表信息至少包括一项:表名、列信息;其中,所述表名存储在table中,所述table用来存储配置kafka schema的映射关系的所述表名,所述列信息存储在columns中,所述columns用来存储配置kafka schema的映射关系的所述列信息;所述附加信息存储在properties中,所述properties用来存储配置kafka schema的映射关系的所述附加信息
[0020]优选地,所述方法包括:
[0021]将所述映射关系存储在redis中;其中,所述映射关系为JSON格式数据。
[0022]优选地,所述方法还包括:
[0023]显示加载好的所述kafka元数据。根据本专利技术实施例的第二方面,提供一种基于presto的数据加载装置,包括:
[0024]获取模块,用于获取用户输入的的数据库SQL语句;其中,所述数据库SQL语句用于配置kafka schema的映射关系,所述kafka schema用于定义presto和kafka元数据两者的映射关系;
[0025]加载模块,用于根据所述数据库SQL语句加载kafka元数据;
[0026]存储模块,用于存储所述映射关系;
[0027]显示模块,用于显示加载好的所述kafka元数据。
[0028]根据本专利技术实施例的第三方面,提供一种电子设备,包括:上述所述基于presto的数据加载装置。
[0029]本专利技术的实施例提供的技术方案可以包括以下有益效果:
[0030]通过获取用户输入的数据库SQL语句,根据该数据库SQL语句配置kafka schema的映射关系,其中,kafka schema定义了presto和kafka元数据两者的映射关系,根据该数据库SQL语句加载kafka元数据,实现presto动态加载kafka数据,避免了重新启动presto主节点,解决现有的presto加载kafka数据时由于重新启动presto主节点,而无法对外提供服务的问题。
[0031]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0032]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。
[0033]图1是根据一示例性实施例示出的一种基于presto的数据加载方法的流程图;
[0034]图2是根据另一示例性实施例示出的一种基于presto的数据加载方法的流程图;
[0035]图3是根据一示例性实施例示出的一种基于presto的数据加载装置的框图示意图。
具体实施方式
[0036]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术的一些方面相一致的装置和方法的例子。
[0037]请参阅图1,图1是根据一示例性实施例示出的一种基于presto的数据加载方法的流程图,如图1所示,该基于presto的数据加载方法包括:
[0038]步骤S1本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于presto的数据加载方法,其特征在于,包括:获取用户输入的数据库SQL语句;其中,所述数据库SQL语句用于配置kafkaschema的映射关系,所述kafka schema用于定义presto和kafka元数据两者的映射关系;根据所述数据库SQL语句加载kafka元数据。2.根据权利要求1所述的方法,其特征在于,所述根据所述数据库SQL语句加载kafka元数据,包括:对所述数据库SQL语句进行解析,确定语法信息、目标表信息,和/或,附加信息;根据所述语法信息、目标表信息,和/或,所述附加信息配置kafka schema的映射关系;根据所述映射关系加载所述kafka元数据。3.根据权利要求2所述的方法,其特征在于,所述根据所述语法信息、目标表信息,和/或,所述附加信息配置kafka schema的映射关系,包括:若所述语法信息为create table语句,则将所述目标表信息以及所述附加信息组装kafka schema的映射关系;若所述语法信息为alter table语句,则根据所述确定目标表信息更新kafka schema的映射关系;若所述语法信息为drop table语句,则根据所述确定目标表信息删除kafka schema的映射关系。4.根据权利要求3所述的方法,其特征在于,所述目...

【专利技术属性】
技术研发人员:秦瑞
申请(专利权)人:上海中通吉网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1