`
bupt04406
  • 浏览: 350173 次
  • 性别: 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 ...

    Hive SQL练习题库

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

    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的特点 * 可伸缩:...

    Hive_SQL语法大全

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

    HiveSQL编译原理

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

    最强HiveSQL开发指南.pdf

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

    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 语句转换...

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

    文章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 ...

Global site tag (gtag.js) - Google Analytics