文件的加载,只需要三步就够了,废话不多说,来直接的吧。

一、建表

话不多说,直接开始。

建表,对于日志文件来说,最后有分区,在此案例中,对年月日和小时进行了分区。

建表tracktest_log,分隔符为“\t”部分:

在hive的default库中,建表,建表语句为:

 create table tracktest_log (
id string ,
url string ,
referer string ,
keyword string ,
type string ,
guid string ,
pageId string ,
moduleId string ,
linkId string ,
attachedInfo string ,
sessionId string ,
trackerU string ,
trackerType string ,
ip string ,
trackerSrc string ,
cookie string ,
orderCode string ,
trackTime string ,
endUserId string ,
firstLink string ,
sessionViewNo string ,
productId string ,
curMerchantId string ,
provinceId string ,
cityId string ,
fee string ,
edmActivity string ,
edmEmail string ,
edmJobId string ,
ieVersion string ,
platform string ,
internalKeyword string ,
resultSum string ,
currentPage string ,
linkPosition string ,
buttonPosition string) PARTITIONED BY (ds string,hour string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

建表语句

全表默认字符类型为string,分区为ds和hour。

如下图所示:

desc tracktest_log;查看表结构。

看到分区结构如下图,分区信息为ds和hour。

二、load,加载企业日志文件

  load语法: 

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE]
INTO TABLE tablename
[PARTITION (partcol1=val1, partcol2=val2 ...)]

  Insert方式有两种,一种是append(追加),一种是overwrite(覆盖),其中覆盖应该最广。在此案例中,采用overwrite方式。

  在虚拟机中,创建一个存放日志的文件。

  指令如下所示(在opt目录下,创建一个存放日志的date文件夹):

cd /opt
mkdir /litong
cd /litong
mkdir date

  上传日志文件,load语句。

LOAD DATA LOCAL INPATH '/opt/litong/data/2015082818' overwrite INTO TABLE tracktest_log PARTITION (ds='2015-08-28',hour='18');
LOAD DATA LOCAL INPATH '/opt/litong/data/2015082819' overwrite INTO TABLE tracktest_log PARTITION (ds='2015-08-28',hour='19');

  

去检测是否load成功。因为验证的问题特别多,所以只取5行。

select * from tracktest_log limit 5;

三、Hive的存储

  1、hadoop查看表,在每个分区下,又有一个子目录,详细看下面两个图。

从图中可以看到,hour=18和hour=19.

  2、把hive查询的数据落地到HDFS或hive其他表

   ①新建一个数据库,并指定存储路径。

create database rptest location  '/user/hive/warehouse/rptest';

  ②在创建的rptest中,新建表visit_daily。

create table visit_daily
(pv bigint,
uv bigint
)partitioned by(ds string);

  ③查询数据并插入新建的表中

insert overwrite table visit_daily partition (ds='2015-08-28')
select
count(url) pv ,
count(distinct guid) uv
from default.tracktest_log where ds='2015-08-28';

  ④查询结果,如下图。

  

Hive学习之四 《Hive分区表场景案例应用案例,企业日志加载》 详解的更多相关文章

  1. prelaod场景,用来显示资源加载进度

    phaser.js的源码可以到它在github上的托管里去下载,游戏要用到的图片声音等素材资源请点击这里下载.Phaser的使用非常简单,只需要引入它的主文件,然后在页面中指定一个用来放置canvas ...

  2. Java学习-007-Log4J 日志记录配置文件详解及实例源代码

    此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:20 ...

  3. 单元测试系列之四:Sonar平台中项目主要指标以及代码坏味道详解

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6766994.html 众所周知Sona ...

  4. Shell学习(七)——sort、uniq、cut、wc命令详解

    Shell学习(七)--sort.uniq.cut.wc命令详解 转自:[1]linux sort,uniq,cut,wc命令详解 https://www.cnblogs.com/ggjucheng/ ...

  5. hive学习(三) hive的分区

    1.Hive 分区partition 必须在表定义时指定对应的partition字段 a.单分区建表语句: create table day_table (id int, content string ...

  6. hive学习(二) hive操作

    hive   ddl 操作官方手册https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL hive  dml 操作官方手 ...

  7. Hive学习:Hive连接JOIN用例详解

    1 准备数据: 1.1 t_1 01 张三 02 李四 03 王五 04 马六 05 小七 06 二狗 1.2 t_2 01 11 03 33 04 44 06 66 07 77 08 88 1.3 ...

  8. RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙

    消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以 ...

  9. webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件

    一 .webpack学习环境准备: 1:window系统 2:安装node.js  官方网址 下载好后下一步下一步安装即可 安装步骤略过....... 3:nrm的安装 打开cmd命令控制台 输入:n ...

随机推荐

  1. PHP实现单击“添加”按钮增加一行表单项,并将所有内容插入到数据库中

    PHP实现单击“添加”按钮增加一行表单项,并将所有内容插入到数据库中 效果图: html+jquery: <html> <head> <meta http-equiv=& ...

  2. android利用反射通过代码收缩通知栏

    最近有个需求,点击通知栏RemoteView中的按钮后要收起通知栏,系统默认是不自动收起的,不过没有找到公开的API可以控制通知栏. 在android.app.StatusBarManager里提供了 ...

  3. Primary key and Unique index

    SQL> create table t1(id1 char(2),id2 char(2),id3 char(2)); Table created. SQL> desc t1 Name Nu ...

  4. 【Gzip】

    为你的网站开启 gzip 压缩功能(nodejs.nginx) Do not forget to use Gzip for Express.js 网页GZIP压缩检测

  5. CodeForce 7 B - Memory Manager(模拟)

    题目大意:给你一段内存,要你进行如下的三个操作. 1.分配内存  alloc   X ,分配连续一段长度为X的内存. 如果内存不够应该输出NULL,如果内存够就给这段内存标记一个编号. 2.擦除编号为 ...

  6. 数学(矩阵乘法):HDU 4565 So Easy!

    So Easy! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  7. 字符串(后缀自动机):USACO Dec10 恐吓信

    [题目描述] FJ刚刚和邻居发生了一场可怕的争吵,他咽不下这口气,决定佚名发给他的邻居一封脏话连篇的信.他有无限张完全相同的已经打印好的信件,都包含 N个字母(1<=N<=50,000). ...

  8. Android USB安全调试

    Android 4.2.2 引入了USB安全调试方面的内容,当启用安全调试的时候,只有被用户认证过的主机才可以通过Android SDK自带的ADB工具经由USB连接来访问设备的内部构件. 下面以an ...

  9. vtk 中文显示

    参考文章: http://www.vislab.cn/bbs/viewthread.php?tid=5079&page=1&extra=#pid19477 http://tieba.b ...

  10. 《ACM国际大学生程序设计竞赛题解I》——6.11

    pku 1107: Description Weird Wally's Wireless Widgets, Inc. manufactures an eclectic assortment of sm ...