`
superlxw1234
  • 浏览: 551469 次
  • 性别: Icon_minigender_1
  • 来自: 西安
博客专栏
Bd1c0a0c-379a-31a8-a3b1-e6401e2f1523
Hive入门
浏览量:44451
社区版块
存档分类
最新评论

使用LineageInfo分析hive sql中的表关系

阅读更多

org.apache.hadoop.hive.ql.tools.LineageInfo

 

public static void main(String[] args) throws IOException, ParseException,
      SemanticException {

    //String query = args[0];
    //String query = "select a.* from a join (select * from b where id like '%哈哈%') c on a.id = c.id";
	  
	String query = "insert overwrite table youni_contact_name_his_temp2 " +
			"select a.*,b.type,b.kind1,b.kind3,b.keywords,b.match_type,b.male_rt,b.male_accuracyrate ,b.income " +
			"from youni_contact_name_his_temp a join (select type,kind1,kind3,keywords,match_type,male_rt,male_accuracyrate ,income " +
			"from youni_contact_name_type_dim where match_type='{data_desc}')b on 1=1 " +
			"where instr(a.user_name,b.keywords)>0";
    LineageInfo lep = new LineageInfo();

    lep.getLineageInfo(query);

    for (String tab : lep.getInputTableList()) {
      System.out.println("InputTable=" + tab);
    }

    for (String tab : lep.getOutputTableList()) {
      System.out.println("OutputTable=" + tab);
    }
  }

 

执行结果:

 

InputTable=youni_contact_name_his_temp
InputTable=youni_contact_name_type_dim
OutputTable=youni_contact_name_his_temp2
分享到:
评论

相关推荐

    基于 Antlr4 的 Hive SQL 解析.zip

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

    HiveSQL实战题目.docx

    这个题目要求读者使用 HiveSQL 查询学生表、课程表和成绩表,找到"01"课程比"02"课程成绩高的学生的信息及课程分数。解决方法是使用 JOIN 语句将三个表连接起来,然后使用 WHERE 语句过滤出满足条件的学生信息和课程...

    SQL、Hive SQL等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 = ...

    Hive SQL 编译过程详解

    它允许用户使用SQL-like语言(HiveQL)对分布式存储的数据进行查询和分析。本文将深入探讨Hive SQL如何被编译成MapReduce任务,以及在这个过程中涉及到的关键原理。 1. MapReduce实现基本SQL操作的原理: - **...

    Hive中SQL详解

    Hive是一个基于Hadoop构建的数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据。 Hive SQL支持绝大多数的语句,如DDL、DML、聚合函数、连接查询、条件查询等。 Hive不适合用于...

    hivesql语句练习

    6. Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的 /home/hadoop/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar 启动hive bin/hive ---------------------...

    HIVE-SQL开发规范.docx

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

    最强HiveSQL开发指南.pdf

    3. **DQL(Data Query Language)**:用于查询和检索数据,是HiveSQL中最常用的部分,包含SELECT、FROM、WHERE、GROUP BY、JOIN等子句。 ### 第二部分:对数据库和数据表的操作 1. **数据库操作**:包括CREATE ...

    hive sql详解 经典

    在大数据处理领域,Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(称为HiveQL)查询存储在Hadoop分布式文件系统(HDFS)中的大型数据集。这篇博客深入探讨了Hive SQL的使用,帮助用户理解和掌握其核心概念...

    利用Hive进行复杂用户行为大数据分析及优化案例

    利用Hive进行复杂用户行为大数据分析及优化案例(全套视频+课件+代码+讲义+工具软件),具体内容包括: 01_自动批量加载数据到hive 02_Hive表批量加载数据的脚本实现(一) ...17_Hive中使用Python脚本进行预处理

    HiveSQL编译原理

    HiveSQL编译原理是大数据处理领域中的一个重要概念,它主要涉及到如何将用户提交的SQL语句转换为可执行的MapReduce或者Tez任务。在Hadoop生态系统中,Hive作为一个基于HDFS的数据仓库工具,提供了对大规模数据集进行...

    部分普通sql查询在hive中的实现方式

    - **背景**:Hive不支持直接使用`HAVING`关键字,但可以通过嵌套子查询并在外层查询中使用`WHERE`条件来实现类似的功能。 - **示例**:如果想实现如下标准SQL的`HAVING`查询: ```sql SELECT gender, COUNT(*) as...

    Hive_SQL语法大全

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

    Hive SQL练习题库

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

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

    - **WHERE 子句优化**:尽可能在 WHERE 孥中使用分区字段,以减少扫描的数据量。 2. **执行计划优化**: - **调整 Map 和 Reduce 任务的数量**:根据实际数据量和集群资源情况调整 map 和 reduce 任务数量。 - **...

    HIVE-SQL操作语句

    与传统的关系型数据库类似,但在Hive中有其特殊之处。 ##### 示例 ```sql hive> CREATE TABLE pokes (foo INT, bar STRING); ``` 该命令创建了一个名为 `pokes` 的新表,并定义了两个字段:`foo` 类型为 `INT` 和 `...

    HiveSQL解析原理.docx

    在Hive中,实现两个表的Join操作通常涉及到以下步骤: - 在Map阶段,为来自不同表的数据打上标记(tag),这些标记会被添加到Map输出的Value中。 - 在Reduce阶段,根据标记来判断数据来源并进行相应的Join操作。 ...

Global site tag (gtag.js) - Google Analytics