环境准备

集成jar包:hudi-hadoop-mr-bundle-0.10.1.jar,放入$HIVE_HOME/lib目录下

建外部表

create database db_hudi;use db_hudi;CREATE EXTERNAL TABLE IF NOT EXISTS tbl_hudi_didi(order_id BIGINT,product_id INT,city_id INT,district INT,county INT,type INT,combo_type INT,traffic_type INT,passenger_count INT,driver_product_id INT,start_dest_distance INT,arrive_time STRING,departure_time STRING,pre_total_fee DOUBLE,normal_time STRING,bubble_trace_id STRING,product_1level INT,dest_lng DOUBLE,dest_lat DOUBLE,starting_lng DOUBLE,starting_lat DOUBLE,ts BIGINT,partitionpath STRING
)
PARTITIONED BY(date_str string
)
ROW FORMAT SERDE'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT'org.apache.hudi.hadoop.HoodieParquetInputFormat'
OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION'/hudi-warehouse/tbl_didi_haikou';

手动加入分区

--手动添加分区
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-5-22') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-5-22';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-5-23') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-5-23';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-5-24') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-5-24';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-5-25') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-5-25';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-5-26') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-5-26';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-5-27') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-5-27';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-5-28') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-5-28';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-5-29') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-5-29';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-5-30') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-5-30';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-5-31') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-5-31';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-6-1') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-6-1';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-6-2') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-6-2';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-6-3') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-6-3';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-6-4') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-6-4';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-6-5') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-6-5';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-6-6') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-6-6';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-6-7') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-6-7';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-6-8') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-6-8';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-6-9') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-6-9';
ALTER TABLE db_hudi.tbl_hudi_didi ADD IF NOT EXISTS PARTITION (date_str = '2017-6-10') LOCATION '/hudi-warehouse/tbl_didi_haikou/2017-6-10';

查看分区

SHOW PARTITIONS db_hudi.tbl_hudi_didi;

指标统计

-- 开发测试,设置运行模式为本地模式
set hive.exec.mode.local.auto = true;set hive.exec.mode.local.auto.tasks.max = 10;
set hive.exec.mode.local.auto.inputbytes.max=88801103;
set hive.exec.mode.local.auto.input.files.max=50;
SET hive.mapred.mode=nonstrict;
-- 指标一:订单类型统计
WITH tmp as (SELECTproduct_id,COUNT(1) AS totalFROM db_hudi.tbl_hudi_didiGROUP BY product_id
)
SELECTCASE product_idWHEN 1 THEN "滴滴专车"WHEN 2 THEN "滴滴企业专车"WHEN 3 THEN "滴滴快车"WHEN 4 THEN "滴滴企业快车"ELSE "未知"END AS order_type,total
FROM tmp
;-- 指标二:订单时效性统计
WITH tmp as (SELECTtype,COUNT(1) AS totalFROM db_hudi.tbl_hudi_didiGROUP BY type
)
SELECTCASE typeWHEN 0 THEN "实时"WHEN 1 THEN "预约"ELSE "未知"END AS order_type,total
FROM tmp
;--指标三:订单交通类型统计
SELECTtraffic_type,COUNT(1) AS total
FROM db_hudi.tbl_hudi_didi
GROUP BY traffic_type;-- 指标五:订单价格统计,先将价格划分区间,再统计,此处使用WHEN函数和SUM函数
SELECTSUM(CASE WHEN pre_total_fee BETWEEN 0 AND 15 THEN 1 ELSE 0 END) AS 0_15,SUM(CASE WHEN pre_total_fee BETWEEN 16 AND 30 THEN 1 ELSE 0 END) AS 16_30,SUM(CASE WHEN pre_total_fee BETWEEN 31 AND 50 THEN 1 ELSE 0 END) AS 31_50,SUM(CASE WHEN pre_total_fee BETWEEN 51 AND 100 THEN 1 ELSE 0 END) AS 51_100,SUM(CASE WHEN pre_total_fee > 100 THEN 1 ELSE 0 END) AS 100_
FROM db_hudi.tbl_hudi_didi;

Hudi-通过Hive查询hudi表数据相关推荐

  1. hive查询hudi表使用count报java.lang.ClassNotFoundException: org.apache.hudi.hadoop.HoodieParquetInputFormat

    问题描述: hive 查询hudi 报错, 已将hudi 对应包hudi-hadoop-mr-bundle-0.9.0.jar放入lib目录下并重启hive select count(1) from ...

  2. SQL查询单表数据之组合(三)

    [SQL从一点一滴分析系列文章]为实际开发中的点点滴滴的总结,从最最简单的SQL 查询 到 综合分析查询 在分析 SQL 时,也会同时分析 mybatis .Hibernate 中的相关操作 点击查看 ...

  3. SQL查询单表数据之排序(二)

    [SQL从一点一滴分析系列文章]为实际开发中的点点滴滴的总结,从最最简单的SQL 查询 到 综合分析查询 在分析 SQL 时,也会同时分析 mybatis .Hibernate 中的相关操作 点击查看 ...

  4. SQL查询单表数据(一)

    [SQL从一点一滴分析系列文章]为实际开发中的点点滴滴的总结,从最最简单的SQL 查询 到 综合分析查询 在分析 SQL 时,也会同时分析 mybatis .Hibernate 中的相关操作 点击查看 ...

  5. mysql 将a表数据插入b表_查询A表数据插入到B表中 sql

    前言: 最近遇到一个 查询A表数据插入到B表中sql的问 所以就发文章记录下,希望能帮助到家 开发环境 win10专业版本(其他操作系统具体安装mysql请百度 ) 准备工作: 安装MySQL 1 m ...

  6. JDBC使用Java反射万能查询Oracle表数据、插入数据——【JDBC编程】

    JDBC使用反射智能查询Oracle表数据 JDBC编程中使用反射技术,动态获取Oracle表数据 1.反射的概念 2.构建Oracle数据库连接方法,关闭方法--便于调用 静态常量类: Oracle ...

  7. Oracle 跨库 查询 复制表数据

    在目前绝大部分数据库有分布式查询的需要.下面简单的介绍如何在oracle中配置实现跨库访问. 比如现在有2个数据库服务器,安装了2个数据库.数据库server A和B.现在来实现在A库中访问B的数据库 ...

  8. Oracle 跨库 查询 复制表数据 分布式查询

    方法一: 在眼下绝大部分数据库有分布式查询的须要.以下简单的介绍怎样在oracle中配置实现跨库訪问. 比方如今有2个数据库服务器,安装了2个数据库.数据库server A和B.如今来实如今A库中訪问 ...

  9. 查询数据库表数据量大小

    1.查询各个表的数据量大小 use information_schema; SELECT TABLE_NAME, (DATA_LENGTH/1024/1024) as DataM , (INDEX_L ...

  10. gorm使用Joins方法查询关联表数据的示例

    前言 gorm中的Joins方法只支持一对一关系.需要想要支持其它多关系表的查询,需要手写关联关系.只要记住下面的方式在看一下示例就很容易记住了: 一对一关系:只有一对一关系才能直接使用gorm原生的 ...

最新文章

  1. 基于 OpenCV 的表格文本内容提取
  2. 朋友圈、浏览器分享实现
  3. 数据结构(十四)归并排序
  4. C# 利用反射机制开启控件双缓存
  5. 2007年8月25日华为的几个面试题
  6. Java中的enum详细解析------Java enum 枚举还可以这么用
  7. 翁恺老师C语言学习笔记(十)指针_指针变量就是记录地址的变量
  8. ASP.NET MVC 3 Validation - 正则表达式验证RegularExpressionAttribute之日期验证
  9. IAP上线后查不到product id
  10. OpenCV 图片模糊处理
  11. Fortran入门教程(九)——文件
  12. 如何向下属布置工作任务,5个步骤,布置工作任务更清晰
  13. python可以制作大型游戏_python能做游戏吗-python能开发游戏吗
  14. intelliJ IDES MySql数据库JDBC连接代码
  15. 长篇分享腾讯工作的环境、待遇等
  16. PHP 实现递归处理数据
  17. 密码破解工具John the Ripper使用说明
  18. Syncthing文件同步方案完全攻略(亲测有效)
  19. Java 支付宝支付 Alipay
  20. 【牛客网华为机试】HJ46 截取字符串

热门文章

  1. 计算机绘图读后笔记3000字,0921计算机绘图0.doc
  2. 【山大智云】SeafileServer源码分析之CDC(基于内容长度可变分块)
  3. glusterfs:Server-quorum和Client Quorum
  4. PyTorch搭建CNN-LSTM混合模型实现多变量多步长时间序列预测(负荷预测)
  5. oppo电视怎么看电视台 oppo电视看CCTV直播方法
  6. slurm任务管理相关命令
  7. Android 版本号及对应的版本名
  8. LaTeX模板——英文写作
  9. ChIP-seq实战 | 染色质免疫共沉淀技术 | ATAC-seq | 染色质开放性测序技术
  10. UE4 键盘控制开关灯