Data Services User Guide

84
Informatica Data Services (Version 9.5.1 HotFix 1) User Guide

description

Informatica Data Services User Guide

Transcript of Data Services User Guide

Page 1: Data Services User Guide

Informatica Data Services (Version 9.5.1 HotFix 1)

User Guide

Page 2: Data Services User Guide

Informatica Data Services User Guide

Version 9.5.1 HotFix 1March 2013

Copyright (c) 1998-2013 Informatica Corporation. All rights reserved.

This software and documentation contain proprietary information of Informatica Corporation and are provided under a license agreement containing restrictions on use anddisclosure and are also protected by copyright law. Reverse engineering of the software is prohibited. No part of this document may be reproduced or transmitted in any form, by anymeans (electronic, photocopying, recording or otherwise) without prior consent of Informatica Corporation. This Software may be protected by U.S. and/or international Patents andother Patents Pending.

Use, duplication, or disclosure of the Software by the U.S. Government is subject to the restrictions set forth in the applicable software license agreement and as provided in DFARS227.7202-1(a) and 227.7702-3(a) (1995), DFARS 252.227-7013©(1)(ii) (OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable.

The information in this product or documentation is subject to change without notice. If you find any problems in this product or documentation, please report them to us inwriting.

Informatica, Informatica Platform, Informatica Data Services, PowerCenter, PowerCenterRT, PowerCenter Connect, PowerCenter Data Analyzer, PowerExchange, PowerMart,Metadata Manager, Informatica Data Quality, Informatica Data Explorer, Informatica B2B Data Transformation, Informatica B2B Data Exchange Informatica On Demand,Informatica Identity Resolution, Informatica Application Information Lifecycle Management, Informatica Complex Event Processing, Ultra Messaging and Informatica Master DataManagement are trademarks or registered trademarks of Informatica Corporation in the United States and in jurisdictions throughout the world. All other company and productnames may be trade names or trademarks of their respective owners.

Portions of this software and/or documentation are subject to copyright held by third parties, including without limitation: Copyright DataDirect Technologies. All rights reserved.Copyright © Sun Microsystems. All rights reserved. Copyright © RSA Security Inc. All Rights Reserved. Copyright © Ordinal Technology Corp. All rights reserved.Copyright ©Aandacht c.v. All rights reserved. Copyright Genivia, Inc. All rights reserved. Copyright Isomorphic Software. All rights reserved. Copyright © Meta Integration Technology, Inc. Allrights reserved. Copyright © Intalio. All rights reserved. Copyright © Oracle. All rights reserved. Copyright © Adobe Systems Incorporated. All rights reserved. Copyright © DataArt,Inc. All rights reserved. Copyright © ComponentSource. All rights reserved. Copyright © Microsoft Corporation. All rights reserved. Copyright © Rogue Wave Software, Inc. All rightsreserved. Copyright © Teradata Corporation. All rights reserved. Copyright © Yahoo! Inc. All rights reserved. Copyright © Glyph & Cog, LLC. All rights reserved. Copyright ©Thinkmap, Inc. All rights reserved. Copyright © Clearpace Software Limited. All rights reserved. Copyright © Information Builders, Inc. All rights reserved. Copyright © OSS Nokalva,Inc. All rights reserved. Copyright Edifecs, Inc. All rights reserved. Copyright Cleo Communications, Inc. All rights reserved. Copyright © International Organization forStandardization 1986. All rights reserved. Copyright © ej-technologies GmbH. All rights reserved. Copyright © Jaspersoft Corporation. All rights reserved. Copyright © isInternational Business Machines Corporation. All rights reserved. Copyright © yWorks GmbH. All rights reserved. Copyright © Lucent Technologies. All rights reserved. Copyright(c) University of Toronto. All rights reserved. Copyright © Daniel Veillard. All rights reserved. Copyright © Unicode, Inc. Copyright IBM Corp. All rights reserved. Copyright ©MicroQuill Software Publishing, Inc. All rights reserved. Copyright © PassMark Software Pty Ltd. All rights reserved. Copyright © LogiXML, Inc. All rights reserved. Copyright ©2003-2010 Lorenzi Davide, All rights reserved. Copyright © Red Hat, Inc. All rights reserved. Copyright © The Board of Trustees of the Leland Stanford Junior University. All rightsreserved. Copyright © EMC Corporation. All rights reserved. Copyright © Flexera Software. All rights reserved. Copyright © Jinfonet Software. All rights reserved. Copyright © AppleInc. All rights reserved.

This product includes software developed by the Apache Software Foundation (http://www.apache.org/), and other software which is licensed under the Apache License, Version2.0 (the "License"). You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for thespecific language governing permissions and limitations under the License.

This product includes software which was developed by Mozilla (http://www.mozilla.org/), software copyright The JBoss Group, LLC, all rights reserved; software copyright ©1999-2006 by Bruno Lowagie and Paulo Soares and other software which is licensed under various versions of the GNU Lesser General Public License Agreement, which may befound at http:// www.gnu.org/licenses/lgpl.html. The materials are provided free of charge by Informatica, "as-is", without warranty of any kind, either express or implied, includingbut not limited to the implied warranties of merchantability and fitness for a particular purpose.

The product includes ACE(TM) and TAO(TM) software copyrighted by Douglas C. Schmidt and his research group at Washington University, University of California, Irvine, andVanderbilt University, Copyright (©) 1993-2006, all rights reserved.

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (copyright The OpenSSL Project. All Rights Reserved) and redistribution of thissoftware is subject to terms available at http://www.openssl.org and http://www.openssl.org/source/license.html.

This product includes Curl software which is Copyright 1996-2007, Daniel Stenberg, <[email protected]>. All Rights Reserved. Permissions and limitations regarding this softwareare subject to terms available at http://curl.haxx.se/docs/copyright.html. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is herebygranted, provided that the above copyright notice and this permission notice appear in all copies.

The product includes software copyright 2001-2005 (©) MetaStuff, Ltd. All Rights Reserved. Permissions and limitations regarding this software are subject to terms available athttp://www.dom4j.org/ license.html.

The product includes software copyright © 2004-2007, The Dojo Foundation. All Rights Reserved. Permissions and limitations regarding this software are subject to terms availableat http://dojotoolkit.org/license.

This product includes ICU software which is copyright International Business Machines Corporation and others. All rights reserved. Permissions and limitations regarding thissoftware are subject to terms available at http://source.icu-project.org/repos/icu/icu/trunk/license.html.

This product includes software copyright © 1996-2006 Per Bothner. All rights reserved. Your right to use such materials is set forth in the license which may be found at http://www.gnu.org/software/ kawa/Software-License.html.

This product includes OSSP UUID software which is Copyright © 2002 Ralf S. Engelschall, Copyright © 2002 The OSSP Project Copyright © 2002 Cable & Wireless Deutschland.Permissions and limitations regarding this software are subject to terms available at http://www.opensource.org/licenses/mit-license.php.

This product includes software developed by Boost (http://www.boost.org/) or under the Boost software license. Permissions and limitations regarding this software are subject toterms available at http:/ /www.boost.org/LICENSE_1_0.txt.

This product includes software copyright © 1997-2007 University of Cambridge. Permissions and limitations regarding this software are subject to terms available at http://www.pcre.org/license.txt.

This product includes software copyright © 2007 The Eclipse Foundation. All Rights Reserved. Permissions and limitations regarding this software are subject to terms available athttp://www.eclipse.org/org/documents/epl-v10.php.

This product includes software licensed under the terms at http://www.tcl.tk/software/tcltk/license.html, http://www.bosrup.com/web/overlib/?License, http://www.stlport.org/doc/license.html, http:// asm.ow2.org/license.html, http://www.cryptix.org/LICENSE.TXT, http://hsqldb.org/web/hsqlLicense.html, http://httpunit.sourceforge.net/doc/license.html,http://jung.sourceforge.net/license.txt, http://www.gzip.org/zlib/zlib_license.html, http://www.openldap.org/software/release/license.html, http://www.libssh2.org, http://slf4j.org/license.html, http://www.sente.ch/software/OpenSourceLicense.html, http://fusesource.com/downloads/license-agreements/fuse-message-broker-v-5-3-license-agreement;http://antlr.org/license.html; http://aopalliance.sourceforge.net/; http://www.bouncycastle.org/licence.html; http://www.jgraph.com/jgraphdownload.html; http://www.jcraft.com/jsch/LICENSE.txt; http://jotm.objectweb.org/bsd_license.html; http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231; http://www.slf4j.org/license.html; http://nanoxml.sourceforge.net/orig/copyright.html; http://www.json.org/license.html; http://forge.ow2.org/projects/javaservice/, http://www.postgresql.org/about/licence.html, http://

Page 3: Data Services User Guide

www.sqlite.org/copyright.html, http://www.tcl.tk/software/tcltk/license.html, http://www.jaxen.org/faq.html, http://www.jdom.org/docs/faq.html, http://www.slf4j.org/license.html;http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/License; http://www.keplerproject.org/md5/license.html; http://www.toedter.com/en/jcalendar/license.html; http://www.edankert.com/bounce/index.html; http://www.net-snmp.org/about/license.html; http://www.openmdx.org/#FAQ; http://www.php.net/license/3_01.txt; http://srp.stanford.edu/license.txt; http://www.schneier.com/blowfish.html; http://www.jmock.org/license.html; http://xsom.java.net; and http://benalman.com/about/license/; https://github.com/CreateJS/EaselJS/blob/master/src/easeljs/display/Bitmap.js; http://www.h2database.com/html/license.html#summary.

This product includes software licensed under the Academic Free License (http://www.opensource.org/licenses/afl-3.0.php), the Common Development and Distribution License(http://www.opensource.org/licenses/cddl1.php) the Common Public License (http://www.opensource.org/licenses/cpl1.0.php), the Sun Binary Code License AgreementSupplemental License Terms, the BSD License (http:// www.opensource.org/licenses/bsd-license.php) the MIT License (http://www.opensource.org/licenses/mit-license.php) andthe Artistic License (http://www.opensource.org/licenses/artistic-license-1.0).

This product includes software copyright © 2003-2006 Joe WaInes, 2006-2007 XStream Committers. All rights reserved. Permissions and limitations regarding this software aresubject to terms available at http://xstream.codehaus.org/license.html. This product includes software developed by the Indiana University Extreme! Lab. For further informationplease visit http://www.extreme.indiana.edu/.

This Software is protected by U.S. Patent Numbers 5,794,246; 6,014,670; 6,016,501; 6,029,178; 6,032,158; 6,035,307; 6,044,374; 6,092,086; 6,208,990; 6,339,775; 6,640,226;6,789,096; 6,820,077; 6,823,373; 6,850,947; 6,895,471; 7,117,215; 7,162,643; 7,243,110, 7,254,590; 7,281,001; 7,421,458; 7,496,588; 7,523,121; 7,584,422; 7676516; 7,720,842; 7,721,270; and 7,774,791, international Patents and other Patents Pending.

DISCLAIMER: Informatica Corporation provides this documentation "as is" without warranty of any kind, either express or implied, including, but not limited to, the impliedwarranties of noninfringement, merchantability, or use for a particular purpose. Informatica Corporation does not warrant that this software or documentation is error free. Theinformation provided in this software or documentation may include technical inaccuracies or typographical errors. The information in this software and documentation is subject tochange at any time without notice.

NOTICES

This Informatica product (the "Software") includes certain drivers (the "DataDirect Drivers") from DataDirect Technologies, an operating company of Progress Software Corporation("DataDirect") which are subject to the following terms and conditions:

1.THE DATADIRECT DRIVERS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITEDTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.

2. IN NO EVENT WILL DATADIRECT OR ITS THIRD PARTY SUPPLIERS BE LIABLE TO THE END-USER CUSTOMER FOR ANY DIRECT, INDIRECT, INCIDENTAL,SPECIAL, CONSEQUENTIAL OR OTHER DAMAGES ARISING OUT OF THE USE OF THE ODBC DRIVERS, WHETHER OR NOT INFORMED OF THEPOSSIBILITIES OF DAMAGES IN ADVANCE. THESE LIMITATIONS APPLY TO ALL CAUSES OF ACTION, INCLUDING, WITHOUT LIMITATION, BREACH OFCONTRACT, BREACH OF WARRANTY, NEGLIGENCE, STRICT LIABILITY, MISREPRESENTATION AND OTHER TORTS.

This software and documentation contain proprietary information of Informatica Corporation and are provided under a license agreement containing restrictions on use anddisclosure and are also protected by copyright law. Reverse engineering of the software is prohibited. No part of this document may be reproduced or transmitted in any form, by anymeans (electronic, photocopying, recording or otherwise) without prior consent of Informatica Corporation. This Software may be protected by U.S. and/or international Patents andother Patents Pending.

Use, duplication, or disclosure of the Software by the U.S. Government is subject to the restrictions set forth in the applicable software license agreement and as provided in DFARS227.7202-1(a) and 227.7702-3(a) (1995), DFARS 252.227-7013©(1)(ii) (OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable.

The information in this product or documentation is subject to change without notice. If you find any problems in this product or documentation, please report them to us inwriting.

Informatica, Informatica Platform, Informatica Data Services, PowerCenter, PowerCenterRT, PowerCenter Connect, PowerCenter Data Analyzer, PowerExchange, PowerMart,Metadata Manager, Informatica Data Quality, Informatica Data Explorer, Informatica B2B Data Transformation, Informatica B2B Data Exchange Informatica On Demand,Informatica Identity Resolution, Informatica Application Information Lifecycle Management, Informatica Complex Event Processing, Ultra Messaging and Informatica Master DataManagement are trademarks or registered trademarks of Informatica Corporation in the United States and in jurisdictions throughout the world. All other company and productnames may be trade names or trademarks of their respective owners.

Portions of this software and/or documentation are subject to copyright held by third parties, including without limitation: Copyright DataDirect Technologies. All rights reserved.Copyright © Sun Microsystems. All rights reserved. Copyright © RSA Security Inc. All Rights Reserved. Copyright © Ordinal Technology Corp. All rights reserved.Copyright ©Aandacht c.v. All rights reserved. Copyright Genivia, Inc. All rights reserved. Copyright Isomorphic Software. All rights reserved. Copyright © Meta Integration Technology, Inc. Allrights reserved. Copyright © Intalio. All rights reserved. Copyright © Oracle. All rights reserved. Copyright © Adobe Systems Incorporated. All rights reserved. Copyright © DataArt,Inc. All rights reserved. Copyright © ComponentSource. All rights reserved. Copyright © Microsoft Corporation. All rights reserved. Copyright © Rogue Wave Software, Inc. All rightsreserved. Copyright © Teradata Corporation. All rights reserved. Copyright © Yahoo! Inc. All rights reserved. Copyright © Glyph & Cog, LLC. All rights reserved. Copyright ©Thinkmap, Inc. All rights reserved. Copyright © Clearpace Software Limited. All rights reserved. Copyright © Information Builders, Inc. All rights reserved. Copyright © OSS Nokalva,Inc. All rights reserved. Copyright Edifecs, Inc. All rights reserved. Copyright Cleo Communications, Inc. All rights reserved. Copyright © International Organization forStandardization 1986. All rights reserved. Copyright © ej-technologies GmbH. All rights reserved. Copyright © Jaspersoft Corporation. All rights reserved. Copyright © isInternational Business Machines Corporation. All rights reserved. Copyright © yWorks GmbH. All rights reserved. Copyright © Lucent Technologies. All rights reserved. Copyright(c) University of Toronto. All rights reserved. Copyright © Daniel Veillard. All rights reserved. Copyright © Unicode, Inc. Copyright IBM Corp. All rights reserved. Copyright ©MicroQuill Software Publishing, Inc. All rights reserved. Copyright © PassMark Software Pty Ltd. All rights reserved. Copyright © LogiXML, Inc. All rights reserved. Copyright ©2003-2010 Lorenzi Davide, All rights reserved. Copyright © Red Hat, Inc. All rights reserved. Copyright © The Board of Trustees of the Leland Stanford Junior University. All rightsreserved. Copyright © EMC Corporation. All rights reserved. Copyright © Flexera Software. All rights reserved. Copyright © Jinfonet Software. All rights reserved. Copyright © AppleInc. All rights reserved.

This product includes software developed by the Apache Software Foundation (http://www.apache.org/), and other software which is licensed under the Apache License, Version2.0 (the "License"). You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for thespecific language governing permissions and limitations under the License.

This product includes software which was developed by Mozilla (http://www.mozilla.org/), software copyright The JBoss Group, LLC, all rights reserved; software copyright ©1999-2006 by Bruno Lowagie and Paulo Soares and other software which is licensed under various versions of the GNU Lesser General Public License Agreement, which may befound at http:// www.gnu.org/licenses/lgpl.html. The materials are provided free of charge by Informatica, "as-is", without warranty of any kind, either express or implied, includingbut not limited to the implied warranties of merchantability and fitness for a particular purpose.

The product includes ACE(TM) and TAO(TM) software copyrighted by Douglas C. Schmidt and his research group at Washington University, University of California, Irvine, andVanderbilt University, Copyright (©) 1993-2006, all rights reserved.

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (copyright The OpenSSL Project. All Rights Reserved) and redistribution of thissoftware is subject to terms available at http://www.openssl.org and http://www.openssl.org/source/license.html.

This product includes Curl software which is Copyright 1996-2007, Daniel Stenberg, <[email protected]>. All Rights Reserved. Permissions and limitations regarding this softwareare subject to terms available at http://curl.haxx.se/docs/copyright.html. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is herebygranted, provided that the above copyright notice and this permission notice appear in all copies.

Page 4: Data Services User Guide

The product includes software copyright 2001-2005 (©) MetaStuff, Ltd. All Rights Reserved. Permissions and limitations regarding this software are subject to terms available athttp://www.dom4j.org/ license.html.

The product includes software copyright © 2004-2007, The Dojo Foundation. All Rights Reserved. Permissions and limitations regarding this software are subject to terms availableat http://dojotoolkit.org/license.

This product includes ICU software which is copyright International Business Machines Corporation and others. All rights reserved. Permissions and limitations regarding thissoftware are subject to terms available at http://source.icu-project.org/repos/icu/icu/trunk/license.html.

This product includes software copyright © 1996-2006 Per Bothner. All rights reserved. Your right to use such materials is set forth in the license which may be found at http://www.gnu.org/software/ kawa/Software-License.html.

This product includes OSSP UUID software which is Copyright © 2002 Ralf S. Engelschall, Copyright © 2002 The OSSP Project Copyright © 2002 Cable & Wireless Deutschland.Permissions and limitations regarding this software are subject to terms available at http://www.opensource.org/licenses/mit-license.php.

This product includes software developed by Boost (http://www.boost.org/) or under the Boost software license. Permissions and limitations regarding this software are subject toterms available at http:/ /www.boost.org/LICENSE_1_0.txt.

This product includes software copyright © 1997-2007 University of Cambridge. Permissions and limitations regarding this software are subject to terms available at http://www.pcre.org/license.txt.

This product includes software copyright © 2007 The Eclipse Foundation. All Rights Reserved. Permissions and limitations regarding this software are subject to terms available athttp://www.eclipse.org/org/documents/epl-v10.php.

This product includes software licensed under the terms at http://www.tcl.tk/software/tcltk/license.html, http://www.bosrup.com/web/overlib/?License, http://www.stlport.org/doc/license.html, http:// asm.ow2.org/license.html, http://www.cryptix.org/LICENSE.TXT, http://hsqldb.org/web/hsqlLicense.html, http://httpunit.sourceforge.net/doc/license.html,http://jung.sourceforge.net/license.txt, http://www.gzip.org/zlib/zlib_license.html, http://www.openldap.org/software/release/license.html, http://www.libssh2.org, http://slf4j.org/license.html, http://www.sente.ch/software/OpenSourceLicense.html, http://fusesource.com/downloads/license-agreements/fuse-message-broker-v-5-3-license-agreement;http://antlr.org/license.html; http://aopalliance.sourceforge.net/; http://www.bouncycastle.org/licence.html; http://www.jgraph.com/jgraphdownload.html; http://www.jcraft.com/jsch/LICENSE.txt; http://jotm.objectweb.org/bsd_license.html; http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231; http://www.slf4j.org/license.html; http://nanoxml.sourceforge.net/orig/copyright.html; http://www.json.org/license.html; http://forge.ow2.org/projects/javaservice/, http://www.postgresql.org/about/licence.html, http://www.sqlite.org/copyright.html, http://www.tcl.tk/software/tcltk/license.html, http://www.jaxen.org/faq.html, http://www.jdom.org/docs/faq.html, http://www.slf4j.org/license.html;http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/License; http://www.keplerproject.org/md5/license.html; http://www.toedter.com/en/jcalendar/license.html; http://www.edankert.com/bounce/index.html; http://www.net-snmp.org/about/license.html; http://www.openmdx.org/#FAQ; http://www.php.net/license/3_01.txt; http://srp.stanford.edu/license.txt; http://www.schneier.com/blowfish.html; http://www.jmock.org/license.html; http://xsom.java.net; and http://benalman.com/about/license/; https://github.com/CreateJS/EaselJS/blob/master/src/easeljs/display/Bitmap.js; http://www.h2database.com/html/license.html#summary.

This product includes software licensed under the Academic Free License (http://www.opensource.org/licenses/afl-3.0.php), the Common Development and Distribution License(http://www.opensource.org/licenses/cddl1.php) the Common Public License (http://www.opensource.org/licenses/cpl1.0.php), the Sun Binary Code License AgreementSupplemental License Terms, the BSD License (http:// www.opensource.org/licenses/bsd-license.php) the MIT License (http://www.opensource.org/licenses/mit-license.php) andthe Artistic License (http://www.opensource.org/licenses/artistic-license-1.0).

This product includes software copyright © 2003-2006 Joe WaInes, 2006-2007 XStream Committers. All rights reserved. Permissions and limitations regarding this software aresubject to terms available at http://xstream.codehaus.org/license.html. This product includes software developed by the Indiana University Extreme! Lab. For further informationplease visit http://www.extreme.indiana.edu/.

This Software is protected by U.S. Patent Numbers 5,794,246; 6,014,670; 6,016,501; 6,029,178; 6,032,158; 6,035,307; 6,044,374; 6,092,086; 6,208,990; 6,339,775; 6,640,226;6,789,096; 6,820,077; 6,823,373; 6,850,947; 6,895,471; 7,117,215; 7,162,643; 7,243,110, 7,254,590; 7,281,001; 7,421,458; 7,496,588; 7,523,121; 7,584,422; 7676516; 7,720,842; 7,721,270; and 7,774,791, international Patents and other Patents Pending.

DISCLAIMER: Informatica Corporation provides this documentation "as is" without warranty of any kind, either express or implied, including, but not limited to, the impliedwarranties of noninfringement, merchantability, or use for a particular purpose. Informatica Corporation does not warrant that this software or documentation is error free. Theinformation provided in this software or documentation may include technical inaccuracies or typographical errors. The information in this software and documentation is subject tochange at any time without notice.

NOTICES

This Informatica product (the "Software") includes certain drivers (the "DataDirect Drivers") from DataDirect Technologies, an operating company ofProgress Software Corporation ("DataDirect") which are subject to the following terms and conditions:

1. THE DATADIRECT DRIVERS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULARPURPOSE AND NON-INFRINGEMENT.

2. IN NO EVENT WILL DATADIRECT OR ITS THIRD PARTY SUPPLIERS BE LIABLE TO THE END-USER CUSTOMER FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR OTHER DAMAGES ARISING OUT OF THE USE OF THE ODBCDRIVERS, WHETHER OR NOT INFORMED OF THE POSSIBILITIES OF DAMAGES IN ADVANCE. THESE LIMITATIONS APPLY TOALL CAUSES OF ACTION, INCLUDING, WITHOUT LIMITATION, BREACH OF CONTRACT, BREACH OF WARRANTY,NEGLIGENCE, STRICT LIABILITY, MISREPRESENTATION AND OTHER TORTS.

Part Number: DS-DSG-95100-HF1-0001

Page 5: Data Services User Guide

Table of Contents

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vInformatica Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

Informatica MySupport Portal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

Informatica Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

Informatica Web Site. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

Informatica How-To Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

Informatica Knowledge Base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi

Informatica Multimedia Knowledge Base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi

Informatica Global Customer Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi

Chapter 1: Data Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Data Services Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

SQL Data Service Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Chapter 2: Virtual Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Virtual Data Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

SQL Data Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Defining an SQL Data Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Creating an SQL Data Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Virtual Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Data Access Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Creating a Virtual Table from a Data Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Creating a Virtual Table Manually. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Defining Relationships between Virtual Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Running an SQL Query to Preview Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Temporary Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Temporary Table Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Rules and Guidelines for Temporary Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Virtual Table Mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Defining a Virtual Table Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Creating a Virtual Table Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Validating a Virtual Table Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Previewing Virtual Table Mapping Output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Virtual Stored Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Defining a Virtual Stored Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Creating a Virtual Stored Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Validating a Virtual Stored Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Previewing Virtual Stored Procedure Output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Table of Contents i

Page 6: Data Services User Guide

SQL Query Plans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

SQL Query Plan Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Viewing an SQL Query Plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Chapter 3: SQL Data Service Queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15SQL Data Service Queries Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Datatypes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

SQL Statements and Keywords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Non-Correlated Subqueries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Correlated Subqueries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Parameterized Queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Reserved Words. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Escape Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Escape Syntax for the fn Keyword. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Troubleshooting SQL Data Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Chapter 4: SQL Data Service Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31SQL Data Service Connections Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Chapter 5: Client Machine Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Client Machine Configuration Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Client Machine Configuration Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Result Set Caching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

JDBC Client Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Installing the Informatica JDBC Driver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Updating the CLASSPATH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Connecting to the SQL Data Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Troubleshooting JDBC Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

ODBC Client Connections on Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Installing or Upgrading the Informatica Data Services ODBC Driver on Windows. . . . . . . . . . . . . 35

Configuring the Informatica Data Services ODBC Driver for PowerCenter. . . . . . . . . . . . . . . . . . 36

Configuring the Informatica Data Services ODBC Driver 9.5.1. . . . . . . . . . . . . . . . . . . . . . . . . 37

Connecting to the SQL Data Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

ODBC Client Connections on UNIX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Installing or Upgrading the Informatica Data Services ODBC Driver on UNIX. . . . . . . . . . . . . . . . 38

Configuring the Informatica Data Services ODBC Driver for PowerCenter. . . . . . . . . . . . . . . . . . 40

Configuring the Informatica Data Services ODBC Driver 9.5.1. . . . . . . . . . . . . . . . . . . . . . . . . 41

Connecting to the SQL Data Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Troubleshooting ODBC Connections for PowerCenter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

ii Table of Contents

Page 7: Data Services User Guide

Chapter 6: Third-Party Client Tool Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Third-Party Client Tool Configuration Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

BusinessObjects Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

IBM Cognos Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Step 1. Update the IBM Cognos Configuration File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Step 2. Create the ODBC Connection and Import Metadata. . . . . . . . . . . . . . . . . . . . . . . . . . . 45

MicroStrategy Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Step 1. Create the Database Instance and Connection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Step 2. Configure the SQL Generation Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Oracle Business Intelligence Enterprise Edition 11g Configuration. . . . . . . . . . . . . . . . . . . . . . . . . 48

QlikView Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

SQL Server Business Intelligence Development Studio Configuration. . . . . . . . . . . . . . . . . . . . . . . 49

SQuirreL SQL Client Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Step 1. Copy the Driver File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Step 2. Create the Driver and Alias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Toad for Data Analysts Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

WinSQL Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Troubleshooting Third-Party Client Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Chapter 7: Informatica Data Director Integration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Informatica Data Director Integration Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Informatica Data Director Integration Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Data Services Developer Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Domain Administrator Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Informatica MDM Hub Administrator Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Virtual Table Mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Security Configuration for the Custom Tab Virtual Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Configuration File Updates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Configuration File Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

externalLinkChild Element Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

externalLink Element Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

externalLink Element Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

IDS_WHERE Filter Rules and Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Chapter 8: SQL Data Service Administration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62SQL Data Service Security Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Types of SQL Data Service Permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Column Level Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Row Level Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Pass-Through Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

SQL Data Service Properties Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

SQL Data Service Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Table of Contents iii

Page 8: Data Services User Guide

SQL Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Virtual Table Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Virtual Column Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Virtual Stored Procedure Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Logical Data Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Logical Data Object/Virtual Table Cache Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

SQL Data Service Result Set Caching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Data Object Caching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

SQL Data Service Logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

SQL Data Services Monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

iv Table of Contents

Page 9: Data Services User Guide

PrefaceThe Informatica Data Services User Guide is written for data services developers.

Informatica Resources

Informatica MySupport PortalAs an Informatica customer, you can access the Informatica MySupport Portal at http://mysupport.informatica.com.The site contains product information, user group information, newsletters, access to the Informatica customersupport case management system (ATLAS), the Informatica How-To Library, the Informatica Knowledge Base, theInformatica Multimedia Knowledge Base, Informatica Product Documentation, and access to the Informatica usercommunity.

Informatica DocumentationThe Informatica Documentation team takes every effort to create accurate, usable documentation. If you havequestions, comments, or ideas about this documentation, contact the Informatica Documentation team through emailat [email protected]. We will use your feedback to improve our documentation. Let us know if wecan contact you regarding your comments.

The Documentation team updates documentation as needed. To get the latest documentation for your product,navigate to Product Documentation from .

Informatica Web SiteYou can access the Informatica corporate web site at http://www.informatica.com. The site contains information aboutInformatica, its background, upcoming events, and sales offices. You will also find product and partner information.The services area of the site includes important information about technical support, training and education, andimplementation services.

Informatica How-To LibraryAs an Informatica customer, you can access the Informatica How-To Library at http://mysupport.informatica.com. TheHow-To Library is a collection of resources to help you learn more about Informatica products and features. It includesarticles and interactive demonstrations that provide solutions to common problems, compare features and behaviors,and guide you through performing specific real-world tasks.

v

Page 10: Data Services User Guide

Informatica Knowledge BaseAs an Informatica customer, you can access the Informatica Knowledge Base at http://mysupport.informatica.com.Use the Knowledge Base to search for documented solutions to known technical issues about Informatica products.You can also find answers to frequently asked questions, technical white papers, and technical tips. If you havequestions, comments, or ideas about the Knowledge Base, contact the Informatica Knowledge Base team throughemail at [email protected].

Informatica Multimedia Knowledge BaseAs an Informatica customer, you can access the Informatica Multimedia Knowledge Base at http://mysupport.informatica.com. The Multimedia Knowledge Base is a collection of instructional multimedia files thathelp you learn about common concepts and guide you through performing specific tasks. If you have questions,comments, or ideas about the Multimedia Knowledge Base, contact the Informatica Knowledge Base team throughemail at [email protected].

Informatica Global Customer SupportYou can contact a Customer Support Center by telephone or through the Online Support. Online Support requires auser name and password. You can request a user name and password at http://mysupport.informatica.com.

Use the following telephone numbers to contact Informatica Global Customer Support:

North America / South America Europe / Middle East / Africa Asia / Australia

Toll FreeBrazil: 0800 891 0202Mexico: 001 888 209 8853North America: +1 877 463 2435

Toll FreeFrance: 0805 804632Germany: 0800 5891281Italy: 800 915 985Netherlands: 0800 2300001Portugal: 800 208 360Spain: 900 813 166Switzerland: 0800 463 200United Kingdom: 0800 023 4632

Standard RateBelgium: +31 30 6022 797France: +33 1 4138 9226Germany: +49 1805 702 702Netherlands: +31 306 022 797United Kingdom: +44 1628 511445

Toll FreeAustralia: 1 800 151 830New Zealand: 09 9 128 901

Standard RateIndia: +91 80 4112 5738

vi Preface

Page 11: Data Services User Guide

C H A P T E R 1

Data ServicesThis chapter includes the following topics:

¨ Data Services Overview, 1

¨ SQL Data Service Example, 2

Data Services OverviewA data service is a collection of reusable operations that you can run to access and transform data. Use a data serviceto create a unified model of data and allow end users to run SQL queries against the data or access the data through aweb service.

Use the data services capabilities in the Developer tool to create the following objects:

SQL data services

An SQL data service is a virtual database that end users can query. It contains virtual schemas and the virtualtables or stored procedures that define the database structure. Create an SQL data service so that end users canrun SQL queries against the virtual tables through a third-party client tool. End users can query the virtual tablesas if they were physical tables. End users can also use a third-party client tool to run virtual stored procedures.

Create an SQL data service in the Developer tool. To make it available to end users, include it in an application,and deploy the application to a Data Integration Service. When the application is running, end users can connectto the SQL data service from a third-party client tool by supplying a connect string. After they connect to the SQLdata service, end users can run SQL queries through the client tool.

Web services

A web service provides access to data integration functionality. A web service client can connect to a web serviceto access, transform, or deliver data. A web service is a collection of operations. A web service operation definesthe functions that the web service supports. For example, you might create a web service operation to retrievecustomer information by customer ID.

Create a web service in the Developer tool. To make it available to end users, include it in an application anddeploy the application to a Data Integration Service. When the application is running, end users can connect tothe web service through the WSDL URL. End users send requests to the web service and receive responsesthrough SOAP messages.

For more information about web services, see the Informatica Data Services Web Services Guide.

1

Page 12: Data Services User Guide

SQL Data Service ExampleCreate an SQL data service to make a virtual database available for end users to query. Create a virtual database todefine uniform views of data and to isolate the data from changes in structure. For example, create an SQL dataservice to define a uniform view of customer data and to allow end users to run SQL queries against the data.

Two companies that store customer data in multiple, heterogeneous data sources merge. A developer at the mergedcompany needs to make a single view of customer data available to other users at the company. The other users needto make SQL queries against the data to retrieve information such as the number of customers in a region or a list ofcustomers whose purchases exceed a certain dollar amount.

To accomplish this goal, the developer creates an SQL data service that contains virtual schemas and virtual tablesthat define a unified view of a customer. The developer creates virtual table mappings to link the virtual tables of thecustomer with the sources and to standardize the data. To make the virtual data accessible by end users, thedeveloper includes the SQL data service in an application and deploys the application.

After the developer deploys the application, end users can make SQL queries against the standardized view of thecustomer through a JDBC or ODBC client tool.

2 Chapter 1: Data Services

Page 13: Data Services User Guide

C H A P T E R 2

Virtual DataThis chapter includes the following topics:

¨ Virtual Data Overview, 3

¨ SQL Data Services, 4

¨ Virtual Tables, 5

¨ Temporary Tables, 7

¨ Virtual Table Mappings, 9

¨ Virtual Stored Procedures, 11

¨ SQL Query Plans, 13

Virtual Data OverviewCreate a virtual database to define uniform views of data and make the data available for end users to query. Endusers can run SQL queries against the virtual tables as if they were physical database tables.

Create a virtual database to accomplish the following tasks:

¨ Define a uniform view of data that you can expose to end users.

¨ Define the virtual flow of data between the sources and the virtual tables. Transform and standardize the data.

¨ Provide end users with access to the data. End users can use a JDBC or ODBC client tool to run SQL queriesagainst the virtual tables as if they were actual, physical database tables.

¨ Isolate the data from changes in data structures. You can add the virtual database to a self-contained application.If you make changes to the virtual database in the Developer tool, the virtual database in the application does notchange until you redeploy it.

To create a virtual database, you must create an SQL data service. An SQL data service contains the virtual schemasand the virtual tables or stored procedures that define the database structure. If the virtual schema contains virtualtables, the SQL data service also contains virtual table mappings that define the flow of data between the sources andthe virtual tables.

After you create an SQL data service, you add it to an application and deploy the application to make the SQL dataservice accessible by end users.

End users can query the virtual tables or run the stored procedures in the SQL data service by entering an SQL queryin a third-party client tool. When the user enters the query, the Data Integration Service retrieves virtual data from thesources or from cache tables, if an administrator specifies that any of the virtual tables should be cached.

3

Page 14: Data Services User Guide

SQL Data ServicesAn SQL data service is a virtual database that end users can query. It contains a schema and other objects thatrepresent underlying physical data.

An SQL data service can contain the following objects:

¨ Virtual schemas. Schemas that define the virtual database structure.

¨ Virtual tables. The virtual tables in the database. You can create virtual tables from physical or logical data objects,or you can create virtual tables manually.

¨ Virtual table mappings. Mappings that link a virtual table to source data and define the data flow between thesources and the virtual table. If you create a virtual table from a data object, you can create a virtual table mappingto define data flow rules between the data object and the virtual table. If you create a virtual table manually, youmust create a virtual table mapping to link the virtual table with source data and define data flow.

¨ Virtual stored procedures. Sets of data flow instructions that allow end users to perform calculations or retrievedata.

Defining an SQL Data ServiceTo define an SQL data service, create an SQL data service and add objects to it.

1. Create an SQL data service.

You can create virtual tables and virtual table mappings during this step.

2. Create virtual tables in the SQL data service.

You can create a virtual table from a data object, or you can create a virtual table manually.

3. Define relationships between virtual tables.

4. Create or update virtual table mappings to define the data flow between data objects and the virtual tables.

5. Optionally, create virtual stored procedures.

6. Optionally, preview virtual table data.

Creating an SQL Data ServiceCreate an SQL data service to define a virtual database that end users can query. When you create an SQL dataservice, you can create virtual schemas, virtual tables, and virtual table mappings that link virtual tables with sourcedata.

1. Select a project or folder in the Object Explorer view.

2. Click File > New > Data Service.

The New dialog box appears.

3. Select SQL Data Service.

4. Click Next.

5. Enter a name for the SQL data service.

6. To create virtual tables in the SQL data service, click Next. To create an SQL data service without virtual tables,click Finish.

If you click Next, the New SQL Data Service dialog box appears.

7. To create a virtual table, click the New button.

The Developer tool adds a virtual table to the list of virtual tables.

4 Chapter 2: Virtual Data

Page 15: Data Services User Guide

8. Enter a virtual table name in the Name column.

9. Click the Open button in the Data Object column.

The Select a Data Object dialog box appears.

10. Select a physical or logical data object and click OK.

11. Enter the virtual schema name in the Virtual Schema column.

12. Select Read in the Data Access column to link the virtual table with the data object. Select None if you do not wantto link the virtual table with the data object.

13. Repeat steps 7 through 12 to add more virtual tables.

14. Click Finish.

The Developer tool creates the SQL data service.

Virtual TablesA virtual table is a table in a virtual database. Create a virtual table to define the structure of the data.

Create one or more virtual tables within a schema. If a schema contains multiple virtual tables, you can define primarykey-foreign key relationships between tables.

You can create virtual tables manually or from physical or logical data objects. Each virtual table has a data accessmethod. The data access method defines how the Data Integration Service retrieves data. When you manually createa virtual table, the Developer tool creates an empty virtual table and sets the data access method to none.

When you create a virtual table from a data object, the Developer tool creates a virtual table with the same columnsand properties as the data object. The Developer tool sets the data access method to read. If you change columns inthe data object, the Developer tool updates the virtual table with the same changes. The Developer tool does notupdate the virtual table if you change the data object name or description.

To define data transformation rules for the virtual table, set the data access method to custom. The Developer toolprompts you to create a virtual table mapping.

You can preview virtual table data when the data access method is read or custom.

Data Access MethodsThe data access method for a virtual table defines how the Data Integration Service retrieves data.

When you create a virtual table, you must choose a data access method. The following table describes the dataaccess methods:

Data AccessMethod

Description

None The virtual table is not linked to source data.If you change the data access method to none, the Developer tool removes the link between the data objectand the virtual table. If the virtual table has a virtual table mapping, the Developer tool deletes the virtualtable mapping.

Virtual Tables 5

Page 16: Data Services User Guide

Data AccessMethod

Description

The Data Integration Service cannot retrieve data for the table.

Read The virtual table is linked to a physical or logical data object without data transformation. If you add, remove,or change a column in the data object, the Developer tool makes the same change to the virtual table.However, if you change primary key-foreign key relationships, change the name of the data object, orchange the data object description, the Developer tool does not update the virtual table.If you change the data access method to read, the Developer tool prompts you to choose a data object. Ifthe virtual table has a virtual table mapping, the Developer tool deletes the virtual table mapping.When an end user queries the virtual table, the Data Integration Service retrieves data from the dataobject.

Custom The virtual table is linked to a physical or logical data object through a virtual table mapping. If you updatethe data object, the Developer tool does not update the virtual table.If you change the data access method to custom, the Developer tool prompts you to create a virtual tablemapping.When an end user queries the virtual table, the Data Integration Service applies any transformation ruledefined in the virtual table mapping to the source data. It returns the transformed data to the end user.

Creating a Virtual Table from a Data ObjectCreate a virtual table from a physical or logical data object when the virtual table structure matches the structure of thedata object. The Developer tool creates a virtual table mapping to read data from the data object.

1. Open an SQL data service.

2. Click the Schema view.

3. Drag a physical or logical data object from the Object Explorer view to the editor.

The Add Data Objects to SQL Data Service dialog box appears. The Developer tool lists the data object in theData Object column.

4. Enter the virtual schema name in the Virtual Schema column.

5. Click Finish.

The Developer tool places the virtual table in the editor and sets the data access method to read.

Creating a Virtual Table ManuallyCreate a virtual table manually when the virtual table structure does not match the structure of an existing data object.The Developer tool sets the data access method for the virtual table to none, which indicates the virtual table is notlinked to a source.

1. Open an SQL data service.

2. In the Overview view Tables section, click the New button.

The New Virtual Table dialog box appears.

3. Enter a name for the virtual table.

4. Enter a virtual schema name or select a virtual schema.

5. Click Finish.

The virtual table appears in the Schema view.

6 Chapter 2: Virtual Data

Page 17: Data Services User Guide

6. To add a column to the virtual table, right-click Columns and click New.

7. To make a column a primary key, click the blank space to the left of the column name.

Defining Relationships between Virtual TablesYou can define primary key-foreign key relationships between virtual tables in an SQL data service to showassociations between columns in the virtual tables.

1. Open an SQL data service.

2. Click the Schema view.

3. Click the column you want to assign as a foreign key in one table. Drag the pointer from the foreign key column tothe primary key column in another table.

The Developer tool uses an arrow to indicate a relationship between the tables. The arrow points to the primarykey table.

Running an SQL Query to Preview DataRun an SQL query against a virtual table to preview the data.

For the query to return results, the virtual table must be linked to source data. Therefore, the virtual table must becreated from a data object or it must be linked to source data in a virtual table mapping.

1. Open an SQL data service.

2. Click the Schema view.

3. Select the virtual table in the Outline view.

The virtual table appears in the Schema view.

4. Click the Data Viewer view.

5. Enter an SQL statement in the Input window.For example:

select * from <schema>.<table>6. Click Run.

The query results appear in the Output window.

Temporary TablesA temporary table is a table created on a relational database connection that you can use to store intermediate,temporary data. Create temporary tables to improve performance.

An administrator must configure the Table Storage Connection in the Data Integration Service properties before youcreate temporary tables. When the connection to the SQL data service is active, you can connect to the SQL dataservice through a JDBC or ODBC client.

Each connection to an SQL data service can create its own set of tables. You can create temporary tables and performoperations on the tables when the connection is active. Temporary tables for all SQL data services in a DataIntegration Service are stored on the same relational database connection. The system assigns table names toprevent conflicts.

Temporary tables exist as long as the connection they were created on is active. Tables are dropped when theconnection is dropped or when the Data Integration Service shuts down. In the event of an unexpected Data

Temporary Tables 7

Page 18: Data Services User Guide

Integration Service failure, or if the relational connection is lost while the Data Integration Service is shutting down, thetables are dropped on the next Data Integration Service startup.

Temporary Table OperationsYou can use SQL operations in a prepared or regular SQL statement with the execute SQL method call to create,populate, select from, or drop a temporary table.

Perform the following temporary table operations:

Create a temporary table.

Use the following syntax to create a temporary table on the relational database:

CREATE TEMPORARY [SCHEMA.]TABLE emp (empID INTEGER PRIMARY KEY,eName char(50) NOT NULL,);

You can specify the table name in the SQL data service.

Create a temporary table from a source table.

You can create a temporary table with or without data from a source table.

Use the following syntax to create a temporary table from a source table on the relational database:

CREATE TEMPORARY [SCHEMA.]TABLE emp.backup as select * from emp [<WITH> [NO] <DATA>]

When you create a temporary table with data, the Data Integration Service populates the table with the data. TheCREATE AS operator copies columns from an existing table into the temporary table. You cannot maintain foreignkey or primary key constraints when you use CREATE AS. You can cancel a request before the Data IntegrationService copies all the data.

Insert data into a temporary table.

Use the INSERT INTO <temp_table> statement to insert data into a temporary table. You can use the statement withthe executeUpdate SQL method call. You can insert literal data and query data into a temporary table.

The following table provides examples of SQL statements that you can use to insert literal data and data from aquery into a temporary table:

Type Description

Literaldata

Literals describe a user or system-supplied string or value that is not an identifier or keyword. Use strings,numbers, dates, or boolean values when you insert literal data into a temporary table. Use the followingstatement format to insert literal data into a temporary table:INSERT INTO TABLE <TABLENAME> <OPTIONAL COLUMN LIST> VALUES (<VALUE LIST>), (<VALUE LIST>)For example, INSERT INTO TABLE temp_dept (dept_id, dept_name, location) VALUES (2,'Marketing', 'Los Angeles').

Querydata

You can query an SQL data service and insert data from the query into a temporary table. Use the followingstatement format to insert query data into a temporary table:INSERT INTO TABLE <TABLENAME> <OPTIONAL COLUMN LIST> <SELECT QUERY>For example, INSERT INTO TABLE temp_dept(dept_id, dept_name, location) SELECT dept_id,dept_name, location from dept where dept_id = 99.You can use a set operator, such as UNION, in the SQL statement when you insert query data into a temporarytable. Use the following statement format when you use a set operator:INSERT INTO TABLE <TABLENAME> <OPTIONAL COLUMN LIST> (<SELECT QUERY> <SET OPERATOR> <SELECT QUERY>)For example, INSERT INTO TABLE temp_dept select * from north_america_dept UNION select * fromasia_dept.

Select from a temporary table.

You can query the temporary table with the SELECT ... from <table> statement.

8 Chapter 2: Virtual Data

Page 19: Data Services User Guide

Drop a temporary table.

Use the following syntax to drop a temporary table from the relational database:

DROP TABLE <tableName>

If the table is not dropped on the physical database, the SQL data service drops the table the next time the DataIntegration Service starts, if the table still exists.

Rules and Guidelines for Temporary TablesConsider the following rules and guidelines when you create a temporary table and run queries against the table:

¨ You can specify schema and default schema for a temporary table.

¨ You can place the primary key, NULL, NOT NULL, and DEFAULT constraints on a temporary table.

¨ You cannot place a foreign key or CHECK and UNIQUE constraints on a temporary table.

¨ You cannot issue a query that contains a common table expression or a correlated subquery against a temporarytable.

¨ CREATE AS statements cannot contain a correlated subquery.

Virtual Table MappingsA virtual table mapping defines the virtual data flow between sources and a virtual table in an SQL data service. Use avirtual table mapping to transform the data.

Create a virtual table mapping to link a virtual table in an SQL data service with source data and to define the rules fordata transformation. When an end user queries the virtual table, the Data Integration Service applies thetransformation rules defined in the virtual table mapping to the source data. It returns the transformed data to the enduser.

If you do not want to transform the data, you do not have to create a virtual table mapping. When an end user queriesthe virtual table, the Data Integration Service retrieves data directly from the data object.

You can create one virtual table mapping for each virtual table in an SQL data service. You can preview virtual tabledata as you create and update the mapping.

A virtual table mapping contains the following components:

¨ Sources. Physical or logical data objects that describe the characteristics of source tables or files. A virtual tablemapping must contain at least one source.

¨ Transformations. Objects that define the rules for data transformation. Use different transformation objects toperform different functions. Transformations are optional in a virtual table mapping.

¨ Virtual table. A virtual table in an SQL data service.

¨ Links. Connections between columns that define virtual data flow between sources, transformations, and thevirtual table.

ExampleYou want to make order information available to one of your customers.

The orders information is stored in a relational database table that contains information for several customers. Thecustomer is not authorized to view the orders information for other customers.

Virtual Table Mappings 9

Page 20: Data Services User Guide

Create an SQL data service to retrieve the orders information. Create a virtual table from the orders table and set thedata access method to custom. Add a Filter transformation to the virtual table mapping to remove orders data for theother customers.

After you create and deploy an application that contains the SQL data service, the customer can query the virtual tablethat contains his orders information.

Defining a Virtual Table MappingTo define a virtual table mapping, create a virtual table mapping, add sources and transformations, and validate themapping.

1. Create a mapping from a virtual table in an SQL data service.

2. Add sources and transformations to the mapping and link columns.

3. Validate the mapping.

4. Optionally, preview the mapping data.

Creating a Virtual Table MappingCreate a virtual table mapping to define the virtual data flow between source data and a virtual table in an SQL dataservice. You can create one virtual table mapping for each virtual table.

1. Open the SQL data service that contains the virtual table for which you want to create a virtual table mapping.

2. Click the Overview view.

3. In the Tables section, change the data access method for the virtual table to Custom.

The New Virtual Table Mapping dialog box appears.

4. Enter a name for the virtual table mapping.

5. Click Finish.

The Developer tool creates a view for the virtual table mapping and places the virtual table in the editor. If youcreated the virtual table from a data object, the Developer tool adds the data object to the mapping as asource.

6. To add sources to the mapping, drag data objects from the Object Explorer view into the editor.

You can add logical or physical data objects as sources.

7. Optionally, add transformations to the mapping by dragging them from the Object Explorer view orTransformation palette into the editor.

8. Link columns by selecting a column in a source or transformation and dragging it to a column in anothertransformation or the virtual table.

The Developer tool uses an arrow to indicate the columns are linked.

Validating a Virtual Table MappingValidate a virtual table mapping to verify that the Data Integration Service can read and process the entire virtual tablemapping.

1. Open an SQL data service.

2. Select the virtual table mapping view.

3. Select Edit > Validate.

10 Chapter 2: Virtual Data

Page 21: Data Services User Guide

The Validation Log view opens. If no errors appear in the view, the virtual table mapping is valid.

4. If the Validation Log view lists errors, correct the errors and revalidate the virtual table mapping.

Previewing Virtual Table Mapping OutputAs you develop a virtual table mapping, preview the output to verify the virtual table mapping produces the results youwant.

The virtual table must be linked to source data.

1. Open the SQL data service that contains the virtual table mapping.

2. Click the virtual table mapping view.

3. Select the object for which you want to preview output. You can select a transformation or the virtual table.

4. Click the Data Viewer view.

5. Click Run.

The Developer tool displays results in the Output section.

Virtual Stored ProceduresA virtual stored procedure is a set of procedural or data flow instructions in an SQL data service. When you deploy anapplication that contains an SQL data service, end users can access and run the virtual stored procedures in the SQLdata service through a JDBC client tool.

Create a virtual stored procedure to allow end users to perform calculations, retrieve data, or write data to a dataobject. End users can send data to and receive data from the virtual stored procedure through input and outputparameters.

Create a virtual stored procedure within a virtual schema in an SQL data service. You can create multiple storedprocedures within a virtual schema.

A virtual stored procedure contains the following components:

¨ Inputs. Objects that pass data into the virtual stored procedure. Inputs can be input parameters, Readtransformations, or physical or logical data objects. Input parameters pass data to the stored procedure. Readtransformations extract data from logical data objects. A virtual stored procedure must contain at least oneinput.

¨ Transformations. Objects that define the rules for data transformation. Use different transformation objects toperform different functions. Transformations are optional in a virtual stored procedure.

¨ Outputs. Objects that pass data out of a virtual stored procedure. Outputs can be output parameters, Writetransformations, or physical or logical data objects. Output parameters receive data from the stored procedure.Write transformations write data to logical data objects. A virtual stored procedure must contain at least one output.Virtual stored procedures do not return result sets.

¨ Links. Connections between ports that define virtual data flow between inputs, transformations, and outputs.

ExampleAn end user needs to update customer email addresses for customer records stored in multiple relationaldatabases.

To allow the end user to update the email addresses, first create a logical data object model to define a unified view ofthe customer. Create a logical data object that represents a union of the relational tables. Create a logical data object

Virtual Stored Procedures 11

Page 22: Data Services User Guide

write mapping to write to the relational tables. Add a Router transformation to determine which relational tablecontains the customer record the end user needs to update.

Next, create an SQL data service. In the SQL data service, create a virtual stored procedure that contains inputparameters for the customer ID and email address. Create a Write transformation based on the logical data object andadd it to the virtual stored procedure as output.

Finally, deploy the SQL data service. The end user can call the virtual stored procedure through a third-party clienttool. The end user passes the customer ID and updated email address to the virtual stored procedure. The virtualstored procedure uses the Write transformation to update the logical data object. The logical data object writemapping determines which relational table to update based on the customer ID and updates the customer emailaddress in the correct table.

Defining a Virtual Stored ProcedureTo define a virtual stored procedure, create a virtual stored procedure, add inputs, transformations, and outputs, andvalidate the stored procedure.

1. Create a virtual stored procedure in an SQL data service.

2. Add inputs, transformations, and outputs to the virtual stored procedure, and link the ports.

3. Validate the virtual stored procedure.

4. Optionally, preview the virtual stored procedure output.

Creating a Virtual Stored ProcedureCreate a virtual stored procedure to allow an end user to access the business logic within the procedure through aJDBC or ODBC client tool. You must create a virtual stored procedure within a virtual schema.

1. In the Object Explorer view or Outline view, right-click an SQL data service and select New > Virtual StoredProcedure.

The New Virtual Stored Procedure dialog box appears.

2. Enter a name for the virtual stored procedure.

3. Enter a virtual schema name or select a virtual schema.

4. If the virtual stored procedure has input parameters or output parameters, select the appropriate option.

5. Click Finish.

The Developer tool creates an editor for the virtual stored procedure. If you select input parameters or outputparameters, the Developer tool adds an Input Parameter transformation or an Output Parameter transformation,or both, in the editor.

6. Add input parameters or sources to the virtual stored procedure.

7. Add output parameters or targets to the virtual stored procedure.

8. Optionally, add transformations to the virtual stored procedure by dragging them from the Object Explorer viewor the Transformation palette into the editor.

9. Link ports by selecting a port in a source or transformation and dragging it to a port in another transformation ortarget.

The Developer tool uses an arrow to indicate the ports are linked.

12 Chapter 2: Virtual Data

Page 23: Data Services User Guide

Validating a Virtual Stored ProcedureValidate a virtual stored procedure to verify that the Data Integration Service can read and process the virtual storedprocedure.

1. Open a virtual stored procedure.

2. Select Edit > Validate.

The Validation Log view opens. If no errors appear in the view, the virtual stored procedure is valid.

3. If the Validation Log view lists errors, correct the errors and revalidate the virtual stored procedure.

Previewing Virtual Stored Procedure OutputAs you develop a virtual stored procedure, preview the output to verify that the virtual stored procedure produces theresults you want.

The virtual stored procedure must contain at least one input parameter or source.

1. Open a virtual stored procedure.

2. Select the Data Viewer view.

3. If the virtual stored procedure contains input parameters, enter them in the Input section.

4. Click Run.

The Developer tool displays results in the Output section.

SQL Query PlansAn SQL query plan enables you to view a mapping-like representation of the SQL query you enter when you previewvirtual table data.

When you view the SQL query plan for a query, the Developer tool displays a graphical representation of the querythat looks like a mapping. The graphical representation has a source, transformations, links, and a target.

The Developer tool allows you to view the graphical representation of your original query and the graphicalrepresentation of the optimized query. The optimized query view contains different transformations or transformationsthat appear in a different order than the transformations in the original query. The optimized query produces the sameresults as the original query, but usually runs more quickly.

View the query plan to troubleshoot queries end users run against a deployed SQL data service. You can also use thequery plan to help you troubleshoot your own queries and understand the log messages.

The Developer tool uses optimizer levels to produce the optimized query. Different optimizer levels might producedifferent optimized queries, based on the complexity of the query. For example, if you enter a simple SELECTstatement, for example, "SELECT * FROM <schema.table>," against a virtual table in an SQL data service without auser-generated virtual table mapping, the Developer tool might produce the same optimized query for each optimizerlevel. However, if you enter a query with many clauses and subqueries, or if the virtual table mapping is complex, theDeveloper tool produces a different optimized query for each optimizer level.

SQL Query Plan ExampleWhen you view the SQL query plan for a query that you enter in the Data Viewer view, you can view the original queryand the optimized query. The optimized query is the query that the Data Integration Service runs.

SQL Query Plans 13

Page 24: Data Services User Guide

For example, you want to query the CUSTOMERS virtual table in an SQL data service. The SQL data service does notcontain a user-generated virtual table mapping. In the Data Viewer view, you choose the default data viewerconfiguration settings, which sets the optimizer level for the query to normal.

You enter the following query in the Data Viewer view:

select * from CUSTOMERS where CUSTOMER_ID > 150000 order by LAST_NAME

The following figure shows the SQL query plan that appears in the Data Viewer view:

The non-optimized view displays the query plan as you enter it. The Developer tool displays the WHERE clause as aFilter transformation and the ORDER BY clause as a Sorter transformation. The Developer tool uses the pass-throughExpression transformation to rename ports.

The following figure shows the SQL query plan that appears in the Data Viewer view:

The optimized view displays the query plan as the Data Integration Service runs it. Because the optimizer level isnormal, the Data Integration Service pushes the filter condition to the source data object. Pushing the filter conditionimproves query performance because it reduces the number of rows that the Data Integration Service reads from thesource data object.

As in the non-optimized query, the Developer tool displays the ORDER BY clause as a Sorter transformation. It usespass-through Expression transformations to enforce the data types that you configure in the logicaltransformations.

Viewing an SQL Query PlanDisplay the SQL query plan to view a mapping-like representation of the SQL query you enter when you preview virtualtable data.

1. Open an SQL data service that contains at least one virtual table.

2. Click the Data Viewer view.

3. Enter an SQL query in the Input window.

4. Optionally, select a data viewer configuration that contains the optimizer level you want to apply to the query.

5. Click Show Query Plan.

The Developer tool displays the SQL query plan for the query as you entered it on the Non-Optimized tab.

6. To view the optimized query, click the Optimized tab.

The Developer tool displays the optimized SQL query plan.

14 Chapter 2: Virtual Data

Page 25: Data Services User Guide

C H A P T E R 3

SQL Data Service QueriesThis chapter includes the following topics:

¨ SQL Data Service Queries Overview, 15

¨ Datatypes, 16

¨ Operators, 16

¨ Functions, 16

¨ SQL Statements and Keywords, 24

¨ Queries, 24

¨ Reserved Words, 27

¨ Escape Syntax, 27

¨ Troubleshooting SQL Data Services, 29

SQL Data Service Queries OverviewAn SQL data service is a virtual database you can query. It provides a uniform view of data that might be scatteredamong disparate, heterogeneous data sources. You can run SQL queries when you preview virtual table data inDeveloper tool. You can also use a JDBC or ODBC client tool to run SQL queries against the virtual tables in an SQLdata service.

An SQL data service can contain the following objects:

¨ Virtual schemas that define the database structure

¨ Virtual tables

¨ Virtual table mappings that define the flow of data between sources and a virtual table

¨ Virtual stored procedures that take optional inputs through parameters, transform the data, and optionally returnoutput through parameters

To allow end users to query the virtual tables and run the virtual stored procedures in an SQL data service, a developercreates and deploys an application that contains the SQL data service. The developer deploys the application to aData Integration Service and an administrator runs the application. When the application is running, end users canmake SQL queries against the virtual tables and run the virtual stored procedures in the SQL data service.

SQL data services support common SQL operators, functions, statements, and keywords.

15

Page 26: Data Services User Guide

DatatypesSQL data services support common SQL datatypes.

SQL data services support the following SQL 99 datatypes:

¨ Bigint

¨ Binary

¨ Boolean

¨ Char

¨ Date

¨ Decimal

¨ Double

¨ Int

¨ Time

¨ Timestamp

¨ Varchar

OperatorsSQL data services support common operators. Use operators to perform mathematical computations, combine data,or compare data.

SQL data services support the following operators in an SQL query:

¨ Arithmetic operators: (), unary + and -, *, /, +, -

¨ Comparison operators: =, !=, <>, <, <=, >, >=

¨ Logical operators: AND, NOT, OR

¨ || (concatenate strings)

¨ BETWEEN

¨ CASE

¨ EXISTS

¨ IN, NOT IN

¨ IS NULL, IS NOT NULL

¨ LIKE, NOT LIKE

FunctionsYou can use SQL and Informatica functions to run queries against an SQL data service.

Some functions are SQL and Informatica equivalents, such as the ABS function. Some functions are unique to ANSISQL or to Informatica.

16 Chapter 3: SQL Data Service Queries

Page 27: Data Services User Guide

Note: You cannot use filter conditions with Informatica functions in the SQL.

The following table provides the syntax and functions that you can use to query an SQL data service:

Function Syntax Description

ABS ABS( numeric_value ) Returns the absolute value of a numeric value.Informatica and SQL function.

ADD_TO_DATE ADD_TO_DATE( date, format, amount ) Adds a specified amount to one part of a datetime value, and

returns a date in the same format as the date you pass to thefunction.Informatica and SQL function.

ASCII ASCII ( string ) Returns the numeric ASCII or Unicode value of the firstcharacter of the string passed to the function.Informatica and SQL function.

AVG AVG( numeric_value ) Returns the average of all values in a group of rows.SQL function.

CASE(Simple)

CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END

Compares an expression to a set of simple expressions andreturns a result associated with the first matching value.SQL function.

CASE(Searched)

CASE WHEN Boolean_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END

Evaluates a set of Boolean expressions and returns the firsttrue result.SQL function.

CEIL CEIL( numeric_value ) Returns the smallest integer greater than or equal to thenumeric value passed to this function.Informatica and SQL function.

CHAR_LENGTH CHAR_LENGTH( numeric_value ) Returns the number of characters in a string, including trailingblanks.SQL function.

CHR CHR( numeric_value ) Returns the ASCII or Unicode character that corresponds tothe numeric value you pass to this function.Informatica and SQL function.

CHRCODE CHRCODE ( string ) Returns the numeric ASCII or Unicode value of the firstcharacter of the string passed to the function.SQL function.

COALESCE COALESCE ( first_argument, second_argument[, third_argument, ...] )

Returns the first non-NULL argument from a list of arguments.If all arguments are NULL, COALESCE returns NULL.SQL function.

CONCAT CONCAT( first_string, second_string ) Concatenates two strings.

Informatica and SQL function.

Functions 17

Page 28: Data Services User Guide

Function Syntax Description

CONVERT_BASE CONVERT_BASE( string, source_base, dest_base ) Converts a non-negative numeric string from one base value

to another base value.Informatica and SQL function.

COS COS( numeric_value ) Returns the cosine, expressed in radians, of a numericvalue.Informatica and SQL function.

COSH COSH( numeric_value ) Returns the hyperbolic cosine, expressed in radians, of anumeric value.Informatica and SQL function.

COUNT COUNT( value ) Returns the number of rows that have non-null values in agroup. Optionally, you can include the asterisk (*) argument tocount all input values in a transformation.SQL function.

CRC32 CRC32( value ) Returns a 32-bit Cyclic Redundancy Check (CRC32) value.Informatica and SQL function.

CUME CUME( numeric_value ) Returns a running total. A running total means CUME returns atotal each time it adds a value.SQL function.

CURRENT_DATE CURRENT_DATE Returns the current date on the node hosting the DataIntegration Service. The format of the returned value dependson the locale of the client machine.The returned value does not change if this function is executedmore than once in a statement.SQL function.

CURRENT_TIME CURRENT_TIME Returns the current time on the node hosting the DataIntegration Service. The format of the returned value dependson the locale of the client machine.The returned value does not change if this function is executedmore than once in a statement.SQL function.

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP Returns the current date and time on the node hosting the DataIntegration Service. The format of the returned value dependson the locale of the client machine.The returned value does not change if this function is executedmore than once in a statement.SQL function.

DATE_COMPARE DATE_COMPARE( date1, date2 ) Returns an integer that indicates which of two dates isearlier:- -1 if the first date is earlier- 0 if the two dates are equal- 1 if the second date is earlier- NULL if one of the date values is NULLInformatica and SQL function.

18 Chapter 3: SQL Data Service Queries

Page 29: Data Services User Guide

Function Syntax Description

DATE_DIFF DATE_DIFF( date1, date2, format ) Returns the length of time between two dates.

Informatica and SQL function.

EXP EXP( exponent ) Returns e raised to the specified power (exponent), wheree=2.71828183.Informatica and SQL function.

EXTRACT EXTRACT( YEAR|MONTH|DAY|HOUR|MINUTE|SECOND FROM date ) Extracts the specified part of a date as an integer value.

Therefore, if you create an expression that returns the dayportion of the date, and pass a date such as Apr 15 2007 00:00:00, EXTRACT returns 15.SQL function.

FLOOR FLOOR( numeric_value ) Returns the largest integer less than or equal to the numericvalue you pass to this function.Informatica and SQL function.

FV FV( rate, terms, payment [, present value, type] ) Returns the future value of an investment, where you make

periodic, constant payments, and the investment earns aconstant interest rate.Informatica and SQL function.

GET_DATE_PART GET_DATE_PART( date, format ) Returns the specified part of a date as an integer value.Therefore, if you create an expression that returns the monthportion of the date, and pass a date such as Apr 1 1997 00:00:00, GET_DATE_PART returns 4.Informatica and SQL function.

INITCAP INITCAP( string ) Capitalizes the first letter in each word of a string and convertsall other letters to lowercase.Informatica and SQL function.

INSTR INSTR( string, search_value [,start [,occurrence [,comparison_type ]]] )

Returns the position of a character set in a string, countingfrom left to right.Informatica and SQL function.

IS_DATE IS_DATE( value [,format] ) Returns whether a string value is a valid date.Informatica and SQL function.

IS_NUMBER IS_NUMBER( value ) Returns whether a string is a valid number.Informatica function.

IS_SPACES IS_SPACES( value ) Returns whether a string value consists entirely of spaces. Aspace is a blank space, a formfeed, a newline, a carriagereturn, a tab, or a vertical tab.Informatica function.

ISNULL ISNULL(value) Returns whether a value is NULL. Evaluates an empty stringas FALSE.Informatica and SQL function.

ISNUMERIC ISNUMERIC( value ) Returns whether a string is a valid number.SQL function.

Functions 19

Page 30: Data Services User Guide

Function Syntax Description

LAST_DAY LAST_DAY( date ) Returns the date of the last day of the month for each date in acolumn.Informatica and SQL function.

LN LN( numeric_value ) Returns the natural logarithm of a numeric value.Informatica and SQL function.

LOCATE LOCATE( string, search_value ) Returns the position of a character set from the beginning of astring.SQL function.

LOG LOG( base, exponent ) Returns the logarithm of a numeric value.Informatica and SQL function.

LOWER LOWER( string ) Converts uppercase string characters to lowercase.Informatica and SQL function.

LPAD LPAD( first_string, length [,second_string] ) Adds a set of blanks or characters to the beginning of a string

to set the string to a specified length.Informatica and SQL function.

LTRIM LTRIM( string [, trim_set] ) Removes blanks or characters from the beginning of a string.Informatica and SQL function.

MAKE_DATE_TIME MAKE_DATE_TIME( year, month, day, hour, minute, second, nanosecond )

Returns the date and time based on the input values.Informatica and SQL function.

MAX MAX( value ) Returns the latest date, maximum numeric value, or higheststring value found within a column or group.SQL function.

MD5 MD5( value ) Calculates the checksum of the input value.Informatica and SQL function.

METAPHONE METAPHONE( string [,length] ) Encodes string values. You can specify the length of the stringthat you want to encode.Informatica and SQL function.

MIN MIN( value ) Returns the earliest date, minimum numeric value, or loweststring value found within a column or group.SQL function.

MOD MOD( numeric_value, divisor ) Returns the remainder of a division calculation.Informatica and SQL function.

MOVINGAVG MOVINGAVG( numeric_value, rowset ) Returns the row-by-row average of a specified set of rows.

Informatica function.

MOVINGSUM MOVINGSUM( numeric_value, rowset ) Returns the row-by-row sum of a specified set of rows.

Informatica function.

20 Chapter 3: SQL Data Service Queries

Page 31: Data Services User Guide

Function Syntax Description

NPER NPER( rate, present value, payment [, future value, type] )

Returns the number of periods for an investment based on aconstant interest rate and periodic, constant payments.Informatica and SQL function.

PMT PMT( rate, terms, present value [, future value, type] ) Returns the payment for a loan based on constant payments

and a constant interest rate.Informatica and SQL function.

POSITION POSITION( search_value, string )orPOSITION( search_value IN string )

Returns the position of a character set from the beginning of astring.SQL function.

POWER POWER( base, exponent ) Returns a value raised to the exponent you pass to thefunction.Informatica and SQL function.

PV PV( rate, terms, payment [, future value, type] ) Returns the present value of an investment.

Informatica and SQL function.

RAND RAND( seed ) Returns a random number between 0 and 1. For the sameseed, the Data Integration Service generates the samesequence of numbers.Informatica and SQL function.

RATE RATE( terms, payment, present value[, future value, type] ) Returns the interest rate earned per period by a security.

Returns NULL if present value is greater than the product ofterms and payment.Informatica and SQL function.

REG_EXTRACT REG_EXTRACT( subject,'pattern', subPatternNum )

Extracts subpatterns of a regular expression within an inputvalue. For example, from a regular expression pattern for a fullname, you can extract the first name or last name.Informatica function.

REG_MATCH REG_MATCH( subject, pattern ) Returns whether a value matches a regular expression patternto validate data patterns, such as IDs, telephone numbers,postal codes, and state names.Informatica function.

REG_REPLACE REG_REPLACE( subject, pattern,replace, numReplacements )

Replaces characters in a string with another character pattern.Searches the input string for the character pattern you specifyand replaces all occurrences with the replacement pattern.You can also indicate the number of occurrences of the patternyou want to replace in the string.Informatica function.

REPLACECHR REPLACECHR( CaseFlag, InputString, OldCharSet, NewChar )

Replaces characters in a string with a single character or nocharacter.Informatica and SQL function.

ROUND (dates) ROUND( date [,format] ) Rounds one part of a date.Informatica and SQL function.

Functions 21

Page 32: Data Services User Guide

Function Syntax Description

ROUND (numbers) ROUND( numeric_value [, precision] ) Rounds numbers to a specified number of digits or decimal

places.Informatica and SQL function.

RPAD RPAD( first_string, length[,second_string] )

Converts a string to a specified length by adding blanks orcharacters to the end of the string.Informatica function.

RTRIM RTRIM( string [, trim_set] ) Removes blanks or characters from the end of a string.Informatica and SQL function.

SET_DATE_PART SET_DATE_PART( date, format, value ) Sets one part of a Date/Time value to a value you specify.

Informatica and SQL function.

SIGN SIGN( numeric_value ) Returns whether a numeric value is positive, negative, or 0.Informatica and SQL function.

SIN SIN( numeric_value ) Returns the sine, expressed in radians, of a numeric value.Informatica and SQL function.

SINH SINH( numeric_value ) Returns the hyperbolic sine, expressed in radians, of anumeric value.Informatica and SQL function.

SOUNDEX SOUNDEX( string ) Encodes a string value into a four-character string. It uses thefirst character of the input string as the first character in thereturn value and encodes the remaining three uniqueconsonants as numbers:- B, F, P, V = 1- C, G, J, K, Q, S, X, Z = 2- D, T = 3- L = 4- M, N = 5- R = 6Informatica and SQL function.

SQRT SQRT( numeric_value ) Returns the square root of a non-negative numeric value.Informatica and SQL function.

SUBSTR SUBSTR( string, start [,length] ) Returns a portion of a string. Counts all characters, including

blanks.Informatica and SQL function.

SUM SUM( numeric_value ) Returns the sum of all values in the selected column.SQL function.

TAN TAN( numeric_value ) Returns the tangent, expressed in radians, of a numericvalue.Informatica and SQL function.

TANH TANH( numeric_value ) Returns the hyperbolic tangent, expressed in radians, of anumeric value.Informatica and SQL function.

22 Chapter 3: SQL Data Service Queries

Page 33: Data Services User Guide

Function Syntax Description

TO_BIGINT TO_BIGINT( value [, flag] ) Converts a string or numeric value to a bigint value. The flagtruncates the decimal portion if true or nonzero. It rounds thedecimal portion if false or 0.Informatica and SQL function.

TO_CHAR TO_CHAR( value ) Converts numeric values or dates to text strings.Informatica and SQL function.

TO_DATE TO_DATE( string [, format] ) Converts a character string to a Date/Time datatype.Informatica and SQL function.

TO_DECIMAL TO_DECIMAL( value [, scale] ) Converts a string or numeric value to a decimal value.Informatica and SQL function.

TO_FLOAT TO_FLOAT( value ) Converts a string or numeric value to a double-precisionfloating point number (the Double datatype).Informatica and SQL function.

TO_INTEGER TO_INTEGER( value [, flag] ) Converts a string or numeric value to an integer. The flagtruncates the decimal portion if true or nonzero. It rounds thedecimal portion if false or 0.Informatica and SQL function.

TRIM TRIM( [operand] string ) Removes leading characters, trailing characters, or both froma string.Operands are as follows:- LEADING [ trim_character FROM ]- TRAILING [ trim_character FROM ]- BOTH [ trim_character FROM ]The trim_character argument passes the character you wantto remove. Enclose the trim character in single quotes. If youomit the trim character, TRIM removes spaces.For example, TRIM( ' Mary ' ) returns Mary (no spaces). TRIM(BOTH '*' FROM '**Mary*' ) returns Mary.SQL function.

TRUNC (dates) TRUNC( date [,format] ) Truncates dates to a specific year, month, day, hour, minute,second, millisecond, or microsecond.Informatica and SQL function.

TRUNC (numbers) TRUNC( numeric_value [, precision] ) Truncates numbers to a specific digit.

Informatica and SQL function.

UPPER UPPER( string ) Converts lowercase string characters to uppercase.Informatica and SQL function.

Functions 23

Page 34: Data Services User Guide

SQL Statements and KeywordsSQL data services support common SQL statements and keywords. Use SQL statements and keywords to define SQLqueries and run virtual stored procedures.

To query the virtual tables in an SQL data service, use the SQL SELECT statement.

To run the virtual stored procedures in an SQL data service, use the SQL CALL (PROCEDURE) statement. Thesyntax is as follows:

CALL proc_name( [parameter_1] [, parameter_n] )

You can use the following clauses in an SQL query:

¨ FROM

¨ GROUP BY

¨ HAVING

¨ ORDER BY

¨ WHERE

You can use the following SQL keywords in an SQL query:

¨ ALL

¨ CROSS JOIN

¨ DISTINCT

¨ EXCEPT

¨ FULL OUTER JOIN

¨ INNER JOIN

¨ INTERSECT

¨ LEFT OUTER JOIN

¨ MINUS

¨ RIGHT OUTER JOIN

¨ UNION, UNION ALL

QueriesYou can issue non-correlated subqueries, correlated subqueries, and parameterized queries when you query virtualtables and run virtual stored procedures in an SQL data service.

Non-Correlated SubqueriesA non-correlated subquery is a subquery that is not dependent on the outer query. Use non-correlated subqueries tofilter or modify data when you query virtual tables in an SQL data service.

You can use non-correlated subqueries in the following places:

¨ Expressions

¨ BETWEEN operator

24 Chapter 3: SQL Data Service Queries

Page 35: Data Services User Guide

¨ CASE operator

¨ FROM clause

¨ HAVING clause

¨ IN, NOT IN operators

¨ SELECT statement

¨ WHERE clause

You can use scalar non-correlated subqueries.

You can use non-correlated subqueries as SET operands.

Correlated SubqueriesA correlated subquery is a subquery that uses values from the outer query in its WHERE clause. The subquery isevaluated once for each row processed by the outer query. Use correlated subqueries to filter or modify data when youquery virtual tables in an SQL data service.

You can issue a correlated subquery from an ODBC client, JDBC client, or from the query plan window in theDeveloper tool.

The following table provides examples of the types of correlated subqueries that you can issue against an SQL dataservice:

Type Description

BETWEEN A subquery that contains the BETWEEN keyword within an SQL WHERE clause to select a range of data between twovalues.For example, SELECT sum(l_extendedprice*l_discount) AS revenue FROM vs.lineitem m WHERE IN(SELECT 1 from vs.lineitem s WHERE s.l_orderkey = m.l_orderkey AND s.l_partkey = m.l_partkeyand s.l_suppkey = m.l_suppkey AND l_quantity &lt; 24 AND s.l_discount BETWEEN 0.05 - 0.01 AND0.05 + 0.01).

IN A subquery that contains the IN or NOT IN keyword within an SQL WHERE clause to select rows when a value is in ornot in the values returned by the subquery.For example, SELECT * FROM vs.nation a WHERE a.n_regionkey IN (SELECT distinct b.r_regionkeyFROM vs.region b WHERE b.r_regionkey = a.n_regionkey).

Quantifiedcomparison

A subquery that contains a comparison operator within an SQL WHERE clause.For example, SELECT n_name FROM vs.nation a WHERE 2 > (SELECT 1 FROM vs.nation b WHEREa.n_nationkey=b.n_nationkey).

Correlated Subquery RequirementsA correlated subquery issued in a query against an SQL data service must be flattened into a normal join by the DataIntegration Service. When a subquery is flattened, it is moved from its nested position and is joined to the outer queryusing a normal join. If the Data Integration Service cannot flatten a query into a normal join, you will receive a systemerror.

Queries 25

Page 36: Data Services User Guide

The following table shows the results of a query that the Data Integration Service flattened:

Type Query

Non-flattened SELECT huge.* FROM huge WHERE c1 IN (SELECT c1 FROM tiny)

Flattened SELECT huge.* FROM huge, tiny WHERE huge.c1 = tiny.c1

The Data Integration Service can flatten a query into a normal join when the subquery meets the followingrequirements:

¨ The subquery is not within an OR operator.

¨ The subquery does not have the EXIST or NOT IN logical operators.

¨ The subquery type is IN or it is an expression subquery on the right side of a comparison operator.

¨ The subquery is not in the SELECT list of the outer query block.

¨ There are no aggregates in the SELECT list of the subquery.

¨ The subquery does not have a GROUP BY clause.

¨ There is a uniqueness condition that ensures that the subquery does not introduce any duplicates if it is flattenedinto the outer query block.

¨ Each table in the subquery FROM list, after any view, derived table, or subquery flattening, must be a basetable.

¨ If there is a WHERE clause in the subquery, there is at least one table in the subquery with columns that are inequality predicates with expressions. Do not include column references from the subquery block in theexpressions. These columns must be a superset of the key columns for any unique index on the table. For all othertables in the subquery, the columns in equality predicates with expressions that do not include columns from thesame table are a superset of the unique columns for any unique index on the table. For example, SELECT * FROMvs.nation WHERE n_regionkey IN (SELECT b.r_regionkey FROM vs.region b WHERE b.r_regionkey = n_regionkey).

Parameterized QueriesA parameterized query uses a precompiled SQL statement with placeholders for values that change. Parameterizedqueries can improve processing efficiency and protect the database from SQL injection attacks. You can use preparedstatements and call stored procedures in a parameterized query that you run against an SQL data service.

Define parameters in the PreparedStatement or CallableStatement object in a JDBC program or in a statement handleprepared by SQLPrepare for an ODBC program. Use the PreparedStatement object to store a precompiled SQLstatement that you can run multiple times. Use the CallableStatement object to call stored procedures.

You can use standard method calls and set methods in the PreparedStatement object of the parameterized query.

An SQL data service accepts common datatypes when you configure default values for parameters in storedprocedures. The date, time, and timestamp datatypes default to the ISO format.

You cannot use the following items in a parameterized query that you run against an SQL data service:

¨ addBatch() and executeBatch() prepared statement method calls

¨ Set methods as of JDBC 6.0

¨ DDL and DML statements that return update counts

¨ Stored procedures that return values

¨ Array datatype

26 Chapter 3: SQL Data Service Queries

Page 37: Data Services User Guide

Reserved WordsSome keywords are reserved for specific functions.

The following words are reserved words:

¨ All transformation language reserved words

¨ All SQL 92-99 keywords

To use reserved words in an SQL query, enclose the word in double quotation marks.

Escape SyntaxSQL data services support escape clauses for functions, date formats, time formats, and timestamp formats.

An escape clause contains a keyword enclosed in curly brackets.

The following table lists the keywords you can use in an escape clause:

Category Keyword Syntax

Functions fn {fn function_name( arguments )}For example:SELECT {fn SUBSTRING( EmpName, 1, 2 )} from Emp

Date formats d {d 'value'}The format for the date value must match the SQL data service default date format.Therefore, if the default date format for the SQL data service is YYYY-MM-DD, the datevalue must include a 4-digit year.For example:SELECT * FROM Orders WHERE OrderDate > {d '2005-01-01'}

Time formats t {t 'value'}The format for the time value must match the SQL data service default time format.Therefore, if the default time format for the SQL data service is HH:MI:SS, the time valuecannot include fractional seconds.For example:SELECT * FROM Orders WHERE OrderTime < {t '12:00:00'}

Timestamp formats ts {ts 'value'}The format for the timestamp value must match the SQL data service default timestampformat. Therefore, if the default timestamp format for the SQL data service is YYYY-MM-DD HH:MI:SS, the timestamp value cannot include fractional seconds.For example:SELECT * FROM Sales WHERE TransactTime > {ts '2010-01-15 12:00:00'}

Escape Syntax for the fn KeywordSQL data services support certain functions when you use a function escape sequence.

Reserved Words 27

Page 38: Data Services User Guide

The following table lists the functions that SQL data services support when you use a function escape sequence:

Function Syntax Description

CURTIMESTAMP CURTIMESTAMP() Returns the current date and time on the node hosting the DataIntegration Service. The returned value does not change if it isexecuted more than once in a single statement.

EXP EXP( exponent ) Returns e raised to the specified power (exponent), where e=2.71828183.

EXTRACT EXTRACT( YEAR|MONTH|DAY|HOUR|MINUTE|SECOND FROM date ) Extracts the specified part of a date as an integer value.

Therefore, if you create an expression that returns the dayportion of the date, and pass a date such as Apr 15 2007 00:00:00, EXTRACT returns 15.

FLOOR FLOOR( numeric_value ) Returns the largest integer less than or equal to the numericvalue you pass to this function.

LCASE LCASE( string ) Converts uppercase string characters to lowercase.

LENGTH LENGTH( string ) Returns the number of characters in a string, including trailingblanks.

LOCATE LOCATE( string, search_value ) Returns the position of a character set from the beginning of astring.

LOG LOG( numeric_value ) Returns the base-10 logarithm of a numeric value.

LTRIM LTRIM( string ) Removes blanks from the beginning of a string .

MOD MOD( numeric_value, divisor ) Returns the remainder of a division calculation.

POWER POWER( base, exponent ) Returns a value raised to the exponent you pass to thefunction.

RTRIM RTRIM( string ) Removes blanks from the end of a string .

SIN SIN( numeric_value ) Returns the sine, expressed in radians, of a numeric value.

SINH SINH( numeric_value ) Returns the hyperbolic sine, expressed in radians, of a numericvalue.

SQRT SQRT( numeric_value ) Returns the square root of a non-negative numeric value.

SUBSTRING SUBSTRING( string, start [,length] ) Returns a portion of a string. Counts all characters, including

blanks.

TAN TAN( numeric_value ) Returns the tangent, expressed in radians, of a numeric value.

TANH TANH( numeric_value ) Returns the hyperbolic tangent, expressed in radians, of anumeric value.

TRIM TRIM( [operand] string ) Removes leading characters, trailing characters, or both from astring.

28 Chapter 3: SQL Data Service Queries

Page 39: Data Services User Guide

Function Syntax Description

Operands are as follows:- LEADING [ trim_character FROM ]- TRAILING [ trim_character FROM ]- BOTH [ trim_character FROM ]The trim_character argument passes the character you want toremove. Enclose the trim character in single quotes. If you omitthe trim character, TRIM removes spaces.For example, TRIM( ' Mary ' ) returns Mary (no spaces).TRIM( BOTH '*' FROM '**Mary*' ) returns Mary.

UCASE UCASE( string ) Converts lowercase string characters to uppercase.

Troubleshooting SQL Data ServicesThe solutions to the following situations might help you troubleshoot SQL data services.

When I use special characters in a query against a virtual table in an SQL data service, the query fails.

If the name of a virtual table or a column contains special characters, you must enclose the name in doublequotes. For example, an SQL data service contains a virtual table named "@Customers." To return all rows fromthe table, enter the following query:

SELECT * FROM "@Customers"

When I use the CONVERT_BASE function to convert a negative number in an SQL query, the query fails.

The CONVERT_BASE function converts non-negative numeric strings. To convert binary data with negativevalues, you can enter the following query:

CONVERT_BASE(TO_CHAR(X-ABS(value)), source_base, dest_base) )

X represents the destination base raised to the number of bits.

For example, the following query uses 2^16=65536 and calculates the negative integers for binary data with 16bits:

CONVERT_BASE(TO_CHAR(65536-ABS(NEWFIELD)), 10, 2) )

I entered an SQL query that converts a large number to a binary value using the CONVERT_BASE function, and the result istruncated.

Use the CAST() function when converting large numbers to binary. For example, the following CONVERT_BASEquery converts 2222 from base 10 to base 2:

CAST(CONVERT_BASE( 2222, 10, 2 ) AS VARCHAR(100))

I entered an SQL query that converts a large number to a binary value using the CONVERT_BASE function, and the result istruncated.

Use the CAST() function when converting large numbers to binary. For example, the following CONVERT_BASEquery converts 2222 from base 10 to base 2:

CAST(CONVERT_BASE( 2222, 10, 2 ) AS VARCHAR(100))

Troubleshooting SQL Data Services 29

Page 40: Data Services User Guide

When I use the TO_DECIMAL function to convert a string or numeric value to a decimal value, the query fails with a decimal overflowerror, or the query returns an unexpected decimal value.

Use the CAST() function to modify the SQL statement when you use the TO_DECIMAL function in an SQL query.For example, the following TO_DECIMAL query uses the CAST function to return the decimal value 60.250:

CAST(TO_DECIMAL((60 + .25, 3))

30 Chapter 3: SQL Data Service Queries

Page 41: Data Services User Guide

C H A P T E R 4

SQL Data Service ConnectionsThis chapter includes the following topic:

¨ SQL Data Service Connections Overview, 31

SQL Data Service Connections OverviewAn SQL data service is a virtual database that you can query. It provides a uniform view of data that might be scatteredamong disparate, heterogeneous data sources. You can use a third-party JDBC or ODBC client tool to run SQLqueries against the virtual tables in an SQL data service and to run virtual stored procedures.

An SQL data service can contain the following objects:

¨ Virtual schemas that define the database structure

¨ Virtual tables

¨ Virtual table mappings that define the flow of data between sources and a virtual table

¨ Virtual stored procedures that take optional inputs through parameters, transform the data, and optionally returnoutput through parameters

To make the virtual tables and virtual stored procedures available to you, a developer creates and deploys anapplication that contains the SQL data service. The developer deploys the application to a Data Integration Serviceand an administrator runs the application. When the application is running, you can query the virtual tables and run thevirtual stored procedures in the SQL data service.

When you query a virtual table or run a virtual stored procedure, the JDBC or ODBC driver sends the request to theData Integration Service. By default, the driver uses HTTP to communicate with the Data Integration Service. If anadministrator enables Transport Layer Security (TLS) for the domain, the driver uses TLS to communicate with theData Integration Service.

Before you can run SQL queries or virtual stored procedures for the first time, you must configure the machine fromwhich you want to access the SQL data service. You must also configure the client tool so that it can connect to theSQL data service.

31

Page 42: Data Services User Guide

C H A P T E R 5

Client Machine ConfigurationThis chapter includes the following topics:

¨ Client Machine Configuration Overview, 32

¨ JDBC Client Connections, 33

¨ ODBC Client Connections on Windows, 34

¨ ODBC Client Connections on UNIX, 38

Client Machine Configuration OverviewBefore you can connect to an SQL data service through a third-party client tool, you must configure the machine thatyou want to connect from. You configure the machine differently based on whether you connect through a JDBC orODBC client tool.

Before you can configure the JDBC or ODBC client machine, you must get domain information from the Informaticaadministrator. If the Informatica administrator enables result set caching for the SQL data service, you must alsodecide if you want the ability to cache the results or retrieve results from the cache.

Client Machine Configuration RequirementsThe domain information is required to construct the JDBC URL or ODBC connection string for the client tool.

The following table describes the domain information required to configure the JDBC or ODBC connection on theclient machine:

Required Information Description

Data Integration Service name Data Integration Service where the application that contains the SQL data service runs.

Domain host name Machine that hosts the Informatica domain.

Domain HTTP port Informatica domain HTTP port number.

Runtime SQL data service name SQL data service that contains the virtual tables you want to query or the virtual storedprocedures you want to run.By default, the runtime SQL data service name is:<application name>.<SQL data service name>where <application name> is the name of the application that contains the SQL dataservice.

32

Page 43: Data Services User Guide

Required Information Description

Security domain name Informatica security domain name. Required if the security domain is not native.

User name Informatica domain user name. Required if you cannot enter this information in the JDBC orODBC client tool.

User password Informatica domain user password. Required if you cannot enter this information in the JDBCor ODBC client tool.

Result Set CachingResult set caching enables the Data Integration Service to use cached results for SQL data service queries and webservice requests. You can disable result set caching for an SQL data service query when the SQL data service isconfigured to cache the result set.

Users that run identical queries in a short period of time may want to use result set caching to decrease the runtime ofidentical queries.

When you disable result set caching, the Data Integration Service does not cache the results of the query and it will notuse the result set cache to return the query results. To disable result set caching for all SQL queries, append thefollowing to the end of the JDBC URL or ODBC connection string:&SQLDataServiceOptions.disableResultSetCache=true

JDBC Client ConnectionsYou can connect to an SQL data service through a JDBC client tool such as the SQL SQuirreL Client.

Before you can connect to an SQL data service through a JDBC client tool, you must perform the following tasks:

1. Install the Informatica JDBC driver.

2. Update the CLASSPATH environment variable.

Note: The Informatica JDBC driver does not support the setBigInt method. If you use setBigInt in a parameterizedquery, the Java client code fails at compilation. If you need to bind data to a bigint column, use the setLongmethod.

Installing the Informatica JDBC DriverInstall the Informatica JDBC driver on the machine you connect to the SQL data service from. To install the driver, runthe Informatica JDBC/ODBC driver installation program.

The Informatica JDBC driver version must match the Data Integration Service version. For example, version 9.5.0 ofthe Informatica JDBC driver is not compatible with version 9.1.0 of the Data Integration Service. Similarly, version 9.1.0 of the Informatica JDBC driver is not compatible with version 9.5.0 of the Data Integration Service.

Updating the CLASSPATHUpdate the CLASSPATH environment variable to include the JDBC driver. The JDBC driver is compiled with Java6.

JDBC Client Connections 33

Page 44: Data Services User Guide

The JDBC driver is installed in the following location:

<InformaticaInstallationDir>\tools\jdbcdrv\infadsjdbc.jar

Connecting to the SQL Data ServiceYou can connect to an SQL data service through a JDBC client tool.

To connect through a JDBC client tool, the CLASSPATH environment variable on the machine where the client toolruns must include the JDBC driver.

1. Open the JDBC client tool.

2. Enter the following information:

Option Value

Class name com.informatica.ds.sql.jdbcdrv.INFADriver

JDBC URL jdbc:informatica:sqlds/<optional security domain\><optional user name>/<optional user password>@<domain host name>:<domain HTTP port>?dis=<Data Integration Service name>&sqlds=<runtime SQL data service name>

Troubleshooting JDBC Connections

I am connecting to an SQL data service through a JDBC client tool. I get an error when I try to bind data to a bigintcolumn through a parameterized query.The Informatica JDBC driver does not support the setBigInt method. If you use setBigInt in a parameterized query, theJava client code fails at compilation.

If you need to bind data to a bigint column, use the setLong method instead of the setBigInt method. For example, thefollowing code does not cause a JDBC driver error:

String sql = "select * from VT where COL_BIGINT = ?";PreparedStatement stmt = connection.prepareStatement(sql);stmt.setLong (1,new Long("9223372036854775807"));

ODBC Client Connections on WindowsYou can connect to an SQL data service through an ODBC client tool such as QlikView or WinSQL.

Before you can connect to an SQL data service through an ODBC client tool on Windows, complete the followingtasks:

1. Install or upgrade the appropriate Informatica ODBC driver. For PowerCenter, install the Informatica DataServices ODBC Driver for PowerCenter. If you are upgrading PowerCenter, you can optionally upgrade theODBC driver. For third-party client tools, install the Informatica Data Services ODBC Driver 9.5.1. If you areupgrading the third-party client tool, you must upgrade the Informatica Data Services ODBC Driver 9.5.1.

2. Configure the Informatica ODBC driver.

34 Chapter 5: Client Machine Configuration

Page 45: Data Services User Guide

Installing or Upgrading the Informatica Data Services ODBC Driver onWindows

Install or upgrade the Informatica Data Services ODBC Driver for PowerCenter when you use PowerCenter to connectto an SQL data service. Install or upgrade the Informatica Data Services ODBC Driver 9.5.1 when you connect to anSQL data service from a third-party client tool. Install the driver on the machine you connect to the SQL data servicefrom. You can install the driver on multiple machines in graphical or silent mode.

When you install the Informatica Data Services ODBC Driver for PowerCenter, the Informatica JDBC/ODBC driverinstallation program updates the system path to include the Java Virtual Machine (jvm.dll) directory. If you install thedriver on a machine with a Windows 64-bit operating system, you must restart the machine after you run theInformatica JDBC/ODBC driver installation program.

Installing in Graphical ModeTo install the driver in graphical mode, run the Informatica JDBC/ODBC driver installation program.

1. Close all other applications.

2. Run install.bat.

3. Select one of the following options:

¨ Install Informatica Data Services ODBC Driver

¨ Upgrade to Informatica Data Services ODBC Driver

4. Click Next.

The Installation Prerequisites page displays the system requirements. Verify that all installation requirementsare met before you continue the installation.

5. Click Next.

6. On the Installation Directory page, enter the absolute path for the installation directory.

7. On the Pre-Installation Summary page, review the installation information, and click Install.

The installer copies the driver files to the installation directory. The Post-Installation Summary page indicateswhether the installation completed successfully.

8. Click Done.

You can view the installation log files to get more information about the tasks performed by the installer.

Installing in Silent ModeTo install the driver without user interaction, install in silent mode using a properties file that contains the installationoptions. The driver installer reads the file to determine the installation options.

Use the silent mode installation to install the driver on multiple machines on the network or to standardize theinstallation across machines.

1. Use a text editor to open and modify the values of the properties in the file.

ODBC Client Connections on Windows 35

Page 46: Data Services User Guide

The following table describes the installation properties that you can modify:

Property Description

INSTALL_TYPE Indicates whether to install or upgrade the driver.If the value is 0, the driver is installed in the directory you specify. If the value is 1, the driver isupgraded.Default is 0.

USER_INSTALL_DIR Informatica driver installation directory. For example, C:\\Informatica\<version>.

2. Save the properties file.

3. To run the silent installation, double-click silentInstall.bat.

The silent installer runs in the background. The silent installation is complete when theInformatica_<Version>_Driver_InstallLog.log is created in the home directory.

The silent installation fails if you incorrectly configure the properties file or if the installation directory is notaccessible. View the installation log file in SYSTEM_DRIVE_ROOT. For example, C:\silentErrorLog.log. Correct theerrors, and run the silent installation again.

Configuring the Informatica Data Services ODBC Driver forPowerCenter

Before you can connect to an SQL data service through an ODBC client tool on Windows, you must configure theInformatica ODBC driver.

1. Open the Administrative Tools from the Windows Control Panel.

2. Open the Data Sources (ODBC) shortcut.

The ODBC Data Source Administrator appears.

3. Click Add.

4. Select the Informatica Data Services ODBC Driver for PowerCenter.

5. Click Finish.

6. Configure the driver with the following options:

Option Value

DSN name Any valid data source name.

Connect string jdbc:informatica:sqlds/<optional security domain\><optional user name>/<optional user password>@<domain host name>:<domain HTTP port>?dis=<Data Integration Service name>&sqlds=<runtime SQL data service name>

JDBC Jar <InformaticaInstallationDir>\tools\jdbcdrv\infadsjdbc.jar

36 Chapter 5: Client Machine Configuration

Page 47: Data Services User Guide

Option Value

Treat Length as Characters (DeferredParameters) *

Enabled

Multi-threaded application Enabled

. *Enable this option only for MicroStrategy.

Configuring the Informatica Data Services ODBC Driver 9.5.1Before you connect to an SQL data service through an ODBC client tool on Windows, configure the Informatica DataServices ODBC Driver 9.5.1.

1. Open the Administrative Tools from the Windows Control Panel.

2. Open the Data Sources (ODBC) shortcut.

The ODBC Data Source Administrator appears.

3. Click Add.

4. Select the Informatica Data Services ODBC Driver 9.5.1.

5. Click Finish.

6. Configure the driver with the following options:

Option Value

DSN Name Any valid data source name.

Host Name Machine that hosts the Informatica domain.

Port Informatica domain HTTP port number.

SQL Data ServiceName

SQL data service that contains the virtual tables you want to query or the virtual stored procedures youwant to run.By default, the SQL data service name is:<application name>.<SQL data service name>where <application name> is the name of the application that contains the SQL data service.

Data IntegrationService Name

Data Integration Service where the application that contains the SQL data service runs.

User Name Informatica domain user name.

Password Informatica domain user password.

ODBC Client Connections on Windows 37

Page 48: Data Services User Guide

Option Value

OptionalParameters

You can use the following optional Data Integration Service configuration parameters:

¨ optimizeLevel - Sets the mapping optimization level.¨ highPrecision - Runs mappings in high-precision mode.¨ defaultDateFormat - Connection property that specifies the date format.¨ defaultTimeFormat - Connection property that specifies the time format.¨ defaultTimeStampFormat - Connection property that specifies the date and time.¨ dumpMapping - Ceates XML files that represent the optimized and non-optimized eDTM

mappings.¨ ResultSetCacheExpirationPeriod - Amount of time in milliseconds a result set is available for use

after it is populated. If set to zero, result set caching is disabled.

Use & to separate multiple values.

Save Credentials Saves the Informatica domain user name and password. Credentials are saved as clear text in theregistry.

Connecting to the SQL Data ServiceYou can connect to an SQL data service through an ODBC client tool on Windows.

To connect to an SQL data service through an ODBC client tool on Windows, the PATH environment variable on theWindows machine must include the following:

¨ The Java Virtual Machine (jvm.dll) directory if you installed the Informatica Data Services ODBC Driver forPowerCenter.

¨ The driver binaries location if you installed the Informatica Data Services ODBC Driver 9.5.1.

ODBC Client Connections on UNIXYou can connect to an SQL data service through an ODBC client tool such as IBM Cognos.

Before you can connect to an SQL data service through an ODBC client tool on UNIX, you must perform the followingtasks:

1. Install or upgrade the appropriate Informatica ODBC driver. For PowerCenter, install the Informatica DataServices ODBC Driver for PowerCenter. If you are upgrading PowerCenter, you can optionally upgrade theODBC driver. For third-party client tools, install the Informatica Data Services ODBC Driver 9.5.1. If you areupgrading the third-party client tool, you must upgrade the Informatica Data Services ODBC Driver 9.5.1.

2. Update the shared library environment variable.

3. Update odbc.ini and odbcinst.ini.

Installing or Upgrading the Informatica Data Services ODBC Driver onUNIX

Install or upgrade the Informatica Data Services ODBC Driver for PowerCenter when you use PowerCenter to connectto an SQL data service. Install the Informatica Data Services ODBC Driver 9.5.1 when you connect to an SQL dataservice from a third-party client tool.

Install the driver on the machine you connect to the SQL data service from. You can install the driver on multiplemachines in graphical or silent mode.

38 Chapter 5: Client Machine Configuration

Page 49: Data Services User Guide

Installing in Graphical ModeTo install the driver in graphical mode, run the Informatica JDBC/ODBC driver installation program.

1. Close all other applications.

2. Run install.sh.

3. Select one of the following options:

¨ Install Informatica Data Services ODBC Driver

¨ Upgrade to Informatica Data Services ODBC Driver

4. Click Next.

The Installation Prerequisites page displays the system requirements. Verify that all installation requirementsare met before you continue the installation.

5. Click Next.

6. On the Installation Directory page, enter the absolute path for the installation directory.

7. On the Pre-Installation Summary page, review the installation information, and click Install.

The installer copies the driver files to the installation directory. The Post-Installation Summary page indicateswhether the installation completed successfully.

8. Click Done.

You can view the installation log files to get more information about the tasks performed by the installer.

Installing in Silent ModeTo install the driver without user interaction, install in silent mode using a properties file that contains the installationoptions. The driver installer reads the file to determine the installation options.

Use the silent mode installation to install the driver on multiple machines on the network or to standardize theinstallation across machines.

1. Use a text editor to open and modify the values of the properties in the file.

The following table describes the installation properties that you can modify:

Property Description

INSTALL_TYPE Indicates whether to install or upgrade the driver.If the value is 0, the driver is installed in the directory you specify. If the value is 1, the driver isupgraded.Default is 0.

USER_INSTALL_DIR Informatica driver installation directory. For example, /home/Informatica/<version>.

2. Save the properties file.

3. To run the silent installation, double-click silentInstall.sh.

The silent installer runs in the background. The silent installation is complete when theInformatica_<Version>_Driver_InstallLog.log is created in the home directory.

The silent installation fails if you incorrectly configure the properties file or if the installation directory is notaccessible. View the installation log file in the home directory. For example, /home/<user name>/silentErrorLog.log. Correct the errors, and run the silent installation again.

ODBC Client Connections on UNIX 39

Page 50: Data Services User Guide

Configuring the Informatica Data Services ODBC Driver forPowerCenter

Before you can connect to an SQL data service through an ODBC client tool on UNIX, you must set the shared libraryenvironment variables and update the odbc.ini file.

Updating the Shared Library Environment VariableSet the shared library environment variable based on the operating system.

Update the shared library environment variable to include the directories where the Java Virtual Machine and DriverManager library files exist.

The following table describes the shared library environment variable for each operating system:

Operating System Shared Library Environment Variable

AIX LIBPATH

HP-UX SHLIB_PATH or LD_LIBRARY_PATH

Linux LD_LIBRARY_PATH

Solaris LD_LIBRARY_PATH

Update the shared library environment variable to include the following directories:

¨ The directory where the platform libjvm and j9vm library resides.

¨ The directory where the libodbc and libodbcinst libraries reside. This is usually the Driver Manager lib directory.

Updating odbc.iniBefore you can connect to an SQL data service through an ODBC client tool on UNIX, you must update odbc.ini.

1. Edit odbc.ini or copy odbc.ini to the home directory and edit it. This file exists in the $ODBCHOME directory.$ cp $ODBCHOME/odbc.ini $HOME/.odbc.ini

2. Add an entry for the ODBC user under the section [<user name>_odbc]. For example:[<user name>_odbc]ConnectionString=jdbc:informatica:sqlds/<optional security domain\><optional user name>/<optional user password>@<domain host name>:<domain HTTP port>?dis=<Data Integration Service name>&sqlds=<runtime SQL data service name>Driver=$ODBC_DRIVER_INSTALL_LOCATION/bin/$OS/libinfadsodbc.soIsMultiThreaded=trueJDBCDriverLocation=<Informatica Installation Directory>/tools/jdbcdrv/infadsjdbc.jarUseDetach=falseWCHARLengthInChars=true

Configure WCHARLengthInChars only for MicroStrategy.

40 Chapter 5: Client Machine Configuration

Page 51: Data Services User Guide

Configuring the Informatica Data Services ODBC Driver 9.5.1Before you can connect to an SQL data service through an ODBC client tool on UNIX, you must set the shared libraryenvironment variables and update the odbc.ini and the odbcinst.ini files.

Updating the Shared Library Environment VariableSet the shared library environment variables based on the operating system.

Update the shared library environment variable to include the driver binaries.

The following table describes the shared library environment variable for each operating system:

Operating System Shared Library Environment Variable

AIX LIBPATH

HP-UX SHLIB_PATH or LD_LIBRARY_PATH

Linux LD_LIBRARY_PATH

Solaris LD_LIBRARY_PATH

Update the shared library environment variable to include the following directory:

¨ The bin/ directory where the libinfadsodbc library resides.

The library contains the ODBC driver binaries. Typically, you can locate this library in tools/odbcdrv for the server andclient installation. For the standalone installation, you can locate the library in the installation directory.

If you use the DataDirect driver manager, create an ${OBDCINST} environment variable to point to the odbcinst.inifile.

Updating odbc.ini and odbcinst.iniBefore you can connect to an SQL data service through an ODBC client tool on UNIX, you must update the odbc.iniand odbcinst.ini files.

If you use the DataDirect driver manager with the ODBC driver, you can store the odbcinst.ini file in any location. Usethe ${ODBCINST} environment variable to point to the odbcinst.file.

If you use the unixODBC driver manager, you must store the odbcinst.ini file in the <DriverHome> directory. You cannotuse the ${ODBCINST} environment variable to point to the odbcinst.file.

1. Edit the odbc.ini file or copy the odbc.ini file to the home directory and edit it. This file exists in the $ODBCHOMEdirectory.

$ cp $ODBCHOME/odbc.ini $HOME/.odbc.ini2. Add an entry for the ODBC user under the section [<DSN>]. For example:

[<DSN>]DataIntegrationService=<Data Integration Service name>Driver=$ODBC_DRIVER_INSTALL_LOCATION/bin/$OS/libinfadsodbc.soHostName=<domain host name>Port=<domain HTTP port>SQLDataService=<runtime SQL data service name>Optional Parameters=defaultDateFormat=DD/MM/YYYY&defaultTimeStampFormat=DD/MM/YYYY HH24:MI:SS

ODBC Client Connections on UNIX 41

Page 52: Data Services User Guide

3. Add the driver and setup entries to the odbcinst.ini file.[Informatica Data Services ODBC Driver 9.5.1]Driver=<Complete path to driver>Setup=<Complete path to driver>

For example:Driver=$ODBC_DRIVER_INSTALL_LOCATION/bin/$OS/libinfadsodbc.soSetup=$ODBC_SETUP_INSTALL_LOCATION/bin/$OS/libinfadsodbc.so

Connecting to the SQL Data ServiceYou can connect to an SQL data service through an ODBC client tool on UNIX.

To connect to an SQL data service through an ODBC client tool on UNIX, the shared library environment variable onthe UNIX machine must include the correct directories with the libodbcdrv.dll folder in the path. The odbc.ini file mustalso be configured on the machine.

Troubleshooting ODBC Connections for PowerCenter

The ODBC application consumes large amounts of data.Increase the maximum amount of memory available to the Java Virtual Machine (the -Xmx value).

To increase the -Xmx value, set the environment variable INFA_ODBCJVM to -Xmx??m, where ?? is the number ofmegabytes. For example, to set the -Xmx value to 64 MB, set INFA_ODBCJVM to -Xmx 64m. If you set the -Xmx valueto a very large value, for example >500 MB, the Memory Manager may not be able to allocate the memory.

42 Chapter 5: Client Machine Configuration

Page 53: Data Services User Guide

C H A P T E R 6

Third-Party Client ToolConfiguration

This chapter includes the following topics:

¨ Third-Party Client Tool Configuration Overview, 43

¨ BusinessObjects Configuration, 44

¨ IBM Cognos Configuration, 44

¨ MicroStrategy Configuration, 46

¨ Oracle Business Intelligence Enterprise Edition 11g Configuration, 48

¨ QlikView Configuration, 48

¨ SQL Server Business Intelligence Development Studio Configuration, 49

¨ SQuirreL SQL Client Configuration, 50

¨ Toad for Data Analysts Configuration, 51

¨ WinSQL Configuration, 52

¨ Troubleshooting Third-Party Client Tools, 53

Third-Party Client Tool Configuration OverviewBefore you can connect to an SQL data service, you must configure the JDBC or ODBC third-party client tool that youwant to connect from.

You can connect to an SQL data service through the following third-party client tools:

¨ BusinessObjects

¨ IBM Cognos

¨ MicroStrategy

¨ Oracle Business Intelligence Enterprise Edition 11g

¨ QlikView

¨ SQuirreL SQL Client

¨ Toad for Data Analysts

¨ WinSQL

43

Page 54: Data Services User Guide

BusinessObjects ConfigurationYou can access the virtual data in an SQL data service through a BusinessObjects universe. Import metadata from theSQL data service into the universe. Use a BusinessObjects application to query the data or generate reports.

Create the ODBC connection through a BusinessObjects application such as BusinessObjects Designer. To createthe ODBC connection, use the application New Connection wizard.

To configure BusinessObjects to access an SQL data service, complete the following tasks:

1. Open the Business Objects application New Connection wizard.

2. Click Add to create a connection.

The Define a new connection dialog box, Database Middleware Selection page appears.

3. Enter a connection name and select a generic ODBC or ODBC3 data source driver.

4. Click Next.

The Login Parameters page appears.

5. Enter the following information:

Option Description

Authentication Mode Select Use specified username and password.

User name Informatica domain user name.

Password Informatica domain user password.

Data source name ODBC data source name for the SQL data service.

6. Click Test Connection to test the connection.

The BusinessObjects application displays a message saying that the server is responding.

7. Click OK.

After you perform this task, you can import metadata from an SQL data service into the universe and generate reportsbased on the data.

IBM Cognos ConfigurationIBM Cognos Framework Manager is a modeling tool that allows you to create and manage business-related metadatafor use in all Cognos 8 BI applications. Use Framework Manager to create a project. Within a project, you can createdata source connections and import data source metadata.

When you define a data source in Framework Manager, you create an ODBC connection to the SQL data service.Cognos uses the information in the connection to connect to the SQL data service. After you create the ODBCconnection and import the SQL data service metadata, you can create a Cognos model based on the SQL dataservice. Use the model to run queries and generate reports in Cognos BI applications.

To run queries that include aggregations, the Cognos configuration file must include Informatica ODBC driverinformation.

44 Chapter 6: Third-Party Client Tool Configuration

Page 55: Data Services User Guide

To configure IBM Cognos to access an SQL data service, complete the following tasks:

1. Update the IBM Cognos configuration file to include the Informatica ODBC driver information.

2. Create an ODBC connection to the SQL data service, and import SQL data service metadata in a Cognosproject.

Step 1. Update the IBM Cognos Configuration FileUpdate the IBM Cognos configuration file to include Informatica ODBC driver information. The ODBC driverinformation in the configuration file enables the Data Integration Service to handle SQL queries that includeaggregations. If you do not update the configuration file and you query an SQL data service from an IBM Cognosapplication, the query might fail if it includes aggregations.

The IBM Cognos configuration file, cogdmod.ini, is in the following directories:

¨ C:\Program Files\cognos\tools\c8\bin\¨ C:\Program Files\cognos\c8\bin\You must update both copies of the configuration file.

1. Stop the Cognos service.

2. Back up both copies of cogdmod.ini.

3. Add the following entry to both copies of cogdmod.ini:[Exceptions Set Operators DRIVER:INFADSODBC.DLL]Distinct="distinct"Except="except"Except_All=TIntersect="intersect"Intersect_All=TUnion="union"Union_All=T[Exceptions Tables DRIVER:INFADSODBC.DLL]Derived=TJoined=TSimple=TUniqueName_Prefix="coguda"[Exceptions OLAP Functions DRIVER:INFADSODBC.DLL]Olap_Max="max"Olap_Min="min"Olap_Sum="sum"Olap_Avg="avg"Olap_Count="count"Olap_Count_Star="count(*)"Olap_Distinct="distinct"

4. Restart the Cognos service.

Step 2. Create the ODBC Connection and Import MetadataCreate the ODBC connection and import SQL data service metadata into a project. Use Cognos Framework Managerto create the project. Run the Framework Manager Run Metadata wizard to create the connection and importmetadata.

1. Start Cognos Framework Manager.

2. Create a project.

3. Start the Run Metadata wizard.

4. In the Select Metadata Source window, click Data Sources.

5. Click Next.

The Select Data Source window appears.

IBM Cognos Configuration 45

Page 56: Data Services User Guide

6. Click New.

The New Data Source wizard appears.

7. In the name and description page, enter a name and optional description for the data source.

8. Click Next.

9. In the connection page, select the ODBC database type, select an isolation level, and click Next.

10. In the connection string page, enter the SQL data service ODBC data source name in the ODBC data source andODBC connect string fields. Enter timeouts or sign-on information, if required. Enter the user ID and password ifthey are not part of the Informatica ODBC driver connect string.

11. Click Test the connection to test the connection to the Informatica ODBC driver.

12. In the Run Metadata wizard, select the data source.

13. Click Next.

14. In the Select Objects page, select the objects you want to import and specify how the import handles duplicateobject names.

15. Specify the criteria to use to create relationships and click Import.

Framework Manager displays the number of imported objects and a list of objects that it could not import.

16. Click Finish.

MicroStrategy ConfigurationMicroStrategy is a business intelligence platform that allows you to analyze, distribute, and customize businessinformation. MicroStrategy Desktop allows you to create projects and reports. Within a project, you can create datasource connections and import data source metadata.

To configure MicroStrategy to access an SQL data service, complete the following tasks:

1. Create the database instance and connection.

2. Configure the SQL generation options.

Step 1. Create the Database Instance and ConnectionUse MicroStrategy Desktop to create the database instance and database connection. MicroStrategy retrieves SQLdata service metadata through the database instance.

1. Open MicroStrategy Desktop.

2. Create a project.

3. Select Schema > Warehouse Catalog to open the project Warehouse Catalog.

The Warehouse Database Instance dialog box appears.

4. Click New.

The Database Instance Wizard opens.

5. Click Next.

6. In the Database Instance General Information page, enter a name for the database instance and selectGeneric DBMS as the database type.

7. Click Next.

46 Chapter 6: Third-Party Client Tool Configuration

Page 57: Data Services User Guide

8. In the ODBC Data Source Information page, select the ODBC data source name for the SQL data service andenter the Informatica domain user name and password.

9. Click Finish.

10. Click OK to close the Warehouse Database Instance dialog box.

11. Select Schema > Warehouse Catalog to open the Warehouse Catalog.

12. Click Options.

13. Select Warehouse Connection.

14. In the Warehouse Connection settings, select the database instance and click Edit.

The Database Instances dialog box opens.

15. Click New to create a database connection.

The Database Connections dialog box opens.

16. On the General tab, enter a database connection name and select the ODBC data source name for the SQL dataservice.

17. Click the Advanced tab.

18. Set the following options:

¨ Select the Multi-threaded database driver mode.

¨ Select the Use parameterized queries option.

¨ Set the character set encoding option for Windows and UNIX drivers to UTF-8.

19. Click OK to close the Database Connections dialog box.

20. Click OK to close the Database Instances dialog box.

21. In the Warehouse Catalog, select Read Settings.

22. In the Read Settings, select Use standard ODBC calls to obtain the database catalog.

23. Click OK.

24. In the Warehouse Catalog, click Save and Close to save the changes.

Step 2. Configure the SQL Generation OptionsThe virtual tables in an SQL data service are read-only tables. Configure the SQL generation options to preventMicroStrategy Desktop users from trying to write data to the virtual database.

1. Select Schema > SQL Generation Options to open the SQL generation options.

2. In the SQL Data Warehouses settings, select the database instance you use to connect to the SQL dataservice.

3. Click VLDB Properties to edit the VLDB properties for the database instance.

4. Open the Tables settings.

5. In the Drop Temp Tables Method settings, set the drop temp table method to Do nothing.

6. In the Intermediate Table Type settings, set the intermediate table type to Derived table.

7. In the Table Creation Type settings, set the table creation type to Implicit Table.

8. In the CREATE and INSERT Support settings, select the Create and insert are not supported option.

9. Save and close the SQL generation options.

MicroStrategy Configuration 47

Page 58: Data Services User Guide

Oracle Business Intelligence Enterprise Edition 11gConfiguration

You can access the virtual data in an SQL data service through the Oracle Business Intelligence Enterprise Edition11g (OBIEE 11g). Import metadata from an SQL data service into the OBIEE 11g to generate reports.

Import metadata from databases and other data sources to populate the physical layer. You can import schemas orportions of schemas from existing data sources. You can manually create objects in the physical layer.

To configure the OBIEE 11g to access an SQL data service, complete the following tasks:

1. Open the Oracle BI Administration Tool.

2. Create a new repository.

The New Repository dialog opens with the Repository folder selected by default.

3. Name the file <RPDfilename>.rpd and enter the repository password twice.

4. Select the data source name created for the ODBC connection.

5. Select the Metadata Types to import and click Next.

6. Select the Metadata Objects and click Finish.

QlikView ConfigurationYou can access the virtual data in an SQL data service through QlikView. To read data from an SQL data service intoyour QlikView document, use the Script Editor. The script that you create uses an ODBC connection to connect to andretrieve data from the SQL data service.

1. Create a QlikView document.

2. Select File > Edit Script.

The Edit Script dialog box appears.

3. In the Data view, select ODBC as the database and click Connect.

The Connect to Data Source dialog box appears.

4. Select the ODBC data source name for the SQL data service and enter the user name and password for theInformatica domain user.

5. Click Test Connection to test the connection.

6. Click OK to close the connection results.

7. Click OK to close the Connect to Data Source dialog box.

8. In the Data view of the Edit Script dialog box, click Select to create an SQL SELECT statement that retrievesinformation from the SQL data service.

9. Click OK.

10. Run the script to retrieve data from the SQL data service.

48 Chapter 6: Third-Party Client Tool Configuration

Page 59: Data Services User Guide

SQL Server Business Intelligence Development StudioConfiguration

Business Intelligence Development Studio is an integrated development environment used for developing dataanalysis and business intelligence solutions that utilizes SQL Server Reporting Services. You can access the virtualdata in an SQL data service with SQL Server Business Intelligence Development Studio.

Use the Report Wizard to connect to a data source and create a report. The Business Intelligence DevelopmentStudio imports data from an SQL data service based on the connection information.

To configure SQL Server Business Intelligence Development Studio, complete the following tasks:

1. Open the Business Intelligence Development Studio.

2. Create a new project and select Business Intelligence Project as the project type.

3. Select the Report Server Project Wizard.

4. Enter a project name and click OK.

The Report Wizard dialog box appears.

5. Click Next.

6. Select New Data Source.

7. Enter the data source name and select ODBC as the type.

8. Click Edit.

The Connection Properties dialog box appears.

9. Enter the following information:

Option Description

Data Source Name Select the ODBC data source name for the SQL data service.

User ID Informatica domain user name.

Password Informatica domain user password.

10. Click Test Connection to validate the connection.

11. Click Next.

12. Click Query Builder and enter a username and password.

The Query Designer window appears.

13. Select the Add table option.

The Add Table dialog box appears.

14. Select tables and click Add.

15. Assign a relation or join tables manually.

16. Run an SQL query and verify that the data displays as expected.

17. Click OK.

18. Select Tabular or Matrix as the report type and click Next.

19. Select the available fields and click Next.

20. Enter a report name and click Finish to create the report.

SQL Server Business Intelligence Development Studio Configuration 49

Page 60: Data Services User Guide

SQuirreL SQL Client ConfigurationYou can access the virtual data in an SQL data service through SQuirreL SQL Client. SQuirreL SQL Client allows youto view the structure of a database and browse and query the data.

To configure SQuirreL SQL Client to access an SQL data service, complete the following tasks:

1. Copy the Informatica JDBC driver to the SQuirreL SQL Client library directory.

2. Create the Informatica JDBC driver and the database alias in SQuirreL SQL Client.

After you perform these tasks, you can import data from an SQL data service into SQuirreL SQL Client.

Step 1. Copy the Driver FileCopy the Informatica JDBC driver to the SQuirreL SQL Client library directory.

u Copy the Informatica JDBC driver, infadsjdbc.jar, from the following directory:

<Informatica Installation Directory>\tools\jdbcdrv\To the following directory:

<SQuirreL SQL Client Installation Directory>\lib\

Step 2. Create the Driver and AliasTo read data from an SQL data service into SQuirreL SQL Client, create a driver definition and a database alias.SQuirreL SQL Client uses the driver definition and the database alias to enable you to view the SQL data servicestructure, browse the data in virtual tables, and enter SQL queries.

1. Open the Drivers list window.

2. Select Drivers > New Driver.

The Add Driver dialog box appears.

3. Enter the following information:

Option Description

Name Informatica JDBC Driver

Example URL jdbc:informatica:sqlds/<optional security domain\><optional user name>/<optionaluser password>@<domain host name>:<domain HTTP port>?dis=<Data IntegrationService name>&sqlds=<runtime SQL data servicename>

Website URL jdbc:informatica:sqlds/<optional security domain\><optional user name>/<optionaluser password>@<domain host name>:<domain HTTP port>?dis=<Data IntegrationService name>&sqlds=<runtime SQL data servicename>

Extra Class Path <Informatica Installation Directory>\tools\jdbcdrv\infadsjdbc.jar

Class Name com.informatica.ds.sql.jdbcdrv.INFADriver

4. Click OK.

SQuirreL SQL Client displays a message saying that driver registration is successful.

5. Open the Aliases list window.

50 Chapter 6: Third-Party Client Tool Configuration

Page 61: Data Services User Guide

6. Select Aliases > New Alias.

The Add Alias dialog box appears.

7. Enter the following information:

Option Description

Name Alias name.

Driver Select the new driver.

URL jdbc:informatica:sqlds/<optional security domain\><optional user name>/<optionaluser password>@<domain host name>:<domain HTTP port>?dis=<Data IntegrationService name>&sqlds=<runtime SQL data servicename>

User Name Informatica domain user name.

Password Informatica domain user password.

8. Click Test.

SQuirreL SQL Client displays a message saying that the connection is successful.

9. Click OK.

Toad for Data Analysts ConfigurationToad for Data Analysts is a database query tool. You can access the virtual data in an SQL data service with Toad forData Analysts. Use the Navigation Manager in Toad for Data Analysts to maintain and create databaseconnections.

If you connect to one or more databases, use the 'Connections' toolbar to specify the active connection to assign thedatabase connection Toad uses for any new windows or operations.

To configure Toad for Data Analysts to access an SQL data service, complete the following tasks:

1. Select the new connection option in the toolbar.

The Create New Connection dialog box appears.

2. Select ODBC from the Group list box.

3. Click in the Data Source Name field.

4. Click Add.

5. Select the ODBC driver from the list, and click Finish.

6. Specify the following configuration properties required for the database in the windows configuration dialogbox:

Option Description

Data Source Name Select the ODBC data source name for the SQL data service.

Toad for Data Analysts Configuration 51

Page 62: Data Services User Guide

Option Description

User ID Informatica domain user name.

Password Informatica domain user password.

7. Specify the connection properties in the Create New Connection dialog. Review the following for additionalinformation:

Option Description

Use data source name Select to display the Data source names.Deselect to display the driver names.

Data source name Select the data source name you added in the previous steps.

User Enter the user name to use when connecting.

Password Enter the password to use when connecting.

Database Specify the location of the database schema.

Data Source Name Displays the selected data source name.

Driver Displays the ODBC driver associated with the data source.

Category Select or create a category if you want to color code Editor tabs for a specific connection. This canhelp differentiate between development and production databases. You can also set an option tocolor code the Object Explorer pane and object editor windows .

8. Click Connect to save the connection and immediately connect to the database, or click Save to save theconnection without connecting to the database.

WinSQL ConfigurationYou can access the virtual data in an SQL data service through WinSQL. To read data from an SQL data service intoWinSQL, create a new connection. WinSQL imports data from the SQL data service based on the connectioninformation.

1. Create a query.

2. Select File > New Connection.

The ODBC Data Source dialog box appears.

3. Enter the following information:

Option Description

Data Source Name Select the ODBC data source name for the SQL data service.

52 Chapter 6: Third-Party Client Tool Configuration

Page 63: Data Services User Guide

Option Description

User ID Informatica domain user name.

Password Informatica domain user password.

Database Type (WinSQL Plugin) Select Generic ODBC.

4. Click OK.

Troubleshooting Third-Party Client Tools

An error occurs when I query an SQL data service using Oracle Heterogeneous Services (OHS).If you use Oracle Heterogeneous Services (OHS) to access data services directly from an Oracle query, add quotationmarks around the database link when you configure the Oracle 11g environment to connect to the ODBC.

You can use the following syntax to configure the database link in an Oracle 11g environment:

CREATE DATABASE LINK "DataService_Link"CONNECT TO "userID" IDENTIFIED BY "password"USING 'DataService ODBC DSN';

For example:

CREATE DATABASE LINK "IDS_LINK1"CONNECT TO "Admin" IDENTIFIED BY "Admin1234"USING 'ids1';

An SQL data service is case-sensitive. When you query an SQL data service, the virtual schema and table name mustbe identical to the names defined in the SQL data service.

Troubleshooting Third-Party Client Tools 53

Page 64: Data Services User Guide

C H A P T E R 7

Informatica Data DirectorIntegration

This chapter includes the following topics:

¨ Informatica Data Director Integration Overview, 54

¨ Informatica Data Director Integration Example, 55

¨ Virtual Table Mappings, 57

¨ Security Configuration for the Custom Tab Virtual Table, 57

¨ Configuration File Updates, 58

Informatica Data Director Integration OverviewYou can integrate detailed operational data from an SQL data service with Informatica Data Director (IDD) data to givedata stewards access to a complete view of data.

Data stewards can view virtual table data on a custom tab when they select a master record in IDD. The content on thecustom tab is the same content that the Developer tool displays in the Data Viewer when you enter an SQL query in theformat SELECT * FROM <virtual table> WHERE <filter condition>.

To complete the integration, data services developers, domain administrators, and Informatica MDM Hubadministrators perform different tasks. A data services developer creates the SQL data service that contains thevirtual table and deploys the application that contains it. A domain administrator adds data stewards to the domain andgrants them permission on the virtual table. An Informatica MDM Hub administrator sets up the custom tab through anIDD XML configuration file.

The following table lists the specific tasks that each user completes:

User Tool Task

Data servicesdeveloper

Developer tool Imports operational sources that contain data for the virtual table as physicaldata objects.

Data servicesdeveloper

Developer tool Creates an SQL data service with a virtual table that includes the data to displayon the IDD custom tab.

Data servicesdeveloper

Developer tool Creates a virtual table mapping that includes the operational data sources anddefines the data transformation rules. If the data steward needs to view data for a

54

Page 65: Data Services User Guide

User Tool Task

particular master record, the developer includes a lookup table that links recordsin the operational source to a master record.

Data servicesdeveloper

Developer tool Includes the SQL data service in an application and deploys the application to aData Integration Service.

Domainadministrator

Administrator tool Adds the data stewards to the domain and gives them select permission on thevirtual table.

Informatica MDMHub administrator

IDD ConfigurationManager or XML editor

Updates the IDD configuration file. The configuration file specifies the tab name,the application and virtual table, and the query condition that defines the data todisplay on the tab.

Informatica MDMHub administrator

IDD ConfigurationManager

Imports the configuration file and deploys the IDD application.

Data steward Informatica DataDirector

Navigates to the master record and views the custom tab.If the data steward is not a domain user or does not have permission on thevirtual table, the custom tab displays an authorization error.

Informatica Data Director Integration ExampleData stewards view master records in Informatica Data Director (IDD). When they view the master record for aphysician, they want to view the physician's expenses.

Master data about the physicians is stored in the MDM operational reference store. Each master record for a physicianincludes fields such as the physician name, specialty, office address, telephone number, and affiliated hospital.

Physician expense data is stored in a relational database table. Expense data includes the transaction ID, physicianID, physician name, expense type, date, and dollar amount. Normally, there are multiple expense records for eachphysician.

Data stewards can select a physician in IDD and view the physician master record in the subject area. When datastewards view a physician master record, they also want to see the transactional expense data for the physician. Theywould like to see the expense data on a tab in the subject area.

You can use an SQL data service to integrate the expense data with the master data. An SQL data service containsvirtual tables that data services developers can deploy in an application. IDD can display these applications in customtabs.

To display the expense data on a custom tab in IDD, the data services developer, domain administrator, andInformatica MDM Hub administrator complete different tasks. A data services developer creates a virtual table,includes it in an application, and deploys the application to a Data Integration Service. A domain administrator addsthe data stewards to the domain and gives them select permission on the virtual table. An Informatica MDM Hubadministrator sets up the custom tab and deploys the IDD application.

After the Informatica MDM Hub administrator deploys the IDD application, the data stewards can view the custom tabwhen they select the master record for any physician. The custom tab displays the Informatica MDM Hub row ID,transaction ID, expense type, date, and dollar amount for the selected physician.

Informatica Data Director Integration Example 55

Page 66: Data Services User Guide

Data Services Developer TasksTo create and deploy a virtual table to display on an IDD custom tab, the data services developer uses the Developertool.

The data services developer performs the following tasks:

1. Imports the expense table into Developer tool as a relational data object.

2. Imports a relational lookup table that defines how data in the expense table relates to each master record. Thedeveloper imports the lookup table as a relational data object.

3. Creates an SQL data service with a virtual table that includes the following columns: Transact_ID,Expense_Type, Date, and Dollar_Amt. The data services developer also includes a Phys_Row_ID column toidentify the physician record.

4. Creates a virtual table mapping and adds the expense table to the mapping as a source.

5. Adds the lookup relational data object to the mapping as a lookup object. The Lookup transformation retrieves theInformatica MDM Hub row ID for each physician in the expense table.

6. Connects the Informatica MDM Hub row ID port in the Lookup transformation to the Phys_Row_ID port in thevirtual table.The following figure shows the virtual table mapping:

7. Saves the SQL data service.

8. Includes the SQL data service in an application.

9. Deploys the application to a Data Integration Service.

Domain Administrator TasksTo ensure that data stewards can view the virtual table on the custom tab, the Informatica domain administrator addseach data steward to the domain.

The domain administrator performs the following tasks:

1. The administrator gives the data stewards the same user names and passwords in the domain that they use to login to IDD.

2. The administrator gives the data stewards select permission on the virtual table.

Informatica MDM Hub Administrator TasksTo create the custom tab that contains the virtual table, the Informatica MDM Hub administrator configures the customtab, imports the configuration file, and deploys the IDD application.

56 Chapter 7: Informatica Data Director Integration

Page 67: Data Services User Guide

The Informatica MDM Hub administrator configures the custom tab in the configuration file. The configuration filespecifies the tab name and the virtual table that the tab displays.

In the configuration file, the administrator creates the custom tab within the subject area using the externalLinkChildelement. The externalLinkChild element contains the externalLink element, which defines the URL displayed in thetab, the virtual table to display, and the WHERE clause that specifies which rows to retrieve.

To display virtual table data for a physician master record, the administrator must link the Informatica MDM Hub row IDfor the physician with the virtual table row ID for the physician. To do this, the administrator creates a dynamicparameter named "physicianRowID" that stores the Informatica MDM Hub row ID. The administrator uses theparameter in the WHERE clause to return data for the selected physician.

The administrator defines the "physicianRowID" parameter as follows:

<param name="physicianRowID" bddParamName="<primaryObject TableUID>|ROW_ID_OBJECT" />

The administrator defines the WHERE clause as follows:

<param name="IDS_WHERE" staticValue= "Phys_Row_ID=@physicianRowID" />

Virtual Table MappingsThe virtual table defines the data to display on the custom tab. Create a virtual table mapping to specify sources for thevirtual table and to define how source data relates to each master record.

Create a virtual table mapping that contains the following items:

Sources

Include transactional or operational data tables as sources.

Target virtual table

Add a column to the virtual table to store the Informatica MDM Hub row ID or another value that uniquely identifieseach master record. The Informatica MDM Hub administrator uses this column to filter rows on the custom tab.

For example, a data steward views an master record for a physician. The custom tab displays expense data. TheInformatica MDM Hub administrator uses the Informatica MDM Hub row ID column to ensure that the custom tabdisplays expense data only for the selected physician.

Lookup transformation

The Lookup transformation defines how data in the source relates to each master record.

For example, a source table contains a physician ID number that is not the same as the Informatica MDM Hub rowID for the physician. Include a Lookup transformation in the virtual table mapping that retrieves the InformaticaMDM Hub row ID for each physician ID.

Connect the Informatica MDM Hub row ID port in the Lookup transformation to the Informatica MDM Hub row IDport in the virtual table.

Security Configuration for the Custom Tab Virtual TableIDD and the Administrator tool require separate authentication. To view the custom tab, a data steward must have theappropriate permissions in the IDD application. The data steward must also be a domain user with select permissionon the virtual table in the Administrator tool.

Virtual Table Mappings 57

Page 68: Data Services User Guide

The data steward user name and password in both tools must be identical. Therefore, the domain administrator mustupdate the domain user names and passwords when data stewards change their IDD user names or passwords.

To enable data stewards to view the custom tab, the configuration file must pass the user name and password to theData Integration Service. The Data Integration Service authenticates the user with the domain.

To pass user names and passwords to the Data Integration Service, define the IDS_USERNAME andIDS_PASSWORD parameters within the externalLink element in the IDD configuration file. You can pass encrypted orunencrypted user names and passwords.

To pass encrypted user names and passwords, the Informatica MDM Hub administrator and domain administratormust set the encryption key. The Informatica MDM Hub administrator defines the encryption key in the IDDconfiguration file using the encryptionKey element. The encryptionKey element is an optional element in thebddApplication element. The domain administrator sets the DataViewerOptions.EncryptionKey custom property forthe Data Integration Service to the same encryption key value.

For example, in the configuration file, the Informatica MDM Hub administrator defines the IDD encryption key asfollows:

<encryptionKey>{C5869460-4830-4231-9D6E-8A073A97F099}</encryptionKey>

The domain administrator sets the custom property for the Data Integration Service as follows:

Name Value

DataViewerOptions.EncryptionKey C5869460-4830-4231-9D6E-8A073A97F099

Configuration File UpdatesTo add a custom tab to a subject area in IDD, the Informatica MDM Hub administrator updates the IDD configurationfile. The Informatica MDM Hub administrator updates the configuration file to specify the name of the custom tab, thevirtual table, and the filter condition that retrieves data.

To add a custom tab to the subject area in IDD, use the externalLinkChild element. This element defines the tabstructure.

Within the externalLinkChild element, the externalLink element defines the URL displayed on the tab. TheexternalLink element contains required parameters that specify the user name and password that the Data IntegrationService authenticates with the domain. It also contains required parameters that identify the Data Integration Service,the SQL data service, the virtual table, and the WHERE clause that specifies which rows to retrieve. Optionally, youcan specify parameters that set the number of rows displayed and the data polling interval.

Configuration File ExampleThe Informatica MDM Hub administrator creates the custom tab through the IDD configuration file. The custom tabdisplays virtual table data.

The following example shows part of an IDD configuration file. The example displays a custom tab in the"Organization" subject area with the display name "Financials." When a user views the master record for anorganization, the tab displays stock information for that organization. The Data Integration Service receives requestsfor data every 500 milliseconds. It returns the first 500 rows of data.

<subjectAreaGroup name="Customer" primaryObjectUid="C_PARTY"> <subjectArea name="Organization" displayName="Organization"> <primaryObject hmEntityTypeUid="Organization">

58 Chapter 7: Informatica Data Director Integration

Page 69: Data Services User Guide

<subTypeQualifier columnUid="C_PARTY|PARTY_TYPE" filterValue="Organization"/> <layout columnsNum="3"> <column columnUid="C_PARTY|ORGANIZATION_NAME" editStyle="FIELD" required="true"/> </layout> </primaryObject> <externalLinkChild name="DIS_StockTicker_linkchild" displayName="Financials"> <externalLink name="DIS_StockTicker_link" type="IFRAME" url="http://InfaDS01:6005/DataIntegrationService/SQLService/DataViewer"> <!-- Get organization name. --> <param name="orgName" bddParamName="C_PARTY|ORGANIZATION_NAME" /> <!-- Pass IDD user name and password to DIS. --> <param name="IDS_USERNAME" bddParamName="USERNAME" /> <param name="IDS_PASSWORD" bddParamName="PASSWORD"/> <!-- Specify virtual table information. --> <param name="IDS_DIS" staticValue="DIS01" /> <param name="IDS_SQLDS" staticValue="StockTickerApp.StockTickerSQLDS" /> <param name="IDS_TABLE" staticValue="STOCK" /> <param name="IDS_WHERE" staticValue="COMPANY=@orgName AND STATUS=1"/> <param name="IDS_ROWLIMIT" staticValue="500"/> <param name="IDS_ROWREFRESH" staticValue="500"/> </externalLink> </externalLinkChild> ... </subjectArea> </subjectAreaGroup>

externalLinkChild Element AttributesThe externalLinkChild element is required to define the tab structure. This element requires the externalLinkelement.

The following table describes the externalLinkChild attributes that are required to create a custom tab:

Attribute Description

Name Internal name for the custom tab. Must be unique across all custom child tabs.

displayName Name of the custom tab as it appears in IDD.

externalLink Element AttributesThe externalLink element is required within the externalLinkChild element. The externalLink element defines the URLdisplayed in the custom tab.

The following table describes the externalLink attributes that are required to create a custom tab:

Attribute Description

Name Internal name for the link. Must be unique across all external links.

Type External link type. Must be set to "IFRAME".

URL URL displayed in the custom tab. Must be in the following format:http://<Data Integration Service host name>:<Data Integration Service HTTP port number>/DataIntegrationService/SQLService/DataViewer

Configuration File Updates 59

Page 70: Data Services User Guide

externalLink Element ParametersThe externalLink element requires parameters that identify the domain user for authentication and the virtual table tobe displayed on the custom tab. Optionally, you can specify parameters that limit the number of rows of data displayedon the tab and that set the data polling interval.

Parameters can be static or dynamic. Use dynamic parameters to return master data such as the Informatica MDMHub row ID. For example, you want to create a dynamic parameter named "orgRowID" that returns the InformaticaMDM Hub row ID for an organization. Enter the following parameter definition:

<param name="orgRowID" bddParamName="<primaryObject TableUID>|ROW_ID_OBJECT" />

Use this parameter in the filter condition for the IDS_WHERE parameter to filter data displayed on the tab based onthe Informatica MDM Hub row ID.

The following table describes the externalLink element parameters:

Parameter Description

IDS_USERNAME Domain user name that the Data Integration Service authenticates against the domain. You can specifyan unencrypted or encrypted user name. For example:<param name="IDS_USERNAME" bddParamName="USERNAME" />Or:<param name="IDS_USERNAME" bddParamName="USERNAME_ENCRYPTED" />If you specify an encrypted user name, you must set the encryption key in the encryptionKey element.The domain administrator must also set the DataViewerOptions.EncryptionKey custom property for theData Integration Service.

IDS_PASSWORD Password for the domain user. You can specify an unencrypted or encrypted password. Forexample:<param name="IDS_PASSWORD" bddParamName="PASSWORD" />Or:<param name="IDS_PASSWORD" bddParamName="PASSWORD_ENCRYPTED" />If you specify an encrypted password, you must set the encryption key in the encryptionKey element.The domain administrator must also set the DataViewerOptions.EncryptionKey custom property for theData Integration Service.

IDS_DIS Data Integration Service name. For example:<param name="IDS_DIS" staticValue="DIS01" />

IDS_SQLDS Runtime SQL data service name. By default, the runtime SQL data service name is <applicationname>.<SQL data service name> where <application name> is the name of the application thatcontains the SQL data service. For example:<param name="IDS_SQLDS" staticValue="StockTickerApp.StockTickerSQLDS" />

IDS_TABLE Virtual table name. For example:<param name="IDS_TABLE" staticValue="STOCK" />

IDS_WHERE The WHERE clause that the Data Integration Services uses to filter data displayed on the tab.The IDS_WHERE parameter has the following format:<param name="IDS_WHERE" staticValue="<filter condition>" />Enter the filter condition in the format column <operator> value. For example:<param name="IDS_WHERE" staticValue="COMPANY=@orgName" />You can use any SQL-92 mathematical operator in the filter condition. You can also use the logical ANDor OR operator. String comparisons are case-sensitive.

60 Chapter 7: Informatica Data Director Integration

Page 71: Data Services User Guide

Parameter Description

IDS_ROWLIMIT Optional limit on the number of rows of data that the Data Integration Service returns for the virtual table.For example:<param name="IDS_ROWLIMIT" staticValue="1000" />If you do not specify this parameter, the Data Integration Service returns the first 1000 rows of data.

IDS_ROWREFRESH Optional interval, in milliseconds, in which IDD polls the machine that hosts the Data Integration Serviceto determine whether virtual table data is ready to display on the custom tab. For example:<param name="IDS_ROWREFRESH" staticValue="500" />If you do not specify this parameter, IDD polls the machine that hosts the Data Integration Service every500 milliseconds until the data is ready.

IDS_WHERE Filter Rules and GuidelinesThe IDS_WHERE parameter is an externalLink element parameter that you use to filter data displayed on the tab.

Use the following rules and guidelines when you enter a filter condition:

Use SQL-92 mathematical operators.

All SQL-92 mathematical operators are allowed as operators in the filter condition. For example, the followingfilter returns data for non-California customers:

<param name="IDS_WHERE" staticValue="state<>'CA'" />

You can use logical operators.

You can use logical AND and OR operators in the filter condition, for example:

<param name="IDS_WHERE" staticValue="state='CA' OR state='NV'" />

String comparisons are case-sensitive.

String comparisons within the filter condition are case-sensitive. For example, if a state field might contain "CA,""Ca," or "ca," define the IDS_WHERE parameter as follows:

<param name="IDS_WHERE" staticValue="UPPER(state)='CA'" />

You can use dynamic parameters to return data for specific master records.

Use a dynamic parameter in the filter condition to return data for a specific master record. For example, a virtualtable contains records for many organizations. It contains a column named Org_ID that stores the InformaticaMDM Hub row ID for the organization. When a data steward views a master data record for an organization, youwant the custom tab to display data for that organization. Create a dynamic parameter named "orgRowID" thatreturns the Informatica MDM Hub row ID for the organization as follows:

<param name="orgRowID" bddParamName="<primaryObject TableUID>|ROW_ID_OBJECT" />

Then, define the IDS_WHERE parameter as follows:

<param name="IDS_WHERE" staticValue="Org_ID=@orgRowID" />

Configuration File Updates 61

Page 72: Data Services User Guide

C H A P T E R 8

SQL Data Service AdministrationThis chapter includes the following topics:

¨ SQL Data Service Security Management, 62

¨ SQL Data Service Properties Configuration , 65

¨ SQL Data Service Result Set Caching, 69

¨ Data Object Caching, 70

¨ SQL Data Service Logs, 71

¨ SQL Data Services Monitoring, 71

SQL Data Service Security ManagementYou manage user security with privileges and permissions. Permissions define the level of access users have to anSQL data service. You can deny access to columns and rows in a virtual table. You can use credentials to restrictaccess to data in an SQL data service.

You can assign permissions to users and groups on the following SQL data service objects:

¨ SQL data service

¨ Virtual table

¨ Virtual stored procedure

When you assign permissions on an SQL data service object, the user or group inherits the same permissions on allobjects that belong to the SQL data service object. For example, you assign a user select permission on an SQL dataservice. The user inherits select permission on all virtual tables in the SQL data service.

You can deny permissions to users and groups on some SQL data service objects. When you deny permissions, youconfigure exceptions to the permissions that users and groups might already have. For example, you cannot assignpermissions to a column in a virtual table, but you can deny a user from running an SQL SELECT statement thatincludes the column.

You can restrict access to specific columns and rows to prevent users from accessing data in an SQL data servicewhen they query a virtual table. Configure column level security to restrict access to specific columns in a virtual table.Configure row level security to restrict access to specific rows of data in a virtual table.

Apply pass-through security to restrict access to data in an SQL data service based on user credentials.

62

Page 73: Data Services User Guide

Types of SQL Data Service PermissionsYou can assign the following permissions to users and groups:

¨ Grant permission. Users can grant and revoke permissions on the SQL data service objects using theAdministrator tool or using the infacmd command line program.

¨ Execute permission. Users can run virtual stored procedures in the SQL data service using a JDBC or ODBC clienttool.

¨ Select permission. Users can run SQL SELECT statements on virtual tables in the SQL data service using a JDBCor ODBC client tool.

Some permissions are not applicable for all SQL data service objects.

The following table describes the permissions for each SQL data service object:

Object Grant Permission Execute Permission Select Permission

SQL data service Grant and revoke permissionon the SQL data service andall objects within the SQL dataservice.

Run all virtual storedprocedures in the SQL dataservice.

Run SQL SELECTstatements on all virtualtables in the SQL dataservice.

Virtual table Grant and revoke permissionon the virtual table.

Run SQL SELECTstatements on the virtualtable.

Virtual stored procedure Grant and revoke permissionon the virtual storedprocedure.

Run the virtual storedprocedure.

Column Level SecurityColumn level security is the ability to deny access to individual columns in a virtual table. When end users querycolumns that they are not authorized to view, the Data Integration Service returns substitute data values, null values,or an error.

An administrator can deny access to columns in a virtual table of an SQL data object. The administrator can configurethe Data Integration Service behavior for queries against a restricted column.

The following results might occur when the user queries a column that the user does not have permissions for:

¨ The query returns a substitute value instead of the data. The query returns a substitute value in each row that itreturns. The substitute value replaces the column value through the query. If the query includes filters or joins, theresults substitute appears in the results.

¨ The query fails with an insufficient permission error.

Row Level SecurityRow level security is a level of security that restricts rows of data from users or user groups when they query a virtualtable. An administrator can create a security predicate that limits query access to specific rows of data.

A security predicate is an SQL WHERE clause that filters data out of the result set when you query a virtual table. TheData Integration Service modifies the query based on security predicates.

For example, a financial services company needs to integrate order data that is stored in disparate data sources andprovide a single, integrated orders view. An administrator can create a virtual table that combines the order data andthen restrict access to the table with security predicates so that users and groups see a particular data set when they

SQL Data Service Security Management 63

Page 74: Data Services User Guide

query the table. Employees can access data for orders that they own and for orders in their region within a specifieddollar amount.

Pass-Through SecurityPass-through security is the capability to connect to an SQL data service with the client user credentials instead of thecredentials from a connection object.

Users might have access to different sets of data based on the job in the organization. Client systems restrict accessto databases by the user name and the password. When you create an SQL data service, you might combine datafrom different systems to create one view of the data. However, when you define the connection to the SQL dataservice, the connection has one user name and password.

If you configure pass-through security, you can restrict users from some of the data in an SQL data service based ontheir user name. When a user connects to the SQL data service, the Data Integration Service ignores the user nameand the password in the connection object. The user connects with the client user name or the LDAP user name.

Configure pass-through security for a connection in the connection properties of the Administrator tool or with infacmddis UpdateServiceOptions. You can set pass-through security for connections to deployed applications. You cannotset pass-through security in the Developer tool. Only SQL data services and web services recognize the pass-throughsecurity configuration.

For more information about configuring security for SQL data services, see the Informatica How-To Library article"How to Configure Security for SQL Data Services": http://communities.informatica.com/docs/DOC-4507.

Pass-Through Security with Data Object CachingTo use data object caching with pass-through security, you must enable caching in the pass-through securityproperties for the Data Integration Service.

When you deploy an SQL data service or a web service, you can choose to cache the logical data objects in adatabase. You must specify the database in which to store the data object cache. The Data Integration Servicevalidates the user credentials for access to the cache database. If a user can connect to the cache database, the userhas access to all tables in the cache. The Data Integration Service does not validate user credentials against thesource databases when caching is enabled.

For example, you configure caching for the EmployeeSQLDS SQL data service and enable pass-through security forconnections. The Data Integration Service caches tables from the Compensation and the Employee databases. Auser might not have access to the Compensation database. However, if the user has access to the cache database,the user can select compensation data in an SQL query.

When you configure pass-through security, the default is to disallow data object caching for data objects that dependon pass-through connections. When you enable data object caching with pass-through security, verify that you do notallow unauthorized users access to some of the data in the cache. When you enable caching for pass-through securityconnections, you enable data object caching for all pass-through security connections.

Pass-through Security PropertiesThe following table describes the pass-through security properties:

Property Description

Allow Caching Allows data object caching for all pass-through connections in the Data Integration Service.Populates data object cache using the credentials from the connection object.Note: When you enable data object caching with pass-through security, you might allow usersaccess to data in the cache database that they might not have in an uncached environment.

64 Chapter 8: SQL Data Service Administration

Page 75: Data Services User Guide

SQL Data Service Properties ConfigurationConfigure the SQL data service properties for each SQL data service that you deploy to a Data Integration Service.

To view or edit the properties of an SQL data service in the Administrator tool, select the Applications view of the DataIntegration Service, expand the application name in the top panel, and select the SQL data service. The propertiesappear in the Properties view.

SQL Data Service PropertiesSQL data service properties include read-only general properties and properties to configure the settings the DataIntegration Service uses when it runs the SQL data service.

When you expand an SQL data service in the top panel of the Applications view, you can access the following objectscontained in an SQL data service:

¨ Virtual tables

¨ Virtual columns

¨ Virtual stored procedures

The Applications view displays read-only general properties for SQL data services and the objects contained in theSQL data services. Properties that appear in the view depend on the object type.

The following table describes the read-only general properties for SQL data services, virtual tables, virtual columns,and virtual stored procedures:

Property Description

Name Name of the selected object. Appears for all object types.

Description Short description of the selected object. Appears for all object types.

Type Type of the selected object. Appears for all object types.

Location The location of the selected object. This includes the domain and Data Integration Service name. Appears for allobject types.

JDBC URL JDBC connection string used to access the SQL data service. The SQL data service contains virtual tables that youcan query. It also contains virtual stored procedures that you can run. Appears for SQL data services.

Column Type Datatype of the virtual column. Appears for virtual columns.

SQL Data Service Properties Configuration 65

Page 76: Data Services User Guide

The following table describes the configurable SQL data service properties:

Property Description

Startup Type Determines whether the SQL data service is enabled to run when the application starts or when you start theSQL data service. Enter ENABLED to allow the SQL data service to run. Enter DISABLED to prevent the SQLdata service from running.

Trace Level Level of error written to the log files. Choose one of the following message levels:- OFF- SEVERE- WARNING- INFO- FINE- FINEST- ALLDefault is INFO.

ConnectionTimeout

Maximum number of milliseconds to wait for a connection to the SQL data service. Default is 3,600,000.

Request Timeout Maximum number of milliseconds for an SQL request to wait for an SQL data service response. Default is3,600,000.

Sort Order Sort order that the Data Integration Service uses for sorting and comparing data when running in Unicodemode. You can choose the sort order based on your code page. When the Data Integration runs in ASCIImode, it ignores the sort order value and uses a binary sort order. Default is binary.

Maximum ActiveConnections

Maximum number of active connections to the SQL data service.

Result Set CacheExpiration Period

The number of milliseconds that the result set cache is available for use. If set to -1, the cache never expires. Ifset to 0, result set caching is disabled. Changes to the expiration period do not apply to existing caches. If youwant all caches to use the same expiration period, purge the result set cache after you change the expirationperiod. Default is 0.

DTM Keep AliveTime

Number of milliseconds that the DTM process stays open after it completes the last request. Identical SQLqueries can reuse the open process. Use the keepalive time to increase performance when the time requiredto process the SQL query is small compared to the initialization time for the DTM process. If the query fails,the DTM process terminates. Must be an integer. A negative integer value means that the DTM Keep AliveTime for the Data Integration Service is used. 0 means that the Data Integration Service does not keep theDTM process in memory. Default is -1.

Optimization Level The optimizer level that the Data Integration Service applies to the object. Enter the numeric value that isassociated with the optimizer level that you want to configure. You can enter one of the following numericvalues:- 0. The Data Integration Service does not apply optimization.- 1. The Data Integration Service applies the early projection optimization method.- 2. The Data Integration Service applies the early projection, early selection, push-into, pushdown, and

predicate optimization methods.- 3. The Data Integration Service applies the cost-based, early projection, early selection, push-into,

pushdown, predicate, and semi-join optimization methods.

66 Chapter 8: SQL Data Service Administration

Page 77: Data Services User Guide

SQL PropertiesThe following table describes the SQL properties for the Data Integration Service:

Property Description

DTM Keep AliveTime

Number of milliseconds that the DTM process stays open after it completes the last request. Identical SQLqueries can reuse the open process. Use the keepalive time to increase performance when the time requiredto process the SQL query is small compared to the initialization time for the DTM process. If the query fails, theDTM process terminates. Must be greater than or equal to 0. 0 means that the Data Integration Service doesnot keep the DTM process in memory. Default is 0.You can also set this property for each SQL data service that is deployed to the Data Integration Service. If youset this property for a deployed SQL data service, the value for the deployed SQL data service overrides thevalue you set for the Data Integration Service.

Table StorageConnection

Relational database connection that stores temporary tables for SQL data services. By default, no connectionis selected.

Skip Log Files Prevents the Data Integration Service from generating log files when the SQL data service request completessuccessfully and the tracing level is set to INFO or higher. Default is false.

The following table describes the SQL properties for the Data Integration Service process:

Property Description

Maximum # of ConcurrentConnections

Limits the number of database connections that the Data Integration Service can make forSQL data services. Default is 100.

Virtual Table PropertiesConfigure whether to cache virtual tables for an SQL data service and configure how often to refresh the cache. Youmust disable the SQL data service before configuring virtual table properties.

The following table describes the configurable virtual table properties:

Property Description

Enable Caching Cache the SQL data service virtual database.

Cache Refresh Period Number of minutes between cache refreshes.

Cache Table Name The name of the table from which the Data Integration Service accesses the virtual table cache. If youspecify a cache table name, the Data Integration Service does not generate cache for the virtual table andit ignores the cache refresh period.

Virtual Column PropertiesConfigure the properties for the virtual columns included in an SQL data service.

SQL Data Service Properties Configuration 67

Page 78: Data Services User Guide

The following table describes the configurable virtual column properties:

Property Description

Create Index Enables the Data Integration Service to generate indexes for the cache table based on this column. Default isfalse.

Deny With When you use column level security, this property determines whether to substitute the restricted column value orto fail the query. If you substitute the column value, you can choose to substitute the value with NULL or with aconstant value.Select one of the following options:- ERROR. Fails the query and returns an error when an SQL query selects a restricted column.- NULL. Returns a null value for a restricted column in each row.- VALUE. Returns a constant value for a restricted column in each row.

InsufficientPermissionValue

The constant that the Data Integration Service returns for a restricted column.

Virtual Stored Procedure PropertiesConfigure the property for the virtual stored procedures included in an SQL data service.

The following table describes the configurable virtual stored procedure property:

Property Description

Result Set Cache Expiration Period The number of milliseconds that the result set cache is available for use. If set to -1,the cache never expires. If set to 0, result set caching is disabled. Changes to theexpiration period do not apply to existing caches. If you want all caches to use thesame expiration period, purge the result set cache after you change the expirationperiod. Default is 0.

Logical Data ObjectsThe Applications view displays logical data objects included in applications that have been deployed to the DataIntegration Service.

Logical data object properties include read-only general properties and properties to configure caching for logical dataobjects.

The following table describes the read-only general properties for logical data objects:

Property Description

Name Name of the logical data object.

Description Short description of the logical data object.

Type Type of the object. Valid value is logical data object.

Location The location of the logical data object. This includes the domain and Data Integration Service name.

68 Chapter 8: SQL Data Service Administration

Page 79: Data Services User Guide

The following table describes the configurable logical data object properties:

Property Description

Enable Caching Cache the logical data object.

Cache Refresh Period Number of minutes between cache refreshes.

Cache Table Name The name of the table from which the Data Integration Service accesses the logical data object cache. Ifyou specify a cache table name, the Data Integration Service does not generate cache for the logical dataobject and it ignores the cache refresh period.

The following table describes the configurable logical data object column properties:

Property Description

Create Index Enables the Data Integration Service to generate indexes for the cache table based on this column. Default isfalse.

Logical Data Object/Virtual Table Cache PropertiesThe following table describes the data object and virtual table cache properties:

Property Description

Cache Removal Time The number of milliseconds the Data Integration Service waits before cleaning up cache storageafter a refresh. Default is 3,600,000.

Cache Connection The database connection name for the database that stores the data object cache. Select a validconnection object name.

Maximum Concurrent RefreshRequests

Maximum number of cache refreshes that can occur at the same time. Limit the concurrentcache refreshes to maintain system resources.

SQL Data Service Result Set CachingResult set caching enables the Data Integration Service to use cached results for SQL data service queries. Usersthat run identical queries in a short period of time may want to use result set caching to decrease the runtime ofidentical queries.

When you configure result set caching, the Data Integration Service caches the results of the DTM process associatedwith each SQL data service query. The Data Integration Service caches the results for the expiration period that youconfigure. When an external client makes the same query or request before the cache expires, the Data IntegrationService returns the cached results.

The Result Set Cache Manager creates in-memory caches to temporarily store the results of the DTM process. If theResult Set Cache Manager requires more space than allocated, it stores the data in cache files. The Result Set CacheManager identifies the cache files by file name and location. Do not rename or move the cache files.

SQL Data Service Result Set Caching 69

Page 80: Data Services User Guide

Complete the following steps to configure result set caching for SQL data services in the Administrator tool:

1. Configure the result set cache properties in the Data Integration Service process properties.

2. Configure the cache expiration period in the SQL data service properties.

The Data Integration Service purges result set caches in the following situations:

¨ When the result set cache expires, the Data Integration Service purges the cache.

¨ When you restart an application or run the infacmd dis purgeResultSetCache command, the Data IntegrationService purges the result set cache for objects in the application.

¨ When you restart a Data Integration Service, the Data Integration Service purges the result set cache for objects inapplications that run on the Data Integration Service.

¨ When you change the permissions for a user, the Data Integration Service purges the result set cache associatedwith that user.

Data Object CachingData object caching enables the Data Integration Service to access pre-built logical data objects and virtual tables.Enable data object caching to increase performance for mappings, SQL data service queries, and web servicerequests.

By default, the Data Integration Service extracts source data and builds required data objects when it runs a mapping,SQL data service query, or a web service request. When you enable data object caching, the Data Integration Servicecan use cached logical data objects and virtual tables. You can store data object cache tables in IBM DB2, MicrosoftSQL Server, and Oracle databases.

Complete the following steps to enable data object caching for logical data objects and virtual tables in anapplication:

1. Configure the cache database connection in the logical data object/virtual table cache properties for the DataIntegration Service.

Note: All applications that are deployed to a Data Integration Service use the same connection.

2. Enable caching in the properties of logical data objects or virtual tables in the application.

3. To generate indexes on cache tables based on a column, enable the create index property in the columnproperties of the logical data object or virtual table in the application.

By default, the Data Object Cache Manager of the Data Integration Service manages the cache for logical data objectsand virtual tables in a database. You can choose to manage the cache with an external tool instead. For example, youcan use a PowerCenter CDC mapping to extract changed data for the data objects and incrementally update thecache.

To manage the data object cache with an external tool, specify a cache table name in the properties of logical dataobjects or virtual tables in the application. The Data Integration Service uses the cache stored in the table when it runsa mapping, SQL data service query, or a web service request that includes the logical data object or virtual table.

Note: If the data object cache is stored in a SQL Server database and the database user name is not the same as theschema name, you must specify a schema name in the database connection object. Otherwise, mappings, SQL dataservice queries, and web service requests that access the cache fail.

70 Chapter 8: SQL Data Service Administration

Page 81: Data Services User Guide

SQL Data Service LogsYou can view SQL data service logs in the Data Integration Service logs. View the Data Integration Service logs on theLogs tab in the Administrator tool.

Data Integration Service logs contain logs about the following events:

¨ Configuration. Log events about system or service configuration changes and application deployment orremoval.

¨ Data Integration Service processes. Log events about application deployment, data object cache refresh, and userrequests to run mappings.

¨ System failures. Log events about failures that cause the Data Integration service to be unavailable, such as ModelRepository connection failures or the service failure to start.

SQL Data Services MonitoringYou can monitor SQL data services on the Monitoring tab in the Administrator tool.

You can view information about the SQL data services included in an application. When you select SQL DataServices under an application in the Navigator of the Monitoring tab, a list of SQL data services appears in thecontents panel. The contents panel shows properties about each SQL data service, such as the name, description,and state.

When you select the link for a SQL data service in the contents panel, the contents panel shows the followingviews:

¨ Properties view

¨ Connections view

¨ Requests view

¨ Virtual Tables view

¨ Reports view

SQL Data Service Logs 71

Page 82: Data Services User Guide

I N D E X

BBusinessObjects

connection error 42creating the ODBC connection 44

CCache Connection

property 69Cache Removal Time

property 69CLASSPATH

updating 34configuration

client machine configuration 32client tool configuration 43disable result set caching 33IBM Cognos 44MicroStrategy 46Oracle Business Intelligence Enterprise Edition 11g 48QlikView 48SQL Server Business Intelligence Development Studio 49SQuirreL SQL Client 50Toad for Data Analysts 51WinSQL 52

connectingSQL data service 64

connectionsoverview 31pass-through security 64protocol 31

correlated subqueriesrules and guidelines for 26SQL data service queries 25

Ddata object cache

configuring 70description 70index cache 70managing with an external tool 70

Data Object Cacheconfiguring 69properties 69

data object cachingwith pass-through security 64

data servicesoverview 1

datatypesSQL data service queries 16

Eescape syntax

SQL data service queries 27

Ffunctions

escape syntax 28SQL data service queries 16

IIBM Cognos

configuration 44creating the ODBC connection 45updating the configuration file 45

Informatica Data Director integrationconfiguration file 58configuration file example 58data services developer tasks 56domain administrator tasks 56example 55externalLink element attributes 59externalLink element parameters 60externalLinkChild element attributes 59IDS_WHERE parameter 61Informatica MDM Hub administrator tasks 57overview 54passwords 58security 58tasks 54user names 58virtual table mapping 57virtual table permissions 58WHERE clause 61

Informatica JDBC driverinstalling 33

Informatica ODBC driverconfiguring 36installing on UNIX 38installing on Windows 35

JJDBC client connections

connecting to an SQL data service 34installing the driver 33overview 33troubleshooting 34updating the CLASSPATH 34

72

Page 83: Data Services User Guide

LLD_LIBRARY_PATH

updating 40LIBPATH

updating 40

MMaximum Active Connections

SQL data service property 65Maximum Concurrent Connections

configuring 67Maximum Concurrent Refresh Requests

property 69MicroStrategy

configuration 46configuring SQL generation options 47creating the database instance 46

monitoringSQL data services 71

Nnon-correlated subqueries

SQL data service queries 24

OODBC client connections on UNIX

connecting to an SQL data service 42installing the driver 38overview 38troubleshooting 42updating odbc.ini 40updating the shared library 40

ODBC client connections on Windowsconfiguring the driver 36connecting to an SQL data service 38installing the driver 35overview 34troubleshooting 42

odbc.iniupdating 40

operatorsSQL data service queries 16

Oracle Business Intelligence Enterprise Edition 11gconfiguration 48

Pparameterized queries

SQL data service queries 26troubleshooting 34

pass-through securityconnecting to SQL data service 64enabling caching 64properties 64web service operation mappings 64

QQlikView

configuration 48queries

SQL data service queries 24

Rrequest timeout

SQL data services requests 65reserved words

SQL data service queries 27result set cache

configuring 69purging 69SQL data service properties 65

result set cachingdisabling 33virtual stored procedure properties 68

row level securitydescription 63

Sshared library environment variable

updating 40SHLIB_PATH

updating 40sort order

SQL data services 65special characters

SQL data service queries 29SQL data service

permission types 63properties 65

SQL data service connectionsoverview 31

SQL data service queriescorrelated subqueries 25datatypes 16escape syntax 27function escape sequences 28non-correlated subqueries 24operators 16overview 15parameterized queries 26queries 24reserved words 27special characters 29SQL functions 16SQL statements and keywords 24

SQL data servicesconnecting through JDBC 34connecting through ODBC on UNIX 42connecting through ODBC on Windows 38creating 4defining 4example 2JDBC client connections 33monitoring 71ODBC client connections on UNIX 38ODBC client connections on Windows 34overview 1, 4previewing data 7

Index 73

Page 84: Data Services User Guide

SQL keywordsSQL data service queries 24

SQL queriespreviewing data 7

SQL query plansexample 14overview 13viewing 14

SQL Server Business Intelligence Development Studioconfiguration 49

SQL statementsSQL data service queries 24

SQuirreL SQL Clientconfiguration 50copying the driver file 50creating the driver and alias 50

startup typeconfiguring SQL data services 65

Ttemporary tables

description 7operations 8rules and guidelines 9

third-party client toolssupported third-party tools 43

Third-party Client Toolstroubleshooting 53

timeoutSQL data service connections 65

Toad for Data Analystsconfiguration 51

troubleshootingconverting large numbers to binary 29converting negative values 29Third-party Client Tools 53

Vvirtual column properties

configuring 68

virtual dataoverview 3

virtual stored procedure propertiesconfiguring 68

virtual stored procedurescreating 12defining 12overview 11previewing output 13running 24validating 13

virtual table mappingscreating 10defining 10description 9Informatica Data Director integration 57previewing output 11validating 10

virtual table propertiesconfiguring 67

virtual tablescreating from a data object 6creating manually 6data access methods 5defining relationships 7description 5example 2previewing data 7

Wweb service

logs 71property configuration 65

web servicesoverview 1

WinSQLconfiguration 52

74 Index