Informatica 完整教程:从入门到精通
第一部分:基础认知
什么是 Informatica?
Informatica 是一家全球领先的数据管理和软件公司,其核心产品是 Informatica PowerCenter,它是一个功能强大的企业级数据集成平台,主要用于构建和管理数据仓库、数据湖、数据集市以及实现各种数据迁移和转换任务。

你可以把它想象成一个“数据搬运工”和“数据加工厂”。
- 搬运工:它能从各种不同的数据源(如 Oracle 数据库、SQL Server、Excel 文件、API 等)抽取数据。
- 加工厂:它能对抽取来的数据进行清洗、转换、合并、聚合等复杂处理,最终将处理好的数据加载到目标系统(如数据仓库、报表系统等)。
核心概念
在学习使用 Informatica 之前,必须理解以下几个核心概念:
-
Repository (知识库):
- Informatica 的“大脑”或“中央数据库”。
- 存储了所有定义好的元数据,比如源表、目标表、转换规则、工作流、会话等。
- 元数据是关于数据的数据,描述了数据本身的结构和属性。
-
Repository Service (知识库服务):
(图片来源网络,侵删)负责管理和访问知识库的后台服务,当你设计或运行任务时,都是通过这个服务与知识库交互。
-
Integration Service (集成服务):
- Informatica 的“肌肉”或“执行引擎”。
- 负责执行在Workflow Manager中定义的工作流,即实际的数据抽取、转换和加载过程。
-
Domain (域):
管理和协调 Repository Service 和 Integration Service 的最高级别容器,一个域可以包含多个服务。
(图片来源网络,侵删) -
ETL (Extract, Transform, Load):
- 这是 Informatica 最核心的工作模式。
- Extract (抽取):从源系统读取数据。
- Transform (转换):对数据进行清洗、格式化、计算、聚合等操作。
- Load (加载):将处理后的数据写入目标系统。
-
Mapping (映射):
- ETL 过程的“蓝图”或“设计图”,它定义了数据从源如何流向目标,以及在过程中经过了哪些转换。
- 一个映射由源定义、目标定义、转换 和 连接 组成。
-
Workflow (工作流):
- ETL 过程的“执行计划”或“调度任务”,它定义了任务的执行顺序、依赖关系、调度时间(如每天凌晨2点运行)等。
- 工作流由一个或多个Session(会话)以及Command Task(命令任务)等组成。
-
Session (会话):
工作流中的一个执行单元,它对应于一个具体的映射,一个会话就是 PowerCenter 执行引擎执行一次映射的实例。
第二部分:核心组件详解
Informatica PowerCenter 的主要工具
-
PowerCenter Designer:
- 用途:设计和创建映射的地方,是开发人员最常用的工具。
- 功能:创建源/目标定义、设计转换逻辑、构建映射。
-
PowerCenter Workflow Manager:
- 用途:创建、管理和调度工作流。
- 功能:将映射打包成工作流,设置任务的执行顺序、定时调度、错误处理和监控。
-
PowerCenter Workflow Monitor:
- 用途:监控和查看工作流的运行状态。
- 功能:实时查看会话是否成功、读取/写入的行数、运行日志、错误信息等。
-
Repository Manager:
- 用途:管理知识库中的元数据。
- 功能:通常用于管理员,进行用户权限管理、版本控制、备份恢复等。
常用转换
转换是映射的核心,负责处理数据,以下是一些最常用的转换:
| 转换名称 | 功能描述 | 常用场景 |
|---|---|---|
| Source Qualifier | 连接源定义和映射,定义从源抽取数据的SQL查询。 | 几乎所有映射的起点,用于优化数据抽取。 |
| Target | 定义目标表的结构和数据加载规则。 | 所有映射的终点,定义数据最终要去哪里。 |
| Expression | 在数据流中进行行级的数据计算、字符串操作、条件判断等。 | 计算新字段、拼接字符串、根据条件赋值。 |
| Filter | 根据条件过滤掉不需要的行。 | 只处理满足特定条件的数据,如只处理订单金额大于100的记录。 |
| Joiner | 将来自不同源的行(通常是主键和外键关系)合并成一行。 | 将订单表和客户表关联起来。 |
| Aggregator | 对数据进行聚合计算,如求和、平均值、计数、分组等。 | 按地区统计销售额、计算每个部门的员工数。 |
| Sorter | 对数据进行排序。 | 为 Joiner 或 Aggregator 转换准备数据(有时是必需的)。 |
| Lookup | 根据输入值,在参考表(如维度表)中查找并返回相关值。 | 根据产品ID查找产品名称、根据客户ID查找客户等级。 |
| Router | 根据不同的条件,将一行数据分发到不同的输出组。 | 将客户分为“VIP客户”和“普通客户”两组,进行不同处理。 |
第三部分:实战演练 - 第一个 ETL 项目
假设我们要完成一个简单的任务:从 EMPLOYEES 表中抽取员工信息,过滤掉已离职的员工,计算每个部门的平均薪资,然后将结果加载到 DEPT_AVG_SAL 表中。
步骤 1:准备工作
- 安装环境:确保你已经安装好了 Informatica PowerCenter Client 和 Server,并配置好了相应的 Repository Service 和 Integration Service。
- 准备数据源:确保你的数据库中存在
EMPLOYEES表(包含EMP_ID,EMP_NAME,DEPT_ID,SALARY,STATUS等字段)。 - 准备目标表:在数据库中创建
DEPT_AVG_SAL表,包含DEPT_ID和AVG_SALARY字段。
步骤 2:使用 Designer 创建映射
- 打开 PowerCenter Designer,连接到知识库。
- 创建源定义:
- 选择
Sources->Import->Relational。 - 连接到你的数据库,选择
EMPLOYEES表,导入,左侧的Source Analyzer中会出现EMPLOYEES的结构。
- 选择
- 创建目标定义:
- 选择
Targets->Import->Relational。 - 连接到数据库,选择
DEPT_AVG_SAL表,导入。
- 选择
- 创建映射:
- 选择
Mapplets->Create,新建一个映射,命名为M_EmpDeptSal。
- 选择
- 拖拽组件:
- 从左侧
Source Analyzer中拖拽EMPLOYEES表到映射画布上。 - 从左侧
Target Designer中拖拽DEPT_AVG_SAL表到映射画布上。
- 从左侧
- 设计转换逻辑:
- 添加 Filter 转换:从工具栏拖拽
Filter到画布,将EMPLOYEES的输出端口连接到Filter的输入端口,双击Filter,在Filter Condition中输入STATUS = 'ACTIVE'。 - 添加 Aggregator 转换:拖拽
Aggregator到画布,将Filter的输出端口连接到Aggregator的输入端口,双击Aggregator:- 在
Group By选项卡中,勾选DEPT_ID。 - 在
Columns选项卡中,创建一个新的输出端口AVG_SALARY,设置其表达式为SALARY。
- 在
- 连接到目标:将
Aggregator的DEPT_ID和AVG_SALARY输出端口,分别连接到DEPT_AVG_SAL目标表的相应端口。
- 添加 Filter 转换:从工具栏拖拽
- 保存和验证映射:
- 保存映射 (
Ctrl+S)。 - 选择
Mapping->Validate,检查是否有语法错误,如果没有错误,映射设计完成。
- 保存映射 (
步骤 3:使用 Workflow Manager 创建和调度工作流
- 打开 Workflow Manager,连接到知识库。
- 创建文件夹:为你的项目创建一个文件夹,如
MyFirstProject。 - 创建工作流:
- 在文件夹上右键,选择
Create->Workflow,命名为WF_EmpDeptSal。
- 在文件夹上右键,选择
- 创建并添加会话:
- 在工作流设计器中,右键选择
Create->Session。 - 在弹出的窗口中,选择刚刚创建的映射
M_EmpDeptSal。 - 进入
Properties->Mapping选项卡,确保映射正确。 - 进入
Properties->Source和Target选项卡,配置正确的数据库连接信息。 - 保存会话,并将其命名为
S_EmpDeptSal。
- 在工作流设计器中,右键选择
- 将会话添加到工作流:
- 将创建好的
S_EmpDeptSal会话拖拽到工作流画布上。
- 将创建好的
- 调度工作流:
- 右键点击工作流画布上的
S_EmpDeptSal,选择Properties。 - 进入
Schedule选项卡,设置调度频率,Run once now或设置一个定时任务(如每天 03:00)。
- 右键点击工作流画布上的
- 保存工作流。
步骤 4:使用 Workflow Monitor 运行和监控
- 打开 Workflow Monitor。
- 刷新并查找任务:刷新任务列表,找到你刚才创建的
WF_EmpDeptSal。 - 启动任务:
- 右键点击
WF_EmpDeptSal,选择Start Workflow。 - 你会看到任务状态从
Scheduled->Running->Succeeded(如果成功)或Failed(如果失败)。
- 右键点击
- 查看日志:
- 双击任务或会话,可以查看详细的运行日志、读取/写入的行数、性能指标等。
- 如果任务失败,日志会告诉你错误原因(如连接失败、SQL 错误、数据类型不匹配等)。
步骤 5:验证结果
登录到你的数据库,查询 DEPT_AVG_SAL 表,检查数据是否已正确加载。
第四部分:学习资源与进阶
官方资源
- Informatica Network:这是最重要的资源,你需要注册一个账号,可以下载软件、查看官方文档、观看视频教程、参与社区讨论。
书籍
- 《Informatica PowerCenter 9.x: Complete Reference》:非常全面和经典的参考书,适合系统学习。
- 《Informatica PowerCenter Cookbook》:以问题-解决方案的形式组织,适合有一定基础后查阅。
在线课程
- Udemy, Coursera, edX:在这些平台上搜索 "Informatica PowerCenter",有很多付费和免费的入门课程。
- YouTube:有大量免费的视频教程,可以跟着一步步操作。
进阶方向
当你掌握了基础后,可以进一步学习:
- PowerCenter 高级特性:如参数文件、变量、自定义转换、Java/VB 脚本等。
- 数据质量:学习 Informatica Data Quality (IDQ) 或 Informatica Data Quality (DQ) for Big Data,进行数据探查、清洗和匹配。
- 大数据集成:学习如何使用 Informatica Big Data Integration (BDI) 或 PowerCenter 连接 Hadoop、Spark 等大数据平台。
- 云平台集成:学习 Informatica Cloud (IICS),这是 Informatica 的云原生数据集成平台,功能更强大,部署更灵活。
- PowerCenter 性能调优:学习如何优化映射、会话配置以提高 ETL 任务的运行效率。
希望这份详细的教程能帮助你顺利开启 Informatica 的学习之旅!祝你学习愉快!
