如何将批处理做成类流处理-merge into


前言

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。需要在前端页面上设计成实时的数据,但是没有flink,所以只能把批处理做成类流处理

merge into

具体语法请百度

--更新存在的  
UPDATE EMPLOYE AS EM SET SALARY=(SELECT SALARY FROM MANAGER WHERE MANAGERID=EM.EMPLOYEID)  
WHERE EMPLOYEID IN (  
SELECT MANAGERID FROM MANAGER  
);  
---插入不存在的  
INSERT INTO EMPLOYE (EMPLOYEID,NAME,SALARY)  
SELECT MANAGERID,NAME,SALARY FROM MANAGER WHERE MANAGERID NOT IN (  
SELECT EMPLOYEID FROM EMPLOYE  
);
MERGE INTO EMPLOYE AS EM  
USING MANAGER AS MA  
ON EM.EMPLOYEID=MA.MANAGERID  
WHEN MATCHED AND EM.SALARY<MA.SALARY THEN UPDATE SET EM.SALARY=MA.SALARY  
WHEN NOT MATCHED THEN INSERT VALUES (MA.MANAGERID,MA.NAME,MA.SALARY);

因为merge可以用替换的方法来避免update数据时删掉历史数,避免前端页面在批处理时表会清空,根据这个原理可以进行类流处理
批处理的调度可以,做成一直跑批,但是数据过大可能会比较占资源


总结

用merge into 可以将批处理做成类流处理,flink可以做成流批一体。能上就上吧

解释下面的代码,详细一点:/************************************************************************************************ **所属主题:数据迁移/客户域 **涉及的表:${KDI_DWD}.dwd_bl_east2ic_zjyygljytjb_dz_mi(资金运用关联交易统计表) **功能描述: 资金运用关联交易统计表 月更新mi + 普通表 ETL语句 **目标表:${KDI_DWD}.dwd_bl_east2ic_zjyygljytjb_dz_mi(资金运用关联交易统计表) **来源表:${ODS_IA}.t_impt_east_zjyygljytjb(表1:资金运用关联交易统计表) **主键:bxjgdm **功能描述:增加加载脚本,从贴源层加工到清洗层,做拉链处理 **1.新增的数据 ** 开链时间 etl_start_date 关链时间 29991231 **2.更新数据 ** 添加新链 开链时间 etl_start_date 关链时间 29991231 ** 更新上一链的关链日期为 etl_date ** 更新原有数据 开链时间和关链时间不变 **3.删除的数据 ** 更新上一链的关链时间 为etl_date,和操作标识 **更新频率:月 **创建者:hmtu **创建日期:2025-03-25 **修改人日期 修改人 修改内容 ************************************************************************************************/ ---step:1.删除目标表中数据,仅支持脚本当天重做,历史数据修数需要走修数流程 --1.删除新增拉链数据 delete from ${KDI_DWD}.dwd_bl_east2ic_zjyygljytjb_dz_mi where etl_start_date = to_date('${ETL_DATE}','yyyy-mm-dd') ; -- 2.对关链数据置为有效 /* 如果操作标记 = D(删除)且插入日期 = 更新日期,则返回N(新增); 插入日期 <> 更新日期,则返回U(更新); 其他,则不更新 */ update ${KDI_DWD}.dwd_bl_east2ic_zjyygljytjb_dz_mi set etl_end_date = to_date('2999-12-31','yyyy-mm-dd'), etl_oper_flag = 'N' where etl_end_date = to_date('${ETL_DATE}','yyyy-mm-dd') ; ---step2:获取增量数据 ---1.将ods层增量变更数据插入到临时表中 truncate table ${KDI_TMP}.tmp_dwd_bl_east2ic_zjyygljytjb_dz_mi_001 ; insert into ${KDI_TMP}.tmp_dwd_bl_east2ic_zjyygljytjb_dz_mi_001 ( bxjgdm --保险机构代码 ,ldxzctzye --流动性资产投资余额 ,gdsylzctzye --固定收益资产投资余额 ,qylzctzye --权益资产投资余额 ,bdclzctzye --不动产资产投资余额 ,bxzcglcptzye --保险资产管理产品投资余额 ,syyhlccptzye --商业银行理财产品投资余额 ,yhyjrjgxdzczczqtzye --银行业金融机构信贷资产支持证券投资余额 ,xtgsjhjjxtjhtzye --信托公司集合资金信托计划投资余额 ,zqgszxzcgljhtzye --证券公司专项资产管理计划投资余额 ,bxzggsfxzczcjhtzye --保险资管公司发行资产支持计划投资余额 ,qtjrzctzye --其他金融资产投资余额 ,qbtzye --全部投资余额 ,jwtzye --境外投资余额 ,dis_user --操作人 ,dis_oper
最新发布
03-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值