#建表
create table sign_in (uri string , koudaiToken string) row format delimited fields terminated by ‘|’;
#如果不存在表则创建
create table if not exists mytable (id bigint,name string);
#创建外部表
hive> create external table lss_sign_in (uri string,token string) row format delimited fields terminated by ‘\t’ ;
#从HDFS加载数据到表
hive> load data inpath ‘hdfs:/user/root/input/sign_in/sign.uri’ overwrite into table lss_sign_in;
#本地文件加载到hive 仓库:
hive> LOAD DATA LOCAL INPATH ‘/luanshoushen/test.txt’ OVERWRITE INTO TABLE lss;
#从HDFD加载到HIVE 仓库(注意这里记载完成后会删除掉HDFS上的文件)
hive> LOAD DATA INPATH ‘hdfs:/user/root/input/test.txt’ OVERWRITE INTO TABLE kevin;
Loading data to table default.kevin
Deleted hdfs://idc01-vm-test-124:9019/user/hive/warehouse/kevin
虽然源文件表面上看是在HDFS删除了,其实文件被移到hive HDFS数据仓库中去了。
默认数据库仓库的文件保存在: /user/hive/warehouse/
其中kevin对应的HIVE中得元数据表名称。
test.txt就是源文件,从本地加载文件和HDFS加载文件类似。
./hadoop fs -text /user/hive/warehouse/kevin/test.txt
#查看表结构
describe tableName;
id int
name string
age int
也可以使用:desctableName;
#显示所有函数
show functions;
#查看函数使用方法
hive> describe function substr;
substr(str, pos[, len]) – returns the substring of str that starts at pos and is of length len
#根据URI分组,count(uri) 可以统计URI的PV
hive> select uri,count(uri) from sign_in group by uri;
#统计UV
hive> select uri, count(distinct koudaitoken) from sign_in group by uri;
#也同样支持 limit
#修改表结构
hive> alter table sign_in_uri replace columns(uri string);
#把Select结果插入到表中
insert overwrite table sign_in_uri select uri from sign_in group by uri;
#链接查询
#左链接
select sign_in.*,sign_in_uri.* from sign_in_uri left outer join sign_in on(sign_in_uri.uri = sign_in.uri);
#右链接
select sign_in.*,sign_in_uri.* from sign_in_uri right outer join sign_in on(sign_in_uri.uri = sign_in.uri) ;
#全链接
hive> select sign_in.*,sign_in_uri.* from sign_in_uri full outer join sign_in on(sign_in_uri.uri = sign_in.uri) limit 100;
#in 查询(hive不支持IN)使用semi join 达到相似效果
hive> select sign_in_uri.* from sign_in_uri left semi join sign_in on(sign_in_uri.uri = sign_in.uri) limit 10;
使用正则
hive> select regexp_extract(koudaitoken,’\\[.*\\]‘,0) from sign_in limit 10;
#查看函数使用方法
hive> describe function regexp_extract
regexp_extract(str, regexp[, idx]) – extracts a group that matches regexp
#注意写入HDFS或本地目录时会删除掉目录下的内容。
#将Hive数据导出到本地目录
hive> insert overwrite local directory ‘/luanshoushen/hive’ select * from sign_in_uri;
#将Hive数据导出到HDFS
hive> insert overwrite directory ‘user/root/input/hive’ select * from sign_in;
#使用一个查询将结果写入HDFS目录和本地目录
hive> from sign_in
> insert overwrite local directory ‘/luanshoushen/hive’ select *
> insert overwrite directory ‘/user/root/input/’ select *
> ;
http://mojijs.com/2014/04/134869/index.html
相关推荐
- 支持SQL查询,转换为MapReduce任务执行。 - 提供元数据管理,包括表和列的定义。 - 支持分区和桶,提高查询性能。 - 可扩展性,支持多种数据源和存储格式。 2. Hive SQL 语法规则 在编写Hive SQL时,应遵循以下...
Hive SQL支持绝大多数的语句,如DDL、DML、聚合函数、连接查询、条件查询等。 Hive不适合用于联机online事务处理,也不提供实时查询功能,但最适合应用在基于大量不可变数据的批处理作业。 Hive的特点 * 可伸缩:...
// 具有子查询的sql String hql = "select id,name from (select id from table_1 where id={p0}) t1 inner join (select name --this is name\n from table_2) t2"; // 获取id字段的血缘 LineageNode idNode = ...
通过以上介绍,我们可以看到 Hive 支持多种 SQL 操作,包括创建表、修改表结构、加载数据、查询和插入数据等。这些功能使得 Hive 成为了大数据处理领域中的一个重要工具。掌握这些基本操作有助于更高效地管理和分析...
1. SQL 支持:HiveSQL 支持标准 SQL 语句,包括 SELECT、INSERT、UPDATE 和 DELETE 等语句。 2. 数据类型丰富:HiveSQL 支持多种数据类型,包括整数、浮点数、字符串、日期时间等。 3. 数据仓库管理:HiveSQL 提供了...
- Hive支持基于列的分区索引,合理创建能显著提升查询速度。 - 使用`CLUSTERED BY`和`SORT BY`对数据进行排序,有助于优化JOIN操作。 - 考虑使用`Bucketing`以改善JOIN效率,但需谨慎,因为这会增加存储成本。 6...
- **背景**:Hive不支持标准SQL中的`IN`和`EXISTS`关键字,但可以通过`LEFT SEMI JOIN`来模拟这些功能。 - **示例**:标准SQL中的`IN`关键字查询如下: ```sql SELECT a.key, a.value FROM a WHERE a.key IN ...
SQL Developer是Oracle公司推出的一款免费的数据库管理工具,它支持多种数据库系统,包括Oracle、MySQL等,当然也包括通过ODBC或JDBC接口连接的Hive。下面我们将详细介绍如何设置和使用SQL Developer连接到Hive...
Hive支持用户自定义函数,包括UDF(单行函数)、UDAF(聚合函数)和UDTF(多行函数),扩展了Hive的功能,满足特定的业务需求。 9. **Hive与Hadoop的关系**: Hive依赖于Hadoop的MapReduce或Tez等计算框架来处理...
Apache Hive 是一个基于 Hadoop 的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,使不熟悉 MapReduce 的开发人员也能用 SQL 语言进行数据查询。Hive 在内部将 SQL 语句转换...
1. **DML(Data Manipulation Language)**:包括INSERT、UPDATE和DELETE操作,但在Hive中,由于其设计目标,UPDATE和DELETE操作通常不被支持,主要依赖INSERT来加载和更新数据。 2. **DDL(Data Definition ...
hivesql解析 支持版本<!--<hive.version>1.0.0</hive.version> <hadoop.version>2.4.1</hadoop.version> --> <hive.version>2.0.1</hive.version> <hadoop.version>2.7.2</hadoop.version>
- 基本操作:如创建表、加载数据、删除表等,支持SQL标准的SELECT、INSERT、UPDATE(只支持INSERT OVERWRITE)和DELETE语句。 - 高级查询:支持JOIN、子查询、窗口函数、聚合函数、集合操作(UNION、INTERSECT、...
5. **操作支持**: Hive支持多表插入、CREATE TABLE AS SELECT等SQL不支持的功能,但不支持SQL中的UPDATE、DELETE等修改表内容的操作。 6. **性能优化**: Hive查询通过MapReduce执行,可能比SQL慢,但能处理大数据量...
2. **数据仓库功能**:Hive支持常见的数据仓库操作,如分区、索引等,有助于提高查询效率。 3. **可扩展性**:Hive支持自定义函数,允许用户根据需求编写特定的处理逻辑。 4. **集成性**:Hive可以轻松地与其他...
- `hive.input.format`:设置为CombineHiveInputFormat,以便支持合并文件。 2. **拆分Map文件,增加Map数量** - 对于较大的文件或复杂的任务,可以通过拆分文件来增加Map数量,从而提高处理速度。例如,通过`...
类似于SQL的LIKE操作,但支持正则表达式。 13. REGEXP 操作:`REGEXP` 使用正则表达式进行匹配,例如`column REGEXP 'pattern'`。 二、数学函数 Hive提供了许多数学函数,如`ABS()`(绝对值)、`SQRT()`(平方根...
Hive支持内部表和外部表。内部表由Hive完全管理,数据存储在HDFS上,删除内部表时,数据也会被一同删除。而外部表只是对HDFS上数据的引用,删除外部表不会影响原始数据,这对于数据共享和管理非常有用。 在“分区表...