欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Impala的简单使用

程序员文章站 2022-07-11 17:55:22
...
  • 创建表
create table if not exists touch.table_test(
  name string comment '姓名',
  age int not null comment '年龄',
  sex tinyint not null comment '性别',
  create_time timestamp not null comment '创建时间',
  primary key(name) 
  ) partition  by hash(name) partitions  10 
stored as kudu
  • 查看表定义
describe table_test
  • 修改表的指定列
ALTER TABLE table_test CHANGE name user_name String
  • 表的添加某些列
ALTER TABLE table_test ADD COLUMNS( update_time timestamp)
ALTER TABLE table_test ADD COLUMNS( email string,phone string)
  • 表的删除指定列
ALTER TABLE table_test drop sex
  • 表的插入数据
insert into table_test values('ggr',23,now(),now(),'[email protected]','17895642365');
  • 表的更新数据
insert overwrite table_test values('ggr',24,now(),now(),'[email protected]','17895642365');
//2.8版本之后
UPSERT INTO kudu_table (pk, c1, c2, c3) VALUES (0, 'hello', 50, true), (1, 'world', -1, false);

UPSERT INTO production_table SELECT * FROM staging_table;
 | Impala SQL Language Reference | 418
UPSERT INTO production_table SELECT * FROM staging_table WHERE c1 IS NOT
 NULL AND c2 > 0;

  • 表的查询数据
SELECT * FROM table_test;
SELECT user_name,age FROM table_test;   
  • 视图
Create View IF NOT EXISTS view_name as Select statement
DROP VIEW database_name.view_name;
ALTER VIEW database_name.view_name为Select语句
  • Order by 排序
select * from table_name ORDER BY col_name [ASC|DESC] [NULLS FIRST|NULLS LAST]
  • Group by分组
select data from table_name Group BY col_name;
  • Having 子句
    Impala中的Having子句允许您指定过滤哪些组结果显示在最终结果中的条件。
    一般来说,Having子句与group by子句一起使用; 它将条件放置在由GROUP BY子句创建的组上。
select * from table_name ORDER BY col_name [ASC|DESC] [NULLS FIRST|NULLS LAST]
  • DISTINCT运算符(去重)
select distinct columns… from table_name;
  • Union 使用
select * from customers order by id limit 3
 union select * from employee order by id limit 3;
  • 偏移量(offset) & 限制(limit)
    OFFSET 需要使用order by 条件语句配合。
select * from table_test order by create_time limit 2 offset 1