北京北排建设公司招标网站,温州网站建设服务器,成都青羊网站建设,郑州app开发定制多少钱hive数据定义是hive的基础知识#xff0c;所包含的知识点有#xff1a;数据仓库的创建、数据仓库的查询、数据仓库的修改、数据仓库的删除、表的创建、表的删除、表的修改、内部表、外部表、分区表、桶表、表的修改、视图。本篇文章先介绍#xff1a;数据仓库的创建、数据仓… hive数据定义是hive的基础知识所包含的知识点有数据仓库的创建、数据仓库的查询、数据仓库的修改、数据仓库的删除、表的创建、表的删除、表的修改、内部表、外部表、分区表、桶表、表的修改、视图。本篇文章先介绍数据仓库的创建、数据仓库的查询、数据仓库的修改、数据仓库的删除、表的创建、表的删除剩下的知识点在下一篇文章介绍。
一、数据仓库的创建
Hive JDBC连接 Hive内置了HiveServer和HiveServer2服务器两者都允许使用多种编程语言进行连接但Hive server不能处理多个客户端的并发请求所以产生了HiveServer2。 HiveServer2拥有自己的CLIBeeline是一个基于SQLLine的JDBC客户端由于HiveServer2是Hive开发维护的重点所以推荐使用Beeline
建库语句
创建数据仓库的语法格式如下
CREATE DATABASE [IF NOT EXISTS] database name LOCATION dir;
IF NOT EXISTS是一个可选子句通知用户如果该数据仓库不存在则创建否则报错有错误信息提示。 所创建的数据仓库在HDFS中默认的存储路径是/user/hive/warehouse/也可以通过关键字LOCATION指定数据仓库在HDFS中存放的位置。
二、数据库查询语句
显示数据仓库个数 hive(default)show databases;
过滤显示查询的数据仓库 hive(default)show databases like hive*;
显示数据仓库详细信息使用命令 hive(default) desc database extended hivedwh;
三、数据库修改语句
切换数据库 hive(default)use hivedwh
数据仓库的修改 使用alter ... set .....关键字例如
hive(hivedwh)alter database hivedwh set dbproperties(createtime20221011);
四、数据库删除语句
Drop Database是删除数据仓库中所有表并删除数据仓库的语句。删除数据仓库的语法如下 DROP DATABASE [IF EXISTS] database_name [CASCADE];
如果不知道删除的数据仓库是否存在则使用IF EXISTS判断数据仓库是否存在。如果数据仓库不为空其中已经有表存在可以采用CASCADE关键字强制删除。
五、表的创建
建表语法树 建表语法树解释
① CREATE TABLE创建一个名字为table_name的表。如果该表已经存在则抛出异常可以用IF NOT EXISTS关键字选项来忽略异常。
② 使用EXTERNAL关键字可以创建一个外部表.
③ (col_name data_type, ...)创建表时要确定字段名及其数据类型数据类型可以是基本数据类型也可以是复杂数据类型。COMMENT为表和字段添加注释描述信息。
④ PARTITIONED BY创建分区表
⑤ CLUSTERED BY创建桶表
⑥ SORTED BY排序
⑦ ROW FORMAT DELIMITED用于指定表中数据行和列的分隔符及复杂数据类型数据的分隔符。这些分隔符必须与表数据中的分隔符完全一致。 [Fields Terminated By Char]用于指定字段分隔符。 [Collection Items Terminated By Char]用于指定复杂数据类型Map、Struct和Array的数据分隔符。 [Map Keys Terminated By Char]用于指定Map中的key与value的分隔符。 [Lines Terminated By Char]用于指定行分隔符。 默认分隔符在vim编辑器中连续按下Ctrlv/Ctrla即可输入 \001 显示^A
⑧ STORED AS指定表文件的存储格式如TextFile格式、SequenceFile格式、ORC格式和Parquet格式等。如果文件数据是纯文本的可以使用TextFile格式这种格式是默认的表文件存储格式。如果数据需要压缩可以使用SequenceFile格式等。
⑨ LOCATION用于指定所创建表的数据在HDFS中的存储位置。
六、表的删除
表的删除使用关键字Drop。
当删除一个内部表时Hive也会删除这个表中的数据所以内部表不适合和其他工具共享数据。删除外部表并不会删除表数据只是描述表的元数据信息会被删除。
删除表 hive(hivedwh)drop table dept_p2;
Truncate仅删除表中数据保留表的元数据信息。Truncate只能删除内部表中的数据不能删除外部表中的数据。外部表在删除后HDFS中的数据还存在不会被删除。因此要删除外部表数据可以把外部表转成内部表或者删除HDFS文件。Drop和Truncate可执行的操作总结在下表中。 删除内部表中的数据 hive(hivedwh)truncate table test;