欢迎来到天天文库
浏览记录
ID:37567721
大小:225.08 KB
页数:26页
时间:2019-05-25
《Hadoop Hive sql语法详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL去查询分析需要的内容,这套SQL简称HiveSQL,使不熟悉mapreduce的用户很方便的利用SQL语言查询,汇总,分析数据。而mapreduce开发人员可以把己写的mapper和reducer作为插件来支持Hive做更复杂的数据分析。 它与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的
2、聚合函数、连接查询、条件查询。HIVE不适合用于联机online)事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。 HIVE的特点:可伸缩(在Hadoop的集群上动态的添加设备),可扩展,容错,输入格式的松散耦合。 Hive的官方文档中对查询语言有了很详细的描述,请参考:http://wiki.apache.org/hadoop/Hive/LanguageManual,本文的内容大部分翻译自该页面,期间加入了一些在使用过程中需要注意到的事项。1. DDL操作DDL•建表•删除表•修改表结构•创建/删除视图•创建数据库•显示命令建表:CREATE[EXTE
3、RNAL]TABLE[IFNOTEXISTS]table_name [(col_namedata_type[COMMENTcol_comment],...)] [COMMENTtable_comment] [PARTITIONEDBY(col_namedata_type[COMMENTcol_comment],...)] [CLUSTEREDBY(col_name,col_name,...) [SORTEDBY(col_name[ASC
4、DESC],...)]INTOnum_bucketsBUCKETS] [ROWFORMATrow_format] [STOREDASfile
5、_format] [LOCATIONhdfs_path]•CREATETABLE创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用IFNOTEXIST选项来忽略这个异常•EXTERNAL关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION)•LIKE允许用户复制现有的表结构,但是不复制数据•COMMENT可以为表与字段增加描述 •ROWFORMAT DELIMITED[FIELDSTERMINATEDBYchar][COLLECTIONITEMSTERMINATEDBYchar] [MAPKEYSTERMINATED
6、BYchar][LINESTERMINATEDBYchar]
7、SERDEserde_name[WITHSERDEPROPERTIES(property_name=property_value,property_name=property_value,...)] 用户在建表的时候可以自定义SerDe或者使用自带的SerDe。如果没有指定ROWFORMAT或者ROWFORMATDELIMITED,将会使用自带的SerDe。在建表的时候,用户还需要为表指定列,用户在指定表的列的同时也会指定自定义的SerDe,Hive通过SerDe确定表的具体的列的数据。•STOREDAS
8、 SEQUENCEFILE
9、TEXTFILE
10、RCFILE
11、INPUTFORMATinput_format_classnameOUTPUTFORMAT output_format_classname 如果文件数据是纯文本,可以使用STOREDASTEXTFILE。如果数据需要压缩,使用STOREDASSEQUENCE。 创建简单表:hive>CREATETABLEpokes(fooINT,barSTRING);创建外部表:CREATEEXTERNALTABLEpage_v
12、iew(viewTimeINT,useridBIGINT, page_urlSTRING,referrer_urlSTRING, ipSTRINGCOMMENT'IPAddressoftheUser', countrySTRINGCOMMENT'countryoforigination') COMMENT'Thisisthestagingpageviewtable' ROWFORMATDELIMITED
此文档下载收益归作者所有