Hive数仓
文章平均质量分 86
hive技术相关
谭正强
一个不愿在枯燥的日子里自废武功,同时对技术有点追求的 Java、大数据程序员。永远对牛人心生敬仰,对自己不甘平庸。
人到中年,太多的无奈驱使我无法专心做技术,但是在这里我希望这颗心可以纯粹点,聊点对技术的热爱,反省下当下的人生。
展开
-
数仓建模中的一些问题
数据仓库数据模型设计是构建数据仓库的核心过程之一。其目的是将多个数据源中的数据整合到一个统一的数据模型中,以支持业务分析和决策。然而,在数仓建设的过程中,由于未能完全按照规范操作, 从而导致数据仓库建设比较混乱原创 2024-06-09 12:08:05 · 1034 阅读 · 0 评论 -
Hive获取最大分区
需求:需要在hive的SQL语句中使用函数来解析指定表的最大分区倘若我们使用 select max(pt) from ods. ods_tb_customer_df 的方式去获取最大分区还需启动一个map任务进行计算,我本地测试的结果,一次这样的计算需要Time taken: 73.849 seconds ,简直不能忍,所以需要寻求更好的方式。我们知道hive中有HiveMetaStoreClient api 可以直接获取分区数据,省去了中间环节,效率大增,具体可以参考 http://hive..原创 2020-08-13 17:37:13 · 9783 阅读 · 3 评论 -
ORC与Parquet存储格式对比
ORC与Parquet均为列式存储结构,那么他们有什么不同呢?Apache Parquet源自google Dremel 系统,Parquet 相当一Dremel中的数据存储引擎,而Apache顶级开源醒目 Drill正式Dremel的开源实现.Apache Parquet 最初的设计动机是存储嵌套式数据,比如Protocolbuffer thrift json 等 将这类数据存储成列式格式以方便对其高效压缩和编码,且使用更少的IO操作取出需要的数据,也是Parquet 相比于ORC的优势,它能原创 2020-12-17 17:10:39 · 2796 阅读 · 0 评论 -
Hive分桶表性能测试
环境说明:1、源表:orc格式 按照天、小时分区2、目标表(分桶表)按天分区 数据源来源于源表使用insert into select写入3、一天的数据量约1.7亿+4、查询时使用spark thriftserver 资源非固定目的:测试Hive分桶表的在大数据量下的查询性能当前spark2.4.0版本不支持spark写入桶表https://issues.apache.org/jira/browse/SPARK-192561、样本数据:1天 桶表(SQL) ...原创 2020-12-14 11:52:50 · 592 阅读 · 0 评论 -
Hive函数用法记录[更新中]
---- Hive Sqlhive> select months_between('2020-10','2020-12');OKNULLTime taken: 2.408 seconds, Fetched: 1 row(s)hive> select months_between('2020-10-12','2020-12-12');OK-2.0Time taken: 0.608 seconds, Fetched: 1 row(s)hive> select mo.原创 2020-11-09 19:30:02 · 218 阅读 · 0 评论 -
Spark写入非分区表Hive无法读取的问题
问题描述:Spark2.4写入的非分区表无法使用Hive2.1.1版本的引擎去读取,报错:`Failed with exception java.io.IOException:java.lang.ArrayIndexOutOfBoundsException: 6`原因分析:一、非分区表测试--1. 新建测试表create table tmp.orc(id int, name string) stored as orc;--2.sparksql写入insert into table t原创 2020-10-31 11:55:05 · 735 阅读 · 0 评论 -
Hive常用参数调优汇总
1、limit限制调整一般情况下,Limit语句还是需要执行整个查询语句,然后再返回部分结果。有一个配置属性可以开启,避免这种情况---对数据源进行抽样hive.limit.optimize.enable=true --- 开启对数据源进行采样的功能hive.limit.row.max.size --- 设置最小的采样容量hive.limit.optimize.limit.file --- 设置最大的采样样本数缺点:有可能部分数据永远不会被处理到2.JOIN优化1). .转载 2020-10-28 10:59:38 · 3517 阅读 · 0 评论 -
CDH6.2.1 Hive与阿里Hbase增强版集成记录
说明:采用阿里hbase与自己的hive做集成,非使用阿里HBASE的请忽略。第一种:建立 Hive 内部表并自动生成Hbase表目标:建立 Hive 表,关联 HBase 表,插入数据到 Hive 表的同时能够影响 HBase 表。进入hive -ehive>set hbase.zookeeper.quorum=ld-xxx.hbaseue.rds.aliyuncs.com:30020;hive>set hbase.client.username=xxx;hive&g.原创 2020-10-17 15:10:14 · 350 阅读 · 0 评论 -
ES复杂类型数据同步到HIVE数仓
有很多种情况下需要将ES的数据同步到hive数仓中进行分析,在此记录下在此过程中遇到的问题。1、环境说明ES Version: 7.2.1Hadoop Version: 3.0.0elasticsearch-hadoop-7.2.1.jar2、ES的数据示例 "time" : "2020-06-28T00:24:55+0800", "documentId" : "d458d964-1b92-45da-8aff-0ae57331310d", "les原创 2020-06-29 19:55:32 · 1446 阅读 · 0 评论 -
Hive性能调优与实战节选
此文来自于《Hive性能调优与实战》,写的真不错,如有需要自行购买京东 在这里仅用以笔记备忘,侵删!一、什么是mapreduce的shuffle ?shuffle的过程应该是从mapper的map方式输出到Reduce方法输入的过程. 非常关键的一个环节,制约了性能,保证了可以在廉价机器上可靠运行的一个环节。在Mapper的map方法中,context.write 会讲数据计算所在的分区后写入到内存缓冲区(100mb)达到阈值0.8 也就是当写到80mb的时候开始启动新线程写入hdfs临时目录。目的原创 2020-05-18 16:32:01 · 740 阅读 · 0 评论 -
Hive必知必会的优化细节和原理释义
一、 常用参数优化参数名参数释义和用法列裁剪和分区裁剪列裁剪就是在查询时只读取需要的列,分区裁剪就是只读取需要的分区。解析阶段对应的则是ColumnPruner逻辑优化器hive.optimize.cpTrue(默认)hive.optimize.prunerTrue(默认)谓词下推在关系型数据库如MySQL中,也有谓词下推(Predicate Pushdown,PPD)的概念。它就是将SQL语句中的where谓词逻辑都尽可能提前执行,减少下游处理的数据原创 2020-05-09 15:52:03 · 955 阅读 · 0 评论 -
使用hive的外部表工具同步数据至HBase示例
需求:从hive的某张表同步到指定hbase表中解决:使用hive外部表工具映射到hbase进行数据同步使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21...原创 2019-08-27 14:37:27 · 709 阅读 · 0 评论 -
mongodb取数至数仓总结
问题描述:目的:使用mongoexport工具将mongo表数据抽到hive仓库中(T+1)并进行初步清洗遇到的问题:1、抽数的科学记数法问题2、json格式嵌套导致列错乱的问题通常做法:1、使用如下命令将数据导出csv格式source /etc/profile;mongoexport --host xxxxx \--port 27012 --username xxx...原创 2019-09-07 11:04:21 · 1104 阅读 · 0 评论 -
Hive静态分区数据拷贝
Hive版本:2.1.1set hive.support.quoted.identifiers=none;insert overwrite table ods.ods_call_logs_xx partition(pt='2019-09-22') select `(pt)?+.+` from test_ods.ods_call_logs_xx where pt = '2019-09-22...原创 2019-09-24 10:12:51 · 421 阅读 · 0 评论 -
有关数仓增量和全量同步的一些思考
背景相信很多公司都是基于Hive做的数仓,从而对外提供数据服务。这里只讨论离线数仓,做数仓必然离不开对大量数据的ETL处理工作。目前的ETL种类繁多,可选择的工具也有很多,比如使用Sqoop, DataX做离线的T+1数据同步, Spark或者Flink做T+0的实时数据同步等。目前有很多公司业务是T+1的,每天需要同步昨天的业务库(MySQL、mongodb等)的数据到Hive数据仓库中,...原创 2019-09-26 16:07:29 · 2497 阅读 · 0 评论 -
Hive抽数到ElasticSearch实现
一、背景有关ES的详细介绍参考:https://www.cnblogs.com/cjsblog/p/9439331.html 公司有些比如使用算法训练的模型数据等需要快速的检索性能,最终选择使用ES来存储,然后使用别名来区分每一批次的最新数据,对外(web接口)只需暴露别名即可。二、常规实现ES数据全量数据摄入(Overwrite模式)覆盖方式或许是公司最常用的方式,每天T+1或者...原创 2019-09-29 11:28:01 · 819 阅读 · 2 评论 -
hive beeline拒绝连接的错误
1、启动hadoop2、开启 metastore 在开启 hiveserver2服务nohup hive --service metastore >> log.out 2>&1 &nohup hive --service hiveserver2 >> log.out 2>&1 &查看进程是否起起来:...原创 2018-08-08 20:33:43 · 13219 阅读 · 1 评论