第四章_Hive DDL 数据定义

源码2
第四章 DDL 数据定义 1. 对数据库的操作 1. 创建数据库 2. 查询数据库 3. 切换数据库 4. 修改数据库 5. 删除数据库 1. 语法 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)]; 2. 路径说明 1. 默认路径 1. 不指定 LOCATION hdfs_path 默认使用 set hive.metastore.warehouse.dir 指定的路径 2. 指定路径 1. create database ods location '/apps'; 目录不存在时 会自动创建目录 1. 显示当前环境 所有数据库 1. show databases; 2. show databases like '*om*' 2. 查看 指定数据库 详情 1. desc database home 2. desc database extended home 1. use ods alter database home set dbproperties('createtime'='20170830'); 1. drop database ods 只能删除空 数据库 2. 说明 如果数据库 不存在 会报错 [2022-01-27 14:38:41] [42000][10072] Error while compiling statement: FAILED: SemanticException [Error 10072]: Database does not exist: ods drop database if exists ods 3. 说明 1. 如果 创建数据库 存在会报错 [2022-01-27 14:41:50] [42000][1] Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Database ods already exists create database if not exists ods 3. 联级删除(删除非空数据库) drop database if exists ods cascade 2. 创建表 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] [tblproperties (property_name=property_value, ...)] [as select_statement] [like existing_table_or_view_name] 2. 参数说明 1. external 1. 外部表 标识 2. 指定 external 后 必须制定 [location hdfs_path] 3. 删除外部表时,只会删除 元数据,不会删除 外部存储文件 2. if not exists 1. 创建表时,如果 表名已存在,会报错 可以使用 这个参数 忽略这个异常 3. comment 1. 为 表名、字段名 添加注释 4. partitioned by 1. 指定分区字段, 多个分区用 逗号隔离 5. clustered by 1. 创建分桶表 6. sorted by 1. 对 桶中一个或多个列 排序( 不常用 ) 7. row format delimited 1. 指定字段分隔符 2. 指定集合类型,元素分隔符 3. 指定 map类型 key - value 分隔符 4. 指定 行分隔符 fields terminated by char collection items terminated by char map keys terminated by char lines terminated by char 8. stored as file_format 1. 指定存储文件类型 SEQUENCEFILE - 二进制序列文件(压缩文件) TEXTFILE - 文本 RCFILE - 列式存储格式文件 ORC - 列式存储格式文(RCFILE的增强) 2. ORC 和 RCFILE 的区别 https://blog.csdn.net/lp_cq242/article/details/84336076 3. 注意事项 1. 使用 load into 时, 目标表 必须是 textfile 格式 9. location hdfs_path 1. 指定 表在HDFS 上的存储位置 10. as select_statement 1. 根据查询结果创建表 11. like existing_table_or_view_name 1. 复制表结构,但是不复制数据 3. 内部表&外部表 1. 内部表(管理表) 2. 外部表 1. 说明 1. 不被 external 修饰的表, 都是管理表 2. 表都声明周期 都被 Hive 管理 3. Drop 表后, 元数据和 HDFS的数据都会被删除 4. 不适合与其他工具 共享数据 1. 说明 1. 被 external 修饰的表, 是外部表 2. drop 表后, 元数据删除, HDFS 数据文件不会被删除 3. 内部表和外部表 相互转换 1. 内部->外部 2. 外部->内部 alter table book set tblproperties('EXTERNAL'='TRUE'); alter table book set tblproperties('EXTERNAL'='FALSE'); 4. 修改表 1. 修改表名 ALTER TABLE person RENAME TO personNew; 2. 增加字段 3. 删除字段 4. 修改字段(名字、类型、注释、顺序) 5. 删除表 1. drop table person https://www.cnblogs.com/bajiaotai/p/15851027.html
posted @   学而不思则罔!  阅读(93)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示