大家好,又见面了,我是全栈君
EXTERNALkeyword它允许用户创建一个外部表。在表中的同时施工指定的路径中的实际数据(LOCATION)。Hive 创建内部表时。会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不正确数据的位置做不论什么改变。在删除表的时候,内部表的元数据和数据会被一起删除。而外部表仅仅删除元数据,不删除数据 1. LIKE 同意用户复制现有的表结构,可是不复制数据 2. hive中RegexSerDe的使用 RegexSerDe是hive自带的一种序列化/反序列化的方式,主要用来处理正則表達式。 CREATETABLE test_serde( c0string, c1string, c2string) ROWFORMAT SERDE’org.apache.hadoop.hive.contrib.serde2.RegexSerDe’ WITHSERDEPROPERTIES (‘input.regex’ = ‘([^ ]*) ([^ ]*) ([^ ]*)’, ‘output.format.string’= ‘%1s %2s %3 STOREDAS TEXTFILE; 3. 表名和列名不区分大写和小写 4. 建立外部表指定数据存储路径 Create externaltable exter_trl( Id int, Name string, Age int, Tel string Location ‘/user/data/trl/external’; ) 1、在导入数据到外部表。数据并没有移动到自己的数据仓库文件夹下,也就是说外部表中的数据并非由它自己来管理的! 而表则不一样; 2、在删除表的时候。Hive将会把属于表的元数据和数据所有删掉。而删除外部表的时候。Hive只删除外部表的元数据,数据是不会删除的。 那么,应该怎样选择使用哪种表呢?在大多数情况没有太多的差别,因此选择仅仅是个人喜好的问题。 可是作为一个经验,假设全部处理都须要由Hive完毕,那么你应该创建表,否则使用外部表.。 5.按指定的分区载入数据 Loaddata inpath ‘/user/data/clickstat_gp_fatdt0/0’ OVERWRITEINTO TABLE c02_clickstat_fatdt1 PARTITION(dt=’20140820′); 5. 建表的同步指定hdfs的路劲 CREATE EXTERNALTABLE page_view(viewTime INT, userid BIGINT, page_url STRING,referrer_url STRING, ip STRINGCOMMENT ‘IP Address of the User’, country STRINGCOMMENT ‘country of origination’) COMMENT ‘This isthe staging page view table’ ROW FORMATDELIMITED FIELDS TERMINATED BY ‘ 54’ STORED ASTEXTFILE LOCATION'<hdfs_location>’; 6. HIVE VIEW(视图降低复杂查询 ) CREATE VIEW test_trlAS SELECT * FROM t1JOIN t2 ON (t1.id=t2.id)WHERE t1.name=’trl’;
版权声明:本文博主原创文章,博客,未经同意不得转载。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116866.html原文链接:https://javaforall.cn