当前位置: 首页 > news >正文

kettle基本操作2:使用日期字段分批次同步数据

0.前言

在同步大表的时候,如果数据量大,需要分批次进行同步,使用分页是一种方法,如果原表中是有Date字段的话,可以按日期进行同步。本次kettle同步使用日期搭建同步的工作流,主要的思路如下:

  • 清空目标表
  • [转换]获取日期分组的数据;
  • [转换]分批写数据到目标表;

1.设计步骤

(1)主工作流

主工作流的设计如下:
image

(2)truncate目标表

这个节点只是一个sql的脚本,相对简单,设置如下:
image

(3)[转换]获取分组数据

这是一个转换,转换的节点只有两个,表输入组件只是简单对日期字段last_login_time进行grouy by,并复制结果,如下:
image

  • 表输入
    image
SELECT last_login_time FROM dcs_user group by last_login_time order by last_login_time;
  • 复制记录到结果
    这个设置没什么好介绍的,图都懒得放。

(4)[转换]分批写数据到目标表

这个转换节点必须勾选"执行每一个输入行",意思是,上一个节点会输出多行数据(即每一个日期),此数据将逐行输入"分批写数据到目标表"这个节点,这是实现循环读取数据的关键配置。
image

以下是这个转换的具体设计:
image

  • 从结果获取记录
    设置从上一个结果集获取的数据字段名,及其数据类型:
    image

  • 字段选择
    字段选择主要是根据需要做一些格式设置,如结果集获取的数据格式可能是yyyy/MM/dd,可通过此组件将格式设定为'yyyy-MM-dd',方便传入SQL语句。如果是需要设定格式的,需要在此节点的"元数据"选项中进行设置。
    image

  • 表输入
    从源表按分组依据的last_login_time字段爱批次读取数据。表输入的SQL语句中的参数可以使用变量传递,也可直接使用上一节点的字段(PS:这里使用变量传递我没有实验成功,再议~~),设置如下:
    image

SELECT username,real_name,last_login_time FROM dcs_user WHERE last_login_time = ?;
  • 表输出
    设置如下:
    image
http://www.zskr.cn/news/1614.html

相关文章:

  • 麒麟系统kylinServerV10中通过docker安装ActiveMQ
  • 聊一聊 .NET 某跨境物流系统 内存暴涨分析
  • 8 将GitHub远程仓库修改为ssh
  • Symfony学习笔记 - Symfony Documentation - Utilities(1)
  • Vue3项目开发专题精讲【左扬精讲】—— 商城网站系统(基于 Vue3 与 TypeScript 技术栈的企业网站系统开发实战)
  • $\LaTeX{}$之快速编译和删除中间文件 - Invinc
  • $\LaTeX{}$之minted使用 - Invinc
  • Codeforces Round 1049 (Div. 2) 部分题解
  • 【知识管理工具分享】基于AI搭建个人法律知识库:我的PandaWiki实践心得
  • 像元大小(例如 1.4 m 1.4 m)具体的含义和用途
  • Codeforces Round 1049 (Div. 2) 一些 idea
  • Canvas 的性能卓越,用它解决一个棘手的问题!
  • CSS Box-Sizing 详解:解决移动端布局溢出问题的关键
  • 推荐一款线程or进程间数据同步解决方案
  • The 2022 ICPC Asia Shenyang Regional Contest
  • 检测域名证书有效期
  • TCP反向代理:将局域网内部的TCP/HTTP服务暴露在公网上
  • 告别数月等待:数字孪生场景生成从此进入“日级”时代
  • 安装云图解析python模块碰到的问题
  • 计算机使用问题集
  • JDK环境变量配置
  • vue可视化大屏开发
  • 旧版本Flutter使用xcode16打包上架时报错
  • 深入解析Web Components:Shadow DOM实战指南
  • vue+websocket+Stomp组件实现前端长连接
  • 多字段排序工具类,支持树形
  • 同城黑卡小程序系统介绍
  • 365 快乐农场小程序介绍
  • 23Java基础之File
  • Linux GNU 工具集详解