【技术实现步骤摘要】
数据导入Phoenix的方法及装置
本申请涉及数据处理
,尤其涉及一种数据导入Phoenix的方法及装置。
技术介绍
本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。Phoenix是构建在HBase上的一个结构化查询语言(StructuredQueryLanguage,SQL)框架组件,HBase是一个分布式的、面向列的开源数据库,其数据存储于分布式文件系统(HadoopDistributedFileSystem,HDFS)之上,有很好的备份机制,是适合于非结构化数据存储的数据库。Phonix的数据存储在Hbase中,可使用SQL语句来执行创建Hbase的表、删除表、插入更新数据、删除数据以及分析数据等操作,而不需要使用Hbase的API来操作表,因此Phoenix可以解决Hbase的客户端操作复杂的问题。Phoenix官方提供的Spark数据源接口可以将数据写入到Phoenix。在数据写入过程中,数据源的数据文件,经过处理后,形成多个Spark的分区(分区是Spark的最小的数据逻辑处理单元,一个分区对应Spark的一个任务(task)来处理),每个Spark分区均会请求一次Hbase的从节点RegionServer。在实际的数据导入到Phoenix场景中,由于数据文件非常多,或者数据文件大,将会产生很多的分区,相应的分区请求RegionServer的次数会比较多。这样Spark将频繁与RegionServer交互,会导致 ...
【技术保护点】
1.一种数据导入Phoenix的方法,其特征在于,所述方法包括:/n读取Phoenix的元数据系统表,查找数据文件导入的目标Hbase表对应的Phoenix表在元数据系统表中的存储信息;/n根据所述存储信息确定与Phoenix表对应的目标Hbase表的类型;/n按照目标Hbase表的类型将数据文件转换为目标Hbase表对应的HDFS文件;/n将HDFS文件导入目标Hbase表对应的HDFS文件目录中。/n
【技术特征摘要】
1.一种数据导入Phoenix的方法,其特征在于,所述方法包括:
读取Phoenix的元数据系统表,查找数据文件导入的目标Hbase表对应的Phoenix表在元数据系统表中的存储信息;
根据所述存储信息确定与Phoenix表对应的目标Hbase表的类型;
按照目标Hbase表的类型将数据文件转换为目标Hbase表对应的HDFS文件;
将HDFS文件导入目标Hbase表对应的HDFS文件目录中。
2.根据权利要求1所述的方法,其特征在于,在读取Phoenix的元数据系统表之前,所述方法还包括:
获取用户对于索引的需求;
创建Phoenix表,并根据用户用于索引的需求确定创建索引以及创建的索引类型,或者不创建索引;
当Phoenix表和/或索引创建完成后,Phoenix表的表名和/或索引名称映射至Phoenix元数据系统表中,Phoenix表和/或索引对应的Hbase表自动生成。
3.根据权利要求2所述的方法,其特征在于,自动生成的Hbase表的类型包括三类,第一类是不包含索引且与Phoenix表同名的第一Hbase表,第二类是包含本地索引且与Phoenix表同名的第二Hbase表,第三类是包含全局索引且与全局索引的名称相同的第三Hbase表;
所述Phoenix表和/或索引对应的Hbase表自动生成,包括:
如果未创建索引,则生成一张第一Hbase表;
如果创建的索引为本地索引,则生成一张第二Hbase表;
如果创建的索引为全局索引,则生成一张第一Hbase表,以及数量与创建的全局索引的数量相同的第三Hbase表;
如果创建的索引中同时包含本地索引和全局索引,则生成一张第二Hbase表,以及数量与创建的全局索引的数量相同的第三Hbase表。
4.根据权利要求3所述的方法,其特征在于,根据所述存储信息确定与Phoenix表对应的目标Hbase表的类型,包括:
确定所述存储信息中是否包含索引名称;
如果不包含索引名称,则确定目标Hbase表为第一Hbase表;
如果包含至少一个索引名称,则根据每个索引名称查找Phoenix中是否存储与索引名称相同的Hbase表;
如果没有查找到与任何一个索引名称相同名称的Hbase表,则所述至少一个索引全部为本地索引,目标Hbase表为第二Hbase表;
如果查找到与至少一个索引名称中部分索引名称相同名称的Hbase表,则确定所述至少一个索引中同时包含本地索引和全局索引,目标Hbase表为一张第二Hbase表,以及数量与全局索引的数量相同的第三Hbase表;
如果查找到与至少一个索引名称中全部索引名称相同名称的Hbase表,则确定所述至少一个索引全部为全局索引,目标Hbase为一张第一Hbase表,以及数量与全局索引的数量相同的第三Hbase表。
5.根据权利要求4所述的方法,其特征在于,所述将数据文件转换为目标Hbase表对应的HDFS文件,包括:
如果目标Hbase表中包括第一Hbase表,则按照第一Hbase表对应的HDFS文件的格式将数据文件转换为第一HDFS文件;
如果目标Hbase表中包括第二Hbase表,则按照第二Hbase表对应的HDFS文件的格式将数据文件转换为第二HDFS文件;
如果目标Hbase表中包括第三Hbase表,则按照第三Hbase表对应的HDFS文件的格式将数据文件转换为第三HDFS文件。
6.根据权利要求5所述的方法,其特征在于,将HDFS文件导入目标Hbase表对应的HDFS文件目录中,包括:
将第一HDFS文件导入第一Hbase表对应的HDFS文件目录中;
将第二HDFS文件导入第二Hbase表对应的HDFS文件目录中;
将第三HDFS文件导入第三Hbase表对应的HDFS文件目录中。
7.根据权利要求1所述的方法,其特征在于,在读取Phoenix的元数据系统表之前,所述方法还包括:
继承Spark的数据源相关的接口和类RelationProvider、CreatableRelationProvider和DataSourceRegister;
重定义继承的接口和类中用于导入数据的算法shortName和createRelation,其中,重定义shortName算法返回的字符串;重定义creatRelation算法中sqlContext参数指示的上下文变量、mode参数指示的数据保存模式、parameters参数指示的外部传入的自定义参数以及data参数指示的待保存数据;
其中,算法shortName和createRelation用于将目标Hbase表导入Phoenix中。
8.一种数据导入Phoenix的装置,其特征在于,所述装置包括:
查找模块,用于读取Phoenix的...
【专利技术属性】
技术研发人员:周朝卫,
申请(专利权)人:中盈优创资讯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。