背景

数据仓库列式存储(parquet)

parquet是面向分析型业务的列式存储格式,是一种支持嵌套结构的存储格式,并且使用了列式存储的方式提升查询性能。
无论数据处理框架,数据模型或编程语言的选择如何,Apache Parquet都是Hadoop生态系统中任何项目可用的列式存储格式。

特点:
  1. 可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量。
  2. 压缩编码可以降低磁盘存储空间。。
  3. 只读取需要的列,支持向量运算,能够获取更好的扫描性能。
    在取数时避免select *全局扫描,select需要读取的列,通过子查询而非全表join。
    一个Parquet文件是由一个header以及一个或多个block块组成,以一个footer结尾。
    header中只包含一个4个字节的数字PAR1用来识别整个Parquet文件格式。
    文件中所有的metadata都存在于footer中。footer中的metadata包含了格式的版本信息,schema信息、key-value paris以及所有block中的metadata信息。
    footer中最后两个字段为一个以4个字节长度的footer的metadata,以及同header中包含的一样的PAR1。

操作

1. 插入字段
alter table order.info
add columns(
order_no string comment ‘’,
type string comment ‘’
) cascade;
存在分区时需要设置级联参数,保证源表和分区字段格式一致,若不一致则会导致读取字段数据报错

2. 修改字段(字段名、字段类型及备注)
alter table order.info
change order_no order_no string COMMENT ‘’ cascade;
对字段类型进行修改时需要注意是否兼容,目前在hadoop中修改字段类型后会导致历史分区中的字段不可用,需要重新刷分区(或补历史数据)。

3. 删除分区
alter table order.info drop partition (inc_day <= ‘20191230’);

4. 删除表(不要轻易删除表!!!,删除之前可以建个临时表复制表结构)
drop table if exists order.info;

5. 只复制表结构到新表
CREATE TABLE 新表 LIKE 旧表

6. 复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表
SELECT * FROM 旧表

7. 复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,…….)
SELECT 字段1,字段2,…… FROM 旧表

8. 日期相关
时间戳转日期:
FROM_UNIXTIME(addtime,‘yyyy-MM-dd hh:mm:ss’)
时间戳string格式、毫秒存储,需要转为int:
FROM_UNIXTIME(cast(time/1000 as int),‘yyyy-MM-dd hh:mm:ss’)
取日期中的某个值:
year(‘2019-12-31’) y
quarter(‘2019-12-31’) q
month(‘2019-12-31’) m
day(‘2019-12-31’) d
后续待补充

9. Hive分位数计算
percentile:percentile(col, p) col是要计算的列(值必须为int类型),p的取值为0-1
percentile_approx:percentile_approx(col, p)。列为数值类型都可以。
percentile_approx还有一种形式percentile_approx(col, p,B),参数B控制内存消耗的近似精度,B越大,结果的精度越高。默认值为10000。当col字段中的distinct值的个数小于B时,结果就为准确的百分位数。
–多分位数一次性取出来
percentile_approx(uv, array(0.2,0.4,0.6,0.8), 9999)

Hive常用库表操作及知识汇总相关推荐

  1. 2021年大数据Hive(三):手把手教你如何吃透Hive数据库和表操作(学会秒变数仓大佬)

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive数据库和表操作 一.数据库操作 1.创建数据库 2.创建 ...

  2. golang常用库之-操作redis go-redis/redis库、 go-redsync/redsync库(redis分布式锁)

    文章目录 golang常用库之-操作redis go-redis/redis库. go-redsync/redsync库(redis分布式锁) 一.什么是go-redis/redis库 go-redi ...

  3. hive删除hbase数据_Hive进阶:Hive通过外部表操作Hbase数据

    概述: HBase: 查询效率比较高,常为实时业务提供服务,但是其查询方式比较单一,只能通过row方式get单条数据,或者通过scan加过滤器的方式扫描数据表获取数据. Hive: hive用来存储结 ...

  4. 计算机操作基本知识题库,计算机操作基础知识题库

    计算机操作基础知识题库 (11页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 计算机操作基础知识题库一.单选题(共59题)1.在 Ex ...

  5. mysql配置——库表操作、用户操作

    mysql----库表操作 ## 列出所有的库 mysql> show databases; +--------------------+ | Database           | +--- ...

  6. 大数据学习笔记34:Hive - 数据库与表操作

    文章目录 一.准备工作 1.启动Hadoop 2.启动Hive 二.数据库操作 1.创建数据库 2.查询数据库 (1)显示全部数据库 (2)查询满足条件的数据库 3.修改数据库信息 (1)给数据库添加 ...

  7. 数据库 - 库表操作 - 存储引擎

    一.库操作: mysql> show databases; +--------------------+ | Database | +--------------------+ | inform ...

  8. 计算机操作基本知识题库,计算机操作基础知识题库.doc

    计算机网络考试 计算机操作基础知识题库 一. 单选题(共 59 题) 1. 在 Excel 工作窗口上, " 状态栏" 是在屏幕的( ). A.上面 B. 下面 C. 左面 D. ...

  9. mysql的teqcher表结构_Mysql之库表操作(胖胖老师)

    SQL 概念:结构化查询语言(SQL = Structured Query Language), 也是一种编程语言(数据库查询和程序设计语言),可以用于数据的存取及查询,更新,管理关系型数据库系统 p ...

最新文章

  1. 想学Python,梦雅给你指一条明路!
  2. 使用 Windows 命令行删除结果
  3. Oracle单表备份三种方案
  4. Angular2 富文本编辑器 ng2-ckeditor 的使用
  5. SpringBoot+Echarts实现一次ajax请求返回并显示多个饼状图
  6. 【随笔】深度学习之美——杨家有女初长成,养在深闺人未识
  7. linux java main 参数设置_Java虚拟机参数设置
  8. 双面黄琳:世界顶级女黑客,两个孩子的迟钝妈妈
  9. (三)渲染优化 (与浏览器为友,共进退)
  10. Python3导入自定义模块的3种方式
  11. 疑似OPPO Reno6系列新机通过工信部认证:配备6.43英寸屏 机身仅7.9mm
  12. java存储整数,用于存储整数数值的是 JAVA四种整数数据类型的取值范围分别是多少...
  13. docker 代码中的文件路径_docker修改默认存储路径
  14. [leetcode]1131. 绝对值表达式的最大值 ---曼哈顿距离,四角思维
  15. lucene 分词实现
  16. BeX5平台简明部署过程
  17. 计算机教学研修心得英语,网络研修培训心得体会(精选5篇)
  18. 编码器脉冲计数器/2路DI高速计数器Modbus RTU模块
  19. 量化投资学习——中证500期现套利
  20. 多模块下的接口 API 如何统一管理——聚合 API

热门文章

  1. 电脑上怎么压缩PDF文件
  2. 目前流行的Bug缺陷管理工具
  3. JVM: GC过程总结(minor GC 和 Full GC)
  4. 帝国CMS数据字典 Ctrl+F查询
  5. List、set、Map的底层实现原理
  6. 迭代器Iterator列表迭代器ListIterator
  7. 【anaconda创建虚拟环境】
  8. Castor学习笔记(一)
  9. 基于51单片机的指纹解锁自动开门
  10. 网络:传输层之TCP协议