文档详情

Hive SQL语法.docx

发布:2017-08-03约1.68万字共17页下载文档
文本预览下载声明
? Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需 要的内容,这套SQL 简称Hive SQL,使不熟悉mapreduce 的用户很方便的利用SQL 语言查询,汇总,分析数据。而mapreduce开发人员可以把 己写的mapper 和reducer 作为插件来支持Hive 做更复杂的数据分析。 ? ? ?它与关系型数据库的SQL 略有不同,但支持了绝大多数的语句如DDL、DML 以及常见的聚合函数、连接查询、条件查询。HIVE不适合用于联机 online)事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。 ? ? HIVE的特点:可伸缩(在Hadoop的集群上动态的添加设备),可扩展,容错,输入格式的松散耦合。 ? ? ?Hive 的官方文档中对查询语言有了很详细的描述,请参考:/hadoop/Hive/LanguageManual ,本文的内容大部分翻译自该页面,期间加入了一些在使用过程中需要注意到的事项。 1. ?DDL 操作 DDL ?建表 ?删除表 ?修改表结构 ?创建/删除视图 ?创建数据库 ?显示命令 建表: 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] ?CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXIST 选项来忽略这个异常 ?EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION) ?LIKE 允许用户复制现有的表结构,但是不复制数据 ?COMMENT可以为表与字段增加描述 ? ?ROW FORMAT ??? DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char] ??????? [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char] ?? | SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)] ???????? 用户在建表的时候可以自定义 SerDe 或者使用自带的 SerDe。如果没有指定 ROW FORMAT 或者 ROW FORMAT DELIMITED,将会使用自带的 SerDe。在建表的时候,用户还需要为表指定列,用户在指定表的列的同时也会指定自定义的 SerDe,Hive 通过 SerDe 确定表的具体的列的数据。 ?STORED AS ??????????? SEQUENCEFILE ??????????? | TEXTFILE ??????????? | RCFILE???? ??????????? | INPUTFORMAT input_format_classname OUTPUTFORMAT???????????? output_format_classname ?????? 如果文件数据是纯文本,可以使用 STORED AS TEXTFILE。如果数据需要压缩,使用 STORED AS SEQUENCE 。 创建简单表: hive CREATE TABLE pokes (foo INT, bar STRING);? 创建外部表: CREATE EXTERNAL TABLE page_view(viewTime INT, userid BIGINT, ???? page
显示全部
相似文档