Informatica基础系列(一)——Helloworld

目录:

Informatica基础系列(零)——前言

Informatica基础系列(一)——Helloworld

Informatica基础系列(二)——更新策略转换组件

Informatica基础系列(三)——表达式、筛选、查找组件

Informatica基础系列(四)——联结组件、路由组件

Informatica基础系列(五)——参数与变量

Informatica基础系列(六)——发布环境、迁移知识库

Informatica基础系列(七)——常见问题、注意事项

Informatica基础系列(外)——不支持 MySQL Community 版本的解决方案

正文:

这一篇介绍 Informatica 的软件功能视图,并通过一个简单的 Demo 一窥 Infa 完整开发流程。

一、Infa 软件视图

1.1 概览

Infa 是 C/S 的软件架构,包括 Server、Client,我们的开发工作一般集中在 Client 。在本地安装好客户端,就会看到 Infa 的几个快捷方式,常用的有 Repository Manager、Designer、Workflow Manager、Workflow Monitor,如下图所示:

图 2-1

1.2 Repository Manager

仓库管理,负责工作夹的创建、删除、编辑以及环境数据的导入导出,能看到在其他视图做的工作,包括 Designer 的 Source、Target、Mapping,还包括 Workflow 的 Session、Workflow、Schedule,如下图所示:

图 2-2

1.3 Designer

映射设计,负责数据源、目标的映射转换设计。

图 2-3

如上图,1 是切换软件视图区,可以方便地打开或切换到其他视图;2 是工作夹导航区;3 是组件区,可以拖拽到设计区;4 是设计视图切换区,可以在 Source、Target、Transformation、Maplet、Mapping 设计区切换;5 是状态栏。

1.4 Workflow Manger

工作流管理,负责工作流设计、设置等。

图 2-4

Workflow 视图和 Designer 类似,需要补充说明的是:设计区、菜单、快捷组件等会根据你开发内容的不同而实时变化,您可以在 Designer 的 4 区切换不同的设计视图体验一下。

1.5 Workflow Monitor

工作流监控,查看运行状态、运行日志等。

图 2-5

如上图,1是 Workflow 的运行日志,双击 Workflow 的某一个 Session,下面会有该 Session 的详细日志,从 Source 抽取的记录数,影响 Target 的记录数,Session 的开始时间、结束时间等。

二、HelloWorld

接下来我们做一个 Demo,把 Source Table 的数据全量 load 到 Target Table,根据 Id 主键匹配,Insert/Update 到 Target。为了简便,我把 Source、Target 放在同一个 DB。

2.1 新建 Folder

我们从零做起,首先打开 Repository Manager 视图,新建一个 Test 工作夹,如下图所示:

图 2-6

如果勾选 Allow Shortcut,表示该 Folder 是一个共享工作夹,点击确定就建好一个 Test 的 Folder,接下来切换到 Designer。

2.2 导入 Source、Target

切到 Designer 会看到 Test Folder,如果 Designer 处于打开状态,需要断开连接重新连才能看到这个变更,如下图所示:

图 2-7

接下来导入 Source、Target 数据结构,先切换到 Source 视图(中间红框的第一个图标),可以看到菜单出现 Source 的菜单。点击它,选择 “Import from Database”。当然,Infa 支持导入很多种数据源结构,本文以 Database 为例:

图 2-8

我已经建好一个 ODBC 的 DSN,也可以点击后面的 “…” 创建。接下来,选中这个 DSN,输入 UserName/Password ,点击带图标的 “Connect” 按钮,选中要导入的表,点击 “OK”,Source 就导好了,如下图所示:

导入 Target 的方法和导入 Source 类似,导入后结果如下图所示:

2.3 设计 Mapping

导入 Source、Target 后,切换到 Mapping Designer 视图设计 Mapping(中间第5个小图标,也就是最后那个),通过 Mapping -> Create,输入 Mapping 名称,创建一个 Mapping,如下图所示:

将 Source、Target Table 拖拽到设计区,并将 Source 和 Target 的字段根据需求连线,我们先简单地把 Source 的数据一一对应地 load 到 Target,直连就可以了,如下图所示:

补充说明:Infa 可以根据 Position/Name 自动连线,右键单机空白处,可以看到 AutoLink 选项,您可以试试。

2.4 生成 Workflow

Mapping 设计完毕后,右键点击空白处,选择“Generate Workflow”,根据引导程序完成 Workflow 的创建,可以先按引导程序的默认选项,后续在 Workflow 中重新设置,如下图所示:

这里可以选择创建一个可复用的 Session、可复用 Session 的 Workflow 或不复用的 Session 的 Workflow,通常情况下,一个 Workflow 可以运行多个 Session,我们选第三个。

2.5 设置 Workflow

Workflow 运行前需要指定 “Connector”,就是 Source、Target 数据所在的数据库连接。切换到 Workflow 视图,通过 Connerctor -> Relational … 配置连接,如下图所示:

双击 Workflow 中的 Session -> Properties ->Treat source rows as,选择 “Update”,如下图所示:

切换到 Mapping tab,设置 Source、Target 的连接,并选择 Target “Update else Insert”,我们上面选择的是 Update 模式,这里选择这个选项的意思是匹配到则更新,否则插入新的记录,如下图所示:

到这里整个开发就结束了,下面我们验证下我们的数据是否能得到预期结果。

2.6 验证结果

我已经在 Source Table 准备了 4 条记录,Target Table 无记录,查询结果如下图所示:

然后运行 Workflow,右键单击 Workflow Designer 空白处 -> Start Workflow,会自动转换到 Monitor 视图,查看日志看到影响了 4 条记录,再查看下数据库,看到 Target Table 已经有了 4 条数据,如下图所示:

今天的分享就到这,相信这篇文章已经能够让你快速上手 Infa 的开发了。随着业务场景的复杂程度,Infa 也有更复杂的设计策略,敬请期待下次分享!

At 2017.08.13

欢迎关注我的微信公众号:惜福 / xifu_forever,微信扫一扫即可关注:

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注