Hive----【DDL操作、对数据表的操作】

Hive 学习笔记(一) DDL数据定义操作常用命令 | 增删改查数据库、数据表、列 DDL 数据定义操作 数据库DDL操作 增 参考资料 标准语法: CREATE [REMOTE] (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [MANAGEDLOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)]; 参数说明: 参数 描述 阅读详情

Hive–DDL基本操作

Hive中错误分类 :

Error while compiling statement  hive编译器错误  sql语法问题
Error while processing statement hive执行期错误  应用逻辑上的问题

1. DDL操作

1.1 创建表

建表语法

create [external] table [if not exists(判断有无表)] table_name
[(col_name(列名) data_type(数据类型) [comment col_comment(数据描述)], ...)]
[comment table_comment(数据表描述)]
[partitioned by (col_name data_type [comment col_comment], ...)]
[clustered by (col_name, col_name, ...)
[sorted by (col_name [asc|desc], ...)] into num_buckets buckets]
[row format row_format]
[stored as file_format]
[location hdfs_path]

说明:

  1. 创建表: create table [if not exsists] 表名(列,数据类型);

例子 : 创建一个名为t_test的表create table t_test(id int,name string,age int);此时采用的是默认的分隔符'\001' 用 vi 编辑器 Ctrl+v 然后 Ctrl+a 即可输入’\001’ -----------> ^A

通常我们需要指定分隔符!!!

准备数据

在根目录创建一个文件专门存放hsql的测试数据hivedata
mkdir hivedata
进入该目录 创建数据文件 
vi 1.txt
1,zhangsan,18
2,lisi,19
3,wangwu,20

create table t_test(id int,name string,age int) row format delimited fields terminated by ",";

将数据传送到hdfs的hive存放数据的指定目录下

hadoop fs -put 1.txt /user/hive/warehouse/test01.db/t_test1

在远程连接设备上查看表即可select * from t_test1;

总结 :

  • 结构化文件位置不能瞎放 hive中建立的表有对应的文件夹存在
test01.db-->t_test01--->/user/hive/warehouse/test01.db/t_test1
  • 分隔符不一定需要指定 , 因为默认有个分隔符'\001'
  • 建表的数据类型一定要跟结构化文件一致、顺序一致

只有当结构化数据映射成功一张表之后,就可以使用hive sql来对数据进行分析。

  • hive的数据类型
    • 除了支持sql的类型外 还支持java类型 且大小写不敏感
  • hive的分隔符
    • row format delimited | serde
row format delimited
[fields terminated by char]
[collection items terminated by char]
[map keys terminated by char]
[lines terminated by char] | serde serde_name
[with serdeproperties

row format delimited fields terminated by ","
row format:表明开始指定分隔符
delimited :表明使用hive内置分隔符类来处理数据分割(默认LazySimpleSerDe)
fields : 指的是字段分隔符的指定
collection : 指的是集合数据的分隔符
map : 指的是map数据的分隔符

练习 :

  • 简单类型
allen|19|beijing
tom|20|shanghai
  
create table t_t1(name string,age int,city string) row format delimited fields terminated by '|';
加载数据(如果不在hdfs上 , 在hive服务器所在的linux上 , 是复制操作)
load data local inpath '/root/hivedata/1.txt' into table t_t1;
如果在hdfs的根目录下(是移动操作)
load data inpath '/1.txt' into table t_t1;
  • 复杂类型
如果是复杂类型:
  zhangsan	beijing,shanghai,tianjin,hangzhou
  wangwu	shanghai,chengdu,wuhan,haerbin
  
create table complex_array(name string,work_locations array<string>) row format delimited fields terminated by '\t' collection items terminated by ',';
1,zhangsan,唱歌:非常喜欢-跳舞:喜欢-游泳:一般般
2,lisi,打游戏:非常喜欢-篮球:不喜欢
create table t_map(id int,name string,hobby map<string,string>)
	row format delimited 
	fields terminated by ','
	collection items terminated by '-'
	map keys terminated by ':' ;
  • hive建表的时候 如果语法中木有row format,表面不指定分隔符 ,这时候使用默认分隔符去创建表

“\001”------>用 vi 编辑器Ctrl+v 然后 Ctrl+a 即可输入’\001’—>^A

如果此时结构化数据恰好也是\001分割 这时候不指定分隔符也能映射成功 , 如下图

^A字端在vi编辑器中是变色的

1542612176745

1542612196795

  • hive 中数据库 表跟hdfs中位置的映射对应关系

hive默认会把数据存放在hdfs : /user/hive/warehouse

database ------>/user/hive/warehouse/db_name.db
database.table---->/user/hive/warehouse/db_name.db/table_name
  1. 创建外部表(…external…location…) , external关键字可以让用户创建一个外部表 , 在建表的同时指定一个指向实际数据的路径( location)
create external table allen(id int,name string,age int) row format delimited fields terminated by ',' location '/allenwoon';

Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。

测试 :

首先我们在hdfs上新建一个文件夹用于存储数据"/hivedata" , 然后创建测试数据1.txt

1,hello,2
3,hi,4
5,see,6

创建表

create external table t_t1(id int,name string,age int) row format delimited fields terminated by "," location '/hivedata';

外部表意味着数据可以在hdfs任意路径下 , 不需要移动到hive的默认路径下

  • 外部表的好处
    • 内部表:删除表除了删除hive中的表信息 还会把对应的结构化文件删除
    • 外部表:仅仅删除hive中的表信息 不删除表的文件
  1. 分区表 partitioned by

在hive select查询中一般会扫描整个表内容 , 会消耗很多时间做没必要的工作 , 有时候只需要扫描表中关心的一部分数据 , 因此建表时引入了partition分区概念 .

分区表值得是在创建表时指定的partition的分区空间 . 一个表可以拥有一个或者多个分区 , 每个分区以文件夹的形式单独存在表文件的目录下 . 表和列名不区分大小写 . 分区是以字段的形式在表结构中存在 , 通过describe table命令可以查看到字段存在 , 但是该字段不存放实际的数据内容 , 仅仅是分区的表示.

分区建表分为两种: 一种是单分区 , 也就是说在表文件夹目录下只有一级文件夹目录 . 另一种是多分区 , 表文件夹下出现多文件夹嵌套模式 .

  • 单分区建表语句 : create table day_table(id int,content string) partitioned by (dt string); ==>单分区表 , 按天分区 , 在表结构中存在id , content , dt三列

    • 导入数据 : load data local inpath '/root/hivedata/dat_table.txt' into table day_table partition(dt='2017-07-07')
    • 使用select * from day_table where dt="xxx";
  • 双分区建表语句 : create table day_hour_table (id int, content string) partitioned by (dt string, hour string);==> 双分区表,按天和小时分区,在表结构中新增加了dt和hour两列

    • 导入数据 : load data local inpath '/root/hivedata/dat_table.txt' into table day_hour_table partition(dt='2017-07-07', hour='08');
    • 使用select * from day_table where dt="xxx" and hour="yyy";
  • 多分区表测试

    创建

    create table t_user_duo(id int, name string,country string) partitioned by (guojia string, sheng string) row format delimited fields terminated by ',';
    ------
    create table t_user_duo(id int, name string,city string) partitioned by (province string, xian string) row format delimited fields terminated by ',';
    

    加载

    LOAD DATA local INPATH '/root/hivedata/china.txt' INTO TABLE t_user_duo PARTITION(guojia='zhongguo', sheng='hebei');
    ------------
    load data local inpath '/root/hivedata/beijing.txt' into table t_user_duo partition(province='beijing', xian='shunyi');
    

    使用

    select * from t_user_duo where guojia ="zhongguo" and sheng ="jiangsu";
    

    总结

    多分区当前只支持两个分区 后一个分区的意思是指在前一个分区的基础上再次细分。

    体现的就是分区的文件夹下面继续创建第二个分区的文件夹

    常见多分区使用:

    (province, city)

    (month ,day)

  • 基于分区的查询 : select day_table.* from day_table where day_table.dt = '2017-07-07';

  • 查看分区 : show partitions day_hour_table;

  • 多分区当前只支持两个分区 , 后一个分区的意思是指在前一个分区的基础上再次划分

注意 : dt后面的参数便是分区的文件的名字

实战 :

数据 , 分别创建三个数据文件

vi china.txt
1,zhangsan,china
2,lisi,china
3,wangwu,china
----------
vi usa.txt
4,jack,usa
5,tom,usa
----------
vi japan.txt
6,haoo,japan
7,wood,japan

下面两个操作都是在node-3上执行的

创建一个表

create table t_user(id int,name string,country string) partitioned by (guojia string) row format delimited fields terminated by ","

导入数据

load data local inpath '/root/hivedata/china.txt' into table t_user1 partition(guojia='zhongguo');

load data local inpath '/root/hivedata/usa.txt' into table t_user1 partition(guojia='meiguo');

load data local inpath '/root/hivedata/japan.txt' into table t_user1 partition(guojia='riben');

tips : 直接put不行 , 分区字段没有指定 , 不能映射成功

查询

select * from t_user where guojia="zhongguo"; 使用分区字段查询 , 只扫描分区字段对应的文件
select * from t_user where country="china"; 使用表中字段查询 , 全表扫描查询

目录结构如下图 :

在这里插入图片描述

查询结果如下图 :

在这里插入图片描述

分区表总结 :

  • 分区表是一个查询优化手段 , 减少了查询时的全局扫描
  • 分区字段不能跟表中字段重复!!
  • 分区字段是虚拟字段 , 并不真正存在表数据中 , 它的显示数据来自于加载数据时的分区指定
load data local inpath '/root/hivedata/china.txt' into table t_user1 partition(guojia='zhongguo');
  • 分区字段可以直接用在sql中 , 单做查询条件 , 优化查询
  • 分区的意义在于从文件夹层面把文件管理的更加精致
  • 总的说来partition就是辅助查询,缩小查询范围,加快数据的检索速度和对数据按照一定的规格和条件进行管理。

**扩展 : **企业中 , 如果创建分区表 , 使用什么作为分区字段 ?

  • 如果一天一个文件 partitioned by (day string)
  • 如果是每个省一个文件 partitioned by (province string)

分区表作用如下图

在这里插入图片描述

  • 分桶表(分簇表) clustered by xxx into N buckets

clustered by xxx into N buckets

字面上 : 根据xxx分为N桶

通俗上 : 把表对应的文件按照xxx字段分为N个部分

​ 根据谁分 : clustered by xxx 根据xxx分

​ 分成几个部分 : N buckets N就是几个buk

​ 如何分 : 默认分桶规则 hashfunc()

​ 如果分桶字段是数值类型 hashfunc(xxx) = xxx xxx%N 余数是几 就分到哪个桶

​ 如果分桶字段是字符串类型 hashfunc(xxx) = xxx.hashcode xxx.hashcode%N 余数是几 就分到哪个桶

  • 分桶表的创建

    • 准备数据vi students.txt
    95001,李勇,男,20,CS
    95002,刘晨,女,19,IS
    95003,王敏,女,22,MA
    95004,张立,男,19,IS
    95005,刘刚,男,18,MA
    95006,孙庆,男,23,CS
    95007,易思玲,女,19,MA
    95008,李娜,女,18,CS
    95009,梦圆圆,女,18,MA
    95010,孔小涛,男,19,CS
    95011,包小柏,男,18,MA
    95012,孙花,女,20,CS
    95013,冯伟,男,21,CS
    95014,王小丽,女,19,CS
    95015,王君,男,18,MA
    95016,钱国,男,21,MA
    95017,王风娟,女,18,IS
    95018,王一,女,19,IS
    95019,邢小丽,女,19,IS
    95020,赵钱,男,21,IS
    95021,周二,男,17,MA
    95022,郑明,男,20,MA
    
    • 开启分桶的功能
    set hive.enforce.bucketing = true;
    
    • 指定分为几桶
    set mapreduce.job.reduces=4;
    
    • 分桶表创建
    create table stu_buck(Sno int,Sname string,Sex string,Sage int,Sdept string)
    clustered by(Sno) 
    into 4 buckets
    row format delimited
    fields terminated by ',';
    
    • 分桶表导入数据

    • 真正加载分桶表数据方式:insert+select

      insert+values  插入的数据来自于values指定
      insert+select  插入的数据来自于后select查询语句返回的结果
      
    首先创建临时表student
    create table student(Sno int,Sname string,Sex string,Sage int,Sdept string)
    row format delimited
    fields terminated by ',';
    
    然后给临时表加载数据
    hadoop fs -put students.txt /user/hive/warehouse/itcast.db/student
    
    最后查询临时表(student)数据 分桶插入到最终分桶表中(stu_buck)
    insert overwrite table stu_buck select * from student cluster by(Sno);
    扩展 :
    当两个字段一样时: 
    cluster(分且排序,必须一样)==distribute(分) + sort(排序)(可以不一样 , 指的是条件可以不一样)
    cluster 和 sort 不能共存
    对某列进行分桶的同时,根据另一列进行排序
    insert overwrite table stu_buck
    select * from student distribute by(Sno) sort by(Sage asc);
    

    tips:

    直接put只能映射成功数据 , 但是并没有按照Sno分成4个桶 , 违背初衷

    hive就不支持load语法

    成功后如下图所示

在这里插入图片描述

在这里插入图片描述

发现数据已经分好为4个部分了

分桶表的总结 :

  • 分桶表的意思是把表的数据会按照指定的字段分成指定的几个桶(部分)
  • 分桶的字段必须是表中已有的字段
  • 分桶功能默认不开启 需要手动打开
  • 分桶的好处 优化join查询 减少笛卡尔积
  • 分桶需要创建一个中间表用于传递数据 , 因为分桶需要查询之后放入桶中

分桶的好处如下图

在这里插入图片描述

1.2 修改表
  • 增加分区 :

    • 一次添加一个分区
    alter table table_name add partition (dt='20170101') location '/user/hadoop/warehouse/table_name/dt=20170101';
    执行添加分区时   /table_name文件夹下的数据不会被移动。并且没有分区目录dt=2008-08-08 
    -----
    alter table t_u add partition(province='guangzhou') location '/user/hive/warehouse/test01.db/t_u/province=guangzhou';
    
    • 一次添加多个分区
    alter table table_name add partition (dt='2008-08-08', country='us') location '/path/to/us/part080808' partition (dt='2008-08-09', country='us') location '/path/to/us/part080809';
    -----
    alter table t_user_duo add partition (province='hainan',xian='haizhu') location '/user/hive/warehouse/test01.db/t_user_duo/province=hainan/xian=haizhu' partition (province='shenzhen2',xian='shen')location '/user/hive/warehouse/test01.db/t_user_duo/province=shenzhen2/xian=shen';
    
    • 删除分区
    alter table table_name drop if exists partition (dt='2008-08-08');
    alter table table_name drop if exists partition (dt='2008-08-08', country='us');
    
    • 修改分区
    alter table table_name partition (dt='2008-08-08') rename to partition (dt='20080808');
    
    • 添加列
    alter table table_name add|replace columns (col_name string);
    注: ADD 是代表新增一个字段,新增字段位置在所有列后面 (partition 列前 )
    REPLACE 则是表示替换表中所有字段。#少用
    
    • 修改列
    alter table test_change change a a1 int; //修改 a 字段名==>(a1 int,b int,c int);
    alter table test_change change a a1 string after b; //修改a字段名及类型 , 并与字段b交换位置==>(b int,a1 string,c int);
    alter table test_change change b b1 int first; //修改字段b为b1并放在第一个位置==>(b1 int,a int,c int);
    alter table table_name rename to new_table_name;//表重命名
    
1.3 显示命令
  • show tables; : 显示当前数据库所有表

  • show databases|schemas; : 显示所有数据库

  • show partitions table_name : 显示表分区信息 , 不是分区表执行报错

  • show functions; : 显示当前版本hive支持的所有方法

  • desc extended table_name : 查看表信息

    • hive中表类型
    MANAGED_TABLE  内部表 
    EXTERNAL_TABLE  外部表
    
  • desc formatted table_name : 查看表信息(格式化美观)

    • 这里我们可以看到表的详细信息
  • describe database database_name; : 查看数据库相关信息

hive解析数据

	首先使用InputFormat去读文件(默认一行一行读),读取一行交给SerDe处理,SerDe按照分隔符进行切割,切割出来一个列,对应hvie中一个字段。
	
InputFormat:org.apache.hadoop.mapred.TextInputFormat  
SerDe:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

LazySimpleSerDe就是语法中delimited 所代表的默认分隔符类
DeepSeek+Coze扣子搭建智能体(保姆级教程) 阅读详情

相关推荐

GNSS接收机性能测试指标详解:TTFF、位置精度、灵敏度等关键参数如何评估

本文详细解析了GNSS接收机性能测试的关键指标,包括首次定位时间(TTFF)、位置精度、灵敏度等,帮助工程师系统评估接收机性能。通过多频段协同定位和载波相位测试等技术,提升定位精度至亚米级。同时,介绍了灵敏度测试的极限挑战和授时精度的专业测试方案,为GNSS接收机的性能优化提供实用指导。

cuda7parallel的博客 963

CDH安装hive报错:Failed to Create Hive Metastore Database Tables.

按照提示寻找/usr/share/java/目录 发现/usr/share/目录下没有java这个目录,就在/usr/share/目录下手动创建了一个java目录,然后把mysql-connector-java.jar拷贝了进来,同时赋予mysql-connector-java.jar可执行权限。也就是说是:/usr/share/java/目录下没有mysql-connector-java.jar。之后重试安装,成功了!

wangxiaowu_001的博客 836

【代码审计】RuoYi定时任务漏洞:从SQL注入到RCE的攻防演变

本文深入剖析了RuoYi框架定时任务模块从早期版本无校验到引入黑白名单机制,再到被组合利用实现RCE的完整漏洞演变过程。文章详细分析了SQL注入与定时任务功能结合导致的远程代码执行漏洞,并总结了代码审计与安全开发的核心要点,为开发者提供了重要的安全参考。

yellow的专栏 699

2020.9.27(Hive Serde、HiveServer2、Hive函数)

回顾:上节课讲了hive的基本语句,DDL,DML 和MySQL差不多,但是也有一些自己独特的东西,比如在定义一张表的时候需要指定行格式。 这节课开始,hive的点就比较琐碎了。 Hive Serde Hive SerDe - Serializer and Deserializer –SerDe 用于做序列化和反序列化。 什么意思? hive在运行过程中,数据是存储在hdfs的,但是执行引擎是mapreduce,这两个之间有必然的关系么? 写的都是SQL语句,可以通过load的方式加载数据,也可以直接向h

超可爱慕之 1212

LSTM量化选股实战:从数据清洗到回测归因的工程化闭环

LSTM(长短期记忆网络)是一种专为建模长程依赖而设计的循环神经网络,其门控机制能有效应对金融时序数据的非线性、高噪声与动态演化特性。相比传统统计模型或简单RNN,LSTM在股价趋势建模中展现出更强的鲁棒性与泛化能力,尤其适合处理日频多因子时序信号。其技术价值不仅在于提升预测精度,更在于支撑可归因、可审计的量化策略工程实践——从特征构建、标签定义到滚动回测,每一步都需严防未来信息泄露与过拟合风险。典型应用场景包括A股多因子选股、行业轮动信号生成及Alpha组合优化。本文聚焦LSTM在真实量化场景中的落地难点

weixin_33158887的博客 399

npu-smi info 华为昇腾NPU 状态监控工具解读

用于查询所有设备的基本信息。

Lixora's DB Home 2488

Hive中的DDL操作

参考文章:https://www.cnblogs.com/qingyunzong/p/8723271.html 首先引入以下什么是DDL、DML、DCL: DDL(data manipulation language) 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。 DML(data definition language) DDL比DML要多,主要的命令有CREATE、

Mark_Frank的博客 1993

Silvaco TCAD仿真例库——肖特基二极管正向特性(例子)

此示例演示了肖特基二极管正向特性的仿真。 展示了: 使用 Atlas 语法形成二极管结构 设置阳极的肖特基势垒高度 正向偏置阳极 代码 第一部分:描述设备 mesh(网格) electrodes locations(电极位置) doping distribution(掺杂分布) 这是位于结构左侧和右侧的,2维n型器件,具有重掺杂浮动 p 型保护环区域, (2D n-type device with heavily doped floating p-type guard ring regio.

weixin_41788560的博客 2万+

【Hive-基础】DDL语句,数据库、表的基本CURD操作

DDL语句,数据库、表的基本操作 文章目录DDL语句,数据库、表的基本操作1 创建-数据库2 查询-数据库3 修改-数据库4 删除-数据库5 创建-表5.1 管理表5.2 外部表5.3 管理表与外部表的互相转换6 修改-表7 删除-表8 清除-表 1 创建-数据库 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_

一个写湿的程序猿 1616

重头开始学ROS(8)---LVI-SAM复现与实机部署Ubuntu20.04以及如何适配6轴imu

本文详细记录了在Ubuntu20.04环境下复现LVI-SLAM系统的过程,主要包含四个部分:源码编译、问题解决、数据录制和6轴IMU适配。在编译过程中遇到GTSAM、PCL版本、OpenCV路径等典型问题并给出解决方案;详细说明了ROS bag包的录制规范;针对6轴IMU硬件限制,提供了核心代码修改方案。文章为LVI-SLAM系统在非标准环境下的部署提供了实用参考,特别适合需要适配不同硬件配置的研究者。

qq_73991479的博客 1558

番外篇 | 关于YOLO11算法的改进点总结

关于YOLO11算法的改进点总结。🌈

小哥谈 2311

Hive---DDL

因此通常使用这些工具将数据流式传输到现有分区中,但是这会使读者感到脏读(也就是说,他们将在开始查询后看到写入的数据),并将许多小文件留在目录中,这将给NameNode带来压力。换句话说,Hive完全管理表(元数据和数据)的生命周期,类似于RDBMS中的表。当您删除内部表时,它会删除数据以及表的元数据。如果不对表进行分区,那么在执行查询的时候,会对全表进行检索才能得出相应的结果,如果数据文件很多的话,则会大大降低查询效率,此时可以通过对表进行分区,避免查询时候全表扫描数据,极大的提升了查询效率。

weixin_47109902的博客 862

i.MX6ULL驱动开发 | 31 - Linux内核网络设备驱动框架

net_device结构体在内核中指代一个网络设备,定义在,是一个非常大的结构体,包含网络设备的属性描述和操作接口,其中一些关键的成员如下。Linux在轮询处理机制和中断处理机制的基础上,提出了一种高效的网络处理技术NAPI。NAPI的核心思想是不全部采用中断来读取网络数据,而是采用中断来唤醒数据接收服务程序,在接收服务程序中采用poll的方法来轮询处理数据。提高短数据包的接收效率,减少中断处理的时间。...

Mculover666的博客(嵌入式) 1103

Hive数据表操作(DDL)

Hive表操作

super_mochi1 2239

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Hive HQL知识DDL汇总之数据表操作

Hive HQL知识DDL汇总之数据表操作 1. 数据表操作概述 数据库中database和table可以看作是2级文件管理,如mysql在windows下的数据库文件就是划分2级文件夹目录。 数据表的操作,可以简单分为建立表格,对表结构修改、删除表。 hive的表,元数据存储在单独的数据库中,本文配置为存放在mysql中。表中数据则存放在hdfs中。如下图示例 2 创建表 2.1 概述 建表语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_na

xiaohu21的博客 547

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Hive 库表操作

Hive数据表操作-创建数据表。

m0_71792059的博客 232

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

6Hive Sql 大全

本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类:一、DDL语句(数据定义语句):对数据库的操作:包含创建、修改数据库对数据表的操作:分为内部表及外部表,分区表和分桶表二、DQL语句(数据查询语句):单表查询、关联查询hive函数:包含聚合函数,条件函数,日期函数,字符串函数等行转列及列转行:lateral view 与 explode 以及 reflect窗口函数与分析函数其他一些窗口函数。

qq_45972323的博客 1415

hive sql总结汇总

一、Hive的DDL语法 对数据库的操作 • 创建数据库: create database if not exists myhive; 说明:hive的表存放位置模式是由hive-site.xml当中的一个属性指定的 :hive.metastore.warehouse.dir 创建数据库并指定hdfs存储位置 : create database myhive2 location '/myhive2'; • 修改数据库: alter database myhive2 set dbpropertie

weixin_34280060的博客 6703

打怪升级之小白的大数据之旅(六十三)<Hive旅程第四站:DDL操作>

打怪升级之小白的大数据之旅(六十三) Hive旅程第四站:DDL操作

不断努力的数据汪 261

Hive数据操作

目录 Hive数据操作 DDL数据定义 数据库操作 数据表操作 DML数据操作 数据导入 数据导出 Hive数据操作 DDL数据定义 数据库模式定义DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。 数据库操作 (1)创建数据库,数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.db...

StephenYou的自习室 745

【Hive】Hive基本操作

前言实验步骤一、实验环境准备1.首先在Linux本地新建/data/hive2目录。2.切换到/data/hive2目录下,使用wget命令,下载http://59.74.172.143:60000/allfiles/hive2中cat_group和goods文件。3.输入jps检查Hadoop相关进程,是否已经启动。若未启动,切换到/apps/hadoop/sbin目录下,启动Hadoop。4....

码农印象 2274

Hive转载,好文章,入门级,hive基本优缺点和常识用法

hive入门

NICE_square的博客 223

Hive中的DDL语句的详细梳理

DDL:Data Definition Language 数据定义语言 一、数据库相关 1、创建数据库 语法: CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] #####数据库注释 [LOCATION hdfs_path] #...

曹利荣的博客 571

泰涨知识 | 10分钟快速入门Hive之基本操作篇

当执行JOIN操作时,如果JOIN条件涉及到桶键,Hive可以利用这个特性来减少JOIN的计算量,因为只需要比较相同桶号的数据,从而提高效率。例如,table总共分了64份,当y=32时,抽取(64/32=)2个bucket的数据,当y=128时,抽取(64/128=)1/2个bucket的数据。1. 创建表分区,在Hive中创建一个分区表goods,包含goods_id和goods_status两个字段,字符类型为string,分区为cat_id,字符类型为string,以“\t“为分隔符。

taikejiaoyu的博客 711

一文学完所有的Hive SQL(两万字最全详解)

Hive SQL 大全本文基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类:一、DDL语句(数据定义语句):对数据库的操作:包含创建、修改数据库对数据表的操作:分为内部表及外部表,分区表和分桶表二、DQL语句(数据查询语句):单表查询、关联查询hive函数:包含聚合函数,条件函数,日期函数,字符串函数等行转列及列转行:lateral view 与 explode ...

大数据星球-浪尖 1万+

23-hadoop-hive的DDL和DML操作

跟mysql类似, hive也有 DDL, 和 DML操作 数据类型: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL : primitive_type | array_type | map_type | struct_type | union_type -- (Note: Availab...

weixin_34049032的博客 96
上一篇: 大数据----【Flume、常用组件、load-balance、failover、日志采集汇总、Flume中小文件频繁滚动注意事项】
下一篇: Hive----【DML操作 、对数据表的查操作】
CoderBoom
博客等级 码龄8年 62粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值