![](https://img-blog.csdnimg.cn/20191031162822905.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Impala/Hive/Kudu
王义凯_Rick
如果对你有帮助,就请点个赞吧~
展开
-
SQL中通过QUALIFY语法过滤窗口函数简化代码
MaxCompute和hive都支持使用QUALIFY语法对窗口函数的数据进行过滤,该语法类似于HAVING对聚合和GROUP BY之后的结果的处理。这个语法在很多场景中都可以用到,可以用于简化代码,少写一个子查询,如统计排名,分组内部排序等。很明显可以看出,相比于直接使用row_number排序后通过子查询过滤数据来说,通过。QUALIFY语法后至少要跟一个窗口函数,并且允许使用窗口列的别名来过滤数据。该代码效果等同于:(区别仅是上面代码多一个rn列,下面代码没有rn列)原创 2023-10-08 18:47:52 · 1792 阅读 · 0 评论 -
善用Grouping Sets 提升代码效率
使用Grouping Sets可按照多个不同的维度组合进行聚合,减少了繁琐的代码,提升整体计算的效率。比如,需要对国家,省份,城市各维度进行聚合时候,可能会这么写:select '国家' as gep_type,country as geo_name,count(*) as cnt from tbl group by countryunion all select '省份' as gep_type,province as geo_name,count(*) as cnt from tbl gr原创 2021-09-14 16:45:56 · 904 阅读 · 0 评论 -
别再使用count distinct了
在数仓开发中经常会对数据去重后统计,而对于大数据量来说,count(distinct )操作明显非常的消耗资源且性能很慢。下面介绍我平时使用最多的一种you'hua原创 2021-06-13 21:27:49 · 5828 阅读 · 3 评论 -
Hive行转列、列转行
hive 行转列,列转行原创 2020-12-29 13:18:56 · 818 阅读 · 1 评论 -
分布式存储系统Kudu(一)、核心原理
在前面的篇章中我们介绍了分布式文件系统HDFS 以及列式存储HBase,HDFS提供了可以横向扩展的存储引擎,适合离线分析场景,不适合于随机读写。HBase适合于随机读写,但由于Scan消耗性能,因此不适合于离线分析场景。因此既可以实现数据的快速插入与实时更新,又能实现对数据的快速分析的Kudu出现了。Apache Kudu 是由Cloudera 开源的存储引擎,可以同时提供低延迟的随机读写和高效的数据分析能力。它是一个融合 HDFS 和 HBase 的功能的新组件,具备介于两者之间的新存储组件。Kud原创 2020-09-14 17:56:14 · 1414 阅读 · 0 评论 -
在Python中使用ibis,impyla,pyhive,pyspark连接Kerberos安全认证的Hive、Impala
在python中连接hive和impala有很多中方式,有pyhive,impyla,pyspark,ibis等等,本篇我们就逐一介绍如何使用这些包连接hive或impala,以及如何通过kerberos认证。原创 2020-06-09 13:28:34 · 7888 阅读 · 19 评论 -
在Hive中操作Phoenix,对比Hive查询Hbase
前面介绍过通过Phoenix操作HBase,实现了hbase的SQL语义,以及查询性能的提升,也对比过使用hive查hbase和使用phoenix查hbase的性能,也介绍了如何在hive中查询ES,那么今天我们就尝试在hive中查phoenix。也就是hbase-->Phoenix-->hive这样的链路。原创 2020-06-05 14:18:48 · 2247 阅读 · 0 评论 -
ELK系列(十三)、在Hive中操作ES的索引数据,创建/查询/更新/插入
本篇介绍如何在hive中查询、更新、插入ES数据,以及把数据从hive导入到es中。本方案适用于任何hive可以挂外表的数据库类型。ELK系列(一)、安装ElasticSearch+Logstash+Kibana+Filebeat-v7.7.0ELK系列(二)、在Kibana中使用RESTful操作ES库ELK系列(三)、安装Logstash插件及打包离线安装包ELK系列(四)、Logstash读取nginx日志写入ES中ELK系列(五)、Logstash修改@timestamp时间为日原创 2020-06-04 16:56:55 · 4859 阅读 · 3 评论 -
impala&hive大数据平台数据血缘与数据地图(四)-impala血缘架构图及功能介绍
最近在内部做了个分享,顺便画了一下这次impala数据血缘的架构图:架构图:如果想了解如何实现请参照前面几篇文章:impala数据血缘与数据地图系列:1. 解析impala与hive的血缘日志2. 实时采集impala血缘日志推送到kafka3. 实时消费血缘记录写入neo4j并验证---------------------------------Impala血缘 架构图-----------------------------------------------------原创 2020-05-16 14:13:20 · 4887 阅读 · 0 评论 -
impala&hive大数据平台数据血缘与数据地图(三)-实时消费血缘记录写入neo4j并验证
impala数据血缘与数据地图系列:1. 解析impala与hive的血缘日志2. 实时采集impala血缘日志推送到kafka-----------------------------------------实时采集impala血缘日志推送到kafka-----------------------------------------------------前两篇介绍了如何采集impala和hive的血缘日志以及如何实时将该日志采集到kafka消息队列中,今天来介绍如何实时消费血缘日志并写入原创 2020-05-11 15:21:04 · 3218 阅读 · 4 评论 -
impala&hive大数据平台数据血缘与数据地图(二)-实时采集impala血缘日志推送到kafka
impala数据血缘与数据地图系列:1. 解析impala与hive的血缘日志2. 实时采集impala血缘日志推送到kafka-----------------------------------------实时采集impala血缘日志推送到kafka-----------------------------------------------------使用filebeat采集...原创 2020-04-09 11:25:44 · 1562 阅读 · 4 评论 -
impala&hive大数据平台数据血缘与数据地图(一)-解析impala与hive的血缘日志
impala数据血缘与数据地图系列:----------------------------------------------------------------------------------------------Impala血缘:CDH官方文档impala数据血缘:https://docs.cloudera.com/documentation/enterprise...原创 2020-04-09 10:22:00 · 3555 阅读 · 3 评论 -
解除HUE下载10万行的限制
在hue里对查询的数据导出到本地的时候只能下载10万条记录,这个局限性比较大,影响到日常的使用,通过查看源代码可以看到hue是对单元格以及列数量进行了限制:到hue的hue server实例机器上找到源代码:vim /opt/cloudera/parcels/CDH/lib/hue/apps/beeswax/src/beeswax/conf.py# DeprecatedDOWN...原创 2020-04-09 09:48:27 · 1417 阅读 · 0 评论 -
hive全库数据及表结构的备份与恢复
在之前的文章中介绍了hive的export和import的使用方式,下面提供一个简单的脚本实现对指定的库列表做全库的数据及元数据的备份以及恢复。hive的数据导入导出,备份恢复很简单,是利用了awk和sed命令结合hive命令行。首先传入库名列表,再遍历库名使用hive查看该库下所有表,然后拼接字符串到export文件内,前面介绍了export和import的命令仅仅是export和i...原创 2020-04-09 09:33:50 · 2664 阅读 · 0 评论 -
impala查询性能优化
查看表和列的统计信息:(适用于hive表,kudu表,hbase外表)compute stats tbl_nm; impala优化器。执行之后可能会解决impala查询该表爆内存的错误。并且可以执行下面两个指令. compute stats是检查impala中的表数据,因此如果hive数据更新了还是得先refresh table,然后再执行compute stats。此命令计算了表在impal...原创 2020-04-08 22:23:20 · 4565 阅读 · 3 评论 -
CDH6中Impala报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position这个ERROR还是只会出现在CDH6.1版本,原因是impala_shell.py中有个BUG,本来对注释部分有一段代码指定编码的,结果CDH6.1中把这段漏掉了,官方声称在CDH6.4版本中将会修复此BUG,下面是官方的回复:https://gitbox...原创 2019-11-01 20:27:43 · 1198 阅读 · 0 评论 -
CDH6中Impala3报错UDF ERROR: String to Decimal parse failed
执行impala-shell或者在HUE中执行查询的时候会在对decimal类型做四则运算或聚合操作时出现此错误信息,这个错误只出现在CDH6以上的版本/impala3以上,我们也是在集群升级CDH6之后才遇到这个错误。UDF ERROR:String to Decimal cast overflowedUDF ERROR: String to Decimal parse failed...原创 2019-11-01 20:16:55 · 7700 阅读 · 7 评论 -
impala-shell调用SQL脚本执行报编码错误
impala-shell 调用SQL脚本执行报错:Exception : 'ascii' codec can't encode characters in position 559-562: ordinal not in range(128)出现这种问题是因为IMPALA的impala-shell调用的是impala_shell.py文件是个python2.7脚本,需要加上下面的代码指定一...原创 2019-11-01 19:46:52 · 2244 阅读 · 0 评论 -
hive的数据导入导出,备份恢复
加载HDFS文件数据到表:LOAD DATA INPATH "hdfs_source_path" OVERWRITE INTO TABLE tbl_nm;加载本地文件数据到表:LOAD DATA LOACL INPATH "loacl_source_path" OVERWRITE INTO TABLE tbl_nm;将数据导出至本地路径下:insert overwrite...原创 2019-11-01 19:34:12 · 2363 阅读 · 0 评论 -
hive的msck repair命令
msck repair table tablename修复表分区,常用于手动复制目录到hive表的location下,此时Hive元数据中没有记录到该目录是hive的分区,所以查不到该分区数据。例子:表test_tbl,存储路径为/user/hive/warehouse/test_tbl,分区字段为pt,正常添加分区是这样的:alter table add if not exist...原创 2019-11-01 17:24:04 · 10157 阅读 · 0 评论 -
impala常用命令 show/refresh/invalidate/desc
refresh tbl_nm;刷新表refresh tbl_nm partition(pt=xx); 刷新分区invalidate metadata;刷新库invalidate metadata table_nm;刷新表msck repair table tablename 修复表分区desc tbl_nm; 看表结构describe extended tbl_nm;...原创 2019-11-01 17:16:12 · 3124 阅读 · 0 评论 -
Impala中的parquet存储压缩
在Impala中,parquet存储格式的默认压缩方式为snappy。通过以下命令可以修改该配置:set compression_code=snappy; (snappy,none,gzip...)在hive中通过命令查看该表使用了哪种压缩方式:desc extended tablename;inputFormat:org.apache.hadoop.hive.ql.io.par...原创 2019-10-31 13:55:57 · 2263 阅读 · 0 评论