当前位置:首页 » 网页前端 » informatica怎么执行脚本
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

informatica怎么执行脚本

发布时间: 2022-02-01 20:53:04

1. Informatica中的事务使用方法

在session的设置中,出错回滚就好了吧。

如果是一个session一个mapping的话都会回滚的,我刚测试了下

还有设置commitinterval这个设置大一点。因为回滚是上一个commit之后的。

2. 为什么我的informatica执行工作流了 目标表中没结果

创建源、目标数据库用户 /* 创建源数据库用户BI_SOURCE */ create user BI_SOURCE identified by password profile DEFAULT; grant dba to BI_SOURCE; create user BI_TARGET identified by "BI_TARGET" profile DEFAULT; grant dba

3. 求助,INFORMATICA中的POST sql 问题

你好,问题细节能否描述具体一点呢?session的日志里面如何描述的?

session执行完成之后进行delete操作,但是没有生效?

你在delete语句后面加上commit,再试一下是否还存在同样的问题?

4. informatica mapplet组件怎么使用

1. INFORMATICA CLIENT的使用
1.1 Repository Manager 的使用
1.1.1 创建Repository。
前提:
a. 在ODBC数据源管理器中新建一个数据源连接至你要创建Repository的数据库(例:jzjxdev)
b. 要在你要连接的数据库中新建一个用户(例:name: ETL password: ETL)
现在你可以创建一个Repository了。选择Repository – Create Repository,输入Repository Name(例:JZJX),Database Username(例:etl),Database Password(例:etl),ODBC Data Source(例:jzjxdev),Native Connect String(数据库所在ip例:141.20.52.108)

1.1.2 添加Repository。
通过这一步你可以添加别人已经建好的Repository。
选择Repository – Add Repository,输入Repository Name(例:JZJX),Username(例:etl),点击ok就可以看到名为JZJX的Repository在左边的浏览器中,但是此时还看不到它的内容,要看到它的内容或者对它进行操作必须先连接它。

1.1.3 添加Folder
选择Folder – Create,输入文件夹名称即可。

1.2 Designer 的使用
首先连接Repository,可以看到该Repository在Repository Manager中创建的文件夹。

1.2.1 Sources
Sources文件夹下的表是抽取的来源表。
导入方法:
选择Tools菜单下的Source Analyzer,然后选择Sources菜单下的Import from database,连接想要连接的数据库,连接上后选择你要抽取的表点击ok你所选择的表就会出现在Sources文件夹下。
说明:上面的导入过程导入的只是表结构,你也可以自己创建来源表,只要你创建的表的结构跟真实存在的那张表的表结构一致就行。

1.2.2 Targets
Targets文件夹下的表是抽取的目标表,也就是抽取结果的存放表.
导入方法: 选择Tools菜单下的Warehouse Designer,然后选择Targets菜单下的Import from database,连接想要连接的数据库,连接上后选择你要抽取的表点击ok你所选择的表就会出现在Targets文件夹下。
说明:上面的导入过程导入的只是表结构,你也可以自己创建目标表,只要你创建的表的结构跟真实存在的那张表的表结构一致就行。

1.2.3 Mappings 的设计
选择Tools菜单下的Mapping Designer才能进行Mapping的设计。
每个Mapping都由来源表,transformation和目标表组成,描述数据抽取的过程。来源表和目标表可以从Sources和Targets文件夹拖拽到工作区,但是transformation一般来说是需要自己创建的。Mapping的设计关键是transformation的使用,它的使用关系到数据抽取的正确性和效率。下面说明各个transformation的作用和用法。
(Active:表示该transformation可以改变通过它的数据的行数;
Passive:表示该transformation不改变通过它的数据的行数;
Connected:表示该transformation要连接到数据流;
Unconnected:表示该transformation可以不连接到数据流)

1.2.3.1 Source Qualifier
作用:根据查询SQL文从关系表或平坦文件查出所要记录
用法:创建好Source Qualifier(下简称SQ) 后,将需要的用的字段从来源表拖拽到SQ ,双击SQ,对SQ的属性进行设置。
Select Distinct 属性:选中的话表明结果记录将去除重复值;
Tracing Level属性: 共有四级,表示log的复杂程度;
Number Of Sorted Ports属性: 排序的字段个数,值大于0时Sql Query中的sql 文将出现order by 从句;
Sql Filter属性: 属性值将出现在Sql Query属性值的where表达式中;
User Defined Join属性: 用户如果要定义外部连接可在此写(例: {REG_CUSTOMER LEFT OUTER JOIN PURCHASES on
(REG_CUSTOMER.CUST_ID = PURCHASES.CUST_ID AND PURCHASES.AMOUNT > 100.00) })
Sql Query属性:值是一条sql 文,session运行时会执行这条sql 文进行查询。
命名方式:SQ_Name
类型:Active/Connected
注意:SQ的输入只能来自来源表; User Defined Join属性值必须用{}括起来;在更改了SQ的属性值之后一定要点击Sql Query属性的
generate sql按钮重新生成sql文。

1.2.3.2 Update Strategy
作用:决定该行进行插入,删除,更新,忽略中的哪一种操作
用法:创建好Update Strategy(下简称US)后,将需要的用的字段从transformation拖拽到US ,双击US,对US的属性进行设置。US的设
置关键是Update Strategy Expression属性的设置,这个表达式使用IIF 或DECODE 函数对记录的每一行进行判断,为每一行赋予
DD_INSERT,DD_UPDATE,DD_DELETE,DD_REJECT(这四个是常量,值分别为0,1,2,3)中任意一个值,表明该行在数据库中将进行
何种操作。
命名方式:UPD_Name
类型:Active/Connected
注意:mapping中有US时,mapping对应的session的在配置属性时必须把Treat rows属性设置为Data Driven,否则US将不起作用。

1.2.3.3 Expression
作用:计算一个值
用法:创建好expression_r(下简称EXP)后,将需要的用的字段从来源表拖拽到EXP,双击EXP,
新增输出端口,编辑该端口的表达式。
命名方式:EXP_Name
类型:Passive/Connected
注意:要进行列运算一般用这个transformation; 此种transformation可以使用本地变量

1.2.3.4 Stored Procere
作用:调用一个存储过程
用法:创建Stored Procere(下简称SP)的时候连接数据库选择必要的存储过程。SP有连接和不连接到数据流两种用法。
连接到数据流方式跟一般的transformation类似,通过拖拽端口来实现数据流。
不连接到数据流分表达式调用和Pre-/Post Session两种方式。表达式调用方式中SP被Mapping中另一个transformation 中的表达式
调用。Pre-/Post Session方式就是在Session的属性中配置SP的运行时间,Source Pre-load(Session从源表查询数据之前),Source
Post-load(Session从源表查询数据之后),Target Pre-load(Session将数据插入目标表之前),Target Post-load(Session将
数据插入目标表之后)
命名方式:SP_Name
类型:Passive/Connected or Unconnected
注意:

1.2.3.5 Sequence Generator
作用:产生主键
用法:创建好Sequence Generator(下简称SEQ)后,双击SEQ,对SEQ的属性进行设置。Start Value属性是开始值,此属性只在选择了
Cycle选项才有效;Increment By 属性值是每次增加的值;End Value属性值是结束值;Current Value属性值是当前开始值;Cycle选
项被选择的话NEXTVAL的值达到End Value值之后会重新从Start Value开始;Reset选项被选择的话,服务器会为每个使用了该SEQ的
session的NEXTVAL值都从Current Value开始。
命名方式:SEQ_Name
类型:Passive/Connected
注意:这是一个只有两个输出端口没有输入端口的transformation.;
如果该SEQ时可重复使用的话,不能选择Reset选项。

1.2.3.6 Aggregator
作用:执行分组聚合运算
用法:创建好Aggregator(下简称AGG)后,将需要的用的字段从其他transformation拖拽到AGG ,双击AGG,在端口tab中每个端口有
group by 选项。钩上想要分组的列,新增端口,编写聚合表达式实现分组聚合运算。
命名方式:AGG_Name
类型:Active/Connected
注意:可使用本地变量

1.2.3.7 Filter
作用:过滤记录
用法:创建好Filter(下简称FIL)后,将需要的用的字段从transformation拖拽到FIL ,双击FIL,对FIL的属性进行设置。FIL的配置主
要是对Filter Condition的配置,Filter Condition 写入类似where条件的表达式即可。
命名方式:FIL_Name
类型:Active/Connected
注意:

1.2.3.8 Lookup
作用:查询值
用法:创建Lookup(下简称KP)的时候选择要查询的表。和Stored Procere一样SP有连接和不连接到数据流两种用法。
连接到数据流方式将要关联查询的字段从其他的transformation拖拽过来,然后双击LKP进行属性的配置。Lookup Policy On
Multiple Match属性表明当查询到多个行时采取取第一行,取第二行,报错中哪个策略.Lookup Condition 属性值是查询的条件。
Lookup Sql Override属性值是查询执行的Sql文,我们可以在里面直接写Sql。Lookup Caching Enabled属性表明是否使用缓存,此项
一般选择为好,有利提高效率。Loopup Cache Persistent属性表明是否使用永久的缓存。
命名方式:LKP_Name
类型:Passive/Connected or Unconnected
注意:如果Lookup表的类型是来源表的话,请尽量使用Joiner;
一个已连接的LKP不能再被其他transformation的表达式调用;
如果查询表在session运行过程中不会改变,使用Loopup Cache Persistent属性可提高性能;
尽量不要在Lookup Sql Override中书写order by子句,因为cached LKP默认有order by ;

1.2.3.9 Joiner
作用:连接查询来自不同数据库的表或平坦文件
用法:创建好Joiner(下简称JNR)后,将需要的用的字段从transformation拖拽到JNR ,双击JNR,对JNR的属性进行设置。用于连接的
两个表一个称为detail表,一个称为master表。JNR属性中可配置Join Type(连接类型)为Normal Join,Master Outer Join,Detail
Outer Join 和Full Outer Join中任意一种。Normal Join相当于常规的inner join; Master Outer Join相当于常规的Detail left
outer join Master;Detail Outer Join相当于常规的Detail right outer join Master; Full Outer Join相当于常规的full outer
join。Join Condition属性值就是常规sql文on 后带的条件。
命名方式:JNR_Name
类型:Active/Connected
注意:尽量使用Normal Join,Master Outer Join.这两个的效率比另外两个更好

1.2.3.10 Normalizer
作用:格式化记录,这些记录可以是来自COBOL源
用法:
命名方式:NRM_Name
类型:Active/Connected
注意:

1.2.3.11 Router
作用:根据一组表达式将记录分类路由到多个transformation
用法:创建好Router(下简称RTR)后,将需要的用的字段从transformation拖拽到RTR,双击RTR,对RTR的属性进行设置。在Group tab
中添加组,为每组编辑该组的过滤条件。
命名方式:RTR_Name
类型:Active/Connected
注意:组过滤条件表达式的计算值必须是真或者假。

1.2.3.12 Rank
作用:排序记录,只输出最顶层或最低层的n个记录
用法:创建好Rank(下简称RNK)后,将需要的用的字段从transformation拖拽到RNK,双击RNK,对RNK的属性进行设置。在Ports tab中
有一个名为‘R’的列,选择你要排序的列。你还可以选择你想分组的列。在Properties tab中Top/Bottom属性,Top表示选择顶层的
记录,Bottom表示选择底层的记录; Number Of Ranks属性值是整数,表示要选择的记录条数。假设你在‘R’列中选择了名为’
Price’的列,而且Group By选择了‘Name’列,Top/Bottom属性选择的是‘Top’, Number Of Ranks属性值是2,那么将抽取过程是
这样的:以name分组取出每组中 Price最大的2列记录。
命名方式:RNK_Name
类型:Active/Connected
注意:可以使用本地变量

1.2.3.13 ERP Source Qualifier
作用:根据查询SQL文从ERP文件查出所要记录
用法:
命名方式:
类型:Active/Connected
注意:

1.2.3.14 XML Source Qualifier
作用:根据查询SQL文从XML文件查出所要记录
用法:
命名方式:XSQ_Name
类型:Passive/Connected
注意:

1.2.4 Mapping Parameters(参数) 和 Variables(变量)的使用
如果你在一个mapping中多次用到同一个值,又或者mapping中要用到一个在session运行才能决定的值,这时候可以使用mapping
parameters或variable。添加参数或变量的方法是:选择Mappings-Parameters and Variables,在窗口新增变量或者参数,并对它的
数据类型,数据大小,初始值进行设置。添加的参数和变量在本mapping的transformation的表达式中就可以使用了。这些参数和变
量的值还可以设置在.txt文件中,建session或者batch的时候把这个文件的路径设置在Parameter输入框中就行了。
Mapping参数变量的命名方式:$$NAME
存放参数变量的.txt文件的格式:folder_name可写可不写
[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

1.2.5 Mapping 的调试
选择Mappings–Debugger–Start Debugger,在点击‘下一步’的过程中选择调试过程运行在哪台服务器然后为来源表选择数据库,
最后到完成。等调试初始化好之后点击Mappings–Debugger–Continue(或按F5),即可开始调试,选择某个目标表即可看该表的结果
数据。如果还想看中间某个transformation的数据,在开始调试前为该transformation增加一个断点。

1.3 Server Manager 的使用
1.3.1 Register Server(注册服务器)
任何session都必须运行在某个服务器上,所以如果Server Manager里没有服务器的话必须注册一个,当然你也可注册多个服务器。
服务器的注册过程如下:
选择Server Configuration – Register Server,Server输入 的是要注册的服务器的名称;Host Name 输入的是运行了informatica
server的机器名或iprotocol选择TCP/IPort Number输入4001。最下面的是服务器的变量设置,设置的是session或batch运行时一些
文件的存放位置,比如说log文件bad 文件 cache文件,一般不用更改。这样一个服务器就注册到repository了,不过后面你可以双
击它重新编辑。

1.3.2 Add DataBase Connection(添加数据库连接)
选择Server Configuration – DataBase Connection,点击Add,然后选择数据库的类型。不同类型的数据库配置起来不一定一样,下面说明Oracle 和SQL Server两种数据库连接的配置。
Oracle类型数据库连接配置:Data Source 输入数据源名称;User Name输入数据库连接的用户名;Password输入数据库连接的密码;Connect String 输入Oracle TNS 服务名。
SQL Server 类型数据库连接配置: Data Source 输入数据源名称;User Name输入数据库连接的用户名;Password输入数据库连接的密码;Database Name输入数据库名称;Server Name输入数据库的ip地址;Domain Name输入数据库的域名。

1.3.3 Add Session(添加抽取任务)
Mapping 只是数据抽取过程的设计,要使这个过程运行必须为该Mapping建立对应的session,然后运行该session。选择Operations-Add Session,在窗口中选择一个Mapping点击ok会出现编辑该session的窗口。
Session输入框输入该session的名称;
server选择该session将运行在的服务器;
Treat rows有Insert,Delete,Update,Data Driven四个选项,表明抽取出来的数据在目标表中作何种操作,只有在session对应的mapping中有Update Stategy时才能选择Data Driven而且也必须选择Data Driven;
Source 框选择来源表所在的数据库;
Target Options 中的Insert,Update(as Update),Update(as Insert),Update(else Insert),Delete,Truncate table 选项的意思分别是:将insert作insert操作,将Update 作insert操作,将Update先做Update操作不成功再作insert操作,将delete作delete操作,在对目标表操作前删除目标表所有数据。这些选项如果与Update Stategy冲突server将以这里的设置为准,也就是说这里的设置可以覆盖Update Stategy的设置;Parameter输入框中输入session要用到的参数或变量的所在文件的路径;其他设置比较简单或者保持原来的值即可,这里就不再详细说明了。除了在添加 session的过程中可编辑session之外,双击已添加的session也对session重新设置。
注:如果mapping 中有Joiner的话,session的编辑窗口的Source Type就变成heterogeneous(不同类),这样就无法通过设置Source
来设置来源表的位置,只能在Source Location tab中为每个来源表设置位置。

1.3.4 Add Batch(添加批操作任务)
添加Batch可以将一系列的session串起来,这样就可以让必须按顺序执行的session有序的执行。添加方法:选择Operations-Add Batch,在窗口中对batch进行编辑。Batch输入框中输入batch 的名称;
Parameter输入框中输入batch中的session要用到的参数或变量的所在文件的路径,由于每个session都可以设置自己的parameter,所以batch中可以不设置,即使batch的parameter进行了设置也会被各个session自己的parameter设置所覆盖,但如果session用到了parameter在同一个文件中的话,把parameter文件的位置设置在batch的parameter输入框就显得更方便;Enabled选项表明是否让该batch有效;Concurrent选项表明是否让batch中的所有session并行地运行;Schele中可设置batch的运行时间和运行频率。

1.3.5 Session和Batch 的运行
右键单击要运行的session或者batch,选择start即可让该session或者batch立刻运行。如果你的session或者batch的Schele设置不是选择的‘Run only on demand’,那么该session或者batch就会在设置完后就处在Scheled状态,时间一到就会自动运行。(可以右击服务器选择monitor来监视运行在该服务器下的session或者batch当前状态)。

5. Informatica怎么执行SQL脚本

需要将它放到windows脚本 bat里面执行,尝试以以下方式保存为.bat
a.bat:
psql.bat -h localhost -p 5432 postgres "postgres" UTF8;
--sql命令跟后面

6. 用SQL脚本写ETL

学好SQL就行了,DML/DDL. ETL可以用很多工具来实现,比如Shell, Perl, Informatica, Ab Initio等等, SQL本身的逻辑和处理工作就是ETL的过程. 如果是用SQL来实现ETL调度管理,可以先创建数据库表,然后,通过SQL实现Insert/Update/Delete来控制ETL脚本的被调度。

7. 为什么要用etl工具自己手动写脚本然后运行不是也可以么

成品ETL工具与手工写脚本之比较:
一、灵活性来讲:ETL工具比较灵活,需要在此平台上设置规则定义,前期是需要工具先前必须已有支持功能,如果需要扩展,要ETL工具源厂商开发。而自己写脚本只需先前好好调研需求,自己写能实现的功能即可。俗话说得好“求人不如求己”哈哈哈!

二、难易度:ETL工具相对上手比较容易,工程师只需具备两个必要条件:1 、对数据库熟悉 2、对客户的业务逻辑了解。手动写脚本呢?不仅要具备操作ETL工具的条件,还要必须有一定技术水平。

三、后期管理与维护:ETL工具非常容易,这点上是用工具的最给力的优势。可能也是ETL工具诞生的缘由吧!原因:人力少不说,如有新的需求,只需稍加改动,图形配置定义即可。而手工编码呢?较难。需要重又开发写程序,随着数据信息的日积月累,每日数据的递增,更新。开发的速度赶不上需求的更新,严重到先前开发架构不合理甚至于有可能推倒重来的风险。如果取中间,既有图形配置有兼具脚本开发功能,有款中国的Beeload/ BeeDI

四、性能和效率:这方面取决于多方面如:1、硬件:服务器 CPU 内存 2、数据库类型 数据类型 3、网络状况 4 、ETL 工具的配置 设计。。。。。整体来说 工具属于较高范畴,各家成熟ETL 不一致、各有千秋。手工写脚本就要看编程者的水平啦!因人而异,如果直接在数据库上写存储过兴许比任何一家成品工具高得多。在性能上,工具当属老美的informatica IBM 的DS

五、开发周期:工具只需操作上源厂商负责培训,再把客户目前需求了解透彻,周期很短,上线见效快。手工编码不仅需要把客户(当前)需求了解透彻,未来需求也要有所预测,再进行开发。这样周期就不得而知了。

六、工作量:从上述些显然保守点得出:ETL工具属中等,手工编码属较重。写好程序还需大量测试工具,不断修正BUG 与完善。成熟工具已把这些工具先前做过了,即使有,也是可以容忍个别,源厂商可以分担修正。

七、投入成本价格:ETL工具前期成本投入较多,钞票先付。后期维护成本相对低。编写脚本,先期投入人力(工程师的工薪)中期大量测试人力,后期维护人力(工程师的工薪)看似相对较低。貌似不要票子的开源滴ETL工具 Kettle,后期才付费(服务费与培训费)

总之不管是用工具还是自己写脚本,要全盘考虑,根据各自项目大小,成本,愿意付出哪部分,适合的才是最佳滴!

8. 用informatica调用存储过程的时候,如何传入输入参数(如:201401)

你用stored procere transformation 引入数据库中的存储过程,系统会生成input port,你将要传入的端口连到这个端口就可以输入参数

9. 如何让informatica实现动态抽取表

除非你想在command里调脚本。

工具和手工编码最大的特点,除了可视化外,还有就是方便管理,特别PC方便元数据管理,如果连表的信息都没在designer里,工具的作用就失去一半了。

如果是简单的抽取,也可以将多个表放入一个mapping,不过表的数量不能太多。

BTW,将表名放入参数文件的用法,以前还没听说过,不过厂商的人提到过,可能能将表名参数化,但极少这么使用,资深人士也不太清楚如何用。