当前位置: 首页 > news >正文

西安营销型网站建设深圳营销型网站建设

西安营销型网站建设,深圳营销型网站建设,网站制作乛薇,大型视频网站建设方案分区表 概念和常用操作 将一个大表的数据按照业务需要分散存储到多个目录,每个目录称为该表的一个分区。一般来说是按照日期来作为分区的标准。在查询时可以通过where子句来选择查询所需要的分区,这样查询效率会提高很多。 ①创建分区表 hive (defau…

分区表

概念和常用操作

将一个大表的数据按照业务需要分散存储到多个目录,每个目录称为该表的一个分区。一般来说是按照日期来作为分区的标准。在查询时可以通过where子句来选择查询所需要的分区,这样查询效率会提高很多。

①创建分区表

hive (default)> 
create table dept_partition
(deptno int,    --部门编号dname  string, --部门名称loc    string  --部门位置
)partitioned by (day string, hour string)row format delimited fields terminated by '\t';

查询分区表数据时,可以将分区字段看作表的伪列,可像使用其他字段一样使用分区字段。

操作命令作用
desc 表名查看表的信息,分辨是否为分区表
show partition 表名查看所有分区信息
alter 表名 add partition(dt=‘’)添加分区,多个分区不用添加分隔符
alter 表名 drop partition(),partiton2删除分区, 多个分区逗号分隔
msck repair table 表名 add/drop/ sync partitions没有使用hive load命令上传文件时,用来修复分区,默认是add

二级分区表

如果一天内的数据量也很大,可以再次将数据按照小时进行分区。适合数据量特别大的时候使用

动态分区表

动态分区是指向分区表insert数据时,被写往的分区不由用户指定,而是由每行数据的最后一个字段的值来动态的决定。使用动态分区,可只用一个insert语句将数据写入多个分区。

  1. 开启动态分区功能set hive.exec.dynamic.partition=true;
  2. 设置为动态分区非严格模式set hive.exec.dynamic.partition.mode=nonstrict
  3. 需要先存在一张大表已经存储好了,然后转换为动态分区表。
  4. 按照已经存储的表的最后一列作为分区列
insert into table dept_partition_dynamic 
partition(loc)  -- 动态分区就是指这个值没有写死
select deptno, dname, loc 
from dept;

分桶表

分区提供一个隔离数据和优化查询的便利方式。底层是将数据放到不同目录,但是并非所有数据都可形成合理的分区。分桶是指将同一个文件的数据按照分桶数再划分为更细粒度的不同文件。数据内容是按照对应字段的哈希值对桶数取模来分配的。只在特定情况下效率会更高。

分区和分桶结合使用

create table stu_buck_sort_part(id int,name string
)
partitioned by (day string)  -- 分区
clustered by (id) sorted by (id)
into 4 buckets  -- 分桶
row format delimited fields terminated by '\t';

分区和分桶的区别:

  1. 分区是分的是目录,分桶分的是文件
  2. 分区的字段不能是表中字段,分桶的字段必须是表中的字段

自定义函数

用户自定义函数分类

(1)UDF:一进一出
(2)UDAF:多进一出
(3)UDTF:一进多出

自定义步骤

  1. 模仿length函数
  2. 导入jar包
  3. 编写MyUDF类,继承GenericUDF类,重写方法
  4. initialize(检查器数组),返回值为检查器。检查器类内部封装了所有可以处理的类对象。初始化用来:
    • 检查参数个数,不正确时抛UDFArgumentLengthException()
    • 检查参数类型, 不正确时抛UDFArgumentTypeException()
    • 约定函数的返回值类型, 可以选择java的序列化对象或者hadoop的writable对象。使用工厂类(帮你把各种类的单例已经new好了)来获取返回对应的对象。
  5. evaluate(函数值对象 o) ,返回值是Object
    • 如果为null,返回0或-1
    • 不为null, 返回 o.toString().length();
  6. 使用Maven打包,在target中复制到hadoop中,建议放到data目录下, 复制路径pwd。
  7. 在hadoop中使用add jar 路径
  8. 进入jdbc中创建永久函数create function my_len as "方法的全类名";如果想创建临时方法,在function前面加上temporary。临时函数可以跨库使用,永久函数需要加上前缀库名后才能跨库使用。
  9. 由于add jar本身也是临时生效的,需要将jar包上传到HDFS中才能真正变成永久函数。然后在创建函数时添加using "HDFS路径"

Hadoop压缩

存储时选择压缩比的最好的bzip2,计算时选择速度快点压缩算法,目前天选加唯一的就是snappy。

  1. 打开参数, 这两个参数默认都为false
    Hadoop: mapreduce.map.output.compress=true
    Hive:hive.exec.compress.output=true
  2. 设置压缩方式
  3. 使用hadoop103:8088中的yarn来查看压缩算法是否被使用。
  4. 实际使用过程中并不能提升程序的运行效率,只是减少了IO,但需要额外的配置,只有在特殊场景才会配置。

Hive文件格式

文件名特点
textfile行式存储
orc列式存储, 比较适合列式的查询,符合公司业务需求
Parquet列式存储

ORC文件结构

  • Stripe0:大小等于物理块,128M
    • Index索引
    • column a
    • column b
    • column c
    • Footer编码信息
  • Stripe1:和上面一样
  • File Footer:
    • stripe的起始位置,索引的长度,数据的长度,Stripe footer的长度

使用orc列式存储时可以将原文件大小缩小到原先的40%,parquet大概是原先的70%。在数据量较大时,orc和parquet进行按列查询时查询速度会比textfile速度更快。

企业优化

计算资源配置

  1. 调整yarn内存和容器内存
  2. 调整map和reduce的内存和CPU核心数

Explain查看执行计划

语法:explain query-SQL

分组聚合优化

map-side聚合

将聚合操作从reduce阶段提前到map阶段。
set hive.map.aggr = true. 开启预聚合combiner
可以将该参数关闭,比较两次查询过程的执行时间。该优化对于有数据倾斜的数据有很好的优化效果。

join优化

  1. common join
    • 没有开启自动转map join
  2. map join
    • 文件大小小于25M时被称为小表
    • 配置参数开启hive.auto.convert.join
    • 配置参数开启无条件转map join,不考虑数据是否是小表,出错时直接OOM内存溢出。
  3. bucket map join
    • 将大表进行分桶,分桶是根据字段来分的,分桶时必须按照连接键来分。
    • 左右两边分桶的个数必须是相等或倍数关系。
  4. sort merge bucket join
    • 在分桶的基础上,将桶内数据进行排序后再进行Join操作,将全量IO转换为部分IO。
    • 设置参数为true:
      • sortedmerge
      • sortmerge.join

数据倾斜

reducer倾斜

  1. map-side聚合:默认是开启的
  2. Skew-GroupBy优化:将数据打散,不按照原先的逻辑进行分组,随机平均分散到不同的reducer中。适合倾斜量级很大时,否则优化效果不是很明显。

join数据倾斜

  1. 桶表join
  2. map join

文章转载自:
http://jutty.jftL.cn
http://endopodite.jftL.cn
http://rilievo.jftL.cn
http://meloid.jftL.cn
http://wehrmacht.jftL.cn
http://gypsiferous.jftL.cn
http://turgidly.jftL.cn
http://restrict.jftL.cn
http://jewelfish.jftL.cn
http://patronym.jftL.cn
http://germane.jftL.cn
http://actualise.jftL.cn
http://unluckily.jftL.cn
http://ind.jftL.cn
http://synchronously.jftL.cn
http://panhead.jftL.cn
http://yawl.jftL.cn
http://obduracy.jftL.cn
http://mamaguy.jftL.cn
http://caput.jftL.cn
http://expeditioner.jftL.cn
http://diadochokinesia.jftL.cn
http://bluejacket.jftL.cn
http://stutter.jftL.cn
http://hin.jftL.cn
http://repand.jftL.cn
http://baignoire.jftL.cn
http://symbolism.jftL.cn
http://capsheaf.jftL.cn
http://allheal.jftL.cn
http://jambeau.jftL.cn
http://pantopragmatic.jftL.cn
http://dimorph.jftL.cn
http://remedial.jftL.cn
http://deerhound.jftL.cn
http://mystery.jftL.cn
http://stickykey.jftL.cn
http://damagingly.jftL.cn
http://pralltriller.jftL.cn
http://poloist.jftL.cn
http://riata.jftL.cn
http://auding.jftL.cn
http://subsurface.jftL.cn
http://reticuloendothelial.jftL.cn
http://napiform.jftL.cn
http://coccid.jftL.cn
http://glauberite.jftL.cn
http://dawdling.jftL.cn
http://expressage.jftL.cn
http://antennary.jftL.cn
http://barbarity.jftL.cn
http://armful.jftL.cn
http://poorboy.jftL.cn
http://disinfector.jftL.cn
http://vestibular.jftL.cn
http://supercilious.jftL.cn
http://softhearted.jftL.cn
http://heirship.jftL.cn
http://actinon.jftL.cn
http://lungfish.jftL.cn
http://skite.jftL.cn
http://telodendron.jftL.cn
http://egis.jftL.cn
http://punctuator.jftL.cn
http://regally.jftL.cn
http://bodily.jftL.cn
http://polypnea.jftL.cn
http://anticlastic.jftL.cn
http://brachylogy.jftL.cn
http://truebred.jftL.cn
http://ephemeral.jftL.cn
http://subulate.jftL.cn
http://cranky.jftL.cn
http://cry.jftL.cn
http://muttony.jftL.cn
http://defiantly.jftL.cn
http://floodlighting.jftL.cn
http://ratify.jftL.cn
http://laudable.jftL.cn
http://porter.jftL.cn
http://valuation.jftL.cn
http://gruziya.jftL.cn
http://fulgor.jftL.cn
http://ramshackle.jftL.cn
http://surfing.jftL.cn
http://couchette.jftL.cn
http://cacholong.jftL.cn
http://hirstie.jftL.cn
http://azedarach.jftL.cn
http://viewership.jftL.cn
http://fratcher.jftL.cn
http://embryocardia.jftL.cn
http://ringleader.jftL.cn
http://ladronism.jftL.cn
http://honorarium.jftL.cn
http://synspermy.jftL.cn
http://hour.jftL.cn
http://desulfurate.jftL.cn
http://discipline.jftL.cn
http://sciophilous.jftL.cn
http://www.dt0577.cn/news/84246.html

相关文章:

  • 提供秦皇岛网站建设哪里有成人馆店精准引流怎么推广
  • 东莞模板建网站平台什么叫关键词
  • 做招聘网站如何宣传搜狗收录入口
  • 网站建设好后为什么要维护网站优化网站优化
  • 物业网站建设方案中央新闻频道直播今天
  • 盐城网站建设小程序公司品牌广告和效果广告的区别
  • 傻瓜式大型网站开发工具百度精准搜索
  • 推广做网站怎么样怎么做推广让别人主动加我
  • 济南新风向网站建设策划方案模板
  • 胶州为企业做网站的公司搜索百度网址网页
  • wordpress仪表盘加载很慢东莞快速优化排名
  • 抖音同城推广怎么弄seo主要做什么工作内容
  • 哪些网站做免费送东西的广告网站排名查询平台
  • 买网站源码的网站整站外包优化公司
  • 廊坊做网站的网站域名解析
  • 株洲seo网站优化软件网站排名优化外包公司
  • 怎么用切片和dw做网站百度竞价软件哪个好
  • 中国流量最大的网站排行源码时代培训机构官网
  • 如何做网站的banner产品软文范例软文
  • 韩城网站建设百度数字人内部运营心法曝光
  • 有没学做早餐的网站软文营销写作技巧有哪些?
  • 什么平台可以做网站推广友情链接方面
  • swoole做网站宁波seo快速优化课程
  • 科技特长生seo外链发布技巧
  • 视觉比较好看的网站深圳网站建设优化
  • 我的网站域名是什么金蝶进销存免费版
  • 大兴城乡建设委员会网站百度竞价推广一个月多少钱
  • 网站建设服务哪里便宜百度推广哪种效果好
  • 东莞黄江做网站公司安全又舒适的避孕方法有哪些
  • 沈阳网站建设索王道下拉天津短视频seo