| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> informatica优化 -> 正文阅读 |
|
[大数据]informatica优化 |
Contents LookUpIIF(ISNULL(customer_id),:lkp.MYLOOKUP(order_no), customer_ id) Unconnected Lookup? A small percentage of records are missing Only one port can be returned. This is a fixed feature of the unconnected Lookup An unconnected lookup can improve performance if the lookup table is static Lookup cache persistent Cache stored on Server hard drive and used next session unless Persistent cache can improve performance, but stale data may pose a problem Cache:选择的话会先将表cache到informatica,这样就获取不到变化了。 如果不cache, 性能会下降,每条数据都会去数据库执行一次lookup,但是能获取到表最新的变化 当第一行数据进入lookup组件的时候,IS 会在内存中建立cache,把条件值保存在索引cache,把output值保存在数据cache,IS会为每一条进入这个组件的行查询cache Dynamic Lookup源表中存在新纪录(但是源表中也存在重复的新纪录) 中解决办法:
使用session属性中的Treat source rows as update=update与目标属性update else insert 组合 源表里面有重复数据或者源和目标的数据有update
使用dynamic lookup要配合UpdateStrategy使用
Source Qualifier和Joiner 是 Active 组件,而Lookup可以是Active(Multi-Output)或者Passive组件。 Session/WofkflowTarget/Source 里面的Owner name是schema名字 Workflow: properties: Parameter Filename/ Write Backward Compatible Workflow Log File(这个属性是会写text到log文件)
The DTM divides the memory into buffer blocks as configured in the Buffer Block 1 Maximum Memory Allowed for Auto 设置一个值 2 Maximum Percentage of Total Memory 设置一个占电脑内存百分百 3 上面的两个值取最小值,就是那些设置为Auto的transformation共用的内存 4 那些指定值的transformation不用上面的数字,是另外单独占用内存的 5 Informatica内存=DTM + transformation cache The DTM allocates buffer memory to the session at run time based on the DTM Buffer Size setting in the session properties. The DTM divides the memory into buffer blocks as configured in the Default Buffer Block Size setting in the session properties. The reader, transformation, and writer threads use buffer blocks to move data from sources to targets. The DTM buffer size specifies the amount of buffer memory that the Integration Service uses when the DTM processes a session. Size setting in the session properties. The reader, transformation, and writer threads use buffer blocks to move data from sources and to targets. The Integration Service calculates a minimum memory allocation for the buffer memory and buffer blocks,By default, the Integration Service allocates 64,000 bytes per block or the size of the largest row of any source or target in the mapping, whichever is larger. DTM buffer size 设置为Auto时用下面两个变量控制大小,取下面两个值的较小值 Maximum Memory Allowed for Auto Memory Attributes 512M电脑内存 如果电脑内存很大 The Integration Service allocates memory from the session cache to all transformations with cache memory set to auto. The maximum session cache size you set affects only transformations with cache mode set to auto The Integration Service allocates memory separately to transformations for which you configure a specific cache size Maximum Percentage of Total Memory Allowed for Auto Memory Attributes 5 5%电脑内存的5% 如果电脑内存很小 The Integration Service allocates memory from the session cache to all transformations with cache memory set to auto. DTM的内存会被所有auto的transformations caches共享 For example, you configure automatic caching for three Lookup transformations in a session The memory cache limit for the session does not apply to transformations that you did not configure for automatic caching. The Integration Service allocates memory from the session cache to all transformations with cache memory set to auto. DTM不控制那些没设置为auto的内存限制 Sort/join/agg这些如果没设置了auto的话不用DTM的设置 默认情况下只保存一个logfile,以后都是覆盖 Save session log by;按照日期时间/次数保存log Save session log for these runs:保存指定的几次log Session: Write Backward Compatible Session Log File Applying Attributes to All Instances in a session:
有关输入会话前和会话后 SQL 命令的准则 使用分号 (;) 分隔多个语句。 集成服务在每个语句后发出一个提交命令。 Config object: 当您创建会话时,Workflow Manager 会将默认的配置对象设置应用到会话的“配置对象”选项卡。 您也可以选择配置对象以用于会话。 当您编辑会话配置对象时,每个使用该会话配置对象的会话将继承所做的更改。 collect performance details: monitor: Get run properties-> Performance 或者在log目录中session_name.perf Session/taskSession: Run the logic of a mapping Command: Run external commands ?????? 一般不管脚本是否执行成功,command结果都是成功的,exit 1 ?????? Fail task if any command fails Email: Send an email to a defined recipient Decision: Choose between paths in a Workflow Assignment: Assign values to variables Timer: Wait or pause for specified time Control: Terminate or fail a Workflow Event Wait: Wait for an event Event Raise: Cause an Event Wait task to trigger Workflow Scheduler pmcmd startworkflow -sv MyIntService -d MyDomain -u seller3 -p jackson -f SalesEast wf_SalesAvg 参数文件为工作流内的会话定义工作流参数文件和会话参数文件时,集成服务将使用工作流参数文件并忽略会话参数文件。要使用变量定义会话参数文件名称,必须定义会话参数文件名称并在工作流参数文件中将 $PMMergeSessParamFile 设置为 TRUE。 $PMMergeSessParamFile 属性会导致集成服务同时读取会话和工作流参数文件。 如果将变量用作会话参数文件名称,且在会话和工作流参数文件中定义相同的参数或变量,则集成服务会根据以下规则设置参数和变量值:
参数文件中可以定义不同类型的参数变量: 其中包括服务变量、服务进程变量、工作流和工作集变量、会话参数以及映射参数和变量。 参数和变量组的前面必须有一个标题,该标题用于标识要应用参数或变量的服务、服务进程、工作流、工作集或会话。 创建一个或更多参数文件。您将参数文件单独分配给工作流、工作集和会话。您可以为所有这些任务指定相同的参数文件,也可以创建几个参数文件 定义参数值时,请勿使用不必要的换行符或空格 不要在参数或变量两边加上引号 如下所示,将映射组件名称附加到在映射组件中创建的参数变量前面:mapplet_name.parameter_name=value 将pmcmd和多个参数文件用于带常规循环的会话 下面例子是调用 workflowA ,使用参数文件是 myfile.txt pmcmd startworkflow -uv USERNAME -pv PASSWORD -s SALES:6258 -f east -w wSalesAvg paramfile '\\$PMRootDir/myfile.txt' workflowA workflow 和 mapping 中定义的变量名称,如果在参数文件中赋值是一样的,确定两变量名称不要一样。否则 mapping 定义的变量将不被识别。 下面作用域里面没有mapping,由于mapping不是运行实例,所以没有,但是参数文件中可以给mapping中定义的变量参数赋值。 一个mapping可以被用来创建多个session,然后一个workflow包含多个session,这样就可以通过参数文件传递不同的参数值来获取不同的数据 [全局] ?所有集成服务、集成服务进程、工作流、工作集和会话。 [服务:服务名称] ?命名的集成服务和运行此服务的工作流、工作集和会话。 [Service:service name.ND:node name] ?命名的集成服务进程和运行此服务进程的工作流、工作集和会话。 [文件夹名称.WF:工作流名称] ?命名的工作流和工作流中的所有会话。 [文件夹名称.WF:工作流名称.WT:工作集名称] ?命名的工作集和工作集中的所有会话。 [文件夹名称.WF:工作流名称.WT:工作集名称.WT:工作集名称...] ?嵌套工作集和嵌套工作集中的所有会话。 [文件夹名称.WF:工作流名称.ST:会话名称] -或- [文件夹名称.WF:工作流名称.WT:工作集名称.ST:会话名称] -或- [文件夹名称.会话名称] -或- [会话名称] [HET_TGTS.WF:wf_TCOMMIT1] $$platform=windows ... [HET_TGTS.WF:wf_TCOMMIT1] $$platform=unix $DBConnection_ora=Ora2 在工作流 wf_TCOMMIT1 中,映射参数 $$platform 的值为“windows”而不是“unix”,且未定义会话参数 $DBConnection_ora。 如果你在参数文件中的多个部分中定义相同的参数或变量,最小范围的参数或变量的优先级高于更大范围的参数或变量。 例如,参数文件包含以下部分: [HET_TGTS.WF:wf_TGTS_ASC_ORDR] $DBConnection_ora=Ora2 [HET_TGTS.WF:wf_TGTS_ASC_ORDR.ST:s_TGTS_ASC_ORDR] $DBConnection_ora=Ora3 在会话 s_TGTS_ASC_ORDR 中,会话参数 $DBConnection_ora 的值为“Ora3”。 在工作流的所有其他部分中,它是"Ora2"。 使用字符串参数和变量 在会话期间,集成服务会将该参数替换为一个字符串。 如果 $$State 在参数文件中定义为 MD,则集成服务会按如下方式替换该参数: STATE = ‘MD’ 您可以在筛选器转换中使用 PowerCenter 转换语言执行类似的筛选器,如下所示: STATE = $$State 如果在筛选器转换中用单引号将该参数括起来,则集成服务会将其读取为字符串文字“$$State”,而不是将该参数替换为“MD”。 在参数文件中定义表达式字符串 参数文件中这样定义 $$ExpColor=IIF(color=‘A0587’,‘white’) 由于映射参数 $$ExpColor 的 IsExprVar 设置为 true,因此集成服务会在解析该表达式之前扩展参数。 颜色 ID 为“A0587”的行会返回字符串“white”。 如果 IsExprVar 设置为 false,则集成服务会在解析该表达式之后扩展参数。 因此,所有行都会返回字符串 “IIF(color=‘A0587’,‘white’)”。 颜色名称表达式更改时,可以更新参数文件中映射参数的值。 无需修改映射。 空值 可以向参数文件中的参数和变量分配空值。 向参数和变量分配空值时,集成服务会根据参数或变量类型获取以下位置的值: 服务和服务进程变量。集成服务将使用在 Administrator 工具中设置的值。 工作流和工作集变量。集成服务将使用保存在存储库中的值(如果变量具有持久性,右键wf名字->查看永久值)、用户定义的默认值或数据类型默认值。 会话参数。会话参数没有默认值。 如果集成服务找不到会话参数值,则会话可能会失败并将空字符串视为默认值,或无法在运行时展开该参数。 例如,如果集成服务执行会话时,该会话未定义会话参数 $DBConnectionName,则会话将失败。 映射参数和变量。集成服务将使用保存在存储库中的值(仅限映射变量,在Session中查看永久值)、配置的初始值或数据类型默认值。 创建参数文件时,请遵守以下规则和准则: 列出所有会话参数。会话参数没有默认值。 如果集成服务找不到会话参数值,则会话可能会失败并将空字符串视为默认值,或无法在运行时展开该参数。 会话参数名称不区分大小写。 列出所有必需的映射参数和变量。 映射参数和变量值会变为映射中的参数和变量的起始值。 映射参数和变量名称不区分大小写。 为非唯一会话名称输入文件夹名称。如果存储库中多次存在一个会话名称,请输入文件夹名称以指示会话的位置。 在 Mapplet 中的参数和变量前面附加 Mapplet 名称。使用以下格式: mapplet_name.parameter_name=value mapplet2_name.variable_name=value使用多个参数文件。可以单独向工作流、工作集和会话分配参数文件。 可以为上述所有任务指定相同的参数文件或创建多个参数文件。 定义参数值时,请勿使用不必要的换行或空格。集成服务会将其余空格解释为参数名称或值的一部分。 请为日期时间值使用正确的日期格式。将以下日期格式用于日期时间值:
只对变量可用,参数不可以用
Variable/Parameter
Parameters: Parameter file/session传入的值/Declared initial value/Default value(不能保存到资料库) 参数文件值可以从session中传递给mapping Workflow Variables: Parameter file/Repository saved value/Declared initial value/Default value mapping Variables: Parameter file/ session传入的值/Repository saved value/Declared initial value/Default value Mapping Parameter/ variable Mapping Parameters and Variables Apply to all transformations within a Mapping Parameters cannot be set within a Mapping, only by declaration. 如果是时间类型参数(先定义为字符),该参数在parameter中一定不要用单引号引了,否则要在sql语句中添加单引号 可以在参数文件中指定初始值 直接在 Source Filter 中使用的变量可以不用在Mapping中定义 提示:workflow 和 mapping 中定义的变量名称,如果在参数文件中赋值是一样的,确定两变量名称不要一样。否则 mapping 定义的变量将不被识别。 在Qualify的sql中或者在pres-SQL中用到的变量不是mapping的变量,而是session的变量 Mapping variable中变量值顺序
Mapplet Parameter/ variable A parameter or variable defined in a Mapplet is not visible in any parent mapping A parameter or variable defined in a Mapping is not visible in any child Mapplet Rules for parameters and variables defined on Mapplets and Mappings. Each is a separate scope. To use a Mapping parameter or variable in a Mapplet, pass it in as an input port. Mapplet 中的映射参数和变量值必须以参数文件中的 Mapplet 名称为前导,如下所示: mappletname.parameter=value mappletname.variable=value Session parameter 在组件中赋值 在Session的组件中可以传递mapping和Workflow之间的变量值 会话中的映射参数和变量 如果在会话中使用映射变量,则可以通过编辑会话清除存储库中保存的任何变量值。 清除变量值时,集成服务会在下次运行会话时使用参数文件中的值。 如果会话不使用参数文件,则集成服务会使用在会话前变量分配中分配的值。 如果不存在任何分配的值,集成服务会使用在映射中定义的初始值。 Worklet variable Worklet可以通过workflow的变量来传递他们之间的变量值 例如,您有一个具有持久性变量的工作集。 使用工作流中的两个工作集实例可以运行该工作集两次。 将工作集的第一个实例和第二个实例分别命名为 Worklet1 和 Worklet2。 运行工作流时,持久性工作集变量会保留 Worklet1 中的值,并在 Worklet2 中变为初始值。 集成服务运行 Worklet2 后,会将持久性变量的值保留在存储库中,并在下次运行工作流时使用该值。 无法使用工作集中的父工作流变量。 可以将工作流变量的值分配到工作集变量以进行初始化。 无法使用父工作流中用户定义的工作集变量。 可以与使用工作流中其他任务的预定义变量一样使用父工作流中预定义的工作集变量。 Workflow variable, does not have parameter Like Mapping variables, Workflow variables are valid for the scope of the Workflow and can be used to control execution. Variables can persist across sessions in a workflow The value is saved in the repository 可以在参数文件中指定初始值 可以持久保存到Repository 不要对用户定义的工作流变量使用单个美元符号 ($)。 单个美元符号专为预定义的工作流变量预留。 Session 上设置的参数就不能跨 Session 使用,而 Workflow 则可以跨 Session 使用,因为一个 Workflow 可能包含多个 Session。不过 Session 可以设置为可重用,各有各的好处,视具体场景而定。 Global Servicel Workflow Session Integration Service会以以下的优先级初始化变量,从高到低 1 value in parameter file 2 value saved in repository(if the variables is persistent) 3 user-specified default value 4 Datatype default value 那些变量会用到存储库中的值:(参数值不会保存到存储库中) 映射变量/工作流和工作集变量 System VariableSYSDATE Not a static value SESSSTARTTIME Returns the system date value ,Has a constant value,Not to be used in a SQL override $$$SessStartTime? :Format of the string is database type ,Used in SQL override SETVARIABLE($$Variable,value) --由于mapping变量只能设置为max或min,所以当设置mapping变量是max时, (例如Y/N):每次在exp里面修改该变量,会发现只能从N变为Y,不能从Y变为N,这时要在参数文件中添加初始化参数N来改变 添加变量V端口在I/O之后 SETCOUNTVARIABLE($$Variable)Increments a counter variable SETMAXVARIABLE($$Variable,value) SETMINVARIABLE($$Variable,value) SUCCEEDED/FAILED TO_CHAR(SYSDATE, 'YYYYMMDD') $s_m_LT_Merchant_Output.Status=SUCCEEDED ABORTED FAILED STOPPED SUCCEEDED StartTime Status Variable PortsSimplify complex expressions Improve efficiency Provide storage for temporary values Variable ports are not visible in Normal view, only in Edit view 假设数据是有顺序的,用V_lastvalue/v_currentvalue可以保持上一条指和当前值 V_lastvalu=v_currentvalue(v) v_currentvalue=group_id(v) Group_id (I/O) UpdateStagetyDD_INSERT/DD_UPDATE/DD_DELETE/DD_REJECT 使用Session中 treat source rows as
这3个选项互斥,只能选择一个 Update as update: 对于所有标记为update的进行update操作 Update as insert: 对于所有标记为update的进行insert操作 Update else insert:对于所有标记为update的数据,先做update,然后对没有update成功的数据,再执行insert 如何实现update else insert 第一种方式用session实现;
不选择delete/update as insert update as update 第二中方式 update/lookup组合实现
对于任何一个Mapping的每一条数据, 初始默认标志为Insert。即在整个过程中,如果没有任何更改标志位的操作,这条数据将作Insert操作 ? 使用Update Strategy修改更新标志: 当在Mapping中使用了Update Strategy时,则根据DD_UPDATE,? DD_INSERT, DD_DELETE等可以将更新标志位的值由Insert更改为Update,Insert,Delete等。 ? 在session的property tab里面Treat Source Rows As属性的设置:通过设置Treat Source Rows As 的值,可以再一次对标志位进行更新,也就是说无论Mapping里设置了何种更新标志,在此,又可以进行一次更改。如果选择了Insert,Update, Delete三种方式,则无论在Mapping中如何修改更新标志位,在此将统一全部更改为Insert,Update,Delete。选择Data Driven时,系统将不对标志位做任何修改,维持原来的标志位值。? 最后在session的target Properties: 它的最初默认设置:Insert, Update as Update, Delete三个选项被选中。表明当Session运行的时候,碰到Insert标志的,即做Insert操作, 碰到Update标志的即做Update操作,碰到Delete标志的就做Delete操作。 当然,对于update,有三个选项: Update as Update,Update as inser, update else insert需要特别说明, Update as Update:对于所有被标记为Update的数据,进行Update操作 ? Update as inser:对于所有被标记为Update的数据,全部进行Insert操作 ? Update else insert: 对于所有被标记为Update的数据, 先做Update操作,然后对没有Update成功的数据,再进行Insert操作; ? 需要注意的是,这三个选项是互斥的,只能选择其中一个。 UPDATE else INSERT 就是 ? ? ? 语句一: update tab_name set c1= value1 ,c2 = value2 where c_prikey = value_pri ? ? ? 语句二: insert into tab_name values(****) ? ? ? 当在 tab_name的c_prikey找到有等于value_pri的,就执行语句一把所有对应的记录update。 ? ? ? 当没有匹配的,就执行语句二。 ? ? ? 你可以powercenter的 source defination中的自己定义主键,也可以直接 override update sql,可以不用理会真实表结构中是否有主键 缓慢变化维Type1: 源表(ID,Name),目标表(ID,Source_ID,name)
Type3:
SQL TransformationNormalizer一行变多行, GK_ 1,2,3,4,5,6会一直增加 GCID,1,2,3看源重复几次,不停循环 ShortCutThe original object must be in a shortcut folder 解决数据源,目标或其他对象跨folder时的使用 从共享文件夹拖入到开发文件夹,会提示是否创建shortcut JoinMaster outer join - keeps all rows from Detail and matching rows from Master 最好小表作为master Master outer join结果集是Detail所有数据 JOIN之前可以加个Sort组件 DomainODBC驱动器Data Direct驱动还是数据库自带驱动 文本文件:字符集 UTF8 Add Currently Process Flat File Name Port-选择了会增加一列,该列包含文件名 InPut Type: ?????? Command:即shell命令 ls -al | tail 10, 读取10 个文件作为输入 ?????? File: 就是一个文件 将 CurrentlyProcessedFileName 端口添加到 Source Analyzer 中的平面文件源定义中。 输出文件 名可以:可以使用映射参数、映射变量、会话参数、工作流变量或工作集变量。 TargertTruncate targer table option:将truncate table如果选中 Target Load Type: normal Bulk 适合数据库表无索引,无主键,当Oracle表有索引或者主键,将引起数据库出错 文本文件:add filename Column to this table ,会自动增加一个新列fileName 文本文件:可以本地或远程,type:none/ftp ExpressionVariable Port:存储在transformation 中多次使用的复杂计算中间结果 Source QualifierSelect后面的字段与拖入到Expression中的字段(名字/顺序)一样,顺序也一样 SourceQualifier和filter区别: 一个是在数据库过滤,一个是在informatica中过滤 如果数据库有索引可以使用在数据库过滤,如果数据库过滤性能差就在informatica中过滤 Source:同一个表,如果拖入两次,则会对该表读两次 例如,要使用目录列表作为文件列表,可使用以下命令: cd $PMSourceFileDir; ls -1 sales-records-Sep-*-2005.dat该命令将根据源文件目录列表生成一个文件列表。 当会话运行时,平面文件读取器会在从命令读取文件名时读取每个文件。 要使用命令输出作为文件列表,选择“命令”作为“输入类型”,并选择“生成文件列表的命令”作为“命令类型”,然后为“命令”属性输入一个命令。 Stored Procedure:Connect Stored Procedure/unconnected Stored Procedure UnionInformatica 中的union 是Union ALL Sequence用Nextval 如果两个表共享可以用一个Exp 可重用sequence,当多个session操作同一个表时:
AggregatorSum(sal,sal>900): 仅对工资大于900元的员工工资进行汇总 使用Aggregator可以行列转换(多行变一行) 调度调动是以workflow为单位的 Partition
静态分区:Session中的Mapping->分区,选中源,然后分区类型选择数据库 如果有两个分区,目标为文件的话会有两个文件,可以选择merge No merge:不合并,生产多个文件 Sequential merge: 顺序合并 Concurrent merge:并行合并 File List:生产一个文件列表 动态分区 Session:Dynamic partition选中 Session中的Mapping->分区,选中源,然后分区类型选择数据库 Hash 分区: 内存管理缓冲区块大小应大于源或目标中最大数据行的精度。 通常,无需为缓冲区内存分配 1 GB 以上的内存量。 为 DTM 缓冲区大小输入值。 您可以指定“自动”或一个数字值。 如果会话所需的内存大于为 DTM 缓冲区大小设置的内存,则会话性能会降低且会话可能会失败。 默认单位为字节。 为值附加 KB、MB 或 GB 可指定其他单位。 例如,1048576 或 1024KB 或 1MB。 集成服务会将会话缓存中的内存分配到高速缓存设置为自动的所有转换中。 它在所有转换缓存之间划分内存。会话的内存缓存限制不适用于未配置为自动缓存的转换。 DTM Data Transformation Manager内存(read/write/transformation/session log) 默认值是12M(128M/64M/32m) Transformation cache 一个session内存使用总量是“DTM内存+ Transformation cache Transformation cache(joiner/lookup/agg/sort) DTM内存调高:
Transformation cache Data cache size: (number of maser rows)*(8+row size) 只有当读取一条数据分割放到两个DTM block中才需要调节,一般来说一个block包含数据在10条时,性能不好,一般要大于100条。 当设置为auto时,在一个session中所有的auto自动被两个参数限制 Maximum Memory Allowed For Auto Memory Attributes 512M Maximum Percentage of Total Memory Allowed For Auto Memory Attributes 5 最终会选择这两个中的最小值 打开workflow->task(最上面工具栏里)->会话配置->defatlt_session_config 可以修改所有的task 函数字符Concat || :字符串连接 ?Concat是先将要连接的转换为文本 Initcap: 字符串中每个单词第一个字母大写,其他字母小写 Instr : 从左至右算起返回字符集在字符串中的位置 Substr(string,start[,length]): 返回字符串的一部分 Length: 返回字符串中包含末尾空格在内的字符串长度 Lower/upper/ltrim/rtrim Lpad/rpad: 在字符串前/后添加空格或者字符 Replacechr(CaseFlag, InputString, OldCharSet, NewChar ): 用单个字符或者无字符替换字符串中的字符 如果 CaseFlag 为非零数字,则函数区分大小写。 如果 CaseFlag 为空值或零,则函数不区分大小写。 Replacestr(CaseFlag, InputString, OldString1, [OldString2, ...OldStringN,] NewString): 用单个字符,多个字符或者无字符替换字符串中的字符 转换函数TO_DECIMAL( value [, scale ] )/ TO/_FLOAT( value )/ TO_INTEGER( value ) TO_CHAR( numeric_value ) TO_CHAR( date [, format ] ) MM/DD/YYYY HH24:MI:SS TO_DATE( string [, format ] ) 始终返回日期和时间。如果您传递没有时间值的字符串,返回的日期将始终包含时间 00:00:00。 数据整理INSTR/ IS_DATE/ IS_NUMBER/ IS_SPACES/ ISNULL 日期函数TRUNC( date [, format ] ) SET_DATE_PART( date, format, value ) 将日期/时间值的一部分设置为指定值 ROUND( date [, format ] ) 舍入日期的一部分 MIN( date, filter_condition ) 返回组中找到的最早日期 MAX( date, filter_condition ) 返回组中找到的最后日期 LAST_DAY( date ) 返回端口中每个日期的月末日日期 GET_DATE_PART( date, format ) 根据默认日期格式 MM/DD/YYYY HH24:MI:SS 返回以整数值形式日期的指定部分 DATE_DIFF( date1, date2, format ) 返回两个日期间的时间长度,按指定的增量(年、月、日、小时、分钟或秒)度量 DATE_COMPARE( date1, date2 ) 返回表明两个较早日期的值 ADD_TO_DATE( date, format, amount ) 将指定数量添加到日期/时间值的一部分,并以指定日期的格式返回日期。 ADD_TO_DATE( SHIP_DATE, 'DD', 10 )将 特殊函数Docode DECODE( value, first_search, first_result [, second_search,second_result ]…[, default ] ) IIF IIF( condition, value2 [, value2 ] ) 当您使用 IIF 函数时,返回值的数据类型始终与结果的数据类型相同,并且采用最大的精度。 IIF( SALES < 100, 1, .3333 ) TRUE 结果 (1) 是整数型,而 FALSE 结果 (.3333) 是小数型。小数型数据类型的精度大于整数型,因此返回值的数据类型始终为小数型。 LOOKUP LOOKUP( result, search1, value1 [, search2, value2]… ) PMCMD启动工作流。 StartWorkflow 命令在命令行模式下使用以下语法: pmcmd StartWorkflow <<-service|-sv> service [<-domain|-d> domain] [<-timeout|-t> timeout]> <<-user|-u> username|<-uservar|-uv> userEnvVar> <<-password|-p> password|<-passwordvar|-pv> passwordEnvVar> [<<-usersecuritydomain|-usd> usersecuritydomain|<-usersecuritydomainvar|-usdv> userSecuritydomainEnvVar>] [<-folder|-f> folder] [<-startfrom> taskInstancePath] [<-recovery|-norecovery>] [<-paramfile> paramfile] [<-localparamfile|-lpf> localparamfile] [<-osprofile|-o> OSUser] [-wait|-nowait] [<-runinsname|-rin> runInsName] Workflow 在 UNIX 上,使用以下语法: -paramfile '$PMRootDir/myfile.txt' 在 Windows 上,使用以下语法: -paramfile "$PMRootDir\my file.txt" Workflow1 右键workflow可以查看Persistent值 2 tasks->session configuration可以设置默认的configuration,如果在同一个目录中复制session的话,这个默认的configuration也会复制,但是名字会自动加1 3 layout->Arrange可以调节session是水平排列还是垂直排列 4 可以在workflow中查找session,变量 5 Tools->options,可以设置,target load type/复制相关/版本控制/打开文件加是否reload tasks/session/是否默认显示session名字/执行workflow时是否打开monitor Workflow/worklet/session复制1 可以在不用目录中复制workflow/worklet/session(不会自动复制mapping/链接) 2 复制session时,如果目标中不存在mapping,则要先复制mapping到目标目录 3 复制如果会话已在存储库中保存了映射变量值,Workflow Manager 将复制或保留已保存的变量值。 4同以目录:可以复制部分session,复制-》粘贴 工作集变量。使用工作集变量引用值和记录信息。 工作集变量与工作流变量的用法相同。 您可以将工作流变量分配给工作集变量,以替代其初始值。 如果您不为每个链接指定条件,集成服务默认将运行工作流或工作集中的下一个任务。 在链接条件中,可以使用预定义或用户定义的工作流和工作集变量。 如果链接条件评估为 True,集成服务将运行工作流或工作集中的下一个任务。 如果链接条件评估为 False,集成服务则不会运行下一个任务。 Metadata ExtensionsRepository: Edit->Metadata Extensions Workflow/session:Edit->Metadata Extensions 您可以在表达式编辑器中使用 -- 或 // 注释指示符添加注释 Assigning an Integration Service1 Workflow: close all the folder-》service-》Assign Integration Service 2 open workflow-》workflows->edit-》Integration Service(点击后面按钮选择服务器)
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/20 7:10:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |