Inatica总结---杲兴强.doc_第1页
Inatica总结---杲兴强.doc_第2页
Inatica总结---杲兴强.doc_第3页
Inatica总结---杲兴强.doc_第4页
Inatica总结---杲兴强.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深航Informatica学习总结 修改记录编写2016/3/9(深航infa学习中总结,学习中没有详细的文档,所以整理了一下学习的一些知识)框架:一、总体概述 ETL包括Extract、Transform、Cleaning和Load,它是用于从生产库中提取数据到数据仓库中,再由具体的报表、统计、分析工具对数据仓库的内容进行分析,分析出自己所需要的数据。 其中ETL培训的内容是如何利用InformaticPowerCenter把源数据库的内容提取存放到目标数据库中,四部分Client,ReposityServer,ReposityDatabase和InformaticServer每个部分实现自己的功能。 二、系统体系结构 此部分介绍了InformaticETL工具包括的主要内容。 1.Client InformaticClient主要有五个部分。Client可以和Reposity分离,通过TCP/IP连接,连接到远程的ReposityServer。 2.ReposityManager 主要用于进行一个Reposity库的管理,当用户使用Client工具登录一个Reposity服务器之后,进行文件夹权限的创建,用户权限、密码的管理等。 3.Designer 主要是进行数据抽取的转换工具的设计,主要是mapping的设计、设计源数据库的结构,目标数据库的结构,然后设计把源数据导入到目标数据库中,所需要进行的转换操作(Transformation)。 同一个Reposity的folder之间可以建立shortcut方式,多个reposity的folder之间只能做拷贝。 4.WorkflowManager 主要用于流程任务(workflowTask)的设计。 进行任务流程的设计、每一个Tast针对一个Session,一个session针对一个mapping,其 中workflow中的Folder和Designer中的folder相对应的关系。一版来说,用户都是建立自己 的Folder。 5.WorkflowMonitor 主要进行流程运行、及任务运行时的流程运行情况跟踪。可以跟踪日志。包括Session日志和Workflow日志,可以设置生成日志的循环个数。分析session运行是对源数据库的数据抽出信息和对目标数据库的更新信息。 6.ReposityServerApplicationConsole 主要进行Reposity的管理,包括ReposityServer的start,shutdown操作。进行Reposity库的backup、restore等操作,进行Reposity库级别的管理,级别较高。 7.ReposityServer Reposityserver是为客户端服务的,客户端可以和各种client不在一台服务器上。关于数据抽取的设计成果转换成 为XML格式的源数据,都是通过ReposityServer存放到ReposityDatabaseServer上的。8.ReposityDatabaseServer 用于存放的是进行ETL设计的元数据。可以支持各类的数据库。方式为数据库中用户的一个表目录和用户关系即可。 ReposityDatabase可以和Reposityserver不安装在一台服务器。如果在一台机器上,server通 过native方式连接到database,如果不在一台及其上,需要在database上安装一个reposityagent,用户 通过agent,以native方式连接到reposity数据库,然后reposityagent再以tcp/ip方式连接 到reposityserver。 9.InformaticServer Informaticserver是实际执行数据抽取任务的运行环境。即workflows、task、sessions等。它是根据定义的workflow元数据库,然后在自己的实际环境中,执行数据抽取操作。 三、系统组件功能 Informatic的功能主要体现在Designer和WorkflowManager上,其中Designer实现的是 对数据抽取的数据转换方式设计,以及效率设计目标等。而在WorkflowManager中再把具体的数据转换方式应用到一个具体的工作任务中,包 括目标库、源库的选择,以及一条具体的执行任务的属性设置等等。包括任务 的insert、truncate、delete、incrementinsert等。 1.Designer组件 (1)工作区 在Designer中,涉及到的工作区主要包括 有SourceAnalyzer、WarehouseDesigner、TransformationDesigner、MappletDesigner和MappingDesigner。 其中每个工作区的功能分别介绍: SourceAnalyzer: SourceAnalyzer的功能是实现对源数据库表的设计,可以手工的进行源数据库的设计,一般都是通过从FlatFile或者RelationDBMS中导入数据库的表结构。XLS文件结构。 WarehouseDesigner 用于设计目标数据库库的结构,可以利用手工设计,也可以利用import工具导入导一个warehouse的结构。 TransformationDesigner 用户设计可重用的transformation组件,这里的组件,在一个folder里面都是可以重用的,而且 以shortcut的方式使用。Transformation组件的修改,会直接反映到使用 此transformation的mapping中。 Mpplet 设计可以重用的多个组件,只要有output组件,可以有input组件,也可以没有input组件,实现的功能就和一个expression的功能类似,实现功能。 MappingDesigner 实现的功能是设计具体进行抽取数据的mapping,这些mapping应用到一个workflow中,形成了workflow的一个session(task)。 (2)组件功能 ETL支持的组件主要包括两类:Active组件和Passive组件,其中Active组件是对输入记录集在输出时个数有变化的组件,Passive组件,输入的记录集,输出时记录集的个数不发生改变。 Informatic提供的组件包括: (1)SourceQualifier:readsdatafromflatfile&relationalsources (2)Expression:performsrow-levelcalculations (3)Filter:dropsrowsconditionally (4)Sorter:sortsdata (5)Aggregator:performsaggregatecalculations (6)Joiner:joinsheterogeneoussources (7)Lookup:looksupvaluesandpassesthemtootherobjects (8)UpdateStrategy:tagsrowsforinsert,update,delete,reject (9)Router:splitsrowsconditionally (10)SequenceGenerator:generatesuniqueIDvalues (11)Normalizer:izesrecordsfromrelationalorVSAMsources (12)Rank:filtersthetoporbottomrangeofrecords (13)Union:mergesdatafrommultiplepipelinesintoonepipeline (14)TransactionControl:allowsuser-definedcommits (15)StoredProcedure:callsadatabasestoredprocedure (16)ExternalProcedure:callscompiledcodeforeachrow (17)Custom:callscompiledcodeformultiplerows (18)MidstreamXMLParser:readsXMLfromdatabasetableormessagequeue (19)MidstreamXMLGenerator:writesXMLtodatabasetableormessagequeue 每一类组件都有自己独特的功能和特点,每一种组件的详细功能这里不详细介绍。 2.Workflow组件 Workflow是对执行任务的执行进行控制,可以在执行时对执行的任务进行传参数进行传入,这样就能在执行的时候把数据库表进行动态的设置。 可以在执行的时候选择参数文件,对mapping、workflow中的Session的参数进行传入。达到动态执行的目的。 Workflow中定义workflow、session等任务,对这些任务的执行进行管理控制。 四、补充说明 SourceQualifier支持同构数据源的连接,衣钩数据源的连接通过N-1个jointer组件实现。 Lookup为passive组件,查出的多条记录集,要么取first,或者last,或者报错。 Lookup可以时动态/静态,可以connected/unconnect。1. infa开发准备1. 安装客户端2. 准备工作创建表:建表语句create table SOURCE_EMPLOYEES( EMPLOYEE_ID NUMBER(6), EMPLOYEE_NAME VARCHAR2(50), EMPLOYEE_ADDRESS VARCHAR2(50), EMPLOYEE_CITY VARCHAR2(15), CREATE_DATE DATE);目标表create table TARGET_EMPLOYEES_XX( EMPLOYEE_ID NUMBER(6), EMPLOYEE_NAME VARCHAR2(50), EMPLOYEE_ADDRESS VARCHAR2(50), EMPLOYEE_CITY VARCHAR2(15), CREATE_DATE DATE);3. 配置域域名Domain_infa9网关主机41网关端口60052.Repository创建文件夹1连接数据库目的:连接存储库2创建文件夹点击工具栏的Folder Create,输入需要创建的文件夹名称点击确定完成创建如果文件夹没有显示,断开重新连接一下看看3.Designer中创建映射1. 切换到designer窗口目的:切换到映射设计界面操作:点击D图标即可Designer 界面被打开,默认打开的是新建的XXX文件夹。2导入源表目的:从数据库中导入源表表结构操作:点击源图标切换至源窗口菜单:源-从数据库导入选择图标添加数据源ODBC连接选择配置导入数据,可以在Search窗口搜寻要查询的表名Properties属性:3.导入目标表目的:从数据库中导入目标表DIM_EMPLOYEES的表结构操作:点击切换到目标设计窗口菜单: 和导入源表步骤相同,选择目标表导入4.建立映射关系目的:设置从源表到目标表的转换规则1 新建映射点击图标切换到mapping窗口工具栏出现mappings选项点击新建2 为映射添加源表从左侧源中把表SOURCE_EMPLOYEES拖入右侧编辑区,(会自动出现SQ_SOURCE_EMPLOYEES的SQL转换)3为映射添加目标表从左侧目标中把表DIM_EMPLOYEES拖入右侧编辑区4编辑SQ_SOURCE_EMPLOYEE可在Properties项中编辑sql语句可在ports项中点击新增字段,点击删除字段4在Workflow Designer中新建工作流1切换到Workflow Designer窗口目的:切换到工作流设计界面操作:点击W图标即可2新建session目的:创建会话,用以调用映射操作:点击 Task Developer 按钮,切换到任务编辑窗口菜单“Tasks”-“Create” 输入名字创建选择刚刚做好的mapping点击ok3编辑session双击新建的session选择Mapping选项选择target文件夹下的目标表选择Properties下的truncate勾选,表示在运行时清空目标表注意SOURCES文件夹下的源表以及TARGETS文件夹下的目标表的Connections连接的数据库是否正确4新建工作流目的:新建工作流操作:点击图标 WorkFlow Designer 切换到工作流设计窗口菜单:“WorkFlows” -“Create”输入名字 确定建立在界面会出现图标将 建立session 拖入工作流设计窗口中点击链接任务,鼠标状态改变点击启动,再点击 session连接起来5启动工作流目的:执行工作流操作:在工作流或者workflow designer窗口中右键启动工作流 5.lookup组件(增量ID)1.表源表SOURCE_EMPLOYEE目标表create table TARGET_EMPLOYEES_02_XX( EMPLOYEE_ID NUMBER(6), EMPLOYEE_NAME VARCHAR2(50), EMPLOYEE_ADDRESS VARCHAR2(50), EMPLOYEE_CITY VARCHAR2(15), CREATE_DATE DATE, BI_UPDATE_DATE DATE);导入源表,目标表,建立mapping参考上面2.Lookup组件在mapping designer中点击lookup组件图标创建一个lookup,选择target目标表可删除不必要的字段将源表的id字段拖入到lookup框中,改名为IN_EMPLOYEE_IDLOOKUP属性Condition点击新建选择employee_id=in_employee_id建立连接关系添加F(x) 组件,点击出现+选择mapping区域的空白处点击出现将lookup组件中的employee_id拖入F(x)组件中双击F(x)组件添加俩字段BI_UPDATE_DATE是设置更新时间为当前时间UPDATE_FLAG是设置标志Exprossion中语句为IIF(ISNULL(EMPLOYEE_ID),I,U)添加一个Update组件,进行insert和update操作将源表的数据以及F(X)中的BI_UPDATE_DATE以及UPDATE_FLAG拖入Update组件中双击update组件点开设置Properties中属性Update Strategy Expressio设置内容为IIF(UPDATE_FLAG=I,DD_INSERT,IIF(UPDATE_FLAG=U,DD_UPDATE,DD_REJECT)如果UPDATE_FLAG标志为I进行INSERT操作,如果为U,进行INSERT操作将update组件中的字段与目标表的对应字段连接起来3.快捷创建工作流选择做好的MAPPING右键点击Generate Workflow选择Workflows with a reusable session同时创建session注意后面的命名规则完成工作流的创建,运行。6.Filter Transformation 1.表源表:SOURCE_EMPLOYEE目标表:目标表create table TARGET_EMPLOYEES_03_XX( EMPLOYEE_ID NUMBER(6), EMPLOYEE_NAME VARCHAR2(50), EMPLOYEE_ADDRESS VARCHAR2(50), EMPLOYEE_CITY VARCHAR2(15), CREATE_DATE DATE, BI_UPDATE_DATE DATE);2.创建Filter Transformation导入源表,目标表,创建mapping参考上创建Filter Transformation点击图标创建 Filter Transformation区域将源表的字段拖入Filter中双击filter进入属性编辑Properties Filter Condition编辑过滤条件如我们要的数据为2016年3月8号之后的数据IIF(CREATE_DATETO_DATE(2016/3/8,YYYY/MM/DD),TRUE,FALSE)添加F(X)写一个修改时间为当前时间传入目标表2. 创建工作流运行参上SQL QUERY自定义(客户化)了Integration Service用于从来源读取数据的查询语句,替代了默认查询。自定义的查询语句覆盖custom join和source filter。USER-DEFINED JOIN指定用于连接多个来源数据的连接条件,Where子句的内容SOURSE FILTER指定读取来源数据是的筛选条件7.作业:1. 员工表SZAIR_EMPLOYEES,部门表 SZAIR_DEPARTMENT2. 只取在职状况为Y的数据3. 身份证号长度异常的数据,将身份证号置为 Default-异常4. 将性别中 M 转化为 男 ,W 转化为 女5. 获取2014年后的数据6. 目标表命名为 W_SZAIR_EMPLOYEES_D_XXXX 其中XXXX为你们的姓名拼音,目标表字段包括EMPLOYEE_IDEMPLOYEE_NAMEEMPLOYEE_IDCARDSEXEMPLOYEE_ROLEEMPLOYEE_LEVELDEPARTMENT_NAMEDEPARTMENT_CITYHIRE_DATE7.多源数据操作1.简单操作 有两个源表,如作业,有employee表和department表,目标表数据来源这两个源表简单步骤:1.将employee源拖入mapping中,打开SQ2.在SQ的Properties属性中打开Sql Query在里面编辑sql语句,sql语句连接employee表和department表查询出目标表所需要的这两个表的字段。3. 在Ports中新增或删除字段,使得其字段与sql相对应,顺序要一致 4. 其他步骤相同2. 标准操作原sql语句:SELECT ject_num, ject_name, pip.parent_project_id, (SELECT ject_name FROM sza_pa_invest_projects_all pip2 WHERE pip2.invest_project_id = pip.parent_project_id AND pip.parent_project_type = INVEST_PROJECT UNION ALL SELECT ppa.NAME FROM pa_projects_all ppa WHERE ject_id = pip.parent_project_id AND pip.parent_project_type = PA_PROJECT) parent_project_name, (SELECT flv.meaning FROM fnd_lookup_values_vl flv WHERE flv.lookup_type = SZA_PA_PROJECT_STATUS AND flv.lookup_code = pip.status_code) status_desc, pip.status_code, pip.request_date, pip.creation_date, NULL effect_date, pip.owning_dept_code, pip.manage_dept_code, pip.resp_dept_code, sza_pa_invest_proj_pub.get_manage_dept_desc(pip.manage_dept_code) manage_dept, sza_pa_invest_proj_pub.get_owning_dept_desc(pip.owning_dept_code) owning_dept, NULL request_dtp, sza_pa_invest_proj_pub.get_invest_proj_bgt_amt(pip.invest_project_id, ALL, N, ibv.invest_budget_ver_id) total_budget_amt, PIP.INVEST_PROJECT_ID, PIP.PA_PROJECT_ID, PIP.INVEST_CLASS_CODE, PIP.ATTRIBUTE_CATEGORY, pip.attribute1, PIP.ATTRIBUTE2, PIP.ATTRIBUTE3, PIP.ATTRIBUTE4, PIP.ATTRIBUTE5, PIP.ATTRIBUTE6, PIP.ATTRIBUTE7, PIP.ATTRIBUTE8, PIP.ATTRIBUTE9, PIP.ATTRIBUTE10, PIP.ATTRIBUTE11, PIP.ATTRIBUTE12, PIP.ATTRIBUTE13, PIP.ATTRIBUTE14, PIP.ATTRIBUTE15 FROM sza_pa_invest_projects_all pip, sza_pa_invest_bgt_versions ibv WHERE pip.invest_project_id = ibv.invest_project_id(+) AND ibv.version_type(+) = INVEST我们在此不使用sql语句,使用infa的组件来完成Stored Procedure Transformation Joiner Transformation 效果图:1.用法 来连接两个源表的,只能连接两个,个数就为源表个数减1将两个源表拖入mapping中使用进行连接 将连接字段拖入连接,将两个源表所需的字段拖入2.用法对应sql中的:sza_pa_invest_proj_pub.get_manage_dept_desc(pip.manage_dept_code) manage_dept, sza_pa_invest_proj_pub.get_owning_dept_desc(pip.owning_dept_code) owning_dept,sza_pa_invest_proj_pub.get_invest_proj_bgt_amt(pip.invest_project_id, ALL, N, ibv.invest_budget_ver_id) total_budget_amt,新建P(X)点击确定传入参数,返回return_value8.参数和变量1概述参数和变量可以定义在工作流、工作集或会话中。您可以使用 WordPad 或 Notepad 等文本编辑器来创建参数文件。您在参数文件中列出参数或变量及其值。参数文件可以包含以下类型的参数和变量:u Integration Service变量u Integration Service process变量u Workflow变量u Worklet变量u Session参数u Mapping参数和变量2参数和变量的设置1定义参数文件Mapping Parameters(参数) 和 Variables(变量)的使用 如果你在一个mapping中多次用到同一个值,又或者mapping中要用到一个在session运行才能决定的值,这时候可以使用mapping parameters或variable。Mapping参数变量的命名方式:$NAME存放参数变量的.txt文件的格式:folder_name.session_name parameter_name=value variable_name=value mapplet_name.parameter_name=value folder_name.session2_name parameter_name=value variable_name=value mapplet_name.variable_name=value folder2_name.session_name parameter_name=value variable_name=value mapplet_name.parameter_name=value例如:Common_Dimension.s_M_Inventory$BeginDate=2007-07-01$EndDate=2007-07-31$IsCurrentDay=0$DBConnection_Source=EM$DBConnection_Target=DC$PMSessionLogDir=C:para添加参数或变量的方法选择Mappings-Parameters and Variables,在窗口新增变量或者参数,并对它的数据类型,数据大小,初始值进行设置。添加的参数和变量在本mapping的transformation的表达式中就可以使用了。这些

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论