
这篇文章是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承担此任务。----------------------------------------------未完待续。