• Kettle之数据同步(篇二)


    为了研究Kettle的输出下的“数据同步”功能点,特做了如下动作以验证此功能作用。

    1、创建表AA,作为旧数据源,即目标数据

    CREATE TABLE [dbo].[AA](
        [code2] [nvarchar](50) NULL,
        [companyName2] [nvarchar](50) NULL,
        [createDate] [datetime] NULL,
        [updateDate] [datetime] NULL
    ) 

    2、创建表AB,作为新数据源,即来源数据

    CREATE TABLE [dbo].[AA](
        [code2] [nvarchar](50) NULL,
        [companyName2] [nvarchar](50) NULL,
        [createDate] [datetime] NULL,
        [updateDate] [datetime] NULL
    ) 

    3、创建表AC,用于存储“合并记录”过程中产生的处理记录

    CREATE TABLE [dbo].[AA](
        [code2] [nvarchar](50) NULL,
        [companyName2] [nvarchar](50) NULL,
        [createDate] [datetime] NULL,
        [updateDate] [datetime] NULL
    ) 

    4、拖入一个“表输入"框,命名为”表输入-AA“,表输入中的SQL的列名可以用别名;记录数量限制为0,表示查询所有数据。

     5、拖入一个“表输入"框,命名为”表输入-AB“,表输入中的SQL的列名可以用别名;记录数量限制为0,表示查询所有数据。

    6、拖入一个“合并记录"框,选择AA为旧数据源,AB为新数据源,标志字段flagfield表示,将新数据源与旧数据源按关键字比较时,比较的状态值,

    标志字段的值有4种,分别是:

    Identical” : 关键字段在新旧数据源中都存在,且域值相同

    “changed” : 关键字段在新旧数据源中都存在,但域值不同

    new” :  旧数据源中没有找到该关键字段

    deleted”:  新数据源中没有找到关键字段

    7、拖入一个“表输出"框,命名为”表输入-AC“,将合并记录的数据输出到表AC中,用于查看“合并记录”这个过程。

    8、拖入一个“数据同步"框,命名为”数据同步-AD“,将合并记录的数据输出到表AA中,用于查看“合并记录”这个结果。

    注意,这个高级里,表示执行数据同步时,所要执行的CURD动作,若是”当值相等时删除“里,不填写deleted,那么新数据源中与旧数据源比较时,若新数据中没有这条记录,那么在同步的目标表中是不会执行删除动作的。

    9、执行后,AC表中的结果数据如下,表示”合并执行“的动作。

    10、执行后,AA表中的结果数据如下,表示”合并执行“的结果。01记录已删除,02 记录不变,03记录更新,04记录新增插入。

     11、上述步骤数据同步完成,可以达到AA表  AB表的数据一致。 应用场景: 当AB是动态的写入表时,AA是只读表时或分析备份表时,这种同步基本可以达到要求。

  • 相关阅读:
    SharePoint 2013 图文开发系列之自定义字段
    SharePoint 2013 图文开发系列之Visual Studio 创建母版页
    SharePoint 2013 图文开发系列之代码定义列表
    SharePoint 2013 图文开发系列之计时器任务
    SharePoint 2013 图文开发系列之应用程序页
    SharePoint 2013 图文开发系列之事件接收器
    SharePoint 2013 图文开发系列之可视化WebPart
    SharePoint 2013 图文开发系列之WebPart
    SharePoint 2013 对二进制大型对象(BLOB)进行爬网
    SharePoint 2013 状态机工作流之日常报销示例
  • 原文地址:https://www.cnblogs.com/sandyljg/p/13903562.html
Copyright © 2020-2023  润新知