博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Impala SQL
阅读量:6293 次
发布时间:2019-06-22

本文共 1962 字,大约阅读时间需要 6 分钟。

 

   不多说,直接上干货!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    其实,跟hive差不多,大家可以去参考我写的hive学习概念系列。

 

 

 

 

 

 

 

Impala SQL VS HiveQL

  下面是Impala对基础数据类型和扩展数据类型的支持

  

  

  • 此外,Impala不支持HiveQL以下特性:

    – 可扩展机制,例如:TRANSFORM、自定义文件格式、自定义SerDes
    – XML、JSON函数
    – 某些聚合函数:
  • covar_pop, covar_samp, corr, percentile, percentile_approx,histogram_numeric, collect_set
  • Impala仅支持:AVG,COUNT,MAX,MIN,SUM
    – 多Distinct查询
    – HDF、UDAF
    – 以下语句:
    ANALYZE TABLE (Impala:COMPUTE STATS)、DESCRIBE COLUMN、
    DESCRIBE DATABASE、EXPORT TABLE、IMPORT TABLE、SHOW
    TABLE EXTENDED、SHOW INDEXES、SHOW COLUMNS

 

 

 

 

Impala SQL

--创建数据库create database db1;use db1; -- 删除数据库use default;drop database db1; --创建表(内部表)-- 默认方式创建表:create table t_person1(id int,name string) --指定存储方式:create table t_person2(id int,name string)row format delimitedfields terminated by ‘\0’ (impala1.3.1版本以上支持‘\0’ )stored as textfile; --其他方式创建内部表--使用现有表结构:create table tab_3 like tab_1; --指定文本表字段分隔符:alter table tab_3 set serdeproperties(‘serialization.format’=‘,’,’field.delim’=‘,’); --插入数据-- 直接插入值方式:insert into t_person values (1,hex(‘hello world’)); --从其他表插入数据:insert (overwrite) into tab_3 select * form tab_2 ; --批量导入文件方式方式:load data local inpath ‘/xxx/xxx’ into table tab_1; --创建表(外部表)--默认方式创建表:create external table tab_p1(id int,name string)location ‘/user/xxx.txt’ --指定存储方式:create external table tab_p2 like parquet_tab‘/user/xxx/xxx/1.dat’partition (year int , month tinyint, day tinyint)location ‘/user/xxx/xxx’stored as parquet; --视图--创建视图:create view v1 as select count(id) as total from tab_3 ; --查询视图:select * from v1; --查看视图定义:describe formatted v1 

 

 

• 注意:

    – 1)不能向impala的视图进行插入操作
    – 2)insert 表可以来自视图
  • 数据文件处理
    – 加载数据:
      • 1、insert语句:插入数据时每条数据产生一个数据文件,不建议用此方式加载批量数据
      • 2、load data方式:再进行批量插入时使用这种方式比较合适
      • 3、来自中间表:此种方式使用于从一个小文件较多的大表中读取文件并写入新的表生产少量的数据文件。也可以通过此种方式进行格式转换。
    – 空值处理:
      • impala将“\n”表示为NULL,在结合sqoop使用是注意做相应的空字段过滤,
  • 也可以使用以下方式进行处理:
    alter table name set tblproperties(“serialization.null.format”=“null”)

 

转载地址:http://ofcta.baihongyu.com/

你可能感兴趣的文章
Vue组建通信
查看>>
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>
以太坊ERC20代币合约优化版
查看>>
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>