zoukankan      html  css  js  c++  java
  • Hive和HBase关联

    一、建立 Hive 表,关联 HBase 表,插入数据到 Hive 表的同时能够影响 HBase 表

     CREATE TABLE mydatabase.hive_hbase_emp_table(
      rowkey string,
      word string
     )
    STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
    WITH SERDEPROPERTIES ("hbase.columns.mapping" =":key,f1:word")
    TBLPROPERTIES ("hbase.table.name" = "test:table1");
    

    hive建表语句中的字段和后面映射hbase的字段是按照顺序一一对应的。
    hbase存在rowkey,即默认存在一个key字段,所以hive中第一个字段为代表rowkey的字符串。
    创建完成,插入一条数据,"2021-12-15"为 rowkey,"hello world" 为 f1:word的值。

    insert into table mydatabase.hive_hbase_emp_table values("2021-12-15","hello world")
    

    可以同时通过hive和hbase shell 查询到该数据。
    数据实际上放在HBase的目录

    二、在 HBase 中已经存储了某一张表 test:table2,然后在 Hive 中创建一个外部表来关联该表

    1、通过hbase shell 创建 test:table2

    hbase(main):003:0> create 'test:table2', {NAME => 'f1', VERSIONS =>5}
    

    2、向hbase表插入一条数据

    hbase(main):003:0> put 'recmd:java','2021-12-10','f1:word','rem'
    

    3、创建关联表

    CREATE EXTERNAL TABLE mydatabase.relevance_hbase_emp(
      rowkey string,
      word string
     )
    STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
    WITH SERDEPROPERTIES ("hbase.columns.mapping" =":key,f1:word")
    TBLPROPERTIES ("hbase.table.name" = "test:table2");
    

    通过hql查询

    hive (default)> select * from mydatabase.relevance_hbase_emp;
    
  • 相关阅读:
    【Java123】enum枚举及其应用
    sql查询优化_慢查询
    9.4 如何实现属性可修改的函数装饰器?
    9.2 如何为被装饰的函数保存元数据?
    python的如何通过实例方法名字的字符串调用方法?
    9.1 如何使用函数装饰器 用装饰器解决重复计算问题
    asyncio 笔记
    python笔记截图
    list绑定
    表单数据交互
  • 原文地址:https://www.cnblogs.com/leimu/p/15691800.html
Copyright © 2011-2022 走看看