kudu+impala 使用手册

1.技术路线

oracle--kafka-kudu

2.各个组件优缺点

Hive:数据直接存放于hdfs中,适合离线分析,确不利于记录级别的随机读写。

Hbase:将数据存放再hbase中,适合记录级别的随机读写。对离线分析确不友好。

Kudu:是对 hdfs 和 hbase 功能上的补充,能提供快速的分析 和实时计算能力

Kudu 特性:

kudu 面向结构化存储 支撑单行事务

   不允许用户数据的primary key重复

   底层直接采用本地文件系统parquet 列式存储格式

   设计既兼顾了分析型查询,又兼顾了随机读写的能力 primary key 的唯一性 限制了写入的时延性

突出优点就是:大表上亿条数据,查询速度快  

   缺点:写的性能比较慢

为了充分利用kudu 的优点 将接口表全部建成kudu 表 通过kafka的消费者直接将数据写入kudu表中。中间逻辑表采用 impala+hdfs 形式。并且表采用parquet的形式。

  1. Impala-shell 命令

impala-shell -i jfhadoop263:19005

  1. kudu建表命令

 例:4.1一个字段做主键

CREATE TABLE `ogg_mobilearea_test1`(    

  `leading` string,

  `areacode` string,

  `corpname` string,

  `resold` string,

  `etl_dt` string,

    PRIMARY KEY(leading)

)

PARTITION BY HASH PARTITIONS 16

STORED AS KUDU

TBLPROPERTIES (

  'kudu.master_addresses' = 'jfhadoop260:20000,jfhadoop261:20000,jfhadoop263:20000'

);

4.2全字段做主键:

CREATE TABLE `ogg_mobilearea_test2`(    

  `leading` string,

  `areacode` string,

  `corpname` string,

  `resold` string,

  `etl_dt` string,

    PRIMARY KEY(leading,areacode,corpname,resold,etl_dt)

)

PARTITION BY HASH PARTITIONS 16

STORED AS KUDU

TBLPROPERTIES (

  'kudu.master_addresses' = 'jfhadoop260:20000,jfhadoop261:20000,jfhadoop263:20000'

);

Desc 表ogg_mobilearea_test1

 

Desc  表 ogg_mobilearea_test2

 

5.创建impala+praquet 表

create table  pdm_impala.kafka_traffic_duration_impala(

c_years         string

,c_months       string

,c_day          string

,c_region       string

,c_duration     bigint

,c_load_time    string

,c_callon       bigint

)

partitioned by (etl_dt string)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ';'                       

WITH SERDEPROPERTIES ('serialization.format'=';', 'field.delim'=';')

STORED AS parquet;

Desc pdm_impala.kafka_traffic_duration_impala

 

6.刷新数据

invalidate metadata table_name;

 

你可能感兴趣的:(kafka)