开发人员的生活技巧:在Informatica Power Center上有效使用SQ(源限定符)

尊敬的所有哈布罗居民!

我们为开发人员打开了RDTEX公司的第一个博客,其中包含生活技巧。 我们希望其中一位读者能够利用它们。

在将数据从一个系统传输到另一个系统,然后在俄罗斯联邦一家领先的银行之一中进行报告构建的项目中,发明了生命黑客。

使用的技术:

数据源系统-Oracle RDBMS(版本11.2.0.4.0)
数据接收器系统-RDBMS Oracle(版本11.2.0.4.0)
集成总线-Informatica(版本10.1.1)

在执行大型集成项目期间,我们遇到以下问题:

1. Informatica Power Center中SQ [Source Qualifier]的使用效率低下

在Informatica Power Center中使用SQ [Source Qualifier]时,显示了对输入字符数的限制。 允许的最大字符数为32767。下图显示了不合理使用Source Qualifier的示例:


图1 SQ Informatica Power Center的屏幕截图

此屏幕快照显示空格占用了字符空间,因此复杂的SQL查询无法完全满足要求(即,将它们插入Source Qualifier时会被截断)。

下图显示了Source Qualifier的正确用法(更改以红色突出显示):


图2来自SQ Informatica Power Center的屏幕截图,带有修改后的查询

转到下一行,对齐费用为第N个字符,删除该字符后,我们就可以容纳所有SQL代码。

2.无限大数的错误转换

无限数量的文件以以下格式上传到Oracle数据库:

1267650600228230000000000000000

并且它们应该以以下格式加载:

1267650600228229401496703205376
即 值从某个数字位置开始四舍五入。

我们提供以下解决方案:

在Informatica Power Center中开发映射时,将在某个阶段立即设置字段格式(例如字符串),以确保这些值肯定会变大,而同时:

  • 如果使用十进制格式,并且值最多可以包含28个字符,则需要在Workflow Manager的工作流属性中启用“属性”→“启用高精度”→“是”。
  • 如果我们使用双精度格式,则在这种情况下,超过15个字符(例如20个字符)的值可以属于此属性,则该值将被截断为15个有效数字,其余部分为零(0)(即最后5个字符为零) ) 在这种情况下,最好放下字符串格式,然后将大小增加到所需的大小(例如string20)。

如果总结一下该工具的使用,则可以区分以下优点

  1. 该工具可方便地传输以TB为单位计算的大量数据(例如,高达25-30 tb),尤其是在您需要以最少的转换次数(几乎一对一)传输数据时;
  2. 自动“拉动”属性(“传播属性”选项),以及在映射内“突出显示”(从何处和何处提取数据)的可能性;
  3. 选择ETL工具和ELT工具的操作模式的能力(取决于特定的IT项目)。

对于图片的客观性要注意几点:

  1. 缺乏“复杂”的数据转换逻辑;
  2. 从工具本身的支持和对单个转换逻辑的理解的角度来看,它不如某些竞争对手(例如Oracle Data Integrator)。

Source: https://habr.com/ru/post/zh-CN433880/


All Articles