好程序员大数据培训开发之掌握Hive的静态分区与动态分区

简介:   **好程序员**大数据培训的终极目标是将你培养成一名“复合型”研发人才,让你自己在掌握相关大数据技术的同时,也能够赢得一份高薪职位!好程序员大数据开发采用“T”字形的思维,以大数据的深度为主,以机器学习、云计算等作为宽度,相辅相成。

  分区是hive存放数据的一种方式。将列值作为目录来存放数据,就是一个分区。这样查询时使用分区列进行过滤,只需根据列值直接扫描对应目录下的数据,不扫描其他不关心的分区,快速定位,提高查询效率。分动态和静态分区两种:

  1.静态分区:若分区的值是确定的,那么称为静态分区。新增分区或者是加载分区数据时,已经指定分区名。

  createtableifnotexistsday_part1(

  uidint,

  unamestring

  )

  partitionedby(yearint,monthint)

  rowformatdelimitedfieldsterminatedby''

  ;

  ##加载数据指定分区

  loaddatalocalinpath'/root/Desktop/student.txt'intotableday_part1partition(year=2017,month=04);

  ##新增分区指定分区名

  altertableday_part1addpartition(year=2017,month=1)partition(year=2016,month=12);

  2.动态分区:分区的值是非确定的,由输入数据来确定

  2.1动态分区的相关属性:

  hive.exec.dynamic.partition=true:是否允许动态分区

  hive.exec.dynamic.partition.mode=strict:分区模式设置

  strict:最少需要有一个是静态分区

  nostrict:可以全部是动态分区

  hive.exec.max.dynamic.partitions=1000:允许动态分区的最大数量

  hive.exec.max.dynamic.partitions.pernode=100:单个节点上的mapper/reducer允许创建的最大分区

  2.2动态分区的操作

  ##创建临时表

  createtableifnotexiststmp(

  uidint,

  commentidbigint,

  recommentidbigint,

  yearint,

  monthint,

  dayint

  )

  rowformatdelimitedfieldsterminatedby'';

  ##加载数据

  loaddatalocalinpath'/root/Desktop/comm'intotabletmp;

  ##创建动态分区表

  createtableifnotexistsdyp1(

  uidint,

  commentidbigint,

  recommentidbigint

  )

  partitionedby(yearint,monthint,dayint)

  rowformatdelimitedfieldsterminatedby''

  ;

  ##严格模式

  insertintotabledyp1partition(year=2016,month,day)

  selectuid,commentid,recommentid,month,dayfromtmp;

  ##非严格模式

  ##设置非严格模式动态分区

  sethive.exec.dynamic.partition.mode=nostrict;

  ##创建动态分区表

  createtableifnotexistsdyp2(

  uidint,

  commentidbigint,

  recommentidbigint

  )

  partitionedby(yearint,monthint,dayint)

  rowformatdelimitedfieldsterminatedby'';

  ##为非严格模式动态分区加载数据

  insertintotabledyp2partition(year,month,day)

  selectuid,commentid,recommentid,year,month,dayfromtmp;

  3.分区注意细节

  (1)、尽量不要是用动态分区,因为动态分区的时候,将会为每一个分区分配reducer数量,当分区数量多的时候,reducer数量将会增加,对服务器是一种灾难。

  (2)、动态分区和静态分区的区别,静态分区不管有没有数据都将会创建该分区,动态分区是有结果集将创建,否则不创建。

  (3)、hive动态分区的严格模式和hive提供的hive.mapred.mode的严格模式。

  hive提供我们一个严格模式:为了阻止用户不小心提交恶意hql

  hive.mapred.mode=nostrict:strict

  如果该模式值为strict,将会阻止以下三种查询:

  (1)、对分区表查询,where中过滤字段不是分区字段。

  (2)、笛卡尔积join查询,join查询语句,不带on条件或者where条件。

  (3)、对orderby查询,有orderby的查询不带limit语句。

  好程序员大数据培训的终极目标是将你培养成一名“复合型”研发人才,让你自己在掌握相关大数据技术的同时,也能够赢得一份高薪职位!好程序员大数据开发采用“T”字形的思维,以大数据的深度为主,以机器学习、云计算等作为宽度,相辅相成。此外好程序员大数据课程定期组织与一线名企的工程师进行面对面的就企业当下的项目讨论与研发,进而验证所学技术的正确方向。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
分布式计算 关系型数据库 MySQL
MaxCompute问题之数据归属分区如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
35 0
|
4月前
|
SQL 数据采集 数据挖掘
大数据行业应用之Hive数据分析航班线路相关的各项指标
大数据行业应用之Hive数据分析航班线路相关的各项指标
97 1
|
4月前
|
机器学习/深度学习 SQL 监控
❤️淘宝大数据负责人建议数据开发从业者具有的3个核心能力❤️
❤️淘宝大数据负责人建议数据开发从业者具有的3个核心能力❤️
51 0
|
4月前
|
存储 物联网 大数据
助力工业物联网,工业大数据之脚本开发【五】
助力工业物联网,工业大数据之脚本开发【五】
39 0
|
2月前
|
分布式计算 Cloud Native MaxCompute
MaxCompute数据问题之没有访问权限如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
38 0
|
9天前
|
SQL 分布式计算 Hadoop
利用Hive与Hadoop构建大数据仓库:从零到一
【4月更文挑战第7天】本文介绍了如何使用Apache Hive与Hadoop构建大数据仓库。Hadoop的HDFS和YARN提供分布式存储和资源管理,而Hive作为基于Hadoop的数据仓库系统,通过HiveQL简化大数据查询。构建过程包括设置Hadoop集群、安装配置Hive、数据导入与管理、查询分析以及ETL与调度。大数据仓库的应用场景包括海量数据存储、离线分析、数据服务化和数据湖构建,为企业决策和创新提供支持。
40 1
|
17天前
|
机器学习/深度学习 分布式计算 数据挖掘
阿里云 MaxCompute MaxFrame 开启免费邀测,统一 Python 开发生态
阿里云 MaxCompute MaxFrame 正式开启邀测,统一 Python 开发生态,打破大数据及 AI 开发使用边界。
196 1
|
24天前
|
机器学习/深度学习 分布式计算 监控
大模型开发:你如何使用大数据进行模型训练?
在大数据模型训练中,关键步骤包括数据准备(收集、清洗、特征工程、划分),硬件准备(分布式计算、并行训练),模型选择与配置,训练与优化,监控评估,以及模型的持久化与部署。过程中要关注数据隐私、安全及法规遵循,利用技术进步提升效率和性能。
32 2
|
1月前
|
分布式计算 DataWorks 关系型数据库
DataWorks常见问题之删除odps中表的历史分区失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
3月前
|
SQL 存储 HIVE
Hive中的动态分区是什么?请解释其作用和使用场景。
Hive中的动态分区是什么?请解释其作用和使用场景。
30 0

热门文章

最新文章