<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4154744971482435414</id><updated>2026-06-02T01:13:41.464+05:30</updated><category term="DataStage EE"/><category term="DataStage OverView"/><category term="FAQ&#39;s and Best Practices"/><title type='text'>IBM InfoSphere DataStage</title><subtitle type='html'>This blog aims at providing free Tutorials, Interview Questions, Best Practices, FAQ&#39;s, PDF Downloads, Guides and other study materials for IBM InfoSphere DataStage.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-3966987293818562777</id><published>2017-12-21T20:34:00.002+05:30</published><updated>2017-12-21T20:34:28.430+05:30</updated><title type='text'>New features and changes in InfoSphere Information Server Version 11.7</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;ibm-domino-rtf&quot;&gt;&lt;p&gt;&lt;b&gt;Latest information:&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;#supported_import_bridges&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#GOVUP&quot;&gt;Governance updates&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#supported_import_bridges&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#QUALITYUP&quot;&gt;Data Quality updates&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#supported_import_bridges&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#INTEGRUP&quot;&gt;Integration updates&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#supported_import_bridges&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#MGMNTUP&quot;&gt;Administration and management updates&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#supported_import_bridges&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#DEPRECATED&quot;&gt;Deprecated features&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;div id=&quot;GOVUP&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;&lt;b&gt;Governance updates&lt;/b&gt;&lt;/h2&gt;&lt;/div&gt;&lt;a href=&quot;#IGC-UG&quot;&gt;Information Governance Catalog New&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#IGC&quot;&gt;InfoSphere Information Governance Catalog&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#EntSea&quot;&gt;Information Server Enterprise Search&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#ISGM&quot;&gt;Information Server Governance Monitor&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;IGC-UG&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;Information Governance Catalog New&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;New in 11.7&lt;/b&gt; &lt;br /&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;This version of Information Governance Catalog has a new user interface which improves user experience. &lt;/li&gt;
&lt;li&gt;You can search for assets in your entire enterprise by using enhanced search that takes into account factors like text match, related assets, ratings and comments, modification date, quality score, and usage. &lt;/li&gt;
&lt;li&gt;You can browse the assets in your catalog and narrow down the results by using filters. &lt;/li&gt;
&lt;li&gt;You can use producers, which are applications that collect relevant data on systems like Db2®, Hive, Hadoop Distributed File System (HDFS), Oracle, or Teradata, to improve the quality of search results. &lt;/li&gt;
&lt;li&gt;You can use unstructured data sources to enrich your data with information that has no clear structure - emails, instant messages, word-processing documents, or audio or video files. &lt;/li&gt;
&lt;li&gt;You can view a graphical depiction of relationships between assets in the graph explorer. &lt;/li&gt;
&lt;li&gt;You can add comments and ratings to assets. &lt;/li&gt;
&lt;li&gt;On the home page, you can display the most important information such as assets with highest rates, your collections, or information assets statistics. &lt;/li&gt;
&lt;li&gt;Administrators can create custom profiles to display customized details page of assets.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;EntSea&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;Information Server Enterprise Search&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;New in 11.7&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Information Server Enterprise Search is a stand-alone application which enables you to explore data in your enterprise. &lt;/li&gt;
&lt;li&gt;You can search for assets in your entire enterprise by using enhanced search that takes into account factors like text match, related assets, ratings and comments, modification date, quality score, and usage. &lt;/li&gt;
&lt;li&gt;You can use producers, which are applications that collect relevant data on systems like Db2®, Hive, Hadoop Distributed File System (HDFS), Oracle, or Teradata, to improve the quality of search results. &lt;/li&gt;
&lt;li&gt;When you view basic information about an asset in the search results, you can open the details page in the application of origin such as Information Governance Catalog. &lt;/li&gt;
&lt;li&gt;You can view a graphical depiction of relationships between assets in the graph explorer. &lt;/li&gt;
&lt;li&gt;You can add comments and ratings to assets.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;IGC&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;InfoSphere Information Governance Catalog&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;New in 11.7&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;You can discover new asset family - unstructured data sources. These assets are synchronized from IBM Stored IQ, and represent data with no clear structure. New asset types are instances, volumes, infosets and filters. &lt;/li&gt;
&lt;li&gt;You can export your own asset types that you added to Information Governance Catalog by using REST API bundles. You can later reimport such assets and merge them with the existing ones. &lt;/li&gt;
&lt;li&gt;When using REST API, two new properties are displayed in the basic information about an asset: asset group and class name. &lt;/li&gt;
&lt;li&gt;When searching for assets by using REST API, you can specify context, such as the name of a host, to narrow down search results. &lt;/li&gt;
&lt;li&gt;When searching for assets by using REST API, you can use new parameter IncludeHistory to specify whether the asset history (if applicable) is included in the details of returned assets. &lt;/li&gt;
&lt;li&gt;You can create, edit and delete custom attributes by using REST API.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;ISGM&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;Information Server Governance Monitor&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;New in 11.7&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Information Server Governance Monitor is a tool where you can monitor the status and health of the data in your enterprise. &lt;/li&gt;
&lt;li&gt;On the Curation Dashboard, you can see whether the data in your enterprise is cataloged, classified and governed. &lt;/li&gt;
&lt;li&gt;On the Quality Dashboard, you can review the overall quality of the data in your enterprise, including scoring and quality dimensions.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;QUALITYUP&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;Data Quality updates&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;#supported_import_bridges&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#IA&quot;&gt;InfoSphere Information Analyzer&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;IA&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;InfoSphere Information Analyzer&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;New in 11.7&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;You can create and run automation rules to automate the process of applying and running rule definitions and quality dimensions. &lt;/li&gt;
&lt;li&gt;Terms can be automatically assigned to data sets and columns when you use automated discovery to import data or when you run a column analysis. &lt;/li&gt;
&lt;li&gt;You can run automated discovery to import and analyze new data sets from a data connection. With one click you can register data sets and add metadata from the data connection to a default workspace, run column and quality analysis, and assign business terms to imported assets. &lt;/li&gt;
&lt;li&gt;You can create new data quality dimensions in order to detect if a row, column, or cell contains a particular data quality problem. &lt;/li&gt;
&lt;li&gt;When you run column analysis, a single frequency distribution table can be generated for each project rather than each column in the analysis. &lt;/li&gt;
&lt;li&gt;You can use different credentials for running analysis jobs than the ones you use to import data by using by using InfoSphere Metadata Asset Manager. You can set the credentials for a specific project. &lt;/li&gt;
&lt;li&gt;When you run quality and column analysis, you can update settings for a specific analysis. For example, you can run the analysis with a data sample, specify how you want analysis statistics generated and stored, or apply advanced engine settings. &lt;/li&gt;
&lt;li&gt;You can run stored procedures for SQL Server and Oracle to get the analysis results from Information Analysis Database. &lt;/li&gt;
&lt;li&gt;You can export the results of the overlap analysis. &lt;/li&gt;
&lt;li&gt;New data class type &#39;Script&#39; is introduced. By using this script classifier, you can classify your data by creating a custom script snippet. &lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;INTEGRUP&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;Integration updates&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;#supported_import_bridges&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#DSFD&quot;&gt;DataStage Flow Designer&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#DS&quot;&gt;InfoSphere DataStage&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#CONN&quot;&gt;Connectivity&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#IISHD&quot;&gt;InfoSphere Information Server on Hadoop&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;DSFD&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;DataStage Flow Designer&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;New in 11.7&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;You can use DataStage Flow Designer, a web-based tool, to create, edit, load, and run DataStage jobs. &lt;/li&gt;
&lt;li&gt;You can search for jobs by using built-in search. &lt;/li&gt;
&lt;li&gt;Metadata is automatically propagated to subsequent stages in a flow. &lt;/li&gt;
&lt;li&gt;When compilation errors occur, all of them are highlighted and a hover over each stage provides details, which makes it easier to correct the errors. &lt;/li&gt;
&lt;li&gt;If you are new to the product, you can take a quick tour to learn how to use its features. &lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;DS&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;InfoSphere DataStage&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;New in 11.7&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;By using DataStage Product Insights, you can connect your InfoSphere DataStage installation to IBM Cloud Product Insights. Such connection gives you ability to review your installation details and metrics like CPU usage, memory usage, active jobs, jobs that failed, and jobs that completed. &lt;/li&gt;
&lt;li&gt;Data Masking stage supports Optim Data Privacy Providers version 11.3.0.5.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;CONN&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;Connectivity&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;New in 11.7&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;HBase connector is supported. You can use HBase connector to connect to tables stored in the HBase database and perform the following operations: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Read data from or write data to HBase database. &lt;/li&gt;
&lt;li&gt;Read data in parallel mode. &lt;/li&gt;
&lt;li&gt;Use HBase table as a lookup table in sparse or normal mode. &lt;/li&gt;
&lt;li&gt;Kerberos keytab locality is supported.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Hive connector supports the following features: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Modulus partition mode and minimum maximum partition mode during the read operation are supported. &lt;/li&gt;
&lt;li&gt;Kerberos keytab locality is supported. &lt;/li&gt;
&lt;li&gt;Connector supports connection to Hive on Amazon EMR.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Kafka connector supports the following features: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Continuous mode, where incoming topic messages are consumed without stopping the connector. &lt;/li&gt;
&lt;li&gt;Transactions, where a number of Kafka messages is fetched within a single transaction. After record count is reached, an end of wave marker is sent to the output link. &lt;/li&gt;
&lt;li&gt;TLS connection to Kafka. &lt;/li&gt;
&lt;li&gt;Kerberos keytab locality is supported.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;IBM MQ version 9 is supported. &lt;/li&gt;
&lt;li&gt;IBM InfoSphere Data Replication CDC Replication version 11.3 is supported. &lt;/li&gt;
&lt;li&gt;SQL Server Operator supports SQL Server Native Client 11. &lt;/li&gt;
&lt;li&gt;Sybase Operator supports unichar and univarchar datatypes in Sybase Adaptive Server Enterprise. &lt;/li&gt;
&lt;li&gt;Amazon S3 connector supports connecting by using a HTTP proxy server. &lt;/li&gt;
&lt;li&gt;File connector supports the following features: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Native HDFS FileSystem mode is supported. &lt;/li&gt;
&lt;li&gt;You can import metadata from the ORC files. &lt;/li&gt;
&lt;li&gt;New data types are supported for reading and writing the Parquet formatted files: Date / Time and Timestamp.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;JDBC connector is certified to connect to MongoDB and Amazon Redshift. &lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;IISHD&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;InfoSphere Information Server on Hadoop&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;New in 11.7&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The following Hadoop distributions are supported: MapR 5.2.2, Cloudera CDH 5.13, and Hortonworks HDP 2.6.2. &lt;/li&gt;
&lt;li&gt;Parallel engine configuration files on YARN can include nodes which are not part of Hadoop cluster, so Hadoop jobs can access relational databases outside the cluster. &lt;/li&gt;
&lt;li&gt;Parallel jobs on YARN can use Hadoop Shuffle space for scratch files. &lt;/li&gt;
&lt;li&gt;Parallel jobs give clearer messages when they are preempted by the YARN resource manager. &lt;/li&gt;
&lt;li&gt;Ambari scripts have been enhanced to improve administration.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;MGMNTUP&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;Administration and management updates&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;#supported_import_bridges&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;#META&quot;&gt;Managing metadata&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;META&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;Managing metadata &lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;New in 11.7&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;You can run automated discovery by using command line to discover the database schema available for a given database or the files and folders for a given file system. &lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;
&lt;div id=&quot;DEPRECATED&quot;&gt;&lt;h2 class=&quot; ibm-h4 ibm-bold&quot;&gt;Deprecated features&lt;/h2&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Features deprecated in 11.7&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Using InfoSphere Data Click to move data in IBM InfoSphere BigInsights is no longer supported. In previous releases, InfoSphere Data Click was used to copy selected database tables, data files, data file folders, and Amazon S3 buckets from the catalog to a target distributed file system, such as a Hadoop Distributed File System (HDFS) in IBM InfoSphere BigInsights. &lt;/li&gt;
&lt;li&gt;The following asset types are deprecated in Information Governance Catalog: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Machine Profiles &lt;/li&gt;
&lt;li&gt;Blueprint Director &lt;/li&gt;
&lt;li&gt;CDC Mapping Document &lt;/li&gt;
&lt;li&gt;Warehouse Mapping Document &lt;/li&gt;
&lt;li&gt;Information Server Reports &lt;/li&gt;
&lt;li&gt;External Assets&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Data policy asset type is deprecated in Information Analyzer.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/3966987293818562777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2017/12/new-features-and-changes-in-infosphere_21.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/3966987293818562777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/3966987293818562777'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2017/12/new-features-and-changes-in-infosphere_21.html' title='New features and changes in InfoSphere Information Server Version 11.7'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-6339456154571151806</id><published>2014-08-30T23:49:00.000+05:30</published><updated>2015-10-16T23:50:45.003+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>How do I make the Oracle EE Stage Read Operator Run in Parallel?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;
By default the oraread operator is set to run in sequential mode. To enable parallel mode on oraread , you have to add the partition table property. This is set in the Source properties section. Then you specify the table name of this property. If more than one table is being used in the select statement, then specify only one of the tables used.&lt;br /&gt;
&lt;br /&gt;
You can then specify a Partitioning Algorithm to use when partitioning the table across nodes.&lt;br /&gt;
&lt;br /&gt;
It is recommend that you add the environment APT_ORAREAD_PARALLEL_ALGORITHM to the job and set its value to ROWID_HASH&lt;br /&gt;
&lt;br /&gt;
APT_ORAREAD_PARALLEL_ALGORITHM &lt;br /&gt;
&lt;br /&gt;
This environment variable is used to determine which partitioning algorithm to use during Oracle Enterprise parallel read operations. The algorithm defines how the stage divides the input dataset into subsets so that each parallel instance of the stage reads one subset of the data. The environment variable can be set to one of the following values: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ROUND_ROBIN - The operator divides the rows from the input dataset in a round-robin fashion using modulus function applied on the row identifier (ROWID) values of the rows within the storage blocks in which they reside &lt;br /&gt;
&lt;br /&gt;
ROWID_HASH - The operator divides the rows from the input dataset in an approximately random fashion using modulus function applied on the hash codes calculated from the rowid values of the rows (recommended)&lt;br /&gt;
&lt;br /&gt;
ROWID_RANGE - The operator divides the rows from the input dataset by taking into account the physical collocation of rows in the table segment and splitting the overall range of rowid values into sub-ranges. This is the default option and is a preferred option for use.&lt;br /&gt;
&lt;br /&gt;
If the environment variable is not defined or is set to a value other than the values listed above, the ROWID_RANGE value is used by default. &lt;br /&gt;
&lt;br /&gt;
If the ROWID_RANGE option is selected (either explicitly or implicitly) and the Oracle user does not have access to DBA_EXTENTS dictionary view, or the target table is an index-organized table (IOT) or a view, then the stage cannot use ROWID_RANGE algorithm and it automatically switches at runtime to using ROWID_HASH partitioning algorithm instead.&lt;br /&gt;
&lt;br /&gt;
Article Source: IBM Support Guide&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/6339456154571151806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2014/08/how-do-i-make-oracle-ee-stage-read.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6339456154571151806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6339456154571151806'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2014/08/how-do-i-make-oracle-ee-stage-read.html' title='How do I make the Oracle EE Stage Read Operator Run in Parallel?'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-6003120812167098394</id><published>2014-05-10T02:46:00.000+05:30</published><updated>2015-10-05T03:01:29.636+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>DataStage Scenario on Finding Unique Distance from Source and Destination</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Source,Destination,Distance&lt;br /&gt;
hyd,bang,1000&lt;br /&gt;
delhi,chennai,1500&lt;br /&gt;
chennai,bang,600&lt;br /&gt;
bang,hyd,1000&lt;br /&gt;
bombay,pune,1000&lt;br /&gt;
bang,chennai,600&lt;br /&gt;
&lt;br /&gt;
**Sorted on Distance**&lt;br /&gt;
&lt;br /&gt;
Source,Destination,Distance&lt;br /&gt;
bang,chennai,600&lt;br /&gt;
chennai,bang,600&lt;br /&gt;
bang,hyd,1000&lt;br /&gt;
bombay,pune,1000&lt;br /&gt;
hyd,bang,1000&lt;br /&gt;
delhi,chennai,1500&lt;br /&gt;
&lt;br /&gt;
**Stg Variables**&lt;br /&gt;
PrevActualStr: ActualStr&lt;br /&gt;
ActualStr: inp.Src:inp.Dest&lt;br /&gt;
RevStr: inp.Dest:inp.Src&lt;br /&gt;
isDup: if PrevActualStr = RevStr then 1 else 0&lt;br /&gt;
&lt;br /&gt;
**Constraint**&lt;br /&gt;
isDup = 0 [Constraint]&lt;br /&gt;
&lt;br /&gt;
The below steps will explain you, How the records will be processed to o/p based on the above criteria.&lt;br /&gt;
&lt;br /&gt;
Rec-1: &lt;br /&gt;
&lt;br /&gt;
PrevActualStr: Garbage value&lt;br /&gt;
ActualStr: bangchennai&lt;br /&gt;
RevStr: chennaibang&lt;br /&gt;
isDup: 0 [if PrevActualStr = RevStr then 1 else 0]&lt;br /&gt;
&lt;br /&gt;
isDup = 0 [Rec will be processed to o/p as per our constraint isDup=0]&lt;br /&gt;
&lt;br /&gt;
O/P&lt;br /&gt;
Src Dest Distance&lt;br /&gt;
bang chennai 600&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Rec-2:&lt;br /&gt;
&lt;br /&gt;
PrevActualStr: bangchennai&lt;br /&gt;
ActualStr: chennaibang&lt;br /&gt;
RevStr: bangchennai&lt;br /&gt;
isDup: 1 [if PrevActualStr = RevStr then 1 else 0]&lt;br /&gt;
&lt;br /&gt;
isDup = 1 [Rec willn&#39;t be processed to o/p as our constraint isDup=0]&lt;br /&gt;
&lt;br /&gt;
O/P&lt;br /&gt;
Src Dest Distance&lt;br /&gt;
bang chennai 600&lt;br /&gt;
&lt;br /&gt;
Rec-3&lt;br /&gt;
&lt;br /&gt;
PrevActualStr: chennaibang&lt;br /&gt;
ActualStr: banghyd&lt;br /&gt;
RevStr: hydbang&lt;br /&gt;
isDup: 0 [if PrevActualStr = RevStr then 1 else 0]&lt;br /&gt;
&lt;br /&gt;
isDup = 0&lt;br /&gt;
&lt;br /&gt;
O/P&lt;br /&gt;
Src Dest Distance&lt;br /&gt;
bang chennai 600&lt;br /&gt;
bang hyd 1000&lt;br /&gt;
---------------------&lt;br /&gt;
====================&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/6003120812167098394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2014/05/datastage-scenario-on-finding-unique.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6003120812167098394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6003120812167098394'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2014/05/datastage-scenario-on-finding-unique.html' title='DataStage Scenario on Finding Unique Distance from Source and Destination'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-8758114049341645784</id><published>2013-07-07T16:02:00.000+05:30</published><updated>2013-08-01T19:09:59.353+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="FAQ&#39;s and Best Practices"/><title type='text'>Performance Optimization technique to handle variable length data in Data Set</title><content type='html'>&lt;iframe src=&quot;https://docs.google.com/file/d/0B4u9a33HLcOBMzlFUFUtQ2tTOTQ/preview&quot; width=&quot;640&quot; height=&quot;480&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/8758114049341645784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2013/07/performance-optimization-technique-to.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/8758114049341645784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/8758114049341645784'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2013/07/performance-optimization-technique-to.html' title='Performance Optimization technique to handle variable length data in Data Set'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-1443251329606536832</id><published>2013-02-14T11:55:00.001+05:30</published><updated>2013-02-22T19:47:51.813+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>How to replace a string in DataStage</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;
I have seen several web sites which are explaining most of the things on &lt;b&gt;DataStage&lt;/b&gt;, but I have not seen easiest way to replace a string by using DataStage functionality without using Ereplace Function.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Field Name&lt;/b&gt;: SERVICE&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Requirement&lt;/b&gt;: If the service description contains the word &lt;b&gt;&quot;Functional&quot;&lt;/b&gt;, then replace the word with &lt;b&gt;&quot;Technical&quot;&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Source Service Desc&lt;/b&gt;: My Functional Service for you...!!!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Expected Target Service Desc&lt;/b&gt;: My Technical Service for you...!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logic to get the output as per the specified requirement;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If Index(UpCase(Ln_L40_Cust_Det.SERVICE),&#39;FUNCTIONAL&#39;,1) &amp;gt; 0 Then&lt;br /&gt;
&lt;br /&gt;
Left(Ln_L40_Cust_Det.SERVICE,Index(UpCase(Ln_L40_Cust_Det.SERVICE),&#39;Functional&#39;,1)-1):&#39;Technical&#39;:Right(Ln_L40_Cust_Det.SERVICE,Len(Ln_L40_Cust_Det.SERVICE)-Len(Left(Ln_L40_Cust_Det.SERVICE,Index(UpCase(Ln_L40_Cust_Det.SERVICE),&#39;Functional&#39;,1)-1):&#39;Functional&#39;))&lt;br /&gt;
&lt;br /&gt;
Else&lt;br /&gt;
Ln_L40_Cust_Det.SERVICE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Link Name&lt;/b&gt;:Ln_L40_Cust_Det&lt;br /&gt;
&lt;br /&gt;
Please let me know if you have any queries about the logic.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/1443251329606536832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2013/02/how-to-replace-string-in-datastage.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/1443251329606536832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/1443251329606536832'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2013/02/how-to-replace-string-in-datastage.html' title='How to replace a string in DataStage'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-2560166770975181107</id><published>2012-01-14T23:09:00.008+05:30</published><updated>2013-02-22T20:10:44.694+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>New features and changes for IBM InfoSphere Information Server, Version 8.7</title><content type='html'>&lt;a shape=&quot;rect&quot; name=&quot;top&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;p class=shortdesc&gt;New features and changes were introduced for &lt;span class=ph&gt;IBM® InfoSphere® Information Server&lt;/SPAN&gt;, Version 8.7 along with documentation updates. The new and changed features and documentation updates are described in the following sections.&lt;/P&gt;&lt;div class=section&gt;&lt;h2 class=&quot;title sectiontitle&quot;&gt;Table of contents&lt;/H2&gt;&lt;div class=p&gt;&lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;, Version 8.7, new features and changes: &lt;ul class=ul&gt;&lt;li class=li&gt;Common capabilities across the &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt; suite &lt;ul class=&quot;sl simple&quot;&gt;&lt;li class=sli&gt;&lt;a class=xref href=&quot;#whats_new_87__admin&quot;&gt;Administering&lt;/A&gt;&lt;/LI&gt;
&lt;li class=sli&gt;&lt;a class=xref href=&quot;#whats_new_87__connect&quot;&gt;Connecting to external sources&lt;/A&gt;&lt;/LI&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;
&lt;li class=sli&gt;&lt;a class=xref href=&quot;#whats_new_87__bd&quot;&gt;InfoSphere Blueprint Director&lt;/A&gt;&lt;/LI&gt;
&lt;li class=sli&gt;&lt;a class=xref href=&quot;#whats_new_87__imam&quot;&gt;InfoSphere Metadata Asset Manager&lt;/A&gt;&lt;/LI&gt;
&lt;li class=sli&gt;&lt;a class=xref href=&quot;#whats_new_87__secure&quot;&gt;Managing security&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;
&lt;li class=li&gt;&lt;a class=xref href=&quot;#whats_new_87__bg&quot;&gt;InfoSphere Business Glossary&lt;/A&gt;&lt;/LI&gt;
&lt;li class=li&gt;&lt;a class=xref href=&quot;#whats_new_87__des&quot;&gt;InfoSphere DataStage&lt;/A&gt;&lt;/LI&gt;
&lt;li class=li&gt;&lt;a class=xref href=&quot;#whats_new_87__ia&quot;&gt;InfoSphere Information Analyzer&lt;/A&gt;&lt;/LI&gt;
&lt;li class=li&gt;&lt;a class=xref href=&quot;#whats_new_87__mw&quot;&gt;InfoSphere Metadata Workbench&lt;/A&gt;&lt;/LI&gt;
&lt;li class=li&gt;&lt;a class=xref href=&quot;#whats_new_87__qs&quot;&gt;InfoSphere QualityStage&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/DIV&gt;&lt;div class=p&gt;Documentation changes included in the Version 8.7 release: &lt;ul class=ul&gt;&lt;li class=li&gt;&lt;a class=xref href=&quot;#whats_new_87__doc&quot;&gt;Documentation introduced with Version 8.7&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div id=whats_new_87__admin class=section&gt; &lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__connect&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;Administering&lt;/H2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Maintenance mode&lt;/DT&gt; &lt;dd class=dd&gt;Using a new command-line tool, the suite administrator can place &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt; into maintenance mode. While in maintenance mode, only users with the suite administrator role can log in. This feature simplifies the way that administrators can quiesce the system when they require exclusive access. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.found.admin.common.doc/topics/r_wsamin_maintmode.html&quot;&gt;Maintenance mode&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Command-line administration of user and roles&lt;/DT&gt; &lt;dd class=dd&gt;Administrators in some organizations standardize the way that they establish the &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt; environment for new projects. In order to support that process from beginning to end, the command-line interfaces are expanded to allow the assignment of users and roles for &lt;span class=ph&gt;InfoSphere DataStage® and QualityStage™&lt;/SPAN&gt; projects. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.iisinfsv.assetint.nav.doc/containers/istool_container_topic.html&quot;&gt;Managing assets by using the command line&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;IPv6 Support&lt;/DT&gt; &lt;dd class=dd&gt;For organizations that need to migrate their networks to the newer, expanded set of Internet Protocol addresses. &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;, Version 8.7 is fully compatible with IPv6 addresses. Also, it supports dual-stack protocol implementations that are mixed between IPv4 and IPv6. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_pln_networks.html&quot;&gt;Configuring your network&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;New backup and restore functionality&lt;/DT&gt; &lt;dd class=dd&gt;To prevent the loss of data and to prepare for disaster recovery, organizations need robust backup strategies. &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;, Version 8.7 introduces a new administration tool called isrecovery, which provides capabilities to backup and restore the databases, profiles, and directories that are associated with &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;. The isrecovery tool supports all three server tiers: the services tier, the engine tier, and the metadata repository tier. When you run a backup or recovery, all tiers that are installed on the computer are backed up simultaneously.&lt;/DD&gt;&lt;/DL&gt;&lt;/DIV&gt;&lt;div id=whats_new_87__connect class=section&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__bd&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;Connecting to external sources&lt;/H2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__admin&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt; &lt;p class=p&gt;Connectivity in &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;, Version 8.7 includes the following new features and changes.&lt;/P&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Netezza® connector&lt;/DT&gt; &lt;dd class=dd&gt;Provides native connectivity to the Netezza appliance, and offers improved and consolidated support for greater performance and functionality. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.conn.container.nav.doc/topics/cont_nzza.html&quot;&gt;Netezza Performance Server®&lt;/A&gt;. The Netezza connector includes the following features. &lt;ul class=ul&gt;&lt;li class=li&gt;Uses the massively parallel, highly scalable, and dynamically configurable framework of &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; to access each SPU in the Netezza appliance for optimum performance. For example, the connector supports performance loading by using the external table load method, which can be on the same database or on an external database.&lt;/LI&gt;
&lt;li class=li&gt;Supports the update then insert operation to speed up writing to disk.&lt;/LI&gt;
&lt;li class=li&gt;Creates tables by using random or user-defined distribution keys.&lt;/LI&gt;
&lt;li class=li&gt;Row-selected SQL operation, which dynamically chooses the SQL operation at run time based on the actual data.&lt;/LI&gt;
&lt;li class=li&gt;Supports two-level and three-level reference object naming.&lt;/LI&gt;
&lt;li class=li&gt;Uses various write modes, table actions, and transaction modes.&lt;/LI&gt;
&lt;li class=li&gt;Uses user-defined SQL. You can use a user-defined UDX in the SQL statement by loading from a flat file or you can use SQL that is pre-defined.&lt;/LI&gt;
&lt;li class=li&gt;Uses properties for before and after SQL statements that can run across all the runtime nodes, or just one node. Various post actions are available if the statement fails.&lt;/LI&gt;
&lt;li class=li&gt;Outstanding out of box performance rates for loading and unloading data. Lab performance tests measured rates comparable to Netezza command-line bulk load utilities.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Big Data and Hadoop support&lt;/DT&gt; &lt;dd class=dd&gt;Organizations are increasingly adopting Big Data tooling to address the most challenging data volumes in their business. &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;, Version 8.7 adds the new Big Data File stage so that these organizations can make the most of this data through the user-friendly InfoSphere DataStage development paradigm. With support for the Hadoop Distributed File System (HDFS), users can access the data directly on this distributed file system. The Big Data File stage mirrors the Sequential File stage experience so that users will find it intuitive to get started. In that way, the Big Data File stage provides reading from multiple files in parallel (either listed specifically or through file patterns) to simplify how data is merged into a common transformation process. Additionally, the &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; parallel engine can mimic the same degree of partitioning as the Big Data file, or the engine can dynamically repartition that data &quot;on the fly&quot; based on different business requirements. These features offer both flexibility and optimization as organizations address their Big Data challenges.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Other new connectivity features&lt;/DT&gt; &lt;dd class=dd&gt;
&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;DRS connector&lt;/DT&gt; &lt;dd class=dd&gt;Allows the database type to be dynamically chosen at run time, which enables jobs to be reused in various deployment scenarios. Supports this flexible connectivity between Oracle, IBM DB2®, and ODBC.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;CDC Transaction stage&lt;/DT&gt; &lt;dd class=dd&gt;Allows information that is captured from log-based sources by using &lt;span class=ph&gt;InfoSphere Change Data Capture&lt;/SPAN&gt; (&lt;span class=ph&gt;InfoSphere CDC&lt;/SPAN&gt;) to be delivered in near real-time to &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt;. By using our unique bookmarking technology, this solution architecture provides guaranteed data delivery and transaction integrity through a complex set of data transformation and cleansing tasks to one or more targets.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Teradata Connector TMSM and Dual Load support&lt;/DT&gt; &lt;dd class=dd&gt;Provides native support to the Teradata Multi-System Manager (TMSM) and Dual Load capability.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Enhanced SQL logging for connectors&lt;/DT&gt; &lt;dd class=dd&gt;Increased coverage in connectors for writing executed SQL statements to the job log, which provides better support for exception research.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;DB2 connector performance enhancement&lt;/DT&gt; &lt;dd class=dd&gt;Improved DB2 connector performance when loading to IBM DB2.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Other new database connectivity enhancements include support for the following data sources&lt;/DT&gt; &lt;dd class=dd&gt; &lt;ul class=ul&gt;&lt;li class=li&gt;IBM DB2 for Linux, UNIX, and Microsoft Windows, Version 9.7 and 9.8 (pureScale®)&lt;/LI&gt;
&lt;li class=li&gt;IBM DB2 for z/OS®, Version 10&lt;/LI&gt;
&lt;li class=li&gt;IBM WebSphere® MQ, Version 7.0&lt;/LI&gt;
&lt;li class=li&gt;IBM Informix®, Version 11.7&lt;/LI&gt;
&lt;li class=li&gt;Teradata Database 13.10 and 14.0&lt;/LI&gt;
&lt;li class=li&gt;Oracle Database 11g Release2&lt;/LI&gt;
&lt;li class=li&gt;Sybase ASE, Version 15.5&lt;/LI&gt;
&lt;li class=li&gt;Sybase IQ, Version 15.2&lt;/LI&gt;
&lt;li class=li&gt;Netezza 4.6, 6&lt;/LI&gt;
&lt;li class=li&gt;DataDirect ODBC, Version 6.1&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;/DIV&gt;&lt;div id=whats_new_87__bd class=section&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__imam&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;InfoSphere Blueprint Director&lt;/H2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__connect&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt; &lt;p class=p&gt;InfoSphere Blueprint Director Version 8.7 includes the following new capabilities. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.bpdir.nav.doc/topics/cont_bpdir.html&quot;&gt;InfoSphere Blueprint Director&lt;/A&gt;.&lt;/P&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Milestone planning support&lt;/DT&gt; &lt;dd class=dd&gt;Most information projects are implemented and deployed in multiple iterations. For example, data warehousing and MDM projects have multiple milestones at which new data sources and new information consumers are added. Milestone planning support: &lt;ul class=ul&gt;&lt;li class=li&gt;Enables you to specify the milestone at which an element becomes effective or remains effective. For example, you could specify that a new data source and load process into the warehouse will be deployed at a milestone called 1Q12, the first quarter of the year. Another data source and corresponding load process could then be deployed at the start of the second quarter of the year, when the first data source and load process will be undeployed. In addition to specifying when a milestone element becomes effective, InfoSphere Blueprint Director gives you the ability to visualize the milestones so that the team can view the evolution of the information landscape in the blueprint definition.&lt;/LI&gt;
&lt;li class=li&gt;Enhances one of the key differentiators of InfoSphere Blueprint Director, which is the support of the entire life cycle. InfoSphere Blueprint Director can specify how the landscape evolves over time in multiple agile iterations.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Task management integration&lt;/DT&gt; &lt;dd class=dd&gt;In addition to providing method guidance for information projects, InfoSphere Blueprint Director enables you to select steps from the method guidance that can be tracked as tasks. The method documentation shows which roles are required, what their tasks are, in which sequence these tasks should be performed, and which artifacts will be delivered. Task management integration gives you the ability to: &lt;ul class=ul&gt;&lt;li class=li&gt;Assign tasks that are either derived from the method or created manually&lt;/LI&gt;
&lt;li class=li&gt;View assigned tasks for a person and allows that person to articulate that the task is complete&lt;/LI&gt;
&lt;li class=li&gt;Have a sample and basic dashboard of task completion for a project&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;/DIV&gt;&lt;div id=whats_new_87__imam class=section&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__secure&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;InfoSphere Metadata Asset Manager&lt;/H2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__bd&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt; &lt;p class=p&gt;The new &lt;span class=ph&gt;InfoSphere Metadata Asset Manager&lt;/SPAN&gt;, which is installed as a part of &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;, provides centralized import and management of common metadata, including database and data file assets, logical and physical data models, and business intelligence assets. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.mmi.doc/topics/ct_imam_top-level.html&quot;&gt;Importing and managing assets by using &lt;span class=ph&gt;IBM InfoSphere Metadata Asset Manager&lt;/SPAN&gt;&lt;/A&gt;.&lt;/P&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Logical data model and physical data model support&lt;/DT&gt; &lt;dd class=dd&gt;The suite tools and metadata repository of &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt; now support logical data models along with physical data models and their contents, including logical entities and attributes, and design tables and columns. On import, relationships between logical and physical data models and the schemas that implement them are set automatically, when it is possible to do so. You can use the Repository Management tab of &lt;span class=ph&gt;InfoSphere Metadata Asset Manager&lt;/SPAN&gt; to set additional implementation relationships. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.metadata.common.doc/topics/c_logical_data_model_assets.html&quot;&gt;Logical data model assets&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Import&lt;/DT&gt; &lt;dd class=dd&gt;&lt;span class=ph&gt;InfoSphere Metadata Asset Manager&lt;/SPAN&gt; centralizes the metadata import in Information Server into a web interface. You can import metadata to a staging area where you can inspect it before you share it with others. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.mmi.doc/topics/t_importing_and_sharing.html&quot;&gt;Importing and sharing assets&lt;/A&gt;.&lt;/DD&gt; &lt;dd class=dd&gt;This centralized import functionality has the following benefits: &lt;ul class=ul&gt;&lt;li class=li&gt;You can use both bridges and connectors for metadata imports.&lt;/LI&gt;
&lt;li class=li&gt;You can analyze and manually compare, reimport, and preview the effect the import will have on existing metadata assets before you share it.&lt;/LI&gt;
&lt;li class=li&gt;You have one-click access to &lt;span class=ph&gt;InfoSphere Metadata Workbench&lt;/SPAN&gt; (if installed) to view specific existing assets that might be affected by the import.&lt;/LI&gt;
&lt;li class=li&gt;You can maintain the metadata throughout its life cycle, keeping a record of the contents of all imports and reimports to the staging area and to the metadata repository.&lt;/LI&gt;
&lt;li class=li&gt;You can eliminate any problem assets, such as duplicates, before they are shared.&lt;/LI&gt;
&lt;li class=li&gt;You can run express imports that automate the analysis and preview, and automatically import directly without first staging the metadata.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt; &lt;dd class=dd&gt;In &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt; Version 8.7, &lt;span class=ph&gt;InfoSphere Metadata Asset Manager&lt;/SPAN&gt; is the preferred tool for importing metadata into &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Repository Management&lt;/DT&gt; &lt;dd class=dd&gt;The Repository Management tab was moved into &lt;span class=ph&gt;InfoSphere Metadata Asset Manager&lt;/SPAN&gt; from its former location in the web console. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.mmi.rm.doc/topics/c_managing_metadata.html&quot;&gt;Managing common metadata assets&lt;/A&gt;.&lt;/DD&gt; &lt;dd class=dd&gt;In addition to the ability to browse and search common metadata in the metadata repository, the Repository Management tab contains the following new functionality: &lt;ul class=ul&gt;&lt;li class=li&gt;Improved management of duplicate assets, including the ability to merge or delete duplicates.&lt;/LI&gt;
&lt;li class=li&gt;You can display and delete any assets that have been disconnected from their parent assets.&lt;/LI&gt;
&lt;li class=li&gt;You can set implementation relationships between logical data models, physical data models, and database schemas or data files. These relationships let you trace a column that is used by an &lt;span class=ph&gt;InfoSphere DataStage and QualityStage&lt;/SPAN&gt; job back to the design column and logical entity that originally defined the column.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;/DIV&gt;&lt;div id=whats_new_87__secure class=section&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__bg&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;Managing security&lt;/H2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__imam&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;
&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Strongly encrypted credential files for command-line utilities&lt;/DT&gt; &lt;dd class=dd&gt;Provide a unified means for handling and encrypting credential arguments for the command-line tools, such as istool and dsjob commands. This option provides encryption &quot;at rest&quot; for the login credentials. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.found.admin.common.doc/topics/encrypt_credfile.html&quot;&gt;The credentials file&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Strongly encrypted job parameter files for &lt;span class=&quot;keyword cmdname&quot;&gt;dsjob&lt;/SPAN&gt; command&lt;/DT&gt; &lt;dd class=dd&gt;Version 8.7 extends the existing encryption capability of &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt; by adding encryption to the dsjob command-line paramfile option, which specifies that a file contains strongly encrypted parameter values. This option provides encryption &quot;at rest&quot; for job parameters. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.ds.cliapi.ref.doc/topics/t_dsjob_encrypt.html&quot;&gt;Securing credentials and parameter values in dsjob commands&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Encryption algorithm customization&lt;/DT&gt; &lt;dd class=dd&gt;Although the AES-128 symmetric-key encryption algorithm provided by &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt; is compliant with many government and industry standards, administrators of some organizations might want to use their own standard encryption variant. For those customers, &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;, Version 8.7 provides the means to override the AES-128 algorithm. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.found.admin.common.doc/topics/encrypt_custom.html&quot;&gt;Adding a custom encryption provider&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Mixed LDAP and operating system support by using PAM&lt;/DT&gt; &lt;dd class=dd&gt;Version 8.7 leverages Pluggable Authentication Module (PAM) as a means to mix the existing authentication protocols of LDAP and the local operating system to support both individual and &quot;functional&quot; accounts simultaneously. Functional users can represent a role that can be shared by more than one person within an organization, or a role that can be assigned to a scripted process. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.found.admin.common.doc/topics/admsec_engine_security_with_shared_reg.html&quot;&gt;Shared user registry overview&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Automated audit trail for all DBMS access with InfoSphere Guardium®&lt;/DT&gt; &lt;dd class=dd&gt;This feature is provided to satisfy regulatory mandates that require an organization to know which people and processes are accessing sensitive or personally identifiable information (PII). Connectors for &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;, Version 8.7 can be configured to automatically register entries for an audit trail into InfoSphere Guardium, which provides a complete view of the origin of any data integration activity that affects the database.&lt;/DD&gt;&lt;/DL&gt;&lt;/DIV&gt;&lt;div id=whats_new_87__bg class=section&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__des&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;InfoSphere Business Glossary&lt;/H2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__secure&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt; &lt;p class=p&gt;&lt;span class=ph&gt;InfoSphere Business Glossary&lt;/SPAN&gt; Version 8.7 includes the following new capabilities. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.bg.nav.doc/containers/cont_iisinfsrv_bg.html&quot;&gt;&lt;span class=ph&gt;IBM InfoSphere Business Glossary&lt;/SPAN&gt;&lt;/A&gt;.&lt;/P&gt;&lt;ul class=ul&gt;&lt;li class=li&gt;Provides a new integrated user interface for authoring, administering, and viewing the glossary&lt;/LI&gt;
&lt;li class=li&gt;Supports a workflow process for collaborative glossary content development. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.bg.doc/topics/c_admin_intro.html&quot;&gt;Administering the glossary&lt;/A&gt;.&lt;/LI&gt;
&lt;li class=li&gt;Enables an &lt;span class=ph&gt;InfoSphere Business Glossary&lt;/SPAN&gt; administrator to assign permissions for authoring the glossary. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.bg.doc/topics/c_bg_ng_auth.html&quot;&gt;Authoring glossary content&lt;/A&gt;.&lt;/LI&gt;
&lt;li class=li&gt;Enables an &lt;span class=ph&gt;InfoSphere Business Glossary&lt;/SPAN&gt; administrator and author to assign labels to assets and terms. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.bg.doc/topics/c_con_labels.html&quot;&gt;Labels&lt;/A&gt;.&lt;/LI&gt;
&lt;li class=li&gt;Enables an &lt;span class=ph&gt;InfoSphere Business Glossary&lt;/SPAN&gt; administrator to export specific subcategories. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.bg.doc/topics/t_iadmgde_ManageImportExport.html&quot;&gt;Importing and exporting glossary content&lt;/A&gt;.&lt;/LI&gt;
&lt;li class=li&gt;Provides enhanced search and filtering capabilities&lt;/LI&gt;
&lt;li class=li&gt;Support for physical data models, logical data models, and implemented data resources&lt;/LI&gt;
&lt;li class=li&gt;Provides a utility that generates a glossary from a logical data model&lt;/LI&gt;
&lt;li class=li&gt;Enables an &lt;span class=ph&gt;InfoSphere Business Glossary&lt;/SPAN&gt; administrator to configure external asset types&lt;/LI&gt;
&lt;li class=li&gt;Enables client-driven multilingual support for user interface labels and for support for right-to-left languages. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.bg.doc/topics/t_configuringaspecificlocale.html&quot;&gt;Configuring a specific locale&lt;/A&gt;.&lt;/LI&gt;
&lt;li class=li&gt;Provides a new user role, Business Glossary Asset Assigner, that enables you to assign assets to terms from other &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt; tools. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.bg.doc/topics/c_iadmgde_Roles.html&quot;&gt;Security roles&lt;/A&gt;.&lt;/LI&gt;
&lt;li class=li&gt;Support for logical data models in &lt;span class=ph&gt;InfoSphere Business Glossary Client for Eclipse&lt;/SPAN&gt;: &lt;ul class=&quot;sl simple&quot;&gt;&lt;li class=sli&gt;Importing term assignments to a logical data model package.&lt;/LI&gt;
&lt;li class=sli&gt;Exporting term assignments from a logical data model package.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;
&lt;li class=li&gt;Supports integration with IBM InfoSphere Warehouse Design Studio and with IBM Optim™ Development Studio&lt;/LI&gt;&lt;/UL&gt;&lt;/DIV&gt;&lt;div id=whats_new_87__des class=section&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__ia&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;InfoSphere DataStage&lt;/H2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__bg&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt; &lt;p class=p&gt;&lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; contains the following new features.&lt;/P&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;The &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; Debugger&lt;/DT&gt; &lt;dd class=dd&gt;The following screen capture shows a job where a breakpoint is established to debug the job. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.ds.serverjob.dev.doc/topics/t_dsvjbref_The_WebSphere_DataStage_Debugger.html&quot;&gt;The IBM &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; Debugger&lt;/A&gt;. &lt;div class=&quot;fig fignone&quot;&gt;&lt;span class=figcap&gt;Figure 1. A job that shows the menu and window of the &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; Debugger&lt;/SPAN&gt; &lt;div class=image&gt;&lt;img class=image alt=&quot;The canvas of the Designer client that shows a job where a breakpoint is established by using the InfoSphere DataStage Debugger. The job shows the debugging menu where Toggle Breakpoint is selected. The properties window for the node that is selected is also shown.&quot; src=&quot;../images/debug.gif&quot;&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;ul class=ul&gt;&lt;li class=li&gt;&lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;, Version 8.7 extends existing debugging capabilities for parallel jobs through an interactive debugger in the Designer client. Through this capability, you can establish breakpoints on the data flow links of jobs in order to interrogate the values as they are being transformed at job run time by the various components.&lt;/LI&gt;
&lt;li class=li&gt;The debugging process is straightforward. Right-click any link to toggle the breakpoint on or off. Once a breakpoint is established, the default mode causes a debug run to pause at every row passing through that link. You can edit the breakpoint and change this default behavior so that the job pauses at a different frequency or upon a certain data condition, for example account_id = ‘12345’.&lt;/LI&gt;
&lt;li class=li&gt;When the debug run is paused at a break condition, you can view the individual nodes where any of the stages are running, the data on each of those nodes, and the number of rows that already passed through that link. During investigation, you can examine the properties of any of the stages that compose the job design and then alter the breakpoints based on new information that you learn by investigating the data. You can also add specific fields to the watch list in order to focus attention on only the set of fields you are most interested in.&lt;/LI&gt;
&lt;li class=li&gt;Because the debug mode of the job runs with the same configuration file as the standard run, debug mode catches any specific data conditions that exist based on how data is being partitioned and distributed across the infrastructure. So, regardless of whether the job is running on a small computer or across an enterprise class grid, or whether the databases accessed by the job are partitioned out to 128 nodes, the debug results mimic the way the job will be deployed in your standard environment.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;&lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; Operations Console for accessing operational metadata and monitoring the runtime environment&lt;/DT&gt; &lt;dd class=dd&gt;The new &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; Operations Console contains the following features. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.ds.monitor.doc/topics/cont_dsqsmonitor.html&quot;&gt;Monitoring jobs&lt;/A&gt;. &lt;div class=p&gt;The following screen capture shows the &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; Operations Console main dashboard. &lt;div class=&quot;fig fignone&quot;&gt;&lt;span class=figcap&gt;Figure 2. The &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; Operations Console&lt;/SPAN&gt; &lt;div class=image&gt;&lt;img class=image alt=&quot;The Operations Console showing the Home tab. On the Home tab, the Job Activity panel shows a line graph of the number of running jobs over time, and a bar graph of the number of failed and completed jobs. The Engine Status panel shows status details and properties of the engine. The Operating System Resources panel shows graphs of the CPU usage and memory usage over time.&quot; src=&quot;../images/opsconsole.gif&quot;&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;ul class=ul&gt;&lt;li class=li&gt;Production operators, development teams, and other stakeholders need access to the operational metadata of their data integration environment. Whether they are confirming that the environment is live, reviewing job run history, or working to troubleshoot system failures, these users need direct access to the most relevant information in order to perform their jobs efficiently.&lt;/LI&gt;
&lt;li class=li&gt;The Operations Console provides a view-only client that allows simple, web-based access to the runtime environment of &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt;. High-level graphs provide a summary view of the current state of the environment, such as what is running, how much resource is being consumed, and whether the environment is healthy. With several clicks, you can find the supporting details that you need to answer questions and achieve higher levels of productivity. Key features of this interface include: &lt;ul class=ul&gt;&lt;li class=li&gt;Dashboard style graphs representing current job activity&lt;/LI&gt;
&lt;li class=li&gt;Indications of successful or failed jobs statuses&lt;/LI&gt;
&lt;li class=li&gt;System health information&lt;/LI&gt;
&lt;li class=li&gt;Resource consumption views&lt;/LI&gt;
&lt;li class=li&gt;Server-wide and project-specific access based on the privileges of a particular user&lt;/LI&gt;
&lt;li class=li&gt;High-level summary and detailed statistics for the job run history, including job start date/time, elapsed run time, record counts, parameter detail, and control and error messages&lt;/LI&gt;
&lt;li class=li&gt;Utilities to compare multiple job runs and to filter relevant differences&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;
&lt;li class=li&gt;To support the innovative paradigm of this interface, &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt; includes a new role called Operations Viewer. This role is restricted to use only the Operations Console read-only views. Administrators can generously assign this role to users and groups, including in production, and trust that no objects within &lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt; can be altered or run. Additionally, in situations where operational metadata needs to be shared with other applications in the enterprise, organizations can use the fully documented metadata schema to define those integrations.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Balanced Optimization for Netezza&lt;/DT&gt; &lt;dd class=dd&gt; &lt;ul class=ul&gt;&lt;li class=li&gt;The Balanced Optimization capability provides the ability to push transformation into source databases, process in the high performance engine of &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt;, and push processing into target databases. You express the logic of your data integration processes in the current, flow-oriented convention of &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt;, and then that logic is automatically optimized to achieve the benefits of pushing the desired parts of the processing to the database.&lt;/LI&gt;
&lt;li class=li&gt;In &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; Balanced Optimization for Version 8.7, that development paradigm has been extended to interoperate with Netezza through the new Netezza connector. In jobs where you use this functionality, transformation processing is pushed to the Netezza appliance. The job uses the SPUs and parallel capability of the appliance to lessen the data round-trip time by keeping the data in the appliance itself. This capability is particularly useful when data reduction can be achieved at the source DBMS, or when the source and target of a given data integration task derive from the same DBMS.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;/DIV&gt;&lt;div id=whats_new_87__ia class=section&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__mw&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;InfoSphere Information Analyzer&lt;/H2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__des&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt; &lt;p class=p&gt;&lt;span class=ph&gt;IBM InfoSphere Information Analyzer&lt;/SPAN&gt;, Version 8.7 includes the following new features and changes. &lt;/P&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Data Rules stage&lt;/DT&gt; &lt;dd class=dd&gt; &lt;div class=p&gt;The following screen capture shows a job that uses the Data Rules stage. &lt;div class=&quot;fig fignone&quot;&gt;&lt;span class=figcap&gt;Figure 3. A job that uses the Data Rules stage showing the number and validity of processed records&lt;/SPAN&gt; &lt;div class=image&gt;&lt;img class=image alt=&quot;An InfoSphere DataStage and QualityStage job on the canvas of the Designer client. The job uses the new Data Rules stage. The Data Rules stage contains one Sequential File stage as input, and outputs data to two Sequential File stages.&quot; src=&quot;../images/rulestagejob.gif&quot;&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;You use this new feature to invoke &lt;span class=ph&gt;InfoSphere Information Analyzer&lt;/SPAN&gt; data rules in-stream as part of an &lt;span class=ph&gt;InfoSphere DataStage and QualityStage&lt;/SPAN&gt; job, or within an &lt;span class=ph&gt;InfoSphere Information Services Director&lt;/SPAN&gt; web service. You can include rules as part of an ETL or data cleansing process. In these cases, the rule or rule set definitions created in InfoSphere™ Information Analyzer are reusable as a unique rule validation stage to ensure that incoming content meets the prescribed rules, and the outgoing contents can be produced based on defined rule logic. Also, it is now possible to check whether your data is valid in real time, for example, by capturing the changes in real time by using &lt;span class=ph&gt;InfoSphere Change Data Capture&lt;/SPAN&gt;, and then validating the changes with the Data Rules stage. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.ia.dsrules.doc/topics/dr_data_rules_stage.html&quot;&gt;Data Rules stage&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Logical data models, physical data models, and implementation models&lt;/DT&gt; &lt;dd class=dd&gt;&lt;span class=ph&gt;InfoSphere Information Server&lt;/SPAN&gt; and Foundation Tools, including &lt;span class=ph&gt;InfoSphere Metadata Asset Manager&lt;/SPAN&gt;, are adopting broad support for physical and logical data models. As part of that overall theme, &lt;span class=ph&gt;InfoSphere Information Analyzer&lt;/SPAN&gt; supports use of physical and logical data model assets in rule definitions and a facilitated approach to discover and bind associated assets. In inferred model generation, the physical data model generation is enhanced for a more integrated approach. For more information, refer to: &lt;ul class=&quot;sl simple&quot;&gt;&lt;li class=sli&gt;&lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.metadata.common.doc/topics/c_logical_data_model_assets.html&quot;&gt;Logical data model assets&lt;/A&gt;&lt;/LI&gt;
&lt;li class=sli&gt;&lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.metadata.common.doc/topics/c_physical_data_model_assets.html&quot;&gt;Physical data model assets&lt;/A&gt;&lt;/LI&gt;
&lt;li class=sli&gt;&lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.ia.quality.doc/topics/dq_tabbedpalette_overview.html&quot;&gt;Creating rule logic by using tools in the Tabbed Palette&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;HTTP API enhancements for flow through processing&lt;/DT&gt; &lt;dd class=dd&gt;Additional APIs are added in this release to form a more complete set of interfaces supporting flow-through processing. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.ia.restapi.doc/topics/c_iarestapi_intro.html&quot;&gt;Developing applications with the HTTP API&lt;/A&gt;.&lt;/DD&gt; &lt;dd class=dd&gt;The API enhancements include these domains: &lt;ul class=ul&gt;&lt;li class=li&gt;Folder support&lt;/LI&gt;
&lt;li class=li&gt;Metrics and benchmarks&lt;/LI&gt;
&lt;li class=li&gt;Key and cross-domain analysis&lt;/LI&gt;
&lt;li class=li&gt;Public rules&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Enhancements on rules output&lt;/DT&gt; &lt;dd class=dd&gt;This enhancement allows distinct records to be generated in rule output when the rule contains only aggregation functions. Only one record is output per grouping value.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Performance enhancements&lt;/DT&gt; &lt;dd class=dd&gt;Performance enhancements for this release include: &lt;ul class=ul&gt;&lt;li class=li&gt;Rules that use join conditions are accelerated by pushing down the join operations to the SQL select statement executed on the analyzed source whenever it is possible, instead of loading all the data and joining them in &lt;span class=ph&gt;InfoSphere DataStage and QualityStage&lt;/SPAN&gt;.&lt;/LI&gt;
&lt;li class=li&gt;Rules that use a sampling are accelerated by reducing the number of rows that must be loaded from the source database to &lt;span class=ph&gt;InfoSphere DataStage and QualityStage&lt;/SPAN&gt;.&lt;/LI&gt;
&lt;li class=li&gt;IBM DB2 compression for Information Analyzer database (IADB). When using IBM DB2 as the analysis database, you can configure IBM DB2 compression to reduce the storage footprint of the analysis database. Query performance is not impacted.&lt;/LI&gt;
&lt;li class=li&gt;Internal algorithms refactoring for performance. Column analysis performance enhancements through internal algorithm refactoring, and other internal refactoring take advantage of new infrastructure features.&lt;/LI&gt;
&lt;li class=li&gt;The rule execution engine was reengineered and optimized for speed.&lt;/LI&gt;
&lt;li class=li&gt;Performance enhancements for key user interface areas including open project, open project properties, and the home page.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;/DIV&gt;&lt;div id=whats_new_87__mw class=section&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__qs&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;InfoSphere Metadata Workbench&lt;/H2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__ia&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt; &lt;div class=p&gt;&lt;span class=ph&gt;InfoSphere Metadata Workbench&lt;/SPAN&gt; Version 8.7 includes the following new features and changes. The following screen captures show the browser-based interface of metadata workbench. &lt;div class=&quot;fig fignone&quot;&gt;&lt;span class=figcap&gt;Figure 4. The metadata workbench canvas showing a data lineage report&lt;/SPAN&gt; &lt;div class=image&gt;&lt;img class=image alt=&quot;The InfoSphere Metadata Workbench browser-based interface. On the canvas, a data lineage report the movement of data within a job.&quot; src=&quot;../images/mdwblinrep.gif&quot;&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class=&quot;fig fignone&quot;&gt;&lt;span class=figcap&gt;Figure 5. The metadata workbench inventory pane of a data lineage report showing additional information for each asset&lt;/SPAN&gt; &lt;div class=image&gt;&lt;img class=image alt=&quot;The inventory pane of the metadata workbench interface showing a list of the assets that are identified on the canvas.&quot; src=&quot;../images/mdwblinrepinv.gif&quot;&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Supports logical data models&lt;/DT&gt; &lt;dd class=dd&gt; &lt;ul class=ul&gt;&lt;li class=li&gt;The metadata workbench displays logical data models, physical data models, and implemented data resources and their relationships. You can view, search, and query the models, entities, and attributes. The details page of a term displays its navigation (term -&amp;gt; logical data model asset -&amp;gt; physical data model asset -&amp;gt; implemented data resource).&lt;/LI&gt;
&lt;li class=li&gt;You can assign logical data model assets and physical data model assets to terms. In addition, you can assign stewards to logical data model assets and to physical data model assets.&lt;/LI&gt;
&lt;li class=li&gt;You can use published queries to display the relationships between logical data models, physical data models, and implemented data resources.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Supports Netezza connector&lt;/DT&gt; &lt;dd class=dd&gt;Supports data lineage, impact analysis, and other metadata management functions for the new Netezza connector.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Supports &lt;span class=ph&gt;InfoSphere CDC&lt;/SPAN&gt; metadata&lt;/DT&gt; &lt;dd class=dd&gt;Metadata for the sources of &lt;span class=ph&gt;InfoSphere Change Data Capture&lt;/SPAN&gt; (&lt;span class=ph&gt;InfoSphere CDC&lt;/SPAN&gt;) is integrated into &lt;span class=ph&gt;InfoSphere Metadata Workbench&lt;/SPAN&gt;. This integration allows for functions like impact analysis and data lineage to extend from the initial log-based replication task, throughout the rest of the information management infrastructure.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Data lineage UI enhancements&lt;/DT&gt; &lt;dd class=dd&gt;Data lineage displays the flow of data, including ETL information, from the data source to the BI report. You can expand an ETL source or a data source and select a database table or a column to display the lineage flow through those selected assets. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.mdwb.admin.doc/topics/t_runningAutomatedServices.html&quot;&gt;Running the Manage Lineage utility&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Supports SAP stages&lt;/DT&gt; &lt;dd class=dd&gt;Data lineage reports include SAP stages.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Supports InfoSphere Warehouse&lt;/DT&gt; &lt;dd class=dd&gt;The metadata workbench provides data lineage and impact analysis reports that are based on design flow metadata. The reports include assets from data sources to InfoSphere Warehouse, and from InfoSphere Warehouse to the data marts. The reports use the mappings of data flows that are created by Informix SQL Warehousing Tool (SQW) and from Design Studio.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Simplified automated services&lt;/DT&gt; &lt;dd class=dd&gt;The following steps in automated services are combined into a single UI called &lt;span class=&quot;ph uicontrol&quot;&gt;Manage Lineage&lt;/SPAN&gt;. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.mdwb.admin.doc/topics/c_automatedServices.html&quot;&gt;Manage Lineage utility&lt;/A&gt;. &lt;ol class=ol&gt;&lt;li class=li&gt;Detect association between stages and data sources, between databases and database aliases, and between two identical schemas. This step was previously called &lt;span class=&quot;ph uicontrol&quot;&gt;Stage Binding&lt;/SPAN&gt;.&lt;/LI&gt;
&lt;li class=li&gt;Map a database name to an alias name. This step was previously called &lt;span class=&quot;ph uicontrol&quot;&gt;Database Alias&lt;/SPAN&gt;.&lt;/LI&gt;
&lt;li class=li&gt;Set the relationship between stages and data sources, between databases and database aliases, and between two identical schemas.&lt;/LI&gt;&lt;/OL&gt;&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Displays custom attributes from &lt;span class=ph&gt;InfoSphere FastTrack&lt;/SPAN&gt;&lt;/DT&gt; &lt;dd class=dd&gt;&lt;span class=ph&gt;InfoSphere FastTrack&lt;/SPAN&gt; allows custom attributes to be created and assigned to an &lt;span class=ph&gt;InfoSphere FastTrack&lt;/SPAN&gt; mapping project. The metadata workbench displays these custom attributes in the details page of the mapping project.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Supports custom attributes for implemented data resources, BI Reports, data files, and extended data sources &lt;/DT&gt; &lt;dd class=dd&gt;The metadata workbench displays these custom attributes in the details page of these assets. &lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Displays folder structure for extension mapping documents and extended data sources&lt;/DT&gt; &lt;dd class=dd&gt;The administrator can create and manage folders for extension mapping documents and extended data sources. These folders can be organized into a hierarchical structure. The folder structure is maintained during import. The administrator can browse the folder structure. In addition, the administrator can move extension mapping documents and extended data sources to a different folder.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Provides home page enhancements&lt;/DT&gt; &lt;dd class=dd&gt;The home page has been simplified to enable you to search for an asset or to run an existing query.&lt;/DD&gt;&lt;/DL&gt;&lt;/DIV&gt;&lt;div id=whats_new_87__qs class=section&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__doc&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;InfoSphere QualityStage&lt;/H2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__mw&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt; &lt;p class=p&gt;&lt;span class=ph&gt;InfoSphere QualityStage&lt;/SPAN&gt;, Version 8.7 includes the following new features and changes.&lt;/P&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Match Specification Setup Wizard&lt;/DT&gt; &lt;dd class=dd&gt;You can now use a wizard to create basic match specifications for US name and address data. The specifications that you create with the wizard provide criteria for matching records from one or two sources. The specifications support common matching goals for individuals and businesses, such as deduplication and grouping records with similar values. You can use the specifications in the new predefined matching jobs or as models for specifications that meet your matching requirements. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/t_Prerequisites.html&quot;&gt;Creating match specifications&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Predefined jobs&lt;/DT&gt; &lt;dd class=dd&gt;&lt;span class=ph&gt;InfoSphere QualityStage&lt;/SPAN&gt;, Version 8.7 includes predefined standardization and matching jobs for US name and address data. You can use predefined standardization jobs to generate standardized data and the frequency information for that data. You can use predefined matching jobs to match records from one or two sources of input data. Sample data is provided for use with the predefined jobs. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/r_predefined_standardization_jobs.html&quot;&gt;Predefined standardization jobs&lt;/A&gt; and &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/r_predefined_matching_jobs.html&quot;&gt;Predefined matching jobs&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Match Statistics report&lt;/DT&gt; &lt;dd class=dd&gt;The new Match Statistics report presents summary-level statistics about the matching results and statistics about the matching process for each match pass. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/c_match_statistics_report.html&quot;&gt;Match Statistics reports&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Indian rule sets&lt;/DT&gt; &lt;dd class=dd&gt;You can use the new Indian rule sets in jobs that standardize Indian address and area data. A shared container is imported with the rule sets to help you design a job that uses the rule sets. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/c_qsrules.html&quot;&gt;Predefined rule sets&lt;/A&gt; and &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/r_indian_address_rule_sets.html&quot;&gt;Indian address rule sets&lt;/A&gt;.&lt;/DD&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Rule set enhancements&lt;/DT&gt; &lt;dd class=dd&gt;The predefined rule sets are enhanced in the following ways: &lt;ul class=ul&gt;&lt;li class=li&gt;Some of the domain-specific rule sets now generate improved values for matching.&lt;/LI&gt;
&lt;li class=li&gt;The USADDR rule set is enhanced in several ways. For example, the value ONE in ONE CHILDRENS PLACE is identified as a house number.&lt;/LI&gt;
&lt;li class=li&gt;The column descriptions in the rule sets provide more information.&lt;/LI&gt;
&lt;li class=li&gt;Rule sets now use the REPEAT statement to apply actions repetitively until an action does not match the associated pattern.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;/DIV&gt;&lt;div id=whats_new_87__doc class=section&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;Documentation introduced with Version 8.7&lt;/H2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_87__qs&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;
&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Administration&lt;/DT&gt; &lt;dd class=dd&gt; &lt;ul class=ul&gt;&lt;li class=li&gt;&lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.found.admin.common.doc/topics/wsisinst_config_pam_svcs.html&quot;&gt;Configuring the services tier to use Pluggable Authentication Module (PAM)&lt;/A&gt;&lt;/LI&gt;
&lt;li class=li&gt;&lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.found.admin.burest.doc/topics/t_admin_backup_restore_super.html&quot;&gt;Backing up and restoring InfoSphere Information Server with the new isrecovery tool&lt;/A&gt;&lt;/LI&gt;
&lt;li class=li&gt;&lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.found.admin.common.doc/topics/encrypt_ovw.html&quot;&gt;Encrypting user credentials&lt;/A&gt;&lt;/LI&gt;
&lt;li class=li&gt;&lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.found.admin.common.doc/topics/directorycommand_tool.html&quot;&gt;Adding users, groups, and roles through the DirectoryCommand tool&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Common metadata assets&lt;/DT&gt; &lt;dd class=dd&gt;Added documentation of common metadata assets, the assets that are shared by suite tools. Common metadata assets include logical data models, physical data models, implemented data resources, and business intelligence assets. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.metadata.common.doc/topics/ct_common_metadata_assets.html&quot;&gt;Common metadata assets&lt;/A&gt;. The documentation includes the following features: &lt;ul class=ul&gt;&lt;li class=li&gt;Definitions of each asset type&lt;/LI&gt;
&lt;li class=li&gt;Explanation of how the identity of assets in the metadata repository is established&lt;/LI&gt;
&lt;li class=li&gt;Explanation of implementation relationships between logical data model assets, physical data model assets, and implemented data resources&lt;/LI&gt;
&lt;li class=li&gt;Delete rules for assets&lt;/LI&gt;
&lt;li class=li&gt;Explanation of duplicate assets and disconnected assets&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;&lt;cite class=cite&gt;&lt;span class=ph&gt;IBM InfoSphere Information Server&lt;/SPAN&gt; Guide to Managing Common Metadata&lt;/CITE&gt;&lt;/DT&gt; &lt;dd class=dd&gt;Added a single new PDF guide that includes the content for the following areas, which are grouped under the topic, &lt;cite class=cite&gt;Managing metadata&lt;/CITE&gt;, in the information center. To download the PDF, refer to &lt;a class=xref title=&quot;(Opens in a new tab or window)&quot; href=&quot; http://www.ibm.com/support/docview.wss?uid=swg27022092&quot; target=_blank&gt;IBM InfoSphere Information Server Version 8.7 product documentation&lt;/A&gt;. &lt;ul class=ul&gt;&lt;li class=li&gt;Importing and managing assets by using &lt;span class=ph&gt;IBM InfoSphere Metadata Asset Manager&lt;/SPAN&gt;&lt;/LI&gt;
&lt;li class=li&gt;Exchanging metadata by using IBM InfoSphere Metadata Integration Bridges&lt;/LI&gt;
&lt;li class=li&gt;Common metadata assets&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;&lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt;&lt;/DT&gt; &lt;dd class=dd&gt; &lt;ul class=ul&gt;&lt;li class=li&gt;The &lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; glossary lists and defines terms that administrators and job developers will find useful for lending understanding as they use the software. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.ds.glossary.doc/topics/glossary_ds.html&quot;&gt;&lt;span class=ph&gt;InfoSphere DataStage&lt;/SPAN&gt; glossary&lt;/A&gt;.&lt;/LI&gt;
&lt;li class=li&gt;For more information about the methods you can use to examine problematic parallel jobs, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.ds.parjob.dev.doc/topics/debuggingparalleljobs.html&quot;&gt;Debugging parallel jobs&lt;/A&gt;.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;&lt;span class=ph&gt;InfoSphere Metadata Asset Manager&lt;/SPAN&gt;&lt;/DT&gt; &lt;dd class=dd&gt;Added documentation of the new &lt;span class=ph&gt;InfoSphere Metadata Asset Manager&lt;/SPAN&gt;, including documentation of the following functionality: &lt;ul class=ul&gt;&lt;li class=li&gt;&lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_install_imam.html&quot;&gt;Installation&lt;/A&gt;&lt;/LI&gt;
&lt;li class=li&gt;&lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.mmi.doc/topics/ct_imam_top-level.html&quot;&gt;Import and administration&lt;/A&gt;&lt;/LI&gt;
&lt;li class=li&gt;&lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.mmi.rm.doc/topics/c_managing_metadata.html&quot;&gt;Managing assets on the Repository Management tab&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;InfoSphere Metadata Integration Bridges&lt;/DT&gt; &lt;dd class=dd&gt; &lt;ul class=ul&gt;&lt;li class=li&gt;Revised documentation of bridges to emphasize importing by using &lt;span class=ph&gt;InfoSphere Metadata Asset Manager&lt;/SPAN&gt;. Also added documentation about importing logical data models and physical data models. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.mdbbr.doc/topics/to_MB_UsingMetabrokers.html&quot;&gt;Exchanging metadata by using IBM InfoSphere Metadata Integration Bridges&lt;/A&gt;.&lt;/LI&gt;
&lt;li class=li&gt;Updated &lt;a class=xref title=&quot;(Opens in a new tab or window)&quot; href=&quot;http://www.ibm.com/support/docview.wss?&amp;amp;uid=swg27021980&quot; target=_blank&gt;List of supported bridges&lt;/A&gt; and &lt;a class=xref title=&quot;(Opens in a new tab or window)&quot; href=&quot;http://www.ibm.com/support/docview.wss?&amp;amp;uid=swg27021981&quot; target=_blank&gt;System requirements for bridges&lt;/A&gt;.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;dl class=dl&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Managing assets by using the command line&lt;/DT&gt; &lt;dd class=dd&gt;Added documentation for the following new functionality: &lt;ul class=ul&gt;&lt;li class=li&gt;Generating glossary content from business intelligence models. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.bg.cli.doc/topics/r_bi2bg.html&quot;&gt;&lt;span class=&quot;keyword cmdname&quot;&gt;glossary bi2bg&lt;/SPAN&gt; command&lt;/A&gt;.&lt;/LI&gt;
&lt;li class=li&gt;Importing and exporting logical data models, physical data models, and custom attributes. For more information, refer to &lt;a class=xref href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/topic/com.ibm.swg.im.iis.iisinfsv.assetint.doc/topics/move_manage_commetadata.html&quot;&gt;Common metadata assets&lt;/A&gt;.&lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;/DIV&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/2560166770975181107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2012/01/new-features-and-changes-for-ibm_14.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/2560166770975181107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/2560166770975181107'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2012/01/new-features-and-changes-for-ibm_14.html' title='New features and changes for IBM InfoSphere Information Server, Version 8.7'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-5764367600873022923</id><published>2011-06-05T07:07:00.000+05:30</published><updated>2013-02-22T20:14:31.239+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>The tsort operator</title><content type='html'>&lt;p&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a class=&quot;xref&quot; href=&quot;#footer&quot; shape=&quot;rect&quot;&gt;Bottom&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name=&quot;top&quot; shape=&quot;rect&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;/p&gt;&lt;h1 class=&quot;topictitle1&quot;&gt;The tsort operator&lt;/h1&gt;&lt;div&gt;&lt;div class=&quot;section&quot;&gt;&lt;p id=&quot;wp1055700__wp1055705&quot;&gt;&lt;a name=&quot;wp1055700__wp1055705&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;&lt;span&gt;WebSphere DataStage&lt;/span&gt; provides the sort operator, tsort that you can use to sort the records of a data set. The tsort operator can run as either a sequential or a parallel operator. The execution mode of the tsort operator determines its action:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;wp1055700__wp1055709&quot;&gt;&lt;a name=&quot;wp1055700__wp1055709&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;&lt;b&gt;Sequential mode&lt;/b&gt;: The tsort operator executes on a single processing node to sort an entire data set.&lt;a name=&#39;more&#39;&gt;&lt;/a&gt; On completion, the records of the data set are sorted completely.&lt;/li&gt;
&lt;li id=&quot;wp1055700__wp1055710&quot;&gt;&lt;a name=&quot;wp1055700__wp1055710&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;&lt;b&gt;Parallel mode&lt;/b&gt;: The tsort operator executes on multiple processing nodes in your system. On completion, the records within each partition of a data set are sorted. This type of sort is called a partition sort.&lt;/li&gt;
&lt;/ul&gt;&lt;div id=&quot;wp1055700__wp1055821&quot; class=&quot;p&quot;&gt;&lt;a name=&quot;wp1055700__wp1055821&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;The following figure shows the difference between these two operating modes:&lt;div class=&quot;fignone&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQzbryUmH9e0Yyku0m_J6ERLEH8jiw3jTxLECxV2dvL-E_8Dh1JDFVQsSM67ymJfAL6-OB0r_vspPdbagGpvkEyQyHkVyCAS5SLqVu-7TH6SRyKYyfmBX6BSDURxgG5i1HP8c-l01HNs26/s1600/ds12_1.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; width=&quot;130&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQzbryUmH9e0Yyku0m_J6ERLEH8jiw3jTxLECxV2dvL-E_8Dh1JDFVQsSM67ymJfAL6-OB0r_vspPdbagGpvkEyQyHkVyCAS5SLqVu-7TH6SRyKYyfmBX6BSDURxgG5i1HP8c-l01HNs26/s320/ds12_1.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p id=&quot;wp1055700__wp1055822&quot;&gt;&lt;a name=&quot;wp1055700__wp1055822&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;The tsort operator on the left side of this figure runs sequentially to completely sort the records of a data set. Typically, you use the tsort operator sequentially when you need a total sort of a data set, or when you create a sequential job.&lt;/p&gt;&lt;p id=&quot;wp1055700__wp1055823&quot;&gt;&lt;a name=&quot;wp1055700__wp1055823&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;The tsort operator on the right side of this figure executes in parallel and sorts records within each partition. Remember that a parallel operator executes on multiple nodes in a system, where each node receives a partition of a data set. A parallel tsort operator outputs multiple partitions, where the records are sorted within the partition.&lt;/p&gt;&lt;p id=&quot;wp1055700__wp1055824&quot;&gt;&lt;a name=&quot;wp1055700__wp1055824&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;Typically, you use a parallel tsort operator as part of a series of operators that requires sorted partitions. For example, you can combine a sort operator with an operator that removes duplicate records from a data set. After the partitions of a data set are sorted, duplicate records in a partition are adjacent.&lt;/p&gt;&lt;p id=&quot;wp1055700__wp1055826&quot;&gt;&lt;a name=&quot;wp1055700__wp1055826&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;To perform a parallel sort, you insert a partitioner in front of the tsort operator. This lets you control how the records of a data set are partitioned before the sort. For example, you could hash partition records by a name field, so that all records whose name field begins with the same one-, two-, or three-letter sequence are assigned to the same partition. See &lt;a class=&quot;xref&quot; href=&quot;#topictitle1&quot; shape=&quot;rect&quot;&gt;&quot;Example: Using a Parallel tsort Operator&quot;&lt;/a&gt; for more information.&lt;/p&gt;&lt;p id=&quot;wp1055700__wp1055830&quot;&gt;&lt;a name=&quot;wp1055700__wp1055830&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;If you combine a parallel sort with a sort merge collector, you can perform a total sort. A totally sorted data set output is completely ordered, meaning the records in each partition of the output data set are ordered, and the partitions themselves are ordered. See &lt;a class=&quot;xref&quot; href=&quot;#topictitle2&quot; shape=&quot;rect&quot;&gt;&quot;Performing a Total Sort&quot;&lt;/a&gt; for more information.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;topictitle1&quot;&gt;&lt;h2 class=&quot;title sectiontitle&quot;&gt;Example: using a parallel tsort operator&lt;/h2&gt;&lt;hr&gt;&lt;div class=&quot;section&quot;&gt;&lt;p id=&quot;wp1063743__wp1056399&quot;&gt;&lt;a name=&quot;wp1063743__wp1056399&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;A parallel tsort operator runs on multiple processing nodes in your system to sort the records within each partition of a data set. The default execution mode of the operator is parallel, using the any partitioning method. However, you typically use a partitioning operator with the tsort operator to set an explicit partitioning method.&lt;/p&gt;&lt;p id=&quot;wp1063743__wp1059393&quot;&gt;&lt;a name=&quot;wp1063743__wp1059393&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;Choose a partitioning method that is correct for the sorting operation. For example, assume that you are sorting records in a data set based on the last name field of each record. If you randomly allocate records into any partition, records with similar last names are not guaranteed to be in the same partition and are not, therefore, processed by the same node. Similar records can be sorted by an operator only if they are in the same partition of the data set.&lt;/p&gt;&lt;p id=&quot;wp1063743__wp1056402&quot;&gt;&lt;a name=&quot;wp1063743__wp1056402&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;A better method of partitioning data in this case is to hash the records by the first five or six characters of the last name. All records containing similar names would be in the same partition and, therefore, would be processed by the same node. The tsort operator could then compare the entire last names, first names, addresses, or other information in the records, to determine the sorting order of the records.&lt;/p&gt;&lt;p id=&quot;wp1063743__wp1056404&quot;&gt;&lt;a name=&quot;wp1063743__wp1056404&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;For example:&lt;/p&gt;&lt;pre class=&quot;codeblock&quot;&gt;record ( fname:string[30]; lname:string[30]; )
... | modify -spec &quot;lname_hash:string[6] =   substring[0,6](lname)&quot;
      | hash -key lname_hash | tsort -key lname | ...&lt;/pre&gt;&lt;p id=&quot;wp1063743__wp1056410&quot;&gt;&lt;a name=&quot;wp1063743__wp1056410&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;&lt;span&gt;WebSphere DataStage&lt;/span&gt; supplies a hash partitioner operator that allows you to hash records by one or more fields. See &lt;a href=&quot;c_deeadvrf_The_hash_Partitioner.html&quot;&gt;&quot;The hash Partitioner&quot;&lt;/a&gt; for more information on the hash operator. You can also use any one of the supplied &lt;span&gt;WebSphere DataStage&lt;/span&gt; partitioning methods.&lt;/p&gt;&lt;div id=&quot;wp1063743__wp1056419&quot; class=&quot;p&quot;&gt;&lt;a name=&quot;wp1063743__wp1056419&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;The following example is a modification of the previous example, &lt;a href=&quot;r_deeadvrf_Example_Using_a_Sequential_tsort_Operator.html&quot;&gt;&quot;Example: Using a Sequential tsort Operator&quot;&lt;/a&gt; , to execute the tsort operator in parallel using a hash partitioner operator. In this example, the hash operator partitions records using the integer field a, the primary sorting key. Thus all records containing the same value for field a will be assigned to the same partition. The figure below shows this example:&lt;div class=&quot;fignone&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ETSuN1vE85qyGBZ2C9fT8nCVwJoyap7DUvf1_E8VyVpyzJoh_eVEK8NTlLngESG3tiw8J6UH6J8QVCeTgTR7LQwa3IevbXv4mGg1Pr1-f-fGGCUqCqWQtnIAdSZ3KoMjiFThsnYpPnTq/s1600/ds12_5.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; width=&quot;231&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ETSuN1vE85qyGBZ2C9fT8nCVwJoyap7DUvf1_E8VyVpyzJoh_eVEK8NTlLngESG3tiw8J6UH6J8QVCeTgTR7LQwa3IevbXv4mGg1Pr1-f-fGGCUqCqWQtnIAdSZ3KoMjiFThsnYpPnTq/s320/ds12_5.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p id=&quot;wp1063743__wp1056475&quot;&gt;&lt;a name=&quot;wp1063743__wp1056475&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;Shown below is the osh command corresponding to this example:&lt;/p&gt;&lt;pre class=&quot;codeblock&quot;&gt;$ osh &quot; hash -key a -key e &amp;lt; unSortedDS.ds | 
        tsort -key a -key e &amp;gt; sortedDS.ds&quot;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;topictitle2&quot;&gt;&lt;h2 class=&quot;title sectiontitle&quot;&gt;Performing a total sort&lt;/h2&gt;&lt;hr&gt;&lt;div class=&quot;section&quot;&gt;&lt;p id=&quot;wp1057608__wp1057609&quot;&gt;&lt;a name=&quot;wp1057608__wp1057609&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;The previous section showed an example of a parallel sorter using the hash partitioner to sort the partitions of a data set. When you use a hash partitioner, all records containing the same hash key values are in the same partition and are therefore processed and sorted by the same node.&lt;/p&gt;&lt;p id=&quot;wp1057608__wp1057610&quot;&gt;&lt;a name=&quot;wp1057608__wp1057610&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;In contrast to a partition sort, you can also use the psort operator to perform a total sort.&lt;/p&gt;&lt;div id=&quot;wp1057608__wp1057612&quot; class=&quot;p&quot;&gt;&lt;a name=&quot;wp1057608__wp1057612&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;The following figure shows a total sort performed on a data set with two partitions: &lt;div class=&quot;fignone&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixw7fvRkiq3A5m4GQDDaq77tFgH-TUm4mWPEIHKzftcXZz-dyQI97WUT4i8RMO7uCWD1FidD0KFGxcEZp5nHCPZCuHCd918atVDCYOZ2Ty3MModa9r8mrcrYk5yzpBphZsU1uWGpL7SDx7/s1600/ds12_14.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; width=&quot;304&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixw7fvRkiq3A5m4GQDDaq77tFgH-TUm4mWPEIHKzftcXZz-dyQI97WUT4i8RMO7uCWD1FidD0KFGxcEZp5nHCPZCuHCd918atVDCYOZ2Ty3MModa9r8mrcrYk5yzpBphZsU1uWGpL7SDx7/s320/ds12_14.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p id=&quot;wp1057608__wp1057693&quot;&gt;&lt;a name=&quot;wp1057608__wp1057693&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;In this example, the partitions of the output data set contain sorted records, and the partitions themselves are sorted. As you can see in this example, a total sort requires that all similar and duplicate records are located in the same partition of the data set. Similarity is based on the key fields in a record.&lt;/p&gt;&lt;p id=&quot;wp1057608__wp1057694&quot;&gt;&lt;a name=&quot;wp1057608__wp1057694&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;Because each partition of a data set is sorted by a single processing node, another requirement must also be met before a total sort can occur. Not only must similar records be in the same partition, but the partitions themselves should be approximately equal in size so that no one node becomes a processing bottleneck. To meet these two requirements, you use the range partitioner on the input data set before performing the actual sort.&lt;/p&gt;&lt;p id=&quot;wp1057608__wp1057695&quot;&gt;&lt;a name=&quot;wp1057608__wp1057695&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;The range partitioner guarantees that all records with the same key fields are in the same partition, but it does more. The range partitioner also calculates partition boundaries, based on the sorting keys, in order to evenly distribute records to the partitions. All records with sorting keys values between the partition boundaries are assigned to the same partition so that the partitions are ordered and that the partitions are approximately the same size. See the next section for more information on using the range partitioning operator.&lt;/p&gt;&lt;p id=&quot;wp1057608__wp1057696&quot;&gt;&lt;a name=&quot;wp1057608__wp1057696&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;You need to perform a total sort only when your job requires a completely ordered data set, either as output or as a preprocessing step. For example, you might want to perform a total sort on a mailing list so that the list is sorted by zip code, then by last name within zip code.&lt;/p&gt;&lt;p id=&quot;wp1057608__wp1057697&quot;&gt;&lt;a name=&quot;wp1057608__wp1057697&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;For most jobs, a partition sort is the correct sorting component. For example, if you are sorting a data set as a preprocessing step to remove duplicate records, you use a hash partitioner with a partition sort to partition the data set by the sorting key fields; a total sort is unnecessary. A hash partitioner assigns records with the same sorting key fields to the same partition, then sorts the partition. A second operator can compare adjacent records in a partition to determine if they have the same key fields to remove any duplicates.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a class=&quot;xref&quot; href=&quot;#header&quot; shape=&quot;rect&quot;&gt;Top&lt;/a&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/5764367600873022923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2011/06/tsort-operator.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/5764367600873022923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/5764367600873022923'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2011/06/tsort-operator.html' title='The tsort operator'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQzbryUmH9e0Yyku0m_J6ERLEH8jiw3jTxLECxV2dvL-E_8Dh1JDFVQsSM67ymJfAL6-OB0r_vspPdbagGpvkEyQyHkVyCAS5SLqVu-7TH6SRyKYyfmBX6BSDURxgG5i1HP8c-l01HNs26/s72-c/ds12_1.gif" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-5963156808702856697</id><published>2011-04-17T01:12:00.000+05:30</published><updated>2015-10-17T01:16:02.853+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>How to generate Sequence Numbers in DataStage using @INROWNUM and @PARTITIONNUM System Variables</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;
This is one of the basic requirement in DataStage, we&#39;ll have to generate sequence numbers and then assign the same values to your required O/P field (e.g. 1, 2, 3, …). If you are using the import osh operator (through a stage, e.g. the Sequential File Stage) to read external data, you can use the -recordNumberField parameter.&lt;br /&gt;
&lt;br /&gt;
Solution: Generate Row Number Field with DataStage Transformer Stage&lt;br /&gt;
&lt;br /&gt;
There are number of different ways to solve this problem. Here I will share with you the easiest way to generate and assign sequence numbers using a DataStage Parallel Transformer stage.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: yellow;&quot;&gt;@PARTITIONNUM + @NUMPARTITIONS * (@INROWNUM - 1) + 1&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Note: This logic only works if your data is evenly balanced i.e., equal number of rows going through each partition.&lt;br /&gt;
&lt;br /&gt;
The above logic uses three DataStage system variables which are listed as below;&lt;br /&gt;
&lt;br /&gt;
@INROWNUM – This system variable contains the row number within the partition. For each partition this variable starts from 1: 1, 2, 3, …&lt;br /&gt;
@NUMPARTITIONS – This system variable contains the number of partitions (1, 2, 3, …) the stage is running on.&lt;br /&gt;
@PARTITIONNUM – This system variable contains the number (0, 1, 2,…) of the partition that is processing the particular row.&lt;br /&gt;
To understand the derivation expression better, let’s see an example.&lt;br /&gt;
&lt;br /&gt;
Example-1: Generating Sequence Numbers Using 2-Node Config File&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: center;&quot; trbidi=&quot;on&quot;&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse: collapse; width: 327px;&quot;&gt;&lt;colgroup&gt;&lt;col style=&quot;mso-width-alt: 1682; mso-width-source: userset; width: 35pt;&quot; width=&quot;46&quot;&gt;&lt;/col&gt;  &lt;col style=&quot;mso-width-alt: 3328; mso-width-source: userset; width: 68pt;&quot; width=&quot;91&quot;&gt;&lt;/col&gt;  &lt;col style=&quot;mso-width-alt: 2816; mso-width-source: userset; width: 58pt;&quot; width=&quot;77&quot;&gt;&lt;/col&gt;  &lt;col style=&quot;mso-width-alt: 4132; mso-width-source: userset; width: 85pt;&quot; width=&quot;113&quot;&gt;&lt;/col&gt;  &lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt; width: 35pt;&quot; width=&quot;46&quot;&gt;&lt;/td&gt;   &lt;td class=&quot;xl65&quot; colspan=&quot;3&quot; style=&quot;width: 211pt;&quot; width=&quot;281&quot;&gt;2 NODE CONFIG FILE&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;135&quot; style=&quot;height: 101.25pt; mso-height-source: userset;&quot;&gt;   &lt;td class=&quot;xl66&quot; height=&quot;135&quot; style=&quot;height: 101.25pt; width: 35pt;&quot; width=&quot;46&quot;&gt;Sample   Field&lt;/td&gt;   &lt;td class=&quot;xl67&quot; style=&quot;width: 68pt;&quot; width=&quot;91&quot;&gt;@INROWNUM&lt;/td&gt;   &lt;td class=&quot;xl67&quot; style=&quot;width: 58pt;&quot; width=&quot;77&quot;&gt;@PARTITIONNUM&lt;/td&gt;   &lt;td class=&quot;xl66&quot; style=&quot;width: 85pt;&quot; width=&quot;113&quot;&gt;@PARTITIONNUM + @NUMPARTITIONS * (@INROWNUM - 1) + 1&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;A&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;B&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;C&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;D&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;4&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;E&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;5&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;G&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;6&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;H&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;4&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;7&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;I&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;4&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;8&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;J&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;5&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;9&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;K&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;5&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;10&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;L&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;6&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;11&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;M&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;6&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;12&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;N&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;7&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;13&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;O&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;7&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;14&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;P&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;8&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;15&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;Q&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;8&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;16&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;R&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;9&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;17&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;S&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;9&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;18&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;T&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;10&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;19&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;U&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;10&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;20&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;V&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;11&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;21&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
Example-2: Generating Sequence Numbers Using 4-Node Config File&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: center;&quot; trbidi=&quot;on&quot;&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse: collapse; width: 342px;&quot;&gt;&lt;colgroup&gt;&lt;col style=&quot;mso-width-alt: 1682; mso-width-source: userset; width: 35pt;&quot; width=&quot;46&quot;&gt;&lt;/col&gt;  &lt;col style=&quot;mso-width-alt: 3364; mso-width-source: userset; width: 69pt;&quot; width=&quot;92&quot;&gt;&lt;/col&gt;  &lt;col style=&quot;mso-width-alt: 4681; mso-width-source: userset; width: 96pt;&quot; width=&quot;128&quot;&gt;&lt;/col&gt;  &lt;col style=&quot;mso-width-alt: 2779; mso-width-source: userset; width: 57pt;&quot; width=&quot;76&quot;&gt;&lt;/col&gt;  &lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt; width: 35pt;&quot; width=&quot;46&quot;&gt;&lt;/td&gt;   &lt;td class=&quot;xl65&quot; colspan=&quot;3&quot; style=&quot;width: 222pt;&quot; width=&quot;296&quot;&gt;4 NODE CONFIG FILE&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;135&quot; style=&quot;height: 101.25pt; mso-height-source: userset;&quot;&gt;   &lt;td class=&quot;xl66&quot; height=&quot;135&quot; style=&quot;height: 101.25pt; width: 35pt;&quot; width=&quot;46&quot;&gt;Sample   Field&lt;/td&gt;   &lt;td class=&quot;xl67&quot; style=&quot;width: 69pt;&quot; width=&quot;92&quot;&gt;@INROWNUM&lt;/td&gt;   &lt;td class=&quot;xl67&quot; style=&quot;width: 96pt;&quot; width=&quot;128&quot;&gt;@PARTITIONNUM&lt;/td&gt;   &lt;td class=&quot;xl66&quot; style=&quot;width: 57pt;&quot; width=&quot;76&quot;&gt;@PARTITIONNUM + @NUMPARTITIONS * (@INROWNUM - 1) + 1&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;A&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;B&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;C&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;D&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;4&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;E&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;5&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;G&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;6&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;H&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;7&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;I&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;8&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;J&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;9&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;K&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;10&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;L&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;11&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;M&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;12&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;N&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;4&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;13&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;O&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;4&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;14&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;P&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;4&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;15&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;Q&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;4&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;16&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;R&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;5&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;17&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;S&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;5&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;1&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;18&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;T&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;5&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;2&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;19&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;U&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;5&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;3&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;20&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;   &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;height: 15.0pt;&quot;&gt;V&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;6&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;0&lt;/td&gt;   &lt;td class=&quot;xl65&quot;&gt;21&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/5963156808702856697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2011/04/how-to-generate-sequence-numbers-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/5963156808702856697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/5963156808702856697'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2011/04/how-to-generate-sequence-numbers-in.html' title='How to generate Sequence Numbers in DataStage using @INROWNUM and @PARTITIONNUM System Variables'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-8662425518620103065</id><published>2011-03-02T19:09:00.014+05:30</published><updated>2013-02-22T20:21:04.829+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>New features &amp; changes in IBM InfoSphere Information Server 8.5</title><content type='html'>&lt;a shape=&quot;rect&quot; name=&quot;top&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;p class=&quot;shortdesc&quot;&gt;New features and changes were introduced in &lt;span class=&quot;ph&quot;&gt;IBM&amp;reg; InfoSphere&amp;trade; Information Server&lt;/span&gt;, Version 8.5 along with documentation updates. The new and changed features and documentation updates are described in the following sections.&lt;/p&gt;&lt;div class=&quot;section&quot;&gt;&lt;h2 class=&quot;title sectiontitle&quot;&gt;Table of contents&lt;/h2&gt;&lt;p class=&quot;p&quot;&gt;&lt;span class=&quot;ph&quot;&gt;InfoSphere Information Server&lt;/span&gt;, Version 8.5, new features and changes:&lt;/p&gt;&lt;p class=&quot;p&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__suite_prod&quot; class=&quot;xref&quot;&gt;Suite and product module changes&lt;/a&gt; &lt;/p&gt;&lt;p class=&quot;p&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__bg&quot; class=&quot;xref&quot;&gt;IBM InfoSphere Business Glossary&lt;/a&gt; &lt;/p&gt;&lt;p class=&quot;p&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__ds&quot; class=&quot;xref&quot;&gt;IBM InfoSphere DataStage&lt;/a&gt; &lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;p class=&quot;p&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__ft&quot; class=&quot;xref&quot;&gt;IBM InfoSphere FastTrack&lt;/a&gt; &lt;/p&gt;&lt;p class=&quot;p&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__ia&quot; class=&quot;xref&quot;&gt;IBM InfoSphere Information Analyzer&lt;/a&gt; &lt;/p&gt;&lt;p class=&quot;p&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__iisd&quot; class=&quot;xref&quot;&gt;IBM InfoSphere Information Services Director&lt;/a&gt; &lt;/p&gt;&lt;p class=&quot;p&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__mdwb&quot; class=&quot;xref&quot;&gt;IBM InfoSphere Metadata Workbench&lt;/a&gt; &lt;/p&gt;&lt;p class=&quot;p&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__qs&quot; class=&quot;xref&quot;&gt;IBM InfoSphere QualityStage&lt;/a&gt; &lt;/p&gt;&lt;p class=&quot;p&quot;&gt;Documentation changes included in the Version 8.5 release:&lt;/p&gt;&lt;p class=&quot;p&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__doc&quot; class=&quot;xref&quot;&gt;Documentation introduced with Version 8.5&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;whats_new_85__suite_prod&quot; class=&quot;section&quot;&gt;&lt;a shape=&quot;rect&quot; name=&quot;whats_new_85__suite_prod&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__bg&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;Suite and product module changes&lt;/h2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;System requirements&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt; &lt;span class=&quot;ph&quot;&gt;InfoSphere Information Server&lt;/span&gt; has added support for several new operating systems,   database servers, application servers, and web browsers.  For more information, refer to &lt;a target=&quot;_blank&quot; shape=&quot;rect&quot; 

href=&quot;http://www.ibm.com/support/docview.wss?uid=swg27016382&quot; class=&quot;xref&quot;&gt;System Requirements&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Installing&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Expanded high availability (HA) and scalability options&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt; &lt;span class=&quot;ph&quot;&gt;InfoSphere Information Server&lt;/span&gt; now supports a wider variety of topologies for HA and   scalability:&lt;ul class=&quot;ul&quot;&gt;&lt;li class=&quot;li&quot;&gt;The services tier can now be implemented within an IBM WebSphere&amp;reg; Application Server Network Deployment clustered environment.&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;The metadata repository tier can now be implemented within a DB2&amp;reg; database cluster or HADR configuration, or an Oracle database Real Application Clusters (RAC) configuration.&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt; &lt;span class=&quot;ph&quot;&gt;InfoSphere Information Server&lt;/span&gt; components can now be implemented on redundant servers that are managed by HA management software such as IBM Tivoli&amp;reg; System Automation for Multiplatforms.&lt;/li&gt;
&lt;/ul&gt;For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.ha.install.doc/topics/wsisinst_pln_ha_overview.html&quot; class=&quot;xref&quot;&gt;High   availability configurations&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Redesigned installation program&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;The &lt;span class=&quot;ph&quot;&gt;InfoSphere Information Server&lt;/span&gt; installation program now runs within a standard Web   browser, or in silent mode from the command-line. It performs a thorough requirements check that helps ensure that the   installation is successful. It supports incremental removal of products and tiers as well as incremental installation. It can   optionally install WebSphere Application Server and DB2. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_chk_server.html&quot; class=&quot;xref&quot;&gt;Installing   new software&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Multiple analysis databases and how they relate to installing InfoSphere Information Server&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt; &lt;span class=&quot;ph&quot;&gt;IBM InfoSphere Information Analyzer&lt;/span&gt; now supports multiple analysis databases. Each   InfoSphere Information Analyzer project is associated with a specific analysis database. The analysis database might be used   by a single InfoSphere Information Analyzer project, or it might be shared by multiple InfoSphere Information Analyzer   projects. For more information about what you need to know at installation time, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_pln_topo_includingia.html&quot; 

class=&quot;xref&quot;&gt;Locations for the analysis databases&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Secure HTTP (HTTPS) support&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;IBM InfoSphere Information Server supports HTTPS communication between the application server and client   components. If your environment requires confidentiality at this level, you can enable HTTPS.&lt;/dd&gt; &lt;dd class=&quot;dd&quot;&gt;HTTPS   provides two benefits:&lt;ul class=&quot;ul&quot;&gt;&lt;li class=&quot;li&quot;&gt;Encryption: Data sent over an HTTPS connection is encrypted.&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Identification: Communication is allowed only if the server is positively verified. Before communications begin, the server sends the client a certificate. The signature in the certificate is decrypted by the client to verify the authenticity of the sender.&lt;/li&gt;
&lt;/ul&gt;&lt;/dd&gt; &lt;dd class=&quot;dd&quot;&gt;HTTPS configuration is optional. If you do not configure HTTPS, HTTP is used instead.&lt;/dd&gt; &lt;dd 

class=&quot;dd&quot;&gt;For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_pln_ssl.html&quot; class=&quot;xref&quot;&gt;Secure Sockets   Layer (SSL) configuration&lt;/a&gt;.&lt;/dd&gt; &lt;dd class=&quot;dd&quot;&gt;&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Secure Sockets Layer (SSL) for inbound RMI/IIOP is disabled by default&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;SSL for inbound RMI/IIOP is no longer enabled when you install InfoSphere Information Server. You must now   actively enable this security feature. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_config_sslenable.html&quot; 

class=&quot;xref&quot;&gt;Enablement of Secure Sockets Layer (SSL)&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;/dd&gt;  &lt;/dl&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Administering&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;New Auditing Service&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;The Auditing Service creates an audit trail of security-related events. This includes all activities that set   or modify security-related settings and all user authentications and application logins. You can configure which audit events   to log and how much information to include based on auditing requirements. For information about how to configure the   Auditing Service, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.found.admin.common.doc/topics/wsisadmin_config_audit_overview.html&quot; class=&quot;xref&quot;&gt;Audit logging   configuration&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;New roles&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;There are new roles for common metadata, IBM InfoSphere Business Glossary, and InfoSphere Information   Analyzer. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.found.admin.common.doc/topics/c_wdisad_Roles.html&quot; class=&quot;xref&quot;&gt;Security role   overview&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;New entitlement scheme&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;IBM has changed the entitlement scheme for InfoSphere Information Server. IBM no longer supplies each customer   with a custom license file that programmatically restricts the product modules and components that can be installed and used.   Instead, all InfoSphere Information Server product components and features are presented for installation. It is your   responsibility to install only those items that are indicated on your Proof of Entitlement.&lt;/dd&gt; &lt;dd class=&quot;dd&quot;&gt;When you   install IBM InfoSphere DataStage&amp;reg;, the program prompts you to select the InfoSphere DataStage editions and feature packs   to install and activate. Each item in the selection list enables associated InfoSphere DataStage canvases and job features.   Select the items for which you have a valid Proof of Entitlement from IBM. The installation program activates the features   that are associated with the items that you select. Any other editions or feature packs are deactivated and cannot be   used.&lt;/dd&gt; &lt;dd class=&quot;dd&quot;&gt;If you later acquire entitlements for an additional InfoSphere DataStage edition or feature pack,   to use the features that are included in the item you must activate the item by using the LicensingServiceAdmin tool. If you   no longer have entitlement for an item, you must deactivate it by using the tool. When you deactivate the edition or feature   pack, the features within the item are no longer available for use.&lt;/dd&gt; &lt;dd class=&quot;dd&quot;&gt;For more information, refer to &lt;a 

shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.found.moz.wc.admin.doc/topics/t_admin_licenses_managing.html&quot; 

class=&quot;xref&quot;&gt;Activating entitled IBM InfoSphere DataStage editions and feature packs&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;/dd&gt;  &lt;/dl&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;New URL for the web console&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;The URL for the InfoSphere Information Server web console is  &lt;a target=&quot;_blank&quot; shape=&quot;rect&quot; 

href=&quot;http://hostname:9080/ibm/iis/console&quot; class=&quot;xref&quot;&gt;http://hostname:9080/ibm/iis/console&lt;/a&gt;. The previous URL was &lt;a 

target=&quot;_blank&quot; shape=&quot;rect&quot; href=&quot;http://hostname:9080/&quot; class=&quot;xref&quot;&gt;http://hostname:9080/&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Reporting&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Report templates&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Provides report templates for the suite components that you installed.  The Information Center provides tables   that detail the roles, permissions, and result formats for all report templates. For more information, refer to &lt;a 

shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.found.moz.reporting.doc/topics/rtab_r_WebConsoleReportTemplates.html&quot; 

class=&quot;xref&quot;&gt;Available reports and templates&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;/dd&gt;  &lt;/dl&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Data source connectors&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Connectors for Server jobs&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now use IBM InfoSphere Connectors to create and run InfoSphere DataStage Server jobs.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Connector migration tool support&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Provides support for InfoSphere DataStage server jobs.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;z/OS&amp;reg; File Stage&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now use the Z/OS File Stage to read and write mainframe resident native files seamlessly from   InfoSphere Information Server, running on non-Z/OS platforms. This requires IBM InfoSphere Classic Federation.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Distributed Transaction Stage&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Provides the following additional targets: ODBC and IBM WebSphere MQ.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Connectors support multiple input links&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now create multiple input links and configure the write methods in the target connector stage.&lt;/dd&gt;    &lt;/dl&gt;&lt;/dd&gt;  &lt;/dl&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;New data integration project management tool&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Blueprint Director is a new capability to further strengthen the alignment of business and IT allowing you to   govern your information projects. The integration team can collaborate on actionable information blueprints that connect the   business vision with the corresponding technical metadata. It directs the team to apply best practices based on reference   architectures and methodology.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Moving assets between installations of InfoSphere Information Server&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now use the istool command line to move the following types of assets between metadata   repositories:&lt;ul class=&quot;ul&quot;&gt;&lt;li class=&quot;li&quot;&gt;InfoSphere Business Glossary assets: Categories and terms and links to assigned assets and to stewards.&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;InfoSphere FastTrack assets: Project templates, projects, mapping specifications, mapping components, and their related assets.&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;InfoSphere Information Analyzer assets: Projects, data classes, and the common metadata and reports that are associated with projects.&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Reporting assets: Reports and report results that are created in the InfoSphere Information Server console or Web console. &lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Security assets: Users, groups, roles, and credentials for InfoSphere Information Server.&lt;/li&gt;
&lt;/ul&gt;In previous releases only InfoSphere DataStage and QualityStage assets and common metadata could be transferred between   repositories.  This new functionality lets you move a wide range of inter-related InfoSphere Information Server assets   between development, test, and production environments. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.iisinfsv.assetint.nav.doc/containers/istool_container_topic.html&quot; class=&quot;xref&quot;&gt;Managing assets   by using the command line&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Full command-line support for MetaBroker&amp;reg; and bridge imports&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can import metadata by using the command-line and automatically save your import parameters and filter   settings to files for future command-line use. In previous releases, command-line support was limited and required manual   creation of parameter XML files. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.mdbbr.doc/topics/t_IEM_importing_exporting_commandline.html&quot; class=&quot;xref&quot;&gt;Importing metadata   by using the command line&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;whats_new_85__bg&quot; class=&quot;section&quot;&gt;&lt;a shape=&quot;rect&quot; name=&quot;whats_new_85__bg&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__ds&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;IBM InfoSphere Business Glossary&lt;/h2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__suite_prod&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Enhanced InfoSphere Business Glossary Client for Eclipse integration with InfoSphere Data Architect&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;InfoSphere Data Architect users can view updated content from the InfoSphere Business Glossary and create   assigned relationships between these terms and data models in InfoSphere Data Architect. You can exchange these relationships   between InfoSphere Data Architect and the business glossary. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.bg.doc/topics/c_int_eclipse.html&quot; class=&quot;xref&quot;&gt;Integration with Eclipse-based   software&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Enhanced integration with InfoSphere Information Analyzer: valid values&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;InfoSphere Business Glossary users can  view the valid values and valid values reference tables that were used   as the basis of  InfoSphere Information Analyzer analysis of database columns.  Previous versions included other InfoSphere   Information Analyzer analysis information but not valid values or valid values reference tables. For information about how to   view the details of an asset, which includes these values, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.bg.doc/topics/c_iusrgde_BrowseReposObjects.html&quot; class=&quot;xref&quot;&gt;Viewing the properties of an   asset&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Basic User role&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;This new user role enables InfoSphere Business Glossary business users to view only the information most   relevant to them.  Users who are assigned only this InfoSphere Business Glossary role can view business terms and their   attributes.  These users cannot view assigned assets and data sources. For more information, refer to  &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.bg.doc/topics/c_iadmgde_Roles.html&quot; class=&quot;xref&quot;&gt;Roles&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Business intelligence to business glossary import&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now import a business intelligence (BI) model, such as an IBM Cognos&amp;reg; Framework Manager model or a   BusinessObjects Universe and create a structured glossary from it. Because, in many cases, business intelligence reports   represent the intersection of business language and key data, these models can be excellent sources for initial population of   glossary content. For more information, refer to  &lt;a target=&quot;_blank&quot; shape=&quot;rect&quot; 

href=&quot;http://www.ibm.com/support/docview.wss?uid=swg27018702&quot; class=&quot;xref&quot;&gt;Automatically generating IBM InfoSphere Business   Glossary content from business intelligence models&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;whats_new_85__ds&quot; class=&quot;section&quot;&gt;&lt;a shape=&quot;rect&quot; name=&quot;whats_new_85__ds&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__ft&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt; &lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;IBM InfoSphere DataStage&lt;/h2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__bg&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;High-availability configuration for the engine tier&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can configure an active-passive configuration managed by high-availability cluster-management software,   such as IBM Tivoli System Automation for Multiplatforms. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.ha.install.doc/topics/wsisinst_pln_ha_overview.html&quot; class=&quot;xref&quot;&gt;High   availability configurations&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Recovering from an engine tier failover&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;New tools and features are available for ensuring the integrity of projects and data after an engine tier   failover. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.found.admin.ha.common.doc/topics/admclstr_enginetierfailover.html&quot; class=&quot;xref&quot;&gt;Engine tier   failover recovery&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Integrating with your source control system&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now use the InfoSphere Information Server Manager deployment tool to manage your InfoSphere DataStage   and QualityStage jobs and associated assets in your source control system. The deployment tool gives you direct access to   these source control systems: Concurrent Versions System (CVS) and IBM Rational&amp;reg; ClearCase&amp;reg;.  You can use any source   control system that supports the Eclipse Team programming interface. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ds.deploy.help.doc/topics/versioncontol.html&quot; class=&quot;xref&quot;&gt;Source control of InfoSphere   DataStage and QualityStage assets&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Optimizing parallel jobs in the DataStage Designer client&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Balanced Optimization is integrated into the Designer client to provide a more natural workflow for improving   the performance of some IBM InfoSphere DataStage jobs. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ds.parjob.dev.doc/topics/introductiontobalancedoptimization.html&quot; class=&quot;xref&quot;&gt;Introduction to   InfoSphere DataStage Balanced Optimization&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Enhancements to the Transformer stage&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Null values can now be included in any expression, so you no longer need to explicitly handle null values in   an expression. You can now define loops that output multiple output rows from every input row or that aggregate multiple   input rows into a single input row. When your data is grouped on a column, and is sorted on that column, you can now detect   when you process the last row before the value in that column changes. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ds.parjob.dev.doc/topics/c_deeref_Transformer_Stage.html&quot; class=&quot;xref&quot;&gt;Transformer   stage&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Vertical pivoting&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now specify a vertical pivoting operation in the Enterprise Pivot stage that maps a set of rows in the   input data to single or multiple output columns. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ds.parjob.dev.doc/topics/c_pivot.html&quot; class=&quot;xref&quot;&gt;Pivot Enterprise stage&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Multiple null field values on Import&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now specify a set of values in the import data that are treated as null when importing data in stage   such as the Sequential  File stage. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ds.parjob.dev.doc/topics/r_deeref_output_Link_Format_Tab_sequential_file_stage.html&quot; 

class=&quot;xref&quot;&gt;Sequential File stage: Output link format tab&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Copying roles from an existing project.&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now specify that a new project will inherit users, groups, and associated roles from an existing   project. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ds.admin.help.doc/topics/AddProjectdialogbox.html&quot; class=&quot;xref&quot;&gt;Add Project window&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Environment variables created during import&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;When you import a job or parameter set that uses environment variables as parameters, if the  environment   variables do not already exist in the project, they will be created. for more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ds.design.doc/topics/t_ddesref_Importing_Previously_Exported_Objects.html&quot; 

class=&quot;xref&quot;&gt;Importing previously exported objects&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Missing columns in the Data Set stage&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now specify what action is taken for columns that are defined on the link but are not contained in the   source data set. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ds.parjob.dev.doc/topics/datasetoutproperties-optionscategory.html&quot; class=&quot;xref&quot;&gt;Data Set   stage: Options category&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Saving job logs to the metadata repository&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;When jobs run, you  can save the logging information to the metadata repository of InfoSphere Information   Server. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ds.admin.doc/topics/Enabling_OR_logging.html&quot; class=&quot;xref&quot;&gt;Enabling operational repository   logging&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Improved support features in the Designer client&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ds.trouble.ref.doc/topics/designerclienterrors.html&quot; class=&quot;xref&quot;&gt;Handling exceptions in the   Designer client&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;/div&gt;&lt;form action=&quot;https://www.paypal.com/cgi-bin/webscr&quot; method=&quot;post&quot;&gt;&lt;input type=&quot;hidden&quot; name=&quot;cmd&quot; value=&quot;_s-xclick&quot;&gt; &lt;input type=&quot;hidden&quot; name=&quot;encrypted&quot; value=&quot;-----BEGIN PKCS7-----MIIHRwYJKoZIhvcNAQcEoIIHODCCBzQCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYAXOzfZP5C9j7v+R1Av1LI+Gb3dQW38ZGQ2jjZJ9BuGSyeoUToTLbatge/aiAzNdoIQ32uxnUAEFRgfIC2UI6rOId9Hy5UCbmqDbMkWBHfeC5UkEwzQK1dROfBwl/31QxeK9kjAvNnOC7sWh7jRZBbRmUAfcw2zQEPNb1GMCxeD7zELMAkGBSsOAwIaBQAwgcQGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIVPHFN8mEYXCAgaDtEdTzNpqzl20lMMKuu124kVzqUl1GyE93el/X5o8GxRtRMr9v2LRii8BFsb6fkO+qzXSmSq4Yq+q9ymMsWh5GZODDAcs/SjspMak3tMoAqloSnzV40pSim318vNZ3FNrExTus0IHh2bQHqNzCug7z+Ub31yGMBzTAuK5QR6O0eOPcR0gCu2cm+SWAgevgyfLTOU4hFBntqTUH7bR28bx0oIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTEwMzA1MTk1NTUwWjAjBgkqhkiG9w0BCQQxFgQUlsu1KIZGR3CcWLaju9t5FKvmjAswDQYJKoZIhvcNAQEBBQAEgYCsmHC8jJ9yldpHy0tA9q9HmLELODtP42m9gPEYRNI5Kskrubjdhft4jSbHIjMszt7qqtwN+14lsNuIDth7PQuU+Yl6KXWOfeOF2Vz0T4F+8yQ+ObmXrCNhomMUR/w5wAvV2yK//O/bR8UkbxFA/hF9mPzNCvHta/e3xpXgPVA8hw==-----END PKCS7-----
&quot;&gt; &lt;input type=&quot;image&quot; src=&quot;https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif&quot; border=&quot;0&quot; name=&quot;submit&quot; alt=&quot;PayPal - The safer, easier way to pay online!&quot; align=&quot;right&quot;&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://www.paypal.com/en_US/i/scr/pixel.gif&quot; width=&quot;1&quot; height=&quot;1&quot;&gt; &lt;/form&gt;&lt;br /&gt;
&lt;div id=&quot;whats_new_85__ft&quot; class=&quot;section&quot;&gt;&lt;a shape=&quot;rect&quot; name=&quot;whats_new_85__ft&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__ia&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;IBM InfoSphere FastTrack&lt;/h2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__ds&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt;&lt;/span&gt; &lt;p class=&quot;p&quot;&gt;&lt;/p&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Data Rule Definitions&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can use Data Rule Definitions (DRDs) to define the relationships between data sources when creating   mapping specifications. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.usage.doc/topics/createsdrft.html&quot; class=&quot;xref&quot;&gt;Creating shared data rules&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Audit Trail history&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can track the history of changes made in InfoSphere FastTrack for auditing purposes. For more information,   refer to &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.usage.doc/topics/audittrailft.html&quot; class=&quot;xref&quot;&gt;Tracking changes   for auditing&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Mapping report enhancements&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;For a large number of column mappings, you can now view the mapping report in a specific order, such as by   user, by table, by status, or by date. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.usage.doc/topics/reports.html&quot; class=&quot;xref&quot;&gt;Reports for IBM InfoSphere FastTrack&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Improved mapping specification retrieval capability&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now retrieve mapping specifications from an existing InfoSphere DataStage job into InfoSphere   FastTrack as mapping specifications or mapping compositions. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.usage.doc/topics/reveng.html&quot; class=&quot;xref&quot;&gt;Generating mapping specifications from IBM   InfoSphere DataStage jobs&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Mapping compositions&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;A mapping composition is a new first order object that allows you to define a set of mapping specifications   and their relationships. Previously, you could only define compositions real-time when generating jobs. Now you can name   these mapping compositions and reuse them. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.usage.doc/topics/mappingcontainers.html&quot; class=&quot;xref&quot;&gt;Populating mapping specifications   with mapping components&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Specification Change Propagation updates&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Use the InfoSphere FastTrack Generation Wizard to determine if a targeted, existing InfoSphere DataStage job   can be annotated. InfoSphere FastTrack can now detect the delta between a current job generation selection and the history of   the first job iteration. The delta is then propagated to the related InfoSphere DataStage job. For more information, refer to   &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.usage.doc/topics/specprop.html&quot; class=&quot;xref&quot;&gt;Specification change   propagation&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Project template support&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;A Project Template is available to facilitate the sharing of settings and objects across projects. The Project   Template has common settings and objects that can be used by multiple projects. For more information, refer to &lt;a 

shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.admin.doc/topics/ftusinftemp.html&quot; class=&quot;xref&quot;&gt;Using a project   template&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Reject log records for lookup definitions&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now choose to log the reject records in a sequential file stage by using the modified Lookup   Definition feature in InfoSphere FastTrack. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.usage.doc/topics/lookupdeftask.html&quot; class=&quot;xref&quot;&gt;Adding source columns to mapping   specifications from lookup tables&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Hyperlink enhancements&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;URLs can be made into hyperlinks in fields that link to an external document. For more information, refer to   &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.usage.doc/topics/createspecs.html&quot; class=&quot;xref&quot;&gt;Creating mapping   specifications&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Context assistance feature&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;From the Expression Editor field, press &amp;lt;ctrl&amp;gt; + space to open a list of valid functions and fields from   which you can select to populate the expression editor. For more information, refer to  &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.usage.doc/topics/functiondefine.html&quot; class=&quot;xref&quot;&gt;Applying rule expressions on columns to   transform data&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Scope feature&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Define the scope for your mapping specifications so that you can later select the metadata to use from a   consolidated list. For more information, refer to  &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.usage.doc/topics/definescope.html&quot; class=&quot;xref&quot;&gt;Defining the scope for your mapping   specifications&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Enhanced CSV Import &lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can create a mapping specification from a CSV (Comma Separated Values) file by combining multiple columns   in the input file to create one or more values, such as a multi-part name, for your mapping specification. For more   information, refer to &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ft.usage.doc/topics/importcsvoptions.html&quot; 

class=&quot;xref&quot;&gt;Import from CSV options&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;whats_new_85__ia&quot; class=&quot;section&quot;&gt;&lt;a shape=&quot;rect&quot; name=&quot;whats_new_85__ia&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__iisd&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt; &lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;IBM InfoSphere Information Analyzer&lt;/h2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__ft&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt; &lt;p class=&quot;p&quot;&gt;IBM InfoSphere Information Analyzer can help you quickly and easily understand your data by offering data quality assessment, flexible data rules design and analysis, and quality monitoring capabilities. These insights can help you derive more information from enterprise data to accelerate information-centric projects.&lt;/p&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Supports sharing of InfoSphere Information Analyzer source analysis results through InfoSphere Business Glossary&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;In addition to the existing summary results, you can now gain better understanding and insight into the valid   values of source columns that are represented by business terms. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ia.edm.doc/topics/c_edm_enterprise_data_manage.html&quot; class=&quot;xref&quot;&gt;Metadata management&lt;/a&gt; and   &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ia.application.doc/topics/c_global_vs_var.html&quot; class=&quot;xref&quot;&gt;Local and global   variables&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Expanded collaboration between business users and IT&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You now have an improved ability to link data sources directly to business terms in InfoSphere Information   Analyzer and deliver broader understanding of data to business users through context-sensitive menu options, enhanced term   browsers, and presentation of terms with standard data classifications.  For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ia.edm.doc/topics/t_edm_create_bg_term.html&quot; class=&quot;xref&quot;&gt;Creating, editing, or deleting   InfoSphere Business Glossary terms&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Supports asset interchange for projects and analysis results&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now export InfoSphere Information Analyzer project information to other InfoSphere Information Server   environments to maximize distribution of data analysis insights. For more information, refer to  &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ia.asset.doc/topics/ai_asset_interchange_overview.html&quot; class=&quot;xref&quot;&gt;InfoSphere Information   Analyzer assets&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Supports import of published analysis results&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can import the analysis results from other IBM InfoSphere Information Server products to view high-level   analysis results within InfoSphere Information Analyzer. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ia.import.doc/topics/t_import_published_results.html&quot; class=&quot;xref&quot;&gt;Importing published   analysis results&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Supports native Oracle connectivity&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can leverage native connectors when you run column analyses, key analyses, and data rules. Teradata, DB2,   and Oracle connectors are supported in addition to ODBC connectors.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Supports external retrieval of information via HTTP API and HTTPS protocol&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can now develop applications with the Hypertext Transfer Protocol (HTTP) application programming interface   (API) to access and analyze InfoSphere Information Analyzer content. You can:&lt;ul class=&quot;ul&quot;&gt;&lt;li class=&quot;li&quot;&gt;Integrate InfoSphere Information Analyzer content in other non-IBM environments without the use of the rich client. For example, you can:&lt;ul class=&quot;ul&quot;&gt;&lt;li class=&quot;li&quot;&gt;Run column analysis or data rules from a web portal and retrieve the results&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Program the batch execution of a large set of rules and column analysis tasks with a non-IBM scheduler&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Generate custom reports, such as combine the results of several requests in one report and use XSLTs to format it as needed&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Deploy InfoSphere Information Analyzer project templates without the use of the rich client. For example, you can:&lt;ul class=&quot;ul&quot;&gt;&lt;li class=&quot;li&quot;&gt;Extract existing projects as XML documents&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Edit the XML manually if necessary and use source control to track changes&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Deploy on different systems. The rules are automatically recreated.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;For more information, refer to &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ia.restapi.doc/topics/c_iarestapi_intro.html&quot; 

class=&quot;xref&quot;&gt;Developing applications with the HTTP API&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;whats_new_85__iisd&quot; class=&quot;section&quot;&gt;&lt;a shape=&quot;rect&quot; name=&quot;whats_new_85__iisd&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__mdwb&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;IBM InfoSphere Information Services Director&lt;/h2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__ia&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;New command line interface tool&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;The InfoSphere Information Services Director administration and deployment command line interface can be used   to administer InfoSphere Information Services Director resources such as applications and services. You can use this tool to   move these resources between different installations of InfoSphere Information Services Director, deploy and undeploy these   resources, and modify the metadata information in these resources. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.infoservdir.admin.deploy.cli.doc/topics/cont_iisinfsrv_admin_deploy_cli.html&quot; class=&quot;xref&quot;&gt;IBM   InfoSphere Information Services Director command line interface&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;New service bindings&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;The Text over HTTP binding allows you to customize the format of messages for HTTP requests and response   payloads to conform to specific requirements. When you use the Text over HTTP binding, you can send data in SOAP, XML, text,   or any other format to InfoSphere Information Services Director by transforming the request payload. You can apply your own   XSLT stylesheet before it is sent to the information provider to transform the request payload. The XSLT style sheet that you   provide is also used to transform the information provider results before it is returned in the HTTP response. For more   information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.infoservdir.user.doc/topics/c_isd_user_bindings_text_over_http.html&quot; class=&quot;xref&quot;&gt;Text over   HTTP service binding&lt;/a&gt;.&lt;/dd&gt; &lt;dd class=&quot;dd&quot;&gt;For distributed hypermedia systems, IBM InfoSphere Information Services   Director can generate services that use a REST (Representational State Transfer) invocation: HTTP GET, POST, PUT, and DELETE   for service requests and XML or JSON format for the response.  For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.infoservdir.user.doc/topics/c_isd_user_bindings_rest2.html&quot; class=&quot;xref&quot;&gt;REST 2.0 service   binding&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;whats_new_85__mdwb&quot; class=&quot;section&quot;&gt;&lt;a shape=&quot;rect&quot; name=&quot;whats_new_85__mdwb&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__qs&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt; &lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;IBM InfoSphere Metadata Workbench&lt;/h2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__iisd&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Supports InfoSphere FastTrack mapping specifications for extended data lineage&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;InfoSphere FastTrack allows the documentation of source-to-target mappings, which are similar to extended   mapping documents in the metadata workbench. Business users can directly use InfoSphere FastTrack mapping specifications for   extended data lineage without the need to import the mapping specification. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.mdwb.admin.doc/topics/t_configFTMappingsForBusinessLineage.html&quot; class=&quot;xref&quot;&gt;Configuring   InfoSphere FastTrack mapping specifications for lineage reports&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Supports IBM InfoSphere Discovery mapping specifications for extended data lineage&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;InfoSphere Discovery allows the documentation of source-to-target mappings, which are similar to extended   mapping documents in the metadata workbench. Business users can import InfoSphere Discovery mapping specifications for   extended data lineage by using a configuration file in an XML format. The configuration file defines which InfoSphere   Discovery column corresponds to which column the metadata workbench. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.mdwb.admin.doc/topics/t_importingExtensionMappings.html&quot; class=&quot;xref&quot;&gt;Importing extension   mapping documents and their mappings&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Business Intelligence assets can be deleted using the Repository Management tab of the Web console&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Business Intelligence (BI) assets can no longer be deleted in the Metadata Workbench. This functionality is   available in the Repository Management tab of the Web console, where all types of common metadata can be browsed and deleted.   For more information, refer to &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.iem.doc/topics/c_managing_metadata.html&quot; 

class=&quot;xref&quot;&gt;Managing metadata assets&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;whats_new_85__qs&quot; class=&quot;section&quot;&gt;&lt;a shape=&quot;rect&quot; name=&quot;whats_new_85__qs&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;span class=&quot;navsection&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__doc&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt; &lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;IBM InfoSphere QualityStage&lt;/h2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__mdwb&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Combinable processing&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;The Designer client now combines the process that executes in the Standardize stage with other operators in a   job so that you have one process rather than a series of processes linked. You can reduce the footprint of the job by   minimizing the number of processes that have to be started. Multi-national Standardize (MNS) reaps benefits from the   combinable Standardize operator. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/r_Advanced_tab_stage.html&quot; class=&quot;xref&quot;&gt;Advanced tab&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Locale tokenization&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can specify the regional setting that you want to use in a rule set, and thereby indicate the way you want   tokens handled. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.patguide.doc/topics/r_tokenizer.html&quot; class=&quot;xref&quot;&gt;Specifying the tokenizer&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Reporting for data standardization&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can use the reports to assess the results of your standardization process and verify that the results meet   your data quality objectives. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/c_standardization_reports.html&quot; class=&quot;xref&quot;&gt;Standardization Quality   Assessment (SQA) reports&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Additional rules&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Rules enforce consistency and quality on the data that they are applied against. You now have an increased   number of rule sets to handle country or region-specific data. For the list of predefined rule sets, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/c_qsrules.html&quot; class=&quot;xref&quot;&gt;Predefined rule sets&lt;/a&gt;. For information on how   to install rules from asset interchange, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/t_import_rulesets.html&quot; class=&quot;xref&quot;&gt;Importing rule sets&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Additional rules tools&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can install a rule set development package from asset interchange. The package includes Standardization   rules templates for domains, a Standardization rules development kit, and a Standardization quality assessment kit. For more   information on the package, refer to &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/c_qsrules.html&quot; 

class=&quot;xref&quot;&gt;Predefined rule sets&lt;/a&gt;. &lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Enhanced Match Designer&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;The content, format, and functionality within the Match Designer is enhanced for ease of use and  provides   more insight into the matching process. For example, you can view all match types and reorder Blocking Columns and Match   Commands.  For more information on creating match passes, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/c_amatchpass.html&quot; class=&quot;xref&quot;&gt;Defining match passes&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Match performance improvements&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;You can make changes to the Sort stage in the InfoSphere DataStage and QualityStage Designer client to improve   match performance.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Easily consumable reports for match specifications&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Use the reports to obtain sign off from business stakeholders on the criteria used to match data. For more   information, refer to &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/c_matchspec_report.html&quot; 

class=&quot;xref&quot;&gt;Reporting for match specifications&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;/div&gt;&lt;div id=&quot;whats_new_85__doc&quot; class=&quot;section&quot;&gt;&lt;a shape=&quot;rect&quot; name=&quot;whats_new_85__doc&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;&lt;/span&gt; &lt;h2 class=&quot;title sectiontitle&quot;&gt;Documentation introduced with Version 8.5&lt;/h2&gt;&lt;hr&gt;&lt;span class=&quot;navsection&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;#whats_new_85__qs&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt; &lt;p class=&quot;p&quot;&gt;The following documentation additions and changes were introduced with InfoSphere Information Server Version 8.5.&lt;/p&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Reorganization of the Planning, Installation, and Configuration information&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;The Installation information has been reorganized into the following sections so that it is easier for you to   use:&lt;ul class=&quot;ul&quot;&gt;&lt;li class=&quot;li&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_pln_ovrvw.html&quot; 

class=&quot;xref&quot;&gt;Planning for the installation of IBM InfoSphere Information Server&lt;/a&gt; &lt;/li&gt;
&lt;li class=&quot;li&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_pln_prodmods.html&quot; 

class=&quot;xref&quot;&gt;Preparing the tier computers&lt;/a&gt; &lt;/li&gt;
&lt;li class=&quot;li&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_topinstall.html&quot; 

class=&quot;xref&quot;&gt;Installing IBM InfoSphere Information Server software&lt;/a&gt; &lt;/li&gt;
&lt;li class=&quot;li&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/cont_iisinfsrv_config.html&quot; 

class=&quot;xref&quot;&gt;Configuring the software after installation&lt;/a&gt; &lt;/li&gt;
&lt;li class=&quot;li&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.ha.install.doc/topics/wsisinst_ha_top.html&quot; 

class=&quot;xref&quot;&gt;Creating highly available, scalable configurations&lt;/a&gt; &lt;/li&gt;
&lt;li class=&quot;li&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_rem_is.html&quot; 

class=&quot;xref&quot;&gt;Removing IBM InfoSphere Information Server software&lt;/a&gt; &lt;/li&gt;
&lt;li class=&quot;li&quot;&gt; &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_ts_is_container.html&quot; 

class=&quot;xref&quot;&gt;Troubleshooting installations&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/dd&gt; &lt;dd class=&quot;dd&quot;&gt;The installation information now also includes checklists that guide the user through the installation   of InfoSphere Information Server in various server topologies and configurations.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;New troubleshooting topics&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Added new troubleshooting topics for:&lt;ul class=&quot;ul&quot;&gt;&lt;li class=&quot;li&quot;&gt;General installation&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Authentication&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Application server issues&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Reporting&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Client and console&lt;/li&gt;
&lt;li class=&quot;li&quot;&gt;Software removal problems&lt;/li&gt;
&lt;/ul&gt;For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_ts_is_container.html&quot; 

class=&quot;xref&quot;&gt;Troubleshooting installations&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Overview of IBM InfoSphere Information Server&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;IBM InfoSphere Foundation Tools&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Added an overview of the IBM InfoSphere Foundation Tools. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;.http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.overview.doc/topics/c_intro_foundationtools.html&quot; 

class=&quot;xref&quot;&gt;InfoSphere Foundation Tools&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Overview of high availability and clustering&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Added an overview of high availability and clustering. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.overview.doc/topics/cisoarchscalecommonserviceslayer.html&quot; 

class=&quot;xref&quot;&gt;Scalability of the common services tier&lt;/a&gt; and &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.overview.doc/topics/cisoarchhighavailabilitytop.html&quot; 

class=&quot;xref&quot;&gt;High availability in InfoSphere Information Server&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;New Auditing Service&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;The Auditing Service creates an audit trail of security-related events. This includes all activities that set   or modify security-related settings and all user authentications and application logins. You can configure which audit events   to log and how much information to include based on auditing requirements. For an overview of the new Auditing Service, refer   to &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.overview.doc/topics/cisoarchadminservice.html&quot; 

class=&quot;xref&quot;&gt;Administrative services&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;IBM InfoSphere Classic Federation&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Added an overview of IBM InfoSphere Classic. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.productization.iisinfsv.overview.doc/topics/cisoclais.html&quot; class=&quot;xref&quot;&gt;Classic products   overview&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Integration scenarios&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;The integration scenarios focus on data quality within a data warehouse implementation. For more information,   refer to &lt;a shape=&quot;rect&quot; href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ift.integration.doc/topics/ift_int_overview.html&quot; 

class=&quot;xref&quot;&gt;InfoSphere Information Server integration scenarios&lt;/a&gt;.&lt;/dd&gt;&lt;/dl&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;InfoSphere Information Analyzer methodology and best practices&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Includes a new section of methodology and best practices for working with rules in InfoSphere Information   Analyzer by using defined and documented methods. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.ia.application.doc/topics/dq_method.htm

l&quot; class=&quot;xref&quot;&gt;Data quality methodology&lt;/a&gt;.&lt;/dd&gt;  &lt;/dl&gt;&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;InfoSphere QualityStage&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;
&lt;dl class=&quot;dl&quot;&gt;&lt;dt class=&quot;dt dlterm&quot;&gt;Easily available pattern-action language information&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Now integrated into the Information Center. See &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.patguide.doc/topics/c_container_topi

c.html&quot; class=&quot;xref&quot;&gt;IBM InfoSphere QualityStage Pattern Action reference&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Major changes to the user&#39;s guide&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Includes a walk through of the overall InfoSphere QualityStage methodology, new information about using match   weight overrides, and elaboration on concepts such as match. For more information, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/c_InfoSphere_QualitySt

age_work_flow.html&quot; class=&quot;xref&quot;&gt;InfoSphere QualityStage methodology&lt;/a&gt; and the topics that immediately follow the topic.   For information on match weight overrides, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/t_Specifying_weight_ov

errides.html&quot; class=&quot;xref&quot;&gt;Specifying weight overrides&lt;/a&gt;. For information that explains key concepts of match, refer to the   topics such as &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/MatchingConcepts.html&quot; 

class=&quot;xref&quot;&gt;Match: key concepts&lt;/a&gt;, &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/mgmtofstatprops.html&quot; 

class=&quot;xref&quot;&gt;How match manages large volumes of data&lt;/a&gt;, and &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/weightandcompare.html&quot; 

class=&quot;xref&quot;&gt;Weights and record comparisons&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;New information about designing real-time jobs&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Enhanced the InfoSphere Information Services Director user&#39;s guide. See &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.infoservdir.user.doc/topics/c_isd_user_

ds_qs_job_topologies.html&quot; class=&quot;xref&quot;&gt;Designing IBM InfoSphere DataStage and QualityStage jobs as services&lt;/a&gt;.&lt;/dd&gt;
&lt;dt class=&quot;dt dlterm&quot;&gt;Updated information about rule sets&lt;/dt&gt;
&lt;dd class=&quot;dd&quot;&gt;Included a comprehensive listing of predefined rule sets and rule set characteristics.  For the list of   predefined rule sets, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/c_qsrules.html&quot; 

class=&quot;xref&quot;&gt;Predefined rule sets&lt;/a&gt;. For rule set characteristics, refer to the topics under &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/c_ruleset_types.html&quot; class=&quot;xref&quot;&gt;Categories of rule sets&lt;/a&gt;. For   characteristics of Japanese-specific rule sets, refer to &lt;a shape=&quot;rect&quot; 

href=&quot;http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/topic/com.ibm.swg.im.iis.qs.ug.doc/topics/c_jpn_rulesets_char.ht

ml&quot; class=&quot;xref&quot;&gt;Characteristics of Japanese rule sets&lt;/a&gt;.&lt;/dd&gt;&lt;/dl&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;a shape=&quot;rect&quot; name=&quot;bottom&quot;&gt; &lt;!-- --&gt; &lt;/a&gt; &lt;form action=&quot;https://www.paypal.com/cgi-bin/webscr&quot; method=&quot;post&quot;&gt;&lt;input type=&quot;hidden&quot; name=&quot;cmd&quot; value=&quot;_s-xclick&quot;&gt; &lt;input type=&quot;hidden&quot; name=&quot;encrypted&quot; value=&quot;-----BEGIN PKCS7-----MIIHRwYJKoZIhvcNAQcEoIIHODCCBzQCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYAXOzfZP5C9j7v+R1Av1LI+Gb3dQW38ZGQ2jjZJ9BuGSyeoUToTLbatge/aiAzNdoIQ32uxnUAEFRgfIC2UI6rOId9Hy5UCbmqDbMkWBHfeC5UkEwzQK1dROfBwl/31QxeK9kjAvNnOC7sWh7jRZBbRmUAfcw2zQEPNb1GMCxeD7zELMAkGBSsOAwIaBQAwgcQGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIVPHFN8mEYXCAgaDtEdTzNpqzl20lMMKuu124kVzqUl1GyE93el/X5o8GxRtRMr9v2LRii8BFsb6fkO+qzXSmSq4Yq+q9ymMsWh5GZODDAcs/SjspMak3tMoAqloSnzV40pSim318vNZ3FNrExTus0IHh2bQHqNzCug7z+Ub31yGMBzTAuK5QR6O0eOPcR0gCu2cm+SWAgevgyfLTOU4hFBntqTUH7bR28bx0oIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTEwMzA1MTk1NTUwWjAjBgkqhkiG9w0BCQQxFgQUlsu1KIZGR3CcWLaju9t5FKvmjAswDQYJKoZIhvcNAQEBBQAEgYCsmHC8jJ9yldpHy0tA9q9HmLELODtP42m9gPEYRNI5Kskrubjdhft4jSbHIjMszt7qqtwN+14lsNuIDth7PQuU+Yl6KXWOfeOF2Vz0T4F+8yQ+ObmXrCNhomMUR/w5wAvV2yK//O/bR8UkbxFA/hF9mPzNCvHta/e3xpXgPVA8hw==-----END PKCS7-----
&quot;&gt; &lt;input type=&quot;image&quot; src=&quot;https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif&quot; border=&quot;0&quot; name=&quot;submit&quot; alt=&quot;PayPal - The safer, easier way to pay online!&quot; align=&quot;right&quot;&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://www.paypal.com/en_US/i/scr/pixel.gif&quot; width=&quot;1&quot; height=&quot;1&quot;&gt; &lt;/form&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/8662425518620103065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2011/03/new-features-changes-in-ibm-infosphere.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/8662425518620103065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/8662425518620103065'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2011/03/new-features-changes-in-ibm-infosphere.html' title='New features &amp; changes in IBM InfoSphere Information Server 8.5'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-6548603087516330622</id><published>2011-02-08T08:30:00.001+05:30</published><updated>2011-02-21T13:25:21.019+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>DataStage Parallel Processing</title><content type='html'>Following figure represents one of the simplest jobs you could have — a data source,&lt;br /&gt;
a Transformer (conversion) stage, and the data target. The links between the stages represent the flow of data into or out of a stage. In a parallel job, each stage would normally (but not always) correspond to a process. You can have multiple instances of each process to run on the available processors in your system.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLo8mb8CkV_KQFBlemcjhuGWrrVhZK34A0Pi_RnRT8nxneE_PKvBQ-TRAxr2n7PBpW8scLn7-zMYifYrWxNYmAoDK-zGy22e21IPdz1yIceDdU0ZjApNHW4hgPmwawPsPWWCwodu2Vdpmr/s1600/jobflow.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;55&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLo8mb8CkV_KQFBlemcjhuGWrrVhZK34A0Pi_RnRT8nxneE_PKvBQ-TRAxr2n7PBpW8scLn7-zMYifYrWxNYmAoDK-zGy22e21IPdz1yIceDdU0ZjApNHW4hgPmwawPsPWWCwodu2Vdpmr/s320/jobflow.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
A parallel DataStage job incorporates two basic types of parallel processing — pipeline and partitioning. Both of these methods are used at runtime by the Information Server engine to execute the simple job shown in Figure 1-8. To the DataStage developer, this job would appear the same on your Designer canvas, but you can optimize it through advanced properties.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Pipeline parallelism&lt;/b&gt;&lt;br /&gt;
In the following example, all stages run concurrently, even in a single-node configuration. As data is read from the Oracle source, it is passed to the Transformer stage for transformation, where it is then passed to the DB2 target. Instead of waiting for all source data to be read, as soon as the source data stream starts to produce rows, these are passed to the subsequent stages. This method is called pipeline parallelism, and all three stages in our example operate simultaneously regardless of the degree of parallelism of the configuration file. The Information Server Engine always executes jobs with pipeline parallelism.&lt;br /&gt;
&lt;br /&gt;
If you ran the example job on a system with multiple processors, the stage reading would start on one processor and start filling a pipeline with the data it had read. The transformer stage would start running as soon as there was data in the pipeline, process it and start filling another pipeline. The stage writing the transformed data to the target database would similarly start writing as soon as there was data available. Thus all three stages are operating simultaneously.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Partition parallelism&lt;/b&gt;&lt;br /&gt;
When large volumes of data are involved, you can use the power of parallel processing to your best advantage by partitioning the data into a number of separate sets, with each partition being handled by a separate instance of the job stages. Partition parallelism is accomplished at runtime, instead of a manual process that would be required by traditional systems.&lt;br /&gt;
&lt;br /&gt;
The DataStage developer only needs to specify the algorithm to partition the data, not the degree of parallelism or where the job will execute. Using partition parallelism the same job would effectively be run simultaneously by several processors, each handling a separate subset of the total data. At the end of the job the data partitions can be collected back together again and written to a single data source. This is shown in following figure.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYdx7cC-Q4jNkjs1Y4XFBIz8viyz06oWKq6ezbOYMMRJU1XVsS9mzcxvOQbvAjaKiQER2F_LplhO7w7HrJNcsBvqda8bae6e1pBPPuZ4Oxx-oNm3eLghKWHFMkxDI0BxsfXs4duAGvp9EE/s1600/pipeline.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;133&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYdx7cC-Q4jNkjs1Y4XFBIz8viyz06oWKq6ezbOYMMRJU1XVsS9mzcxvOQbvAjaKiQER2F_LplhO7w7HrJNcsBvqda8bae6e1pBPPuZ4Oxx-oNm3eLghKWHFMkxDI0BxsfXs4duAGvp9EE/s320/pipeline.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Attention: You do not need multiple processors to run in parallel. A single processor is capable of running multiple concurrent processes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Partition parallelism [Combining pipeline and partition parallelism]&lt;/b&gt;&lt;br /&gt;
The Information Server engine combines pipeline and partition parallel processing to achieve even greater performance gains. In this scenario you would have stages processing partitioned data and filling pipelines so the next one could start on that partition before the previous one had finished. This is shown in the following figure.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFV4oBBatwinGBAk2DhZRJ92-Qupe3vLIRWsbj_8oQuDfNchX7FwQXCJ0fI2P44840q_XDZ4OdXcdze6vVspshOMabKZdiMiRWPy4DQPERc-4FnYdi1bu8RsBlflc25cquR_g8nf_46hVk/s1600/pipeline2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;308&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFV4oBBatwinGBAk2DhZRJ92-Qupe3vLIRWsbj_8oQuDfNchX7FwQXCJ0fI2P44840q_XDZ4OdXcdze6vVspshOMabKZdiMiRWPy4DQPERc-4FnYdi1bu8RsBlflc25cquR_g8nf_46hVk/s320/pipeline2.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
In some circumstances you might want to actually re-partition your data between stages. This could happen, for example, where you want to group data differently. Suppose that you have initially processed data based on customer last name, but now you want to process on data grouped by zip code. You will have to re-partition to ensure that all customers sharing the same zip code are in the same group. DataStage allows you to re-partition between stages as and when necessary. With the Information Server engine, re-partitioning happens in memory between stages, instead of writing to disk.</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/6548603087516330622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2011/02/datastage-parallel-processing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6548603087516330622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6548603087516330622'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2011/02/datastage-parallel-processing.html' title='DataStage Parallel Processing'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLo8mb8CkV_KQFBlemcjhuGWrrVhZK34A0Pi_RnRT8nxneE_PKvBQ-TRAxr2n7PBpW8scLn7-zMYifYrWxNYmAoDK-zGy22e21IPdz1yIceDdU0ZjApNHW4hgPmwawPsPWWCwodu2Vdpmr/s72-c/jobflow.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-1399014658596949737</id><published>2011-02-03T20:57:00.001+05:30</published><updated>2011-02-21T13:30:57.196+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="FAQ&#39;s and Best Practices"/><title type='text'>DataStage Best Practices</title><content type='html'>This section provides an overview of recommendations for standard practices.&lt;br /&gt;
The recommendations are categorized as follows:&lt;br /&gt;
* Standards&lt;br /&gt;
* Development guidelines&lt;br /&gt;
* Component usage&lt;br /&gt;
* DataStage Data Types&lt;br /&gt;
* Partitioning data&lt;br /&gt;
* Collecting data&lt;br /&gt;
* Sorting&lt;br /&gt;
* Stage specific guidelines&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Standards&lt;/h2&gt;It is important to establish and follow consistent standards in:&lt;br /&gt;
* Directory structures for installation and application support directories.&lt;br /&gt;
* Naming conventions, especially for DataStage Project categories, stage names, and links.&lt;br /&gt;
All DataStage jobs should be documented with the Short Description field, as well as Annotation fields.&lt;br /&gt;
It is the DataStage developer’s responsibility to make personal backups of their work on their local workstation, using DataStage&#39;s DSX export capability. This can also be used for integration with source code control systems.&lt;br /&gt;
Note: A detailed discussion of these practices is beyond the scope of this Redbooks publication, and you should speak to your Account Executive to engage IBM IPS Services.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Development guidelines&lt;/h2&gt;Modular development techniques should be used to maximize re-use of DataStage jobs and components:&lt;br /&gt;
* Job parameterization allows a single job design to process similar logic instead of creating multiple copies of the same job. The Multiple-Instance job property allows multiple invocations of the same job to run simultaneously. &lt;br /&gt;
* A set of standard job parameters should be used in DataStage jobs for source and target database parameters (DSN, user, password, etc.) and directories where files are stored. To ease re-use, these standard parameters and settings should be made part of a Designer Job Parameter Sets.&lt;br /&gt;
* Create a standard directory structure outside of the DataStage project directory for source and target files, intermediate work files, and so forth.&lt;br /&gt;
* Where possible, create re-usable components such as parallel shared containers to encapsulate frequently-used logic.&lt;br /&gt;
* DataStage Template jobs should be created with:&lt;br /&gt;
– Standard parameters such as source and target file paths, and database login properties&lt;br /&gt;
– Environment variables and their default settings&lt;br /&gt;
– Annotation blocks&lt;br /&gt;
* Job Parameters should always be used for file paths, file names, database login settings.&lt;br /&gt;
* Standardized Error Handling routines should be followed to capture errors and rejects.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Component usage&lt;/h2&gt;The following guidelines should be followed when constructing parallel jobs in IBM InfoSphere DataStage Enterprise Edition:&lt;br /&gt;
* Never use Server Edition components (BASIC Transformer, Server Shared Containers) within a parallel job. BASIC Routines are appropriate only for job control sequences.&lt;br /&gt;
* Always use parallel Data Sets for intermediate storage between jobs unless that specific data also needs to be shared with other applications.&lt;br /&gt;
* Use the Copy stage as a placeholder for iterative design, and to facilitate default type conversions.&lt;br /&gt;
* Use the parallel Transformer stage (not the BASIC Transformer) instead of the Filter or Switch stages.&lt;br /&gt;
Chapter 1. IBM InfoSphere DataStage overview 29&lt;br /&gt;
* Use BuildOp stages only when logic cannot be implemented in the parallel Transformer.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;DataStage data types&lt;/h2&gt;The following guidelines should be followed with DataStage data types:&lt;br /&gt;
* Be aware of the mapping between DataStage (SQL) data types and the internal DS/EE data types. If possible, import table definitions for source databases using the Orchestrate Schema Importer (orchdbutil) utility.&lt;br /&gt;
* Leverage default type conversions using the Copy stage or across the Output mapping tab of other stages.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Partitioning data&lt;/h2&gt;In most cases, the default partitioning method (Auto) is appropriate. With Auto partitioning, the Information Server Engine will choose the type of partitioning at runtime based on stage requirements, degree of parallelism, and source and target systems. While Auto partitioning will generally give correct results, it might not give optimized performance. As the job developer, you have visibility into requirements, and can optimize within a job and across job flows. Given the numerous options for keyless and keyed partitioning, the following objectives form a methodology for assigning partitioning:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Objective 1&lt;/b&gt;&lt;br /&gt;
Choose a partitioning method that gives close to an equal number of rows in each partition, while minimizing overhead. This ensures that the processing workload is evenly balanced, minimizing overall run time.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Objective 2&lt;/b&gt;&lt;br /&gt;
The partition method must match the business requirements and stage functional requirements, assigning related records to the same partition if required. Any stage that processes groups of related records (generally using one or more key columns) must be partitioned using a keyed partition method. This includes, but is not limited to: Aggregator, Change Capture, Change Apply, Join, Merge, Remove Duplicates, and Sort stages. It might also be necessary for Transformers and BuildOps that process groups of related records.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Objective 3&lt;/b&gt;&lt;br /&gt;
Unless partition distribution is highly skewed, minimize re-partitioning, specially in cluster or Grid configurations. Re-partitioning data in a cluster or Grid configuration incurs the overhead of network transport.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Objective 4&lt;/b&gt;&lt;br /&gt;
Partition method should not be overly complex. The simplest method that meets the above objectives will generally be the most efficient and yield the best performance. Using the above objectives as a guide, the following methodology can be&lt;br /&gt;
applied:&lt;br /&gt;
a. Start with Auto partitioning (the default).&lt;br /&gt;
b. Specify Hash partitioning for stages that require groups of related records&lt;br /&gt;
as follows:&lt;br /&gt;
• Specify only the key column(s) that are necessary for correct grouping as long as the number of unique values is sufficient&lt;br /&gt;
• Use Modulus partitioning if the grouping is on a single integer key column&lt;br /&gt;
• Use Range partitioning if the data is highly skewed and the key column values and distribution do not change significantly over time (Range Map can be reused)&lt;br /&gt;
c. If grouping is not required, use Round Robin partitioning to redistribute data equally across all partitions.&lt;br /&gt;
• Especially useful if the input Data Set is highly skewed or sequential&lt;br /&gt;
d. Use Same partitioning to optimize end-to-end partitioning and to minimize re-partitioning&lt;br /&gt;
• Be mindful that Same partitioning retains the degree of parallelism of the upstream stage&lt;br /&gt;
• Within a flow, examine up-stream partitioning and sort order and attempt to preserve for down-stream processing. This may require re-examining key column usage within stages and re-ordering stages within a flow (if business requirements permit).&lt;br /&gt;
Note: In satisfying the requirements of this second objective, it might not be possible to choose a partitioning method that gives an almost equal number of rows in each partition.&lt;br /&gt;
&lt;br /&gt;
Across jobs, persistent Data Sets can be used to retain the partitioning and sort&lt;br /&gt;
order. This is particularly useful if downstream jobs are run with the same degree&lt;br /&gt;
of parallelism (configuration file) and require the same partition and sort order.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Collecting data&lt;/h2&gt;Given the options for collecting data into a sequential stream, the following guidelines form a methodology for choosing the appropriate collector type:&lt;br /&gt;
1. When output order does not matter, use Auto partitioning (the default).&lt;br /&gt;
2. Consider how the input Data Set has been sorted:&lt;br /&gt;
– When the input Data Set has been sorted in parallel, use Sort Merge collector to produce a single, globally sorted stream of rows.&lt;br /&gt;
– When the input Data Set has been sorted in parallel and Range partitioned, the Ordered collector might be more efficient.&lt;br /&gt;
3. Use a Round Robin collector to reconstruct rows in input order for round-robin partitioned input Data Sets, as long as the Data Set has not been re-partitioned or reduced.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Sorting&lt;/h2&gt;Apply the following methodology when sorting in an IBM InfoSphere DataStage Enterprise Edition data flow:&lt;br /&gt;
1. Start with a link sort.&lt;br /&gt;
2. Specify only necessary key column(s).&lt;br /&gt;
3. Do not use Stable Sort unless needed.&lt;br /&gt;
4. Use a stand-alone Sort stage instead of a Link sort for options that are not available on a Link sort:&lt;br /&gt;
– The “Restrict Memory Usage” option should be included here. If you want more memory available for the sort, you can only set that via the Sort Stage — not on a sort link. The environment variable $APT_TSORT_STRESS_BLOCKSIZE can also be used to set sort memory usage (in MB) per partition.&lt;br /&gt;
– Sort Key Mode, Create Cluster Key Change Column, Create Key Change Column, Output Statistics.&lt;br /&gt;
– Always specify “DataStage” Sort Utility for standalone Sort stages.&lt;br /&gt;
– Use the “Sort Key Mode=Don’t Sort (Previously Sorted)” to resort a sub-grouping of a previously-sorted input Data Set.&lt;br /&gt;
5. Be aware of automatically-inserted sorts:&lt;br /&gt;
– Set $APT_SORT_INSERTION_CHECK_ONLY to verify but not establish required sort order.&lt;br /&gt;
6. Minimize the use of sorts within a job flow.&lt;br /&gt;
7. To generate a single, sequential ordered result set, use a parallel Sort and a&lt;br /&gt;
Sort Merge collector.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Stage specific guidelines&lt;/h2&gt;The guidelines by stage are as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Transformer&lt;/b&gt;&lt;br /&gt;
Take precautions when using expressions or derivations on nullable columns within the parallel Transformer:&lt;br /&gt;
– Always convert nullable columns to in-band values before using them in an expression or derivation.&lt;br /&gt;
– Always place a reject link on a parallel Transformer to capture / audit possible rejects.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Lookup&lt;/b&gt;&lt;br /&gt;
It is most appropriate when reference data is small enough to fit into available shared memory. If the Data Sets are larger than available memory resources, use the Join or Merge stage. Limit the use of database Sparse Lookups to scenarios where the number of input rows is significantly smaller (for example 1:100 or more) than the number of reference rows, or when exception processing.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Join&lt;/b&gt;&lt;br /&gt;
Be particularly careful to observe the nullability properties for input links to any form of Outer Join. Even if the source data is not nullable, the non-key columns must be defined as nullable in the Join stage input in order to identify unmatched records.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Aggregators&lt;/b&gt;&lt;br /&gt;
Use Hash method Aggregators only when the number of distinct key column values is small. A Sort method Aggregator should be used when the number of distinct key values is large or unknown.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Database Stages&lt;/b&gt;&lt;br /&gt;
The following guidelines apply to database stages:&lt;br /&gt;
– Where possible, use the Connector stages or native parallel database stages for maximum performance and scalability.&lt;br /&gt;
– The ODBC Connector and ODBC Enterprise stages should only be used when a native parallel stage is not available for the given source or target database.&lt;br /&gt;
– When using Oracle, DB2, or Informix databases, use Orchestrate Schema Importer (orchdbutil) to properly import design metadata.&lt;br /&gt;
– Take care to observe the data type mappings.&lt;br /&gt;
– If possible, use an SQL where clause to limit the number of rows sent to a&lt;br /&gt;
DataStage job.&lt;br /&gt;
– Avoid the use of database stored procedures on a per-row basis within a high-volume data flow. For maximum scalability and parallel performance, it is best to implement business rules natively using DataStage parallel components.</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/1399014658596949737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2011/02/datastage-best-practices.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/1399014658596949737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/1399014658596949737'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2011/02/datastage-best-practices.html' title='DataStage Best Practices'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-6035105473945556698</id><published>2011-01-26T07:58:00.000+05:30</published><updated>2011-02-10T07:06:31.902+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>DataStage OSH Script</title><content type='html'>The IBM InfoSphere DataStage and QualityStage Designer client creates IBM InfoSphere DataStage jobs that are compiled into parallel job flows, and reusable components that execute on the parallel Information Server engine. It allows you to use familiar graphical point-and-click techniques to develop job flows for extracting, cleansing, transforming, integrating, and loading data into target files, target systems, or packaged applications.&lt;br /&gt;
&lt;br /&gt;
The Designer generates all the code. It generates the OSH (Orchestrate SHell Script) and C++ code for any Transformer stages used.&lt;br /&gt;
Briefly, the Designer performs the following tasks:&lt;br /&gt;
* Validates link requirements, mandatory stage options, transformer logic, etc.&lt;br /&gt;
* Generates OSH representation of data flows and stages (representations of&lt;br /&gt;
framework “operators”).&lt;br /&gt;
* Generates transform code for each Transformer stage which is then compiled&lt;br /&gt;
into C++ and then to corresponding native operators.&lt;br /&gt;
* Reusable BuildOp stages can be compiled using the Designer GUI or from&lt;br /&gt;
the command line.&lt;br /&gt;
Here is a brief primer on the OSH:&lt;br /&gt;
* Comment blocks introduce each operator, the order of which is determined by&lt;br /&gt;
the order stages were added to the canvas.&lt;br /&gt;
* OSH uses the familiar syntax of the UNIX shell. such as Operator name,&lt;br /&gt;
schema, operator options (“-name value” format), input (indicated by n&lt; where n is the input#), and output (indicated by the n&gt; where n is the output #).&lt;br /&gt;
* For every operator, input and/or output data sets are numbered sequentially&lt;br /&gt;
starting from zero.&lt;br /&gt;
* Virtual data sets (in memory native representation of data links) are&lt;br /&gt;
generated to connect operators.&lt;br /&gt;
&lt;br /&gt;
Framework (Information Server Engine) terms and DataStage terms have equivalency. The GUI frequently uses terms from both paradigms. Runtime messages use framework terminology because the framework engine is where execution occurs. The following list shows the equivalency between framework and DataStage terms:&lt;br /&gt;
* Schema corresponds to table definition&lt;br /&gt;
* Property corresponds to format&lt;br /&gt;
* Type corresponds to SQL type and length&lt;br /&gt;
* Virtual data set corresponds to link&lt;br /&gt;
* Record/field corresponds to row/column&lt;br /&gt;
* Operator corresponds to stage&lt;br /&gt;
&lt;br /&gt;
Note: The actual execution order of operators is dictated by input/output designators, and not by their placement on the diagram. The data sets connect the OSH operators. These are “virtual data sets”, that is, in memory data flows. Link names are used in data set names — it is therefore good practice to give the links meaningful names.</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/6035105473945556698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2011/01/datastage-osh-script_26.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6035105473945556698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6035105473945556698'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2011/01/datastage-osh-script_26.html' title='DataStage OSH Script'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-2429068640167310912</id><published>2011-01-15T20:51:00.000+05:30</published><updated>2011-02-10T07:09:43.303+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage OverView"/><title type='text'>DataStage Modules</title><content type='html'>&lt;b&gt;The DataStage Client components:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Administrator&lt;/b&gt; :- Administers DataStage projects, manages global settings and interacts with the system. Administrator is used to specify general server defaults, add and delete projects, set up project properties and provides a command interface to the datastage repository.&lt;br /&gt;
With Datastage Administrator users can set job monitoring limits, user privileges, job scheduling options and parallel jobs default.&lt;br /&gt;
&lt;b&gt;Designer&lt;/b&gt; :- used to create DataStage jobs which are compiled into executable programs. is a graphical, user-friendly application which applies visual data flow method to develop job flows for extracting, cleansing, transforming, integrating and loading data. It’s a module mainly used by Datastage developers.&lt;br /&gt;
&lt;b&gt;Manager&lt;/b&gt; :- it&#39;s a main interface to the Datastage Repository, allows its browsing and editing. It displays tables and files layouts, routines, transforms and jobs defined in the project. It is mainly used to store and manage reusable metadata.&lt;br /&gt;
&lt;b&gt;Director&lt;/b&gt; :- manages running, validating, scheduling and monitoring DataStage jobs. It’s mainly used by operators and testers.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Datastage Administrator view and project properties&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoAas_SoPzhhAHZEo3qhRPrtoswMIvua7aRVS_fjEww7L69bnM0s8lNNa-HhZyCMUy-ajb8kVX3MoSoDiB5Dvdaqxune5V_-M2FHs6dYqqKIh5VONsr5KpSen9Dkx8ClGz8eJWwKnvZ-Xl/s1600/datastage_administrator_project_properties.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;209&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoAas_SoPzhhAHZEo3qhRPrtoswMIvua7aRVS_fjEww7L69bnM0s8lNNa-HhZyCMUy-ajb8kVX3MoSoDiB5Dvdaqxune5V_-M2FHs6dYqqKIh5VONsr5KpSen9Dkx8ClGz8eJWwKnvZ-Xl/s320/datastage_administrator_project_properties.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Datastage Designer view with a job sequence&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLnkmeDnAmmCY57F6_LneD7W4BYnAVm5wOfhZoWBqVLXddHBYrD2nqMRt1g2b8-oZtdmwOh8IXN4dcGBLp2A6HRing5XIPM6T2wk58cCSnXVpDIBL4pN9kTENPcmLsuZm6n3QHZXwV9ulp/s1600/datastage_server_sequence_notification.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;232&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLnkmeDnAmmCY57F6_LneD7W4BYnAVm5wOfhZoWBqVLXddHBYrD2nqMRt1g2b8-oZtdmwOh8IXN4dcGBLp2A6HRing5XIPM6T2wk58cCSnXVpDIBL4pN9kTENPcmLsuZm6n3QHZXwV9ulp/s320/datastage_server_sequence_notification.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Datastage Manager view&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4I-WH1JOBn8r-odd8WH_-FbZg0qmemDjxpNoLCA0ZayeZV-yyZAab1UzktlJgykZbNd6vf6i1HZm3D6jaVSD8zvZAAiZEdMJEXaoSGA8ebC1EIcph1SrVEn3WuIIH2YyuEqQgAn4Vv1RA/s1600/datastage_manager_view.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;232&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4I-WH1JOBn8r-odd8WH_-FbZg0qmemDjxpNoLCA0ZayeZV-yyZAab1UzktlJgykZbNd6vf6i1HZm3D6jaVSD8zvZAAiZEdMJEXaoSGA8ebC1EIcph1SrVEn3WuIIH2YyuEqQgAn4Vv1RA/s320/datastage_manager_view.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/2429068640167310912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2011/01/datastage-modules_15.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/2429068640167310912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/2429068640167310912'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2011/01/datastage-modules_15.html' title='DataStage Modules'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoAas_SoPzhhAHZEo3qhRPrtoswMIvua7aRVS_fjEww7L69bnM0s8lNNa-HhZyCMUy-ajb8kVX3MoSoDiB5Dvdaqxune5V_-M2FHs6dYqqKIh5VONsr5KpSen9Dkx8ClGz8eJWwKnvZ-Xl/s72-c/datastage_administrator_project_properties.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-6521580869083069110</id><published>2011-01-02T06:50:00.002+05:30</published><updated>2011-03-04T12:54:10.220+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>DataStage Execution Flow</title><content type='html'>When you execute a job, the generated OSH and contents of the configuration file ($APT_CONFIG_FILE) is used to compose a “score”. This is similar to a SQL query optimization plan.&lt;br /&gt;
&lt;br /&gt;
At runtime, IBM InfoSphere DataStage identifies the degree of parallelism and node assignments for each operator, and inserts sorts and partitioners as needed to ensure correct results. It also defines the connection topology (virtual data sets/links) between adjacent operators/stages, and inserts buffer operators to prevent deadlocks (for example, in fork-joins). It also defines the number of actual OS processes. Multiple operators/stages are combined within a single OS process as appropriate, to improve performance and optimize resource requirements.&lt;br /&gt;
&lt;br /&gt;
The job score is used to fork processes with communication interconnects for data, message and control3. Processing begins after the job score and processes are created. Job processing ends when either the last row of data is processed by the final operator, a fatal error is encountered by any operator, or the job is halted by DataStage Job Control or human intervention such as DataStage Director STOP.&lt;br /&gt;
&lt;br /&gt;
Job scores are divided into two sections — data sets (partitioning and collecting) and operators (node/operator mapping). Both sections identify sequential or parallel processing.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDxNXKMZI7c_nKHA2MQNRphhyphenhyphen-tBXNj17o5JKYMK8n8CvZOeuNwIZhjC5aITHgo3LRcwiJ6_UI9akppbxVfT-LXCwLpuEA2Cy_69h8wjB7AUKgbnfRKPbplsQ2jXhTzwJ4NO6lJd-QoiEg/s1600/node.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;214&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDxNXKMZI7c_nKHA2MQNRphhyphenhyphen-tBXNj17o5JKYMK8n8CvZOeuNwIZhjC5aITHgo3LRcwiJ6_UI9akppbxVfT-LXCwLpuEA2Cy_69h8wjB7AUKgbnfRKPbplsQ2jXhTzwJ4NO6lJd-QoiEg/s320/node.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The execution (orchestra) manages control and message flow across processes and consists of the conductor node and one or more processing nodes as shown in Figure 1-6. Actual data flows from player to player — the conductor and section leader are only used to control process execution through control and message channels.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conductor&lt;/b&gt; is the initial framework process. It creates the Section Leader (SL) processes (one per node), consolidates messages to the DataStage log, and manages orderly shutdown. The Conductor node has the start-up process. The Conductor also communicates with the players.&lt;br /&gt;
&lt;br /&gt;
Note: You can direct the score to a job log by setting $APT_DUMP_SCORE. To identify the Score dump, look for “main program: This step....”.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Section Leader&lt;/b&gt; is a process that forks player processes (one per stage) and manages up/down communications. SLs communicate between the conductor and player processes only. For a given parallel configuration file, one section leader will be started for each logical node.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Players&lt;/b&gt; are the actual processes associated with the stages. It sends stderr and stdout to the SL, establishes connections to other players for data flow, and cleans up on completion. Each player has to be able to communicate with every other player. There are separate communication channels (pathways) for control, errors, messages and data. The data channel does not go through the section eader/conductor as this would limit scalability.&lt;br /&gt;
&lt;br /&gt;
Data flows directly from upstream operator to downstream operator.</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/6521580869083069110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2011/01/datastage-execution-flow_02.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6521580869083069110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6521580869083069110'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2011/01/datastage-execution-flow_02.html' title='DataStage Execution Flow'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDxNXKMZI7c_nKHA2MQNRphhyphenhyphen-tBXNj17o5JKYMK8n8CvZOeuNwIZhjC5aITHgo3LRcwiJ6_UI9akppbxVfT-LXCwLpuEA2Cy_69h8wjB7AUKgbnfRKPbplsQ2jXhTzwJ4NO6lJd-QoiEg/s72-c/node.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-6538614646217043203</id><published>2010-12-21T07:49:00.001+05:30</published><updated>2011-05-25T03:41:10.170+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>Data Transformations</title><content type='html'>Data transformation and movement is the process by which source data is selected, converted, and mapped to the format required by targeted systems. The process manipulates data to bring it into compliance with business, domain, and integrity rules and with other data in the target environment. Transformation can take some of the following forms:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Aggregation&lt;/b&gt;&lt;br /&gt;
Consolidating or summarizing data values into a single value. Collecting daily sales data to be aggregated to the weekly level is a common example of aggregation.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Basic conversion&lt;/b&gt;&lt;br /&gt;
Ensuring that data types are correctly converted and mapped from source to target columns.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cleansing&lt;/b&gt;&lt;br /&gt;
Resolving inconsistencies and fixing the anomalies in source data.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Derivation&lt;/b&gt;&lt;br /&gt;
Transforming data from multiple sources by using a complex business rule or algorithm.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Enrichment&lt;/b&gt;&lt;br /&gt;
Combining data from internal or external sources to provide additional meaning to the data.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Normalizing&lt;/b&gt;&lt;br /&gt;
Reducing the amount of redundant and potentially duplicated data. &lt;br /&gt;
&lt;b&gt;Combining&lt;/b&gt;&lt;br /&gt;
The process of combining data from multiple sources via parallel Lookup, Join, or Merge operations.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Pivoting&lt;/b&gt;&lt;br /&gt;
Converting records in an input stream to many records in the appropriate table in the data warehouse or data mart.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Sorting&lt;/b&gt;&lt;br /&gt;
Grouping related records and sequencing data based on data or string values.</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/6538614646217043203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2010/12/dtata-transformations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6538614646217043203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/6538614646217043203'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2010/12/dtata-transformations.html' title='Data Transformations'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-8301407522225313654</id><published>2010-12-07T21:48:00.003+05:30</published><updated>2011-05-25T03:34:42.074+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>DataStage Stages and Jobs</title><content type='html'>An IBM InfoSphere DataStage job consists of individual stages linked together which describe the flow of data from a data source to a data target. A stage usually has at least one data input and/or one data output. However, some stages can accept more than one data input, and output to more than one stage. Each stage has a set of predefined and editable properties that tell it how to perform or process data. Properties might include the file name for the Sequential File stage, the columns to sort, the transformations to perform, and the database table name for the DB2 stage. These properties are viewed or edited using stage editors. Stages are added to a job and linked together using the Designer. Figure shows some of the stages and their iconic representations.
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0l_bhwGYNnb1pd_5oMr02txKN_K7AxBumZx9QouB9J5XDcF-PEke89WWtvL8AN8veaWcgUtnmM5mprbtJMPt-yfGvMKGU8yOW1NNxvfwBNlOfK2OsrO-2XgNQIokVO_Gz7iWDa7HapTKQ/s1600/stages.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;243&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0l_bhwGYNnb1pd_5oMr02txKN_K7AxBumZx9QouB9J5XDcF-PEke89WWtvL8AN8veaWcgUtnmM5mprbtJMPt-yfGvMKGU8yOW1NNxvfwBNlOfK2OsrO-2XgNQIokVO_Gz7iWDa7HapTKQ/s320/stages.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Stages and links can be grouped in a shared container. Instances of the shared container can then be reused in different parallel jobs. You can also define a local container within a job — this groups stages and links into a single unit, but can only be used within the job in which it is defined. The different types of jobs have different stage types. The stages that are available in the Designer depend on the type of job that is currently open in the Designer. Parallel Job stages are organized into different groups on the Designer palette as follows:&lt;br /&gt;
&lt;b&gt;General includes stages such as Container and Link. Data Quality includes stages such as Investigate, Standardize, Reference Match, and Survive.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Database&lt;/b&gt; includes stages such as Classic Federation, DB2 UDB, DB2 UDB/Enterprise, Oracle, Sybase, SQL Server®, Teradata, Distributed Transaction, and ODBC.&lt;br /&gt;
&lt;b&gt;Development/Debug&lt;/b&gt; includes stages such as Peek, Sample, Head, Tail, and Row Generator.&lt;br /&gt;
&lt;b&gt;File&lt;/b&gt; includes stages such as Complex Flat File, Data Set, Lookup File Set, and Sequential File.&lt;br /&gt;
&lt;b&gt;Processing&lt;/b&gt; includes stages such as Aggregator, Copy, FTP, Funnel, Join, Lookup, Merge, Remove Duplicates, Slowly Changing Dimension, Surrogate Key Generator, Sort, and Transformer&lt;br /&gt;
&lt;b&gt;Real Time&lt;/b&gt; includes stages such as Web Services Transformer, WebSphere MQ, and Web Services Client.&lt;br /&gt;
&lt;b&gt;Restructure&lt;/b&gt; includes stages such as Column Export and Column Import.</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/8301407522225313654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2010/12/datastage-jobs.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/8301407522225313654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/8301407522225313654'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2010/12/datastage-jobs.html' title='DataStage Stages and Jobs'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0l_bhwGYNnb1pd_5oMr02txKN_K7AxBumZx9QouB9J5XDcF-PEke89WWtvL8AN8veaWcgUtnmM5mprbtJMPt-yfGvMKGU8yOW1NNxvfwBNlOfK2OsrO-2XgNQIokVO_Gz7iWDa7HapTKQ/s72-c/stages.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-7786379422925866321</id><published>2010-11-23T08:45:00.043+05:30</published><updated>2011-03-06T04:45:20.694+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>DataStage Functions</title><content type='html'>&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt;&lt;/span&gt;
&lt;br /&gt;In its simplest form, IBM InfoSphere DataStage performs data transformation and movement from source systems to target systems in batch and in real time. The data sources might include indexed files, sequential files, relational databases, archives, external data sources, enterprise applications, and message queues.
&lt;br /&gt;
&lt;br /&gt;
DataStage manages data that arrives and data that is received on a periodic or scheduled basis. It enables companies to solve large-scale business problems with high-performance processing of massive data volumes. By leveraging the parallel processing capabilities of multiprocessor hardware platforms, DataStage can scale to satisfy the demands of ever-growing data volumes, stringent real-time requirements, and ever-shrinking batch windows.
&lt;br /&gt;&lt;br /&gt;
Leveraging the combined suite of IBM Information Server, DataStage can simplify the development of authoritative master data by showing where and how information is stored across source systems. DataStage can also consolidate disparate data into a single, reliable record, cleanses and standardizes information, removes duplicates, and links records together across systems. This master record can be loaded into operational data stores, data warehouses, or master data applications such as IBM MDM using IBM InfoSphere DataStage.
&lt;br /&gt;
IBM InfoSphere DataStage delivers four core capabilities:
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;*&amp;nbsp;Connectivity to a wide range of mainframe, legacy, and enterprise applications, databases, file formats, and external information sources.
&lt;br /&gt;&lt;br /&gt;
*&amp;nbsp;Prebuilt library of more than 300 functions including data validation rules and very complex transformations.
&lt;br /&gt;&lt;br /&gt;
*&amp;nbsp;Maximum throughput using a parallel, high-performance processing architecture.
&lt;br /&gt;&lt;br /&gt;
*&amp;nbsp;Enterprise-class capabilities for development, deployment, maintenance, and high-availability. It leverages metadata for analysis and maintenance. It also operates in batch, real time, or as a Web service.&lt;/b&gt;
&lt;br /&gt;
IBM InfoSphere DataStage enables an integral part of the information integration process.
&lt;br /&gt;
&lt;h1&gt;
Functions used in IBM InfoSphere DataStage and QualityStage&lt;/h1&gt;
&lt;br /&gt;
The functions that are valid in IBM® InfoSphere® DataStage® and QualityStage are also valid in IBM Information Server 
&lt;br /&gt;
FastTrack, The following is a list of functions that are generally used when defining a column derivation in a Transformer stage.
&lt;br /&gt;
&lt;ul class=&quot;ullinks&quot;&gt;
&lt;li class=&quot;link ulchildlink&quot;&gt;&lt;strong&gt;&lt;a href=&quot;#ds_funs_dnt&quot;&gt;Date and time functions&lt;/a&gt;&lt;/strong&gt;&lt;br clear=&quot;none&quot;&gt;&lt;/li&gt;
&lt;li class=&quot;link ulchildlink&quot;&gt;&lt;strong&gt;&lt;a href=&quot;#ds_funs_lgl&quot; shape=&quot;rect&quot;&gt;Logical functions&lt;/a&gt;&lt;/strong&gt;&lt;br clear=&quot;none&quot;&gt;&lt;/li&gt;
&lt;li class=&quot;link ulchildlink&quot;&gt;&lt;strong&gt;&lt;a href=&quot;#ds_funs_math&quot; shape=&quot;rect&quot;&gt;Mathematical functions&lt;/a&gt;&lt;/strong&gt;&lt;br clear=&quot;none&quot;&gt;&lt;/li&gt;
&lt;li class=&quot;link ulchildlink&quot;&gt;&lt;strong&gt;&lt;a href=&quot;#ds_funs_nh&quot; shape=&quot;rect&quot;&gt;Null handling functions&lt;/a&gt;&lt;/strong&gt;&lt;br clear=&quot;none&quot;&gt;&lt;/li&gt;
&lt;li class=&quot;link ulchildlink&quot;&gt;&lt;strong&gt;&lt;a href=&quot;#ds_funs_num&quot; shape=&quot;rect&quot;&gt;Number functions&lt;/a&gt;&lt;/strong&gt;&lt;br clear=&quot;none&quot;&gt;&lt;/li&gt;
&lt;li class=&quot;link ulchildlink&quot;&gt;&lt;strong&gt;&lt;a href=&quot;#ds_funs_raw&quot; shape=&quot;rect&quot;&gt;Raw functions&lt;/a&gt;&lt;/strong&gt;&lt;br clear=&quot;none&quot;&gt;&lt;/li&gt;
&lt;li class=&quot;link ulchildlink&quot;&gt;&lt;strong&gt;&lt;a href=&quot;#ds_funs_str&quot; shape=&quot;rect&quot;&gt;String functions&lt;/a&gt;&lt;/strong&gt;&lt;br clear=&quot;none&quot;&gt;&lt;/li&gt;
&lt;li class=&quot;link ulchildlink&quot;&gt;&lt;strong&gt;&lt;a href=&quot;#ds_funs_vc&quot; shape=&quot;rect&quot;&gt;Vector function&lt;/a&gt;&lt;/strong&gt;&lt;br clear=&quot;none&quot;&gt;&lt;/li&gt;
&lt;li class=&quot;link ulchildlink&quot;&gt;&lt;strong&gt;&lt;a href=&quot;#ds_funs_tcn&quot; shape=&quot;rect&quot;&gt;Type conversion functions&lt;/a&gt;&lt;/strong&gt;&lt;br clear=&quot;none&quot;&gt;&lt;/li&gt;
&lt;li class=&quot;link ulchildlink&quot;&gt;&lt;strong&gt;&lt;a href=&quot;#ds_funs_tcs&quot; shape=&quot;rect&quot;&gt;Type casting functions&lt;/a&gt;&lt;/strong&gt;&lt;br clear=&quot;none&quot;&gt;&lt;/li&gt;
&lt;li class=&quot;link ulchildlink&quot;&gt;&lt;strong&gt;&lt;a href=&quot;#ds_funs_ut&quot; shape=&quot;rect&quot;&gt;Utility functions&lt;/a&gt;&lt;/strong&gt;&lt;br clear=&quot;none&quot;&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div id=&quot;ds_funs_dnt&quot;&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;
&amp;nbsp;|&amp;nbsp;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_lgl&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt;
&lt;h2&gt;
Date and time functions&lt;/h2&gt;
&lt;hr&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;
&lt;br /&gt;
The following table lists the functions that are available in the Date and Time category (Square brackets indicate an 

argument is optional):

&lt;table rules=&quot;all&quot; frame=&quot;border&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot; border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot;&gt;
&lt;tr&gt;&lt;th width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; id=&quot;d0e18&quot;&gt;Name&lt;/th&gt; &lt;th width=&quot;24.556962025316455%&quot; valign=&quot;top&quot; 

id=&quot;d0e20&quot;&gt;Description&lt;/th&gt; &lt;th width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; id=&quot;d0e22&quot;&gt;Arguments&lt;/th&gt; &lt;th 

width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; id=&quot;d0e24&quot;&gt;Output&lt;/th&gt; &lt;/tr&gt;
&lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;DateFromDaysSince&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a date by adding an integer to a baseline date&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; 

valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (int32) [baseline date]&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 

&quot;&gt;date&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;DateFromJulianDay&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a date from the given julian date&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;juliandate (uint32)&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;date&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;DaysSinceFromDate&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the number of days from source date to the given date&lt;/td&gt; &lt;td 

width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;source_date  &lt;p id=&quot;wp376247__wp378448&quot;&gt;
&lt;a name=&quot;wp376247__wp378448&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;given_date&lt;/p&gt;
&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;days since (int32)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;HoursFromTime&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the hour portion of a time&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;time&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;hours (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;JulianDayFromDate&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns julian day from the given date&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;date&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;julian date (int32)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;MicroSecondsFromTime&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the microsecond portion from a time&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;time&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;microseconds (int32)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;MinutesFromTime&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the minute portion from a time&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;time&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;minutes (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;MonthDayFromDate&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the day of the month given the date&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;date&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;day (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;MonthFromDate&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the month number given the date&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;date&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;month number (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;NextWeekdayFromDate&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the date of the specified day of the week soonest after the

source date&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;source date  &lt;p id=&quot;wp376247__wp378505&quot;&gt;
&lt;a name=&quot;wp376247__wp378505&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;day of week (string)&lt;/p&gt;

&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;date&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;PreviousWeekdayFromDate&lt;/td&gt; &lt;td 

width=&quot;24.556962025316455%&quot; valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the date of the specified day of the week most recent 

before

the source date&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;source date  &lt;p id=&quot;wp376247__wp378514&quot;&gt;
&lt;a name=&quot;wp376247__wp378514&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;day of week (string)&lt;/p&gt;
&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;date&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;SecondsFromTime&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the second portion from a time&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;time&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;seconds (dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;SecondsSinceFromTimestamp&lt;/td&gt; &lt;td 

width=&quot;24.556962025316455%&quot; valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the number of seconds between two timestamps&lt;/td&gt; &lt;td 

width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;timestamp base timestamp&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; 

valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;seconds (dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TimeDate&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; valign=&quot;top&quot; 

headers=&quot;d0e20 &quot;&gt;Returns the system time and date as a formatted string&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;-&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;system time and date (string)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TimeFromMidnightSeconds&lt;/td&gt; &lt;td 

width=&quot;24.556962025316455%&quot; valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the time given the number of seconds since midnight&lt;/td&gt;   &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;seconds (dfloat)&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; 

valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;time&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TimestampFromDateTime&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a timestamp form the given date and time&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; 

valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;date time&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;timestamp&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TimestampFromSecondsSince&lt;/td&gt; &lt;td 

width=&quot;24.556962025316455%&quot; valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the timestamp from the number of seconds from the base 

timestamp&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;seconds (dfloat)  &lt;p id=&quot;wp376247__wp378563&quot;&gt;
&lt;a name=&quot;wp376247__wp378563&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;[base timestamp]&lt;/p&gt;
&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;timestamp&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TimestampFromTimet&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a timestamp from the given unix time_t value&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; 

valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;timet (int32)&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;timestamp&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TimetFromTimestamp&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a unix time_t value from the given timestamp&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; 

valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;timestamp&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;timet (int32)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;WeekdayFromDate&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the day number of the week from the given date. Origin day

optionally specifies the day regarded as the first in the week and is Sunday

by default&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;date [origin day]&lt;/td&gt; &lt;td 

width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;day (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;YeardayFromDate&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the day number in the year from the given date&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; 

valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;date&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;day (int16)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;YearFromDate&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the year from the given date&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;date&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;year (int16)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td width=&quot;30.632911392405067%&quot; valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;YearweekFromDate&lt;/td&gt; &lt;td width=&quot;24.556962025316455%&quot; 

valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the week number in the year from the given date&lt;/td&gt; &lt;td width=&quot;24.30379746835443%&quot; 

valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;date&lt;/td&gt; &lt;td width=&quot;20.506329113924053%&quot; valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;week (int16)&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;


Date, Time, and Timestamp functions that specify dates, times, or timestamps in the argument use strings with specific 

formats:

For a date, the format is %yyyy-%mm-%dd

For a time, the format is %hh:%nn:%ss, or, if extended to include microseconds, %hh:%nn:%ss.x where x gives the number of decimal places seconds is given to.

For a timestamp the format is %yyyy-%mm-%dd %hh:%nn:%ss, or, if extended to include microseconds, %yyyy-%mm-%dd %hh:%nn:%ss.x 
where x gives the number of decimal places seconds is given to.

This applies to the arguments date, baseline date, given date, time, timestamp, and base timestamp.

Functions that have days of week in the argument take a string specifying the day of the week, this applies to day of week and origin day.&lt;/div&gt;

&lt;div id=&quot;ds_funs_lgl&quot;&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;
&amp;nbsp;|&amp;nbsp;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_math&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt;
&lt;h2&gt;
Logical Functions&lt;/h2&gt;
&lt;hr&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_dnt&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; 

href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;
&lt;br /&gt;The following table lists the functions available in the Logical category (square brackets indicate an argument is optional):

&lt;table rules=&quot;all&quot; frame=&quot;border&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot; border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot;&gt;
&lt;tr&gt;&lt;th valign=&quot;top&quot; id=&quot;d0e18&quot;&gt;Name&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e20&quot;&gt;Description&lt;/th&gt; &lt;th valign=&quot;top&quot; 

id=&quot;d0e22&quot;&gt;Arguments&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e24&quot;&gt;Output&lt;/th&gt; &lt;/tr&gt;
&lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Not&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the complement of the logical value of an expression&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;expression&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;Complement (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;BitAnd&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the bitwise AND of the two integer arguments&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number 1 (uint64) number 2 (uint64)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;number (uint64)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;BitOr&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the bitwise OR of the two integer arguments&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number 1 (uint64) number 2 (uint64)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;number (uint64)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;BitXOr&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the bitwise Exclusive OR of the two integer arguments&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number 1 (uint64) number 2 (uint64)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;number (uint64)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;BitExpand&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a string containing the binary representation in &quot;1&quot;s and &quot;0&quot;s of the given integer&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (uint64)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24&quot;&gt;string&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;BitCompress&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the integer made from the string argument, which contains a
binary representation of &quot;1&quot;s and &quot;0&quot;s.&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;number (uint64)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;SetBit&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns an integer with specific bits set to a specific state, where &lt;p id=&quot;wp380106__wp380880&quot;&gt;
&lt;a name=&quot;wp380106__wp380880&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;&lt;em&gt;origfield&lt;/em&gt; is the input value to perform the action on,&lt;/p&gt;
&lt;p id=&quot;wp380106__wp380881&quot;&gt;
&lt;a name=&quot;wp380106__wp380881&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;&lt;em&gt;bitlist&lt;/em&gt; is a string containing a list of comma separated bit numbers to set the state of, and &lt;em&gt;bitstate&lt;/em&gt; is either 1 or 0, indicating which state to set those bits.&lt;/p&gt;
&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;origfield (uint64) bitlist (string)  &lt;p id=&quot;wp380106__wp380944&quot;&gt;

&lt;a name=&quot;wp380106__wp380944&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;bitstate (uint8)&lt;/p&gt;
&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;number (uint64)&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;
&lt;/div&gt;

&lt;div id=&quot;ds_funs_math&quot;&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;
&amp;nbsp;|&amp;nbsp;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_nh&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt;&lt;h2&gt;
Mathematical Functions&lt;/h2&gt;
&lt;hr&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_lgl&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; 

href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;
&lt;br /&gt;The following table lists the functions available in the Mathematical category (square brackets indicate an argument is optional):

&lt;table rules=&quot;all&quot; frame=&quot;border&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot; border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot;&gt;
&lt;tr&gt;&lt;th valign=&quot;top&quot; id=&quot;d0e18&quot;&gt;Name&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e20&quot;&gt;Description&lt;/th&gt; &lt;th valign=&quot;top&quot; 

id=&quot;d0e22&quot;&gt;Arguments&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e24&quot;&gt;Output&lt;/th&gt; &lt;/tr&gt;
&lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Abs&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Absolute value of any numeric expression&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (int32)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Acos&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the trigonometric arc-cosine of an expression&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Asin&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the trigonometric arc-sine of an expression&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Atan&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the trigonometric arc-tangent of 

an expression&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Ceil&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the smallest dfloat value 

greater than or equal to the given

decimal value&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (decimal)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Cos&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the trigonometric cosine of an 

expression&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Cosh&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the hyperbolic cosine of an 

expression&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Div&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Outputs the whole part of the real division 

of two real numbers (dividend,

divisor)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;dividend (dfloat) divisor (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 

&quot;&gt;result (dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Exp&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the result of base &#39;e&#39; raised to 

the power designated by

the value of the expression&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 

&quot;&gt;result (dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Fabs&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the absolute value of the given 

value&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Floor&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the largest dfloat value less 

than or equal to the given

decimal value&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (decimal)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Ldexp&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates a number from an exponent and 

mantissa&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;mantissa (dfloat)  &lt;p id=&quot;wp378633__wp377701&quot;&gt;
&lt;a name=&quot;wp378633__wp377701&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;exponent (int32)&lt;/p&gt;

&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Llabs&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the absolute value of the given 

integer&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (uint64)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (int64)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Ln&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the natural logarithm of an 

expression in base &#39;e&#39;&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Log10&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the log to the base 10 of the 

given value&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Max&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the greater of the two argument 

values&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number 1 (int32) number 2(int32)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(int32)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Min&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the lower of the two argument 

values&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number 1 (int32) number 2 (int32)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(int32)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Mod&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the modulo (the remainder) of two 

expressions (dividend,

divisor)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;dividend (int32) divisor (int32)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 

&quot;&gt;result (int32)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Neg&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Negate a number&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Pwr&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the value of an expression when 

raised to a specified power

(expression, power)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;expression (dfloat) power (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Rand&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return a psuedo random integer between 0 

and 2&lt;sup&gt;32&lt;/sup&gt;-1&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;-&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (uint32)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Random&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a random number between 0 

2&lt;sup&gt;32&lt;/sup&gt;-1&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;-&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (uint32)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Sin&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the trigonometric sine of an 

angle&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Sinh&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the hyperbolic sine of an 

expression&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Sqrt&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the square root of a number&lt;/td&gt;   &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Tan&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the trigonometric tangent of an 

angle&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Tanh&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Calculates the hyperbolic tangent of an 

expression&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;
&lt;/div&gt;
&lt;form action=&quot;https://www.paypal.com/cgi-bin/webscr&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;cmd&quot; value=&quot;_s-xclick&quot;&gt; &lt;input type=&quot;hidden&quot; name=&quot;encrypted&quot; value=&quot;-----BEGIN PKCS7-----MIIHRwYJKoZIhvcNAQcEoIIHODCCBzQCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYAXOzfZP5C9j7v+R1Av1LI+Gb3dQW38ZGQ2jjZJ9BuGSyeoUToTLbatge/aiAzNdoIQ32uxnUAEFRgfIC2UI6rOId9Hy5UCbmqDbMkWBHfeC5UkEwzQK1dROfBwl/31QxeK9kjAvNnOC7sWh7jRZBbRmUAfcw2zQEPNb1GMCxeD7zELMAkGBSsOAwIaBQAwgcQGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIVPHFN8mEYXCAgaDtEdTzNpqzl20lMMKuu124kVzqUl1GyE93el/X5o8GxRtRMr9v2LRii8BFsb6fkO+qzXSmSq4Yq+q9ymMsWh5GZODDAcs/SjspMak3tMoAqloSnzV40pSim318vNZ3FNrExTus0IHh2bQHqNzCug7z+Ub31yGMBzTAuK5QR6O0eOPcR0gCu2cm+SWAgevgyfLTOU4hFBntqTUH7bR28bx0oIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTEwMzA1MTk1NTUwWjAjBgkqhkiG9w0BCQQxFgQUlsu1KIZGR3CcWLaju9t5FKvmjAswDQYJKoZIhvcNAQEBBQAEgYCsmHC8jJ9yldpHy0tA9q9HmLELODtP42m9gPEYRNI5Kskrubjdhft4jSbHIjMszt7qqtwN+14lsNuIDth7PQuU+Yl6KXWOfeOF2Vz0T4F+8yQ+ObmXrCNhomMUR/w5wAvV2yK//O/bR8UkbxFA/hF9mPzNCvHta/e3xpXgPVA8hw==-----END PKCS7-----
&quot;&gt; &lt;input type=&quot;image&quot; src=&quot;https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif&quot; border=&quot;0&quot; name=&quot;submit&quot; alt=&quot;PayPal - The safer, easier way to pay online!&quot; align=&quot;right&quot;&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://www.paypal.com/en_US/i/scr/pixel.gif&quot; width=&quot;1&quot; height=&quot;1&quot;&gt; &lt;/form&gt;&lt;br /&gt;
&lt;div id=&quot;ds_funs_nh&quot;&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;
&amp;nbsp;|&amp;nbsp;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_num&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt;&lt;h2&gt;
Null handling functions&lt;/h2&gt;
&lt;hr&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_math&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; 

href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;
&lt;br /&gt;The following table lists the functions available in the Null Handling category (square brackets indicate an argument is 

optional):



&lt;table rules=&quot;all&quot; frame=&quot;border&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot; border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot;&gt;
&lt;tr&gt;&lt;th valign=&quot;top&quot; id=&quot;d0e18&quot;&gt;Name&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e20&quot;&gt;Description&lt;/th&gt; &lt;th valign=&quot;top&quot; 

id=&quot;d0e22&quot;&gt;Arguments&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e24&quot;&gt;Output&lt;/th&gt; &lt;/tr&gt;
&lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;IsNotNull&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns true when an expression does 

not evaluate to the null value&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;any&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;true/false 

(int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;IsNull&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns true when an expression evaluates 

to the null value&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;any&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;true/false (int8)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;MakeNull&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Change an in-band null to out of band 

null&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;any (column)  &lt;p id=&quot;wp377941__wp378360&quot;&gt;
&lt;a name=&quot;wp377941__wp378360&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;string (string)&lt;/p&gt;

&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;-&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;NullToEmpty&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns an empty string if input 

column is null, otherwise returns

the input column value&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;input column&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;input 

column value or empty string&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;NullToZero&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns zero if input column is null, 

otherwise returns the input column

value&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;input column&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;input column value or 

zero&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;NullToValue&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns specified &lt;em&gt;value&lt;/em&gt; if 

input column is null, otherwise returns

the input column value&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;input column, &lt;em&gt;value&lt;/em&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e24 &quot;&gt;input column value or &lt;em&gt;value&lt;/em&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;SetNull&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Assign a null value to the target 

column&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;-&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;-&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;


Hint: true = 1



false = 0
&lt;/div&gt;


&lt;div id=&quot;ds_funs_num&quot;&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;
&amp;nbsp;|&amp;nbsp;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_raw&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt;&lt;h2&gt;
Number functions&lt;/h2&gt;
&lt;hr&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_nh&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; 

href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;
&lt;br /&gt;The following table lists the functions available in the Number category (square brackets indicate an argument is optional):



&lt;table rules=&quot;all&quot; frame=&quot;border&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot; border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot;&gt;
&lt;tr&gt;&lt;th valign=&quot;top&quot; id=&quot;d0e18&quot;&gt;Name&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e20&quot;&gt;Description&lt;/th&gt; &lt;th valign=&quot;top&quot; 

id=&quot;d0e22&quot;&gt;Arguments&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e24&quot;&gt;Output&lt;/th&gt; &lt;/tr&gt;
&lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;MantissaFromDecimal&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the mantissa from 

the given decimal&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (decimal) &lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;MantissaFromDFloat&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the mantissa from the 

given dfloat&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;
&lt;/div&gt;

&lt;div id=&quot;ds_funs_raw&quot;&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;
&amp;nbsp;|&amp;nbsp;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_str&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt;&lt;h2&gt;
Raw functions&lt;/h2&gt;
&lt;hr&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_num&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; 

href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;

&lt;br /&gt;The following table lists the functions available in the Raw category (square brackets indicate an argument is optional):



&lt;table rules=&quot;all&quot; frame=&quot;border&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot; border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot;&gt;
&lt;tr&gt;&lt;th valign=&quot;top&quot; id=&quot;d0e18&quot;&gt;Name&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e20&quot;&gt;Description&lt;/th&gt; &lt;th valign=&quot;top&quot; 

id=&quot;d0e22&quot;&gt;Arguments&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e24&quot;&gt;Output&lt;/th&gt; &lt;/tr&gt;
&lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;RawLength&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the length of a raw 

string&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;input string (raw)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;Result (int32)&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;
&lt;/div&gt;

&lt;div id=&quot;ds_funs_str&quot;&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;
&amp;nbsp;|&amp;nbsp;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_vc&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt;&lt;h2&gt;
String functions&lt;/h2&gt;
&lt;hr&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_raw&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; 

href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;
&lt;br /&gt;The following table lists the functions available in the String category (square brackets indicate an argument is optional):



&lt;table rules=&quot;all&quot; frame=&quot;border&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot; border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot;&gt;
&lt;tr&gt;&lt;th valign=&quot;top&quot; id=&quot;d0e18&quot;&gt;Name&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e20&quot;&gt;Description&lt;/th&gt; &lt;th valign=&quot;top&quot; 

id=&quot;d0e22&quot;&gt;Arguments&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e24&quot;&gt;Output&lt;/th&gt; &lt;/tr&gt;
&lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;AlNum&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return whether the given string consists 

of alphanumeric characters&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 

&quot;&gt;true/false (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Alpha&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns 1 if string is purely 

alphabetic&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (int8)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;CompactWhiteSpace&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return the string after 

reducing all consective whitespace to a single

space&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Compare&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Compares two strings for sorting&lt;/td&gt;   &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string1 (string)  &lt;p id=&quot;wp378806__wp379088&quot;&gt;
&lt;a name=&quot;wp378806__wp379088&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;string2 (string)&lt;/p&gt;
&lt;p id=&quot;wp378806__wp379089&quot;&gt;
&lt;a name=&quot;wp378806__wp379089&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;[justification

(L or R)]&lt;/p&gt;
&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;ComparNoCase&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Case insensitive comparison of two 

strings&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string1 (string) string2 (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 

&quot;&gt;result (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;ComparNum&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Compare the first &lt;em&gt;n&lt;/em&gt; 

characters of the two strings&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string1 (string) string2 (string)  &lt;p 

id=&quot;wp378806__wp379117&quot;&gt;
&lt;a name=&quot;wp378806__wp379117&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;length (int16)&lt;/p&gt;
&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;CompareNumNoCase&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Caseless comparison of the 

first n characters of the two strings&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string1 (string) string2 (string)  &lt;p 

id=&quot;wp378806__wp378871&quot;&gt;

&lt;a name=&quot;wp378806__wp378871&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;length (int16)&lt;/p&gt;
&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Convert&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Converts specified characters in a 

string to designated replacement

characters&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;fromlist (string)  &lt;p id=&quot;wp378806__wp379146&quot;&gt;
&lt;a name=&quot;wp378806__wp379146&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;tolist (string)&lt;/p&gt;
&lt;p id=&quot;wp378806__wp379147&quot;&gt;
&lt;a name=&quot;wp378806__wp379147&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;expression

(string)&lt;/p&gt;

&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Count&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Count number of times a substring occurs 

in a string&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)  &lt;p id=&quot;wp378806__wp379156&quot;&gt;
&lt;a name=&quot;wp378806__wp379156&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;substring (string)&lt;/p&gt;
&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (int32)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Dcount&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Count number of delimited fields in a 

string&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)  &lt;p id=&quot;wp378806__wp378896&quot;&gt;

&lt;a name=&quot;wp378806__wp378896&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;delimiter (string)&lt;/p&gt;
&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (int32)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;DownCase&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Change all uppercase letters in a 

string to lowercase&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;DQuote&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Enclose a string in double quotation 

marks&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Field&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return 1 or more delimited substrings&lt;/td&gt;   &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string) delimiter (string)  &lt;p id=&quot;wp378806__wp379209&quot;&gt;
&lt;a name=&quot;wp378806__wp379209&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;occurrence (int32)

[number (int32)]&lt;/p&gt;
&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Index&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Find starting character position of 

substring&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string) substring (string) occurrence (int32)&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e24 &quot;&gt;result (int32)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Left&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Leftmost &lt;em&gt;n&lt;/em&gt; characters of 

string&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)  &lt;p id=&quot;wp378806__wp379237&quot;&gt;
&lt;a name=&quot;wp378806__wp379237&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;number (int32)&lt;/p&gt;
&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Len&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Length of string in characters&lt;/td&gt; &lt;td 

valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (int32)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Num&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return 1 if string can be converted to a 

number&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;PadString&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return the string padded with the 

optional pad character and optional

length&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)  &lt;p id=&quot;wp378806__wp379281&quot;&gt;
&lt;a name=&quot;wp378806__wp379281&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;padlength (int32)&lt;/p&gt;

&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Right&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Rightmost &lt;em&gt;n&lt;/em&gt; characters of 

string&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)  &lt;p id=&quot;wp378806__wp379295&quot;&gt;
&lt;a name=&quot;wp378806__wp379295&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;number (int32)&lt;/p&gt;
&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Soundex&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a string which identifies a set 

of words that are (roughly)

phonetically alike based on the standard, open algorithm for SOUNDEX evaluation&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string 

(string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Space&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return a string of &lt;em&gt;N&lt;/em&gt; space 

characters&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;length (int32)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Squote&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Enclose a string in single quotation 

marks&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Str&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Repeat a string&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e22 &quot;&gt;string (string)  &lt;p id=&quot;wp378806__wp379331&quot;&gt;
&lt;a name=&quot;wp378806__wp379331&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;repeats (int32)&lt;/p&gt;

&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;StripWhiteSpace&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return the string after 

stripping all whitespace from it&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 

&quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Trim&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Remove all leading and trailing spaces and 

tabs plus reduce internal

occurrences to one&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string) [stripchar (string)] [options (string)]&lt;/td&gt; &lt;td 

valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TrimB&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Remove all trailing spaces and tabs&lt;/td&gt;   &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TrimF&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Remove all leading spaces and tabs&lt;/td&gt;   &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Trim Leading Trailing&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a string with 

leading and trailing whitespace removed&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;Upcase&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Change all lowercase letters in a string 

to uppercase&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(string)&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;


Hint:  true = 1



false = 0


&lt;br /&gt;
Possible options for the Trim function are:


&lt;br /&gt;
* L Removes leading occurrences of character.
&lt;br /&gt;
* T Removes trailing occurrences of character.
&lt;br /&gt;
* B Removes leading and trailing occurrences of character.
&lt;br /&gt;
* R Removes leading and trailing occurrences of character, and reduces multiple occurrences to a single occurrence.
&lt;br /&gt;
* A Removes all occurrences of character.
&lt;br /&gt;
* F Removes leading spaces and tabs.
&lt;br /&gt;
* E Removes trailing spaces and tabs.
&lt;br /&gt;
* D Removes leading and trailing spaces and tabs, and reduces multiple spaces and tabs to single ones.
&lt;/div&gt;


&lt;div id=&quot;ds_funs_vc&quot;&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;
&amp;nbsp;|&amp;nbsp;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_tcn&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt;&lt;h2&gt;
Vector function&lt;/h2&gt;
&lt;hr&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_str&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; 

href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;
&lt;br /&gt;The following function can be used within expressions to access an element in a vector column. The vector index starts at 0.



&lt;table rules=&quot;all&quot; frame=&quot;border&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot; border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot;&gt;
&lt;tr&gt;&lt;th valign=&quot;top&quot; id=&quot;d0e18&quot;&gt;Name&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e20&quot;&gt;Description&lt;/th&gt; &lt;th valign=&quot;top&quot; 

id=&quot;d0e22&quot;&gt;Arguments&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e24&quot;&gt;Output&lt;/th&gt; &lt;/tr&gt;
&lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;ElementAt&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Accesses an element of a vector&lt;/td&gt;   &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;input column index (int)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;element of vector&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;


This can be used as part of, or the whole of an expression. For example, an expression to add 1 to the third element of an 

vector input column &#39;InLink.col1&#39; would be:



ElementAt(InLink.col1, 2) + 1
&lt;/div&gt;

&lt;div id=&quot;ds_funs_tcn&quot;&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;
&amp;nbsp;|&amp;nbsp;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_tcs&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt;&lt;h2&gt;
Type Conversion Functions&lt;/h2&gt;
&lt;hr&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_vc&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; 

href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;
&lt;br /&gt;The following table lists the functions available in the Type Conversion category (square brackets indicate an argument is 

optional):



&lt;table rules=&quot;all&quot; frame=&quot;border&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot; border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot;&gt;
&lt;tr&gt;&lt;th valign=&quot;top&quot; id=&quot;d0e18&quot;&gt;Name&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e20&quot;&gt;Description&lt;/th&gt; &lt;th valign=&quot;top&quot; 

id=&quot;d0e22&quot;&gt;Arguments&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e24&quot;&gt;Output&lt;/th&gt; &lt;/tr&gt;
&lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;DateToString&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return the string representation of 

the given date&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;date  &lt;p id=&quot;wp382801__wp379943&quot;&gt;
&lt;a name=&quot;wp382801__wp379943&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;[format (string)]&lt;/p&gt;
&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;DecimalToDecimal&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the given decimal in 

decimal representation with specified

precision and scale&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;decimal (decimal) [rtype (string)] [packedflag (int8)]&lt;/td&gt; &lt;td 

valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (decimal)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;DecimalToDFloat&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the given decimal in 

dfloat representation&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (decimal) [&quot;fix_zero&quot;]&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e24 &quot;&gt;result (dfloat)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;DecimalToString&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return the string representation 

of the given decimal&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (decimal) [&quot;fix_zero&quot;]&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;DfloatToDecimal&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the given dfloat in 

decimal representation&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat) [rtype (string)]&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e24 &quot;&gt;result (decimal)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;DfloatToStringNoExp&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the given dfloat in 

its string representation with no exponent,

using the specified scale&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;number (dfloat) scale (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;IsValid&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return whether the given string is valid 

for the given type. Valid

types are &quot;date&quot;, &quot;decimal&quot;, &quot;dfloat&quot;, &quot;sfloat&quot;, &quot;int8&quot;, &quot;uint8&quot;, &quot;int16&quot;,

&quot;uint16&quot;, &quot;int32&quot;, &quot;uint32&quot;, &quot;int64&quot;, &quot;uint64&quot;, &quot;raw&quot;, &quot;string&quot;, &quot;time&quot;, &quot;timestamp&quot;.

&quot;ustring&quot;&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;type (string) format (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(int8)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;StringToDate&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a date from the given 

string in the given format&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;date (string)  &lt;p id=&quot;wp382801__wp379944&quot;&gt;
&lt;a name=&quot;wp382801__wp379944&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;format (string)&lt;/p&gt;

&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;date&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;StringToDecimal&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the given string in 

decimal representation&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string) [rtype (string)]&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e24 &quot;&gt;result (decimal)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;StringToRaw&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a string in raw 

representation&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(raw)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;StringToTime&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a time representation of 

the given string&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string) [format (string)]&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e24 &quot;&gt;time&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;StringToTimestamp&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a timestamp 

representation of the given string&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string) [format (string)]&lt;/td&gt; &lt;td 

valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;timestamp&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TimestampToDate&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a date from the given 

timestamp&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;timestamp&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;date&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TimestampToString&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return the string 

representation of the given timestamp&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;timestamp [format (string)]&lt;/td&gt; &lt;td 

valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TimestampToTime&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the time from a given 

timestamp&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;timestamp&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;time&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;TimeToString&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Return the string representation of 

the given time&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;time [format (string)]&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result 

(string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;StringToUstring&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a ustring from the given 

string, optionally using the specified

map (otherwise uses project default)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string (string) [,mapname (string)]&lt;/td&gt; &lt;td 

valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (ustring)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;UstringToString&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns a string from the given 

ustring, optionally using the specified

map (otherwise uses project default)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;string(ustring)  &lt;p id=&quot;wp382801__wp381234&quot;&gt;
&lt;a name=&quot;wp382801__wp381234&quot;&gt;&lt;!-- --&gt;&lt;/a&gt;[,mapname (string)]&lt;/p&gt;

&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;


&lt;b&gt;Rtype&lt;/b&gt;: The rtype argument is a string, and should contain one of the following:
&lt;br /&gt;


* &lt;b&gt;ceil&lt;/b&gt;: Round the source field toward positive infinity. E.g, 1.4 -&gt; 2, -1.6 -&gt; -1.
&lt;br /&gt;
* &lt;b&gt;floor&lt;/b&gt;: Round the source field toward negative infinity. E.g, 1.6 -&gt; 1, -1.4 -&gt; -2.
&lt;br /&gt;
* &lt;b&gt;round_inf&lt;/b&gt;: Round or truncate the source field toward the nearest representable value, breaking ties by rounding 

positive values toward positive infinity and negative values toward negative infinity. E.g, 1.4 -&gt; 1, 1.5 -&gt; 2, -1.4 -&gt; -1, 

-1.5 -&gt; -2.
&lt;br /&gt;
* &lt;b&gt;trunc_zero&lt;/b&gt;. Discard any fractional digits to the right of the rightmost fractional digit supported in the 

destination, regardless of sign. For example, if the destination is an integer, all fractional digits are truncated. If the 

destination is another decimal with a smaller scale, round or truncate to the scale size of the destination decimal. E.g, 1.6 

-&gt; 1, -1.6 -&gt; -1.


&lt;br /&gt;
The default is trunc_zero.



&lt;br /&gt;
&lt;b&gt;Format string&lt;/b&gt;: Date, Time, and Timestamp functions that take a format string (e.g., timetostring(time, stringformat)) 

need to have the date format specified. The format strings are described in Date and time formats.



Where your dates, times, or timestamps convert to or from ustrings, InfoSphere DataStage will pick this up automatically. In 

these cases the separators in your format string (for example, `:&#39; or `-&#39;) can themselves be Unicode characters.


&lt;br /&gt;
&lt;b&gt;fix_zero&lt;/b&gt;: By default decimal numbers comprising all zeros are treated as invalid. If the string fix_zero is specified 

as a second argument, then all zero decimal values are regarded as valid.
&lt;/div&gt;

&lt;div id=&quot;ds_funs_tcs&quot;&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;
&amp;nbsp;|&amp;nbsp;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_ut&quot; class=&quot;xref&quot;&gt;Next&lt;/a&gt;&lt;/span&gt;&lt;h2&gt;
Type &quot;casting&quot; functions&lt;/h2&gt;
&lt;hr&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_tcn&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; 

href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;
&lt;br /&gt;There is a special class of type conversion function to help you when performing mathematical calculations using numeric 

fields. For example, if you have a calculation using an output column of type float derived from an input column of type 

integer in a Parallel Transformer stage the result will be derived as an integer regardless of its float type. If you want a 

non-integral result for a calculation using integral operands, you can use the following functions (which act in a similar 

way as casting in C) to cast the integer operands into non-integral operands:



&lt;table rules=&quot;all&quot; frame=&quot;border&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot; border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot;&gt;
&lt;tr&gt;&lt;th valign=&quot;top&quot; id=&quot;d0e21&quot;&gt;Name&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e23&quot;&gt;Description&lt;/th&gt; &lt;th valign=&quot;top&quot; 

id=&quot;d0e25&quot;&gt;Arguments&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e27&quot;&gt;Output&lt;/th&gt; &lt;/tr&gt;
&lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e21 &quot;&gt;AsDouble&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e23 &quot;&gt;Treat the given number as a double&lt;/td&gt;   &lt;td valign=&quot;top&quot; headers=&quot;d0e25 &quot;&gt;number (number)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e27 &quot;&gt;number (double)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e21 &quot;&gt;AsFloat&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e23 &quot;&gt;Treat the given number as a float&lt;/td&gt;   &lt;td valign=&quot;top&quot; headers=&quot;d0e25 &quot;&gt;number (number)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e27 &quot;&gt;number (float)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e21 &quot;&gt;AsInteger&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e23 &quot;&gt;Treat the given number as an 

integer&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e25 &quot;&gt;number (number)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e27 &quot;&gt;number (int)&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;
&lt;/div&gt;

&lt;div id=&quot;ds_funs_ut&quot;&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;&lt;/span&gt;
&lt;h2&gt;
Utility functions&lt;/h2&gt;
&lt;hr&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#ds_funs_tcs&quot; class=&quot;xref&quot;&gt;Previous&lt;/a&gt; &amp;nbsp;|&amp;nbsp; &lt;a shape=&quot;rect&quot; 

href=&quot;#footer&quot; class=&quot;xref&quot;&gt;Bottom&lt;/a&gt; &lt;/span&gt;
&lt;br /&gt;The following table lists the functions available in the Utility category (square brackets indicate an argument is optional):



&lt;table rules=&quot;all&quot; frame=&quot;border&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot; border=&quot;1&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot;&gt;
&lt;tr&gt;&lt;th valign=&quot;top&quot; id=&quot;d0e18&quot;&gt;Name&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e20&quot;&gt;Description&lt;/th&gt; &lt;th valign=&quot;top&quot; 

id=&quot;d0e22&quot;&gt;Arguments&lt;/th&gt; &lt;th valign=&quot;top&quot; id=&quot;d0e24&quot;&gt;Output&lt;/th&gt; &lt;/tr&gt;
&lt;/thead&gt; &lt;tbody&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;GetEnvironment&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the value of the given 

environment variable&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;environment variable (string)&lt;/td&gt; &lt;td valign=&quot;top&quot; 

headers=&quot;d0e24 &quot;&gt;result (string)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;NextSKChain&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the value of the surrogate 

key column for the

next record in     the chain, or &lt;var class=&quot;varname&quot;&gt;value&lt;/var&gt; for the newest 

record&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;&lt;var class=&quot;varname&quot;&gt;value&lt;/var&gt; (number)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 

&quot;&gt;result (int64)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;NextSurrogateKey&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the value of the next 

surrogate key&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;None&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 &quot;&gt;result (int64)&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot; headers=&quot;d0e18 &quot;&gt;PrevSKChain&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e20 &quot;&gt;Returns the value of the surrogate 

key column for the

previous record     in the chain, or &lt;var class=&quot;varname&quot;&gt;value&lt;/var&gt; for the first

record&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e22 &quot;&gt;&lt;var class=&quot;varname&quot;&gt;value&lt;/var&gt; (number)&lt;/td&gt; &lt;td valign=&quot;top&quot; headers=&quot;d0e24 

&quot;&gt;result (int64)&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;
&lt;/div&gt;

&lt;form action=&quot;https://www.paypal.com/cgi-bin/webscr&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;cmd&quot; value=&quot;_s-xclick&quot;&gt; &lt;input type=&quot;hidden&quot; name=&quot;encrypted&quot; value=&quot;-----BEGIN PKCS7-----MIIHRwYJKoZIhvcNAQcEoIIHODCCBzQCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYAXOzfZP5C9j7v+R1Av1LI+Gb3dQW38ZGQ2jjZJ9BuGSyeoUToTLbatge/aiAzNdoIQ32uxnUAEFRgfIC2UI6rOId9Hy5UCbmqDbMkWBHfeC5UkEwzQK1dROfBwl/31QxeK9kjAvNnOC7sWh7jRZBbRmUAfcw2zQEPNb1GMCxeD7zELMAkGBSsOAwIaBQAwgcQGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIVPHFN8mEYXCAgaDtEdTzNpqzl20lMMKuu124kVzqUl1GyE93el/X5o8GxRtRMr9v2LRii8BFsb6fkO+qzXSmSq4Yq+q9ymMsWh5GZODDAcs/SjspMak3tMoAqloSnzV40pSim318vNZ3FNrExTus0IHh2bQHqNzCug7z+Ub31yGMBzTAuK5QR6O0eOPcR0gCu2cm+SWAgevgyfLTOU4hFBntqTUH7bR28bx0oIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTEwMzA1MTk1NTUwWjAjBgkqhkiG9w0BCQQxFgQUlsu1KIZGR3CcWLaju9t5FKvmjAswDQYJKoZIhvcNAQEBBQAEgYCsmHC8jJ9yldpHy0tA9q9HmLELODtP42m9gPEYRNI5Kskrubjdhft4jSbHIjMszt7qqtwN+14lsNuIDth7PQuU+Yl6KXWOfeOF2Vz0T4F+8yQ+ObmXrCNhomMUR/w5wAvV2yK//O/bR8UkbxFA/hF9mPzNCvHta/e3xpXgPVA8hw==-----END PKCS7-----
&quot;&gt; &lt;input type=&quot;image&quot; src=&quot;https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif&quot; border=&quot;0&quot; name=&quot;submit&quot; alt=&quot;PayPal - The safer, easier way to pay online!&quot; align=&quot;right&quot;&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://www.paypal.com/en_US/i/scr/pixel.gif&quot; width=&quot;1&quot; height=&quot;1&quot;&gt; &lt;/form&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;navsection&quot;&gt;&lt;a shape=&quot;rect&quot; href=&quot;#header&quot; class=&quot;xref&quot;&gt;Top&lt;/a&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/7786379422925866321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2010/11/datastage-functions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/7786379422925866321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/7786379422925866321'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2010/11/datastage-functions.html' title='DataStage Functions'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-7855325900943633572</id><published>2010-11-11T20:39:00.000+05:30</published><updated>2011-02-10T07:07:34.947+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="FAQ&#39;s and Best Practices"/><title type='text'>DataStage FAQs and Best Practices</title><content type='html'>&lt;b&gt;1. General Datastage issues&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.1. What are the ways to execute datastage jobs?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A job can be run using a few different methods:&lt;br /&gt;
* from Datastage Director (menu Job -&gt; Run now...)&lt;br /&gt;
* from command line using a dsjob command&lt;br /&gt;
* Datastage routine can run a job (DsRunJob command)&lt;br /&gt;
* by a job sequencer&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.2. How to invoke a Datastage shell command?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Datastage shell commands can be invoked from :&lt;br /&gt;
* Datastage administrator (projects tab -&gt; Command)&lt;br /&gt;
* Telnet client connected to the datastage server&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.3. How to stop a job when its status is running?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To stop a running job go to DataStage Director and click the stop button (or Job -&gt; Stop from menu). If it doesn&#39;t help go to Job -&gt; Cleanup Resources, select a process with holds a lock and click Logout&lt;br /&gt;
If it still doesn&#39;t help go to the datastage shell and invoke the following command: ds.tools.It will open an administration panel. Go to 4.Administer processes/locks , then try invoking one of the clear locks commands (options 7-10).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.4. How to run and schedule a job from command line?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To run a job from command line use a dsjob command&lt;br /&gt;
Command Syntax: dsjob [-file | [-server ][-user ][-password ]] []&lt;br /&gt;
The command can be placed in a batch file and run in a system scheduler.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.5. How to release a lock held by jobs?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Go to the datastage shell and invoke the following command: ds.tools&lt;br /&gt;
It will open an administration panel. Go to 4.Administer processes/locks , then try invoking one of the clear locks commands (options 7-10).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.6. User privileges for the default DataStage roles?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The role privileges are:&lt;br /&gt;
* DataStage Developer - user with full access to all areas of a DataStage project&lt;br /&gt;
* DataStage Operator - has privileges to run and manage deployed DataStage jobs&lt;br /&gt;
* -none- - no permission to log on to DataStage&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.7. What is a command to analyze hashed file?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
There are two ways to analyze a hashed file. Both should be invoked from the datastage command shell. These are:&lt;br /&gt;
* FILE.STAT command&lt;br /&gt;
* ANALYZE.FILE command&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.8. Is it possible to run two versions of datastage on the same pc?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Yes, even though different versions of Datastage use different system dll libraries.&lt;br /&gt;
To dynamically switch between Datastage versions install and run DataStage Multi-Client Manager. That application can unregister and register system libraries used by Datastage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.9. How to send notifications from Datastage as a text message (sms) to a cell phone&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
There is a few possible methods of sending sms messages from Datastage. However, there is no easy way to do this directly from Datastage and all methods described below will require some effort.&lt;br /&gt;
The easiest way of doing that from the Datastage standpoint is to configure an SMTP (email) server as a mobile phone gateway. In that case, a Notification Activity can be used to send message with a job log and any desired details. DSSendMail Before-job or After-job subroutine can be also used to send sms messages.&lt;br /&gt;
If configured properly, the recipients email address will have the following format: 600123456@oursmsgateway.com&lt;br /&gt;
If there is no possibility of configuring a mail server to send text messages, you can to work it around by using an external application run directly from the operational system. There is a whole bunch of unix scripts and applications to send sms messages.&lt;br /&gt;
In that solution, you will need to create a batch script which will take care of sending messages and invoke it from Datastage using ExecDOS or ExecSh subroutines passing the required parameters (like phone number and message body).&lt;br /&gt;
Please keep in mind that all these solutions may require a contact to the local cellphone provider first and, depending on the country, it may not be free of charge and in some cases the provider may not support the capability at all.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Datastage development and job design&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.1. Error in Link collector - Stage does not support in-process active-to-active inputs or outputs&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To get rid of the error just go to the Job Properties -&gt; Performance and select Enable row buffer.&lt;br /&gt;
Then select Inter process which will let the link collector run correctly.&lt;br /&gt;
Buffer size set to 128Kb should be fine, however it&#39;s a good idea to increase the timeout.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.2. What is the DataStage equivalent to like option in ORACLE&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The following statement in Oracle:&lt;br /&gt;
select * from ARTICLES where article_name like &#39;%WHT080%&#39;;&lt;br /&gt;
Can be written in DataStage (for example as the constraint expression):&lt;br /&gt;
incol.empname matches &#39;...WHT080...&#39;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.3. what is the difference between logging text and final text message in terminator stage&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Every stage has a &#39;Logging Text&#39; area on their General tab which logs an informational message when the stage is triggered or started.&lt;br /&gt;
* Informational - is a green line, DSLogInfo() type message.&lt;br /&gt;
* The Final Warning Text - the red fatal, the message which is included in the sequence abort message&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.4. Error in STPstage - SOURCE Procedures must have an output link&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The error appears in Stored Procedure (STP) stage when there are no stages going out of that stage.To get rid of it go to &#39;stage properties&#39; -&gt; &#39;Procedure type&#39; and select Transform&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.5. How to invoke an Oracle PLSQL stored procedure from a server job&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To run a pl/sql procedure from Datastage a Stored Procedure (STP) stage can be used.&lt;br /&gt;
However it needs a flow of at least one record to run.&lt;br /&gt;
It can be designed in the following way:&lt;br /&gt;
* source odbc stage which fetches one record from the database and maps it to one column - for example: select sysdate from dual&lt;br /&gt;
* A transformer which passes that record through. If required, add pl/sql procedure parameters as columns on the right-hand side of tranformer&#39;s mapping&lt;br /&gt;
* Put Stored Procedure (STP) stage as a destination. Fill in connection parameters, type in the procedure name and select Transform as procedure type. In the input tab select &#39;execute procedure for each row&#39; (it will be run once).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.6. Is it possible to run a server job in parallel?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Yes, even server jobs can be run in parallel.&lt;br /&gt;
To do that go to &#39;Job properties&#39; -&gt; General and check the Allow Multiple Instance button.&lt;br /&gt;
The job can now be run simultaneously from one or many sequence jobs. When it happens datastage will create new entries in Director and new job will be named with automatically generated suffix (for example second instance of a job named JOB_0100 will be named JOB_0100.JOB_0100_2). It can be deleted at any time and will be automatically recreated by datastage on the next run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.7. Error in STPstage - STDPROC property required for stage xxx&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The error appears in Stored Procedure (STP) stage when the &#39;Procedure name&#39; field is empty. It occurs even if the Procedure call syntax is filled in correctly.&lt;br /&gt;
To get rid of error fill in the &#39;Procedure name&#39; field.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.8. Datastage routine to open a text file with error catching&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Note! work dir and file1 are parameters passed to the routine.&lt;br /&gt;
* open file1&lt;br /&gt;
OPENSEQ work_dir : &#39;\&#39; : file1 TO H.FILE1 THEN&lt;br /&gt;
CALL DSLogInfo(&quot;******************** File &quot; : file1 : &quot; opened successfully&quot;, &quot;JobControl&quot;)&lt;br /&gt;
END ELSE&lt;br /&gt;
CALL DSLogInfo(&quot;Unable to open file&quot;, &quot;JobControl&quot;)&lt;br /&gt;
ABORT&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.9. Datastage routine which reads the first line from a text file&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Note! work dir and file1 are parameters passed to the routine.&lt;br /&gt;
&lt;br /&gt;
* open file1&lt;br /&gt;
OPENSEQ work_dir : &#39;\&#39; : file1 TO H.FILE1 THEN&lt;br /&gt;
CALL DSLogInfo(&quot;******************** File &quot; : file1 : &quot; opened successfully&quot;, &quot;JobControl&quot;)&lt;br /&gt;
END ELSE&lt;br /&gt;
CALL DSLogInfo(&quot;Unable to open file&quot;, &quot;JobControl&quot;)&lt;br /&gt;
ABORT&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
READSEQ FILE1.RECORD FROM H.FILE1 ELSE&lt;br /&gt;
Call DSLogWarn(&quot;******************** File is empty&quot;, &quot;JobControl&quot;)&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
firstline = Trim(FILE1.RECORD[1,32],&quot; &quot;,&quot;A&quot;) ******* will read the first 32 chars&lt;br /&gt;
Call DSLogInfo(&quot;******************** Record read: &quot; : firstline, &quot;JobControl&quot;)&lt;br /&gt;
CLOSESEQ H.FILE1&lt;br /&gt;
&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.10. How to test a datastage routine or transform?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To test a datastage routine or transform go to the Datastage Manager.&lt;br /&gt;
Navigate to Routines, select a routine you want to test and open it. First compile it and then click &#39;Test...&#39; which will open a new window. Enter test parameters in the left-hand side column and click run all to see the results.&lt;br /&gt;
Datastage will remember all the test arguments during future tests.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.11. When hashed files should be used? What are the benefits or using them?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Hashed files are the best way to store data for lookups. They&#39;re very fast when looking up the key-value pairs.&lt;br /&gt;
Hashed files are especially useful if they store information with data dictionaries (customer details, countries, exchange rates). Stored this way it can be spread across the project and accessed from different jobs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.12. How to construct a container and deconstruct it or switch between local and shared?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To construct a container go to Datastage designer, select the stages that would be included in the container and from the main menu select Edit -&gt; Construct Container and choose between local and shared.&lt;br /&gt;
Local will be only visible in the current job, and share can be re-used. Shared containers can be viewed and edited in Datastage Manager under &#39;Routines&#39; menu.&lt;br /&gt;
Local Datastage containers can be converted at any time to shared containers in datastage designer by right clicking on the container and selecting &#39;Convert to Shared&#39;. In the same way it can be converted back to local.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.13. Corresponding datastage data types to ORACLE types?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Most of the datastage variable types map very well to oracle types. The biggest problem is to map correctly oracle NUMBER(x,y) format.&lt;br /&gt;
The best way to do that in Datastage is to convert oracle NUMBER format to Datastage Decimal type and to fill in Length and Scale column accordingly.&lt;br /&gt;
There are no problems with string mappings: oracle Varchar2 maps to datastage Varchar, and oracle char to datastage char.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.14. How to adjust commit interval when loading data to the database?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
In earlier versions of datastage the commit interval could be set up in:&lt;br /&gt;
General -&gt; Transaction size (in version 7.x it&#39;s obsolete)&lt;br /&gt;
Starting from Datastage 7.x it can be set up in properties of ODBC or ORACLE stage in Transaction handling -&gt; Rows per transaction.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.15. What is the use of INROWNUM and OUTROWNUM datastage variables?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
@INROWNUM and @OUTROWNUM are internal datastage variables which do the following:&lt;br /&gt;
* @INROWNUM counts incoming rows to a transformer in a datastage job&lt;br /&gt;
* @OUTROWNUM counts oucoming rows from a transformer in a datastage job&lt;br /&gt;
These variables can be used to generate sequences, primary keys, id&#39;s, numbering rows and also for debugging and error tracing.&lt;br /&gt;
They play similiar role as sequences in Oracle.&lt;br /&gt;
If set to 0 the commit will be issued at the end of a successfull transaction.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.16. Datastage trim function cuts out more characters than expected&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
By deafult datastage trim function will work this way:&lt;br /&gt;
Trim(&quot; a b c d &quot;) will return &quot;a b c d&quot; while in many other programming/scripting languages &quot;a b c d&quot; result would be expected.&lt;br /&gt;
That is beacuse by default an R parameter is assumed which is R - Removes leading and trailing occurrences of character, and reduces multiple occurrences to a single occurrence.&lt;br /&gt;
To get the &quot;a b c d&quot; as a result use the trim function in the following way: Trim(&quot; a b c d &quot;,&quot; &quot;,&quot;B&quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.17. Database update actions in ORACLE stage&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The destination table can be updated using various Update actions in Oracle stage. Be aware of the fact that it&#39;s crucial to select the key columns properly as it will determine which column will appear in the WHERE part of the SQL statement. Available actions:&lt;br /&gt;
* Clear the table then insert rows - deletes the contents of the table (DELETE statement) and adds new rows (INSERT).&lt;br /&gt;
* Truncate the table then insert rows - deletes the contents of the table (TRUNCATE statement) and adds new rows (INSERT).&lt;br /&gt;
* Insert rows without clearing - only adds new rows (INSERT statement).&lt;br /&gt;
* Delete existing rows only - deletes matched rows (issues only the DELETE statement).&lt;br /&gt;
* Replace existing rows completely - deletes the existing rows (DELETE statement), then adds new rows (INSERT).&lt;br /&gt;
* Update existing rows only - updates existing rows (UPDATE statement).&lt;br /&gt;
* Update existing rows or insert new rows - updates existing data rows (UPDATE) or adds new rows (INSERT). An UPDATE is issued first and if succeeds the INSERT is ommited.&lt;br /&gt;
* Insert new rows or update existing rows - adds new rows (INSERT) or updates existing rows (UPDATE). An INSERT is issued first and if succeeds the UPDATE is ommited.&lt;br /&gt;
* User-defined SQL - the data is written using a user-defined SQL statement.&lt;br /&gt;
* User-defined SQL file - the data is written using a user-defined SQL statement from a file.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.18. Use and examples of ICONV and OCONV functions?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
ICONV and OCONV functions are quite often used to handle data in Datastage.&lt;br /&gt;
ICONV converts a string to an internal storage format and OCONV converts an expression to an output format.&lt;br /&gt;
Syntax:&lt;br /&gt;
Iconv (string, conversion code)&lt;br /&gt;
Oconv(expression, conversion )&lt;br /&gt;
&lt;br /&gt;
Some useful iconv and oconv examples:&lt;br /&gt;
Iconv(&quot;10/14/06&quot;, &quot;D2/&quot;) = 14167&lt;br /&gt;
Oconv(14167, &quot;D-E&quot;) = &quot;14-10-2006&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.19. ERROR 81021 Calling subroutine DSR_RECORD ACTION=2&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Error message:&lt;br /&gt;
&lt;br /&gt;
DataStage Repository Interface:&lt;br /&gt;
Error calling subroutine: DSR_RECORD (Action=2);&lt;br /&gt;
check DataStage is set up correctly in project&lt;br /&gt;
Development (Internal Error (81021))&lt;br /&gt;
&lt;br /&gt;
Datastage system help gives the following error desription:&lt;br /&gt;
SYS.HELP. 081021&lt;br /&gt;
MESSAGE.. dsrpc: Error writing to Pipe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The problem appears when a job sequence is used and it contains many stages (usually more than 10) and very often when a network connection is slow.&lt;br /&gt;
&lt;br /&gt;
Basically the cause of a problem is a failure between DataStage client and the server communication.&lt;br /&gt;
&lt;br /&gt;
The solution to the issue is:&lt;br /&gt;
# Do not log in to Datastage Designer using &#39;Omit&#39; option on a login screen. Type in explicitly username and password and a job should compile successfully.&lt;br /&gt;
# execute the DS.REINDEX ALL command from the Datastage shell - if the above does not help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oconv(14167, &quot;D DMY[,A,]&quot;) = &quot;14 OCTOBER 2006&quot;&lt;br /&gt;
Oconv(12003005, &quot;MD2$,&quot;) = &quot;$120,030.05&quot;&lt;br /&gt;
&lt;br /&gt;
That expression formats a number and rounds it to 2 decimal places:&lt;br /&gt;
Oconv(L01.TURNOVER_VALUE*100,&quot;MD2&quot;)&lt;br /&gt;
&lt;br /&gt;
Iconv and oconv can be combined in one expression to reformat date format easily:&lt;br /&gt;
Oconv(Iconv(&quot;10/14/06&quot;, &quot;D2/&quot;),&quot;D-E&quot;) = &quot;14-10-2006&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.20. How to check Datastage internal error descriptions&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# To check the description of a number go to the datastage shell (from administrator or telnet to the server machine) and invoke the following command: SELECT * FROM SYS.MESSAGE WHERE @ID=&#39;081021&#39;; - where in that case the number 081021 is an error number&lt;br /&gt;
&lt;br /&gt;
The command will produce a brief error description which probably will not be helpful in resolving an issue but can be a good starting point for further analysis.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.21. Error timeout waiting for mutex&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The error message usually looks like follows:&lt;br /&gt;
... ds_ipcgetnext() - timeout waiting for mutex&lt;br /&gt;
&lt;br /&gt;
There may be several reasons for the error and thus solutions to get rid of it.&lt;br /&gt;
The error usually appears when using Link Collector, Link Partitioner and Interprocess (IPC) stages. It may also appear when doing a lookup with the use of a hash file or if a job is very complex, with the use of many transformers.&lt;br /&gt;
&lt;br /&gt;
There are a few things to consider to work around the problem:&lt;br /&gt;
- increase the buffer size (up to to 1024K) and the Timeout value in the Job properties (on the Performance tab).&lt;br /&gt;
- ensure that the key columns in active stages or hashed files are composed of allowed characters – get rid of nulls and try to avoid language specific chars which may cause the problem.&lt;br /&gt;
- try to simplify the job as much as possible (especially if it’s very complex). Consider splitting it into two or three smaller jobs, review fetches and lookups and try to optimize them (especially have a look at the SQL statements).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.22. ERROR 30107 Subroutine failed to complete successfully&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Error message:&lt;br /&gt;
Error calling subroutine:&lt;br /&gt;
DSR_RECORD (Action=2); or *DataStage*DSR_SELECT (Action=7);&lt;br /&gt;
check DataStage is set up correctly in project Development&lt;br /&gt;
(Subroutine failed to complete successfully(30107))&lt;br /&gt;
&lt;br /&gt;
Datastage system help gives the following error desription:&lt;br /&gt;
SYS.HELP. 930107&lt;br /&gt;
MESSAGE.. DataStage/SQL: Illegal placement of parameter markers&lt;br /&gt;
&lt;br /&gt;
The problem appears when a project is moved from one project to another (for example when deploying a project from a development environment to production).&lt;br /&gt;
The solution to the issue is:&lt;br /&gt;
# Rebuild the repository index by executing the DS.REINDEX ALL command from the Datastage shell&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.23. Datastage Designer hangs when editing job activity properties&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The appears when running Datastage Designer under Windows XP after installing patches or the Service Pack 2 for Windows.&lt;br /&gt;
After opening a job sequence and navigating to the job activity properties window the application freezes and the only way to close it is from the Windows Task Manager.&lt;br /&gt;
&lt;br /&gt;
The solution of the problem is very simple. Just Download and install the “XP SP2 patch” for the Datastage client.&lt;br /&gt;
It can be found on the IBM client support site (need to log in):&lt;br /&gt;
https://www.ascential.com/eservice/public/welcome.do&lt;br /&gt;
&lt;br /&gt;
Go to the software updates section and select an appropriate patch from the Recommended DataStage patches section.&lt;br /&gt;
Sometimes users face problems when trying to log in (for example when the license doesn’t cover the IBM Active Support), then it may be necessary to contact the IBM support which can be reached at WDISupport@us.ibm.com&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.24. Can Datastage use Excel files as a data input?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
# Microsoft Excel spreadsheets can be used as a data input in Datastage. Basically there are two possible approaches available: Access Excel file via ODBC - this approach requires creating an ODBC connection to the Excel file on a Datastage server machine and use an ODBC stage in Datastage. The main disadvantage is that it is impossible to do this on an Unix machine. On Datastage servers operating in Windows it can be set up here:&lt;br /&gt;
Control Panel -&gt; Administrative Tools -&gt; Data Sources (ODBC) -&gt; User DSN -&gt; Add -&gt; Driver do Microsoft Excel (.xls) -&gt; Provide a Data source name -&gt; Select the workbook -&gt; OK&lt;br /&gt;
# Save Excel file as CSV - save data from an excel spreadsheet to a CSV text file and use a sequential stage in Datastage to read the data.</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/7855325900943633572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2010/11/datastage-faqs-and-best-practices.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/7855325900943633572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/7855325900943633572'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2010/11/datastage-faqs-and-best-practices.html' title='DataStage FAQs and Best Practices'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-4591728352129852221</id><published>2010-10-27T08:38:00.005+05:30</published><updated>2015-12-30T15:40:29.962+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="FAQ&#39;s and Best Practices"/><title type='text'>Interview Questions</title><content type='html'>&lt;b&gt;1. How to remove duplicate rows?&lt;/b&gt;&lt;br /&gt;
We have various ways to do the same.&lt;br /&gt;
&lt;b&gt;ServerJobs&lt;br /&gt;
-Using Hash File.&lt;br /&gt;
-Using Stage variable&lt;br /&gt;
&lt;/b&gt; Detailed description as below. we have to define two stage variable for example stgV1 and stgV2.&lt;br /&gt;
Derivation...............Stage Variable&lt;br /&gt;
-----------------------------------------&lt;br /&gt;
stgV1......................stgV2&lt;br /&gt;
IputKeyColm(Id).....stgV1&lt;br /&gt;
&lt;br /&gt;
We have to write a constraint like as below&lt;br /&gt;
if stgV1&lt;&gt;stgV2 -------------&gt;this stream is to produce unique records&lt;br /&gt;
if stgV1=stgV2 -------------&gt;this stream is to produce duplicate records&lt;br /&gt;
hope I am clear with the same....&lt;br /&gt;
&lt;b&gt;Parallel Jobs&lt;br /&gt;
-Using Stage Variables&lt;br /&gt;
-Using Remove Duplicates Stage&lt;br /&gt;
-Using Perform sort option&lt;/b&gt; [specifically need to select unique option] under PartitioningTab&lt;br /&gt;
&lt;b&gt;-Using SortStage&lt;br /&gt;
&lt;/b&gt; &lt;br /&gt;
The Duplicates can be eliminated by loading the corresponding data in the Hash file. Specify the columns on which u want to eliminate as the keys of hash.&lt;br /&gt;
You can delete duplicate records from source itself using data stage taking option as user defined query, instead of taking table read option. and u can use remove duplicate stage in data stage. and using of hash file as source also based on the hash key.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. What are the Repository Tables in Data Stage and what are they?&lt;/b&gt;&lt;br /&gt;
A data warehouse is a repository (centralized as well as distributed) of Data, able to answer any adhoc, analytical, historical or complex queries. Metadata is data about data. Examples of metadata include data element descriptions, data type descriptions, attribute/property descriptions, range/domain descriptions, and process/method descriptions. The repository environment encompasses all corporate metadata resources: database catalogs, data dictionaries, and navigation services. Metadata includes things like the name, length, valid values, and description of a data element. Metadata is stored in a data dictionary and repository. It insulates the data warehouse from changes in the schema of operational systems. In data stage I/O and Transfer, under interface tab: input, out put &amp; transfer pages. U will have 4 tabs and the last one is build under that u can find the TABLE NAME .The Data Stage client components are: Administrator Administers Data Stage projects and conducts housekeeping on the server Designer Creates Data Stage jobs that are compiled into executable programs Director Used to run and monitor the Data Stage jobs Manager Allows you to view and edit the contents of the repository.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Differentiate Database data and Data warehouse data?&lt;/b&gt;&lt;br /&gt;
By Database, one means OLTP (On Line Transaction Processing). This can be the source systems or the ODS (Operational Data Store), which contains the transactional data.&lt;br /&gt;
Database data only for transactional purpose &amp; Data warehouse data only for analytical purpose for decision making.&lt;br /&gt;
Data base contains detail data. Data warehouse contains summary data &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4.If a Data Stage job aborts after say 1000 records, how to continue the job from 1000th record after fixing the error?&lt;/b&gt;&lt;br /&gt;
By specifying Check pointing in job sequence properties, if we restart the job. Then job will start by skipping up to the failed record. This option is available in 7.5 edition.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5. What is merge and how it can be done please explain with simple example taking  2 tables.......?&lt;/b&gt;&lt;br /&gt;
Merge is used to join two tables. It takes the Key columns sort them in Ascending or descending order. Let us consider two table i.e Emp, Dept. If we want to join these two tables we are having DeptNo as a common Key so we can give that column name as key and sort Deptno in ascending order and can join those two tables&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6. It is possible to call one job in another job in server jobs?&lt;/b&gt;&lt;br /&gt;
I think we can call a job into another job. In fact calling doesn&#39;t sound good, because you attach/add the other job through job properties. In fact, you can attach zero or more jobs.&lt;br /&gt;
Steps will be Edit --&gt; Job Properties --&gt; Job Control&lt;br /&gt;
Click on Add Job and select the desired job.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7. What are the environment variables in data stage? Give some examples?&lt;/b&gt;&lt;br /&gt;
There are the variables used at the project or job level. We can use them to configure the job i.e. We can associate the configuration file(Without this u can not run your job), increase the sequential or dataset read/ write buffer.&lt;br /&gt;
ex: $APT_CONFIG_FILE&lt;br /&gt;
Like above we have so many environment variables. Please go to job properties and click on &quot;add environment variable&quot; to see most of the environment variables.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;8. What happens if RCP is disable ?&lt;/b&gt;&lt;br /&gt;
Runtime column propagation (RCP): If RCP is enabled for any job, and specifically for those stages whose output connects to the shared container input, then Meta data will be propagated at run time, so there is no need to map it at design time.&lt;br /&gt;
If RCP is disabled for the job, in such case OSH has to perform Import and export every time when the job runs and the processing time job is also increased.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;9. How can I extract data from DB2 (on IBM iSeries) to the data warehouse via Data stage as the ETL tool? I mean do I first need to use ODBC to create connectivity and use an adapter for the extraction and transformation of data?&lt;/b&gt;&lt;br /&gt;
You would need to install ODBC drivers to connect to DB2 instance (does not come with regular drivers that we try to install, use CD provided for DB2 installation, that would have ODBC drivers to connect to DB2) and then try out &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;10. What is the mean of Try to have the constraints in the &#39;Selection&#39; criteria of the jobs itself. This will eliminate the unnecessary records even getting in before joins are made?&lt;/b&gt;&lt;br /&gt;
This means try to improve the performance by avoiding use of constraints wherever possible and instead using them while selecting the data itself using a where clause. This improves performance.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;11. What does a config File in parallel extender consist of?&lt;/b&gt;&lt;br /&gt;
Config file consists of the following.&lt;br /&gt;
a) Number of Processes or Nodes.&lt;br /&gt;
b) Actual Disk Storage Location.&lt;br /&gt;
&lt;br /&gt;
The APT Configuration file is having the information of resource disk, node pool, and scratch information, node information in the since it contains the how many nodes we given to run the jobs, because based on the nodes only data stage will create processors at back end while running the jobs, resource disk means this is the place where exactly jobs will be loading, scratch information will be useful whenever we using the lookups in the jobs&lt;br /&gt;
APT Configuration file is the configuration file which defines the nodes for the specific project and actual disk storage.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;12. Can we use shared container as lookup in data stage server jobs?&lt;/b&gt;&lt;br /&gt;
I am using Data Stage 7.5, UNIX. We can use shared container more than one time in the job. There is any limit to use it. why because in my job i used the Shared container at 6 flows. At any time only 2 flows are working. can you please share the info on this.&lt;br /&gt;
No. We cant use container as lookup.&lt;br /&gt;
Container is used to reduce the complexity view to simple view of stages or jobs, so there will be only jobs available inside and not source table or anything.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;13. How to find the number of rows in a sequential file?&lt;/b&gt;&lt;br /&gt;
Using Row Count System variable&lt;br /&gt;
Use the aggregator stage to use the count record facility &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;14. What is the difference between validated ok and compiled in data stage?&lt;/b&gt;&lt;br /&gt;
When we say &quot;Validating a Job&quot;, we are talking about running the Job in the &quot;check only&quot; mode. The following checks are made:&lt;br /&gt;
- Connections are made to the data sources or data warehouse.&lt;br /&gt;
- SQL SELECT statements are prepared.&lt;br /&gt;
- Files are opened. Intermediate files in Hashed File, Universe, or ODBC stages that use the local data source are created, if they do not already exist.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;15. What are the differences between the data stage 7.0 and 7.5 in server jobs?&lt;/b&gt;&lt;br /&gt;
There is lot of Differences: There are lots of new stages are available in DS7.5 For &lt;br /&gt;
Eg: CDC Stage Stored procedure Stage etc…&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;16. Is it possible to run parallel jobs in server jobs?&lt;/b&gt;&lt;br /&gt;
No, it is not possible to run Parallel jobs in server jobs. But Server jobs can be executed in Parallel jobs&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;17. What is DS Administrator used for - did u use it?&lt;/b&gt;&lt;br /&gt;
The Administrator enables you to set up Data Stage users, control the purging of the Repository, and, if National Language Support (NLS) is enabled, install and manage maps and locales.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;18. What is Modulus and Splitting in Dynamic Hashed File?&lt;/b&gt;&lt;br /&gt;
The modulus size can be increased by contacting your Unix Admin. &lt;br /&gt;
In a Hashed File, the size of the file keeps changing randomly.&lt;br /&gt;
If the size of the file increases it is called as &quot;Modulus&quot;.&lt;br /&gt;
If the size of the file decreases it is called as &quot;Splitting&quot;.&lt;br /&gt;
The modulus size can be increase/decrease by contacting your Data Stage Admin&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;19. How can ETL access excel file to Data mart?&lt;/b&gt;&lt;br /&gt;
Open the ODBC Data Source Administrator found in the control panel/administrative tools. Under the system DSN tab, add the Driver to Microsoft Excel. Then you will be able to access the XLS file from Data stage.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;20.What is the exact difference between Join, Merge and Lookup Stage?&lt;/b&gt;&lt;br /&gt;
The exact difference between Join, Merge and lookup is The three stages differ mainly in the memory they use Data Stage doesn&#39;t know how large your data is, so cannot make an informed choice whether to combine data using a join stage or a lookup stage. Here&#39;s how to decide which to use:&lt;br /&gt;
if the reference datasets are big enough to cause trouble, use a join. A join does a high-speed sort on the driving and reference datasets. This can involve I/O if the data is big enough, but the I/O is all highly optimized and sequential. Once the sort is over the join processing is very fast and never involves paging or other I/O&lt;br /&gt;
Unlike Join stages and Lookup stages, the Merge stage allows you to specify several reject links as many as input links.&lt;br /&gt;
The three stages differs with each other with respect to&lt;br /&gt;
1. Input Requirements&lt;br /&gt;
2. Treatment of unmatched records&lt;br /&gt;
3. Memory Usage&lt;br /&gt;
Join requires less memory usage&lt;br /&gt;
Lookup requires more memory usage and&lt;br /&gt;
Merge requires less memory usage&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;21. What about System variables?&lt;/b&gt;&lt;br /&gt;
Data Stage provides a set of variables containing useful system information that you can access from a transform or routine. System variables are read-only.&lt;br /&gt;
@DATE The internal date when the program started. See the Date function.&lt;br /&gt;
@DAY The day of the month extracted from the value in @DATE.&lt;br /&gt;
@FALSE The compiler replaces the value with 0.&lt;br /&gt;
@FM A field mark, Char(254).&lt;br /&gt;
@IM An item mark, Char(255).&lt;br /&gt;
@INROWNUM Input row counter. For use in constrains and derivations in Transformer stages.&lt;br /&gt;
@OUTROWNUM Output row counter (per link). For use in derivations in Transformer stages.&lt;br /&gt;
@LOGNAME The user login name.&lt;br /&gt;
@MONTH The current extracted from the value in @DATE.&lt;br /&gt;
@NULL The null value.&lt;br /&gt;
@NULL.STR The internal representation of the null value, Char(128).&lt;br /&gt;
@PATH The pathname of the current Data Stage project.&lt;br /&gt;
@SCHEMA The schema name of the current Data Stage project.&lt;br /&gt;
@SM A sub value mark (a delimiter used in Universe files), Char(252).&lt;br /&gt;
@SYSTEM.RETURN.CODE Status codes returned by system processes or commands.&lt;br /&gt;
@TIME The internal time when the program started. See the Time function.&lt;br /&gt;
@TM A text mark (a delimiter used in Universe files), Char(251).&lt;br /&gt;
@TRUE The compiler replaces the value with 1.&lt;br /&gt;
@USERNO The user number.&lt;br /&gt;
@VM A value mark (a delimiter used in Universe files), Char(253).&lt;br /&gt;
@WHO The name of the current Data Stage project directory.&lt;br /&gt;
@YEAR The current year extracted from @DATE.&lt;br /&gt;
REJECTED Can be used in the constraint expression of a Transformer stage of an output link. REJECTED is initially TRUE, but is set to FALSE whenever an output link is successfully written. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;22. Importance of Surrogate Key in Data warehousing? &lt;/b&gt;&lt;br /&gt;
The concept of surrogate comes into play when there is slowly changing dimension in a table. In such condition there is a need of a key by which we can identify the changes made in the dimensions. These slowly changing dimensions can be of three type namely SCD1, SCD2, SCD3.These are system generated key. Mainly they are just the sequence of numbers or can be alphanumeric values also.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;23. How to handle the rejected rows in data stage?&lt;/b&gt;&lt;br /&gt;
We can handle rejected rows in two ways with help of Constraints in a Tansformer.1) By Putting on the Rejected cell where we will be writing our constraints in the properties of the Transformer2)Use REJECTED in the expression editor of the Constraint Create a hash file as a temporary storage for rejected rows. Create a link and use it as one of the output of the transformer. Apply either of the two steps above said on that Link. All the rows which are rejected by all the constraints will go to the Hash File.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;24. How can you do incremental load in data stage?&lt;/b&gt;&lt;br /&gt;
Incremental load means daily load. When ever you are selecting data from source, select the records which are loaded or updated between the timestamp of last successful load and today’s load start date and time. For this u have to pass parameters for those two dates. Store the last run date and time in a file and read the parameter through job parameters and state second argument as current date and time.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;25. How do we do the automation of data stage jobs?&lt;/b&gt;&lt;br /&gt;
We can call Data stage Batch Job from Command prompt using &#39;dsjob&#39;. We can also pass all the parameters from command prompt. Then call this shell script in any of the market available schedulers.&lt;br /&gt;
The 2nd option is schedule these jobs using Data Stage director.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;26. Can anyone tell me how to extract data from more than 1 heterogeneous Sources? Mean, example 1 sequential file, Sybase, Oracle in a single Job?&lt;/b&gt;&lt;br /&gt;
Yes you can extract the data from  two heterogeneous sources in data stages using the transformer stage it&#39;s so simple you need to just form a link between the two sources in the transformer stage that&#39;s it Bye Hammed&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;27. What is merge? And how to use merge?&lt;/b&gt;&lt;br /&gt;
Merge is a stage that is available in both parallel and server jobs.&lt;br /&gt;
The merge stage is used to join two tables (server/parallel) or two ables/datasets(parallel). Merge requires that the master table/dataset and the update table/dataset to be sorted. Merge is performed on a key field, and the key field is mandatory in the master and update dataset/table. Merge is used to merge the two tables, but when master and update records are merged only both have same merge key columns.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;28. What&#39;s the difference between Data stage Developers and Data stage Designers. What are the skills required for this?&lt;/b&gt;&lt;br /&gt;
Data stage developer is one how will code the jobs. Data stage designer is how will design the job, i mean he will deal with blue prints and he will design the jobs the stages that are required in developing the code&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;29.What is the OCI? And how to use the ETL Tools?&lt;/b&gt;&lt;br /&gt;
OCI doesn&#39;t mean the orabulk data. It actually uses the &quot;Oracle Call Interface&quot; of the oracle to load the data. It is kind of the lowest level of Oracle being used for loading the data.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;30.What are the different types of lookups in data stage?&lt;/b&gt;&lt;br /&gt;
There are two types of lookup stage and look up file set&lt;br /&gt;
Lookup: Lookup reference to another stage or Database to get the data from it and transforms to other database. &lt;br /&gt;
Lookup File Set: It allows you to create a lookup file set or reference one for a lookup. The stage can have a single input link or a single output link. The output link must be a reference link. The stage can be configured to execute in parallel or sequential mode when used with an input link. When creating Lookup file sets, one file will be created for each partition. The individual files are referenced by a single descriptor file, which by convention has the suffix .&lt;br /&gt;
There are two types of lookups&lt;br /&gt;
1. Normal look up&lt;br /&gt;
2. Sparse look up&lt;br /&gt;
Normal look up: To perform this look up data will be stored in the memory first and then look up will be performed bue to which it takes more execution time&lt;br /&gt;
&lt;br /&gt;
Sparse look up: Sql query will be directly fired on the database related record due to which execution is faster than normal look up. For a single job we can use only one file with sparse look up where as no: of normal lookups can be used. But once we mention file to do sparse lookup it will not accept normal look up after that. So make sure to mention all your normal lookups first and sparse lookups at the last.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;31. How to implement type2 slowly changing dimension in data stage? Give me with example?&lt;/b&gt;&lt;br /&gt;
Slow changing dimension is a common problem in Data warehousing. For example: There exists a customer called Lisa in a company ABC and she lives in New York. Later she moved to Florida. The company must modify her address now. In general 3 ways to solve  this problem.&lt;br /&gt;
Type 1: The new record replaces the original record, no trace of the old record at all, Type 2: A new record is added into the customer dimension table. Therefore, the customer is treated essentially as two different people. &lt;br /&gt;
Type 3: The original record is modified to reflect the changes. &lt;br /&gt;
In Type1 the new one will over write the existing one that means no history is maintained, History of the person where she stayed last is lost, simple to use.&lt;br /&gt;
In Type2 New record is added, therefore both the original and the new record Will be present, the new record will get its own primary key, Advantage of using this type2 is, Historical information is maintained But size of the dimension table grows, storage and performance can become a concern.&lt;br /&gt;
Type2 should only be used if it is necessary for the data warehouse to track the historical changes.&lt;br /&gt;
In Type3 there will be 2 columns one to indicate the original value and the other to indicate the current value. Example a new column will be added which shows the original address as New York and the current address as Florida. Helps in keeping some part of the history and table size is not increased. But one problem is when the customer moves from Florida to Texas the New York information is lost. So Type 3 should only be used if the changes will only occur for a finite number of times.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;32.What is DS Manager used for - did u use it? &lt;/b&gt;&lt;br /&gt;
The Manager is a graphical tool that enables you to view and manage the contents of the Data Stage Repository &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;33. What are other Performance tunings you have done in your last project to increase the performance of slowly running jobs?&lt;/b&gt;&lt;br /&gt;
Minimize the usage of Transformer (Instead of this use Copy, modify, Filter, Row Generator) Use SQL Code while extracting the data&lt;br /&gt;
Handle the nulls&lt;br /&gt;
Minimize the warnings&lt;br /&gt;
Reduce the number of lookups in a job design&lt;br /&gt;
Use not more than 20stages in a job&lt;br /&gt;
Use IPC stage between two passive stages Reduces processing time&lt;br /&gt;
Drop indexes before data loading and recreate after loading data into tables&lt;br /&gt;
Generally we cannot avoid no of lookups if our requirements to do lookups compulsory.&lt;br /&gt;
There is no limit for no of stages like 20 or 30 but we can break the job into small jobs then we use dataset Stages to store the data.&lt;br /&gt;
IPC Stage that is provided in Server Jobs not in Parallel Jobs&lt;br /&gt;
Check the write cache of Hash file. If the same hash file is used for Look up and as well as target, disable this Option.&lt;br /&gt;
If the hash file is used only for lookup then &quot;enable Preload to memory&quot;. This will improve the performance. Also, check the order of execution of the routines.&lt;br /&gt;
Don&#39;t use more than 7 lookups in the same transformer; introduce new transformers if it exceeds 7 lookups.&lt;br /&gt;
Use Preload to memory option in the hash file output.&lt;br /&gt;
Use Write to cache in the hash file input.&lt;br /&gt;
Write into the error tables only after all the transformer stages.&lt;br /&gt;
Reduce the width of the input record - remove the columns that you would not use.&lt;br /&gt;
Cache the hash files you are reading from and writing into. Make sure your cache is big enough to hold the hash files.&lt;br /&gt;
Use ANALYZE.FILE or HASH.HELP to determine the optimal settings for your hash files.&lt;br /&gt;
This would also minimize overflow on the hash file.&lt;br /&gt;
If possible, break the input into multiple threads and run multiple instances of the job.&lt;br /&gt;
Staged the data coming from ODBC/OCI/DB2UDB stages or any database on the server using Hash/Sequential files for optimum performance also for data recovery in case job aborts.&lt;br /&gt;
Tuned the OCI stage for &#39;Array Size&#39; and &#39;Rows per Transaction&#39; numerical values for faster inserts, updates and selects. &lt;br /&gt;
Tuned the &#39;Project Tumbles&#39; in Administrator for better performance. &lt;br /&gt;
Used sorted data for Aggregator.&lt;br /&gt;
Sorted the data as much as possible in DB and reduced the use of DS-Sort for better performance of jobs&lt;br /&gt;
Removed the data not used from the source as early as possible in the job.&lt;br /&gt;
Worked with DB-admin to create appropriate Indexes on tables for better performance of DS queries&lt;br /&gt;
Converted some of the complex joins/business in DS to Stored Procedures on DS for faster execution of the jobs.&lt;br /&gt;
If an input file has an excessive number of rows and can be split-up then use standard logic to run jobs in parallel.&lt;br /&gt;
Before writing a routine or a transform, make sure that there is not the functionality required in one of the standard routines supplied in the sdk or ds utilities categories.&lt;br /&gt;
Constraints are generally CPU intensive and take a significant amount of time to process. This may be the case if the constraint calls routines or external macros but if it is inline code then the overhead will be minimal.&lt;br /&gt;
Try to have the constraints in the &#39;Selection&#39; criteria of the jobs itself. This will eliminate the unnecessary records even getting in before joins are made.&lt;br /&gt;
Tuning should occur on a job-by-job basis.&lt;br /&gt;
Use the power of DBMS.&lt;br /&gt;
Try not to use a sort stage when you can use an ORDER BY clause in the database.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;34. Using a constraint to filter a record set is much slower than performing a SELECT? WHERE?&lt;/b&gt;&lt;br /&gt;
Make every attempt to use the bulk loader for your particular database. Bulk loaders are generally faster than using ODBC or OLE.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;35. What is the order of execution done internally in the transformer with the stage editor having input links on the left hand side and output links?&lt;/b&gt;&lt;br /&gt;
Stage variables, constraints and column derivation or expressions.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;36. What is the difference between In-process and Inter-process?&lt;/b&gt;&lt;br /&gt;
In-process&lt;br /&gt;
You can improve the performance of most Data Stage jobs by turning in-process row buffering on and recompiling the job. This allows connected active stages to pass data via buffers rather than row by row.&lt;br /&gt;
Note: You cannot use in-process row-buffering if your job uses COMMON blocks in transform functions to pass data between stages. This is not recommended practice, and it is advisable to redesign your job to use row buffering rather than COMMON blocks.&lt;br /&gt;
&lt;br /&gt;
Inter-process&lt;br /&gt;
Use this if you are running server jobs on an SMP parallel system. This enables the job to run using a separate process for each active stage, which will run simultaneously on a separate processor.&lt;br /&gt;
Note: You cannot inter-process row-buffering if your job uses COMMON blocks in transform functions to pass data between stages. This is not recommended practice, and it is advisable to redesign your job to use row buffering rather than COMMON blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;37.What is DS Designer used for - did u use it?&lt;/b&gt;&lt;br /&gt;
You use the Designer to build jobs by creating a visual design that models the flow and transformation of data from the data source through to the target warehouse. The Designer graphical interface lets you select stage icons, drop them onto the Designer work area, and add links. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;38. How to handle Date conventions in Data stage? Convert a mm/dd/yyyy format to yyyy-dd-mm?&lt;/b&gt;&lt;br /&gt;
Function to convert mm/dd/yyyy format to yyyy-dd-mm is&lt;br /&gt;
Oconv(Iconv(Filedname,&quot;D/MDY[2,2,4]&quot;),&quot;D-YDM[4,2,2]&quot;) .&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;39. If data is partitioned in your job on key 1 and then you aggregate on key 2, what issues could arise?&lt;/b&gt;&lt;br /&gt;
Data will partition on both the keys! Hardly it will take more for execution.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;40. What is purpose of using the key and difference between Surrogate keys and natural key?&lt;/b&gt;&lt;br /&gt;
We use keys to provide relationships between the entities (Tables). By using primary and foreign key relationship, we can maintain integrity of the data.&lt;br /&gt;
The natural key is the one coming from the OLTP system.&lt;br /&gt;
The surrogate key is the artificial key which we are going to create in the target DW. We can use these surrogate keys instead of using natural key. In the SCD2 scenarios surrogate keys play a major role. &lt;br /&gt;
Natural key: key that is formed of attributes that already exist in the real world. e.g.SSN id.&lt;br /&gt;
&lt;br /&gt;
Surrogate key: it can be thought of as a replacement of the natural key that has no business meaning. E.g. sequence in oracle.&lt;br /&gt;
I think there is a bug in the data stage 8.0.1 surrogate key generator. It seems to be very much inconsistent.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;41. Is it possible to move the data from oracle ware house to SAP Warehouse using with DATASTAGE Tool?&lt;/b&gt;&lt;br /&gt;
We can use Data Stage Extract Pack for SAP R/3 and Data Stage Load Pack for SAP BW to transfer the data from oracle to SAP Warehouse. These Plug In Packs are available with Data Stage Version 7.5&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;42. How to kill the job in data stage?&lt;/b&gt;&lt;br /&gt;
By using Cleanup Resource or By killing the respective process ID&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;43. How we can call the routine in data stage job? Explain with steps?&lt;/b&gt;&lt;br /&gt;
Routines are used for implementing the business logic they are two types 1) Before Sub Routines and 2)After Sub Routine steps double click on the transformer stage right click on any one of the mapping field select [dstoutines] option within edit window give the business logic and select the either of the options( Before / After Sub Routines).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;44. What are the most important aspects that a beginner must consider doin his first DS project?&lt;/b&gt;&lt;br /&gt;
He should be good at Data Warehousing Concepts and he should be familiar with all stages&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;45. How I can convert Server Jobs into Parallel Jobs?&lt;/b&gt;&lt;br /&gt;
I have never tried doing this, however, I have some information which will help you in saving a lot of time. You can convert your server job into a server shared container. The server shared container can also be used in parallel jobs as shared container.&lt;br /&gt;
I don&#39;t think this conversion might be possible.&lt;br /&gt;
Using ipc stage or link partitioner/link collector can incorporate a n amount of parallelism in the server jobs.&lt;br /&gt;
My requirement is like this:&lt;br /&gt;
Here is the codification suggested:&lt;br /&gt;
SALE_HEADER_XXXXX_YYYYMMDD.PSV&lt;br /&gt;
SALE_LINE_XXXXX_YYYYMMDD.PSV&lt;br /&gt;
&lt;br /&gt;
XXXXX = LVM sequence to ensure unicity and continuity of file exchanges&lt;br /&gt;
Caution, there will an increment to implement.&lt;br /&gt;
YYYYMMDD = LVM date of file creation&lt;br /&gt;
&lt;br /&gt;
COMPRESSION AND DELIVERY TO: SALE_HEADER_XXXXX_YYYYMMDD.ZIP AND SALE_LINE_XXXXX_YYYYMMDD.ZIP&lt;br /&gt;
If we run that job the target file names are like this&lt;br /&gt;
sale_header_1_20060206 &amp; sale_line_1_20060206.&lt;br /&gt;
&lt;br /&gt;
If we run next time means the target files we like this sale_header_2_20060206 &amp; sale_line_2_20060206.&lt;br /&gt;
If we run the same in next day means the target files we want like this&lt;br /&gt;
sale_header_3_20060306 &amp; sale_line_3_20060306.&lt;br /&gt;
i.e., whenever we run the same job the target files automatically changes its filename to&lt;br /&gt;
filename_increment to previous number(previousnumber + 1)_currentdate;&lt;br /&gt;
Please do needful by repling this question..&lt;br /&gt;
This can be done by using unix script&lt;br /&gt;
1. Keep? the Target filename as constant name xxx.psv&lt;br /&gt;
2. Once the job completed, invoke the Unix Script through After job routine - ExecSh&lt;br /&gt;
3. The script should get the number used in previous file and increment it by 1, After that move the file from xxx.psv to filename_(previousnumber + 1)_currentdate.psv and then delete the xxx.psv file.This is the?Easiest way to implement.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;46.What is the difference between symmetrically parallel processing, massively parallel processing?&lt;/b&gt;&lt;br /&gt;
Symmetric Multiprocessing (SMP) - Some Hardware resources may be shared by processor. Processors communicate via shared memory and have single operating system.&lt;br /&gt;
Cluster or Massively Parallel Processing (MPP) - Known as shared nothing in which each processor have exclusive access to hardware resources. Cluster systems can be physically dispersed. The processor has their own operations system and communicate via high speed network&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;47. What is the purpose of exception activity in data stage 7.5?&lt;/b&gt;&lt;br /&gt;
The stages followed by exception activity will be executed whenever there is an unknown error occurs while running the job sequencer.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;48. Where we use link partitioner in data stage job? explain with example?&lt;/b&gt;&lt;br /&gt;
We use Link Partitioner in Data Stage Server Jobs. The Link Partitioner stage is an active stage which takes one input and allows you to distribute partitioned rows to up to 64 output links.&lt;br /&gt;
The 100 employees salaries in one organization .i want to load &gt;300 emps in one target and &lt;250 and &gt;450 in one target that time go for link partioner stage&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;49. How to parameterize a field in a sequential file? I am using Data stage as ETL Tool, Sequential file as source?&lt;/b&gt;&lt;br /&gt;
We cannot parameterize a particular field in a sequential file, instead we can parameterize the source file name in a sequential file.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;50. How to drop the index before loading data in target and how to rebuild it in data stage?&lt;/b&gt;&lt;br /&gt;
This can be achieved by &quot;Direct Load&quot; option of SQL Loaded utility.&lt;br /&gt;
If we are using OCI &amp; database stage, we can use Before/After sql property in stage properties.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;51.If the size of the Hash file exceeds 2GB..What happens? Does it overwrite the current rows? &lt;/b&gt;&lt;br /&gt;
It overwrites the file&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;52. Can we retain the removed duplicate values...If yes, how can we do that?&lt;/b&gt;&lt;br /&gt;
It is possible to access the same job two users at a time in data stage&lt;br /&gt;
No, it is not possible to access the same job two users at the same time. DS will produce the following error: &quot;Job is accessed by other user&quot;&lt;br /&gt;
No it is not possible for the same job to be accessed by two users, because if one of the job is being used by one user then if the second one tries to open the same job then you get the error as &quot;Job (job name) is being accessed by another user&quot;&lt;br /&gt;
--In Data stage 8 it is possible to open the job as Read-Only. In order to do some modification in the read-only job, take a copy of the job as modification cannot be done in a read only job. This feature is not available in Data stage 7.5.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;53. What is job control? How it is developed? Explain with steps?&lt;/b&gt;&lt;br /&gt;
Controlling Data stage jobs through some other Data stage jobs. Ex: Consider two Jobs XXX and YYY. The Job YYY can be executed from Job XXX by using Data stage macros in Routines.&lt;br /&gt;
To execute one job from other job, following steps needs to be followed in Routines.&lt;br /&gt;
1. Attach job using DS Attach job function.&lt;br /&gt;
2. Run the other job using DS Run job function&lt;br /&gt;
3. Stop the job using DSS top Job function&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;54. Where actually the flat files store? What is the path?&lt;/b&gt;&lt;br /&gt;
Flat files stores the data and the path can be given in general tab of the sequential file stage&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;55. Will the data stage consider the second constraint in the transformer once the first condition is satisfied ( if the link ordering is given)?&lt;/b&gt;&lt;br /&gt;
Will Data stage consider the second constraint in the transformer if the first constraint is satisfied (if link ordering is given)?&quot;&lt;br /&gt;
Answer: Yes.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;56. What is a project? Specify its various components?&lt;/b&gt;&lt;br /&gt;
You always enter Data Stage through a Data Stage project. When you start a Data Stage client you are prompted to connect to a project. Each project contains:&lt;br /&gt;
Data Stage jobs:&lt;br /&gt;
Built-in components: These are predefined components used in a job.&lt;br /&gt;
User-defined components: These are customized components created using the Data Stage Manager or Data Stage Designer&lt;br /&gt;
You always enter Data Stage through a Data Stage project. When you start a Data Stage client you are prompted to connect to a project. Each project contains:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;57. Briefly describe the various client components?&lt;/b&gt;&lt;br /&gt;
There are four client components&lt;br /&gt;
Data Stage Designer: A design interface used to create Data Stage applications (known as jobs). Each job specifies the data sources, the transforms required, and the destination of the data. Jobs are compiled to create executables that are scheduled by the Director and run by the Server.&lt;br /&gt;
Data Stage Director: A user interface used to validate, schedule, run, and monitor Data Stage jobs.&lt;br /&gt;
Data Stage Manager: A user interface used to view and edit the contents of the Repository.&lt;br /&gt;
Data Stage Administrator: A user interface used to configure Data Stage projects and users.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;58. What are the Steps involved in development of a job in Data Stage?&lt;/b&gt;&lt;br /&gt;
The steps required are:&lt;br /&gt;
Select the data source stage depending upon the sources for ex: flat file, database, xml etc&lt;br /&gt;
Select the required stages for transformation logic such as transformer, link collector, link practitioner, Aggregator, merge etc.&lt;br /&gt;
Select the final target stage where u want to load the data either it is data warehouse, data mart, ODS, staging etc&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;59. What are constraints and derivation?&lt;/b&gt;&lt;br /&gt;
Explain the process of taking backup in Data Stage?&lt;br /&gt;
What are the different types of lookups available in Data Stage?&lt;br /&gt;
Constraints are used to check for a condition and filter the data. Example: Cust_Id&lt;&gt;0 is set as a constraint and it means and only those records meeting this will be processed further.&lt;br /&gt;
Derivation is a method of deriving the fields, for example if you need to get some SUM, AVG etc.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;60. How does Data Stage handle the user security?&lt;/b&gt;&lt;br /&gt;
We have to create users in the Administrators and give the necessary privileges to users.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;61. What is meaning of file extender in data stage server jobs?&lt;/b&gt;&lt;br /&gt;
Can we run the data stage job from one job to another job that file data where it is stored and what is the file extender in data stage jobs?&lt;br /&gt;
What is meaning of file extender in data stage server jobs?&lt;br /&gt;
Can we run the data stage job from one job to another job that file data where it is stored and what is the file extender in data stage jobs?&lt;br /&gt;
File extender means the adding the columns or records to the already existing the file, in the data stage. We can run the data stage job from one job to another job in data stage.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;62. What is the difference between DRS and ODBC stage?&lt;/b&gt;&lt;br /&gt;
To answer your question the DRS stage should be faster then the ODBC stage as it uses native database connectivity. You will need to install and configure the required database clients on your Data Stage server for it to work.&lt;br /&gt;
&lt;br /&gt;
Dynamic Relational Stage was leveraged for People soft to have a job to run on any of the supported databases. It supports ODBC connections too. Read more of that in the plug-in documentation.&lt;br /&gt;
ODBC uses the ODBC driver for a particular database, DRS is a stage that tries to make it seamless for switching from one database to another. It uses the native connectivities for the chosen target...&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;63. How to use rank &amp; update strategy in data stage?&lt;/b&gt;&lt;br /&gt;
Don&#39;t mix informatica with Data stage.&lt;br /&gt;
In Data stage, we don’t have such kind of stages.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;64. What is the max capacity of Hash file in Data Stage?&lt;/b&gt;&lt;br /&gt;
Take a look at the uvconfig file:&lt;br /&gt;
# 64BIT_FILES - This sets the default mode used to&lt;br /&gt;
# create static hashed and dynamic files.&lt;br /&gt;
# A value of 0 results in the creation of 32-bit&lt;br /&gt;
# files. 32-bit files have a maximum file size of&lt;br /&gt;
# 2 gigabytes. A value of 1 results in the creation&lt;br /&gt;
# of 64-bit files (ONLY valid on 64-bit capable platforms).&lt;br /&gt;
# The maximum file size for 64-bit&lt;br /&gt;
# files is system dependent. The default behavior&lt;br /&gt;
# may be overridden by keywords on certain commands.&lt;br /&gt;
64BIT_FILES 0&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;65. How to implement type2 slowly changing dimensions in data stage? Explain with example?&lt;/b&gt;&lt;br /&gt;
We can handle SCD in the following ways&lt;br /&gt;
Type 1: Just use, Insert rows Else Update rows? Or? Update rows Else Insert rows? in update action of target&lt;br /&gt;
Type 2: Use the steps as follows&lt;br /&gt;
a) U have use one hash file to Look-Up the target&lt;br /&gt;
b) Take 3 instances of target&lt;br /&gt;
c) Give different conditions depending on the process&lt;br /&gt;
d) Give different update actions in target&lt;br /&gt;
e) Use system variables like Sysdate and Null.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;66. What is merge and how it can be done please explain with simple example taking 2 tables .......?&lt;/b&gt;&lt;br /&gt;
Merge is used to join two tables. It takes the Key columns sort them in Ascending or descending order. Let us consider two table i.e. Emp, Dept. If we want to join these two tables we are having Deptno as a common Key so we can give that column name as key and sort Deptno in ascending order and can join those two tables&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;67. How can ETL excel file to Data mart?&lt;/b&gt;&lt;br /&gt;
Open the ODBC Data Source Administrator found in the controlpanel/administrative tools. Under the system DSN tab, add the Driver to Microsoft Excel.&lt;br /&gt;
Then you&#39;ll be able to access the XLS file from Data stage.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;68. How do we do the automation of ds jobs?&lt;/b&gt;&lt;br /&gt;
We can call Data stage Batch Job from Command prompt using &#39;dsjob&#39;. We can also pass all the parameters from command prompt. Then call this shell script in any of the market available schedulers. The 2nd option is schedule these jobs using Data Stage director.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;69. What are constraints and derivation?&lt;/b&gt;&lt;br /&gt;
Explain the process of taking backup in Data Stage?&lt;br /&gt;
What are the different types of lookups available in Data Stage?&lt;br /&gt;
Constraints are used to check for a condition and filter the data. Example: Cust_Id&lt;&gt;0 is set as a constraint and it means and only those records meeting this will be processed further. Derivation is a method of deriving the fields, for example if you need to get some SUM,AVG etc.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;70. How does Data Stage handle the user security?&lt;/b&gt;&lt;br /&gt;
We have to create users in the Administrators and give the necessary privileges to users.&lt;br /&gt;
What is meaning of file extender in data stage server jobs.&lt;br /&gt;
can we run the data stage job from one job to another job that file data where it is stored and what is the file extender in ds jobs.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;71. What is meaning of file extender in data stage server jobs.&lt;/b&gt;&lt;br /&gt;
can we run the data stage job from one job to another job that file data where it is stored and what is the file extender in ds jobs.&lt;br /&gt;
File extender means the adding the columns or records to the already existing the file, in the data stage, we can run the data stage job from one job to another job in data stage.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;72. What is the difference between DRS and ODBC stage?&lt;/b&gt;&lt;br /&gt;
To answer your question the DRS stage should be faster then the ODBC stage as it uses native database connectivity. You will need to install and configure the required database clients on your Data Stage server for it to work.&lt;br /&gt;
Dynamic Relational Stage was leveraged for PeopleSoft to have a job to run on any of the supported databases. It supports ODBC connections too. Read more of that in the plug-in documentation.&lt;br /&gt;
ODBC uses the ODBC driver for a particular database, DRS is a stage that tries to make it seamless for switching from one database to another. It uses the native connectivities for the chosen target &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;73. How to use rank and update strategy in data stage?&lt;/b&gt;&lt;br /&gt;
Don&#39;t mix informatica with Data stage.&lt;br /&gt;
In Data stage, we don’t have such kind of stages.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;74. What is the max capacity of Hash file in Data Stage?&lt;/b&gt;&lt;br /&gt;
Take a look at the uvconfig file:&lt;br /&gt;
# 64BIT_FILES - This sets the default mode used to&lt;br /&gt;
# create static hashed and dynamic files.&lt;br /&gt;
# A value of 0 results in the creation of 32-bit&lt;br /&gt;
# files. 32-bit files have a maximum file size of&lt;br /&gt;
# 2 gigabytes. A value of 1 results in the creation&lt;br /&gt;
# of 64-bit files (ONLY valid on 64-bit capable platforms).&lt;br /&gt;
# The maximum file size for 64-bit&lt;br /&gt;
# files is system dependent. The default behavior&lt;br /&gt;
# may be overridden by keywords on certain commands.&lt;br /&gt;
64BIT_FILES 0&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;75. How to implement type2 slowly changing dimensions in data stage? Explain with example?&lt;/b&gt;&lt;br /&gt;
We can handle SCD in the following ways&lt;br /&gt;
Type 1: Just use, Insert rows Else Update rows?&lt;br /&gt;
Or ? Update rows Else Insert rows?, in update action of target&lt;br /&gt;
Type 2: Use the steps as follows&lt;br /&gt;
a) U have use one hash file to Look-Up the target&lt;br /&gt;
b) Take 3 instances of target&lt;br /&gt;
c) Give different conditions depending on the process&lt;br /&gt;
d) Give different update actions in target&lt;br /&gt;
e) Use system variables like Sysdate and Null.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;76. How can we improve the performance of Data Stage?&lt;/b&gt;&lt;br /&gt;
Trun in-process buffer and transaction size&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;77. What is data set? and what is file set?&lt;/b&gt;&lt;br /&gt;
File set:- It allows you to read data from or write data to a file set. The stage can have a single input link. a single output link, and a single rejects link. It only executes in parallel mode The data files and the file that lists them are called a file set. This capability is useful because some operating systems impose a 2 GB limit on the size of a file and you need to distribute files among nodes to prevent overruns.&lt;br /&gt;
Datasets r used to import the data in parallel jobs like ODBC in server jobs&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;78. How the hash file is doing lookup in server jobs? How is it comparing the key values?&lt;/b&gt;&lt;br /&gt;
Hashed File is used for two purposes: 1. Remove Duplicate Records 2. Then Used for reference lookups. The hashed file contains 3 parts: Each record having Hashed Key, Key Header and Data portion. By using hashed algorithm and the key valued the lookup is faster.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;79. What are orabulk and bcp stages?&lt;/b&gt;&lt;br /&gt;
ORABULK is used to load bulk data into single table of target oracle database.&lt;br /&gt;
BCP is used to load bulk data into a single table for Microsoft sql server and Sybase.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;80. How is data stage 4.0 functionally different from the enterprise edition now?? what are the exact changes?&lt;/b&gt;&lt;br /&gt;
There are lot of Changes in DS EE. CDC Stage, Procedure Stage, Etc..........&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;81. Data Stage from Staging to MDW is only running at 1 row per second! What do we do to emedy?&lt;/b&gt;&lt;br /&gt;
I am assuming that there are too many stages, which is causing problem and providing the solution.&lt;br /&gt;
In general. if you too many stages (especially transformers , hash look up), there would be a lot of overhead and the performance would degrade drastically. I would suggest you to write a query instead of doing several look ups. It seems as though embarrassing to have a tool and still write a query but that is best at times.&lt;br /&gt;
If there are too many look ups that are being done, ensure that you have appropriate indexes while querying. If you do not want to write the query and use intermediate stages, ensure that you use proper elimination of data between stages so that data volumes do not cause overhead. So, there might be a re-ordering of stages needed for good performance.&lt;br /&gt;
Other things in general that could be looked in:&lt;br /&gt;
1) For massive transaction set hashing size and buffer size to appropriate values to perform as much as possible in memory and there is no I/O overhead to disk.&lt;br /&gt;
2) Enable row buffering and set appropriate size for row buffering&lt;br /&gt;
3) It is important to use appropriate objects between stages for performance&lt;br /&gt;
What user variable activity when it used how it used! Where it is used with real example&lt;br /&gt;
By using This User variable activity we can create some variables in the job sequence, this variables r available for all the activities in that sequence.&lt;br /&gt;
Most probably this activity is @ starting of the job sequence&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;82. How can I specify a filter command for processing data while defining sequential file output data?&lt;/b&gt;&lt;br /&gt;
We have some thing called as after job subroutine and before subroutine, with then we can execute the UNIX commands.&lt;br /&gt;
Here we can use the sort summand or the filter CD command&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;83. What are validations you perform after creating jobs in designer? What r the different type of errors u faced during loading and how u solves them?&lt;/b&gt;&lt;br /&gt;
Check for Parameters.&lt;br /&gt;
And check for input files are existed or not and also check for input tables existed or not and also usernames, data source names, passwords like that&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;84. What is the difference between Data stage and Data stage TX?&lt;/b&gt;&lt;br /&gt;
Its a critical question to answer, but one thing i can tell u that Data stage Tx is not a ETL tool &amp; this is not a new version of Data stage 7.5.&lt;br /&gt;
Tx is used for ODS source, this much i know&lt;br /&gt;
DS TX is not a ETL tool. It comes in a category of EAI.  TX helps in connecting various frontend to diff back ends. it has a inbuilt plug-in for many diff sources and targets. In short it can make ur application platform independent. It can also parse data.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;85. If you are running  your Parallel Job on 4 node configuration file and you have 10 stages on the canvas, how many processes does data stage creates?&lt;/b&gt;&lt;br /&gt;
Answer is 40 [considering number of stages and the player processes]&lt;br /&gt;
--You have 10 stages and each stage can be partitioned and run on 4 nodes which makes total number of processes generated are 40&lt;br /&gt;
Note: It may vary based on the operator combinability.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;86. Does Enterprise Edition only add the parallel processing for better performance?&lt;/b&gt;&lt;br /&gt;
Are any stages/transformations available in the enterprise edition only?&lt;br /&gt;
Data Stage Standard Edition was previously called Data Stage and Data Stage Server Edition. Data Stage Enterprise Edition was originally called Orchestrate, and then renamed to Parallel Extender when purchased by Acential.  Data Stage Enterprise: Server jobs, sequence jobs, parallel jobs. The enterprise edition offers parallel processing features for scalable high volume solutions. Designed originally for UNIX, it now supports Windows, Linux and Unix System Services on mainframes. ? Data Stage Enterprise MVS: Server jobs, sequence jobs, parallel jobs, mvs jobs. MVS jobs are jobs designed using an alternative set of stages that are generated into cobol/JCL code and are transferred to a mainframe to be compiled and run. Jobs are developed on a Unix or Windows server transferred to the mainframe to be compiled and run. The first two versions share the same Designer interface but have a different set of design stages depending on the type of job you are working on. Parallel jobs have parallel stages but also accept some server stages via a container. Server jobs only accept server stages, MVS jobs only accept MVS stages. There are some stages that are common to all types (such as aggregation) but they tend to have different fields and options within that stage.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;87. How can you implement Complex Jobs in data stage?&lt;/b&gt;&lt;br /&gt;
Complex design means having more joins and more look ups. Then that job design will be called as complex job. We can easily implement any complex design in Data Stage by following simple tips in terms of increasing performance also. There is no limitation of using stages in a job. For better performance, Use at the Max of 20 stages in each job. If it is exceeding 20 stages then go for another job. Use not more than 7 look ups for a transformer otherwise go for including one more transformer.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;88. How can u implement slowly changed dimensions in data stage? Explain?&lt;/b&gt;&lt;br /&gt;
2) can u join flat file and database in data stage? How?&lt;br /&gt;
Yes, we can do it in an indirect way. First create a job which can populate the data from database into a Sequential file and name it as Seq_First1. Take the flat file which you are having and use a Merge Stage to join the two files. You have various join types in Merge Stage like Pure Inner Join, Left Outer Join, Right Outer Join etc., You can use any one of these which suits your requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;89. How to implement routines in data stage?&lt;/b&gt;&lt;br /&gt;
There are 3 kind of routines is there in Data stage.&lt;br /&gt;
1. Server routines which will used in server jobs. These routines will write in BASIC Language&lt;br /&gt;
2. Parallel routines which will use in parallel jobs. These routines will write in C/C++ Language&lt;br /&gt;
3. Mainframe routines which will used in mainframe jobs&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;90. What is difference between server jobs &amp; parallel jobs?&lt;/b&gt;&lt;br /&gt;
Server jobs: These are available if you have installed Data Stage Server. They run on the Data Stage Server, connecting to other data sources as necessary.&lt;br /&gt;
Parallel jobs: These are only available if you have installed Enterprise Edition. These run on Data Stage servers that are SMP, MPP, or cluster systems. They can also run on a separate z/OS (USS) machine if required.&lt;br /&gt;
In server job sequence we can run the jobs sequentially only. That’s one after another.&lt;br /&gt;
But in Parallel sequence we can run it parallel if there is no dependency b/w jobs.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;91. How we use NLS function in Data stage? What are advantages of NLS function? Where we can use that one? Explain briefly?&lt;/b&gt;&lt;br /&gt;
By using NLS function we can do the following&lt;br /&gt;
- Process the data in a wide range of languages&lt;br /&gt;
- Use Local formats for dates, times and money&lt;br /&gt;
- Sort the data according to the local rules&lt;br /&gt;
If NLS is installed, various extra features appear in the product.&lt;br /&gt;
For Server jobs, NLS is implemented in Data Stage Server engine&lt;br /&gt;
For Parallel jobs, NLS is implemented using the ICU library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;92. What happens out put of hash file is connected to transformer ..? What error it thoughts?&lt;/b&gt;&lt;br /&gt;
If Hash file output is connected to transformer stage the hash file will consider as the Lookup file if there is no primary link to the same Transformer stage, if there is no primary link then this will treat as primary link itself. you can do SCD in server job by using Lookup functionality. This will not return any error code.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;93. What is version Control?&lt;/b&gt;&lt;br /&gt;
Version Control stores different versions of DS jobs, run different versions of same job&lt;br /&gt;
Reverts to previous version of a job view version histories&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;94. What is &#39; inserting for update &#39; in data stage?&lt;/b&gt;&lt;br /&gt;
I think &#39;insert to update&#39; is updated value is inserted to maintain history&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;95. How can we pass parameters to job by using file?&lt;/b&gt;&lt;br /&gt;
You can do this, by passing parameters from UNIX file, and then calling the execution of a data stage job. the ds job has the parameters defined (which are passed by Unix)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;96. Where does Unix script of data stage executes weather in client machine or in server. Suppose if it executes on server then it will execute?&lt;/b&gt;&lt;br /&gt;
Data stage jobs are executed in the server machines only. There is nothing that is stored in the client machine.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;97. Defaults nodes for data stage parallel Edition?&lt;/b&gt;&lt;br /&gt;
Actually the Number of Nodes depends on the number of processors in your system. If your system is supporting two processors we will get two nodes by default.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;98. How do you merge two files in DS?&lt;/b&gt;&lt;br /&gt;
Either used Copy command as a Before-job subroutine if the metadata of the 2 files are same or created a job to concatenate the 2 files into one if the metadata is different.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;99. What is DS Director used for - did u use it?&lt;/b&gt;&lt;br /&gt;
Data stage Director is GUI to monitor, run, validate &amp; schedule data stage server jobs.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;100. What are types of Hashed File? &lt;/b&gt;&lt;br /&gt;
Hashed File is classified broadly into 2 types.&lt;br /&gt;
a) Static - Sub divided into 17 types based on Primary Key Pattern.&lt;br /&gt;
b) Dynamic - sub divided into 2 types&lt;br /&gt;
i) Generic&lt;br /&gt;
ii) Specific.&lt;br /&gt;
Default Hashed file is &quot;Dynamic - Type30.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;101. How do you pass filename as the parameter for a job?&lt;/b&gt;&lt;br /&gt;
1. Go to Data Stage Administrator-&gt;Projects-&gt;Properties-&gt;Environment-&gt;UserDefined. Here you can see a grid, where you can enter your parameter name and the corresponding the path of the file.&lt;br /&gt;
2. Go to the stage Tab of the job, select the NLS tab, click on the &quot;Use Job Parameter&quot; and select the parameter name which you have given in the above. The selected parameter name appears in the text box beside the &quot;Use Job Parameter&quot; button. Copy the parameter name from the text box and use it in your job. Keep the project default in the text box.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;102. How can we create Containers?&lt;/b&gt;&lt;br /&gt;
There are two types of containers&lt;br /&gt;
1. Local Container&lt;br /&gt;
2. Shared Container&lt;br /&gt;
Local container is available for that particular Job only.&lt;br /&gt;
Where as Shared Containers can be used anywhere in the project.&lt;br /&gt;
Local container:&lt;br /&gt;
Step1:Select the stages required&lt;br /&gt;
Step2:Edit&gt;ConstructContainer&gt;Local&lt;br /&gt;
Shared Container:&lt;br /&gt;
Step1:Select the stages required&lt;br /&gt;
Step2:Edit&gt;ConstructContainer&gt;Shared&lt;br /&gt;
Shared containers are stored in the SharedContainers branch of the Tree Structure&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;103. How can we improve the performance of Data Stage jobs?&lt;/b&gt;&lt;br /&gt;
Performance and tuning of DS jobs:&lt;br /&gt;
1. Establish Baselines&lt;br /&gt;
2. Avoid the Use of only one flow for tuning/performance testing&lt;br /&gt;
3. Work in increment&lt;br /&gt;
4. Evaluate data skew&lt;br /&gt;
5. Isolate and solve&lt;br /&gt;
6. Distribute file systems to eliminate bottlenecks&lt;br /&gt;
7. Do not involve the RDBMS in initial testing&lt;br /&gt;
8. Understand and evaluate the tuning knobs available.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;125. What are the Job parameters?&lt;/b&gt;&lt;br /&gt;
These Parameters are used to provide Administrative access and change run time values of the job.&lt;br /&gt;
EDIT&gt;JOBPARAMETERS&lt;br /&gt;
In that Parameters Tab we can define the name, prompt, type, value&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;104. What are all the third party tools used in Data Stage?&lt;/b&gt;&lt;br /&gt;
Autosys, TNG, event coordinator are some of them that I know and worked with&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;105. How can we implement Lookup in Data Stage Server jobs?&lt;/b&gt;&lt;br /&gt;
The DB2 stage can be used for lookups.&lt;br /&gt;
In the Enterprise Edition, the Lookup stage can be used for doing lookups.&lt;br /&gt;
We can implement lookups in server jobs using Hash files and Transformer stage. Lookup stages are available in parallel jobs only.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;106. What is the utility you use to schedule the jobs on a UNIX server other than using Ascential Director?&lt;/b&gt;&lt;br /&gt;
&quot;AUTOSYS&quot;: Through autosys u can automate the job by invoking the shell script written to schedule the data stage jobs.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;107. What are Sequencers?&lt;/b&gt;&lt;br /&gt;
A sequencer allows you to synchronize the control flow of multiple activities in a job sequence. It can have multiple input triggers as well as multiple output triggers. The sequencer operates in two modes: ALL modes. In this mode all of the inputs to the sequencer must be TRUE for any of the sequencer outputs to fire. ANY mode, in this mode, output triggers can be fired if any of the sequencer inputs are TRUE&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;108. Explain the differences between Oracle8i/9i? &lt;/b&gt;&lt;br /&gt;
Mutli processing, databases more dimensional modeling&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;109. What r XML files and how do you read data from XML files and what stage to be used?&lt;/b&gt;&lt;br /&gt;
In the pallet there is Real time stages like xml-input, xml-output, xml-transformer&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;110 How do you pass the parameter to the job sequence if the job is running at night?&lt;/b&gt;&lt;br /&gt;
Two ways&lt;br /&gt;
1. Ste the default values of Parameters in the Job Sequencer and map these parameters to job.&lt;br /&gt;
2. Run the job in the sequencer using dsjobs utility where we can specify the values to be taken for each parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;111. How do you remove duplicates without using remove duplicate stage?&lt;/b&gt;&lt;br /&gt;
In the target make the column as the key column and run the job.&lt;br /&gt;
hi , by using sort stage we remove duplicates as making options allow duplicates= false.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;112. What is the flow of loading data into fact &amp; dimensional tables?&lt;/b&gt;&lt;br /&gt;
Here is the sequence of loading a data warehouse.&lt;br /&gt;
1. The source data is first loading into the staging area, where data cleansing takes place.&lt;br /&gt;
2. The data from staging area is then loaded into dimensions/lookups.&lt;br /&gt;
3.Finally the Fact tables are loaded from the corresponding source tables from the staging area.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;113.  what is the difference between DNS DHCP ?&lt;/b&gt;&lt;br /&gt;
File system of windows?     compare with nis &amp; dns&lt;br /&gt;
No answer available currently. Be the first one to reply to this question by submitting your answer from the form below. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;114. Functionality of Link Partioner and Link Collector?&lt;/b&gt;&lt;br /&gt;
server jobs mainly execute the jobs in sequential fashion,the ipc stage as well as link partioner and link collector will simulate the parllel mode of execution over the sever jobs having single cpu Link Partitioner : It receives data on a single input link and diverts the data to a maximum no.of 64 output links and the data processed by the same stage having same meta dataLink Collector : It will collects the data from 64 inputlinks, merges it into a single data flowand loads to target. these both r active stagesand the design and mode of execution of serverjobs has to be decidead by the designer&lt;br /&gt;
Link Partitioner : It actually splits data into various partitions or data flows using various&lt;br /&gt;
partition methods .&lt;br /&gt;
Link Collector : It collects the data coming from partitions, merges it into a single data flow and loads to target.&lt;br /&gt;
Containers : Usage and Types? &lt;br /&gt;
Container is a collection of stages used for the purpose of Reusability. There are 2 types of Containers.&lt;br /&gt;
a) Local Container: Job Specific&lt;br /&gt;
b) Shared Container: Used in any job within a project. ?&lt;br /&gt;
There are two types of shared container:?&lt;br /&gt;
1.Server shared container. Used in server jobs (can also be used in parallel jobs).?&lt;br /&gt;
2.Parallel shared container. Used in parallel jobs. You can also include server shared containers in parallel jobs as a way of incorporating server job functionality into a parallel stage (for example, you could use one to make a server plug-in stage available to a parallel job).regards jagan&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;115. What are Stage Variables, Derivations and Constants?&lt;/b&gt;&lt;br /&gt;
Stage Variable - An intermediate processing variable that retains value during read and doesnt pass the value into target column.&lt;br /&gt;
Derivation - Expression that specifies value to be passed on to the target column.&lt;br /&gt;
Constant - Conditions that are either true or false that specifies flow of data with a link.&lt;br /&gt;
In datastage transformer stage can mention Constraint to columns deviate the output to desired manner not constant&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;116. How to improve the performance of hash file?&lt;/b&gt;&lt;br /&gt;
You can improve performance of hashed file by&lt;br /&gt;
1 .Preloading hash file into memory --this can be done by enabling preloading options in hash file output stage&lt;br /&gt;
2. Write caching options --.It makes data written into cache before being flushed to disk. you can enable this to ensure that hash files are written in order onto cash before flushed to disk instead of order in which individual rows are written&lt;br /&gt;
3 .Preallocating-- Estimating the approx size of the hash file so that file needs not to be splitted to often after write operation&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;117. What does separation option in static hash-file mean?&lt;/b&gt;&lt;br /&gt;
The different hashing algorithms are designed to distribute records evenly among the groups of the file based on characters and their position in the record ids.&lt;br /&gt;
When a hashed file is created, Separation and Modulo respectively specifies the group buffer size and the number of buffers allocated for a file. When a Static Hash file is created, DATASTAGE creates a file that contains the number of groups specified by modulo.&lt;br /&gt;
Size of Hash file = modulus(no. groups) * Separations (buffer size)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;118. How to remove duplicates in server job?&lt;/b&gt;&lt;br /&gt;
1) Use a hashed file stage or&lt;br /&gt;
2)  If you use sort command in UNIX(before job sub-routine), you can reject duplicated records using -u parameter or&lt;br /&gt;
3) using a Sort stage&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;119. If I add a new environment variable in Windows, how can I access it in Data Stage?&lt;/b&gt;&lt;br /&gt;
U can view all the environment variables in designer. U can check it in Job properties. U can add and access the environment variables from Job properties&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;120. There are three different types of user-created stages available for PX.&lt;/b&gt;&lt;br /&gt;
What are they? Which would you use? What are the disadvantage for using each type? &lt;br /&gt;
These are the three different stages:&lt;br /&gt;
i) Custom ii) Build iii) Wrapped&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;121. I want to process 3 files in sequentially one by one, how can I do that? While processing the files it should fetch files automatically?&lt;/b&gt;&lt;br /&gt;
If the metadata for all the files r same then create a job having file name as parameter, then use same job in routine and call the job with different file name...or u can create sequencer to use the job...&lt;br /&gt;
I think in datastage8.0.1 there is an option in the sequence job namely loop via which the purpose can be achieved&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;122. What is difference between data stage and informatica? &lt;/b&gt;&lt;br /&gt;
Here is a very good articles on these differences... whic hhelps to get an idea.. Basically it&#39;s depends on what you are tring to accomplish&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;123. What are the requirements for your ETL tool? Do you have large sequential files (1 million rows, for example) that need to be compared every day versus yesterday?&lt;/b&gt;&lt;br /&gt;
If so, then ask how each vendor would do that. Think about what process they are going to do. Are they requiring you to load yesterdays file into a table and do lookups?&lt;br /&gt;
If so, RUN!! Are they doing a match/merge routine that knows how to process this in sequential files? Then maybe they are the right one. It all depends on what you need the ETL to do. If you are small enough in your data sets, then either would probably be OK.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;124. Whets difference between operational data stage (ODS) &amp; data warehouse?&lt;/b&gt;&lt;br /&gt;
A data warehouse is a decision support database for organizational needs. It is subject oriented, on volatile, integrated and time variant collect of data.&lt;br /&gt;
ODS (Operational Data Source) is a integrated collection of related information. It contains maximum 90 days information.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;125. What is iconv and oconv functions?&lt;/b&gt;&lt;br /&gt;
Iconv( )-----converts string to internal storage formatOconv( )----converts an expression to an output format&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;126. What will you in a situation where somebody wants to send you a file and use that file as an input or reference and then run job?&lt;/b&gt;&lt;br /&gt;
A. Under Windows: Use the &#39;WaitForFileActivity&#39; under the Sequencers and then run the job. May be you can schedule the sequencer around the time the file is expected to arrive.&lt;br /&gt;
B. Under UNIX: Poll for the file. Once the file has start the job or sequencer depending on the file.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;127. Did you work in UNIX environment?&lt;/b&gt;&lt;br /&gt;
Some times u need to write Unix programs in back round like batch programs ! Because data stage can invoke a batch processing in every 24 hrs. so.......Unix must... so that we can run the Unix program, in back round even min/ hrs&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;128. What is Hash file stage and what is it used for?&lt;/b&gt;&lt;br /&gt;
We can also use the Hash File stage to avoid / remove duplicate rows by specifying the hash key on a particular filled&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;129. Did you Parameterize the job or hard-coded the values in the jobs?&lt;/b&gt;&lt;br /&gt;
Always parameterized the job. Either the values are coming from Job Properties or from a ?Parameter Manager? ? a third part tool. There is no way you will hard? Code some parameters in your jobs. The often Parameterized variables in a job are: DB DSN name, username, password, dates W.R.T for the data to be looked against it.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;130. Suppose if there are million records did you use OCI? if not then what stage do you prefer?&lt;/b&gt;&lt;br /&gt;
Using Orabulk&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;131. What are environment variables? What is the use of this?&lt;/b&gt;&lt;br /&gt;
Basically Environment variable is predefined variable those we can use while creating DS job. We can set either as Project level or Job level. Once we set specific variable that variable will be available into the project/job.&lt;br /&gt;
We can also define new environment variable. For that we can got to DS Admin .&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;132. What is data set? And what is file set?&lt;/b&gt;&lt;br /&gt;
File set:- It allows you to read data from or write data to a file set. The stage can have a single input link. a single output link, and a single rejects link. It only executes in parallel modeThe data files and the file that lists them are called a file set. This capability is useful because some operating systems impose a 2 GB limit on the size of a file and you need to distribute files among nodes to prevent overruns.&lt;br /&gt;
Datasets r used to import the data in parallel jobs like odbc in server jobs&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;133. How the hash file is doing lookup in server jobs? How is it comparing the key values?&lt;/b&gt;&lt;br /&gt;
Hashed File is used for two purpose: 1. Remove Duplicate Records 2. Then Used for reference lookups. The hashed file contains 3 parts: Each record having Hashed Key, Key Header and Data portion. By using hashed algorithm and the key valued the lookup is faster.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;134. What are orabulk and bcp stages?&lt;/b&gt;&lt;br /&gt;
ORABULK is used to load bulk data into single table of target oracle database.&lt;br /&gt;
BCP is used to load bulk data into a single table for Microsoft sql server and Sybase.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;135. How is datastage 4.0 functionally different from the enterprise edition now?? what are the exact changes?&lt;/b&gt;&lt;br /&gt;
There are lot of Changes in DS EE. CDC Stage, Procedure Stage, Etc..........&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;136. Data Stage from Staging to MDW is only running at 1 row per second! What do we do to remedy?&lt;/b&gt;&lt;br /&gt;
I am assuming that there are too many stages, which is causing problem and providing the solution.&lt;br /&gt;
In general. if you too many stages (especially transformers , hash look up), there would be a lot of overhead and the performance would degrade drastically. I would suggest you to write a query instead of doing several look ups. It seems as though embarrassing to have a tool and still write a query but that is best at times. If there are too many look ups that are being done, ensure that you have appropriate indexes while querying. If you do not want to write the query and use intermediate stages, ensure that you use proper elimination of data between stages so that data volumes do not cause overhead. So, there might be a re-ordering of stages needed for good performance.&lt;br /&gt;
Other things in general that could be looked in:&lt;br /&gt;
1) for massive transaction set hashing size and buffer size to appropriate values to perform as much as possible in memory and there is no I/O overhead to disk.&lt;br /&gt;
2) Enable row buffering and set appropriate size for row buffering&lt;br /&gt;
3) It is important to use appropriate objects between stages for performance&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;137. What user variable activity when it used how it used! Where it is used with real example?&lt;/b&gt;&lt;br /&gt;
By using This User variable activity we can create some variables in the job sequence, this variables r available for all the activities in that sequence.&lt;br /&gt;
Most probably this activity is @ starting of the job sequence&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;138. How can I specify a filter command for processing data while defining sequential file output data?&lt;/b&gt;&lt;br /&gt;
We have some thing called as after job subroutine and before subroutine, with then we can execute the Unix commands.&lt;br /&gt;
Here we can use the sort summand or the filter cdommand&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;139. What is the difference between Data stage and Data stage TX?&lt;/b&gt;&lt;br /&gt;
Its a critical question to answer, but one thing i can tell u that Data stage Tx is not a ETL tool &amp; this is not a new version of Data stage 7.5.&lt;br /&gt;
Tx is used for ODS source ,this much i know&lt;br /&gt;
DS TX is not a ETL tool. It comes in a category of EAI.&lt;br /&gt;
TX helps in connecting varios frontend to diff backends.it has a inbuilt plugin for many diff sources and targets.In short it can make ur application platform independent.It can also parse data.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;140. If your running 4 ways parallel and you have 10 stages on the canvas, how many processes does data stage create?&lt;/b&gt;&lt;br /&gt;
Answer is 40&lt;br /&gt;
You have 10 stages and each stage can be partitioned and run on 4 nodes which makes total number of processes generated are 40&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;141. Does Enterprise Edition only add the parallel processing for better performance?&lt;/b&gt;&lt;br /&gt;
Are any stages/transformations available in the enterprise edition only?&lt;br /&gt;
? Data Stage Standard Edition was previously called Data Stage and Data Stage Server Edition. ? Data Stage Enterprise Edition was originally called Orchestrate, then renamed to Parallel Extender when purchased by Ascential. ? DataStage Enterprise: Server jobs, sequence jobs, parallel jobs. The enterprise edition offers parallel processing features for scalable high volume solutions. Designed originally for Unix, it now supports Windows, Linux and Unix System Services on mainframes. ? Data Stage Enterprise MVS: Server jobs, sequence jobs, parallel jobs, mvs jobs. MVS jobs are jobs designed using an alternative set of stages that are generated into Cobol/JCL code and are transferred to a mainframe to be compiled and run. Jobs are developed on a Unix or Windows server transferred to the mainframe to be compiled and run. The first two versions share the same Designer interface but have a different set of design stages depending on the type of job you are working on. Parallel jobs have parallel stages but also accept some server stages via a container. Server jobs only accept server stages, MVS jobs only accept MVS stages. There are some stages that are common to all types (such as aggregation) but they tend to have different fields and options within that stage.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;142. How can you implement Complex Jobs in data stage?&lt;/b&gt;&lt;br /&gt;
Complex design means having more joins and more look ups. Then that job design will be called as complex job. We can easily implement any complex design in DataStage by following simple tips in terms of increasing performance also. There is no limitation of using stages in a job. For better performance, Use at the Max of 20 stages in each job. If it is exceeding 20 stages then go for another job.Use not more than 7 look ups for a transformer otherwise go for including one more transformer.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;143. How can u implement slowly changed dimensions in data stage? Explain?&lt;/b&gt;&lt;br /&gt;
2) can u join flat file and database in data stage? How?&lt;br /&gt;
Yes, we can do it in an indirect way. First create a job which can populate the data from database into a Sequencial file and name it as Seq_First1. Take theflat file which you are having and use a Merge Stage to join the two files. You have various join types in Merge Stage like Pure Inner Join, Left Outer Join, Right Outer Join etc., You can use any one of these which suits your requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;144. I want to process 3 files in sequentially one by one , how can i do that. while processing the files it should fetch files automatically?&lt;/b&gt;&lt;br /&gt;
If the metadata for all the files r same then create a job having file name as parameter, then use same job in routine and call the job with different file name...or u can create sequencer to use the job...&lt;br /&gt;
I think in datastage8.0.1 there is an option in the sequence job namely loop via which the purpose can be achieved&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;145. What is difference between server jobs &amp; parallel jobs?&lt;/b&gt;&lt;br /&gt;
Here is the diff&lt;br /&gt;
Server jobs: These are available if you have installed Data Stage Server. They run on the Data Stage Server, connecting to other data sources as necessary.&lt;br /&gt;
Parallel jobs: These are only available if you have installed Enterprise Edition. These run on Data Stage servers that are SMP, MPP, or cluster systems. They can also run on a separate z/OS (USS) machine if required.&lt;br /&gt;
In server job sequence we can run the jobs sequentially only. That’s one after another.&lt;br /&gt;
But in Parallel sequence we can run it parallel if there are no dependency b/w jobs.&lt;br /&gt;
146. How we use NLS function in Data stage? What are advantages of NLS function? where we can use that one? Explain briefly?&lt;br /&gt;
By using NLS function we can do the following&lt;br /&gt;
- Process the data in a wide range of languages&lt;br /&gt;
- Use Local formats for dates, times and money&lt;br /&gt;
- Sort the data according to the local rules&lt;br /&gt;
If NLS is installed, various extra features appear in the product.&lt;br /&gt;
For Server jobs, NLS is implemented in Data Stage Server engine &lt;br /&gt;
For Parallel jobs, NLS is implemented using the ICU library.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;147. What happens out put of hash file is connected  to transformer .. What error it troughs?&lt;/b&gt;&lt;br /&gt;
If Hash file output is connected to transformer stage the hash file will consider as the Lookup file if there is no primary link to the same Transformer stage, if there is no primary link then this will treat as primary link itself. you can do SCD in server job by using Lookup functionality. This will not return any error code.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;148.  What is &#39; insert for update &#39; in data stage?&lt;/b&gt;&lt;br /&gt;
I think &#39;insert to update&#39; is updated value is inserted to maintain history&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;149. How can we pass parameters to job by using file.?&lt;/b&gt;&lt;br /&gt;
You can do this, by passing parameters from Unix file, and then calling the execution of a data stage job. the ds job has the parameters defined (which are passed by Unix)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;150. Defaults nodes for data stage parallel Edition?&lt;/b&gt;&lt;br /&gt;
Actually the Number of Nodes depend on the number of processors in your system. If your system is supporting two processors we will get two nodes by default.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;151. How can we implement Lookup in Data Stage Server jobs?&lt;/b&gt;&lt;br /&gt;
The DB2 stage can be used for lookups.&lt;br /&gt;
In the Enterprise Edition, the Lookup stage can be used for doing lookups.&lt;br /&gt;
We can implement lookups in server jobs using Hash files and Transformer stage. Lookup stages are available in parallel jobs only.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;152. What is the utility you use to schedule  the jobs on a UNIX server other than using Ascential Director?&lt;/b&gt;&lt;br /&gt;
&quot;AUTOSYS&quot;: Thru autosys u can automate the job by invoking the shell script written to schedule the datastage jobs.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;153. what is the difference between DNS DHCP ?&lt;/b&gt;&lt;br /&gt;
file system of windows?&lt;br /&gt;
compare with nis &amp; dns&lt;br /&gt;
No answer available currently. Be the first one to reply to this question by submitting your answer from the form below. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;154. Functionality of Link Partitioner and Link Collector?&lt;/b&gt;&lt;br /&gt;
server jobs mainly execute the jobs in sequential fashion,the ipc stage as well as link partioner and link collector will simulate the parllel mode of execution over the sever jobs having single cpu Link Partitioner : It receives data on a single input link and diverts the data to a maximum no.of 64 output links and the data processed by the same stage having same meta dataLink Collector : It will collects the data from 64 inputlinks, merges it into a single data flowand loads to target. these both r active stagesand the design and mode of execution of serverjobs has to be decidead by the designer&lt;br /&gt;
Link Partitioner : It actually splits data into various partitions or data flows using various&lt;br /&gt;
partition methods .&lt;br /&gt;
Link Collector : It collects the data coming from partitions, merges it into a single data flow and loads to target.&lt;br /&gt;
Containers : Usage and Types? &lt;br /&gt;
Container is a collection of stages used for the purpose of Reusability. There are 2 types of Containers.&lt;br /&gt;
a) Local Container: Job Specific&lt;br /&gt;
b) Shared Container: Used in any job within a project. ?&lt;br /&gt;
There are two types of shared container:?&lt;br /&gt;
1.Server shared container. Used in server jobs (can also be used in parallel jobs).?&lt;br /&gt;
2.Parallel shared container. Used in parallel jobs. You can also include server shared containers in parallel jobs as a way of incorporating server job functionality into a parallel stage (for example, you could use one to make a server plug-in stage available to a parallel job).</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/4591728352129852221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2010/10/interview-questions.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/4591728352129852221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/4591728352129852221'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2010/10/interview-questions.html' title='Interview Questions'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-4558678026263233292</id><published>2010-10-10T21:37:00.000+05:30</published><updated>2011-02-10T07:05:20.652+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage OverView"/><title type='text'>DataStage Director</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNopIhziaZ2-6_ba22BNMM2JVKESlxFudLLdVBdoCSJA0CllT6p6oz9dJVKSbEYJ65opDM-P35ehCdTnq2pOutQa4sRfYzDfaeTdeik8TmKHzVAmE5401nmazMGySydbOzFEQCwrgFx3ce/s1600/DataStage+Director.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;221&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNopIhziaZ2-6_ba22BNMM2JVKESlxFudLLdVBdoCSJA0CllT6p6oz9dJVKSbEYJ65opDM-P35ehCdTnq2pOutQa4sRfYzDfaeTdeik8TmKHzVAmE5401nmazMGySydbOzFEQCwrgFx3ce/s320/DataStage+Director.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Use the Director to validate, run, schedule, and monitor your DataStage jobs. You can also gather statistics as the job runs.</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/4558678026263233292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2010/10/datastage-director.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/4558678026263233292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/4558678026263233292'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2010/10/datastage-director.html' title='DataStage Director'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNopIhziaZ2-6_ba22BNMM2JVKESlxFudLLdVBdoCSJA0CllT6p6oz9dJVKSbEYJ65opDM-P35ehCdTnq2pOutQa4sRfYzDfaeTdeik8TmKHzVAmE5401nmazMGySydbOzFEQCwrgFx3ce/s72-c/DataStage+Director.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-478412832365990354</id><published>2010-09-26T08:36:00.001+05:30</published><updated>2011-02-10T07:05:20.653+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage OverView"/><title type='text'>DataStage Designer</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6cUUaKujWmy1mJvqktPVaHpxvhhnqFmILSh4AigM9MDk1NVVv5Nd0VuTCeu6ORlhtqoI3Te2-8yyz-afEFVFhMWFYDMzEClnZzyKNvvpgFn5JmGTkdAOpco5S1Qba_5dSbxRZO9R0A3Ua/s1600/DataStage+Designer.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;238&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6cUUaKujWmy1mJvqktPVaHpxvhhnqFmILSh4AigM9MDk1NVVv5Nd0VuTCeu6ORlhtqoI3Te2-8yyz-afEFVFhMWFYDMzEClnZzyKNvvpgFn5JmGTkdAOpco5S1Qba_5dSbxRZO9R0A3Ua/s320/DataStage+Designer.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The DataStage Designer allows you to use familiar graphical point-and-click techniques to develop job flows for extracting, cleansing, transforming, integrating and loading data into target files and tables.&lt;br /&gt;
&lt;br /&gt;
The Designer provides a “visual data flow”method to easily interconnect and configure reusable components.</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/478412832365990354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2010/09/datastage-designer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/478412832365990354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/478412832365990354'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2010/09/datastage-designer.html' title='DataStage Designer'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6cUUaKujWmy1mJvqktPVaHpxvhhnqFmILSh4AigM9MDk1NVVv5Nd0VuTCeu6ORlhtqoI3Te2-8yyz-afEFVFhMWFYDMzEClnZzyKNvvpgFn5JmGTkdAOpco5S1Qba_5dSbxRZO9R0A3Ua/s72-c/DataStage+Designer.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-7583343777005459183</id><published>2010-09-12T20:30:00.002+05:30</published><updated>2011-02-10T07:05:20.653+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage OverView"/><title type='text'>DataStage Administrator</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc_I-VApdvBhpjdnlDGlJBhtZeVKiIZr1xsH-WVCY-wNU0FV49F3gci6ked_Ci0-yZ9jOctewWzxbMtl80Io7z0D8SUfbcqKuSs4ur28XBpBnLp6AYqszIpTqWPixjs6XKaax6q3o0kQcr/s1600/DataStaget+Administrator.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;219&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc_I-VApdvBhpjdnlDGlJBhtZeVKiIZr1xsH-WVCY-wNU0FV49F3gci6ked_Ci0-yZ9jOctewWzxbMtl80Io7z0D8SUfbcqKuSs4ur28XBpBnLp6AYqszIpTqWPixjs6XKaax6q3o0kQcr/s320/DataStaget+Administrator.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Use the Administrator to specify general server defaults, add and delete projects, and to set project properties. The Administrator alsoprovides a command interface to the DataStage repository.&lt;br /&gt;
&lt;br /&gt;
Use the Administrator Project Properties window to:&lt;br /&gt;
&lt;br /&gt;
Set job monitoring limits and other Director defaults on the General tab.&lt;br /&gt;
Set user and group privileges on the Permissions tab.&lt;br /&gt;
Enable or disable server-side tracing on the Tracing tab.&lt;br /&gt;
Specify a user name and password for scheduling jobs on the Schedule tab.&lt;br /&gt;
Specify parallel job defaults on the Parallel tab.&lt;br /&gt;
Specify Job Sequencer defaults on the Sequence tab.</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/7583343777005459183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2010/09/datastage-administrator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/7583343777005459183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/7583343777005459183'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2010/09/datastage-administrator.html' title='DataStage Administrator'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc_I-VApdvBhpjdnlDGlJBhtZeVKiIZr1xsH-WVCY-wNU0FV49F3gci6ked_Ci0-yZ9jOctewWzxbMtl80Io7z0D8SUfbcqKuSs4ur28XBpBnLp6AYqszIpTqWPixjs6XKaax6q3o0kQcr/s72-c/DataStaget+Administrator.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-5605703505859825125</id><published>2010-08-20T09:19:00.000+05:30</published><updated>2011-02-10T07:24:03.951+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage EE"/><title type='text'>DW ETL Process</title><content type='html'>&lt;b&gt;Extract, transform and load (ETL)&lt;/b&gt; is a process in database usage and especially in data warehousing that involves:&lt;br /&gt;
&lt;br /&gt;
* Extracting data from outside sources&lt;br /&gt;
* Transforming it to fit operational needs (which can include quality levels)&lt;br /&gt;
* Loading it into the end target (database or data warehouse)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOaqniLqIa_R-1iUiGe4ptbahTShDTOOd0WvkNC7IJKJJ4BI_8K-jj_4X6AHto8NPq_ghMbDxs4u2Wu80c-p3zilhf6vANnDiHe4Yrbm8nq6CMzFLwc8NFeH21VgHinKC1weO67EOXW1jz/s1600/ETL_Architecture_Pattern.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; width=&quot;209&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOaqniLqIa_R-1iUiGe4ptbahTShDTOOd0WvkNC7IJKJJ4BI_8K-jj_4X6AHto8NPq_ghMbDxs4u2Wu80c-p3zilhf6vANnDiHe4Yrbm8nq6CMzFLwc8NFeH21VgHinKC1weO67EOXW1jz/s320/ETL_Architecture_Pattern.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt; Extract&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;The first part of an ETL process involves extracting the data from the source systems.&lt;br /&gt;
Most data warehousing projects consolidate data from different source systems. Each separate system may also use a different data organization/format. Common data source formats are relational databases and flat files, but may include non-relational database structures such as Information Management System (IMS) or other data structures such as Virtual Storage Access Method (VSAM) or Indexed Sequential Access Method (ISAM), or even fetching from outside sources such as through web spidering or screen-scraping. The streaming of the extracted data source and load on-the-fly to the destination database is another way of performing ETL when no intermediate data storage is required. In general, the goal of the extraction phase is to convert the data into a single format which is appropriate for transformation processing.&lt;br /&gt;
&lt;br /&gt;
An intrinsic part of the extraction involves the parsing of extracted data, resulting in a check if the data meets an expected pattern or structure. If not, the data may be rejected entirely or in part.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Transform&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;The transform stage applies a series of rules or functions to the extracted data from the source to derive the data for loading into the end target. Some data sources will require very little or even no manipulation of data. In other cases, one or more of the following transformation types may be required to meet the business and technical needs of the target database:&lt;br /&gt;
&lt;br /&gt;
* Selecting only certain columns to load (or selecting null columns not to load). For example, if the source data has three columns (also called attributes) say roll_no, age and salary then the extraction may take only roll_no and salary. Similarly, the extraction mechanism may ignore all those records where salary is not present (salary = null).&lt;br /&gt;
* Translating coded values (e.g., if the source system stores 1 for male and 2 for female, but the warehouse stores M for male and F for female), this calls for automated data cleansing; no manual cleansing occurs during ETL&lt;br /&gt;
* Encoding free-form values (e.g., mapping &quot;Male&quot; to &quot;1&quot; and &quot;Mr&quot; to M)&lt;br /&gt;
* Deriving a new calculated value (e.g., sale_amount = qty * unit_price)&lt;br /&gt;
* Sorting&lt;br /&gt;
* Joining data from multiple sources (e.g., lookup, merge)&lt;br /&gt;
* Aggregation (for example, rollup — summarizing multiple rows of data — total sales for each store, and for each region, etc.)&lt;br /&gt;
* Generating surrogate-key values&lt;br /&gt;
* Transposing or pivoting (turning multiple columns into multiple rows or vice versa)&lt;br /&gt;
* Splitting a column into multiple columns (e.g., putting a comma-separated list specified as a string in one column as individual values in different columns)&lt;br /&gt;
* Disaggregation of repeating columns into a separate detail table (e.g., moving a series of addresses in one record into single addresses in a set of records in a linked address table)&lt;br /&gt;
* Lookup and validate the relevant data from tables or referential files for slowly changing dimensions.&lt;br /&gt;
* Applying any form of simple or complex data validation. If validation fails, it may result in a full, partial or no rejection of the data, and thus none, some or all the data is handed over to the next step, depending on the rule design and exception handling. Many of the above transformations may result in exceptions, for example, when a code translation parses an unknown code in the extracted data.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Load&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;The load phase loads the data into the end target, usually the data warehouse (DW). Depending on the requirements of the organization, this process varies widely. Some data warehouses may overwrite existing information with cumulative information, frequently updating extract data is done on daily, weekly or monthly basis. Other DW (or even other parts of the same DW) may add new data in a historicized form, for example, hourly. To understand this, consider a DW that is required to maintain sales records of the last year. Then, the DW will overwrite any data that is older than a year with newer data. However, the entry of data for any one year window will be made in a historicized manner. The timing and scope to replace or append are strategic design choices dependent on the time available and the business needs. More complex systems can maintain a history and audit trail of all changes to the data loaded in the DW.&lt;br /&gt;
&lt;br /&gt;
As the load phase interacts with a database, the constraints defined in the database schema — as well as in triggers activated upon data load — apply (for example, uniqueness, referential integrity, mandatory fields), which also contribute to the overall data quality performance of the ETL process.&lt;br /&gt;
&lt;br /&gt;
* For example, a financial institution might have information on a customer in several departments and each department might have that customer&#39;s information listed in a different way. The membership department might list the customer by name, whereas the accounting department might list the customer by number. ETL can bundle all this data and consolidate it into a uniform presentation, such as for storing in a database or data warehouse.&lt;br /&gt;
&lt;br /&gt;
* Another way that companies use ETL is to move information to another application permanently. For instance, the new application might use another database vendor and most likely a very different database schema. ETL can be used to transform the data into a format suitable for the new application to use.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Real-life ETL cycle&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;The typical real-life ETL cycle consists of the following execution steps:&lt;br /&gt;
&lt;br /&gt;
1. Cycle initiation&lt;br /&gt;
2. Build reference data&lt;br /&gt;
3. Extract (from sources)&lt;br /&gt;
4. Validate&lt;br /&gt;
5. Transform (clean, apply business rules, check for data integrity, create aggregates or disaggregates)&lt;br /&gt;
6. Stage (load into staging tables, if used)&lt;br /&gt;
7. Audit reports (for example, on compliance with business rules. Also, in case of failure, helps to diagnose/repair)&lt;br /&gt;
8. Publish (to target tables)&lt;br /&gt;
9. Archive&lt;br /&gt;
10. Clean up&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Challenges&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;ETL processes can involve considerable complexity, and significant operational problems can occur with improperly designed ETL systems.&lt;br /&gt;
&lt;br /&gt;
The range of data values or data quality in an operational system may exceed the expectations of designers at the time validation and transformation rules are specified. Data profiling of a source during data analysis can identify the data conditions that will need to be managed by transform rules specifications. This will lead to an amendment of validation rules explicitly and implicitly implemented in the ETL process.&lt;br /&gt;
&lt;br /&gt;
Data warehouses are typically assembled from a variety of data sources with different formats and purposes. As such, ETL is a key process to bring all the data together in a standard, homogenous environment.&lt;br /&gt;
&lt;br /&gt;
Design analysts should establish the scalability of an ETL system across the lifetime of its usage. This includes understanding the volumes of data that will have to be processed within service level agreements. The time available to extract from source systems may change, which may mean the same amount of data may have to be processed in less time. Some ETL systems have to scale to process terabytes of data to update data warehouses with tens of terabytes of data. Increasing volumes of data may require designs that can scale from daily batch to multiple-day microbatch to integration with message queues or real-time change-data capture for continuous transformation and update.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Performance&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;ETL vendors benchmark their record-systems at multiple TB (terabytes) per hour (or ~1 GB per second) using powerful servers with multiple CPUs, multiple hard drives, multiple gigabit-network connections, and lots of memory.&lt;br /&gt;
&lt;br /&gt;
In real life, the slowest part of an ETL process usually occurs in the database load phase. Databases may perform slowly because they have to take care of concurrency, integrity maintenance, and indices. Thus, for better performance, it may make sense to do&lt;br /&gt;
&lt;br /&gt;
* Direct Path Extract method or bulk unload whenever is possible (instead of querying the database) to reduce the load on source system while getting high speed extract&lt;br /&gt;
* most of the transformation processing outside of the database&lt;br /&gt;
* and to use bulk load operations whenever possible.&lt;br /&gt;
&lt;br /&gt;
Still, even using bulk operations, database access is usually the bottleneck in the ETL process. Some common methods used to increase performance are:&lt;br /&gt;
&lt;br /&gt;
* Partition tables (and indices). Try to keep partitions similar in size (watch for null values which can skew the partitioning).&lt;br /&gt;
* Do all validation in the ETL layer before the load. Disable integrity checking (disable constraint ...) in the target database tables during the load.&lt;br /&gt;
* Disable triggers (disable trigger ...) in the target database tables during the load. Simulate their effect as a separate step.&lt;br /&gt;
* Generate IDs in the ETL layer (not in the database).&lt;br /&gt;
* Drop the indices (on a table or partition) before the load - and recreate them after the load (SQL: drop index ...; create index ...).&lt;br /&gt;
* Use parallel bulk load when possible — works well when the table is partitioned or there are no indices. Note: attempt to do parallel loads into the same table (partition) usually causes locks — if not on the data rows, then on indices.&lt;br /&gt;
* If a requirement exists to do insertions, updates, or deletions, find out which rows should be processed in which way in the ETL layer, and then process these three operations in the database separately. You often can do bulk load for inserts, but updates and deletes commonly go through an API (using SQL).&lt;br /&gt;
&lt;br /&gt;
Whether to do certain operations in the database or outside may involve a trade-off. For example, removing duplicates using distinct may be slow in the database; thus, it makes sense to do it outside. On the other side, if using distinct will significantly (x100) decrease the number of rows to be extracted, then it makes sense to remove duplications as early as possible in the database before unloading data.&lt;br /&gt;
&lt;br /&gt;
A common source of problems in ETL is a big number of dependencies among ETL jobs. For example, job &quot;B&quot; cannot start while job &quot;A&quot; is not finished. You can usually achieve better performance by visualizing all processes on a graph, and trying to reduce the graph making maximum use of parallelism, and making &quot;chains&quot; of consecutive processing as short as possible. Again, partitioning of big tables and of their indices can really help.&lt;br /&gt;
&lt;br /&gt;
Another common issue occurs when the data is spread between several databases, and processing is done in those databases sequentially. Sometimes database replication may be involved as a method of copying data between databases - and this can significantly slow down the whole process. The common solution is to reduce the processing graph to only three layers:&lt;br /&gt;
&lt;br /&gt;
* Sources&lt;br /&gt;
* Central ETL layer&lt;br /&gt;
* Targets&lt;br /&gt;
&lt;br /&gt;
This allows processing to take maximum advantage of parallel processing. For example, if you need to load data into two databases, you can run the loads in parallel (instead of loading into 1st - and then replicating into the 2nd).&lt;br /&gt;
&lt;br /&gt;
Of course, sometimes processing must take place sequentially. For example, you usually need to get dimensional (reference) data before you can get and validate the rows for main &quot;fact&quot; tables.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Parallel processing&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;A recent[update] development in ETL software is the implementation of parallel processing. This has enabled a number of methods to improve overall performance of ETL processes when dealing with large volumes of data.&lt;br /&gt;
&lt;br /&gt;
ETL applications implement three main types of parallelism:&lt;br /&gt;
&lt;br /&gt;
* Data: By splitting a single sequential file into smaller data files to provide parallel access.&lt;br /&gt;
* Pipeline: Allowing the simultaneous running of several components on the same data stream. For example: looking up a value on record 1 at the same time as adding two fields on record 2.&lt;br /&gt;
* Component: The simultaneous running of multiple processes on different data streams in the same job, for example, sorting one input file while removing duplicates on another file.&lt;br /&gt;
&lt;br /&gt;
All three types of parallelism usually operate combined in a single job.&lt;br /&gt;
&lt;br /&gt;
An additional difficulty comes with making sure that the data being uploaded is relatively consistent. Because multiple source databases may have different update cycles (some may be updated every few minutes, while others may take days or weeks), an ETL system may be required to hold back certain data until all sources are synchronized. Likewise, where a warehouse may have to be reconciled to the contents in a source system or with the general ledger, establishing synchronization and reconciliation points becomes necessary.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Rerunnability, recoverability&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;Data warehousing procedures usually subdivide a big ETL process into smaller pieces running sequentially or in parallel. To keep track of data flows, it makes sense to tag each data row with &quot;row_id&quot;, and tag each piece of the process with &quot;run_id&quot;. In case of a failure, having these IDs will help to roll back and rerun the failed piece.&lt;br /&gt;
&lt;br /&gt;
Best practice also calls for &quot;checkpoints&quot;, which are states when certain phases of the process are completed. Once at a checkpoint, it is a good idea to write everything to disk, clean out some temporary files, log the state, and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Best practices&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;Four-layered approach for ETL architecture design&lt;br /&gt;
&lt;br /&gt;
* Functional layer: Core functional ETL processing (extract, transform, and load).&lt;br /&gt;
* Operational management layer: Job-stream definition and management, parameters, scheduling, monitoring, communication and alerting.&lt;br /&gt;
* Audit, balance and control (ABC) layer: Job-execution statistics, balancing and controls, rejects- and error-handling, codes management.&lt;br /&gt;
* Utility layer: Common components supporting all other layers.&lt;br /&gt;
&lt;br /&gt;
Use file-based ETL processing where possible&lt;br /&gt;
&lt;br /&gt;
* Storage costs relatively little&lt;br /&gt;
* Intermediate files serve multiple purposes:&lt;br /&gt;
o Used for testing and debugging&lt;br /&gt;
o Used for restart and recover processing&lt;br /&gt;
o Used to calculate control statistics&lt;br /&gt;
* Helps to reduce dependencies - enables modular programming.&lt;br /&gt;
* Allows flexibility for job-execution and -scheduling&lt;br /&gt;
* Better performance if coded properly, and can take advantage of parallel processing capabilities when the need arises.&lt;br /&gt;
&lt;br /&gt;
Use data-driven methods and minimize custom ETL coding&lt;br /&gt;
&lt;br /&gt;
* Parameter-driven jobs, functions, and job-control&lt;br /&gt;
* Code definitions and mapping in database&lt;br /&gt;
* Consideration for data-driven tables to support more complex code-mappings and business-rule application.&lt;br /&gt;
&lt;br /&gt;
Qualities of a good ETL architecture design&lt;br /&gt;
&lt;br /&gt;
* Performance&lt;br /&gt;
* Scalable&lt;br /&gt;
* Migratable&lt;br /&gt;
* Recoverable (run_id, ...)&lt;br /&gt;
* Operable (completion-codes for phases, re-running from checkpoints, etc.)&lt;br /&gt;
* Auditable (in two dimensions: business requirements and technical troubleshooting)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Dealing with keys&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;Keys are some of the most important objects in all relational databases as they tie everything together. A primary key is a column which is the identifier for a given entity, where a foreign key is a column in another table which refers a primary key.&lt;br /&gt;
These keys can also be made up from several columns, in which case they are composite keys. In many cases the primary key is an auto generated integer which has no meaning for the business entity being represented, but solely exists for the purpose of the relational database - commonly referred to as a surrogate key.&lt;br /&gt;
&lt;br /&gt;
As there will usually be more than one datasource being loaded into the warehouse the keys are an important concern to be addressed.&lt;br /&gt;
Your customers might be represented in several data sources, and in one their SSN (Social Security Number) might be the primary key, their phone number in another and a surrogate in the third. All of the customers information needs to be consolidated into one dimension table.&lt;br /&gt;
&lt;br /&gt;
A recommended way to deal with the concern is to add a warehouse surrogate key, which will be used as foreign key from the fact table.[1]&lt;br /&gt;
&lt;br /&gt;
Usually updates will occur to a dimension&#39;s source data, which obviously must be reflected in the data warehouse.&lt;br /&gt;
If the primary key of the source data is required for reporting, the dimension already contains that piece of information for each row. If the source data uses a surrogate key, the ware house must keep track of it even though it is never used in queries or reports.&lt;br /&gt;
&lt;br /&gt;
That is done by creating a lookup table which contains the warehouse surrogate key and the originating key [2]. This way the dimension is not polluted with surrogates from various source systems, while the ability to update is preserved.&lt;br /&gt;
&lt;br /&gt;
The lookup table is used in different ways depending on the nature of the source data. There are 5 types to consider [3], where three selected ones are included here:&lt;br /&gt;
Type 1:&lt;br /&gt;
- The dimension row is simply updated to match the current state of the source system. The warehouse does not capture history. The lookup table is used to identify which dimension row to update/overwrite.&lt;br /&gt;
Type 2:&lt;br /&gt;
- A new dimension row is added with the new state of the source system. A new surrogate key is assigned. Source key is no longer unique in the lookup table.&lt;br /&gt;
Fully-logged:&lt;br /&gt;
- A new dimension row is added with the new state of the source system, while the previous dimension row is updated to reflect it is no longer active and record time of deactivation.&lt;br /&gt;
&lt;br /&gt;
Work should be put in to guidance on which situations the options apply to. Is that solely a business decision?&lt;br /&gt;
Which factors influence the choice? The update strategy might (full wipe, incremental etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Tools&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;Programmers can set up ETL processes using almost any programming language, but building such processes from scratch can become complex. Increasingly, companies are buying ETL tools to help in the creation of ETL processes.[citation needed]&lt;br /&gt;
&lt;br /&gt;
By using an established ETL framework, one may increase one&#39;s chances of ending up with better connectivity and scalability. A good ETL tool must be able to communicate with the many different relational databases and read the various file formats used throughout an organization. ETL tools have started to migrate into Enterprise Application Integration, or even Enterprise Service Bus, systems that now cover much more than just the extraction, transformation, and loading of data. Many ETL vendors now have data profiling, data quality, and metadata capabilities.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Open-source ETL frameworks&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;* Apatar&lt;br /&gt;
* CloverETL&lt;br /&gt;
* Flat File Checker&lt;br /&gt;
* Jitterbit 2.0&lt;br /&gt;
* Pentaho Data Integration Kettle Project&lt;br /&gt;
* RapidMiner&lt;br /&gt;
* Scriptella&lt;br /&gt;
* Talend Open Studio&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Proprietary ETL frameworks&lt;/b&gt;&lt;br /&gt;
&lt;hr&gt;* Adeptia&lt;br /&gt;
* IBM InfoSphere DataStage&lt;br /&gt;
* Informatica PowerCenter&lt;br /&gt;
* Oracle Data Integrator (ODI)&lt;br /&gt;
* Ab Initio&lt;br /&gt;
* Altova MapForce&lt;br /&gt;
* HiT Software Allora&lt;br /&gt;
* Digital Fuel Service Flow&lt;br /&gt;
* WisdomForce DatabaseSync System&lt;br /&gt;
* Phocas ETL&lt;br /&gt;
* Microsoft SQL Server Integration Services (SSIS)&lt;br /&gt;
* Coglin Mill RODIN Data Asset Management&lt;br /&gt;
* Twister Data Integrator (TDI)&lt;br /&gt;
* SAS Data Integration Studio&lt;br /&gt;
* SnapLogic Server</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/5605703505859825125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2010/08/dw-etl-process.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/5605703505859825125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/5605703505859825125'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2010/08/dw-etl-process.html' title='DW ETL Process'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOaqniLqIa_R-1iUiGe4ptbahTShDTOOd0WvkNC7IJKJJ4BI_8K-jj_4X6AHto8NPq_ghMbDxs4u2Wu80c-p3zilhf6vANnDiHe4Yrbm8nq6CMzFLwc8NFeH21VgHinKC1weO67EOXW1jz/s72-c/ETL_Architecture_Pattern.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-4681165343061832388</id><published>2010-08-05T20:24:00.000+05:30</published><updated>2011-02-10T07:05:20.654+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage OverView"/><title type='text'>DataStage Architecture</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJlqFUW3c4zW33p1aYlBkLYp1jHQYAKWdc3kCI3GASriR4A9FSKUEt40ciCdrudTVXABHKimNwk_4p4lvW4BySif8cWeFnghGAlygHKqGKbIdP2tYZfrswn-zDmPaZR7N7L1WPr3MqxzXJ/s1600/DataStage+Architecture.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;234&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJlqFUW3c4zW33p1aYlBkLYp1jHQYAKWdc3kCI3GASriR4A9FSKUEt40ciCdrudTVXABHKimNwk_4p4lvW4BySif8cWeFnghGAlygHKqGKbIdP2tYZfrswn-zDmPaZR7N7L1WPr3MqxzXJ/s320/DataStage+Architecture.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The top half displays the Clients. Below there are two engines: The Server engine that runs DataStage server jobs and the parallel engine that runs parallel jobs. Our focus in this course is on Parallel jobs.&lt;br /&gt;
&lt;br /&gt;
The DataStage client components are:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Administrator&lt;/b&gt;&lt;br /&gt;
Administers DataStage projects and conducts housekeeping on the server&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Designer&lt;/b&gt;&lt;br /&gt;
Creates DataStage jobs that are compiled into executable programs&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Director&lt;/b&gt;&lt;br /&gt;
Used to run and monitor the DataStage jobs&lt;br /&gt;
The Repository is used to store DataStage objects. The Repository is shared with other applications in the Suite.</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/4681165343061832388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2010/08/datastage-architecture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/4681165343061832388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/4681165343061832388'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2010/08/datastage-architecture.html' title='DataStage Architecture'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJlqFUW3c4zW33p1aYlBkLYp1jHQYAKWdc3kCI3GASriR4A9FSKUEt40ciCdrudTVXABHKimNwk_4p4lvW4BySif8cWeFnghGAlygHKqGKbIdP2tYZfrswn-zDmPaZR7N7L1WPr3MqxzXJ/s72-c/DataStage+Architecture.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4154744971482435414.post-8157743380266492755</id><published>2010-07-20T08:21:00.001+05:30</published><updated>2011-02-10T07:05:20.654+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataStage OverView"/><title type='text'>DataStage Overview</title><content type='html'>&lt;b&gt;IBM® InfoSphere® DataStage®&lt;/b&gt; integrates data across multiple and high volumes of data sources and target applications.&lt;br /&gt;
&lt;br /&gt;
IBM InfoSphere DataStage is an ETL tool and part of the IBM Information Platforms Solutions suite and the IBM InfoSphere. It uses a graphical notation to construct data integration solutions and is available in various versions such as the Server Edition and the Enterprise Edition. Like several other IBM products (e.g. IBM WebSphere Portal from the IBM Lotus family), DataStage belongs to another brand than points its name.&lt;br /&gt;
DataStage was conceived at VMark, a spin off from Prime Computers that developed two notable products: UniVerse database and the DataStage ETL tool. The first VMark ETL prototype was built by Lee Scheffler in the first half of 1996. Peter Weyman was VMark VP of Strategy and identified the ETL market as an opportunity. He appointed Lee Scheffler as the architect and conceived the product brand name &quot;Stage&quot; to signify modularity and component-orientation]. This tag was used to name DataStage and subsequently used in related products QualityStage, ProfileStage, MetaStage and AuditStage. Lee Scheffler presented the DataStage product overview to the board of VMark in June 1996 and it was approved for development. The product was in alpha testing in October, beta testing in November and was generally available in January 1997.&lt;br /&gt;
&lt;br /&gt;
VMark acquired UniData in October 1997 and renamed itself to Ardent Software. In 1999 Ardent Software was acquired by Informix the database software vendor. In April 2001 IBM acquired Informix and took just the database business leaving the data integration tools to be spun off as an independent software company called Ascential Software. In November 2001, Ascential Software Corp. of Westboro, Mass. acquired privately held Torrent Systems Inc. of Cambridge, Mass. for $46 million in cash. Ascential has stated a commitment to integrate Orchestrate&#39;s parallel processing capabilities directly into the DataStageXE platform. . In March 2005 IBM acquired Ascential Software and made DataStage part of the WebSphere family as WebSphere DataStage. In 2006 the product was released as part of the IBM Information Server under the Information Management family but was still known as WebSphere DataStage. In 2008 the suite was renamed to InfoSphere Information Server and the product was renamed to InfoSphere DataStage.&lt;br /&gt;
&lt;br /&gt;
• Enterprise Edition (PX): a name give to the version of DataStage that had a parallel processing architecture and parallel ETL jobs.&lt;br /&gt;
• Server Edition: the name of the original version of DataStage representing Server Jobs. Early DataStage versions only contained Server Jobs. DataStage 5 added Sequence Jobs and DataStage 6 added Parallel Jobs via Enterprise Edition.&lt;br /&gt;
• MVS Edition: mainframe jobs, developed on a Windows or Unix/Linux platform and transferred to the mainframe as compiled mainframe jobs.&lt;br /&gt;
• DataStage for PeopleSoft: a server edition with prebuilt PeopleSoft EPM jobs under an OEM arragement with PeopleSoft and Oracle Corporation.&lt;br /&gt;
• DataStage TX: for processing complex transactions and messages, formerly known as Mercator. Now known as WebSphere Transformation Extender.&lt;br /&gt;
• ISD (Information Services Director, ex. DataStage RTI): Real Time Integration pack can turn server or parallel jobs into SOA services.&lt;br /&gt;
&lt;br /&gt;
InfoSphere DataStage is a powerful data integration tool. It was acquired by IBM in 2005 and has become a part of IBM Information Server Platform. It uses a client/server design where jobs are created and administered via a Windows client against central repository on a server. The IBM InfoSphere DataStage is capable of integrating data on demand across multiple and high volumes of data sources and target applications using a high performance parallel framework. InfoSphere DataStage also facilitates extended metadata management and enterprise connectivity&lt;br /&gt;
&lt;br /&gt;
It has three levels of Parallelism like AbInito which are:&lt;br /&gt;
&lt;br /&gt;
1) Pipeline Parallelism&lt;br /&gt;
&lt;br /&gt;
2) Data Parallelism&lt;br /&gt;
&lt;br /&gt;
3) Component Parallelism&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Architecture&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijj7V-eploCYDSpx9kA0z9liI0v7yYGRN9P_7dcu_KnQoQid_peObK5K8_9RgtSjIOEYCYkTyRL2S2Xl60Cs75ZEo2GcOgaDJrHg1OXjOVkzWE5BFmW2hZx5_pFIm_f82NOhvPADRlWEVh/s1600/Architecture.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;302&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijj7V-eploCYDSpx9kA0z9liI0v7yYGRN9P_7dcu_KnQoQid_peObK5K8_9RgtSjIOEYCYkTyRL2S2Xl60Cs75ZEo2GcOgaDJrHg1OXjOVkzWE5BFmW2hZx5_pFIm_f82NOhvPADRlWEVh/s320/Architecture.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
It integrates data on demand with a high performance parallel framework, extended metadata management, and enterprise connectivity.&lt;br /&gt;
&lt;br /&gt;
* Supports the collection, integration and transformation of large volumes of data, with data structures ranging from simple to highly complex.&lt;br /&gt;
* Offers scalable platform that enables companies to solve large-scale business problems through high-performance processing of massive data volumes&lt;br /&gt;
* Supports real-time data integration.&lt;br /&gt;
* Enables developers to maximize speed, flexibility and effectiveness in building, deploying, updating and managing their data integration infrastructure.&lt;br /&gt;
* Completes connectivity between any data source and any application.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What is IBM WebSphere DataStage?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
• Design jobs for Extraction, Transformation, and Loading (ETL)&lt;br /&gt;
• Ideal tool for data integration projects –such as, data warehouses, data marts, and system migrations&lt;br /&gt;
• Import, export, create, and manage metadata for use within jobs&lt;br /&gt;
• Schedule, run, and monitor jobs, all within DataStage&lt;br /&gt;
• Administer your DataStage development and execution environments Create batch (controlling) jobs&lt;br /&gt;
&lt;br /&gt;
DataStage is a comprehensive tool for the fast, easy creation and maintenance of data marts and data warehouses. It provides the tools you need to build, manage, and expand them. With DataStage, you canbuild solutions faster and give users access to the data and reports they need.&lt;br /&gt;
&lt;br /&gt;
With DataStage you can:&lt;br /&gt;
• Design the jobs that extract, integrate, aggregate, load, and transform the data for your data warehouse or data mart.&lt;br /&gt;
• Create and reuse metadata and job components.&lt;br /&gt;
• Run, monitor, and schedule these jobs.&lt;br /&gt;
• Administer your development and execution environments.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4X_YVBqt2di5Zrwv7hVTySRJkG_IYVrr0srpIi7UIMD4sp5MbycA9oZmmwZT62e4Wi2f_eAq1S0AvE0fzGxTD5ILuSAoCrT4LzcBftkwq58LNo4glkxQUufWeVXj1vcKqbjUP_lKbxiqO/s1600/Information+Server+BackBone.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;176&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4X_YVBqt2di5Zrwv7hVTySRJkG_IYVrr0srpIi7UIMD4sp5MbycA9oZmmwZT62e4Wi2f_eAq1S0AvE0fzGxTD5ILuSAoCrT4LzcBftkwq58LNo4glkxQUufWeVXj1vcKqbjUP_lKbxiqO/s320/Information+Server+BackBone.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datastage-venkat.blogspot.com/feeds/8157743380266492755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://datastage-venkat.blogspot.com/2010/07/datastage-overview.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/8157743380266492755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4154744971482435414/posts/default/8157743380266492755'/><link rel='alternate' type='text/html' href='http://datastage-venkat.blogspot.com/2010/07/datastage-overview.html' title='DataStage Overview'/><author><name>Venkat ♥ Duvvuri</name><uri>http://www.blogger.com/profile/03382925005534094691</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzTiGhd9a4NQhkN7AK0AWK5AhVVDDsRHq9No6by7EJcwSeqJU2lYUx0vW_o-_0hehAfNcz9INM-0IbohjZMzXe7bwU_tNEPgrMAc31De46ZHFIRMd7SbJQKIYtl-ECQ/s220/FB-IMG-1548110731374.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijj7V-eploCYDSpx9kA0z9liI0v7yYGRN9P_7dcu_KnQoQid_peObK5K8_9RgtSjIOEYCYkTyRL2S2Xl60Cs75ZEo2GcOgaDJrHg1OXjOVkzWE5BFmW2hZx5_pFIm_f82NOhvPADRlWEVh/s72-c/Architecture.jpg" height="72" width="72"/><thr:total>4</thr:total></entry></feed>