- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
创建表 第二十九页,共五十页。 创建表 第三十页,共五十页。 列类型 Hive支持的数据类型如下: 原生类型: TINYINT SMALLINT INT BIGINT BOOLEAN FLOAT DOUBLE STRING BINARY?(Hive?0.8.0以上才可用) TIMESTAMP?(Hive?0.8.0以上才可用) 复合类型: arrays:?ARRAYdata_type maps:?MAPprimitive_type, data_type structs:?STRUCTcol_name : data_type [COMMENT col_comment], ... union:?UNIONTYPEdata_type, data_type, ... 第三十一页,共五十页。 Hive中表的类型 Hive 没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织 Hive 中的表,只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。 Hive 中所有的数据都存储在 HDFS 中,Hive 中包含以下数据模型:Table,External Table,Partition,Bucket。 (1)普通表 普通表的创建就是一个表对应一个表名和表名对应的文件。 (2)外部表 建表的同时指定一个指向实际数据的路径,创建内部表时会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。删除表时,内部表的元数据和数据一起被删,而外部表只删除元数据,不删除数据。 (3)分区表 在 Hive 中,表中的一个 Partition 对应于表下的一个目录,所有的 Partition 的数据都存储在对应的目录中。例如:pvs 表中包含 ds 和 city 两个 Partition,则对应于 ds = ctry = US 的 HDFS 子目录为:/wh/pvs/dsctry=US;对应于 ds = ctry = CA 的 HDFS 子目录为;/wh/pvs/dsctry=CA 第三十二页,共五十页。 加载数据 Hive不支持一条一条用insert语句进行插入操作,也不支持update操作。数据以load的方式加载到建立好的表中,一旦导入,不可修改。 LOAD DATA [LOCAL] INPATH [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] Load 操作只是单纯的复制/移动操作,将数据文件移动到 Hive 表对应的位置。 可以是: 相对路径,例如:project/data1 绝对路径,例如: /user/hive/project/data1 包含模式的完整 URI,例如:hdfs://namenode:9000/user/hive/project/data1 第三十三页,共五十页。 加载的目标可以是一个表或者分区。如果表包含分区,必须指定每一个分区的分区名。 可以引用一个文件(这种情况下,Hive 会将文件移动到表所对应的目录中)或者是一个目录(在这种情况下,Hive 会将目录中的所有文件移动至表所对应的目录中)。 如果指定了 LOCAL,那么: load 命令会去查找本地文件系统中的 。如果发现是相对路径,则路径会被解释为相对于当前用户的当前路径。用户也可以为本地文件指定一个完整的 URI,比如:. load 命令会将 中的文件复制到目标文件系统中。目标文件系统由表的位置属性决定。被复制的数据文件移动到表的数据对应的位置。 如果没有指定 LOCAL 关键字,如果 指向的是一个完整的 URI,hive 会直接使用这个 URI。否则: 如果没有指定 schema 或者 authority,Hive 会使用在 hadoop 配置文件中定义的 schema 和authority, 指定了 Namenode 的 URI。 如果路径不是绝对的,Hive 相对于 /user/ 进行解释。 Hive 会将 中指定的文件内容移动到 table (或者 partition)所指定的路径中。 如果使用了 OVERWRITE 关键字,则目标表(或者分区)中的内容(如果有)会被删除,然后再将 指向的文件/目录中的内容添加到表/分区中。 如果目标表(分区)已经有一个文件,并且文件名和 中的文件名冲突,那么现有的文件会被新文件所替代。 第三十四页,共五十页。 插入数据 第三十五页,共五十页。 SELECT查询 SELECT [ALL | DISTI
文档评论(0)