首页
学习
活动
专区
工具
TVP
发布

A2Data

专栏作者
373
文章
384417
阅读量
30
订阅数
Day6 | 数据库操作-索引补充、非空表达式、CASE WHEN函数
唯一索引要求作为索引的字段列值唯一;主键索引是特殊的唯一索引,要求作为索引的字段唯一且不为空。
DataScience
2020-07-02
5510
Hive表操作二(管理表、外部表、分区表)
Hive表操作二(管理表、外部表、分区表) *管理表 --我们目前所创建的表都是管理表,也叫内部表 --Hive会控制管理表数据的生命周期,Hive默认会将表数据存储在/user/hive/warehouse子目录下 --删除一个管理表时,Hive也会删除这个表中数据 --管理表不方便和其他工具共享数据 eg:我们有一份由Pig或其他工具创建并且主要由这一工具使用的数据,同时我们还想使用Hive执行查询,可以创建一个外部表指向这份数据,并不需要对其具有所有权 *外部表 --文件位于分布式文件系统的/data/test eg:CREATE EXTERNAL TABLE IF NOT EXISTS app ( hour string, name string, pv string, uv string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/data/test'; 对以上语句分析: 1.关键字EXTERNAL告诉Hive这个表是外部表,LOCATION告诉Hive数据位于哪个路径下 2.因为是外部表,所以Hive并非认为其完全拥有这份数据,删除该表时并不会删除这份数据,只会删除描述表的元数据信息 *管理表VS外部表 --可以用 DESCRIBE EXTENDED tablename语句的输出中查看到表是否是管理表或外部表 --对于管理表,可看到如下信息 ... tableType:MANAGED_TABLE) --对于外部表,可看到如下信息 ... tableType:EXTERNAL_TABLE) 注:如果语句省略 EXTERNAL 关键字而源表是外部表的话,那么生成的新表也是外部表 如果语句省略 EXTERNAL 关键字而源表是管理表的话,那么生成的新表也是管理表 如果语句有EXTERNAL关键字而源表是管理表的话,那么生成的新表是外部表 *分区管理表 --管理表和外部表都可以加分区 eg:CREATE TABLE IF NOT EXISTS tmp.table1( userId string COMMENT '用户ID', name string COMMENT '用户姓名', createtime string COMMENT '创建时间' ) PARTITIONED BY (country string,state string ); --分区表改变了Hive对数据存储的组织方式。如果我们在tmp库下创建这个表,那么对于这个表只会有一个table1目录与之对应: /user/hive/warehouse/tmp/table1 但是,Hive在表目录下将会建好可以反映分区结构的子目录 eg:/table1/country=CA/state=AB /table1/country=CA/state=BC ... /table1/country=US/state=AL /table1/country=US/state=AK ... 这些都是实际的目录名称,州目录下将会包含有零个文件或者多个文件,这些文件中存放着那些州的用户信息 分区字段一旦创建好,表现得就和普通字段一样,除非优化查询性能,否则不需要关心是否是分区字段 如果要查某个国家的用户,那仅仅需要扫描那个国家对应的目录就可以 --查看表中存在的所有分区 eg: hive> SHOW PARTITIONS table
DataScience
2020-04-14
8690
DDL 描述数据世界
关系型数据库是指“采用了关系模型来组织数据的数据库,以行和列的形式存储数据,便于用户理解。关系型数据库这一系列的行和列被称为表,一组表组成了数据库。”
DataScience
2019-12-30
6870
Hive表操作一
Hive表操作一 *文本文件 -CSV:以逗号分隔的文本文件 -TSV:以制表符分隔的文本文件 这两种文件格式Hive都支持,但是有个缺点就是用户要对文本文件中那些不需要作为分隔符处理的逗号或者制表符格外小心 *创建表 CREATE TABLE语句遵循SQL语法惯例,但比较灵活,可定义表的数据文件存储在什么位置,使用什么存储格式等 eg:CREATE TABLE IF NOT EXISTS tmp.table1(
DataScience
2019-12-30
1.1K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档