1. Hive 创建表时正则表达式与java代码中一致,RegexSerDe 中用\\来表示反转码
create table inst_cn_3 (
ip string,
time string,
mac string,
lan string,
ver string,
lc string,
pn string,
reg string,
vrf string,
line string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "- *([\\d\\.]+) *\\[([\\d]{2}/[\\w]+/[\\d]{4}:[\\d]{2}:[\\d]{2}:[\\d]{2}\\s+\\+[\\d]+)\\] *GET */mx3/inst/([0-9a-f]{12})/ver=([\\.\\d]+),lan=(0x[\\w]+)(?:,lc=([\\w]+))(?:,pn=([\\w]+))(?:,reg=([0-1]))(?:,vrf=([\\w]+))?.*"
)
STORED AS TEXTFILE;
alter table inst_cn_3 add columns(line string);
ALTER TABLE inst_cn_3 SET SERDEPROPERTIES (
"input.regex" = "- ([\\d\\.]+) \\[([\\d]{2}/[\\w]+/[\\d]{4}:[\\d]{2}:[\\d]{2}:[\\d]{2}\\s+\\+[\\d]+)\\] GET /mx3/inst/([0-9a-f]{12})/ver=([\\.\\d]+),lan=(0x[\\w]+)(?:,lc=([\\w]+))(?:,pn=([\\w]+))(?:,reg=([0-1]))(?:,vrf=([\\w]+))?.*|(.*)"
);
select * from inst_cn_3 limit 100;
select
line
from inst_cn_3
where
1=1
and mac is null
and line is not null
and !(line rlike '.*unknowuser00.*')
;
hadoop fs -cp /mnt/nfs/log/statcn/inst/inst_cn_3.*.txt /hive/warehouse/inst_cn_3/
2011.06.09 hive时间处理
1.select
from_unixtime(unix_timestamp('02/May/2011:00:00:00 +0800','dd/MMMMM/yyyy:HH:mm:ss Z'),'yyyy-MM-dd HH:mm:ss') ,
from_unixtime(unix_timestamp('02/May/2011:23:59:59 +0800','dd/MMMMM/yyyy:HH:mm:ss Z'),'yyyy-MM-dd HH:mm:ss') ,
from_unixtime(unix_timestamp('03/May/2011:00:00:00 +0800','dd/MMMMM/yyyy:HH:mm:ss Z'),'yyyy-MM-dd HH:mm:ss') ,
from_unixtime(unix_timestamp('03/May/2011:23:59:59 +0800','dd/MMMMM/yyyy:HH:mm:ss Z'),'yyyy-MM-dd HH:mm:ss')
from
stat_c_log
where
1=1
and partkey = '20110503'
and logType = 'inst_cn_3'
and url rlike '/mx3/inst/.*'
limit
10
;
2.
select
from_unixtime(unix_timestamp('02/May/2011:00:00:00 +0800','dd/MMMMM/yyyy:HH:mm:ss Z'),'yyyy-MM-dd HH:mm:ss') ,
from_unixtime(unix_timestamp('02/May/2011:23:59:59 +0800','dd/MMMMM/yyyy:HH:mm:ss Z'),'yyyy-MM-dd HH:mm:ss') ,
from_unixtime(unix_timestamp('03/May/2011:00:00:00 +0800','dd/MMMMM/yyyy:HH:mm:ss Z'),'yyyy-MM-dd HH:mm:ss') ,
from_unixtime(unix_timestamp('03/May/2011:23:59:59 +0800','dd/MMMMM/yyyy:HH:mm:ss Z'),'yyyy-MM-dd HH:mm:ss') ,
round((unix_timestamp('02/May/2011:00:00:00 +0800','dd/MMMMM/yyyy:HH:mm:ss Z')-4*3600)/(3600*24))*(3600*24*1000),
round((unix_timestamp('02/May/2011:23:59:59 +0800','dd/MMMMM/yyyy:HH:mm:ss Z')-4*3600)/(3600*24))*(3600*24*1000)
from
stat_c_log
where
1=1
and partkey = '20110503'
and logType = 'inst_cn_3'
and url rlike '/mx3/inst/.*'
limit
10
;
2012.03.01
1. Hive 方法注册类 FunctionRegistry
2012.06.14
1. set hive.cli.print.header=true; 可以设置hive shell的输出.
2012.06.26
1. hive cdh4b2 使用arichive 对表归档后, 使用select line 对归档后的partition查询时, 报FileNotFoundException 异常。
https://issues.apache.org/jira/browse/MAPREDUCE-2704 是因为CombineFileInputFormat constructs new Path objects by converting an existing path to a URI, and then only pulling out the "path" part of it. This drops the scheme and host, which makes CombineFileInputFormat fail if the paths are on a filesystem other than the default one.
2012.07.16
1. EXPLAIN EXTENDED hive_query; 查看运行.
2012.07.29
1. DESCRIBE FORMATTED mock; 显示columns, location, params等.
2. /src/ql/src/test/queries/clientpositive/
分享到:
相关推荐
Hive 创建表语法是 Hive 中的一种基本操作,用于创建 Hive 表。Hive 表可以是内部表,也可以是外部表。下面将详细介绍 Hive 创建表语法的使用。 EXTERNAL 关键字 在 Hive 中,使用 EXTERNAL 关键字可以创建外部表...
通过上述步骤,我们可以了解到如何在Hadoop环境下使用Hive创建外部表,并掌握相关的配置选项和操作方法。创建外部表不仅有助于更好地组织和管理数据,还能避免因误操作导致的数据丢失问题。希望本文能帮助读者更好地...
hive建表语句hive建表语句hive建表语句hive建表语句hive建表语句hive建表语句
hive练习数据和hive练习题包含了hive练习数据,hive数据的建表ddl和hive练习题,非常适合做hive练习,新手培训,快速入门等; 包含以下练习: hive的group by 和集合函数 hive的Order By/Sort By/Distribute By Join...
SparkSQL通过Hive创建DataFrame问题分析 问题一 Caused by: org.apache.spark.sql.catalyst.analysis.NoSuchTableException: Table or view 'stu' not found in database 'default'; 分析:确实没有临时表View,...
基于oracle或者mysql生成自动建表同步源数据表结构及注释
`命令查看表`test`的创建语句,了解表的具体结构及数据存放的位置。通常情况下,Hive表的数据会被存储在HDFS的某个指定路径下,例如`/user/hive/radius/test`。 2. **检查分区信息**:可以通过多种方式来查看Hive表...
本实验旨在深入理解Hive的基本操作,包括创建数据库、内部表、外部表以及分区表,并通过实际操作来掌握这些概念。 首先,创建Hive数据库分为两种情况,即使用`location`和不使用`location`。当使用`location`关键字...
内部表的数据由Hive完全管理,删除内部表会同时删除其对应的数据。而外部表仅仅是一个指向实际数据的引用,删除外部表不会影响数据。在这个场景下,我们关注的是内部表,因为小文件问题主要影响数据读取速度。 小...
在Hive创建表时,可以使用`CREATE EXTERNAL TABLE`命令并指定表结构,同时指定存储处理器为`com.mongodb.hadoop.hive.MongoStorageHandler`,并且通过`TBLPROPERTIES`指定MongoDB的连接信息,比如`mongo.uri`。...
hive生成日历表.sql
4. **创建表**: `CREATE TABLE`用于创建Hive中的表。你可以指定表的列名、数据类型以及存储格式。例如,`CREATE TABLE my_table (col1 string, col2 int)`将创建一个名为my_table的表,包含两列col1和col2。 5. *...
4. **处理分区**:如果需要在Hive中创建分区表,可以分析MySQL表中的时间戳或分类字段,将其设置为Hive的分区字段。 5. **生成Hive建表语句**:基于上述信息,构造Hive的CREATE TABLE语句,包括表名、字段定义、...
如`HiveExternalCatalog`用于与Hive Metastore交互,`HiveShim`处理Hive版本之间的差异,`HiveContext`是Spark与Hive交互的主要入口,它封装了创建Hive连接、解析HQL等操作。 此外,值得注意的是,由于Spark的弹性...
Hive提供了多种方式来创建表分区,包括静态分区和动态分区。 查询表分区 查询表分区是指根据查询条件来选择相应的分区进行查询。在Hive中,可以使用以下命令来查询表分区: `hive> show partitions table_name;` ...
6. **Hive创建表的过程** - 解析Hive语句,构建表、字段和分区等对象。 - 元数据的存储模式影响元数据的管理和访问。 通过这本书的学习,读者不仅可以理解Hive的基本概念,还能深入掌握其工作流程和架构。尤其是...
#### 二、Hive 分区表的创建与管理 ##### 1. 静态分区表 **一级静态分区表**是指表中的分区字段在创建时就已经定义好,并且在加载数据时需要显式指定分区信息。 ```sql CREATE TABLE my_partitioner1 ( id ...
总的来说,理解并掌握Hive创建自定义函数和加载机制,能极大地拓展Hive的功能,适应各种复杂的数据处理需求。同时,合理使用动态分区加载能够提高数据加载的效率和便利性,是每个Hive用户都应该了解的重要知识点。
“各种表创建SQL”这部分将详细讲解CREATE TABLE语句的各种用法,包括创建基本表、分区表、分桶表,以及指定列属性(如是否可为空、默认值、数据类型等)。此外,还有ALTER TABLE语句用于修改已存在的表结构。 ...