Hive外表的使用

前言:Hive创建关联hbase表有2种形式,第一是建立hive内表,指向Hbase,第二是建立Hive外表,引用Hbase中已经存在的一张表

  1. 在Hbase中创建表,创建一个表名称为hive_hbase_test,列族名称为f的Hbase表
    create 'hive_hbase_test','f'
  2. 在Hive创建外联表,关联Hbase中对应的表
    create external table hive_hbase_test(
    id string,
    pageId string,
    operationParam string
    )
    STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
    WITH SERDEPROPERTIES ("hbase.columns.mapping" =
    ":key,
    f:pageId,
    f:operationParam
    ")TBLPROPERTIES ("hbase.table.name"="hive_hbase_test");
  3. 外Hive表中插入数据,注意不能使用load data插入数据,不然后报A non-native table cannot be used as target for LOAD,需要使用insert into

    insert into hive_hbase_test select id,page_id,operation_param from test_txt;

  4. 查询HIVE中的数据

    Hive外表的使用

  5. 查询Hbase中的数据

    Hive外表的使用

  6. 清理数据,不能使用hive的truncate数据,因为数据的存储是有Hbase来管理的,所以可以使用

    Hive外表的使用

    Hive外表的使用