在之前的博文中提到,hive的表数据是能够同步到impala中去的。

一般impala是提供实时查询操作的,像比較耗时的入库操作我们能够使用hive。然后再将数据同步到impala中。另外,我们也能够在hive中创建一张表同一时候映射hbase中的表。实现数据同步。

以下。笔者依次进行介绍。

一、impala与hive的数据同步

首先,我们在hive命令行运行show databases;能够看到有以下几个数据库:



然后,我们在impala相同运行show databases;能够看到:



眼下的数据库都是一样的。

以下,我们在hive里面运行create database qyk_test;创建一个数据库,例如以下:



然后,我们使用qyk_test这个数据库创建一张表,运行create table user_info(id bigint, account string, name string, age int) row format delimited fields terminated by ‘\t’;例如以下:



此时。我们已经在hive这边创建好了,然后直接在impala这边运行show databases;能够看到:



连qyk_test这个数据库都没有。

接下来。我们在impala运行INVALIDATE METADATA;然后再查询能够看到:



数据库和表都会同步过来。

好了,笔者来做个总结:

假设在hive里面做了新增、删除数据库、表或者数据等更新操作,须要运行在impala里面运行INVALIDATE METADATA;命令才干将hive的数据同步impala。

假设直接在impala里面新增、删除数据库、表或者数据。会自己主动同步到hive,无需运行不论什么命令。

二、hive与hbase的数据同步

首先,我们在hbase中创建一张表create ‘user_sysc’, {NAME => ‘info’},然后,我们在hive中运行

CREATE EXTERNAL TABLE user_sysc (key int, value string) ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe'
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ( 'serialization.format'='\t', 'hbase.columns.mapping'=':key,info:value', 'field.delim'='\t')
TBLPROPERTIES ('hbase.table.name'='user_sysc')

创建一张外部表指向hbase中的表,然后,我们在hive运行insert into table user_sysc select id,name from user_info;入一步份数据到user_sysc能够看到:



然后。我们在hbase里面运行scan ‘user_sysc’能够看到:



接下来,我们在hbase里面运行deleteall ‘user_sysc’, ‘11’删掉一条数据。例如以下:



然后。我在hive里面查询看看。例如以下:



说明自己主动同步过来了。因此,仅仅要创建hive表时。与hbase中的表做了映射。表名和字段名能够不一致,之后不管在hbase中新增删除数据还是在hive中。都会自己主动同步。

假设在hive里面是创建的外部表须要在hbase中先创建。内部表则会在hbase中自己主动创建指定的表名。

由于hive不支持删除等操作。而hbase里面比較方便,所以我们能够採用这样的方式。

最新文章

  1. DBA数据库:MySQL简述
  2. MQTT V3.1----publish解读
  3. 在Android上用AChartEngine轻松绘制图表
  4. 准确理解SO_REUSEADDR
  5. 【云计算】Docker集中化web界面管理平台shipyard
  6. objectarx 卸载加载arx模块
  7. 简单的C语言小学四则运算设计
  8. java类加载器学习2——自定义类加载器和父类委托机制带来的问题
  9. Mysql的转义字符
  10. 设计模式 --> (5)适配器模式
  11. 1005:Number Sequence(hdu,数学规律题)
  12. STM32进入HardFault_Handler处理办法
  13. Docker 部署Django项目
  14. 2019.01.02 bzoj3513: [MUTC2013]idiots(fft)
  15. ajax中的contentType使用
  16. Mysql 锁技术要点【转载】
  17. OGG_GoldenGate数据表定义方式DEFGEN(案例)
  18. RhinoMock学习-Stub方法
  19. 谈谈 Java 线程状态相关的几个方法
  20. 页面加载异常 清除浏览器静态文件 js css 缓存 js动态加载js css文件,可以配置文件后辍,防止浏览器缓存

热门文章

  1. 四. Java继承和多态8.Java final关键字:阻止继承和多态
  2. Sql Server中百万级数据的查询优化
  3. tiny4412 串口驱动分析四 --- 修改默认的串口输出
  4. 【power designer】使用power designer编辑pdm物理模型图时,为字段添加中文备注
  5. VUE -- 安装新模块
  6. apache的proxy代理总访问后端web的第一个虚拟主机
  7. SyBase 百科
  8. 五个常用的Linux监控脚本代码
  9. Git的微操作
  10. bitcoin-qt忘记密码