和impala_Impala+Kudu基础操作手册

a2740e161b4890be3e765a69fbe0ed0f.png

SQL操作

通过impala对kudu进行sql操作

数据库操作

--描述表
DESCRIBE tabel_name;
	
--查看分区情况
SHOW PARTITIONS table_name;
	
--查看当前使用数据库
SELECT current_database();
	
--查看建表语句
SHOW CREATE TABLE table_name

创建数据库(creat db)

--impala创建数据库与hive一样,create database db_name, 
--但是这个数据库只是一个impala端的namespace,
--kudu官网中没有提到数据库的概念,猜测可能是没有这个概念
--impala中创建表的时候比如在test数据库中创建table_test对应在kudu中为 test:table_test
 
--创建数据库
CREATE DATABASE IF NOT EXISTS POC_TEST;
 
--进入数据库
use POC_TEST;

创建表(creat table)

(1) 创建外部表,内部表

--impala创建数据库与hive一样,create database db_name, 
--但是这个数据库只是一个impala端的namespace,
--kudu官网中没有提到数据库的概念,猜测可能是没有这个概念
--impala中创建表的时候比如在test数据库中创建table_test对应在kudu中为 test:table_test
 
--创建数据库
CREATE DATABASE IF NOT EXISTS POC_TEST;
 
--进入数据库
use POC_TEST;
Kudu中的分区方法主要有两种:partition by hash和partition by range

(1) Hash分区

-- 基于hash的分区方法的基本原理是:基于primary key的hash值将每个row划分到相应的tablet当中,
-- 分区的个数即tablet的个数必须在创建表语句中指定
-- 如果未指定基于某个字段的hash值进行分区,默认以主键的hash值进行分区
 
--主键两个字段,分区字段未指定 hash分区
create table kudu_first_table(
  id int,
  name string,
  age int,
  gender string,
  primary key(id,name)
) 
partition by hash partitions 4
stored as kudu;
 
--主键一个字段,分区字段未指定 hash分区
CREATE TABLE my_first_table
(
  id BIGINT,
  name STRING,
  PRIMARY KEY(id)
)
PARTITION BY HASH PARTITIONS 16
STORED AS KUDU;
 
--表不存在则创建, 主键一个字段, 分区字段未指定 hash分区
CREATE TABLE IF NOT EXISTS POC_TEST.sdc(
  id string,
  name string,
  PRIMARY KEY (id)
) 
PARTITION BY HASH(id) PARTITIONS 2
STORED AS KUDU;
TBLPROPERTIES('kudu.master_addresses'='master.msxf.hadoop:7051','kudu.num_tablet_replicas' = '1');
 
--主键两个字段,分区字段指定,hash分区
create table specify_partition_column(
  id int,
  name string,
  age int,
  gender string,
  primary key(id,name)
) partition by hash(id) partitions 3
stored as kudu;
 
--主键两个字段,分区字段指定一个字段,hash分区
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值