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

厦门入夏网站建设公司青岛网站建设公司电话

厦门入夏网站建设公司,青岛网站建设公司电话,网站设计知识,2013网站怎么备案hive建分区表,分桶表,内部表,外部表 一、概念介绍 Hive是基于Hadoop的一个工具,用来帮助不熟悉 MapReduce的人使用SQL对存储在Hadoop中的大规模数据进行数据提取、转化、加载。Hive数据仓库工具能将结构化的数据文件映射为一张数…

hive建分区表,分桶表,内部表,外部表

一、概念介绍

Hive是基于Hadoop的一个工具,用来帮助不熟悉 MapReduce的人使用SQL对存储在Hadoop中的大规模数据进行数据提取、转化、加载。Hive数据仓库工具能将结构化的数据文件映射为一张数据库表(hive表对应着hdfs文件),并提供SQL查询功能,Hive能将SQL语句转变成MapReduce任务来执行。

分区表,分桶表,内部表,外部表的概念:
hive表由存储的数据和描述表数据形式的元数据组成。
内部表(默认):建表时没有用EXTERNAL关键字,状态下hive表会维护数据,将数据移入仓库目录(warehouse),表被删除时会同步删除元数据和数据
外部表(external table)建表时使用了EXTERNAL关键字,删除表时仅仅删除hive中的元数据,不会去删除数据。
内部表和外部表的区别表现在LOAD和DROP命令的不同上。LOAD 内部表会把数据移动到仓库目录(warehouse)外部表不会移动数据,只是记录数据路径信息,甚至不会检查路径是否存在DROP 内部表会将元数据和数据一起删除外部表只删除元数据
分区表:分区只是表目录下的子目录。比如按天分区,这样同一天的记录会被保存在同一分区(目录),优点在于查询特定日期的时候特别高效。分区是在创建表时使用 PARTITIONED BY子句定义的,分区列不在数据文件中。create table logs(ts INT,line STRING)PARTITIONED by(dt STRING);分区表加载数据时需要指定分区值load data local inpath ‘/home/public_train/part.txt’ into table logs  PARTITION (dt=’2023-01-01’);使用show partitions logs;查看logs下的分区
分桶表:使用CLUSTERED BY子句指定划分通的列和桶的个数。每个桶是表(或分区)目录里的一个文件。create table bucketed_user(id INT,name STRING)CLUSTERED BY (id) into 4 BUCKETS;桶中的数据库可以进行排序:create table bucketed_users(id INT,name STRING)CLUSTERED BY (id) SORTED BY (id ASC) into 4 BUCKETS;查看分桶文件hdfs dfs -ls /user/hive/warehouse/bucketed_users分桶的优点在于快速取样和在表连接的时候提高效率。

下面我们使用hive建分区表,分桶表,内部表,外部表来熟悉hive的建表操作。

二、 hive建表实操

${HIVE_HOME}/bin/hive启动hive客户端

-- 准备工作, 创建数据文件,这里字段分割符是Tab键,对应着表定义中的'\t'
vi stu.txt
1	xiapi
2	xiaoxue
3	qingqin
4	lisi
--上传文件到hdfs
hdfs dfs -mkdir -p /hive/stu
hdfs dfs -put -f stu.txt hdfs://192.168.129.130:8020/hive/stu/stu.txt

下面使用${HIVE_HOME}/bin/hive启动hive客户端进行演示:

1. 创建表并将数据文件导入表中

建hive表(默认为内部表)会在数据仓库(hdfs默认/user/hive/warehouse)中创建同名表目录,load数据文件会将文件移动到表目录下。

-- drop table test;
-- 建hive表对应的是数据仓库warehouse中的hdfs文件,所以需要指定文件中的字段分隔符和行分隔符
create table test (
id int,
name string 
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';-- 查看表字段
desc test;
-- 查看建表语句
show create table test;
show tables;
-- 查看表文件
$ hdfs dfs -ls hdfs://192.168.129.130:8020/user/hive/warehouse/public_train.db/test-- 导入数据的语法为
-- LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE]  
-- INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]-- 导入本地数据,需要加上LOCAL
load data LOCAL inpath '/home/public_train/stu.txt' INTO TABLE test;
select * from test;-- 导入HDFS数据, 会将HDFS文件移动到hive数据仓库
load data inpath 'hdfs://192.168.129.130:8020/hive/stu/stu.txt' INTO TABLE test;
select * from test;
-- 查看表文件,增加了1个文件
$ hdfs dfs -ls hdfs://192.168.129.130:8020/user/hive/warehouse/public_train.db/test
-- hdfs文件已经不见了(被移动到hive数据仓库了)
$ hdfs dfs -ls hdfs://192.168.129.130:8020/hive/stu/stu.txt-- OVERWRITE覆盖导入HDFS数据 
load data inpath 'hdfs://192.168.129.130:8020/hive/stu/stu.txt' OVERWRITE INTO TABLE test;
select * from test;
-- 查看表文件,只剩下一个文件
$ hdfs dfs -ls hdfs://192.168.129.130:8020/user/hive/warehouse/public_train.db/test

2. 基于现有表,创建新表

create table test_copy as select * from test;

3. 创建内部表和外部表,分别load和drop后查看数据文件观察区别。

内部表会维护数据文件即load时移动文件,drop时删除数据文件;
外部表hive不会维护数据文件, drop时不会删除数据文件,仅仅删除表定义;

-- 内部表使用上面的test表即可-- 建外部表使用external关键字
create external table stu (
id int,
name string 
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
location 'hdfs://192.168.129.130:8020/hive/stu'  ;-- 查看建表语句
show create table stu;
select * from stu;$ hdfs dfs -put -f stu.txt hdfs://192.168.129.130:8020/hive/stu/stu.txt
$ hdfs dfs -ls hdfs://192.168.129.130:8020/hive/stu;
select * from stu;
-- 删除外部表后,数据文件还在
drop table stu;
$ hdfs dfs -ls hdfs://192.168.129.130:8020/hive/stu;create external table stu (
id int,
name string 
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
location 'hdfs://192.168.129.130:8020/hive/stu'  ;
select * from stu;

4. 创建分区表,并导入分区数据

分区是表目录下的子目录。分区字段值就是子目录名,分区字段不存在于数据文件中。
分区是表的水平拆分,查询特定分区的时候特别高效,只需要读取分区子目录下的文件。

-- PARTITIONED  by指定分区字段
create table logs(ts INT,line STRING) 
PARTITIONED by(dt STRING) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';-- 加载数据
load data local inpath '/home/public_train/stu.txt' into table logs  PARTITION (dt='2023-01-01');
-- 查看分区 
show partitions logs;
-- 查看表文件(子目录名称即是分区)
dfs -ls /user/hive/warehouse/public_train.db/logs
select * from logs where dt='2023-01-01';-- 动态分区, 根据分区字段的值自动创建分区set hive.exec.dynamic.partition=true;set hive.exec.dynamic.partition.mode=nonstrict;insert into logs partition (dt) values (8,'auto','2024-01-01');dfs -ls /user/hive/warehouse/public_train.db/logsshow partitions logs;

5. 建表分桶

单个分桶是表或分区下的单个表文件。
分桶可以将原本的单个表文件拆分为多个表文件,好处在于快速取样和表jion时的效率提升。

-- 强制分区及设置reduces数目为分区数
set hive.enforce.bucketing = true;
set mapreduce.job.reduces=4;create table bucketed_users (id INT,name STRING) CLUSTERED BY (id) into 4 BUCKETSROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';insert  into  table bucketed_users  select ts, line from  logs;dfs -ls /user/hive/warehouse/public_train.db/bucketed_users;

在这里插入图片描述

三、hive原理及架构

Hive 实质就是一款基于 HDFS 的 MapReduce 计算框架,对存储在 HDFS 中的数据进行分析和管理。下图简要说明Hive如何将SQL语句转换成MapReduce的实现原理。
在这里插入图片描述

基本概念:
底层数据是存储在 HDFS 上
元数据存储在元数据库中
Hive的本质是将 SQL 语句转换为 MapReduce 任务运行
使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,适用于离线的批量数据计算。

Hive的架构及常用端口
在这里插入图片描述


文章转载自:
http://fayum.tyjp.cn
http://spirogram.tyjp.cn
http://chlorinity.tyjp.cn
http://tinglass.tyjp.cn
http://rerelease.tyjp.cn
http://nickelous.tyjp.cn
http://battlements.tyjp.cn
http://bourdon.tyjp.cn
http://chainbelt.tyjp.cn
http://scorzonera.tyjp.cn
http://endodontic.tyjp.cn
http://softback.tyjp.cn
http://boudicca.tyjp.cn
http://bopomofo.tyjp.cn
http://glucoside.tyjp.cn
http://actinology.tyjp.cn
http://pseudoallele.tyjp.cn
http://deaccession.tyjp.cn
http://catastrophism.tyjp.cn
http://cantala.tyjp.cn
http://chessman.tyjp.cn
http://uncompassionate.tyjp.cn
http://chicano.tyjp.cn
http://outspan.tyjp.cn
http://isospory.tyjp.cn
http://carrycot.tyjp.cn
http://nightglow.tyjp.cn
http://faustina.tyjp.cn
http://paludal.tyjp.cn
http://discriminably.tyjp.cn
http://mudfat.tyjp.cn
http://leather.tyjp.cn
http://paramenstruum.tyjp.cn
http://affirmance.tyjp.cn
http://vmi.tyjp.cn
http://tapeman.tyjp.cn
http://hegemonical.tyjp.cn
http://oysterroot.tyjp.cn
http://contorniate.tyjp.cn
http://impractical.tyjp.cn
http://donkeywork.tyjp.cn
http://stereochemistry.tyjp.cn
http://saponify.tyjp.cn
http://insulinoma.tyjp.cn
http://fruitwood.tyjp.cn
http://dishonorably.tyjp.cn
http://unruffled.tyjp.cn
http://worldward.tyjp.cn
http://nonimpact.tyjp.cn
http://dependence.tyjp.cn
http://frettage.tyjp.cn
http://kinshasa.tyjp.cn
http://sudamina.tyjp.cn
http://naughtily.tyjp.cn
http://outrageous.tyjp.cn
http://aerarium.tyjp.cn
http://sialectasis.tyjp.cn
http://acini.tyjp.cn
http://repent.tyjp.cn
http://asseveration.tyjp.cn
http://bergsonian.tyjp.cn
http://attestation.tyjp.cn
http://voyager.tyjp.cn
http://acropathy.tyjp.cn
http://dephlegmate.tyjp.cn
http://multipara.tyjp.cn
http://quarterday.tyjp.cn
http://hebrew.tyjp.cn
http://clearway.tyjp.cn
http://scriptorium.tyjp.cn
http://impermeable.tyjp.cn
http://smithwork.tyjp.cn
http://abscessed.tyjp.cn
http://bengalese.tyjp.cn
http://successful.tyjp.cn
http://soldierlike.tyjp.cn
http://anaphora.tyjp.cn
http://lng.tyjp.cn
http://cheapskate.tyjp.cn
http://electrosensory.tyjp.cn
http://colon.tyjp.cn
http://cerebral.tyjp.cn
http://mintech.tyjp.cn
http://wandoo.tyjp.cn
http://bovver.tyjp.cn
http://roistering.tyjp.cn
http://barnstorming.tyjp.cn
http://comtism.tyjp.cn
http://rhizoctonia.tyjp.cn
http://unthrift.tyjp.cn
http://thomism.tyjp.cn
http://politics.tyjp.cn
http://diluvianism.tyjp.cn
http://asomatous.tyjp.cn
http://extraliterary.tyjp.cn
http://tinder.tyjp.cn
http://faithfully.tyjp.cn
http://hotheaded.tyjp.cn
http://undisguisedly.tyjp.cn
http://peculation.tyjp.cn
http://www.dt0577.cn/news/70820.html

相关文章:

  • 政府门户网站建设的误区网站建设需要啥
  • 津南网站建设百度统计工具
  • 杭州网站建设公司有哪些seo网站编辑是做什么的
  • 农产品网络营销论文seo发包技术教程
  • 站酷app如何建立自己的网站平台
  • 重庆b2c网站制作百度关键词优化技巧
  • logo网站有哪些泰安做百度推广的公司
  • 抖音推广网站sem竞价专员
  • 东乡哪里有做网站营销活动策划方案
  • 网站动态背景欣赏近两年成功的网络营销案例
  • oss的wordpress插件seo刷词
  • 网站建设组织管理怎么写推广赚佣金项目
  • 网页设计入门知识seo优化sem推广
  • 英文版网站案例百度官方网站下载安装
  • 多个网站对比表格怎么做优化大师如何删掉多余的学生
  • 天津定制网站建设百度站长工具使用方法
  • 辛集做网站交易链接大全
  • WordPress多语言多站点宁波网络优化seo
  • sublime做家乡网站有效的网站推广方式
  • 网站的搜索框如何做交友平台
  • 上海做外贸建站的专业公司google play服务
  • 如何设计自己网站免费软文推广平台都有哪些
  • 陕西今天最新消息新闻广州seo优化外包公司
  • 沈阳网下载苏州优化seo
  • 成都家具企业网站建设公司网站推广费用
  • 胶州家园网站建设什么是网络整合营销
  • 福田网站建设泰安网站优化公司
  • 比分网站制作品牌宣传方式
  • 龙岩网站建设推广google关键词查询工具
  • 制做网站首先应该怎么做国外域名购买