Hadoop学习(10)HiveSQL语言DDL建库建表
1 Hive SQL之数据库与建库 1.1 Hive数据模型总览
1.2 SQL中DDL语法的作用数据定义语言 (Data Definition Language, DDL),是SQL语言集中对数据库内部的对象结构进行创建,删除,修改等的操作语言,这些数据库对象包括database、table等。DDL核心语法由CREATE、ALTER与DROP三个所组成。DDL并不涉及表内部数据的操作。1.3 创建数据库在Hive中,默认的数据库叫做default,存储数据位置位于HDFS的/user/hive/warehouse下。用户自己创建的数据库存储位置是/user/hive/warehouse/database_name.db下。创建数据库语法
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];
COMMENT:数据库的注释说明语句
LOCATION:指定数据库在HDFS存储位置,默认/user/hive/warehouse/dbname.db
WITH DBPROPERTIES:用于指定一些数据库的属性配置。
案例:create database if not exists hive_test comment "hive测试库" with dbproperties ("createdBy"="Allen");
注意:如果需要使用location指定路径的时候,最好指向的是一个新创建的空文件夹。1.4 选择特定数据库
切换当前会话使用哪一个数据库进行操作。use hive_test;1.5 删除数据库
默认行为是RESTRICT,这意味着仅在数据库为空时才删除它。
要删除带有表的数据库(不为空的数据库),我们可以使用CASCADE进行强制删除。
2 Hive SQL之表与建表 2.1 表Table建表语法树(基础)
CREATE TABLE [IF NOT EXISTS] [db_name.]table_name
(col_name data_type [COMMENT col_comment], ... )
[COMMENT table_comment]
[ROW FORMAT DELIMITED …];数据类型Hive数据类型指的是表中列的字段类型;整体分为两类:原生数据类型(primitive data type)和复杂数据类型(complex data type)。最常用的数据类型是字符串String和数字类型Int。分隔符指定语法
ROW FORMAT DELIMITED语法用于指定字段之间等相关的分隔符,这样Hive才能正确的读取解析数据。或者说只有分隔符指定正确,解析数据成功,我们才能在表中看到数据。
LazySimpleSerDe是Hive默认的,包含4种子语法,分别用于指定字段之间、集合元素之间、map映射 kv之间、换行的分隔符号。在建表的时候可以根据数据的特点灵活搭配使用。
Hive默认分隔符Hive建表时如果没有row format语法指定分隔符,则采用默认分隔符;默认的分隔符是" 01",是一种特殊的字符,使用的是ASCII编码的值,键盘是打不出来的。在vim编辑器中,连续按下Ctrl+v/Ctrl+a即可输入" 01" ,显示^A。在一些文本编辑器中将以SOH的形式显示:2.2 案例
建表--创建数据库并切换使用 create database if not exists hive_test; use hive_test; --ddl create table create table t_archer( id int comment "ID", name string comment "英雄名称", hp_max int comment "最大生命", mp_max int comment "最大法力", attack_max int comment "最高物攻", defense_max int comment "最大物防", attack_range string comment "攻击范围", role_main string comment "主要定位", role_assist string comment "次要定位" ) comment "王者荣耀射手信息" row format delimited fields terminated by " ";
建表成功之后,在Hive的默认存储路径下就生成了表对应的文件夹;
把archer.txt文件上传到对应的表文件夹下。#执行命令把文件上传到HDFS表所对应的目录下 hadoop fs -put archer.txt /user/hive/warehouse/hive_test.db/t_archer
3 show语法功能Show相关的语句可以帮助用户查询相关信息。比如我们最常使用的查询当前数据库下有哪些表 show tables。1、显示所有数据库 SCHEMAS和DATABASES的用法 功能一样 show databases; show schemas; 2、显示当前数据库所有表 show tables; SHOW TABLES [IN database_name]; --指定某个数据库 3、查询显示一张表的元数据信息 desc formatted t_archer;
归乡记老院独坐在老院一角忘记鸟鸣,忘记草色青青把自己画在暮光映照的墙上分离剥削心底的翅膀不再划过干净得只知道光热的云霄流放在浮躁的醉得惨白的白日梦中俯身纠正月夜错乱的星空获取栅栏围住的春景摩
新年工作第一天,你有怎样的想法!时间就像一阵风让人无法抓住它,但它一直都在那,只是会让身边的一切有所改变。时过境迁时间已经一去不复返。时间总是匆匆忙忙,让人在不知不觉见却已消失不见。留下的痕迹只能让人回忆。珍惜当
流涛墚上读雪墚上读雪流涛雪晴了。墚上一片纯白,美得纯粹。我从办公室出来,在校园里散步读雪思考。一场雪使墚上的校园里充满了诗情画意。一场雪的故事也许正在世界的某个角落或眼前上演。雪落在树上是一幅
威远街上的这些小吃,太有诱惑力!威远人,是懂吃的尤其是又美味又便宜的街头小吃几乎每个威远人都私藏了那么几个心头好嘴馋的时候就靠它们啦今天小零哥就扒出了春节威远街上又便宜又正的心水小吃1鱿鱼土豆2煎饼果子3肉夹馍4
不管在哪里过年,餐桌上还是得有羊肉!冬日美食肃北羊肉滋补养生,抵御寒冷老一辈人常说,冬天了,要多吃羊肉喝羊肉汤滋补暖胃,这并不是没有道理Tips羊肉中富含优质的蛋白质,且性温,可以起到暖胃的作用而我们在吃羊肉时,往往
这样做的盘丝饼,可以一条一条撕着吃,外酥里软,好吃好玩又营养大家好,我是Allie,美好的一天从营养早餐开始,吃好早餐,一整天都精力充沛。早餐吃好午餐吃饱晚餐吃少,低油低盐清淡饮食,这是我多年的习惯,希望和朋友们一起吃出健康吃出美丽吃出好身
这个枣花馍粉嫩嫩的真漂亮,只需一次发酵,暄软又省事最近新学了一个枣花馍造型,两三片面皮摞一起,再用筷子一压餐叉一按,一朵面花就好啦!做法简单,造型美观,一学就会。我往其中一份面粉里添了仙人掌果粉,粉嫩嫩的,清新娇嫩感迎面扑来,虽是
古代土匪为啥不敢劫八百里加急?看他们腰间的东西,你就懂了一骑红尘妃子笑,无人知是荔枝来。这首诗说的是唐玄宗心心念念杨贵妃,什么代价都抛到了脑后,八百里加急从岭南将荔枝运送到长安。这便是唐朝驿传制度的功劳了。那么问题来了,古代治安肯定不如
今起全面恢复!赴港该如何喝茶?正确姿势了解一下2月6日起,香港与内地之间的通关限制全面取消,出入境香港无需再进行核酸检测,陆路口岸也不再设置人数限制,旅客可以自由来往内地和香港。被耽误已久的香港之旅终于又可以安排上行程。香港除
宁夏固原文旅市场全面复苏春节以来,宁夏固原市积极构建多元文化消费场景,升级传统消费模式,全面释放消费活力,助推文旅市场强势复苏。据统计,固原市春节假期接待游客83。71万人次,旅游收入2。72亿元,实现开
中日的爱恨情仇最近两年,不断有新闻曝出来某娱乐明星精日,说日本多么好。同时在新冠疫情爆发时,日本竟然适时的向我国施以援助。更有很多喜欢到日本旅游和购物的精英人士大力鼓吹日本空气清新,景色宜人,商