hbase的表映射到hive中

简介: 1.本文主要说一下怎么把hbase中的表映射到hive中,说之前我们先简单说一下hive的内部表和外部表的区别;(1),被external关键字修饰的表是外部表,没有被external关键字修饰的表是内部表.(2),内部表数据由Hive自身管理,外部表数据由HDFS管理.(3),内部表数据存储的位置是hive.metastore.warehouse.dir.外部表数据的存储位置由自己确定.(4),删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;

1.本文主要说一下怎么把hbase中的表映射到hive中,说之前我们先简单说一下hive的内部表和外部表的区别;


(1),被external关键字修饰的表是外部表,没有被external关键字修饰的表是内部表.


(2),内部表数据由Hive自身管理,外部表数据由HDFS管理.


(3),内部表数据存储的位置是hive.metastore.warehouse.dir.外部表数据的存储位置由自己确定.


(4),删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;


2.建表语句


(1)内部表:


CREATE TABLE `spark_error_info`(
  `data` string COMMENT '报错的数据',
  `error_time` string COMMENT '报错的时间',
  `error_info` string COMMENT '报错信息'
 )
ROW FORMAT DELIMITED 
  FIELDS TERMINATED BY ' ' 
  LINES TERMINATED BY '\n';
加载数据:  load data local inpath '/home/hdfs/data' overwrite into table spark_error_info;


(2),外部表:


create external table test2(id int,name string,age int,tel string)
     ROW FORMAT DELIMITED
     FIELDS TERMINATED BY ','
     STORED AS TEXTFILE
     location '/user/hive/external/test';


加载数据:  load data local inpath '/home/hdfs/data' overwrite into table test2;


(3)外部表(hbase表映射到hive中)


CREATE EXTERNAL TABLE cbd_cds.jason_test(
key string,
shop string,
future_end_time string
)   
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'   
WITH SERDEPROPERTIES ("hbase.columns.mapping" =":key,f1:shop,f1:future_end_time")   
TBLPROPERTIES("hbase.table.name" = "cbd:test");


注意点:


   1、hbase中的空cell在hive中会补null


   2、hive和hbase中不匹配的字段会补null


   3、Bytes类型的数据,建hive表示加#b


   4、其中:key代表的是hbase中的rowkey,hive中也要有一个key与之对应,不然会报错,f1指的是hbase的列族.创建完后,会自动把hbase表里的数据同步到hive中,


(4)分区表


CREATE TABLE `test_partition`(
`data` string COMMENT 'json数据',
`enter_time` string COMMENT '入库时间'
 )
partitioned by (day_time string)
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ' ' 
LINES TERMINATED BY '\n';


加载数据:load data local inpath '/root/test/jason' into table test_partition partition(day_time='2018-08-03');指定数据具体导入哪个分区中.


注意:


----fields terminated by '\t'  通过'\t'分割字段

----lines terminated by '\n'   通过'\n'结束一行字段

相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
SQL 存储 HIVE
Hive中的表是如何定义的?请解释表的结构和数据类型。
Hive中的表是如何定义的?请解释表的结构和数据类型。
58 0
|
2月前
|
SQL 消息中间件 数据处理
DataX读取Hive Orc格式表丢失数据处理记录
DataX读取Hive Orc格式表丢失数据处理记录
166 0
|
2月前
|
机器学习/深度学习 分布式计算 Hadoop
一种HBase表数据迁移方法的优化
一种HBase表数据迁移方法的优化
68 0
|
2月前
|
SQL 关系型数据库 MySQL
Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
【2月更文挑战第9天】Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
134 7
|
5天前
|
SQL 缓存 关系型数据库
ClickHouse(19)ClickHouse集成Hive表引擎详细解析
Hive引擎允许对HDFS Hive表执行 `SELECT` 查询。目前它支持如下输入格式: -文本:只支持简单的标量列类型,除了 `Binary` - ORC:支持简单的标量列类型,除了`char`; 只支持 `array` 这样的复杂类型 - Parquet:支持所有简单标量列类型;只支持 `array` 这样的复杂类型
17 1
|
2月前
|
SQL Java 分布式数据库
实现HBase表和RDB表的转化(附Java源码资源)
该文介绍了如何将数据从RDB转换为HBase表,主要涉及三个来源:RDB Table、Client API和Files。文章重点讲解了RDB到HBase的转换,通过批处理思想,利用RDB接口批量导出数据并转化为`List<Put>`,然后导入HBase。目录结构包括配置文件、RDB接口及实现类、HBase接口及实现类,以及一个通用转换器接口和实现。代码中,`RDBImpl`负责从RDB读取数据并构造`Put`对象,`HBaseImpl`则负责将`Put`写入HBase表。整个过程通过配置文件`transfer.properties`管理HBase和RDB的映射关系。
33 3
实现HBase表和RDB表的转化(附Java源码资源)
|
2月前
|
SQL 关系型数据库 MySQL
Hive 表注释乱码解决
Hive元数据在MySQL默认使用`latin1`字符集导致注释乱码。可通过修改MySQL配置文件`/etc/my.cnf`,在`[mysqld]`和末尾添加`character-set-server=utf8`等设置,重启MySQL。然后在Hive数据库中调整表字段、分区字段、索引注释的字符集。注意,这仅对新表生效。测试创建带注释的Hive表,问题解决。
|
2月前
|
SQL HIVE
Hive表删除数据不支持使用Delete From...
Hive表删除数据不支持使用Delete From...
30 0
|
2月前
|
SQL 存储 分布式计算
【Hive】hive内部表和外部表的区别
【4月更文挑战第14天】【Hive】hive内部表和外部表的区别
|
2月前
|
SQL 存储 分布式计算
Hive【基础 01】核心概念+体系架构+数据类型+内容格式+存储格式+内外部表(部分图片来源于网络)
【4月更文挑战第6天】Hive【基础 01】核心概念+体系架构+数据类型+内容格式+存储格式+内外部表(部分图片来源于网络)
54 1