`
bupt04406
  • 浏览: 347381 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hive sql where条件很简单,但是太多

    博客分类:
  • Hive
 
阅读更多

 

insert overwrite table aaaa
partition(pt='20120717')
select auction_id,property_id,value_id 
from xxxx 
where pt='20120717' 
and 
(
(property_id = 1626130 and value_id = 46276) or
(property_id = 33510 and value_id = 31533293) or
(property_id = 33510 and value_id = 119834) or
(property_id = 33510 and value_id = 119831) or
(property_id = 33448 and value_id = 118432) or
(property_id = 33448 and value_id = 21039) or
 xxxx
)

and 里面的or 条件有170多个
这个分区有80G的数据,120亿条数据,单独扫描只需要不到5分钟,但是运行这个sql确需要1个多小时,主要原因是因为这个and条件hive在生成执行计划时产生了一个嵌套层次很多的算子。
property_id 和 value_id 都是string 类型的字段
解决方案:
(1)property_id、value_id 的值对搞成一个小表,然后通过一次mapjoin
(2)写个udf,把这些预设值读取进去,udf来完成这个and数据过滤操作

分享到:
评论

相关推荐

    基于 Antlr4 的 Hive SQL 解析.zip

    在本课程设计中,主题是“基于Antlr4的Hive SQL解析”,这涉及到了两个主要的技术领域:Antlr4和Hive SQL。Antlr4是一个强大的解析工具,用于生成解析器和词法分析器,它能处理各种语言的语法,包括SQL。而Hive SQL...

    HiveSQL实战题目.docx

    HiveSQL 的 Join 语句用于连接多个表。下面是一个示例: select student.*, a.s_score as 01_score, b.s_score as 02_score from student join score a on student.s_id = a.s_id and a.c_id = '01' left join ...

    hivesql语句练习

    1.上传tar包 2.解压 tar -zxvf hive-1.2.1.tar.gz 3.安装mysql数据库 推荐yum 在线安装 4.配置hive (a)配置HIVE_HOME环境变量 vi conf/hive-env.sh ... hive -e ‘sql’ bin/hive -e 'select * from t_test'

    Hive SQL 编译过程详解

    本文将深入探讨Hive SQL如何被编译成MapReduce任务,以及在这个过程中涉及到的关键原理。 1. MapReduce实现基本SQL操作的原理: - **Join的实现原理**:在Hive中,Join操作通常通过MapReduce来实现。例如,在一个...

    SQL、Hive SQL等SQL血缘解析工具

    String hql = "select id,name from (select id from table_1 where id={p0}) t1 inner join (select name --this is name\n from table_2) t2"; // 获取id字段的血缘 LineageNode idNode = Delegate.getDelegate...

    Hive中SQL详解

    Hive SQL支持绝大多数的语句,如DDL、DML、聚合函数、连接查询、条件查询等。 Hive不适合用于联机online事务处理,也不提供实时查询功能,但最适合应用在基于大量不可变数据的批处理作业。 Hive的特点 * 可伸缩:...

    HiveSQL编译原理

    总结来说,HiveSQL编译原理是Hive处理SQL查询的核心机制,它包括词法分析、语法分析、逻辑规划、优化、物理规划和执行等多个阶段。理解这一原理对于提升Hive查询性能、优化大数据处理流程具有重要意义。在实际工作中...

    Hive_SQL语法大全

    Hive_Sql语法详述,平时工作中遇到的问题,用于Hadoop平台的数据挖掘。

    最强HiveSQL开发指南.pdf

    《最强HiveSQL开发指南》是一本专注于Hive性能调优和实战操作的教程,旨在帮助读者深入理解和熟练运用Hive进行大数据处理。Hive作为Apache Hadoop生态系统中的一个组件,主要用于处理和分析大规模分布式存储的数据。...

    Hive SQL练习题库

    Hive 是一个基于 Hadoop 的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,使不熟悉 MapReduce 的用户可以利用 SQL 语言进行数据查询,大大提升了数据分析的效率。...

    hive sql详解 经典

    HiveQL是Hive的SQL方言,支持常见的SQL操作,如SELECT、FROM、WHERE、GROUP BY等,同时也有针对大数据处理的独特功能,如分桶(Bucketing)、分区(Partitioning)和倾斜Join(Skewed Join)优化。 3. **数据模型*...

    hivesql计算访问者年龄的SQL

    hivesql计算访问者年龄的SQL

    HIVE-SQL开发规范.docx

    【秘密】Hive SQL 开发规范 Hive作为Hadoop生态系统中的重要组件,为企业提供了对大规模数据集的高效处理和分析能力。它允许用户通过类似于SQL的查询语言(HiveQL)来操作分布式存储的数据,简化了MapReduce编程...

    HIVE-SQL操作语句

    ### HIVE-SQL操作语句详解 #### 一、创建表 (CREATE TABLE) 在Hive中,`CREATE TABLE` 语句用于创建新的表。与传统的关系型数据库类似,但在Hive中有其特殊之处。 ##### 示例 ```sql hive> CREATE TABLE pokes ...

    深入浅出Hive企业级架构优化、Hive Sql优化、压缩和分布式缓存

    Apache Hive 是一个基于 Hadoop 的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,使不熟悉 MapReduce 的开发人员也能用 SQL 语言进行数据查询。Hive 在内部将 SQL 语句转换...

    HiveSQL详细和优化

    HiveSQL详细和优化,以及部分个人点评 This is a brief tutorial that provides an introduction on how to use Apache Hive HiveQL with Hadoop Distributed File System. This tutorial can be your first step ...

    Hive面试题SQL测试题目1数据

    文章Hive面试题SQL测试题目所需数据,包含建表语句 测试数据等等...................

Global site tag (gtag.js) - Google Analytics