`

hive增量对比后将增量数据插入原表

    博客分类:
  • hive
 
阅读更多

 

 

 
 
 
工作中,有个业务,需要将这个表每个月增加和修改的记录不断追加到这个表内:
 
 
sql如下:
f_courtannoucement_party:  法院公告
 
fct_pdffilename: pdf文件名称
fct_name: 公告名称
 
insert overwrite table f_courtannoucement_party
select * from f_courtannoucement_party_add_modify  union all
select a.* from  f_courtannoucement_party left out join f_courtannoucement_party_add_modify b
on
1=1  and  a.fct_pdffilename=b.fct_pdffilename and  a.fct_name=b.fct_name
where 1=1  and  b.fct_pdffilename is null  and  b.fct_name is null;
 
这里以
fct_pdffilename: pdf文件名称
fct_name: 公告名称
作为核准原表和增量表(增加和修改的记录)中审核的标准,以下图为例 下图用 stu1原表  stu2增量表模拟上面业务:
 
 
 
 
 
 
 
 
 
以业务主键为关联条件,案例如下:
 
 
 
 
得到原表中没有 修改和新增的记录(即没有变更的记录):
 
 
然后这个数据在和 增量表 stu2 union all 后在 insert overwrite  table1  得到需要的结果:
 
insert overwrite table stu1 select * from stu2 union all select a.* from stu1 left join stu2 b on 1=1 and a.id=b.id where b.id is null;
 
 
 
 
总结写法规律:
 
insert overwrite  table 原表
    select * from 增量表  union all
    select  a.* from 原表 a  left join 增量表 b on 1=1 and a.业务不会变化的字段=b.业务不会变化的字段 where b.业务不会变化的字段 is null;
 
 
分享到:
评论

相关推荐

    利用Flume将MySQL表数据准实时抽取到HDFS、MySQL、Kafka

    可能包含了创建表、插入数据或者更新表结构的语句。 综上所述,这个流程实现了一个数据实时流动的架构,从MySQL数据库中抽取数据,然后将数据同时发送到HDFS进行长期存储,以及通过Kafka进行实时处理和分发。这种...

    使用kettle将mysql中的数据导入到hive中

    先说说思路:1是直接从mysql输出至hive中,另外一个是先将数据搞到hdfs中,再load一下,当然这只是textfile存储格式而言,若是ORC等其他列式存储的话建议先搞一个textfile格式的中间表,再insert into table select ...

    Hive sql系统学习教程

    5. **数据导出语句**: 可将Hive表中的数据导出到本地文件系统或HDFS,方便数据的分享和进一步处理。 **Hive与传统SQL的区别** 1. **架构**: Hive是一个数据仓库基础设施,依赖于Hadoop的分布式存储和计算能力,而...

    Increment_Backup_To_Hive-源码.rar

    实现增量备份通常需要跟踪Hive表的元数据变化,例如新插入、更新或删除的数据。 4. **源代码**:提供的源代码可能包括以下几个部分: - **数据变更追踪**:这部分代码可能负责监控Hive表的变化,如通过Hive ...

    基于Flink+SQL实现数据同步.doc

    接下来,我们将使用 Flink SQL 将数据从 Hive 表同步到 MongoDB 中。具体步骤如下: - **连接 MongoDB**:首先,确保已安装 MongoDB 驱动程序,并将其添加到 Flink 的 classpath 中。然后,在 Flink 环境中创建一个...

    基于Facebook的Hive开发

    本文将详细介绍Facebook如何利用Hive进行高效的数据管理和查询,并分享一些最新的特性和未来发展方向。 #### 什么是Hive? Hive是一种用于管理并查询结构化数据的系统,它构建在Hadoop之上,旨在为大数据提供高效...

    基于Flink Hudi的增量ETL架构

    - **增量写入Hudi**:使用Flink的Hudi connector将处理后的数据以插入或更新的形式写入Hudi表。Hudi维护一个时间线,记录每次写入的变化。 - **实时查询**:通过Hudi的即时查询接口(如Spark SQL或Hive on Hudi),...

    hadoop项目--网站流量日志分析--5.docx

    对于增量导出,Sqoop提供了`--update-mode allowinsert`模式,它可以将Hive中新增的或已更改的记录插入到目标表中,同时也会同步不一致的记录。这种方法适合在Hive表持续更新的情况下,保持目标表与Hive表的同步。在...

    23-Sqoop数据导入导出1

    3. **MapReduce作业**: Sqoop启动MapReduce作业,使用DataDrivenDBInputFormat将数据划分给多个Map任务,通常选择主键作为划分列以提高性能。 4. **数据处理**: Map任务执行SQL查询,将ResultSet中的数据反序列...

    MaxCompute数据开发实战—数据进入MaxCompute的N种方式.pdf

    - 阿里云提供了针对Logstash的DataHub Output/Input插件,允许用户通过Logstash将数据实时加载到Datahub中。 - **系统要求**: - Linux - JRE 1.7及以上 - 可以通过一键式安装或单独安装的方式进行部署。 - 更...

    Flink如何实时分析Iceberg数据湖的CDC数据.pdf

    这通常用于监控数据库的变化,例如插入、删除和更新操作,并将这些变更实时地反映到分析系统中。 标签包括"flink"、"大数据"和"big data",这表明讨论的主题集中在使用Flink进行大数据处理和分析。 部分内容中提到...

    数据湖技术Iceberg的探索与实践.pdf

    - **增量加载**:利用Flink的数据流特性,可以实现实时数据的增量加载到Iceberg表中。 - **事务性更新**:Flink与Iceberg的事务性支持相结合,可以实现在实时数据流中进行原子性的插入、更新或删除操作。 - **数据...

    数据湖分析之Upsert详解.pdf

    为了改善这种情况,人们尝试使用CDC(Change Data Capture)技术将数据导入到Kafka,然后再导入到如HBase或Kudu这样的实时存储系统。然而,这种方法依然存在问题,比如HBase和Kudu无法存储全量数据,需要进一步导入...

    数据湖分析之Upsert功能详解.pptx

    为了解决这些问题,业界尝试通过变更数据捕获(CDC)将数据导入Kafka,再从Kafka导入HBase或Kudu。然而,这种方式虽然提高了数据处理的速度,但仍然存在复杂性,如需多个组件协同工作,并且对于Schema的变化仍然...

    datax插件verticawriter

    在DataX中,VerticaWriter是一个专门用于将数据写入Vertica数据库的插件,旨在满足用户对Vertica数据库的数据导入需求。 Vertica是一款高性能、可扩展的列式数据库,广泛应用于大数据分析场景。VerticaWriter插件...

    Spark操作Hudi数据湖

    Hudi(Hadoop Upsert Delta Table)是Facebook开源的一个数据湖解决方案,它旨在为Hadoop生态系统提供实时更新、查询和增量处理的能力。Hudi与Spark的结合,使得大数据处理更加灵活,能够支持实时分析、批处理和流...

    sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

    2. 导出数据:使用 `export` 命令,将 HDFS 中的数据导回数据库,更新或插入到指定的表中。 3. 执行 SQL 查询:使用 `execute` 命令,可以在 Hadoop 上执行数据库的 SQL 查询,并将结果存储在 HDFS 中。 4. 创建 ...

    基于 Hudi 和 Kylin 构建准实时高性能数据仓库.pdf

    Hudi 提供了一种在大数据集上支持 Upsert 操作的方法,这意味着它可以更新或插入数据,而不像传统的列式存储如 Hive,需要重新写整个表或分区。Hudi 通过 Change Logs 来合并更新,并且具有时间旅行功能,允许用户...

    sqoop1使用必备

    - **Hive 导入**:启用此选项表示将数据导入到 Hive 中。 **增量导入:** 增量导入可以通过 `incremental` 参数指定,如果是基于日期进行增量导入,则使用 `lastmodified` 模式;如果是基于数据的增加,则使用 `...

Global site tag (gtag.js) - Google Analytics