发布时间:2026/8/31 10:30:59
一步步上手ETL工具之------Informatica PowerCenter 这篇文章是Informatica PowerCenter以下简称PowerCenter的操作教学供初入行的数据开发者阅读以简单易上手为目标。PowerCenter 是一款企业级的数据集成平台核心功能是完成数据的抽取、转换和加载Extract、Transform、Load即ETL过程。在业界特别是外企有较高知名度。当前时代都是哪些人在用PowerCenter答案是大型企业在大型企业特别是员工超5000人的组织应用的ETL工具中PowerCenter的依然排名第6-7位。它在金融、保险、医疗、政府等受严格监管的行业中尤其受欢迎。Informatica它在国内拥有庞大的企业客户群这一点也为多个市场分析报告所印证。对于早期进入中国的外企PowerCenter很可能是其IT架构的核心组件之一。正文1、实例此处我们的案例特殊。相信我们的读者中有很多都是电竞爱好者。此时假如读者是一个星际2SC2老玩家他想要统计自己在天梯某类1V1对抗中比如TvP,面对ProtossP哪些流程胜率高面对哪些流程容易输。游戏大厅里没有这类数据而玩家自己的复盘笔记通常是对比赛过程的文字描述缺少精确统计数据。这个时候我们引入数据库、表以及数据处理工具ETL workflow对流程胜率做统计并最终希望能实时更新这些数据帮助玩家练习。这不仅对sc2老玩家有帮助也对学习用PowerCentre做ETL流程的自学者有意义。2、前置知识读者需要查阅关系型数据库、数据库管理软件Oracle、表、sql等相关知识。PowerCenter接入数据库后能实现数据的抽取和加载。这里我们的数据库指代Oracle、Mysql、snowflake这些软件管理的数据库。而ETL的数据源和数据目的地通常是一张张存在数据库中的表。读者还需了解星际2是一款即时战略游戏对战中存在各种各样的策略和流程多游戏数据的统计可以帮助玩家更快速地提高游戏水平。如果不玩这款游戏在后续实践中将SC2替换成自己喜欢的游戏或运动即可。3、建表在本案例中我们选用Oracle数据库先创建三张目标表Source分别记录SC2玩家的各种信息。Table aSC2_REPLAYS:记录SC2玩家对战录像的基础信息比如录像名称、时长、对战模式、对战玩家ID、种族和创建时间。TablebSC2_REPLAY_DETAILS主要对战录像中对战双方在游戏的前中后期所使用的策略流程。这里的策略我们简单理解为单矿3兵营前期、单矿1兵营1机场前期、两矿5兵营中期这类战术。同一种战术不会出现多种命名以确保后续ETL在抽取数据时不会遗漏。TablecSC2_PLAYER_REC_IN_LADDER_1V1记录玩家玩天梯1V1九种对抗的场数。下图反映了Table a、b、c的关联关系。为了得到玩家在某种对抗比如TVP中面对某种策略的胜率和失败率。需创建目标表TargetSC2_PLAYER_STRTGS_LADDER_1V1。附带上建表语句。CREATE TABLE SC2_REPLAYS ( REPLAY_NAME VARCHAR2(50 CHAR), DURATION NUMBER(3,1), VERSUS_MODE CHAR(20), BATTLE_SCENARIO VARCHAR2(100 CHAR), WINNER VARCHAR2(20 CHAR), WINNER_RACE CHAR(8), LOSER VARCHAR2(20 CHAR), LOSER_RACE CHAR (8), CREATING_DATE TIMESTAMP, CONSTRAINT SC2_REPLAYS_PK PRIMARY KEY (REPLAY_NAME) )TABLESPACE XXX_DATA COMPRESS; CREATE TABLE SC2_REPLAY_DETAILS ( REPLAY_NAME VARCHAR2(50 CHAR), WINNER_EARLY_STAGE_STRATEGY VARCHAR2(200 CHAR), LOSER_EARLY_STAGE_STRATEGY VARCHAR2(200 CHAR), WINNER_MID_TERM_STRATEGY VARCHAR2(200 CHAR), LOSER_MID_TERM_STRATEGY VARCHAR2(200 CHAR), WINNER_LATER_STAGE_STRATEGY VARCHAR2(200 CHAR), LOSER_LATER_STAGE_STRATEGY VARCHAR2(200 CHAR), CONSTRAINT SC2_REPLAYS_DETAILS_PK PRIMARY KEY (REPLAY_NAME) )TABLESPACE XXX_DATA COMPRESS; CREATE TABLE SC2_PLAYER_REC_IN_LADDER_1V1 ( PLAYER_NAME VARCHAR2(20 CHAR), NUMBER_OF_TVP NUMBER(5), NUMBER_OF_TVT NUMBER(5), NUMBER_OF_TVZ NUMBER(5), NUMBER_OF_PVP NUMBER(5), NUMBER_OF_PVT NUMBER(5), NUMBER_OF_PVZ NUMBER(5), NUMBER_OF_ZVP NUMBER(5), NUMBER_OF_ZVT NUMBER(5), NUMBER_OF_ZVZ NUMBER(5), UPDATING_DATE TIMESTAMP, CONSTRAINT REC_IN_LADDER_1V1_PK PRIMARY KEY (PLAYER_NAME) )TABLESPACE XXX_DATA COMPRESS; CREATE TABLE SC2_PLAYER_STRTGS_LADDER_1V1 ( MATCH_NAME VARCHAR2(50 CHAR), PLAYER_NAME VARCHAR2(20 CHAR), PLAYER_WINNING_FLAG CHAR(1), PLAYER_EARLY_STAGE_STRATEGY VARCHAR2(200 CHAR), OPPONENT_EARLY_STAGE_STRATEGY VARCHAR2(200 CHAR), PLAYER_MID_TERM_STRATEGY VARCHAR2(200 CHAR), OPPONENT_MID_TERM_STRATEGY VARCHAR2(200 CHAR), PLAYER_LATER_STAGE_STRATEGY VARCHAR2(200 CHAR), OPPONENT_LATER_STAGE_STRATEGY VARCHAR2(200 CHAR), PLAYER_NUMBER_OF_TVP NUMBER(5), PLAYER_NUMBER_OF_TVT NUMBER(5), PLAYER_NUMBER_OF_TVZ NUMBER(5), PLAYER_NUMBER_OF_PVP NUMBER(5), PLAYER_NUMBER_OF_PVT NUMBER(5), PLAYER_NUMBER_OF_PVZ NUMBER(5), PLAYER_NUMBER_OF_ZVP NUMBER(5), PLAYER_NUMBER_OF_ZVT NUMBER(5), PLAYER_NUMBER_OF_ZVZ NUMBER(5), MATCH_CREATING_DATE TIMESTAMP, CONSTRAINT PLAYER_STRTGS_LADDER_1V1_PK PRIMARY KEY (MATCH_NAME) )TABLESPACE XXX_DATA COMPRESS;这里略过数据库的创建过程。并假设读者已经可以用ToadPL/sql等在数据库中执行create_sc2_tables里的四个建表语句从而创建表比如下图。4、构建映射mapping和会话sessionPowerCenter安装后打开用于Mapping构建的PowerCenter Designer。点击PowerCenter Desinger上方菜单栏的Repository--Configure Domain。在弹出的窗口中点击图中Add a new domain按钮输入读者或管理员配置的Domain NameGateway HostGateway Port。不要忘记在窗口右侧Repositories里打勾,这设置了哪个Repository中可以看到该Domain。双击新添加的Domain输入用户名密码。在连接无误时Domain下方会弹出文件夹列表。进入读者或管理员为这次项目而创建的文件夹。4.1导入Source和Target点击右侧窗口上方的Source Analyzer按钮接着点击Sources、Import from Database。随即跳出Import tables界面读者可以直接选择已配好的数据源1或者先配置数据源2再尝试连接。如果点击按钮2再下一个界面点Add。选择对应的源数据库类型这里我们的源库是Oracle为你的Data Source命名PowerCenter中的名字填写该数据源的tns路径和源库的Server Name。这里对Oracle tns不再赘述读者可自行查阅有关知识。点击OK。之后回到Import tables界面填写数据库User Name, Owner Name和Password点击Connect。弹出TABLES列表后选择想要导入的表点击OK。导入成功后可以看到下面的画面检查表结构无误后点CrtlS保存。右键其中一个Table鼠标指向Versioning--点击Check in填写Comment必须填后点OKCheck in一张表或Apply to allCheck in受更改的所有表。在导入完Source表后按同样方法导入Target表只需先点击右侧窗口上方的Target Desinger之后点最上方菜单栏的Targets。剩下步骤参考Source表的步骤。4.2创建Mapping点击右侧窗口Mapping Desginer图标。点击上方菜单的Mapping会弹出下拉列表点击Create。在Mapping Name窗口中输入读者需要的映射名称。基于上面的星际2项目小节3我们需要将数据从3张源表加载进目标表SC2_PLAYER_STRTGS_LADDER_1V1我们将Mapping Name写为m_FULL_LOAD_SC2_STRTGS_LADDER_1V1这里FULL_LOAD的意思是一次性全量加载所有数据而不是对数据做批量或实时更新后面会有另一张Mapping承担此任务。----------------------------------------------未完待续。

相关新闻

2026/8/31 23:28:12

Vue3 依赖注入 TypeScript 类型安全:Symbol 与 InjectionKey 实战指南

Vue3 依赖注入 TypeScript 类型安全:Symbol 与 InjectionKey 实战指南在大型 Vue3 应用开发中,组件间的数据共享一直是工程化的重要课题。当组件层级超过三层时,传统的 props 透传会变得笨拙且难以维护。Vue3 的 provide/inject 机制虽然能解…

2026/8/31 9:18:59

Unity UI渲染性能深度对比:IMGUI与UIElements的架构差异与实战优化

1. 项目概述:为什么UI渲染性能对比是个“硬核”话题最近在Unity社区里,关于UI系统选择的讨论热度一直没降下来。尤其是当项目复杂度上去,UI元素动辄成百上千时,性能问题就成了悬在头顶的达摩克利斯之剑。很多开发者,包…

2026/8/30 5:04:35

Unity资源逆向解析:AssetStudio核心原理与实战应用指南

1. 项目概述:为什么我们需要AssetStudio? 如果你是一个Unity开发者、游戏爱好者,或者对游戏背后的美术、音频、模型资源充满好奇,那么“拆包”这个词对你来说一定不陌生。在Unity游戏生态里,AssetStudio就是那把最锋利…

2026/9/1 8:11:10

MKVToolNix v80.0 从入门到精通:无损封装与提取影音轨道的终极指南

最近在整理个人影音库时,经常遇到需要将外挂字幕、多音轨与视频文件合并,或者无损提取视频中的某条音轨的情况。网上工具虽多,但要么功能不全,要么操作复杂,要么会二次编码导致画质损失。直到我系统性地使用了 MKVToo…

2026/9/1 8:11:10

【linux基础操作-2】

history:查看历史指令默认1000 vim /etc/profile用/HIS查找 1000为可查询历史命令长度 reboot 退出后重启 账户管理: cat /etc/passwd 查看用户账号 由7个字段组成,字段之间用“:”分隔,意义:账号名:密码:UID:GID:个人资料:主目录…

2026/9/1 8:11:10

告别复杂Excel公式:零代码实现多条件数据筛选的两种高效方案

这次我们来看一个能让你彻底告别复杂函数公式,实现 Excel 多条件筛选的办公程序。对于很多非技术背景的同事来说,每次处理数据都要去查 VLOOKUP 、 SUMIFS 或者复杂的数组公式,不仅效率低,还容易出错。这个项目的核心思路&…

2026/9/1 8:11:10

RobotStudio与西门子PLC虚拟调试:用Snap7实现GIGO信号直连DB区

简介:面向机器人自动化集成场景,这是一份用C#与Snap7库实现RobotStudio Smart Component(GI/GO)与西门子PLC通讯的资源包,适用于需要在RobotStudio中自定义智能组件、并完成PLC信号交互与数字量联调的机器人工程师和调…

2026/9/1 8:11:10

Dify + LangGraph 构建多智能体系统:架构设计与代码落地

简介:面向企业级AI应用开发者,这套代码演示了Dify与LangGraph在构建多智能体系统时的融合方式。Dify提供可视化开发界面,LangGraph负责复杂工作流编排,两者结合能有效降低智能体构建门槛,同时提升系统的开发效率、编排…

2026/9/1 8:06:10

基于YOLO的水面目标检测:从数据标注到边缘部署实战

简介:水面目标检测是智慧水利与水环境监管的重要场景,YOLO水面目标检测系统源码包即为此设计,面向计算机视觉开发者、科研人员及水上安全监测工程人员,覆盖桥梁、船只、水面垃圾等14类目标的检测识别。项目基于7647张标注水面图片…

2026/8/31 1:05:20

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/31 2:14:20

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/1 7:04:43

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…