技术开发 频道

DMETL快速入门之数据同步

  【IT168 文档一、DMETL介绍

  DMETL是达梦数据库有限公司研制开发的具有自主版权的、商品化的数据交换平台,可以快速地实现对基于数据的企业应用集成。DMETL通过建立底层数据交换平台来联系整个企业的异构系统、应用、数据源等,实现在企业内部的ERP、CRM、SCM、数据库、数据仓库,以及其它重要的内部系统之间无缝地共享和交换数据。

  1、DMETL功能特点

  DMETL基于ETL技术,实现多个异构数据源之间的数据的采集、传输、转换和装载。数据交换的流程还包括一组可以调度的数据加工插件,以便在进行数据传输前,对采集的数据做加工处理。数据加工组件是一组接口相同的插件,它实现某个特定的数据加工服务,例如数据规整、数据合并、数据过滤等。由于采用插件式的方式,因此可以方便的装配和卸载。

  DMETL具有良好的可扩展性。系统在架构上采用可扩展的数据源适配器和消息适配器来支持异构数据源的数据交换。通过对数据源适配器的扩展,可以增加系统所支持的数据源,比如JDBC数据源、文件数据源、FTP数据源、XML数据源。通过对消息适配器的扩展,可以增加系统所支持的第三方消息中间件,如JMS。特定于JDBC数据源,系统提供多套JDBC适配器,可以通过不同的JDBC适配器与各种数据库相关联。

  DMETL支持全量和增量的方式交换数据,对于增量抽取方式,提供多种变化数据的捕获方法,包括触发器、时间戳、MD5算法。根据不同的数据源可以选择相应的变化数据的捕获方法。

  DMETL提供可视化的管理和设计工具,数据源的配置、数据交换的流程(数据的来源、数据加工工序、消息传输、数据的目的地)、数据清洗方法等,都可以通过该工具进行配置,并提供方便直观的数据处理流程图的编辑功能,支持通过拖拉的方式来完成流程设计。

  系统采用Java语言编写,因此具有跨平台特性,能运行在当前大多数主流操作系统上。

  2、DMETL应用范围

  DMETL是提供数据中心和企业级集成应用的平台软件,产品具备数据交换的各项基本功能,可广泛应用于企业应用集成、数据中心建设、数据加工处理、数据仓库建设等场景。 目前,DMETL已在湖北省人口库、宏观经济库、武汉市目录与交换体系、商务部产业安全数据库、浦东新区数据中心、以及山东、河北等多个项目中运行使用,系统稳定可靠,性能良好。

  以下以一个模拟的案例,让大家快速了解DMETL的基本功能和使用方法。

  二、模拟案例

  今年以来,甲流H1N1肆虐全球,国内患者也逐渐增多,某市卫生部门启动紧急预案,要求各医院对感冒病人进行登记,隔离观察,对确诊甲流的病人,要及时治疗。这些数据必须每天报送市甲流中心办公室,甲流中心办公室需对确诊甲流的病人,建立档案,补充病人详细个人信息,以便及时对病人家属及其居住所采取防范措施。

  三、实验环境准备

  使用一台电脑,安装DM5.6数据库、Oracle数据库、DMETL,并按以下要求建好库、表环境。

  医院:

  使用DM5.6数据库,建立数据库HOSPITAL,用户HOSPITAL

  执行建表语句

CREATE TABLE GMBR
(
    ID
INTEGER IDENTITY(1,1) NOT NULL,    --自增ID号
    XM VARCHAR(50),                --姓名
    XB VARCHAR(2),                --性别
    SFZHM VARCHAR(18),            --身份证号码
    SFH1N1 VARCHAR(2),            --是否h1n1患者
    JCRQ TIMESTAMP(0),            --检查日期
    PRIMARY KEY(ID)

  公安人口库:

  使用Oracle10g数据库,实例名orcl,用户GARKK

  执行建表语句

CREATE TABLE RKXX
(
    ID      
NUMBER(10,0) NOT NULL,    --主健ID
    NAME     VARCHAR2(50) NULL,        --姓名
    SEX      VARCHAR2(2) NULL,        --性别
    HJSZD    VARCHAR2(50) NULL,        --户籍所在地
    JZD      VARCHAR2(50) NULL,        --居住地
    HYZK     VARCHAR2(2) NULL,        --婚姻状况
    CSRQ     TIMESTAMP(6) NULL,        --出生日期
    SFZHM    VARCHAR2(18) NULL,        --身份证号码
    PRIMARY KEY(ID)
)

  甲流中心办公室:

  采用DM5.6数据库,建立数据库H1N1CENTER,用户H1N1CENTER

CREATE TABLE GMBR
(
    ID
INTEGER IDENTITY(1,1) NOT NULL,    --自增ID号
    XM VARCHAR(50),                --姓名
    XB VARCHAR(2),                --性别
    SFZHM VARCHAR(18),            --身份证号码
    SFH1N1 VARCHAR(2),            --是否h1n1患者
    JCRQ TIMESTAMP(0),            --检查日期
    PRIMARY KEY(ID)
)

CREATE TABLE H1N1JL
(
    ID
INTEGER,                --主键ID号
    XM VARCHAR(50),                --姓名
    SFZHM VARCHAR(50),            --身份证号码
    QZRQ TIMESTAMP(0),            --确诊日期
    HJSZD VARCHAR(50),            --户籍所在地
    CSRQ TIMESTAMP(0),            --出生日期
    JZD VARCHAR(50),            --居住地
    SFYH VARCHAR(2),            --是否已婚
    PRIMARY KEY(ID)
)

  四、数据同步流程配置

  根据需求,医院必须向甲流中心同步感冒病人数据,这个可以用一个最基本的从表数据源到表目的的一个转换过程来完成。

  首先,启动etl服务器,并启动etl_manger登录到etl服务器。

  建立一个工程,命名为case1,并建立一个新的转换gmbr。在新打开的gmbr的流程编辑器中,从右边的工具箱中拖放一个表数据源、一个表数据目的到编辑区。选中表数据源,将其下面的绿色箭头线拖动并连接到表数据目的上。

  我们还需要告诉DMETL这个表数据源指向医院的表,而表目的要指向甲流中心的表,该设置过程如下:

  首先,选中左边下方的数据源选项卡,建立一个数据源HOSPITAL,指向医院数据库HOSPITAL,填上相应的用户名HOSPITAL及密码,可点击测试连接按钮来测试数据源配置的正确性。

  展开HOSPITAL数据源节点,在其子节点HOSPITAL数据库节点上执行右键—添加表菜单。

  选中GMBR表,并点击确定按钮,将GMBR表添加到该数据源中。

  同样按此方法,配置一个数据源H1N1CENTER指向甲流中心的数据库H1N1CENTER,并将甲流中心数据库的GMBR表加入进来。

  回到转换gmbr的编辑界面,在表数据源上双击鼠标,弹出表数据源属性配置对话框,选择数据源HOSPITAL,模式HOSPITAL,表GMBR,选中全部字段。

  在左侧点击抽取方式图标,选中增量抽取方式,同步方式MD5,并选中初始化后立即填充MD5表。

  在表目的上双击鼠标,弹出表目的属性配置对话框,数据源选择H1N1CENTER,模式H1N1CENTER,表GMBR,可看到所有列名前面都有绿色对勾图标,表示这些字段与前面的表数据源字段全部匹配上了。

  保存转换gmbr,执行编辑框上面一排按钮中的绿色启动按钮,启动流程,可看到下面的信息框输出执行日志。

  由于医院数据库的GMBR表中还没有数据,因此日志中没有提示加载了多少数据。

  利用ISQL工具向医院数据库HOSPITAL的表GMBR中插入两条记录:

INSERT INTO "HOSPITAL"."HOSPITAL"."GMBR" ("XM", "XB", "SFZHM", "SFH1N1", "JCRQ")
VALUES('张三', '', '340405197001010001', '', NOW());
INSERT INTO "HOSPITAL"."HOSPITAL"."GMBR"("XM", "XB", "SFZHM", "SFH1N1", "JCRQ")
VALUES('李四', '', '340405197511300002', '', NOW());

  再次执行gmbr转换,可看到输出结果中提示,表目的加载了2条记录。

  通过ISQL工具,可到表目的对应的甲流数据库中的GMBR表中查看,已经插入了2条数据,与医院数据库中GMBR的数据一致。

  反复以上过程插入、修改或删除数据,并执行转换,你会发现每次DMETL将会将医院数据库中GMBR表的变化同步到甲流中心的GMBR表当中去。

  至此,我们已经完成了从医院感冒病人记录到甲流中心感冒病人数据同步流程的配置,实现了感冒病人数据的同步。

0
相关文章