Comments
Transcript
Informatica Developer 9.1.0 HotFix 3 トランスフォーメーションガイド
Informatica Developer (参照項目 9.1.0 HotFix 3) トランスフォーメーションガイ ド Informatica Developer トランスフォーメーションガイド 参照項目 9.1.0 HotFix 3 12月 2011 著作権 2009-2011 Informatica. すべての権利を保留する. 本ソフトウェアおよびマニュアルには、Informatica Corporationの所有権下にある情報が収められています。これらは使用および開示の制 限等を定めた使用許諾契約のもとに提供され、著作権法により保護されています。本ソフトウェアのリバースエンジニアリングは禁じられて います。本マニュアルのいかなる部分も、いかなる手段(電子的複写、写真複写、録音など)によっても、Informatica Corporation の事前 の承諾なしに複製または転載することは禁じられています。このソフトウェアは、米国および/または国際的な特許、およびその他の出願中 の特許によって保護されています。 合衆国政府によるソフトウェアの使用、複製または開示は、DFARS 227.7202-1(a)および227.7702-3(a)(1995年)、DFARS 252.227-7013(C)(1)(ii)(1988年10月)、FAR 12.212(a)(1995年)、FAR 52.227-19、またはFAR 52.227-14(ALT III)に記載されて いるとおりに、当該ソフトウェア使用許諾契約に定められた制限によって規制されます。 本製品または本書の情報は、予告なしに変更されることがあります。お客様が本製品または本書内に問題を発見された場合は、書面にて当社 までお知らせください。 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、およびInformatica Master Data Managementは、Informatica Corporationの米国および世界中の管轄地での商標または登録商標です。その他のすべての企業名および製 品名は、それぞれの企業の商標または登録商標です。 本ソフトウェアまたはドキュメントの一部は、次のサードパーティが有する著作権に従います(ただし、これらに限定されません)。 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. All rights 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 (C) Rogue Wave Software, Inc. All rights reserved. Copyright © Teradata Corporation. All Rights Reserved.Copyright © Yahoo! Inc. All rights reserved. Copyright © Glyph & Cog, LLC. All Rights Reserved.Copyright (C) Thinkmap, Inc. All rights reserved. Copyright (C) Clearpace Software Limited. All Rights Reserved.Copyright (C) Information Builders, Inc. All rights reserved. Copyright (C) OSS Nokalva, Inc. All rights reserved. Copyright Edifecs, Inc. All rights reserved. Copyright Cleo Communications, Inc. All rights reserved.Copyright © International Organization for Standardization 1986. All Rights Reserved.Copyright © ejtechnologies GmbH . All Rights Reserved.Copyright © Jaspersoft Corporation. All Rights Reserved. 本製品には、Apache Software Foundation(http://www.apache.org/)によって開発されたソフトウェア、およびApache License, Version 2.0(「ライセンス」)の下に許諾されたその他のソフトウェアが含まれています。ライセンスのコピーはhttp://www.apache.org/licenses/ LICENSE-2.0から入手することができます。適用法にて要求されないか書面にて合意されない限り、ライセンスの下に配布されるソフトウェ アは「現状のまま」で配布され、明示的あるいは黙示的かを問わず、いかなる種類の保証も行われません。ライセンス下での許諾および制限 を定める具体的文言については、ライセンスを参照してください。 本製品には、Mozilla(http://www.mozilla.org/)によって開発されたソフトウェア、ソフトウェアcopyright The JBoss Group, LLC, all rights reserved、ソフトウェアcopyright, Red Hat Middleware, LLC, all rights reserved、Copyright © 1999-2006 by Bruno Lowagie and Paulo SoaresおよびGNU Lesser General Public License Agreement(http://www.gnu.org/licenses/lgpl.htmlを参照)に基づいて許諾 されたその他のソフトウェアが含まれています。資料は、Informaticaが無料で提供しており、一切の保証を伴わない「現状渡し」で提供さ れるものとし、Informatica Corporationは市場性および特定の目的の適合性の黙示の保証などを含めて、一切の明示的及び黙示的保証の責 任を負いません。 >製品には、ワシントン大学、カリフォルニア大学アーバイン校、およびバンダービルト大学のDouglas C.Schmidtおよび同氏のリサーチグル ープが著作権を持つACE(TM)およびTAO(TM)ソフトウェアが含まれています。Copyright © 1993-2006, all rights reserved. 本製品には、OpenSSL Toolkitを使用するためにOpenSSL Projectが開発したソフトウェア(copyright The OpenSSL Project.All Rights Reserved)が含まれています。また、このソフトウェアの再配布は、http://www.openssl.orgおよびhttp://www.openssl.org/source/ license.htmlにある使用条件に従います。 本ソフトウェアには、CurlソフトウェアCopyright 1996-2007, Daniel Stenberg, <[email protected]>が含まれます。All Rights Reserved.本 ソフトウェアに関する許諾および制限は、http://curl.haxx.se/docs/copyright.htmlにある使用条件に従います。すべてのコピーに上記の 著作権情報とこの許諾情報が記載されている場合、目的に応じて、本ソフトウェアの使用、コピー、変更、ならびに配布が有償または無償で 許可されます。 本製品には、ソフトウェアcopyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.が含まれます。本ソフトウェアに関する許諾お よび制限は、http://www.dom4j.org/license.htmlにある使用条件に従います。 製品には、ソフトウェアcopyright (C) 2004-2007, The Dojo Foundationが含まれます。All Rights Reserved.本ソフトウェアに関する許諾 および制限は、http://dojotoolkit.org/licenseにある使用条件に従います。 本製品には、ICUソフトウェアcopyright International Business Machines Corporationおよび他のソフトウェアが含まれます。All Rights Reserved.本ソフトウェアに関する許諾および制限は、http://source.icu-project.org/repos/icu/icu/trunk/license.htmlにある使用条件 に従います。 本製品には、ソフトウェアcopyright © 1996-2006 Per Bothnerが含まれます。All Rights Reserved.お客様がこのようなソフトウェアを使 用するための権利は、ライセンスで規定されています。http://www.gnu.org/software/kawa/Software-License.htmlを参照してください。 本製品には、OSSP UUIDソフトウェアCopyright (C) 2002 Ralf S. Engelschall, Copyright (C) 2002 The OSSP Project Copyright (C) 2002 Cable & Wireless Deutschlandが含まれます。本ソフトウェアに関する許諾および制限は、http://www.opensource.org/licenses/mitlicense.phpにある使用条件に従います。 本製品には、Boost(http://www.boost.org/)によって開発されたソフトウェアまたはBoostソフトウェアライセンスの下で開発されたソフ トウェアが含まれています。本ソフトウェアに関する許諾および制限は、http://www.boost.org/LICENSE_1_0.txtにある使用条件に従いま す。 本製品には、ソフトウェアcopyright © 1997-2007 University of Cambridgeが含まれます。本ソフトウェアに関する許諾および制限は、 http://www.pcre.org/license.txtにある使用条件に従います。 本製品には、ソフトウェアcopyright (C) 2007 The Eclipse Foundationが含まれます。All Rights Reserved.本ソフトウェアに関する許諾 および制限は、http://www.eclipse.org/org/documents/epl-v10.phpにある使用条件に従います。 本製品には、http://www.tcl.tk/software/tcltk/license.html、http://www.bosrup.com/web/overlib/?License、http://www.stlport.org/ doc/license.html、http://www.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/licenseagreements/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://developer.apple.com/library/mac/#samplecode/HelpHook/Listings/HelpHook_java.html、http:// www.jcraft.com/jsch/LICENSE.txt、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の条項の下に許諾されたソフトウェアが含まれています。 本製品には、Academic Free License(http://www.opensource.org/licenses/afl-3.0.php)、Common Development Distribution License (http://www.opensource.org/licenses/cddl1.php)、Common Public License(http://www.opensource.org/licenses/cpl1.0.php)、Sun Binary Code License Agreement Supplemental License Terms、BSD License(http://www.opensource.org/licenses/bsd-license.php)、 MIT License(http://www.opensource.org/licenses/mit-license.php)、およびArtistic License(http://www.opensource.org/licenses/ artistic-license-1.0)に基づいて許諾されたソフトウェアが含まれています。 本製品には、ソフトウェアcopyright © 2003-2006 Joe WaInes, 2006-2007 XStream Committersが含まれています。All Rights Reserved.本 ソフトウェアに関する許諾および制限は、http://j.org/license.htmlにある使用条件に従います。本製品には、Indiana University Extreme! Labによって開発されたソフトウェアが含まれています。詳細については、http://www.extreme.indiana.edu/を参照してくださ い。 本ソフトウェアは、米国の特許番号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,254,590、 7,281,001、7,421,458、7,496,588、7,523,121、7,584,422、7,720,842、7,721,270、および7,774,791、および国際的な特許、ならびにその 他の出願中の特許によって保護されています。 免責: 本文書は、一切の保証を伴わない「現状渡し」で提供されるものとし、Informatica Corporationは他社の権利の非侵害、市場性およ び特定の目的への適合性の黙示の保証などを含めて、一切の明示的および黙示的保証の責任を負いません。Informatica Corporationでは、 本ソフトウェアまたはドキュメントに誤りのないことを保証していません。本ソフトウェアまたはドキュメントに記載されている情報には、 技術的に不正確な記述や誤植が含まれる場合があります。本ソフトウェアまたはドキュメントの情報は、予告なしに変更されることがありま す。 特記事項 このInformatica製品(以下「ソフトウェア」)には、Progress Software Corporation(以下「DataDirect」)の事業子会社である DataDirect Technologiesからの特定のドライバ(以下「DataDirectドライバ」)が含まれています。DataDirectドライバには、次の用語お よび条件が適用されます。 1.DataDirectドライバは、特定物として現存するままの状態で提供され、商品性の保証、特定目的適合性の保証および法律上の瑕疵担保 責任を含むすべての明示もしくは黙示の保証責任を負わないものとします。国または地域によっては、法律の強行規定により、保証責任 の制限が禁じられる場合、強行規定の制限を受けるものとします。 2.DataDirectまたは第三者は、予見の有無を問わず発生したODBCドライバの使用に関するいかなる直接的、間接的、偶発的、特別、ある いは結果的損害に対して責任を負わないものとします。本制限事項は、すべての訴訟原因に適用されます。訴訟原因には、契約違反、保 証違反、過失、厳格責任、詐称、その他の不法行為を含みますが、これらに限るものではありません。 Part Number: IN-TG-91000-HF3-0001 目次 序文.............................................. xv Informaticaのリソース. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Informaticaカスタマポータル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Informaticaのマニュアル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv InformaticaのWebサイト. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Informatica How-To Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi Informatica Knowledge Base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi Informatica Multimedia Knowledge Base. . . . . . . . . . . . . . . . . . . . . xvi Informaticaグローバルカスタマサポート. . . . . . . . . . . . . . . . . . . . . xvi 第 1 章 : トランスフォーメーションに関する作業..... 1 トランスフォーメーションに関する作業の概要. . . . . . . . . . . . . . . . . . . . . . 1 アクティブなトランスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . 1 パッシブなトランスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . . . 2 複数ストラテジのトランスフォーメーション. . . . . . . . . . . . . . . . . . . . . 2 トランスフォーメーションの説明. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 トランスフォーメーションの開発. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 再利用可能なトランスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . . . . 6 再利用可能なトランスフォーメーションのインスタンスと継承される変 更. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 再利用可能なトランスフォーメーションの編集. . . . . . . . . . . . . . . . . . . 7 トランスフォーメーションの式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 式エディタ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 式内のポート名. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 ポートへの式の追加. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 式内のコメント. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 式の検証. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 参照データ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 参照データのタイプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 コンテンツセット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 文字セット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 パターンセット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 正規表現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 トークンセット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 コンテンツセットの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 再利用可能なコンテンツ式の作成. . . . . . . . . . . . . . . . . . . . . . . . . . . 16 目次 i トランスフォーメーションの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 第 2 章 : アドレスバリデータトランスフォーメーショ ン................................................ 18 アドレスバリデータトランスフォーメーションの概要. . . . . . . . . . . . . . . . . 18 アドレスバリデータトランスフォーメーションの入力ポートグループ. . . . . . . 20 アドレスバリデータトランスフォーメーションの出力ポートグループ. . . . . . . 21 複数インスタンスのポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 アドレス検証プロジェクト. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 フォーマットされたアドレスと郵便事業者の住所表記基準. . . . . . . . . . . . . . 23 アドレスバリデータのステータスポート. . . . . . . . . . . . . . . . . . . . . . . . . . 24 [要素入力のステータス]出力ポートの値. . . . . . . . . . . . . . . . . . . . . 25 [要素の関連性]出力ポートの値. . . . . . . . . . . . . . . . . . . . . . . . . . . 27 [要素の結果ステータス]出力ポートの値. . . . . . . . . . . . . . . . . . . . . 28 MailabilityScore出力ポートの値. . . . . . . . . . . . . . . . . . . . . . . . . . . 30 MatchCode出力ポートの値. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 GeoCodingStatus出力ポートの値. . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 アドレス参照データファイルのステータス. . . . . . . . . . . . . . . . . . . . . . . . 33 アドレスバリデータトランスフォーメーションの詳細プロパティ. . . . . . . . . . 34 大文字小文字表記. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 国. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 国のタイプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 デフォルトの国. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 要素の略式表記. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 実行インスタンス数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 入力形式の種類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 国を含む入力形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 行セパレータ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 一致する代替用語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 一致するスコープ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 モード. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 最適化レベル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 出力形式の種類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 国を含む出力形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 優先される言語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 優先されるスクリプト. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 アドレスバリデータトランスフォーメーションの全般設定. . . . . . . . . . . . . . 41 提案リストモード. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 認証レポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 AMASレポートのフィールド. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 ii 目次 CASSレポートのフィールド. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 SERPレポートのフィールド. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 アドレスバリデータトランスフォーメーションの設定. . . . . . . . . . . . . . . . . 46 アドレスバリデータトランスフォーメーションへのポートの追加. . . . . . . . . . 46 ユーザー定義テンプレートの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 アドレスバリデータのモデルの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 認証レポートの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 第 3 章 : アグリゲータトランスフォーメーショ ン................................................ 49 アグリゲータトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . 49 アグリゲータトランスフォーメーションの開発. . . . . . . . . . . . . . . . . . . . . 50 アグリゲータトランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . 50 アグリゲータトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . 51 集計キャッシュ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 集計式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 集計関数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 ネストされた集計関数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 集計式の条件句. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Group Byポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 非集計式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Group Byポートのデフォルト値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 アグリゲータトランスフォーメーションの[ソート済み入力]オプション. . . . 55 [ソート済み入力]オプションの条件. . . . . . . . . . . . . . . . . . . . . . . . 56 アグリゲータトランスフォーメーションでのデータのソート. . . . . . . . . . 56 再利用可能なアグリゲータトランスフォーメーションの作成. . . . . . . . . . . . . 57 再利用不可能なアグリゲータトランスフォーメーションの作成. . . . . . . . . . . 58 アグリゲータトランスフォーメーションに関するヒント. . . . . . . . . . . . . . . . 58 アグリゲータトランスフォーメーションのトラブルシューティング. . . . . . . . 59 第 4 章 : 関連付けトランスフォーメーション........ 60 関連付けトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . 60 メモリ割り当て. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 第 5 章 : 大文字小文字変換プログラムトランスフォ ーメーション...................................... 63 大文字小文字変換プログラムトランスフォーメーションの概要. . . . . . . . . . . 63 大文字小文字ストラテジのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . 64 大文字小文字変換プログラムストラテジの設定. . . . . . . . . . . . . . . . . . . . . 64 目次 iii 第 6 章 : 比較トランスフォーメーション............ 66 比較トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . . 66 フィールド一致ストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 バイグラム. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 ハミング距離. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 エディット距離. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Jaro距離. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 ハミング距離の反転. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 IDマッチングストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 比較ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 第 7 章 : 統合トランスフォーメーション............ 71 統合トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . . 71 第 8 章 : カスタムデータトランスフォーメーショ ン................................................ 72 カスタムデータトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . 72 データトランスフォーメーションの設定. . . . . . . . . . . . . . . . . . . . . . . 73 カスタムデータトランスフォーメーションのビュー. . . . . . . . . . . . . . . . . . 73 [概要]ビュー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 [サービス]ビュー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 [構造]ビュー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 [詳細]ビュー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 ポート設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 入力タイプおよび出力タイプ別のポート. . . . . . . . . . . . . . . . . . . . . . . 79 追加のポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 データトランスフォーメーションサービスからのポートの作成. . . . . . . . 81 カスタムデータトランスフォーメーションの作成. . . . . . . . . . . . . . . . . . . . 82 第 9 章 : データマスキングトランスフォーメーショ ン................................................ 84 データマスキングトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . 84 マスキング方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 キーマスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ランダムマスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 マスキングルール. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 マスク形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ソース文字列の文字. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 結果文字列の置換文字. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 iv 目次 範囲. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ブラー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 特殊マスク形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 社会保障番号. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 電子メールアドレス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 クレジットカード番号. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 電話番号. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 URL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 IPアドレス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 社会保険番号. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 デフォルト値ファイル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 データマスキングトランスフォーメーションの設定. . . . . . . . . . . . . . . . . . 97 データマスキングトランスフォーメーションの作成. . . . . . . . . . . . . . . 97 ポートの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 各ポートのデータマスキングの設定. . . . . . . . . . . . . . . . . . . . . . . . . . 98 マスクされたデータのプレビュー. . . . . . . . . . . . . . . . . . . . . . . . . . . 99 データマスキングの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Read_Customer Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 カスタマデータマスキングトランスフォーメーション. . . . . . . . . . . . . 100 カスタマテストデータ結果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 第 10 章 : ディシジョントランスフォーメーショ ン............................................... 102 ディシジョントランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . 102 ディシジョントランスフォーメーションの関数. . . . . . . . . . . . . . . . . . . . . 103 ディシジョントランスフォーメーションの条件文 . . . . . . . . . . . . . . . . . . 105 ディシジョントランスフォーメーションの演算子. . . . . . . . . . . . . . . . . . . 105 ディシジョンストラテジの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 第 11 章 : 例外トランスフォーメーション.......... 108 例外トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . 108 例外管理プロセスフロー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 不良レコードの例外. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 不良レコードの例外の品質に関する問題. . . . . . . . . . . . . . . . . . . . . . 110 不良レコードの例外トランスフォーメーションの入力. . . . . . . . . . . . . 111 不良レコードの例外トランスフォーメーションの出力. . . . . . . . . . . . . 111 不良レコードの例外の[設定]ビュー. . . . . . . . . . . . . . . . . . . . . . . 112 不良レコードの例外の[問題の割り当て]ビュー. . . . . . . . . . . . . . . . 112 不良レコードの例外マッピング. . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 不良レコードの例外マッピングの例. . . . . . . . . . . . . . . . . . . . . . . . . 114 目次 v 重複している可能性のあるレコードの例外. . . . . . . . . . . . . . . . . . . . . . . 115 重複レコードの例外のクラスタ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 重複レコードの例外トランスフォーメーションの入力. . . . . . . . . . . . . 116 重複レコードの例外トランスフォーメーションの出力. . . . . . . . . . . . . 117 重複レコードの例外トランスフォーメーションの[設定]ビュー. . . . . . 117 重複レコードの例外マッピング. . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 重複レコードの例外マッピングの例. . . . . . . . . . . . . . . . . . . . . . . . . 119 例外トランスフォーメーションの設定. . . . . . . . . . . . . . . . . . . . . . . . . . 121 第 12 章 : 式トランスフォーメーション............. 123 式トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 式トランスフォーメーションの開発. . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 式トランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . . . . 124 式トランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . . . . . 125 第 13 章 : フィルタトランスフォーメーション. . . . . 126 フィルタトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . 126 フィルタトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . 127 フィルタ条件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 NULL値を含む行のフィルタ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 フィルタトランスフォーメーションのパフォーマンスのヒント. . . . . . . . . . 128 第 14 章 : Javaトランスフォーメーション......... 129 Javaトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . 129 再利用可能および再利用不可能なJavaトランスフォーメーション. . . . . . 130 アクティブJavaトランスフォーメーションとパッシブJavaトランスフォ ーメーション. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 データ型変換. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Javaトランスフォーメーションの設計. . . . . . . . . . . . . . . . . . . . . . . . . . 132 Javaトランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . . . . 133 ポートの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 デフォルトポート値の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Javaトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . . 134 Developerツールクライアントのクラスパスの設定. . . . . . . . . . . . . . . 136 Data Integration Serviceのクラスパスの設定. . . . . . . . . . . . . . . . . 137 Javaコードの開発. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Javaコードスニペットの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Javaパッケージのインポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Helperコードの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 JavaトランスフォーメーションのJavaのプロパティ. . . . . . . . . . . . . . . . . . 142 vi 目次 [インポート]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 [ヘルパ]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 [入力時]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 [最後]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 [関数]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 [コード全体]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Javaトランスフォーメーションの作成. . . . . . . . . . . . . . . . . . . . . . . . . . 145 再利用可能なJavaトランスフォーメーションの作成. . . . . . . . . . . . . . . 145 再利用不可能なJavaトランスフォーメーションの作成. . . . . . . . . . . . . 145 Javaトランスフォーメーションのコンパイル. . . . . . . . . . . . . . . . . . . . . . 146 Javaトランスフォーメーションのトラブルシューティング. . . . . . . . . . . . . 147 コンパイルエラーのソースの検出. . . . . . . . . . . . . . . . . . . . . . . . . . 147 コンパイルエラーの原因の特定. . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 第 15 章 : JavaトランスフォーメーションAPIのリフ ァレンス......................................... 149 JavaトランスフォーメーションAPIメソッドの概要. . . . . . . . . . . . . . . . . . 149 defineJExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 failSession. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 generateRow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 getInRowType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 incrementErrorCount. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 invokeJExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 isNull. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 logError. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 logInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 resetNotification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 setNull. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 第 16 章 : Java式................................ 159 Java式の概要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 式の関数タイプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 [関数の定義]ダイアログボックスを使用した式の定義. . . . . . . . . . . . . . . 160 手順1. 関数の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 手順2. 式の作成と検証. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 手順3. 式のJavaコードの生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 [関数の定義]ダイアログボックスを使用した式の作成とJavaコードの 生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Java式のテンプレート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 単純なインタフェースに関する作業. . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 目次 vii invokeJExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 単純なインタフェースの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 高度なインタフェースに関する作業. . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 高度なインタフェースを使用した式の呼び出し. . . . . . . . . . . . . . . . . . 164 高度なインタフェースに関する作業のルールとガイドライン. . . . . . . . . 165 EDataTypeクラス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 JExprParamMetadataクラス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 defineJExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 JExpressionクラス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 高度なインタフェースの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 JExpressionクラスAPIリファレンス. . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 getBytes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 getDouble. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 getInt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 getLong. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 getResultDataType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 getResultMetadata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 getStringBuffer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 呼び出し. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 isResultNull. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 第 17 章 : ジョイナトランスフォーメーション. . . . . 173 ジョイナトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . 173 ジョイナトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . 174 ジョイナトランスフォーメーションポート. . . . . . . . . . . . . . . . . . . . . . . 175 結合条件の定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 単純条件タイプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 詳細条件タイプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 結合タイプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 ノーマル結合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 マスタ外部結合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 明細外部結合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 完全外部結合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 ジョイナトランスフォーメーションでのソート済み入力. . . . . . . . . . . . . . . 179 ソート順の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 マッピングへのトランスフォーメーションの追加. . . . . . . . . . . . . . . . 180 結合条件のルールとガイドライン. . . . . . . . . . . . . . . . . . . . . . . . . . 181 結合条件とソート順の例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 同じソースのデータの結合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 同じパイプラインの2つのブランチの結合. . . . . . . . . . . . . . . . . . . . . 182 viii 目次 同じソースの2つのインスタンスの結合. . . . . . . . . . . . . . . . . . . . . . . 183 同じソースのデータ結合のガイドライン. . . . . . . . . . . . . . . . . . . . . . 183 ソースパイプラインのブロック. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 未ソートジョイナトランスフォーメーション. . . . . . . . . . . . . . . . . . . 184 ソート済みジョイナトランスフォーメーション. . . . . . . . . . . . . . . . . . 184 ジョイナトランスフォーメーションのパフォーマンスのヒント. . . . . . . . . . 185 ジョイナトランスフォーメーションのルールとガイドライン. . . . . . . . . . . . 186 第 18 章 : キージェネレータトランスフォーメーショ ン............................................... 187 キージェネレータトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . 187 Soundexストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Soundexストラテジのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . 188 文字列ストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 文字列ストラテジのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 NYSIISストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 キージェネレータの出力ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 グループ化ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 キー作成のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 第 19 章 : ラベラトランスフォーメーション........ 192 ラベラトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 192 ラベラトランスフォーメーションのストラテジ. . . . . . . . . . . . . . . . . . . . . 193 ラベラトランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . . 193 文字ラベル適用操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 文字セット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 文字ラベル適用のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 トークンラベル適用操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 トークンセット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 正規表現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 トークンラベル適用のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . 196 ラベル適用ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 第 20 章 : ルックアップトランスフォーメーショ ン............................................... 199 ルックアップトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . 199 接続されたルックアップと接続されていないルックアップ. . . . . . . . . . . . . 200 接続されたルックアップ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 接続されていないルックアップ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 ルックアップトランスフォーメーションの開発. . . . . . . . . . . . . . . . . . . . . 202 目次 ix ルックアップ条件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 ルックアップトランスフォーメーションの条件のルールとガイドライ ン. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 ルックアップキャッシュ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 共有キャッシュ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 永続キャッシュ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 フラットファイルまたはリレーショナルルックアップの ランタイムプロパテ ィ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 フラットファイルルックアップトランスフォーメーションの詳細プロパティ. . 207 リレーショナルルックアップトランスフォーメーションの詳細プロパティ. . . 208 論理データオブジェクトのルックアップトランスフォーメーションの詳細プ ロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 再利用可能なルックアップトランスフォーメーションの作成. . . . . . . . . . . . 210 再利用不可能なルックアップトランスフォーメーションの作成. . . . . . . . . . 211 接続されていないルックアップトランスレーションの作成. . . . . . . . . . . . . 212 接続されていないルックアップの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 第 21 章 : 一致トランスフォーメーション.......... 216 一致トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . 216 重複分析の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 一致トランスフォーメーションのプロセス. . . . . . . . . . . . . . . . . . . . . . . 218 一致トランスフォーメーションのコンポーネント. . . . . . . . . . . . . . . . . . . 219 一致トランスフォーメーションのビュー. . . . . . . . . . . . . . . . . . . . . . 219 一致トランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . 219 フィールド一致. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 フィールド一致ストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 フィールド一致ストラテジのプロパティ. . . . . . . . . . . . . . . . . . . . . . 223 フィールド一致出力のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . 224 デュアルソースのフィールド一致プロパティ. . . . . . . . . . . . . . . . . . . 225 フィールド一致の詳細プロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . 225 ID一致. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 ID一致タイプのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 IDマッチングストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 ID一致ストラテジのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 ID一致出力のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 IDマッチングの詳細プロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 一致マプレット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 一致マプレットの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 一致マプレットの使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 一致操作の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 x 目次 第 22 章 : マージトランスフォーメーション........ 234 マージトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 234 マージストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 第 23 章 : パーサートランスフォーメーション. . . . . 236 パーサートランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . 236 パーサートランスフォーメーションの設計. . . . . . . . . . . . . . . . . . . . . . . 237 トークン解析モード. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 正規表現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 トークンセット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 トークン解析ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 トークン解析のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 トークン解析ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 パターンベースの解析モード. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 パターンセット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 パターンベースの解析ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 解析パターンの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 第 24 章 : ランクトランスフォーメーション........ 243 ランクトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 243 文字列値のランク付け. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 ランクキャッシュ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 ランクトランスフォーメーションのプロパティ. . . . . . . . . . . . . . . . . . 244 ランクトランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . . 245 ランクポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 ランクインデックス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 グループの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 ランクトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . 247 第 25 章 : ルータトランスフォーメーション........ 249 ルータトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 249 グループに関する作業. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 入力グループ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 出力グループ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 グループフィルタ条件の使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 グループの追加. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 ポートに関する作業. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 マッピング内のルータトランスフォーメーションの接続. . . . . . . . . . . . . . . 253 ルータトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . 253 目次 xi 第 26 章 : ソータートランスフォーメーション. . . . . 255 ソータートランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . 255 ソータートランスフォーメーションの開発. . . . . . . . . . . . . . . . . . . . . . . 256 ソータートランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . 256 ソータキャッシュサイズ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 ソータートランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . 258 ソータートランスフォーメーションの作成. . . . . . . . . . . . . . . . . . . . . . . 259 再利用可能なソータートランスフォーメーションの作成. . . . . . . . . . . . 259 再利用不可能なソータートランスフォーメーションの作成. . . . . . . . . . 259 ソータートランスフォーメーションの例. . . . . . . . . . . . . . . . . . . . . . . . . 260 第 27 章 : SQLトランスフォーメーション........... 261 SQLトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . . 261 詳細プロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 SQLトランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . . . . . 263 入力ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 出力ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 パススルーポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 SQLErrorポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 影響を受けた行の数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 SQLトランスフォーメーションクエリ. . . . . . . . . . . . . . . . . . . . . . . . . . . 266 SQLクエリの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 入力行と出力行のカーディナリティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 クエリ文の処理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 ポート設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 最大出力行数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 エラー行. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 SQLエラー時に続行. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 SQLトランスフォーメーションの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 論理データオブジェクトマッピング. . . . . . . . . . . . . . . . . . . . . . . . . 272 Salaryテーブル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Employeeテーブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 SQLトランスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 出力. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 第 28 章 : 標準化トランスフォーメーション........ 277 標準化トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 277 標準化ストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 標準化のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 xii 目次 標準化ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 第 29 章 : 共有体トランスフォーメーション........ 280 共有体トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 280 グループおよびポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 共有体トランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . 281 共有体トランスフォーメーションの処理. . . . . . . . . . . . . . . . . . . . . . . . . 282 共有体トランスフォーメーションの作成. . . . . . . . . . . . . . . . . . . . . . . . . 282 再利用可能な共有体トランスフォーメーションの作成. . . . . . . . . . . . . 282 再利用不可能な共有体トランスフォーメーションの作成. . . . . . . . . . . . 283 第 30 章 : アップデートストラテジトランスフォーメ ーション......................................... 284 アップデートストラテジトランスフォーメーションの概要. . . . . . . . . . . . . 284 アップデートストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 マッピング内の行のフラグ設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 アップデートストラテジ式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 アップデートストラテジトランスフォーメーションの詳細プロパテ ィ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 アグリゲータトランスフォーメーションとアップデートストラテジトラ ンスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 個々のターゲットに対する更新オプションの指定. . . . . . . . . . . . . . . . . . . 287 第 31 章 : Webサービスコンシューマトランスフォー メーション....................................... 289 Webサービスコンシューマトランスフォーメーションの概要. . . . . . . . . . . . . 289 SOAPメッセージ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 WSDLファイル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Webサービスのセキュリティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 WSDLの選択. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Webサービスコンシューマトランスフォーメーションのポート. . . . . . . . . . . 292 HTTPヘッダー入力ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 その他の入力ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Webサービスコンシューマトランスフォーメーションの入力マッピング. . . . . . 294 入力ポートをノードにマップするためのルールとガイドライン. . . . . . . 295 [ビューのカスタマイズ]のオプション. . . . . . . . . . . . . . . . . . . . . . 295 操作入力への入力ポートのマッピング. . . . . . . . . . . . . . . . . . . . . . . 296 Webサービスコンシューマトランスフォーメーションの出力マッピング. . . . . . 297 ノードを出力ポートにマップするためのルールとガイドライン. . . . . . . 298 SOAPメッセージをXMLとしてマップ . . . . . . . . . . . . . . . . . . . . . . . . . 298 目次 xiii [ビューのカスタマイズ]のオプション. . . . . . . . . . . . . . . . . . . . . . 298 出力ポートへの操作出力のマッピング. . . . . . . . . . . . . . . . . . . . . . . 299 Webサービスコンシューマトランスフォーメーションの詳細プロパティ. . . . . 301 Webサービスのエラー処理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 メッセージの圧縮 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 Webサービスコンシューマトランスフォーメーションの作成. . . . . . . . . . . . . 304 Webサービスコンシューマトランスフォーメーションの例. . . . . . . . . . . . . . 306 入力ファイル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 論理データオブジェクトモデル. . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 論理データオブジェクトマッピング. . . . . . . . . . . . . . . . . . . . . . . . . 307 Webサービスコンシューマトランスフォーメーション. . . . . . . . . . . . . . 308 第 32 章 : 加重平均トランスフォーメーション. . . . . 310 加重平均トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . 310 付録 A : トランスフォーメーションの区切り文 字............................................... 312 トランスフォーメーションの区切り文字の概要. . . . . . . . . . . . . . . . . . . . . 312 索引............................................. 314 xiv 目次 序文 『Informatica Developerトランスフォーメーションガイド』 は、データ品質とデータサー ビスの開発者を対象としています。 本書では、データ品質の概念、フラットファイルとリ レーショナルデータベースの概念、および作業環境のデータベースエンジンについて理解 していることを前提としています。また、『 Informatica Developerユーザーガイド』で説 明されている概念について理解していることも前提となります。 Informaticaのリソース Informaticaカスタマポータル Informaticaのユーザーとして、Informaticaカスタマポータルサイト (http://mysupport.informatica.com)にアクセスできます。このサイトには、製品情 報、ユーザーグループ情報、ニュースレター、Informaticaカスタマサポート事例管理シス テム(ATLAS)へのアクセス、Informatica How-To Library、Informatica Knowledge Base、Informatica Product Documentation、Informaticaユーザーグループコミュニティ へのアクセスが含まれています。 Informaticaのマニュアル Informaticaのマニュアルチームは、正確で役に立つマニュアルの作成に努めています。こ のマニュアルに関する質問、コメント、ご意見の電子メールの送付先は、Informaticaマニ ュアルチーム([email protected])です。 お客様のフィードバック は、マニュアルの改良に利用させていただきます。コメントに返信をご希望のお客様は、 その旨をお知らせください。 マニュアルチームは、必要に応じてマニュアルを更新します。製品の最新のマニュアルを 入手するには、http://mysupport.informatica.comから製品マニュアルにアクセスしま す。 InformaticaのWebサイト Informatica社のWebサイトは、http://www.informatica.comからアクセスできます。この サイトでは、Informatica社の概要と沿革、今後のイベント、営業拠点などの情報を提供し ています。また、製品情報やパートナー情報もあります。サービス関連のページには、テ xv クニカルサポート、トレーニングと教育、および実装に関するサービスの重要な情報を掲 載しています。 Informatica How-To Library Informaticaのユーザーとして、Informatica How-To Library (http://mysupport.informatica.com)にアクセスできます。How-To Libraryは、 Informaticaの製品および機能についての詳細を確認できるリソースのコレクションです。 一般的な問題に対するソリューションを提供したり、機能や動作を比較したり、特定の実 際のタスクを実行するための方法を示したりする記事やインタラクティブなデモンストレ ーションが含まれています。 Informatica Knowledge Base Informaticaのユーザーとして、Informatica Knowledge Base (http://mysupport.informatica.com)にアクセスできます。このKnowledge Baseを利用 して、Informatica製品に関する既知の技術的問題の解決策を検索することができます。ま た、FAQ(よくある質問)の答え、技術的ホワイトペーパー、技術的なヒントも得られま す。Knowledge Baseに関する質問、コメント、ご意見の電子メールの送付先は、 Informatica Knowledge Baseチーム([email protected])です。 Informatica Multimedia Knowledge Base Informaticaのユーザとして、Informatica Multimedia Knowledge Base (http://mysupport.informatica.com)にアクセスできます。Multimedia Knowledge Baseは、一般的な概念の理解を助け、具体的な各タスクの実行をガイドする教育用のマル チメディアファイルの集まりです。 Multimedia Knowledge Baseに関する質問、コメン ト、ご意見の電子メールの送付先は、Informatica Knowledge Baseチーム ([email protected])です。 Informaticaグローバルカスタマサポート 電話、またはオンラインサポートからカスタマサポートセンターに連絡できます。 オンラ インサポートのご利用には、ユーザ名とパスワードが必要です。 http://mysupport.informatica.comから、ユーザー名とパスワードが入手できます。 電話によるInformaticaグローバルカスタマサポートへの問い合わせ先は次のとおりです。 北米/南米 ヨーロッパ/中東/アフ リカ アジア/オーストラ リア フリーダイヤル フリーダイヤル フリーダイヤル ブラジル: 0800 891 0202 フランス: 0805 804632 オーストラリア: 1 800 151 830 メキシコ: 001 888 209 8853 イタリア: 800 915 985 北米: +1 877 463 2435 ドイツ: 0800 5891281 オランダ: 0800 2300001 ポルトガル: 800 208 360 スペイン: 900 813 166 xvi 序文 ニュージーランド: 09 9 128 901 北米/南米 ヨーロッパ/中東/アフ リカ アジア/オーストラ リア スイス: 0800 463 200 有料(標準料金) 英国: 0800 023 4632 インド:+91 80 4112 5738 有料(標準料金) ベルギー: +31 30 6022 797 フランス: +33 1 4138 9226 ドイツ:+49 1805 702 702 オランダ:+31 306 022 797 英国: +44 1628 511445 はじめに xvii xviii 第 1 章 トランスフォーメーションに 関する作業 トランスフォーメーションに関する作業の概 要 トランスフォーメーションは、データの生成、変更、または受け渡しを行うオブジェクト です。 Informatica Developerには、特定の関数を実行する一連のトランスフォーメーションが用 意されています。 例えば、アグリゲータトランスフォーメーションはデータのグループに 対して計算を実行します。 マッピング内のトランスフォーメーションは、Data Integration Serviceがデータに対し て実行する処理を表します。 データは、マッピングまたはマプレット内のリンクされたト ランスフォーメーションポートを通過します。 トランスフォーメーションはアクティブであるかパッシブであるかのいずれかです。トラ ンスフォーメーションはデータフローに接続されているか、接続されていないかのいずれ かです。 アクティブなトランスフォーメーション アクティブなトランスフォーメーションは、トランスフォーメーションの前後で行数を変 更します。 または、行タイプを変更します。 例えば、フィルタトランスフォーメーションはフィルタ条件を満たさない行を削除するた め、アクティブなトランスフォーメーションです。 また、アップデートストラテジトラン スフォーメーションは挿入、削除、更新、または拒否のフラグを行に設定するため、アク ティブなトランスフォーメーションです。 複数のアクティブなトランスフォーメーション、または1つのアクティブなトランスフォー メーションと1つのパッシブなトランスフォーメーションを同じダウンストリームトランス フォーメーションまたはトランスフォーメーション入力グループに接続することはできま 1 せん。Data Integration Serviceはアクティブなトランスフォーメーションから渡される 行を連結できない可能性があります。 例えば、マッピング内の1つのブランチに、行に削除のフラグを付けるアップデートストラ テジトランスフォーメーションが含まれているとします。別のブランチには、行に挿入の フラグを付けるアップデートストラテジトランスフォーメーションが含まれています。こ れらのトランスフォーメーションを1つのトランスフォーメーション入力グループに接続し た場合、Data Integration Serviceは行の削除操作と挿入操作を結合できません。 パッシブなトランスフォーメーション パッシブなトランスフォーメーションでは、トランスフォーメーションの前後で行数は変 更されず、行タイプも維持されます。 アップストリームブランチ内のすべてのトランスフォーメーションがパッシブである場 合、複数のトランスフォーメーションを同じダウンストリームトランスフォーメーション またはトランスフォーメーション入力グループに接続できます。 ブランチを発生させるト ランスフォーメーションはアクティブである場合とパッシブである場合があります。 複数ストラテジのトランスフォーメーション 以下のデータ品質トランスフォーメーションでは、トランスフォーメーションのストラテ ジを複数定義することができます。 ¨ 大文字小文字 ¨ ディシジョン ¨ キージェネレータ ¨ ラべラ ¨ 一致 ¨ マージ ¨ パーサー ¨ 標準化 トランスフォーメーションのストラテジごとに異なる入力ポートと出力ポートのセットを 割り当てることができます。 定義したストラテジは、1つのトランスフォーメーションオ ブジェクトに格納されます。 注: 各ストラテジで使用する入力と出力は、[依存関係]ビューで確認できます。 トランスフォーメーションの説明 Developerツールには、共通のトランスフォーメーションとデータ品質トランスフォーメー ションが含まれます。 共通のトランスフォーメーションは、Informatica Data Qualityと 2 章 1: トランスフォーメーションに関する作業 Informatica Data Servicesで使用できます。 データ品質トランスフォーメーションは、 Informatica Data Qualityで使用できます。 次の表に、各トランスフォーメーションを示します。 トランスフォーメー ション タイプ 説明 アドレスバリデータ アクティ ブまたは パッシ ブ/ アドレスデータを修正し、検証情報を返し ます。 接続済 関連付け アクティ ブ/ さまざまな一致クラスタに割り当てられる 重複レコード間のリンクを作成します。 接続済 アグリゲータ アクティ ブ/ 集計の計算を実行します。 接続済 大文字小文字変換プ ログラム パッシ ブ/ 文字列の大文字小文字を標準化します。 接続済 比較 パッシ ブ/ 入力文字列のペア間の類似度を示す数値ス コアを生成します。 接続済 統合 アクティ ブ/ 接続済 カスタムデータ アクティ ブまたは パッシ ブ/ 一致トランスフォーメーションによって重 複として特定されたレコードから、統合さ れたレコードを作成します。 共有ライブラリまたはDLLのプロシージャ を呼び出します。 接続済 ディシジョン パッシ ブ/ 入力データの条件を評価し、それらの条件 の結果に基づいて出力を作成します。 接続済 例外 アクティ ブ/ 接続済 Expression パッシ ブ/ アナリストが確認および編集可能なステー ジングテーブルの例外をロードします。例 外とは、現在の形式ではデータセットに属 さないレコードです。 値を計算します。 接続済 トランスフォーメーションに関する作業の概要 3 トランスフォーメー ション タイプ 説明 Filter アクティ ブ/ データをフィルタリングします。 接続済 Input パッシ ブ/ マプレット入力行を定義します。 接続済 Java アクティ ブまたは パッシ ブ/ Javaで書かれたユーザコードを実行しま す。ユーザロジックのバイトコードはリポ ジトリ内に格納されています。 接続済 ジョイナ アクティ ブ/ 異なるデータベースまたはフラットファイ ルシステムから得たデータを結合します。 接続済 キージェネレータ アクティ ブ/ 選択されたカラム内のデータ値に基づい て、レコードをグループに分類します。 接続済 ラべラ パッシ ブ/ 文字または文字列を示すラベルを作成しま す。 接続済 ルックアップ アクティ ブまたは パッシ ブ/ フラットファイル、リレーショナルテーブ ル、ビュー、またはシノニムからのデータ を検索し、返します。 接続済ま たは未接 続 一致 マージ アクティ ブ/ 接続済 入力レコード間の類似度を示すスコアを生 成し、類似度の高いレコードをグループ化 します。 パッシ ブ/ 複数の入力カラムからデータ値を読み取 り、単一の出力カラムを作成します。 接続済 アウトプット パッシ ブ/ マプレット出力行を定義します。 接続済 パーサー 4 パッシ ブ/ 情報カテゴリのフィールドを作成し、入力 データをこれらのフィールドに解析しま す。 章 1: トランスフォーメーションに関する作業 トランスフォーメー ション タイプ 説明 接続済 ランク アクティ ブ/ レコードのランキング処理を行います。 接続済 ルータ ソータ アクティ ブ/ 接続済 グループ条件に基づいて、複数のトランス フォーメーションにデータをルーティング します。 アクティ ブ/ ソートキーに基づいてデータをソートしま す。 接続済 SQL アクティ ブまたは パッシ ブ/ データベースに対してSQLクエリを実行し ます。 接続済 標準化 パッシ ブ/ 入力文字列の標準化版を生成します。 接続済 共有体 アクティ ブ/ 異なるデータベースまたはフラットファイ ルシステムから得たデータを結合します。 接続済 アップデートストラ テジ アクティ ブ/ 行を挿入、削除、更新、または拒否するか どうかを決定します。 接続済 加重平均 パッシ ブ/ 接続済 照合操作からマッチ率を読み取り、スコア に重みを付け、集計マッチ率を作成しま す。 トランスフォーメーションの開発 マッピングを作成する場合は、トランスフォーメーションを追加し、そのトランスフォー メーションに業務目的に応じたデータ処理方法を設定します。 トランスフォーメーションの開発 5 トランスフォーメーションを開発してマッピングに組み込むには、以下の作業を行いま す。 1. マッピングまたはマプレットの一部として再利用不可能なトランスフォーメーション を作成します。 または、複数のマッピングまたはマプレットに追加する再利用可能な トランスフォーメーションを作成します。 2. トランスフォーメーションを設定します。各タイプのトランスフォーメーションに は、設定可能な固有のオプションのセットがあります。 3. 再利用可能なトランスフォーメーションの場合は、そのトランスフォーメーションを マッピングまたはマプレットに追加します。 4. トランスフォーメーションを他のトランスフォーメーションおよびマッピングまたは マプレットの出力にリンクします。 1つ以上のポートを他のポートにドラッグして、 マッピングまたはマプレットでリンクします。 再利用可能なトランスフォーメーション 再利用可能なトランスフォーメーションは、複数のマッピングまたはマプレットで使用で きるトランスフォーメーションです。 例えば、カナダでの販売付加価値税を計算する式トランスフォーメーションを作成すれ ば、カナダにおける事業コストを分析できます。 いつも同じ作業を行うというのであれ ば、再利用可能なトランスフォーメーションを作成できます。当該のトランスフォーメー ションをマッピングに組み込む必要のある場合には、そのインスタンスをマッピングに追 加してください。トランスフォーメーションの定義を変更した場合には、そのインスタン スはすべてこの変更を受け継ぎます。 Developerツールは再利用可能なトランスフォーメーションを、それを使用するマッピング またはマプレットとは別のメタデータとして格納します。 再利用可能なトランスフォーメ ーションは、プロジェクトまたはフォルダに格納されます。 再利用可能なトランスフォーメーションのインスタンスをマッピングに追加した場合、ト ランスフォーメーションに変更を加えると、マッピングが無効になったり、予期しないデ ータが生成されたりすることがあります。 再利用可能なトランスフォーメーションのインスタン スと継承される変更 再利用可能なトランスフォーメーションをマッピングまたはマプレットに追加する場合に は、このトランスフォーメーションのインスタンスを追加します。 トランスフォーメーシ ョンの定義はマッピングまたはマプレット外にあるのに対して、トランスフォーメーショ ンのインスタンスはマッピングまたはマプレット内に表示されます。 トランスフォーメーションを変更すると、トランスフォーメーションのインスタンスにそ れらの変更が反映されます。 同じトランスフォーメーションを使用するマッピングでそれ ぞれトランスフォーメーションを更新する代わりに、再利用可能なトランスフォーメーシ ョンを一度更新すると、そのトランスフォーメーションのインスタンスすべてに変更が反 映されます。 インスタンスには、トランスフォーメーションのポート、式、プロパティ、 および名前に対する変更が継承されます。 6 章 1: トランスフォーメーションに関する作業 再利用可能なトランスフォーメーションの編集 再利用可能なトランスフォーメーションを編集すると、そのトランスフォーメーションの すべてのインスタンスに変更が継承されます。 変更によっては、再利用可能なトランスフ ォーメーションを使用したマッピングが無効となる場合があります。 再利用可能なトランスフォーメーションは、エディタで開いて編集することができます。 マッピング内でトランスフォーメーションのインスタンスを編集することはできません。 ただし、トランスフォーメーションのランタイムプロパティは編集が可能です。 再利用可能なトランスフォーメーションに以下のいずれかの変更を行うと、そのインスタ ンスを用いるマッピングが無効となる場合があります。 ¨ トランスフォーメーションの1つ以上のポートを削除すると、マッピングの一部または すべてのデータフローからインスタンスが切り離されます。 ¨ ポートのデータ型を変更すると、そのポートから互換性のないデータ型を使用する別の ポートへマッピングできなくなります。 ¨ ポート名を変更すると、そのポートを参照する式は無効となります。 ¨ 再利用可能なトランスフォーメーションに無効な式を入力すると、そのトランスフォー メーションを使用するマッピングは無効となります。 Data Integration Serviceでは 無効なマッピングを実行できません。 トランスフォーメーションの式 一部のトランスフォーメーションでは、式エディタで式を入力できます。 式はデータを変 更します。または、データが条件に一致するかテストします。 トランスフォーメーション言語関数を使用する式を作成します。 トランスフォーメーショ ン言語関数は、データを変換するSQLに似た関数です。 入力または入出力ポートから得たデータの値を使用するポートに、式を入力します。 例え ば、全従業員の給与が含まれる入力ポートIN_SALARYを持つトランスフォーメーションがあ るとします。IN_SALARYカラムの値を後でマッピングに使用できます。このトランスフォー メーションを使用sテンプレート、給与の合計や平均を計算することもできます。 Developerツールでは各計算値について個別の出力ポートを作成する必要があります。 以下の表に、式を入力できるトランスフォーメーションを示します。 トランスフ ォーメーシ ョン 式 戻り値 アグリゲー タ トランスフォーメーションを通過す るすべてのデータに基づいて、集計 を行います。また、集計するレコー ドに対してフィルタを指定して、特 定のレコードを排除できます。たと えば、このトランスフォーメーショ ポートの集計結果。 トランスフォーメーションの式 7 トランスフ ォーメーシ ョン 式 戻り値 ンを用いて、事務所の全従業員の総 数と平均給与を算出できます。 8 Expression 単一の行内の値に基づいて計算を行 います。たとえば、特定品目の価格 や数量に基づいて、注文におけるそ の品目の購入価格合計値の算出がで きます。 ポートの行レベルの計算 結果。 Filter このトランスフォーメーションを通 過する行のフィルタリング条件を指 定します。たとえば、未払い残高の ある顧客についてのBAD_DEBTテーブ ルに顧客データを書き込みたい場合 には、Filterトランスフォーメーシ ョンを用いて顧客データのフィルタ リングができます。 TRUEまたはFALSE。指定 条件を行が満たしている かどうかによります。 TRUEを返す行はこのトラ ンスフォーメーションを 通過し、 通過した各行 にこの値が適用されま す。 ジョイナ 未ソートソースデータで使用される 詳細な条件を指定します。例えば、 名と姓のマスターポートを連結し、 それをフルネーム明細ポートと一致 させることができます。 TRUEまたはFALSE。指定 条件を行が満たしている かどうかによります。選 択した結合タイプに応じ て、Data Integration Serviceは行を結果セッ トに追加するか、または 行を無視します。 ランク ランクに含める行の条件を設定しま す。例えば、現在組織に所属してい る販売員の上位10名をランク付けで きます。 ポートの条件適用結果ま たは計算結果。 ルータ グループ式に基づいて、複数のトラ ンスフォーメーションにデータをル ーティングします。たとえば、この トランスフォーメーションを使用し て、3つの異なる給与レベルに属す る従業員の給与を比較します。これ は、Routerトランスフォーメーショ ンに3つのグループを作成すること によって行うことができます。たと えば、各給与範囲に対して1つのグ ループ式を作成します。 TRUEまたはFALSE。指定 されたグループ式を行が 満たしているかどうかに よります。 TRUEを返す行 は、このトランスフォー メーションの各ユーザー 定義グループを通過しま す。 FALSEを返す行は、 デフォルトグループを通 過します。 アップデー トストラテ ジ 行に更新、挿入、削除、またはリジ ェクトのフラグを設定します。一定 の条件に基づいてターゲットの更新 を管理する場合に、このトランスフ ォーメーションを使用します。例え ば、アップデートストラテジトラン スフォーメーションを用いて、全顧 更新、挿入、削除、また はリジェクトに対応する 数値コード。このトラン スフォーメーションは該 当値を各取得行に適用し ます。 章 1: トランスフォーメーションに関する作業 トランスフ ォーメーシ ョン 式 戻り値 客の行に対して、メールアドレスが 変更された際に更新フラグを設定し たり、 全従業員の行に対して、社 員でなくなった者については拒否フ ラグを設定したりできます。 式エディタ 式エディタは、SQLに似た文を作成するために使用します。 式を手動で入力することも、ポイントアンドクリック機能を使用することもできます。 ポ イントアンドクリックインタフェースを使用して関数、ポート、変数、および演算子を選 択することで、式を作成するときのエラーを減らすことができます。式に使用できる文字 は最大32,767文字です。 式内のポート名 式にはトランスフォーメーションのポート名を入力することができます。 接続されているトランスフォーメーションでは、式でポート名を使用した場合、トランス フォーメーション内のポート名を変更するとDeveloperツールによって式が更新されます。 例えば、2つの日付Date_PromisedとDate_Deliveredの間の差を求める式を作成したとしま す。 この場合、Date_Promisedポートの名前をDue_Dateに変更すると、式内の Date_Promisedポート名はDue_Dateに変更されます。 注: ポート名Due_Dateは、マッピングでこのポートに依存する他の再利用不可能なトラン スフォーメーションにプロパゲートできます。 ポートへの式の追加 出力ポートに式を追加することができます。 1. トランスフォーメーションで、ポートを選択し、式エディタを開きます。 2. 式を入力します。 [関数]タブおよび[ポート]タブ、および演算子キーを使用します。 3. 必要に応じて、式にコメントを追加します。 コメントインジケータの「--」または「//」を使用します。 4. [検証]ボタンをクリックして、式を検証します。 5. [OK]をクリックします。 6. 式が有効でない場合、検証エラーを修正して再度検証します。 7. 式が有効になったら、[OK]をクリックして式エディタを閉じます。 トランスフォーメーションの式 9 式内のコメント コメントを式に追加して式に関する説明を記述したり、式に関連するビジネス文書にアク セスするための有効なURLを指定したりできます。 式にコメントを追加するには、コメントインジケータ「--」または「//」を使用します。 式の検証 マッピングを実行したりマプレットの出力をプレビューしたりするには、式を検証する必 要があります。 式を検証するには、式エディタの[検証]ボタンを使用します。 自分で式の検証を行わず に式エディタを閉じると、Developerツールによって式が検証されます。 式が無効な場 合、Developerツールは警告を表示します。 無効な式を保存または変更することができま す。 参照データ 一部のトランスフォーメーションでは、データ品質タスクを実行するために参照データを 読み取ります。 参照データを読み取ることができるトランスフォーメーションは次のとおりです。 ¨ アドレスバリデータ。アドレス参照データを読み取り、アドレスに誤りがないかどうか を確認します。 ¨ 大文字小文字変換プログラム。参照データテーブルを読み取り、大文字と小文字を変更 する必要がある文字列を識別します。 ¨ 比較。重複分析の際にIDポピュレーションのデータを読み取ります。 ¨ ラべラ。参照データテーブルを読み取り、文字列を識別してラベルを適用します。 ¨ 一致。重複分析の際にIDポピュレーションのデータを読み取ります。 ¨ パーサー。参照データテーブルを読み取り、文字列を解析します。 ¨ 標準化。参照データテーブルを読み取り、文字列を共通の形式に標準化します。 参照データをインストールするには、Data Quality Content Installerを使用します。 カラムプロファイリングの結果から参照データテーブルを作成することができます。 参照 テーブルはXMLファイルとしてエクスポートできます。 参照データのタイプ 参照データは、Data Quality Content Installerによってインストールされます。 Content Installerでは、以下のタイプの参照データがインストールされます。 ¨ 参照データテーブル。いくつかの国の共通のビジネス用語に関する情報が含まれていま す。 参照情報には、市外局番、郵便番号の形式、名前、社会保障番号の形式、職業、 頭字語などのタイプがあります。 10 章 1: トランスフォーメーションに関する作業 ¨ アドレス参照データファイル。国内のすべての有効なアドレスに関する情報が含まれて います。 アドレスバリデータトランスフォーメーションでは、このデータを読み取り ます。 国のアドレスデータは年間契約で購入します。 Content Installerでは、購入した国のファイルがインストールされます。 アドレス参 照データは、定められた期間において最新のものであり、定期的(四半期ごとなど)に データを更新する必要があります。 アドレス参照データを表示したり編集したりする ことはできません。 ¨ IDポピュレーション。個人、世帯、および企業のIDのタイプに関する情報が含まれてい ます。 一致トランスフォーメーションおよび比較トランスフォーメーションでは、こ のデータを使用して、入力フィールドの候補となるIDを解析します。 ポピュレーションファイルはファイルシステムに書き込まれます。 注: 参照データは、Content Installerを実行するユーザーが、アプリケーションとは別に ダウンロードしてインストールします。 システムにインストールされている参照データに ついては、Administratorツールのユーザーに問い合わせてください。 コンテンツセット コンテンツセットとは、再利用可能なコンテンツ式を格納するために使用するモデルリポ ジトリオブジェクトです。 コンテンツ式とは、ラベラトランスフォーメーションやパーサ ートランスフォーメーションでデータを識別するために使用できる式です。 コンテンツセットを作成して、コンテンツ式を論理的なグループにまとめることができま す。 例えば、ポルトガル語の文字列を識別するコンテンツ式を複数作成する場合は、それ らのコンテンツ式をグループ化するコンテンツセットを作成することができます。 コンテ ンツセットはDeveloperツールで作成します。 コンテンツ式には、文字セット、パターンセット、正規表現、トークンセットが含まれま す。 コンテンツ式は、システム定義のものとユーザー定義のものがあります。 システム 定義のコンテンツ式は、コンテンツセットに追加することはできません。 ユーザー定義の コンテンツ式は、再利用可能にすることも再利用不可にすることもできます。 文字セット 文字セットには、特定の文字および文字範囲を識別する式が含まれます。 文字セットは、 文字ラベル適用モードを使用するラベラトランスフォーメーションで使用できます。 文字範囲は、連続する文字コードの範囲を指定します。 例えば、文字範囲"[A-C]"は大文 字の"A"、"B"、および"C"に一致します。この文字範囲は、小文字の"a"、"b"、また は"c"には一致しません。 文字セットを使用すると、ラベル適用操作の一部として特定の文字または文字範囲を識別 できます。 例えば、電話番号が格納されたカラムのすべての数字にラベルを適用すること ができます。 数字にラベルを適用した後、パーサートランスフォーメーションでパターン を識別し、問題のあるパターンを別の出力ポートに書き込むことができます。 コンテンツセット 11 文字セットのプロパティ 文字セットの文字ラベル適用操作に関するプロパティを設定します。 次の表に、ユーザー定義の文字セットのプロパティを示します。 プロパティ 説明 ラベル 文字セットに一致するデータに対して ラベラトランスフォーメーションで適 用するラベルを定義します。 標準モード 開始範囲と終了範囲のフィールドを含 む簡単な編集ビューを使用できます。 開始範囲 文字範囲の最初の文字を指定します。 終了範囲 文字範囲の最後の文字を指定します。 1文字の範囲を指定する場合は、この フィールドを空白のままにします。 詳細モード 範囲文字と区切り文字を使用して文字 範囲を手動で入力できる詳細な編集ビ ューを使用できます。 範囲文字 文字範囲を示す記号を一時的に変更し ます。 範囲文字は、文字セットを閉 じるとデフォルトの文字に戻ります。 区切り文字 文字範囲を区切る記号を一時的に変更 します。 区切り文字は、文字セット を閉じるとデフォルトの文字に戻りま す。 パターンセット パターンセットには、トークンラベル適用操作の出力のデータパターンを識別する式が含 まれます。 パターンセットを使用すると、トークン化されたデータの出力ポートを分析 し、一致する文字列を1つ以上の出力ポートに書き込むことができます。 パターンセット は、パターン解析モードを使用するパーサートランスフォーメーションで使用します。 例えば、名前と頭文字を識別するパターンセットを使用するようにパーサートランスフォ ーメーションを設定することができます。 このトランスフォーメーションでは、パターン セットを使用して、トークンラベル適用モードのラベラトランスフォーメーションの出力 を分析します。 出力に含まれる名前と頭文字を別のポートに書き込むようにパーサートラ ンスフォーメーションを設定できます。 12 章 1: トランスフォーメーションに関する作業 パターンセットのプロパティ パターンセットのパターンに関するプロパティを設定します。 次の表に、ユーザー定義のパターンセットのプロパティを示します。 プロパティ 説明 パターン パターンパーサーで検索するパターン を定義します。 パターンは、1つのパ ターンセットに複数入力することがで きます。 ワイルドカード、文字、お よび文字列の組み合わせで構成される パターンを入力できます。 正規表現 コンテンツセットのコンテキストにおいては、正規表現とは、解析操作やラベル適用操作 で使用できる式のことを指します。 正規表現を使用して入力データの1つ以上の文字列を 識別できます。 正規表現は、トークン解析モードを使用するパーサートランスフォーメー ションで使用できます。 また、トークンラベル適用モードを使用するラベラトランスフォ ーメーションでも使用できます。 パーサートランスフォーメーションでは、正規表現を使用して入力データのパターンを一 致させ、一致するすべての文字列を1つ以上の出力に解析します。 例えば、正規表現を使 用して入力データに含まれるすべての電子メールアドレスを識別し、電子メールアドレス の構成要素ごとに異なる出力に解析することができます。 ラベラトランスフォーメーションでは、正規表現を使用して入力パターンを一致させ、1つ のラベルを作成します。 正規表現の出力が複数になる場合、複数のラベルは生成されませ ん。 正規表現のプロパティ プロパティは、正規表現が出力文字列を識別して書き込む方法を決定します。 次の表に、ユーザー定義の正規表現のプロパティを示します。 プロパティ 説明 出力の数 正規表現が書き込む出力ポートの数を 定義します。 正規表現 パーサートランスフォーメーションが 文字列の一致に使用するパターンを定 義します。 テスト表現 正規表現をテストするために入力する データです。 このフィールドにデー タを入力すると、正規表現に一致する 文字列が強調表示されます。 コンテンツセット 13 プロパティ 説明 次の式 正規表現に一致する次の文字列に移動 し、その文字列のフォントを太字にし ます。 前の式 正規表現に一致する前の文字列に移動 し、その文字列のフォントを太字にし ます。 トークンセット トークンセットには、特定のトークンを識別する式が含まれます。 トークンセットは、ト ークンラベル適用モードを使用するラベラトランスフォーメーションで使用できます。 ま た、トークン解析モードを使用するパーサートランスフォーメーションでも使用できま す。 トークンセットを使用すると、ラベル適用操作や解析操作の一部として特定のトークンを 識別できます。 例えば、トークンセットを使用して、"AccountName@DomainName"という 形式のすべての電子メールアドレスにラベルを適用できます。 トークンにラベルを適用し たら、パーサートランスフォーメーションを使用して、指定した出力ポートに電子メール アドレスを書き込むことができます。 トークンセットのプロパティ トークンセットのラベル適用操作に関するプロパティを設定します。 次の表に、ユーザー定義の文字セットのプロパティを示します。 14 プロパティ トークンセットのモード 説明 名前 該当なし トークンセットの名 前を定義します。 説明 該当なし トークンセットの説 明を記述します。 トークンセットのオ プション 該当なし トークンセットが正 規表現モードと文字 モードのどちらを使 用するかを定義しま す。 ラベル 正規表現 トークンセットに一 致するデータに対し てラベラトランスフ ォーメーションで適 用するラベルを定義 します。 章 1: トランスフォーメーションに関する作業 プロパティ トークンセットのモード 説明 正規表現 正規表現 ラベラトランスフォ ーメーションが文字 列の一致に使用する パターンを定義しま す。 テスト表現 正規表現 正規表現をテストす るために入力するデ ータです。 このフ ィールドにデータを 入力すると、正規表 現に一致する文字列 が強調表示されま す。 次の式 正規表現 正規表現に一致する 次の文字列に移動 し、その文字列のフ ォントを太字にしま す。 前の式 正規表現 正規表現に一致する 前の文字列に移動 し、その文字列のフ ォントを太字にしま す。 ラベル 文字 文字セットに一致す るデータに対してラ ベラトランスフォー メーションで適用す るラベルを定義しま す。 標準モード 文字 開始範囲と終了範囲 のフィールドを含む 簡単な編集ビューを 使用できます。 開始範囲 文字 文字範囲の最初の文 字を指定します。 終了範囲 文字 文字範囲の最後の文 字を指定します。 1 文字の範囲を指定す る場合は、このフィ ールドを空白のまま にします。 詳細モード 文字 範囲文字と区切り文 字を使用して文字範 囲を手動で入力でき コンテンツセット 15 プロパティ トークンセットのモード 説明 る詳細な編集ビュー を使用できます。 範囲文字 文字 文字範囲を示す記号 を一時的に変更しま す。 範囲文字は、 文字セットを閉じる とデフォルトの文字 に戻ります。 区切り文字 文字 文字範囲を区切る記 号を一時的に変更し ます。 区切り文字 は、文字セットを閉 じるとデフォルトの 文字に戻ります。 コンテンツセットの作成 ビジネス要件に従ってコンテンツ式をグループ化するには、コンテンツセットを作成しま す。 コンテンツセットはDeveloperツールで作成します。 1. 2. Object Explorerで、コンテンツセットを格納するプロジェクトまたはフォルダを選 択します。 [ファイル] > [新規] > [コンテンツセット]をクリックします。 3. コンテンツセットの名前を入力します。 4. 必要に応じて、[参照]を選択して、コンテンツセットのモデルリポジトリの場所を 変更します。 5. [完了]をクリックします。 再利用可能なコンテンツ式の作成 再利用可能なコンテンツ式は、コンテンツセット内から作成します。 これらのコンテンツ 式は、ラベラトランスフォーメーションおよびパーサートランスフォーメーションで使用 できます。 16 1. エディタでコンテンツセットを開き、[コンテンツ]ビューを選択します。 2. コンテンツ式のビューを選択します。 3. [追加]をクリックします。 4. コンテンツ式の名前を入力します。 5. 必要に応じて、コンテンツ式の説明を入力します。 6. 式のビューとして[トークンセット]を選択した場合は、トークンセットモードを選 択します。 7. [次へ]をクリックします。 8. コンテンツ式のプロパティを設定します。 章 1: トランスフォーメーションに関する作業 9. [完了]をクリックします。 ヒント: コンテンツ式は、別のコンテンツセットからコピーして作成できます。 既存の コンテンツ式のコピーを作成するには、[コピー先]オプションと[貼り付け元]オプシ ョンを使用します。 これらのオプションを使用する際、Ctrlキーを使用すると、複数のコ ンテンツ式を選択できます。 トランスフォーメーションの作成 複数のマッピングまたはマプレットで再利用する再利用可能なトランスフォーメーション を作成できます。 また、マッピングまたはマプレットで1回だけ使用する再利用不可のト ランスフォーメーションも作成できます。 再利用可能なトランスフォーメーションを作成するには、 [ファイル] > [新規] > [トランスフォーメーション]をクリックし、ウィザードの手順に従います。 マッピングまたはマプレットで再利用不可のトランスフォーメーションを作成するには、 トランスフォーメーションパレットからトランスフォーメーションを選択し、エディタに ドラッグします。 トランスフォーメーションによっては、作成時にモードの選択などの追加の設定が必要に なるものがあります。 例えば、パーサートランスフォーメーションを作成するときは、ト ークン解析モードとパターン解析モードのどちらかを選択する必要があります。 作成したトランスフォーメーションはエディタに表示されます。 トランスフォーメーショ ンによっては、あらかじめ定義されたポートやグループが含まれていることがあります。 それ以外のトランスフォーメーションは空です。 トランスフォーメーションの作成 17 第 2 章 アドレスバリデータトランス フォーメーション この章では、以下の項目について説明します。 ¨ アドレスバリデータトランスフォーメーションの概要, 18 ページ ¨ アドレスバリデータトランスフォーメーションの入力ポートグループ, 20 ページ ¨ アドレスバリデータトランスフォーメーションの出力ポートグループ, 21 ページ ¨ 複数インスタンスのポート, 22 ページ ¨ アドレス検証プロジェクト, 23 ページ ¨ フォーマットされたアドレスと郵便事業者の住所表記基準, 23 ページ ¨ アドレスバリデータのステータスポート, 24 ページ ¨ アドレス参照データファイルのステータス, 33 ページ ¨ アドレスバリデータトランスフォーメーションの詳細プロパティ, 34 ページ ¨ アドレスバリデータトランスフォーメーションの全般設定, 41 ページ ¨ 認証レポート, 43 ページ ¨ アドレスバリデータトランスフォーメーションの設定, 46 ページ ¨ アドレスバリデータトランスフォーメーションへのポートの追加, 46 ページ ¨ ユーザー定義テンプレートの作成, 47 ページ ¨ アドレスバリデータのモデルの定義, 47 ページ ¨ 認証レポートの定義, 48 ページ アドレスバリデータトランスフォーメーショ ンの概要 アドレスバリデータトランスフォーメーションでは、入力アドレスデータをアドレス参照 データと比較して入力データの精度を確認し、それらのアドレスの誤りを修正します。 こ 18 のトランスフォーメーションは、新しいアドレスデータ、修正されたアドレスデータ、お よび各アドレスのステータス情報を持つカラムを作成します。 アドレスバリデータトランスフォーメーションは、デフォルトではパッシブなトランスフ ォーメーションですが、[実行インスタンス数]プロパティに1より大きい値を設定すると アクティブなトランスフォーメーションになります。 以下の方法でアドレスデータを検証して更新することができます。 ¨ 入力データをInformaticaから提供されるアドレス参照データと比較します。 ¨ 各入力アドレスの有効性、配達可能ステータス、および誤りの性質やその曖昧さに関す る詳しいステータスレポートを生成します。 ¨ 参照データの情報を使用して、誤りを修正し、部分的なアドレスレコードを完全なもの にします。 アドレスを修正するには、参照データのアドレスとの明確な一致を探す必 要があります。 ¨ 郵送可能な形式で出力アドレスを書き込みます。 形式はトランスフォーメーションの 出力ポートを選択するときに定義します。 ¨ 標準のアドレスには含まれない、郵便配達の際に役立つ情報(ジオコーディング情報な ど)を追加します。 アドレス参照データ アドレス参照データセットには、国内の配達可能アドレスがすべて記述されたデータが含 まれています。 アドレス検証プロセスでは、入力アドレスデータに最もよく似たアドレス を参照データセットから探します。 よく似たアドレスが参照データセット内で見つかる と、無効または不完全なデータ値に対して新しい値が書き込まれます。 このプロセスで は、入力アドレスと参照アドレスの間に見つかった一致のタイプを説明する一連の英数字 のコードが作成されます。 また、アドレスを再構築したり、入力アドレスにない情報(米国のアドレスの4桁の郵便番 号サフィックスなど)を追加したりすることもできます。 アドレス参照データセットは、Data Qualityのインストールには含まれていません。アド レス参照データセットは別途ダウンロードし、Data Quality Content Installerを使用し てインストールする必要があります。 アドレス参照データセットに関する情報を確認する には、Developerツールの[設定]ウィンドウを使用します。 ポートグループとポートの選択 アドレスバリデータトランスフォーメーションには、使用可能な入力ポートと出力ポート を含む定義済みのポートグループが含まれています。 アドレスバリデータトランスフォー メーションを設定する場合、グループを参照して必要なポートを選択します。 アドレス入力データに対応する入力ポートを選択します。プロジェクトに必要なアドレス データを含む出力ポートを選択します。 入力ポートと出力ポートはトランスフォーメーションに直接選択できます。また、入力ポ ートと出力ポートを含むデフォルトモデルを作成することもできます。ポートをトランス フォーメーションに直接選択すると、選択したポートはそのトランスフォーメーションに のみ適用されます。ポートをデフォルトモデルに追加すると、そのポートは、それ以降に 作成するアドレスバリデータトランスフォーメーションに適用されます。 注: デフォルトモデルはリポジトリオブジェクトではありません。デフォルトモデルは作 成したマシン内に存在します。 アドレスバリデータトランスフォーメーションの概要 19 アドレスバリデータトランスフォーメーションで処理しないカラムについては、パススル ーポートをトランスフォーメーションに追加できます。 ポートのテンプレート トランスフォーメーションには、ポートのテンプレートを1つ以上作成できます。テンプレ ートは、1つ以上のポートグループからのポートのサブセットです。テンプレートを使用し て、プロジェクトで頻繁に使用するポートを編成しておくことができます。 作成したテンプレートは、モデルリポジトリのすべてのアドレスバリデータトランスフォ ーメーションに表示されます。 アドレスバリデータトランスフォーメーショ ンの入力ポートグループ アドレスデータをトランスフォーメーションの入力ポートに接続する前に、入力グループ を参照して、入力データの構造および内容に対応するポートを選択する必要があります。 出力グループを参照して、データの要件を満たすポートを選択します。 以下の入力ポートグループがあります。 ¨ 個別。個別ポートは、1つのアドレス要素を受け入れます。 各アドレスフィールドが一 意のアドレス要素(住居番号、アパート番号、町名、市区町村、都道府県、郵便番号な ど)を表す場合は、アドレスフィールドをこれらのポートに接続します。 ¨ 複数行。複数行ポートは、複数のアドレス要素を含む文字列を受け入れます。各アドレ スフィールドが複数のアドレス要素を表す場合は、アドレスフィールドをこれらのポー トに接続します。例えば、Address Line 1が"100 Main Street"でAddress Line 2 が"New York, NY 10001"のような場合が該当します。 ¨ 混合。混合ポートは、1つまたは複数のアドレス要素を含む文字列を受け入れます。 ア ドレスに個別の要素と複数行の要素が混在する場合は、アドレスフィールドをこれらの ポートに接続します。 住居番号、町名、およびアパートの情報を1つのフィールドにま とめ、市区町村、都道府県、および郵便番号にそれぞれ個別のフィールドを使用する形 式がよく使用されます。 注: 複数のポートを選択するときは、すべて同じ入力ポートグループから選択します。 アドレスバリデータトランスフォーメーションには、基本モデルと詳細モデルのポートグ ループが表示されます。 ほとんどのアドレスは、基本モデルのポートグループを使用して 定義できます。 詳細モデルで利用可能なその他のポートは、アドレスが非常に複雑な場合 に使用します。 20 章 2: アドレスバリデータトランスフォーメーション アドレスバリデータトランスフォーメーショ ンの出力ポートグループ アドレスバリデータトランスフォーメーションを他のトランスフォーメーションまたはデ ータオブジェクトに接続する前に、必要なデータの種類と、出力アドレスの構造を決定し ます。 出力グループを参照して、データの要件を満たすポートを選択します。 注: ポートは複数の出力グループから選択することが可能で、共通の機能を持つポートを 選択することができます。 以下の定義済みの出力グループがあります。 ¨ アドレス要素。住居番号、アパート番号、町名など、所在地のアドレス要素を個別のポ ートに書き込む場合に使用します。 ¨ 最終行の要素。郵便番号、市区町村名、都道府県名など、地域情報を個別のポートに書 き込む場合に使用します。 ¨ ジオコーディング。経度や緯度など、ジオコーディング情報を書き込む場合に使用しま す。 ¨ 米国特有。米国のアドレスで、DPVデータなど、郵便配達の際に役立つ追加データを書 き込む場合に使用します。 ¨ カナダ特有。カナダのアドレスで、SERPレポートのデータを書き込む場合に使用しま す。 ¨ オーストラリア特有。オーストラリアのアドレスで、AMASレポートのデータを書き込む 場合に使用します。 ¨ 英国補足。英国のアドレスで、納入場所のサフィックスのデータを書き込む場合に使用 します。 ¨ 米国補足。米国のアドレスで、郡や州のFIPSコードなど、補足データを書き込む場合に 使用します。 ¨ 国。国名またはISO国コードを書き込む場合に使用します。 ¨ ステータス情報。各入力アドレスの品質に関する情報を書き込む場合に使用します。 ¨ フォーマットされたアドレス行。郵送用にフォーマットされたアドレスを書き込む場合 に使用します。 フォーマットされた行は、特定のタイプのアドレス情報にリンクされ ません。 各アドレスが一意であると見なされ、このグループ内で利用可能な最初のポ ートに各アドレス行が書き込まれます。 ¨ その他。 入力アドレスに含まれる認識できない要素に対して使用します。 アドレスバリデータトランスフォーメーションには、基本モデルと詳細モデルのポートグ ループが表示されます。 ほとんどのアドレスは、基本モデルのグループを参照して定義で きます。 詳細モデルで利用可能なその他のポートは、アドレスが非常に複雑な場合に使用 します。 以下のポートグループは、詳細モデルでのみ使用できます。 ¨ 担当者要素。敬称や役職など、取引先の担当者に関する情報を書き込む場合に使用しま す。 ¨ ID要素。レコードIDとトランザクションキーデータの書き込みに使用されます。 アドレスバリデータトランスフォーメーションの出力ポートグループ 21 複数インスタンスのポート 住所データタイプの多くは、住所内に複数回出現します。 複数回出現するデータ要素が住 所に含まれている場合には、複数インスタンスのポートを選択することができます。 複数インスタンスのポートには、最大6個のインスタンスを含めることができます。 多く の住所は、含んでいる各データ要素1個につき1個のポートインスタンスを使用します。 一 部の住所は、2個目ポートインスタンスを使用します。 ごく一部の住所は、複数のポート インスタンスを使用します。 多くの場合、ポートの1個目のインスタンスは、そのポートが特定するプライマリの名前ま たは主要な領域です。 選択したすべてのポートについて、ポートインスタンス間のリレー ションを確認する必要があります。 [町名の正式表記]ポートの例 英国の住所レコードには、2つの町名(街区)が含まれる場合があります。一方の町名は、 もう一方のより広範囲の町名に含まれます。 以下の住所には、2つの[町名の正式表記] ポートが使用されています。 Street Number Complete 1 Street Complete 1 Street Complete 2 Locality Name 1 Postcode 1 1A THE PHYGTLE SOUTH STREET NORFOLK NR25 7QE この例では、[町名の正式表記1]ポート内の町名データは、[町名の正式表記2]ポート 内の町名データに依存しています。 [番地の正式表記1]ポートのデータは、[町名の正 式表記1]のデータに関連しています。 注: [町名の正式表記1]は、メールボックスが実際にある場所を指定していますが、[町 名の正式表記2]は、より広範な町(街区)を表している可能性があります。 [担当者]ポートの例 住所レコードには、複数の担当者を含めることができます。その場合、各担当者は世帯を 構成する成員です。 以下の住所には、2つの[担当者名]ポートが使用されています。 Contact Name 1 Contact Name 2 Formatted Address Line 1 Formatted Address Line 2 Formatted Address Line 3 Mr. JOHN DOE Ms. JANE DOE 2 MCGRATH PLACE EAST ST. JOHN'S NL A1B 3V4 CANADA この例では、[担当者名1]または[担当者名2]に適用する優先順位は組織が指定できま す。 アドレスバリデータトランスフォーメーションは、担当者データの優先順位付けを行 いません。 印刷するために住所の形式を整えるには、[フォーマットされたアドレス行]ポートのイ ンスタンスを複数使用できます。 [フォーマットされたアドレス行]ポートは、最大12個 選択できます。 22 章 2: アドレスバリデータトランスフォーメーション アドレス検証プロジェクト アドレスバリデータトランスフォーメーションは、さまざまなタイプのプロジェクトで使 用できます。 プロジェクトタイプごとに、各種ポートを使用して住所テンプレートを作成 します。 アドレス検証プロジェクトは、以下の目的で定義することができます。 郵便事業者の標準に準拠するようにフォーマットされた住所の作成 郵便でのキャンペーン用に、大きな住所レコードセットを準備することができます。 郵便事業者の希望するフォーマットで住所を作成すると、郵送料が大幅に下がりま す。 郵送用の住所を準備する場合は、フォーマットされた住所の各行を単一ポートに 書き出す出力ポートを選択します。 担当者名、番地住所の行、および市区町村と郵便 番号の行に、別々のポートを選択できます。 郵便事業者から認証される住所の作成 Australia Post(オーストラリア郵政公社)、Canada Post(カナダ郵政公社)、また はUSPS(米国郵政公社)向けのレコードセットを準備する際に、各住所の配達可能性 を確認するデータを追加することができます。 アドレスバリデータトランスフォーメーションでは、各郵便事業者のデータ標準に対 して住所レコードが完全かつ正確であることを証明するレポートを生成できます。 規制上の要件を満たす住所の作成 組織が保持している住所レコードが、業界または政府の規制に正確に従っていること を検証できます。 住所データの各要素を別々のフィールドに書き込む出力ポートを選 択します。 さらに、出力データの正確性と完全性について詳細な情報を提供するアド レス検証ステータスポートを選択します。 住所のデータ品質の向上 他のデータプロジェクトと並行して、住所データセットの構造および全般的なデータ 品質を高めることができます。 例えば、データセットに不要なカラムが含まれていた り、同じタイプのデータが複数のカラムに含まれていたりする場合があります。 デー タセット内のカラム数を減らすと共に、さまざまなタイプのデータに使用するカラム を簡略化することができます。 フォーマットされたアドレスと郵便事業者の 住所表記基準 DMによるキャンペーン用に住所レコードを準備する場合は、印刷する住所の構造を郵便事 業者の住所表記基準に合わせる必要があります。 例えば、USPSの米国国内の住所表記は次のような形式になっています。 Line 1 Line 2 Line 3 Person/Contact Data Street Number, Street, Sub-Building Locality, State, ZIP Code JOHN DOE 123 MAIN ST NW STE 12 ANYTOWN NY 12345 アドレス検証プロジェクト 23 印刷する住所を、行ごとに1つのポートへ書き出すように設定することができます。 その 場合、それぞれの行のデータタイプに適したポートを使用できますが、各行のデータタイ プに関係なく住所の構造を受け付けるポートを使用することもできます。 以下の表に、米国の住所を印刷するときの住所の2種類のフォーマット方法を示します。 印刷する住所 使用ポートの一例 使用ポートのもう一つ の例 JOHN DOE 受取人行1 フォーマットされたアド レス行1 123 MAIN ST NW STE 12 送付先住所1 フォーマットされたアド レス行2 ANYTOWN NY 12345 国特有の最終行1 フォーマットされたアド レス行3 [フォーマットされたアドレス行]ポートを使用するのは、データセットにタイプの異な る住所(勤務先住所と自宅住所など)が混在している場合です。 勤務先住所の場合、担当 者と組織の情報で3行必要になることもあります。 アドレスバリデータトランスフォーメ ーションは、必要に応じて[フォーマットされたアドレス行]ポートのみを使用して、勤 務先住所も自宅住所も適切にフォーマットします。 ただし、[フォーマットされたアドレ ス行]ポートは、ポートに含まれるデータタイプを指定しません。 [受取人行]、[送付先住所]、[国特有の最終行]などのポートを使用するのは、すべ ての住所が同じ形式でフォーマットされている場合です。 これらのポートにより、住所の データ要素がデータタイプ別に分類されるので、データセットを把握しやすくなります。 注: この例の住所は、他のポートを使用して処理することもできます。 上記の例は、印刷 と配達用に住所をフォーマットするポートの説明を目的としたものです。 人口統計データと地理的データ DMによるキャンペーンでレコードセットを作成する場合、さまざまなデータタイプを追加 して住所表記に挿入することができます。 このようなデータを使用することで、郵便物の 配達状況を人口統計的に、地理的に把握することができます。 例えば、米国内のある住所がどの下院選挙区に属しているのかを特定することができま す。 また、郵便物の仕向国の郵便システムで、アドレス参照データに地理座標が使われて いる場合は、緯度と経度の座標を生成することもできます。 アドレスバリデータのステータスポート アドレスバリデータトランスフォーメーションでは、入力ポートや出力ポートで読み書き するアドレス要素に関するステータス情報を書き込みます。 以下のステータスポートを使用できます。 24 章 2: アドレスバリデータトランスフォーメーション アドレスタイプ 基本モデルのステータス情報ポートグループから選択します。郵便運送業者が複数の 形式のアドレスを認識する場合に、このポートの値はアドレスタイプを示します。 要素入力のステータス 基本モデルのステータス情報ポートグループから選択します。このポートの値は、入 力アドレス要素と参照データの間で見つかった一致のタイプを表します。 要素の関連性 基本モデルのステータス情報ポートグループから選択します。このポートの値は、各 地域での郵送に必要なアドレス要素を識別します。 要素の結果ステータス 基本モデルのステータス情報ポートグループから選択します。このポートの値は、処 理中に入力データに対して行われた編集内容を示します。 ジオコーディングのステータス 基本モデルのジオコーディングポートグループから選択します。このポートの値は、 入力データに対して返されるジオコーディング情報のレベルを示します。 郵送可能スコア 基本モデルのステータス情報ポートグループから選択します。このポートの値は、入 力アドレスの全体的な配達可能性を表します。 照合コード 基本モデルのステータス情報ポートグループから選択します。このポートの値は、入 力アドレスに対する検証操作の結果を示します。 結果の割合 基本モデルのステータス情報ポートグループから選択します。このポートの値は、入 力アドレスとアドレス検証結果の間の全体的な類似度を表します。 結果の割合の値は パーセンテージです。値が高いほど、入力と検証結果が類似していることを示しま す。 ステータス情報ポートを使用して、入力アドレス要素と出力アドレス要素のステータスを 表示します。 [要素入力のステータス]出力ポートの値 [要素入力のステータス]は20文字の文字列で、文字列の各位置がそれぞれ異なる入力ア ドレス要素を表します。文字の値は、関連するアドレス要素に対して実行された処理のタ イプを表します。 このポートはステータス情報ポートグループにあります。 次の表に、文字列の各文字で識別されるアドレス要素を示します。 値 説明 1 郵便番号レベル0 アドレスバリデータのステータスポート 25 値 説明 2 郵便番号レベル1(米国のZIP+4コードなど) 3 市区町村レベル0 4 市区町村レベル1(都市、従属地域など) 5 都道府県レベル0 6 都道府県レベル1(郡など) 7 町名レベル0 8 町名レベル1(丁目など) 9 番地レベル0 10 番地レベル1 11 配達サービスレベル0(私書箱、GPO、パックステーション、プライベート バッグ) 12 配達サービスレベル1 13 建物レベル0 14 建物レベル1 15 棟レベル0 16 棟レベル1 17 組織レベル0 18 組織レベル1 18 国レベル0 20 国レベル1(領域など) 以下の表で、バッチモード、対話モード、提案リストモードで[要素入力のステータス] から出力文字列内の各位置に返されるコードについて説明します。 26 値 説明(検証プロセス) 6 一致が確認され、誤りはありませんでした。 5 一致が確認され、変更が行われています(データが挿入または削除されま した)。 章 2: アドレスバリデータトランスフォーメーション 値 説明(検証プロセス) 4 一致が確認されましたが、このアドレス要素に誤りがあります。 3 アドレス要素が正しくありません。 入力がコピーされましたが、修正され ていません。 2 確認されていません(参照データがありません)。 1 アドレス要素が見つかりません。 処理は実行されませんでした。 0 アドレス要素が空です。 処理は実行されませんでした。 以下の表で、解析モード時に[要素入力のステータス]から出力文字列内の各位置に返さ れるコードについて説明します。 コード 説明 3 この位置に対応する適切なデータと認識されました。 処理中に変更は 行われていません。 2 この位置に対応する適切なデータと認識され、処理中に一部のデータ が標準化されました。 1 この位置のデータは別のポートに移動されています。 0 この位置にデータがありません。 [要素の関連性]出力ポートの値 次の表に、[要素の関連性]出力ポートの値を示します。このポートはステータス情報ポ ートグループにあります。 [要素の関連性]の値は、配達を担当する郵便運送業者に関連するアドレス要素を識別し ます。この値が1であるアドレス要素がすべて揃っていないと、出力アドレスは地域の郵便 運送業者によって有効と見なされません。 [要素の関連性]の値は、MatchCodeの値がCま たはVのアドレス要素に対して重要な意味を持ちます。 値 説明 0 地域の郵便運送業者に必要ではないア ドレス要素です。 1 地域の郵便運送業者に関連するアドレ ス要素です。 アドレスバリデータのステータスポート 27 [要素の結果ステータス]出力ポートの値 [要素の結果ステータス]は20文字の文字列で、文字列の各位置がそれぞれ異なる入力ア ドレス要素を表します。文字の値は、処理中に入力データに対して行われた編集内容を示 します。 このポートはステータス情報ポートグループにあります。 次の表に、文字列の各文字で識別されるアドレス要素を示します。 28 値 説明 1 郵便番号レベル0 2 郵便番号レベル1(米国のZIP+4コードなど) 3 市区町村レベル0 4 市区町村レベル1(都市、従属地域など) 5 都道府県レベル0 6 都道府県レベル1(郡など) 7 町名レベル0 8 町名レベル1(丁目など) 9 番地レベル0 10 番地レベル1 11 配達サービスレベル0(私書箱、GPO、パックステーション、プライベート バッグ) 12 配達サービスレベル1 13 建物レベル0 14 建物レベル1 15 棟レベル0 16 棟レベル1 17 組織レベル0 18 組織レベル1 19 国レベル0 20 国レベル1(領域など) 章 2: アドレスバリデータトランスフォーメーション 次の表に、[要素の結果ステータス]で表される各アドレス要素に対する編集のタイプを 示します。 値 説明 0 アドレス要素が空です。 1 入力が検証されておらず、編集もされていません。 ソースデータが使用さ れます。 2 入力が検証されていませんが、標準化されています。 3 入力が検証されましたが、無効なデータが一部含まれていて編集されてい ません。 入力がコピーされましたが、修正されていません。 4 入力が検証されましたが、参照データがないため編集されていません。 5 入力が検証されましたが、一致候補が複数あるため編集されていません。 6 入力が検証され、編集で入力値が除外されました。 7 入力が検証され、参照データに基づいて編集されました。 8 入力が検証され、編集で参照データから値が追加されました。 9 入力が検証されましたが、編集されていません。 配達ステータスは不明で す。 C 入力が検証されて確認されましたが、最新でない名前が編集されました。 D 入力が検証されて確認されましたが、外名が正式名に編集されました。 E 入力が検証されて確認されましたが、標準化されていません。 この値は、 入力に完全に一致する語が別の言語にある場合に設定されます。 F 入力が検証されて確認されましたが、編集されていません。 完全に一致し ています。 出力文字列の19および20の位置は、国に関するデータです。 次の表に、19および20の位置のデータに対する検証で返される値を示します。 コード 説明 0 この位置にデータがありません。 1 国のデータを認識できません。 4 [デフォルトの国]の値から国が認識されました。 5 一致する参照データが複数あるため、国を認識できません。 6 スクリプトから国が認識されました。 アドレスバリデータのステータスポート 29 コード 説明 7 アドレスの形式から国が認識されました。 8 主要な都市のデータから国が認識されました。 9 都道府県のデータから国が認識されました。 C 領域のデータから国が認識されました。 D 国名が認識されました。ただし、名前に誤りがあります。 E 国名が認識されました。名前に誤りはありません。 F [国を強制的に適用]の値から国が認識されました。 MailabilityScore出力ポートの値 次の表に、MailabilityScore出力ポートの値を示します。 このポートはステータス情報ポ ートグループにあります。 アドレスバリデータでは、アドレスの配達可能性を評価し、その概算値を MailabilityScoreカラムに書き込みます。 MatchCodeのスコアがI1~I4の場合は、この数 値を確認してください。 30 値 説明 5 確実に配達可能 4 ほぼ確実に配達可能 3 配達できる可能性が高い 2 配達できる可能性がある 1 配達できる可能性は少ない 0 配達不能 章 2: アドレスバリデータトランスフォーメーション MatchCode出力ポートの値 次の表に、MatchCode出力ポートの値を示します。 このポートはステータス情報ポートグ ループにあります。 値 説明 V4 検証済み。入力データは正確です。配達に関するすべての要素が確認さ れ、入力が完全に一致しています。 V3 検証済み。入力データは正確ですが、一部またはすべての要素が標準化さ れたか、入力に古い名前が含まれています。 V2 検証済み。入力データは正確ですが、参照データが不完全であるため一部 の要素を検証できませんでした。 V1 検証済み。入力データは正確ですが、ユーザーの標準化が原因で配達可能 性が低下しています。 C4 修正済み。配達に関するすべての要素が確認されました。 C3 修正済み。一部の要素を確認できませんでした。 C2 修正済みですが、参照データが存在しないため、配達ステータスが不明で す。 C1 修正されましたが、ユーザーの標準化によって誤りが生じたため配達ステ ータスは不明です。 I4 データを完全には修正できませんでした。ただし、配達可能性は非常に高 くなっています。参照データ内の住所との一致が1件あります。 I3 データを完全には修正できませんでした。ただし、配達可能性は非常に高 くなっています。参照データ内の住所との一致が複数あります。 I2 データを修正できませんでした。ただし、配達できる可能性もあります。 I1 データを修正できなかったため、その住所に配達できる見込みはあまりあ りません。 Q3 高速実行のステータス。住所の候補を利用できます。 Q2 高速実行のステータス。住所の候補は完全ですが、入力された住所の要素 も混在しています。 Q1 高速実行のステータス。住所の候補は不完全です。詳細な情報が必要で す。 Q0 高速実行のステータス。完全ではない入力を住所の候補の生成に利用でき ます。 RA トランスフォーメーション内の[国を強制的に適用]設定によって国が認 識されました。 アドレスバリデータのステータスポート 31 32 値 説明 R9 トランスフォーメーション内の[デフォルトの国]設定によって国が認識 されました。 R8 名前によって国が認識され、エラーは発生していません。 R7 名前によって国が認識されましたが、エラーが発生しました。 R6 領域によって国が認識されました。 R5 都道府県によって国が認識されました。 R4 主要な都市によって国が認識されました。 R3 形式によって国が認識されました。 R2 スクリプトによって国が認識されました。 R1 国が認識されません。複数の候補に一致しました。 R0 国が認識されません。 S4 完全に解析されました。 S3 複数の結果に解析されました。 S2 解析で誤りが見つかりました。要素の位置が変更されています。 S1 解析エラーです。入力形式が一致しません。 N1 検証エラーです。国を認識できないため、検証は実行されませんでした。 N2 検証エラーです。必要な参照データベースを使用できないため、検証は実 行されませんでした。 N3 検証エラーです。国のロックを解除できないため、検証は実行されません でした。 N4 検証エラーです。参照データベースが壊れているか形式が正しくないた め、検証は実行されませんでした。 N5 検証エラーです。参照データベースが最新でないため、検証は実行されま せんでした。 章 2: アドレスバリデータトランスフォーメーション GeoCodingStatus出力ポートの値 次の表に、GeoCodingStatus出力ポートの値を示します。 このポートはジオコーディング ポートグループにあります。 このポートは、入力アドレスの国に対応するジオコーディング参照データをインストール している場合に選択します。 値 説明 EGCU ジオコーディングデータベースのロッ クが解除されていません。 EGCN ジオコーディングデータベースが見つ かりません。 EGCC ジオコーディングデータベースが壊れ ています。 EGC0 使用可能なジオコードがありません。 EGC4 部分的な郵便番号レベルの精度のジオ コードです。 EGC5 郵便番号レベルの精度のジオコードで す。 EGC6 市区町村レベルの精度のジオコードで す。 EGC7 町名レベルの精度のジオコードです。 EGC8 おおよその住居番号の精度のジオコー ドです。 EGC9 住居番号の精度のジオコードです。 アドレス参照データファイルのステータス Developerツールを使用して、ドメイン上のアドレス参照データファイルのステータスを確 認します。ステータス情報には、各ファイルのライセンスの有効期限やそのファイルに対 して実行可能な処理の種類が含まれています。 アドレス参照データファイルのステータスを確認するには、Developerツールの[設定]ウ ィンドウを使用します。[設定]ウィンドウの[コンテンツのステータス]オプションを 使用してステータスを確認します。 アドレス参照データファイルのステータス 33 以下の表に、[コンテンツのステータス]を選択したときにデフォルトで表示される、ス テータスのプロパティを示します。 プロパティ 説明 国のISO アドレス参照データファイルが適用される国。このプロパ ティは、ISOによる3文字の国名の略記を表します。 有効期限 ファイルが新しいファイルに置き換えらえる日付。有効期 限後にもアドレス参照データファイルは使用できますが、 そのデータ正確性は保証されません。 国のタイプ そのデータに対して実行可能な住所の処理のタイプ。[全 般設定]タブの[モード]オプションで処理のタイプを選 択できます。選択したモードがドメイン上のアドレスデー タファイルと対応しない場合、アドレス検証マッピングは 失敗します。 有効期限のロック 解除 ファイルのライセンスの有効期限が切れる日付。有効期限 のロック解除後はファイルを使用できません。 開始日のロック解 除 ファイルのライセンスが有効になる日付。開始日のロック を解除する前はファイルを使用できません。 プロパティテーブルを右クリックすると、追加のプロパティのリストが表示されます。 アドレスバリデータトランスフォーメーショ ンの詳細プロパティ Data Integration Serviceでのアドレスバリデータトランスフォーメーションのデータの 処理方法を指定するには、詳細プロパティを設定します。 大文字小文字表記 大文字小文字表記プロパティは、このトランスフォーメーションが出力データの書き込み に使用する大文字小文字表記を決定します。 以下の表に、大文字小文字表記のオプションを示します。 34 オプション 説明 小文字 アドレス検証は出力データを小文字で書き込みます。 混在 アドレス検証は、宛先の国で使用されている大文字小 文字表記を考慮します。 章 2: アドレスバリデータトランスフォーメーション オプション 説明 維持 アドレス検証は、参照データで使用されている大文字 小文字表記を適用します。これがデフォルトのオプシ ョンです。 大文字 アドレス検証は出力データを大文字で書き込みます。 注: 大文字小文字表記は[全般設定]タブで設定することもできます。 国 国プロパティは、アドレスレコードが送信される国を識別します。 リストから国を選択します。このプロパティは、デフォルトでは空になっています。 国のタイプ 国のタイププロパティは、住所の正式表記やフォーマットされたアドレス行ポートの出力 データで使用される国名の形式を決定します。トランスフォーメーションは、選択した国 の標準の形式で国名や略語を表記します。 以下の表に、国のタイプのオプションを示します。 オプション 国 ISO2 ISOの2文字の国コード ISO3 ISOの3文字の国コード ISO # ISOの3桁の国コード 略語 (将来の使用のために予約されています) CN カナダ DA (将来の使用のために予約されています) DE ドイツ EN 英国(デフォルト) ES スペイン FI フィンランド FR フランス GR ギリシア アドレスバリデータトランスフォーメーションの詳細プロパティ 35 オプション 国 IT イタリア JP 日本 HU ハンガリー KR 韓国 NL オランダ PL ポーランド PT ポルトガル RU ロシア SA サウジアラビア SE スウェーデン デフォルトの国 デフォルトの国プロパティは、検証がすべてのアドレスレコードを、選択した国の参照デ ータに対して比較することを指定します。 リストから国を選択します。デフォルトは[なし]です。 要素の略式表記 このオプションは、USPSで許容される最大長を超える場合、トランスフォーメーションが 米国の番地や地域を記述する値をUSPSの短い形式で返すかどうかを決定します。 米国のアドレス参照データは、一部のアドレス値の短い形式と長い形式両方を保持しま す。たとえば、HUNTSVILLE BROWNSFERRY RDの短い形式はHSV BROWNS FRY RDです。 このオプションは、トランスフォーメーションをバッチモードで使用する場合には地域を 記述する値を短い形式で返し、認証モードで使用する場合には、番地および地域を記述す る値を短い形式で返します。 このオプションはデフォルトではクリアされます。 実行インスタンス数 このプロパティは、トランスフォーメーションが実行時に使用するスレッド数を決定しま す。 実行インスタンス数の値を増やすと、検証のパフォーマンスが向上します。同時アドレス 検証マッピングを実行する必要がある場合、またはIntegration Serviceの負荷が高い場合 36 章 2: アドレスバリデータトランスフォーメーション は、このプロパティを編集します。実行インスタンス数の値は、CPUコアの数より少なくし ます。多く設定すると、トランスフォーメーションはアクティブモードで実行します。 注: PowerCenterセッションでアドレスバリデータトランスフォーメーションを使用する場 合、このプロパティは、トランスフォーメーションが実行時に使用するプロセス数を決定 します。 デフォルトは1です。 入力形式の種類 このプロパティは、フィールド化されていない入力データに含まれる最も一般的な情報の 種類を示します。このオプションは、入力データを住所の正式表記やフォーマットされた アドレス行ポートに接続する場合に使用します。マッピングソリューションでの情報を最 も適切に表すオプションを選択します。 次のいずれかのオプションを選択します。 ¨ すべて(デフォルトのオプション) ¨ 住所 ¨ 組織 ¨ 担当者 ¨ 組織/担当者(住所に組織と担当者情報が含まれます) ¨ 組織/部署(住所に組織と部署情報が含まれます) 国を含む入力形式 国を含む入力形式プロパティは、入力額にデータを含むかどうかを指定します。このオプ ションは、入力データを住所の正式表記やフォーマットされたアドレス行ポートに接続す る場合、およびそのデータが国情報を含む場合に使用します。 このオプションはデフォルトではクリアされます。 行セパレータ 行セパレータプロパティは、1行のアドレス内のデータフィールドを区切る記号を指定しま す。 次のいずれかのオプションを選択します。 ¨ 復帰改行文字 ¨ カンマ ¨ セミコロン(デフォルトのオプション) ¨ タブ ¨ Windows改行(CRLF) 注: 行セパレータは[全般設定]タブで設定することもできます。 アドレスバリデータトランスフォーメーションの詳細プロパティ 37 一致する代替用語 一致する代替用語プロパティは、検証の実行時にトランスフォーメーションが同義語や歴 史的な場所の名前などの代替用語を考慮するかどうかを決定します。 以下の表に、一致する代替用語のオプションを示します。 オプション 説明 すべて アドレス検証は既知の代替用語すべてを認識します。 これがデフォルトのオプションです。 アーカイブのみ アドレス検証は歴史的な用語を認識します。例えば、 「Constantinople」を「Istanbul」の古い呼称として 検証できます。 なし アドレス検証は代替用語を認識しません。 同義語のみ アドレス検証は同義語およびエクソニム(外名)を認 識します。たとえば、「Londres」を「London」のエク ソニム(外名)として検証できます。 一致するスコープ 一致するスコーププロパティは、トランスフォーメーションがアドレス検証中にアドレス 参照データに対して一致させるデータ量を決定します。 以下の表に、一致するスコープのオプションを示します。 38 オプション 説明 すべて アドレス検証は選択したすべてのポートを検証しま す。これがデフォルトのオプションです。 納入場所 アドレス検証は、[市区町村]オプションで検証され るデータに加え、建物および棟のデータを検証しま す。 市区町村 アドレス検証は、都道府県、市区町村、および郵便番 号データを検証します。 番地 アドレス検証は、[市区町村]オプションで検証され るデータに加え、番地アドレスデータを検証します。 章 2: アドレスバリデータトランスフォーメーション モード モードプロパティはトランスフォーメーションが実行するアドレス処理の種類を決定しま す。 以下の表に、モードのオプションを示します。 オプション 説明 バッチ 参照データに対してアドレス検証を実行します。これ がデフォルトのオプションです。 認証 アドレス検証を、郵便サービス認証標準への参照デー タに対して実行します。 国認識 国情報を含まない入力アドレスを識別します。 解析 検証を実行せずにデータをアドレスフィールドに解析 します。 提案リスト アドレス検証を実行し、入力アドレスに対するアドレ ス候補のリストを生成します。提案リストモードは入 力専用アプリケーションで使用します。 注: 処理モードは[全般設定]タブで設定することもできます。 最適化レベル 最適化レベルプロパティは、トランスフォーメーションが入力アドレスデータとアドレス 参照データを一致させる方法を決定します。このオプションは、トランスフォーメーショ ンがアドレスレコードを参照データ要素で更新する前に、入力アドレスと参照データ間で 一致させるアドレス検証中にアドレス参照データに対して一致させる範囲を決定します。 以下の表に、最適化レベルのオプションを示します。 オプション 説明 低 トランスフォーメーションは検証を行う前に、番地情 報から建物および住居番号を解析しますが、入力アド レス要素については入力ポート構造に従って厳密に検 証します。低オプションは、アドレス検証を最速で実 行しますが、 他のレベルよりも精度が低下します。 標準 トランスフォーメーションは検証を行う前に、入力デ ータから複数の種類のアドレス情報を解析します。標 準オプションを選択すると、トランスフォーメーショ ンは複数の入力値と参照データを一致させることがで きる場合にアドレスを更新します。 これがデフォルトのオプションです。 高 トランスフォーメーションは標準解析設定を使用し、 入力データ全体に対して追加の解析処理を実行しま アドレスバリデータトランスフォーメーションの詳細プロパティ 39 オプション 説明 す。高オプションを選択すると、トランスフォーメー ションは少なくとも1つの入力値と参照データを一致さ せることができる場合にアドレスを更新します。高オ プションではマッピングの実行時間が大幅に増加しま す。また、入力アドレスと参照データの誤一致が発生 します。 出力形式の種類 出力形式の種類プロパティは、トランスフォーメーションが住所の正式表記やフォーマッ トされたアドレス行の出力ポートに書き込む情報の一般的な種類を記述します。トランス フォーメーションの出力データを最も適切に表すオプションを選択します。 次のいずれかのオプションを選択します。 ¨ すべて(デフォルトのオプション) ¨ 住所 ¨ 組織 ¨ 担当者 ¨ 組織/担当者(住所に組織と担当者情報が含まれます) ¨ 組織/部署(住所に組織と部署情報が含まれます) 国を含む出力形式 このプロパティは、トランスフォーメーションが住所の正式表記や国情報を含むフォーマ ットされたアドレス行の出力ポートに書き込む情報を決定します。 このオプションはデフォルトではクリアされます。 優先される言語 優先される言語プロパティは、出力データの言語を決定します。 以下の表に、優先される言語のオプションを示します。 40 オプション 説明 代替1、代替2、代替3 これらのプロパティは将来使用するために予約されて います。 データベース 各アドレスに適用されるアドレス参照データの言語を 使用します。これがデフォルトのオプションです。 英語 参照データに英語版が含まれる場合は、英語版の市区 町村名と都道府県名を使用します。 章 2: アドレスバリデータトランスフォーメーション 優先されるスクリプト 優先されるスクリプトプロパティは、トランスフォーメーションが出力データに使用する 文字エンコードを決定します。 以下の表に、優先されるスクリプトのオプションを示します。 オプション 説明 ASCII(簡易) アドレス検証はASCII文字を使用します。 ASCII(拡張) アドレス検証はASCII文字と特殊文字の拡張を使用しま す。例えば、ÖはOEに置き換えられます。 データベース アドレス検証は各アドレスに適用されるアドレス参照 データの文字エンコードを使用します。これがデフォ ルトのオプションです。 ラテン アドレス検証はラテン1文字を使用します。 ラテン(代替) アドレス検証はラテン1文字と代替表記を使用します。 郵政 アドレス検証は、宛先の国のメール配信業者の設定に 従って、ラテン1文字またはASCII文字を使用します。 郵政(代替) アドレス検証は、宛先の国のメール配信業者が代替文 字セットをサポートしている場合、ラテン1文字または ASCII文字を使用します。 アドレスバリデータトランスフォーメーショ ンの全般設定 アドレス検証の必須のパラメータを設定するには、全般設定を設定します。 [全般設定]ビューでは、以下のプロパティを設定します。 デフォルトの国 入力アドレスデータから国の情報を特定できない場合に使用する参照データセットを 設定します。 データに国の情報が含まれている場合は[なし]を選択します。 国を強制的に適用 アドレスに国固有の情報が含まれているかどうかに関係なく、特定の参照データセッ トを使用するように強制します。 行セパレータ 1行のアドレス内のデータフィールドを区切る区切り文字記号を指定します。 アドレスバリデータトランスフォーメーションの全般設定 41 大文字小文字表記 出力データの大文字小文字の表記を設定します。 参照データの標準に従って先頭の文 字を大文字にする場合は、[混在]を選択します。 アドレス参照データで使用される 大文字小文字の表記が返されるようにする場合は、[維持]を選択します。 モード トランスフォーメーションで実行する検証のタイプを決定します。 デフォルトのモー ドは[バッチ]です。 次のいずれかのオプションを選択します。 モードの種類 説明 国認識 アドレス検証を実行せずに郵便アドレ スの配達先の国を決定します。 解析 検証を実行せずにデータをアドレスフ ィールドに解析します。 提案リスト アドレス検証を実行し、入力アドレス に対するアドレス候補のリストを生成 します。 注: 提案リストモードは、個別入力ポ ートグループのポートで使用します。 バッチ アドレス検証を実行します。 認証 郵政機関の認証基準を満たす検証を実 行します。 提案リストモード 提案リストモードを選択した場合、アドレスバリデータトランスフォーメーションでアド レス参照データが検索され、入力アドレスに一致する可能性があるすべてのアドレスが返 されます。 アドレスの精度を検証する必要がある場合は、このモードを選択します。 このモードは、例えば、データ入力端末のWebサービスから実行されるアドレス検証マッピ ングで使用できます。データ入力端末でユーザーがアドレスを入力すると、Webサービスで マッピングが実行されます。 マッピングは、アドレス参照データ内で検出した類似または 一致するアドレスを返します。ユーザーは、入力アドレスを使用することも、マッピング で提案されたアドレスを選択することもできます。 提案リストモードを選択するときは、以下の点を考慮してください。 ¨ トランスフォーメーションを提案リストモードで設定するときは、個別入力グループの ポートを使用します。 ¨ 提案リストモードでは、各入力レコードに対して複数のレコードが返される場合があり ます。したがって、検証可能なデータセットのサイズに制限はありませんが、提案リス トモードをバッチモード操作の代わりに使用することはできません。 42 章 2: アドレスバリデータトランスフォーメーション 認証レポート アドレスバリデータトランスフォーメーションのアドレス検証操作を認証している郵便運 送業者向けのレポートを生成することができます。 このレポートは、アドレス検証操作が郵便運送業者の標準に準拠していることの証明にな ります。 例えば、米国郵政公社(USPS)では、米国のアドレスをZIP+4コードレベルまで 検証するソフトウェアエンジンを認証しています。 アドレスバリデータトランスフォーメ ーションでは、米国のアドレスをZIP+4コードレベルまで検証し、仕分けや配達に役立つ追 加のデータを提供できます。 アドレスバリデータトランスフォーメーションは、以下の標準の認証を受けています。 Address Machine Approval System(AMAS) オーストラリア郵政省が定めた、オーストラリアのアドレスを検証するソフトウェア アプリケーションの認証基準です。 Coding Accuracy Support System(CASS) USPSが定めた、米国のアドレスを検証するソフトウェアアプリケーションの認証基準 です。 Software Evaluation and Recognition Program(SERP) カナダ郵政省が定めた、カナダのアドレスを検証するソフトウェアアプリケーション の認証基準です。 認証されたソフトウェアを使用してアドレスデータを検証すると、郵便運送業者から割引 を受けられる場合があります。 レポートは、郵便運送業者に郵便物を渡すときに郵送先住所のリストと一緒に提出しま す。 レポートには組織に関するデータが含まれます。 このデータはアドレスバリデータ トランスフォーメーションの設定時に入力します。 レポートファイルは、指定したパスに 書き込まれます。 AMASレポートのフィールド オーストラリア郵政省のAMASレポートを選択した場合、[レポート]ビューで組織に関す るデータを入力します。 次の表に、入力する情報を示します。 フィールド 説明 レポートファイル名 トランスフォーメーションで作成する レポートのパス。 デフォルトでは、 Informaticaインストールのbinディレ クトリにレポートが作成されます。 レポートファイルをマシン上の別の場 所に書き込むには、ファイルパスとフ ァイル名を入力します。 パスは完全 修飾パスでも相対パスでもかまいませ ん。 相対パスのルートディレクトリ にはbinディレクトリが使用されます。 認証レポート 43 フィールド 説明 指定するディレクトリは、アドレス検 証マッピングの実行前に作成しておく 必要があります。 住所リスト名 郵便運送業者に提出する住所リストの 名前。 プロセッサ名を一覧表示 アドレス検証を実行する組織の名前。 リストの管理者/所有者の名前 組織内のアドレスデータの管理者また は所有者の名前。 電話番号 アドレス検証を実行する組織の連絡先 電話番号。 住所 アドレス検証を実行する組織の住所。 関連項目: ¨ 「認証レポートの定義」 (48ページの) CASSレポートのフィールド USPSのCASSレポートを選択した場合、[レポート]ビューで組織に関するデータを入力し ます。 次の表に、入力する情報を示します。 フィールド 説明 レポートファイル名 トランスフォーメーションで作成する レポートのパス。 デフォルトでは、 Informaticaインストールのbinディレ クトリにレポートが作成されます。 レポートファイルをマシン上の別の場 所に書き込むには、ファイルパスとフ ァイル名を入力します。 パスは完全 修飾パスでも相対パスでもかまいませ ん。 相対パスのルートディレクトリ にはbinディレクトリが使用されます。 指定するディレクトリは、アドレス検 証マッピングの実行前に作成しておく 必要があります。 リスト名/ID 44 郵便運送業者に提出する住所リストの 名前またはID番号。 章 2: アドレスバリデータトランスフォーメーション フィールド 説明 プロセッサ名を一覧表示 アドレス検証を実行する組織の名前。 名前/住所 アドレス検証を実行する組織の名前と 住所。 関連項目: ¨ 「認証レポートの定義」 (48ページの) SERPレポートのフィールド カナダ郵政省のSERPレポートを選択した場合、[レポート]ビューで組織に関するデータ を入力します。 次の表に、入力する情報を示します。 フィールド 説明 レポートファイル名 トランスフォーメーションで作成する レポートのパス。 デフォルトでは、 Informaticaインストールのbinディレ クトリにレポートが作成されます。 レポートファイルをマシン上の別の場 所に書き込むには、ファイルパスとフ ァイル名を入力します。 パスは完全 修飾パスでも相対パスでもかまいませ ん。 相対パスのルートディレクトリ にはbinディレクトリが使用されます。 指定するディレクトリは、アドレス検 証マッピングの実行前に作成しておく 必要があります。 顧客CPC番号 アドレス検証を実行する組織のカナダ 郵政省発行の顧客番号。 顧客名/アドレス アドレス検証を実行する組織の名前と 住所。 認証レポート 45 関連項目: ¨ 「認証レポートの定義」 (48ページの) アドレスバリデータトランスフォーメーショ ンの設定 アドレスバリデータトランスフォーメーションは、郵便アドレスデータの品質を検証して 改善するために使用します。 アドレスバリデータトランスフォーメーションでは、アドレス参照データを読み取りま す。 必要なアドレス参照データファイルにDeveloperツールからアクセスできることを確 認してください。 1. トランスフォーメーションを開きます。 2. [全般設定]ビューをクリックし、全般プロパティを設定します。 3. [テンプレート]ビューをクリックし、入力ポートと出力ポートを追加します。 4. [レポート]ビューをクリックし、郵政機関のアドレス認証用のレポートを生成しま す。 5. [詳細]ビューをクリックし、アドレス検証の詳細プロパティを設定します。 6. 入力ポートおよび出力ポートを接続します。 注: アドレスバリデータトランスフォーメーションで検証しない入力ポートは、 [パススルー]入力ポートグループに接続します。 アドレスバリデータトランスフォーメーショ ンへのポートの追加 アドレスバリデータトランスフォーメーションにポートを追加するには、[テンプレー ト]ビューを使用します。 1. [テンプレート]ビューをクリックします。 2. テンプレートを展開します。 ¨ 一般的なアドレスフィールドを追加する場合は、[基本モデル]テンプレートを選 択します。 ¨ 特殊なアドレスフィールドを追加する場合は、[詳細モデル]テンプレートを選択 します。 3. 入力データの形式に対応する入力ポートグループを展開します。 選択できる入力ポー トグループは、[個別]、[複数行]、および[混合]です。 4. 入力ポートを選択します。 ヒント: 46 複数のポートを選択するには、Ctrlキーを押しながらクリックします。 章 2: アドレスバリデータトランスフォーメーション 5. ポートを右クリックし、[トランスフォーメーションにポートを追加]を選択しま す。 6. 必要なフィールドを含む出力ポートグループを展開します。 7. ポートを右クリックし、[トランスフォーメーションにポートを追加]を選択しま す。 8. 検証しないカラム用のパススルーポートを追加するには、[ポート]ビューをクリッ クし、[パススルー]入力ポートグループを選択して、[新規]をクリックします。 ユーザー定義テンプレートの作成 再利用するアドレスポートをグループ化するには、テンプレートを作成します。 カスタムテンプレートは、基本モデルおよび詳細モデルのテンプレートからポートを選択 して作成します。 作成したカスタムテンプレートは、以降にアドレスバリデータトランス フォーメーションを作成する際に選択することができます。 注: テンプレートはリポジトリオブジェクトではありません。 作成に使用したマシンに 保存されます。 1. [テンプレート]ビューを選択します。 2. [新規]をクリックします。 3. テンプレートの名前を入力します。 4. [基本モデル]テンプレートまたは[詳細モデル]テンプレートを展開し、必要なポ ートを選択します。 5. [OK]をクリックします。 アドレスバリデータのモデルの定義 アドレスバリデータのモデルとは、アドレスバリデータトランスフォーメーションのデフ ォルトの入力ポートと出力ポートを定義したものです。 アドレスバリデータトランスフォーメーションには、デフォルトの入力ポートと出力ポー トはありません。 ただし、モデルを定義することで、アドレスバリデータトランスフォー メーションで使用する入力ポートと出力ポートを指定できます。 注: モデルはリポジトリオブジェクトではありません。 作成に使用したマシンに保存さ れます。 アドレスバリデータのモデルを定義するには、以下の手順を実行します。 1. [テンプレート]ビューを選択します。 2. [基本モデル]テンプレートまたは[詳細モデル]テンプレートを展開し、必要なポ ートを選択します。 ユーザー定義テンプレートの作成 47 3. [選択したポートを使用してデフォルトAVモデルを作成]を選択します。 4. モデルをリセットしてすべてのポートを削除するには、[デフォルトAVモデルのクリ ア]を選択します。 認証レポートの定義 アドレスバリデータトランスフォーメーションで認証レポートを定義するときは、[全般 設定]ビューと[レポート]ビューでオプションを設定します。 1. [全般設定]ビューで、[モード]オプションを[認証]に設定します。 2. [レポート]ビューで、生成するレポートのタイプを選択します。 以下のタイプのレ ポートを選択できます。 3. オプショ ン 説明 AMASレポート レコードセットに関してオーストラリア郵政省か ら要求される情報が含まれます。 CASSレポート レコードセットに関してUSPSから要求される情報 が含まれます。 SERPレポート レコードセットに関してカナダ郵政省から要求さ れる情報が含まれます。 選択したレポートのタイプに応じて、レポートの詳細を入力します。 レポートファイルは、アドレスバリデータトランスフォーメーションで検証したアドレス レコードのリストと一緒に郵便運送業者に提出します。 関連項目: 48 ¨ 「AMASレポートのフィールド」 (43ページの) ¨ 「CASSレポートのフィールド」 (44ページの) ¨ 「SERPレポートのフィールド」 (45ページの) 章 2: アドレスバリデータトランスフォーメーション 第 3 章 アグリゲータトランスフォー メーション この章では、以下の項目について説明します。 ¨ アグリゲータトランスフォーメーションの概要, 49 ページ ¨ アグリゲータトランスフォーメーションの開発, 50 ページ ¨ アグリゲータトランスフォーメーションのポート, 50 ページ ¨ アグリゲータトランスフォーメーションの詳細プロパティ, 51 ページ ¨ 集計キャッシュ, 52 ページ ¨ 集計式, 53 ページ ¨ Group Byポート, 54 ページ ¨ アグリゲータトランスフォーメーションの[ソート済み入力]オプション, 55 ペー ジ ¨ 再利用可能なアグリゲータトランスフォーメーションの作成, 57 ページ ¨ 再利用不可能なアグリゲータトランスフォーメーションの作成, 58 ページ ¨ アグリゲータトランスフォーメーションに関するヒント, 58 ページ ¨ アグリゲータトランスフォーメーションのトラブルシューティング, 59 ページ アグリゲータトランスフォーメーションの概 要 アグリゲータトランスフォーメーションを使用して、平均値や合計値などの集計計算を実 行します。Data Integration Serviceは、データグループおよび行データを読み取って集 計キャッシュに保存する際に、集計計算を実行します。 アグリゲータトランスフォーメー ションはアクティブなトランスフォーメーションです。 アグリゲータトランスフォーメーションは、式トランスフォーメーションとは異なり、グ ループに対して計算を実行するために使用します。式トランスフォーメーションでは、行 単位の計算だけが可能です。 49 トランスフォーメーション言語を使用して集計式を作成する場合、条件句を使用して行を フィルタリングすることで、SQL言語より優れた柔軟性を実現できます。 差分集計を有効にすることができます。 Data Integration Serviceでの差分集計実行時に は、マッピングを通してソースデータが渡され、履歴キャッシュデータを使用して差分集 計計算が実行されます。 アグリゲータトランスフォーメーションの開 発 アグリゲータトランスフォーメーションを開発するときは、実行する計算のタイプやトラ ンスフォーメーションのパフォーマンスなどの項目について考慮する必要があります。 アグリゲータトランスフォーメーションを開発するときは、以下の項目について考慮して ください。 ¨ データを計算するために出力ポートで使用する式。 ¨ 集計キャッシュを使用してトランスフォーメーションデータを処理するかどうか。 ¨ すべての入力データで集計を実行する代わりに、Group Byポートを使用して集計対象と なるグループを定義するかどうかするかどうか。 Group Byポートを使用すると、パフ ォーマンスを向上させることができます。 ¨ [ソート済み入力]オプションを使用して、Data Integration Serviceがグループの行 を読み込みながら集計計算を実行するようにするかどうか。 アグリゲータトランスフォーメーションのポ ート アグリゲータトランスフォーメーションにはさまざまなポートタイプがあり、これらを使 用して、データの集計やデータのグループ化など、さまざまなトランスフォーメーション タスクを実行できます。 アグリゲータトランスフォーメーションは、以下のポートタイプを備えています。 入力 アップストリームトランスフォーメーションからデータを受信します。 出力 式の戻り値を格納します。 式には非集計式や条件句を含めることができます。複数の 集計出力ポートを作成できます。 パススルー 変更せずにそのままデータを渡します。 50 章 3: アグリゲータトランスフォーメーション 変数 ローカル変数に使用されます。 Group By グループの作成方法を示します。ポートは、任意の入力ポート、入出力ポート、出力 ポート、または変数ポートを設定できます。データのグループ分けを行う場合、アグ リゲータトランスフォーメーションは、原則として、各グループの最終行を出力しま す。 アグリゲータトランスフォーメーションの詳 細プロパティ Data Integration Serviceでアグリゲータトランスフォーメーションのデータがどのよう に処理されるかを特定するためのプロパティを設定します。 以下の表に、アグリゲータトランスフォーメーションの詳細プロパティを示します。 キャッシュディレクトリ Data Integration Serviceでのインデックスキャッシュファイルとデータキャッシュ ファイルの作成先となるローカルディレクトリ。 このディレクトリが存在し、集計キ ャッシュを格納するのに十分なディスク容量を備えていることを確認します。 差分集計を有効にした場合は、マッピングを実行するたびにData Integration Serviceでファイルのバックアップが作成されます。 キャッシュディレクトリには、2 セットのファイルを格納できるだけの十分なディスク容量が必要です。 データキャッシュサイズ トランスフォーメーションのデータキャッシュサイズ。デフォルトは[自動]です。 インデックスキャッシュサイズ トランスフォーメーションのインデックスキャッシュサイズ。デフォルトは[自動] です。 ソート済み入力 入力データがグループ単位で事前にソートされていることを示します。 このオプショ ンは、マッピングでアグリゲータトランスフォーメーションにソート済みデータが渡 される場合にのみ選択してください。 スコープ Data Integration Serviceで入力データにトランスフォーメーションロジックをどの ように適用するかを指定します。 ¨ Transaction。トランスフォーメーションロジックをトランザクションのすべての 行に適用します。データの行が同一トランザクション内のすべての行に依存し、他 のトランザクションの行には依存していない場合には、[Transaction]を選択し ます。 アグリゲータトランスフォーメーションの詳細プロパティ 51 ¨ All Input。トランスフォーメーションロジックをすべての入力データに適用しま す。Data Integration Serviceによって入力トランザクション境界が削除されま す。 データの行がソース内のすべての行に依存している場合は、[All Input]を 選択します。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 集計キャッシュ アグリゲータトランスフォーメーションを使用するマッピングを実行すると、Data Integration Serviceはメモリにインデックスキャッシュおよびデータキャッシュを作成し てトランスフォーメーションを処理します。 Data Integration Serviceでさらに多くの 領域が必要になると、オーバーフローした値がキャッシュファイルに格納されます。 インデックスキャッシュおよびデータキャッシュはアグリゲータトランスフォーメーショ ンで設定できます。 Data Integration Serviceはメモリを使用して、ソート済みのポートを使用したアグリゲ ータトランスフォーメーションを処理します。 キャッシュメモリは使用されません。ソー ト済みポートを使用するアグリゲータトランスフォーメーションでは、キャッシュメモリ を設定する必要はありません。 52 章 3: アグリゲータトランスフォーメーション 集計式 Developerツールでは、アグリゲータトランスフォーメーションでのみ集計式が使えます。 集計式には、条件句や非集計関数を含めることができます。また、以下のように別の集計 関数内にネストした集計関数を1つ含めることができます。 MAX( COUNT( ITEM )) 集計式の結果は、トランスフォーメーション内のGroup Byポートに基づいて変わります。 例えばData Integration Servicで、Group Byポートが定義されていない状態で以下の集 計式が計算された場合、全品目の合計販売数量が算出されます。 SUM( QUANTITY ) 一方、同じ式でITEMポート別にグループ分けを指定すると、Data Integration Serviceは 品目ごとの販売数量を返します。 任意の出力ポートで集計式を作成でき、また1つのトランスフォーメーションで複数の集計 ポートを使用できます。 集計関数 集計関数はアグリゲータトランスフォーメーション内で使用します。 1つの集計関数を別 の集計関数にネストすることができます。 トランスフォーメーション言語には、以下の集計関数が用意されています。 ¨ AVG ¨ COUNT ¨ FIRST ¨ LAST ¨ MAX ¨ MEDIAN ¨ MIN ¨ PERCENTILE ¨ STDDEV ¨ SUM ¨ VARIANCE これらの関数はアグリゲータトランスフォーメーション内の式で使用する必要がありま す。 ネストされた集計関数 アグリゲータトランスフォーメーションの異なる出力ポートに、単一レベルの関数を複数 含めたり、複数レベルにネストされた関数を複数含めたりすることができます。 アグリゲータトランスフォーメーションには、単一レベルの関数とネストされた関数の両 方を含めることはできません。 そのため、アグリゲータトランスフォーメーションの出力 ポートに単一レベルの関数が含まれる場合には、そのトランスフォーメーションの他のポ 集計式 53 ートでネストされた関数を使うことはできません。単一レベルの関数とネストされた関数 を同じアグリゲータトランスフォーメーションに含めると、そのマッピングまたはマップ レットはDeveloperツールによって無効とされます。 単一レベルの関数とネストされた関 数の両方を作成する必要がある場合は、別々のアグリゲータトランスフォーメーションを 作成してください。 集計式の条件句 集計で使用される行の数を削減するには、集計式で条件句を使用します。条件句には、 TRUEまたはFALSEに評価される任意の句を使用できます。 たとえば以下の式を使用して、四半期単位のノルマを超過して達成した従業員の歩合総額 を算出します。 SUM( COMMISSION, COMMISSION > QUOTA ) Group Byポート アグリゲータトランスフォーメーションを使用すると、すべての入力データで集計を実行 する代わりに、集計対象となるグループを定義できます。たとえば、会社の総売上高を求 めるのでなく、地域ごとにグループ分けした総売上高の確認ができます。 集計式に対してグループを定義するには、アグリゲータトランスフォーメーションで該当 する入力、入出力、出力、および変数ポートを選択します。複数のGroup Byポートを選択 して、一意なグループの組み合わせそれぞれについて新しいグループを作成することがで きます。その後、Data Integration Serviceではグループごとに定義済みの集計が実行さ れます。 値をグループ分けすると、Data Integration Serviceはグループごとに1つの行を生成しま す。 値をグループ分けをしないと、Data Integration Serviceはすべての入力行に対して 1つの行を返します。 一般には、各グループの最終行(または最後に受信した行)と集計 結果が返されます。 ただし、(例えばFIRST関数を使用して)特定の行を返すように指定 した場合、Data Integration Serviceはその行を返します。 アグリゲータトランスフォーメーションで複数のGroup Byポートを選択すると、Data Integration Serviceはポートの順序に基づいてグループ分けの順序を決定します。 グル ープの順序は結果に影響を及ぼす場合もあるため、グループ分けが妥当なものとなるよう に、Group Byポートの順序付けを行ってください。たとえば、ITEM_IDの後でQUANTITYの グループ分けを行った場合の結果と、QUANTITYの後でITEM_IDのグループ分けを行った場合 の結果が異なることもありますが、その理由は、数量の数値が必ずしも一意ではないから です。 このアグリゲータトランスフォーメーションに以下のデータを渡すとします。 STORE_ID 101 101 101 101 201 201 301 54 ITEM 'battery' 'battery' 'battery' 'AAA' 'battery' 'battery' 'battery' 章 3: アグリゲータトランスフォーメーション QTY 3 1 2 2 1 4 1 PRICE 2.99 3.19 2.59 2.45 1.99 1.59 2.45 Data Integration Serviceは、以下の一意なグループに対して集計計算を実行します。 STORE_ID 101 101 201 301 ITEM 'battery' 'AAA' 'battery' 'battery' その後、Data Integration Serviceは、最後に受信した行と集計結果を、次のように渡し ます。 STORE_ID 101 101 201 301 ITEM 'battery' 'AAA' 'battery' 'battery' QTY 2 2 4 1 PRICE 2.59 2.45 1.59 2.45 SALES_PER_STORE 17.34 4.90 8.35 2.45 非集計式 グループの変更または置き換えを実行するには、Group Byポートで非集計式を使用しま す。 例えば、グループ分けの前に「AAA battery」を置換する場合には、以下の式を用いて、 CORRECTED_ITEMという名のGroup By出力ポートを作成できます。 IIF( ITEM = 'AAA battery', battery, ITEM ) Group Byポートのデフォルト値 NULL入力値を置き換えるには、グループ内の各ポートにデフォルト値を定義します。これ により、Data Integration ServiceはNULLの品目グループを集計に含めることができま す。 アグリゲータトランスフォーメーションの [ソート済み入力]オプション [ソート済み入力]オプションを使用して、アグリゲータトランスフォーメーションのパ フォーマンスを向上させることができます。 [ソート済み入力]オプションを使用すると、Data Integration Serviceではすべてのデ ータがグループ別にソートされているものと想定され、グループの行を読み込んでから集 計計算が実行されます。 必要に応じて、メモリにグループ情報が格納されます。 [ソー ト済み入力]オプションを使用するには、ソート済みデータをアグリゲータトランスフォ ーメーションに渡す必要があります。 [ソート済み入力]オプションを使用しない場合、Data Integration Serviceは読み込み と並行して集計計算を実行します。 この場合、データはソートされていないため、すべて の集計計算が正確に実行されるように、Data Integration Serviceはソース全体の読み込 みが完了するまで各グループのデータを格納しておきます。 例えば、あるアグリゲータトランスフォーメーションでSTORE_IDとITEMのGroup Byポート があり、[ソート済み入力]オプションが選択されているとします。Aggregatorを通して アグリゲータトランスフォーメーションの[ソート済み入力]オプション 55 以下のデータを渡すと、Data Integration Serviceは201/batteryグループを検出した時点 で、101/batteryグループの3つの行を集計します。 STORE_ID 101 101 101 201 201 ITEM 'battery' 'battery' 'battery' 'battery' 'battery' QTY 3 1 2 4 1 PRICE 2.99 3.19 2.59 1.59 1.99 [ソート済み入力]オプションを使用する場合、前もってデータを正しくソートしておか ないと、予期しない結果が生じます。 [ソート済み入力]オプションの条件 特定の条件では、[ソート済み入力]オプションを使用できない場合があります。 以下のいずれかの条件が当てはまる場合には、[ソート済み入力]オプションを使用しな いでください。 ¨ 集計式がネストされた集計関数を使用している。 ¨ トランスフォーメーションで差分集計を使用している。 [ソート済み入力]オプションを使用した場合、データを正しくソートしないと、マッピ ングの実行は失敗します。 アグリゲータトランスフォーメーションでのデータの ソート [ソート済み入力]オプションを使用する場合は、ソート済みデータをアグリゲータトラ ンスフォーメーションへ渡します。 AggregatorのGroup Byポートごとに、アグリゲータトランスフォーメーションに表示され る順で、データをソートする必要があります。 リレーショナルファイル入力およびフラットファイル入力の場合、アグリゲータトランス フォーメーションにデータを渡す前に、ソータートランスフォーメーションを使用してマ ッピング内でデータをソートします。 ソート済みデータの順序を変更するトランスフォー メーションが1つもない場合は、マッピング内のAggregatorより前の任意の場所にソーター トランスフォーメーションを配置できます。 アグリゲータトランスフォーメーションの中 のグループ別カラムの順序はソータートランスフォーメーションと同じでなければなりま せん。 56 章 3: アグリゲータトランスフォーメーション 次のマッピングは、ITEM_NOの昇順にソースデータをソートするよう構成されたソータート ランスフォーメーションを示しています。 ソータートランスフォーメーションは下記のようにデータをソートします。 ITEM_NO 345 345 345 546 546 ITEM_NAME Soup Soup Soup Cereal Cereal QTY 4 1 2 1 2 PRICE 2.95 2.95 3.25 4.49 5.25 [ソート済み入力]オプションを使用した場合、アグリゲータトランスフォーメーション は下記の結果を返します。 ITEM_NAME Cereal Soup QTY 2 2 PRICE 5.25 3.25 INCOME_PER_ITEM 14.99 21.25 再利用可能なアグリゲータトランスフォーメ ーションの作成 複数のマッピングまたはマプレットで使用する、再利用可能なアグリゲータトランスフォ ーメーションを作成します。 1. 2. [Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。 [ファイル] > [新規] > [トランスフォーメーション]をクリックします。 [新規]ダイアログボックスが表示されます。 3. アグリゲータトランスフォーメーションを選択します。 4. [次へ]をクリックします。 5. トランスフォーメーションの名前を入力します。 6. [完了]をクリックします。 トランスフォーメーションがエディタに表示されます。 7. [新規]ボタンをクリックして、トランスフォーメーションにポートを追加します。 8. ポートを編集して、名前、データ型、および精度を設定します。 9. 各ポートのタイプ(入力、出力、パススルー、または変数)を決定します。 再利用可能なアグリゲータトランスフォーメーションの作成 57 10. 出力ポートの集計式を設定します。 11. [詳細]ビューをクリックし、トランスフォーメーションのプロパティを編集しま す。 再利用不可能なアグリゲータトランスフォー メーションの作成 マッピングまたはマプレットで再利用不可能なアグリゲータトランスフォーメーションを 作成します。 1. マッピングまたはマプレットで、トランスフォーメーションパレットからエディタに アグリゲータトランスフォーメーションをドラッグします。 トランスフォーメーションがエディタに表示されます。 2. [プロパティ]ビューで、トランスフォーメーションの名前と説明を編集します。 3. [ポート]ビューで、[新規]ボタンをクリックして、トランスフォーメーションに ポートを追加します。 4. ポートを編集して、名前、データ型、および精度を設定します。 5. 各ポートのタイプ(入力、出力、パススルー、または変数)を決定します。 6. 出力ポートの集計式を設定します。 7. [詳細]ビューで、トランスフォーメーションのプロパティを編集します。 アグリゲータトランスフォーメーションに関 するヒント アグリゲータトランスフォーメーションをより効果的に使用するためのヒントを紹介しま す。 [ソート済み入力]オプションを使用し、集計キャッシュの使用量を減らしてください。 [ソート済み入力]オプションはマッピングの実行時にキャッシュに格納されるデー タ量を減らし、パフォーマンスを向上させます。 このオプションをソータートランス フォーメーションと共に使用して、ソート済みデータをアグリゲータトランスフォー メーションに渡します。 接続される入出力ポートまたは出力ポートを制限してください。 接続される入出力ポートまたは出力ポートの数を制限することにより、アグリゲータ トランスフォーメーションがデータキャッシュに格納するデータ量を減らしてくださ い。 58 章 3: アグリゲータトランスフォーメーション 集計に先立ってデータをフィルタリングします。 マッピングでFilterトランスフォーメーションを使用する場合は、そのあとにアグリ ゲータトランスフォーメーションを配置して、不要な集計を減らしてください。 アグリゲータトランスフォーメーションのト ラブルシューティング アグリゲータトランスフォーメーションをトラブルシューティングすることができます。 [ソート済み入力]オプションを選択しましたが、ワークフローの処理 にかかる時間が前と変わりません。 以下のいずれかの条件では、[ソート済み入力]オプションを使用できません。 ¨ 集計式が、ネストされた集計関数を含んでいる。 ¨ 差分集計を使用している。 ¨ ソースデータがデータドリブンである。 以上の条件のいずれかが満たされている場合、Integration Serviceはソート済み入力オプ ションが使用されていない場合と同様にトランスフォーメーションを処理します。 アグリゲータトランスフォーメーションを使用するとマッピングのパフ ォーマンスが低下します。 Data Integration Serviceは、ディスクへのページングを行う場合があります。 トラン スフォーメーションのプロパティでインデックスキャッシュとデータキャッシュのサイズ を増やせば、パフォーマンスを向上させることができます。 アグリゲータトランスフォーメーションのトラブルシューティング 59 第 4 章 関連付けトランスフォーメー ション この章では、以下の項目について説明します。 ¨ 関連付けトランスフォーメーションの概要, 60 ページ ¨ メモリ割り当て, 62 ページ 関連付けトランスフォーメーションの概要 関連付けトランスフォーメーションは、一致トランスフォーメーションの出力データを処 理します。 異なる一致クラスタに割り当てられた重複レコードの間のリンクを作成し、そ れらのレコードをデータ統合やマスタデータ管理の操作で関連付けることができるように します。 関連付けトランスフォーメーションは、関連レコードのグループ内の行ごとに AssociationID値を生成し、そのID値を出力ポートに書き込みます。 統合トランスフォーメーションは、関連付けトランスフォーメーションの出力を読み取り ます。 統合トランスフォーメーションを使用して、共通の関連付けID値を持つレコードに 基づいてマスタレコードを作成します。 関連付けトランスフォーメーションは、入力ポートのデータ値として文字列と数値を受け 入れます。 別のデータ型の入力ポートを追加した場合、トランスフォーメーションによっ てポートのデータ値が文字列に変換されます。 AssociationID出力ポートは、整数データを書き込みます。 以前のバージョンの Informatica Data Qualityで設定されたトランスフォーメーションは、AssociationIDポ ートに文字列データを書き込むことができます。 60 例: 一致トランスフォーメーションの出力の関連付け 次の表に、同一であると見なされる可能性がある3つのレコードを示します。 ID 名前 住所 市区町 村 州 郵便番 号 SSN 1 David Jones 100 Admiral Ave. New York NY 10547 987-654321 2 Dennis Jones 1000 Alberta Ave. New Jersey NY 3 D. Jones Admiral Ave. New York NY 987-654321 10547-1 521 一致トランスフォーメーションで定義された重複分析操作では、以下の理由で、これらの3 つのレコードはどれも相互に重複するとは見なされません。 ¨ 名前および住所のデータに対する重複検索を定義した場合、レコード1とレコード3は重 複と見なされますが、レコード2は除外されます。 ¨ 名前および社会保障番号のデータに対する重複検索を定義した場合、レコード1とレコ ード2は重複と見なされますが、レコード3は除外されます。 ¨ 3つのすべての属性(名前、住所、および社会保障番号)に対する重複検索を定義した 場合、いずれのレコードも一致とは見なされません。 関連付けトランスフォーメーションは、異なる一致クラスタのデータをリンクし、クラス タIDが同じレコードに共通のAssociationID値が割り当てられるようにします。 この例の 場合、次の表に示すように、3つのすべてのレコードに同じAssociationIDが割り当てられ ます。 ID 名前 住所 市区 町村 州 郵便 番号 SSN 名前 と住 所の クラ スタ ID 名前 と SSN のク ラス タID 関連 付け ID 1 Davi d Jone s 100 Admi ral Ave. New York NY 1054 7 98765-4 320 1 1 1 2 Denn is 1000 Albe New Jers ey NY 98765-4 320 2 1 1 関連付けトランスフォーメーションの概要 61 ID 3 名前 住所 Jone s rta Ave. D. Jone s Albe rta Ave. 市区 町村 州 郵便 番号 New York NY 1054 7-15 21 SSN 名前 と住 所の クラ スタ ID 名前 と SSN のク ラス タID 関連 付け ID 1 2 1 重複レコードのデータは、統合トランスフォーメーションで統合することができます。 メモリ割り当て 関連付けトランスフォーメーションで使用される最小限のキャッシュメモリ量を設定でき ます。デフォルトの設定は400,000バイトです。 この値は、[詳細]タブの[キャッシュファイルサイズ]プロパティで設定します。 デフォルト値は、トランスフォーメーションで使用される最小限のメモリ量を表します。 関連付けトランスフォーメーションは、関連付けるポートの数に基づいて、デフォルト値 の倍数を取得しようとします。 取得するキャッシュメモリは、次の式で計算されます。 (関連付けポートの数 + 1) x デフォルトのキャッシュメモリ 例えば、関連付けポートを7つ設定すると、トランスフォーメーションは320万バイト (3.05MB)をキャッシュメモリに割り当てようとします。 デフォルトの設定を変更した場合、トランスフォーメーションで追加のメモリの取得は試 行されません。 注: 入力したキャッシュメモリの値が65536を下回る場合、関連付けトランスフォーメーシ ョンでは値がMB単位で読み取られます。 62 章 4: 関連付けトランスフォーメーション 第 5 章 大文字小文字変換プログラム トランスフォーメーション この章では、以下の項目について説明します。 ¨ 大文字小文字変換プログラムトランスフォーメーションの概要, 63 ページ ¨ 大文字小文字ストラテジのプロパティ, 64 ページ ¨ 大文字小文字変換プログラムストラテジの設定, 64 ページ 大文字小文字変換プログラムトランスフォー メーションの概要 大文字小文字変換プログラムトランスフォーメーションは、入力データで文字列の大文字 小文字を標準化することによって、データの均一性を実現するパッシブトランスフォーメ ーションです。 データ品質を高めるには、大文字小文字変換プログラムトランスフォーメーションを使用 して、類似する文字形式にデータをフォーマットします。 大文字、小文字、トグルケー ス、タイトルケース、センテンスケースなど、定義済みの大文字小文字変換タイプを選択 できます。 参照テーブルを使用して大文字小文字変換を制御することもできます。 参照テーブルを使 用して、入力文字列の大文字小文字を参照テーブルの[有効]カラムの値に変更します。 参照テーブルは、大文字小文字変換タイプが [Title Case] または [Sentence case] であるときに使用できます。 大文字小文字変換プログラムトランスフォーメーション内に、複数の大文字小文字変換ス トラテジを作成できます。 各ストラテジは、1つの変換タイプを使用します。 大文字小文 字変換プログラムトランスフォーメーションには、ストラテジの作成に使用するウィザー ドが用意されています。 63 大文字小文字ストラテジのプロパティ 大文字小文字変換ストラテジのプロパティを設定できます。 [ストラテジ]ビューで、以下の大文字小文字変換のプロパティを設定できます。 参照テーブル 参照テーブルによって指定された大文字化形式を適用します。 大文字小文字変換オプ ションが [Title Case] または [Sentence case] である場合にのみ適用されま す。 トークンの先頭部分が参照テーブルと一致した場合、そのトークンの次の文字が大文 字に変わります。 例えば、入力文字列がmcdonaldで、参照テーブルにMcのエントリが ある場合の出力文字列は、McDonaldです。 変換タイプ ストラテジで使用される大文字小文字変換メソッドを定義します。 以下の大文字小文 字変換タイプを適用できます。 ¨ [Uppercase]。 すべての文字を大文字に変換します。 ¨ [Lowercase]。 すべての文字を小文字に変換します。 ¨ [Toggle Case]。 小文字を大文字に、大文字を小文字に変換します。 ¨ [Title Case]。 各部分文字列の最初の文字を大文字にします。 ¨ [Sentence Case]。 フィールドデータ文字列の最初の文字を大文字にします。 デフォルトの大文字小文字変換メソッドは大文字です。 大文字の単語をそのまま残す 大文字の文字列に対して選択された大文字化をオーバーライドします。 区切り文字 大文字小文字変換に対して大文字化がどのように機能するかを定義します。 例えば、 「smith-jones」を「Smith-Jones」に変換するには、区切り文字としてダッシュを選 択します。 デフォルトの区切り文字はスペース文字です。 大文字小文字変換プログラムストラテジの設 定 入力文字列の大文字小文字を変更するには、大文字小文字変換プログラムトランスフォー メーションの[ストラテジ]ビューで設定を構成します。 1. [ストラテジ]ビューを選択します。 2. [新規]をクリックします。 新しいストラテジウィザードが開きます。 3. 64 必要に応じて、ストラテジ名と説明を編集します。 章 5: 大文字小文字変換プログラムトランスフォーメーション 4. [入力]フィールドと[出力]フィールドをクリックして、ストラテジのポートを選 択します。 5. ストラテジのプロパティを設定します。 デフォルトの変換ストラテジは [Uppercase]です。 6. [次へ]をクリックします。 7. 必要に応じて参照テーブルを追加し、参照テーブルのエントリに一致する入力データ の大文字小文字オプションをカスタマイズします。 参照テーブルの大文字小文字のカ スタマイズは、タイトルの大文字小文字ストラテジと文の大文字小文字ストラテジに のみ適用されます。 8. [完了]をクリックします。 大文字小文字変換プログラムストラテジの設定 65 第 6 章 比較トランスフォーメーショ ン この章では、以下の項目について説明します。 ¨ 比較トランスフォーメーションの概要, 66 ページ ¨ フィールド一致ストラテジ, 67 ページ ¨ IDマッチングストラテジ, 69 ページ ¨ 比較ストラテジの設定, 70 ページ 比較トランスフォーメーションの概要 比較トランスフォーメーションは、入力文字列のペア間の類似度を評価し、各ペアの類似 度を数値スコアとして計算するパッシブなトランスフォーメーションです。 トランスフォーメーションを設定するときは、入力カラムのペアを選択し、それらに一致 ストラテジを割り当てます。 比較トランスフォーメーションでは、一致スコアを 0~1の範囲で出力します。1が完全一致 を表します。 注: 比較トランスフォーメーションで使用できるストラテジは、一致トランスフォーメー ションでも使用できます。 一致マプレットに追加する一致比較処理を定義する場合は、比 較トランスフォーメーションを使用します。 マプレットに複数の比較トランスフォーメー ションを追加することができます。 1つのトランスフォーメーション内で一致比較を定義 する場合は、一致トランスフォーメーションを使用します。 一致トランスフォーメーショ ンに一致マプレットを組み込むことができます。 66 フィールド一致ストラテジ 比較トランスフォーメーションには、入力データフィールドのペアを比較する定義済みの フィールド一致ストラテジが用意されています。 バイグラム バイグラムストラテジは、郵便アドレスが1つのフィールドに入力されている場合など、長 いテキスト文字列を比較する場合に使用します。 バイグラムアルゴリズムでは、2つのデータ文字列の一致スコアを、両方の文字列に含まれ る連続した文字に基づいて計算します。 両方の文字列に共通する連続した文字のペアを探 し、一致する文字のペアの数を文字のペアの総数で割ります。 バイグラムの例 次の文字列について考えてみます。 ¨ larder ¨ lerder これらの文字列をバイグラムのグループに分けると次のようになります。 l a, a r, r d, d e, e r l e, e r, r d, d e, e r 文字列"lerder"の2つ目の"e r"は一致と見なされません。文字列"larder"には文字列"e r"が1 つしかなく、2つ目に対応するものはないからです。 バイグラムの一致スコアを計算するには、一致するペアの数(6)を両方の文字列のペアの 総数(10)で割ります。 この例では、文字列の類似度は60%で、一致スコアは 0.60になりま す。 ハミング距離 ハミング距離ストラテジは、電話番号、郵便番号、製品コードなどの数値フィールドやコ ードフィールドのように、データ文字の位置が重要な要素である場合に使用します。 ハミング距離アルゴリズムでは、2つのデータ文字列の一致スコアを、データ文字列間で文 字が異なる位置の数に基づいて計算します。 長さが異なる文字列の場合、長い方の文字列 にしかない各文字は文字列間の相違としてカウントされます。 ハミング距離の例 次の文字列について考えてみます。 ¨ Morlow ¨ Marlowes 強調表示された文字は、ハミングストラテジで相違と見なされる位置を示しています。 ハミングの一致スコアを計算するには、一致する文字の数(5)を長い方の文字列の文字数 (8)で割ります。 この例では、文字列の類似度は62.5%で、一致スコアは 0.625になりま す。 フィールド一致ストラテジ 67 エディット距離 エディット距離ストラテジは、単語や短いテキスト文字列(名前など)を比較する場合に 使用します。 エディット距離アルゴリズムでは、文字列を別の文字列に変換するために文字の挿入、削 除、または置き換えが必要な最小限の「コスト」を計算します。 エディット距離の例 次の文字列について考えてみます。 ¨ Levenston ¨ Levenshtein 強調表示された文字は、文字列をもう一方の文字列に変換するために処理が必要な部分を 示しています。 エディット距離アルゴリズムでは、変更されない文字の数(8)を長い方の文字列の文字数 (11)で割ります。 この例では、文字列の類似度は72.7%で、一致スコアは 0.727になりま す。 Jaro距離 Jaro距離ストラテジは、2つの文字列を比較するときに、文字列内の最初の文字の類似度を 優先する場合に使用します。 Jaro距離の一致スコアには、両方の文字列の最初の4文字の一致度、および識別された文字 の転置の数が反映されます。 最初の4文字の一致の重要度に、[ペナルティ]プロパティ に入力した値を使用して重みが設定されます。 Jaro距離のプロパティ Jaro距離ストラテジを設定するときは、次のプロパティを設定できます。 ペナルティ 比較する2つの文字列内の最初の4文字が同一でない場合の一致スコアのペナルティを 指定します。 最初の文字が一致しない場合は、ペナルティの値がそのまま減算されま す。 それ以外の文字が異なる場合は、その位置に基づいてペナルティの端数が減算さ れます。 デフォルトのペナルティ値は 0.20です。 大文字小文字の区別 Jaro距離ストラテジで一致を行うときに大文字と小文字を区別するかどうかを指定し ます。 Jaro距離の例 次の文字列について考えてみます。 ¨ 391859 ¨ 813995 デフォルトのペナルティ値である 0.20を使用してこれらの文字列を分析した場合、Jaro距離 ストラテジで返される一致スコアは 0.513になり、 文字列の類似度は51.3%となります。 68 章 6: 比較トランスフォーメーション ハミング距離の反転 ハミング距離の反転ストラテジは、2つの文字列間で文字が異なる位置の割合を、文字を右 から左の順に読み取って計算する場合に使用します。 ハミング距離アルゴリズムでは、2つのデータ文字列の一致スコアを、データ文字列間で文 字が異なる位置の数に基づいて計算します。 長さが異なる文字列の場合、長い方の文字列 にしかない各文字は文字列間の相違としてカウントされます。 ハミング距離の反転の例 次の文字列について考えてみます。この文字列では、ハミングの反転ストラテジについて 説明するために右から左の順に文字を配置しています。 1-999-9999 ¨ ¨ 011-01-999-9991 強調表示された文字は、ハミング距離の反転ストラテジで相違と見なされる位置を示して います。 ハミングの反転の一致スコアを計算するには、一致する文字の数(9)を長い方の文字列の 文字数(15)で割ります。 この例では、一致スコアは 0.6になり、文字列の類似度は60%と なります。 IDマッチングストラテジ 比較トランスフォーメーションには、個人、住所、または法人の一致を見つけるために使 用できる定義済みのID一致ストラテジが用意されています。 次の表に、それぞれのID一致ストラテジで実行される一致操作を示します。 ID一致ストラテジ 一致操作 住所 住所の一致を特定します。 担当者 単一の場所にいる組織内の担当者を特定します。 法人 組織を正式な社名で特定します。 除算 ある住所を所在地とする組織を特定します。 家族 家族を姓と住所または電話番号で特定します。 フィールド 選択するカスタムフィールドを特定します。 世帯 同じ住所の同じ家族のメンバーを特定します。 個人 個人を名前とIDまたは誕生日で特定します。 組織 組織を名前で特定します。 IDマッチングストラテジ 69 ID一致ストラテジ 一致操作 個人名 個人を名前で特定します。 住居 ある住所にいる個人を特定します。 担当者(広域) 所在地に関係なく、組織内の担当者を特定します。 世帯(広域) 住所に関係なく、同じ家族のメンバーを特定します。 注: ID一致ストラテジでは、ポピュレーションと呼ばれる参照データファイルを読み取り ます。 システムにインストールされているポピュレーションデータファイルについては、 Informatica Administratorユーザーに問い合わせてください。 比較ストラテジの設定 比較ストラテジを設定するには、比較トランスフォーメーションの[ストラテジ]ビュー で設定を編集します。 1. [ストラテジ]ビューを選択します。 2. [ストラテジ]セクションから比較ストラテジを選択します。 3. [入力]セクションで、[使用可能なフィールド]カラムのセルをダブルクリックし て入力を選択します。 注: [入力フィールド]カラムで入力名が太字で示されている各行について、入力を 選択する必要があります。 70 章 6: 比較トランスフォーメーション 第 7 章 統合トランスフォーメーショ ン ¨ 統合トランスフォーメーションの概要, 71 ページ 統合トランスフォーメーションの概要 統合トランスフォーメーションは、一致トランスフォーメーションで重複と識別されたレ コードから1つの統合されたレコードを作成するアクティブなトランスフォーメーションで す。 統合トランスフォーメーションでは、関連付けトランスフォーメーションで作成される AssociationIDを読み取ってこのタスクを実行します。 71 第 8 章 カスタムデータトランスフォ ーメーション この章では、以下の項目について説明します。 ¨ カスタムデータトランスフォーメーションの概要, 72 ページ ¨ カスタムデータトランスフォーメーションのビュー, 73 ページ ¨ ポート設定, 79 ページ ¨ カスタムデータトランスフォーメーションの作成, 82 ページ カスタムデータトランスフォーメーションの 概要 カスタムデータトランスフォーメーションは、メッセージング形式、HTMLページ、PDFドキ ュメントなどの非構造化ファイル形式および半構造化ファイル形式のデータを処理するア クティブなトランスフォーメーションです。 また、ACORD、HIPAA、HL7、EDI-X12、 EDIFACT、SWIFTなどの構造化形式も変換します。 カスタムデータトランスフォーメーションは、データをデータトランスフォーメーション エンジンに渡します。データトランスフォーメーションエンジンは、非構造化ファイル形 式および半構造化ファイル形式を変換するアプリケーションです。Data Integration Serviceが、カスタムデータトランスフォーメーションからデータトランスフォーメーショ ンエンジンにデータを渡します。データトランスフォーメーションエンジンは、データを 変換し、変換後のデータをData Integration Serviceに返します。 データトランスフォーメーションエンジンは、データを出力ファイルに書き込むか、出力 データをData Integration Serviceに返すことができます。Data Integration Serviceに 出力を返すときは、XMLデータを返します。XMLを出力ポートに返すようにカスタムデータ トランスフォーメーションを設定したり、行データを返すように出力グループを設定した りできます。 72 カスタムデータトランスフォーメーションのマッピングを実行するときの処理を次に示し ます。 1. Data Integration Serviceが、ソースデータをデータトランスフォーメーションエン ジンに渡します。 2. データトランスフォーメーションエンジンは、そのデータを変換するデータトランス フォーメーションサービスを実行します。 3. データトランスフォーメーションエンジンは、変換後のデータを直接出力ファイルに 書き込むか、または変換後のデータをData Integration Serviceに返します。カスタ ムデータトランスフォーメーションは、出力データをマッピングに渡します。 4. カスタムデータトランスフォーメーションは、XMLデータまたはデータ行を返します。 データトランスフォーメーションの設定 カスタムデータトランスフォーメーションのデータトランスフォーメーションエンジン は、DeveloperツールおよびData Integration Serviceで実行します。 DeveloperツールおよびData Integration Serviceで実行できるのは、ローカルマシン上の データトランスフォーメーションだけです。 リモートマシン上のサービスを実行する場合は、両方のマシンのデータトランスフォーメ ーションリポジトリを手動で同期する必要があります。 カスタムデータトランスフォーメーションの ビュー カスタムデータトランスフォーメーションには、以下のビューがあります。 概要 トランスフォーメーションの説明とカスタムデータトランスフォーメーションのポー ト。 サービス サービス名または動的サービス名。 構造 カスタムデータトランスフォーメーションで行をリレーショナルターゲットに書き込 むための出力グループおよび出力ポートの階層。 詳細 カスタムデータトランスフォーメーションの属性(入力タイプ、出力タイプ、サービ ス名、ストリーマチャンクサイズなど)。 カスタムデータトランスフォーメーションのビュー 73 [概要]ビュー [概要]ビューでは、カスタムデータトランスフォーメーションのポートを追加します。 また、説明を入力したり、トランスフォーメーションの名前を変更したりすることもでき ます。 カスタムデータトランスフォーメーションを作成すると、Developerツールによってデフォ ルトのポートが作成されます。 トランスフォーメーションの設定方法によっては、それ以 外のポートも作成されます。 入力タイプおよび出力タイプによって、トランスフォーメー ションがデータトランスフォーメーションエンジンとどのようにデータを受け渡しするか が決まります。 以下の表に、カスタムデータトランスフォーメーションのデフォルトのポートを示しま す。 ポート 入力/ 説明 出力 InputBuffer Input 入力タイプがバッファである場合、ソースデ ータを受け取ります。 入力タイプがファイルである場合、ソースフ ァイル名およびソースファイルパスを受け取 ります。 OutputFileNa me Input 出力タイプがファイルである場合、出力ファ イルの名前を受け取ります。 サービス名 Input 動的サービス名を有効にしている場合、デー タトランスフォーメーションサービスの名前 を受け取ります。 OutputBuffer アウトプット 出力タイプがバッファである場合、XMLデー タを返します。 出力タイプがファイルである場合、出力ファ イル名を返します。 ポートの階層的な出力グループを設定してい る場合、データを返しません。 Status_Code Output ステータストレースレベルが[説明のみ]ま たは[フルステータス]である場合、データ トランスフォーメーションエンジンからのス テータスコードを返します。 Status_ Message Output ステータストレースレベルが[説明のみ]ま たは[フルステータス]である場合、データ トランスフォーメーションエンジンからのス テータスメッセージを返します。 注: [構造]ビューでは、リレーショナルターゲットの出力ポートのグループを追加でき ます。 ポートのグループを設定すると、ポートの階層的なグループが別のビューにあるこ とを示すメッセージが[概要]ビューに表示されます。 74 章 8: カスタムデータトランスフォーメーション [サービス]ビュー [サービス]ビューでは、データトランスフォーメーションサービスを選択します。 カスタムデータトランスフォーメーションを作成するときは、データを変換するデータト ランスフォーメーションサービスの名前を選択する必要があります。1つのサービスを選択 してすべての入力行を処理することも、入力行ごとに異なるサービスを選択して処理する こともできます。 ソース行ごとに異なるデータトランスフォーメーションサービスを呼び出すには、[動的 サービス]を有効にします。Developerツールにより、ServiceName入力ポートが作成され ます。 それぞれのソース行で、その行を処理するデータトランスフォーメーションサービ スの名前を渡す必要があります。 すべての行を処理するデータトランスフォーメーションサービスを選択するには、[デー タトランスフォーメーションサービスから]を有効にします。[参照]をクリックしま す。 データトランスフォーメーションリポジトリにあるデータトランスフォーメーション サービスのリストが表示されます。カスタムデータトランスフォーメーションから呼び出 すデータトランスフォーメーションサービスの名前を選択します。 動的サービス名を有効にした場合、データトランスフォーメーションサービスからポート を作成することはできません。 データトランスフォーメーションサービスのタイプ データトランスフォーメーションサービスは、サービスタイプに基づいてデータを変換し ます。 データトランスフォーメーションでは、以下のサービスタイプのデータを変換できます。 パーサー ソースドキュメントをXMLに変換します。パーサーの出力は常に XML になります。入 力には、テキスト、HTML、Word、PDF、HL7など任意の形式を使用できます。 シリアライザ XMLファイルを任意の形式の出力ドキュメントに変換します。シリアライザの出力は、 テキストドキュメント、HTMLドキュメント、PDFなど、任意の形式にすることができま す。 マッパー XMLソースドキュメントを別のXML構造またはスキーマに変換します。マッパーは、XML 入力を処理し、 パーサーと同様にXML出力を生成します。 入力および出力は完全に構 造化されたXMLです。 トランスフォーマ 任意のフォーマットのデータを変更します。テキストを追加、削除、変換、または変 更します。パーサー、マッパーまたはシリアライザと共にトランスフォーマを使用し ます。また、トランスフォーマをスタンドアロンコンポーネントとして実行すること もできます。 カスタムデータトランスフォーメーションのビュー 75 ストリーマ マルチギガバイトのデータストリームなど、サイズの大きな入力ドキュメントをセグ メントに分割します。 ストリーマは、HIPAAファイルやEDIファイルなど、複数のメッ セージや複数のレコードを含むドキュメントを処理します。 [構造]ビュー カスタムデータトランスフォーメーションでは、行データをリレーショナルデータベース などのターゲットに渡すことができます。 出力ポートは[構造]ビューで設定します。出 力ポートのグループを定義し、グループのリレーショナル構造を定義します。 出力グループは、出力データを渡すリレーショナルテーブルまたはターゲットを表しま す。 カスタムデータトランスフォーメーションは、OutputBufferポートにXMLファイルを 書き込むのではなく、グループポートに行を返します。 トランスフォーメーションは、出 力タイプに基づいて行を書き込みます。 [構造]ビューの左ペインでグループの階層を作成します。すべてのグループが、 PC_XSD_ROOTというルートグループの下にあります。 ルートは削除できません。各グルー プには、ポートおよび他のグループを含めることができます。グループ構造は、ターゲッ トテーブル間のリレーションを表します。グループ内にグループを定義すると、そのグル ープ間に親子リレーションが定義されます。Developerツールは、生成キーでグループ間に プライマリキーと外部キーのリレーションを定義します。 グループを選択して、グループのポートを表示します。グループのポートを追加または削 除できます。ポートを追加すると、Developerツールがデフォルトポート設定を作成しま す。 ポート名、データ型、および精度を変更します。ポートにデータを含める必要がある 場合は、[非NULL]を選択します。それ以外の場合、出力データはオプションです。 別のトランスフォーメーションからDecimalポートをコピーすると、カスタムデータトラン スフォーメーションではそのポートのデータ型がDoubleに変更されます。 ポートからデー タトランスフォーメーションエンジンにデータを渡す場合、ポートをDecimalデータ型とし て定義することはできません。Decimalデータ型のパススルーポートを作成できます。 カスタムデータトランスフォーメーションを[概要]ビューに表示すると、トランスフォ ーメーショングループの各ポートにはグループ名を含む接頭辞が付きます。 出力ポートの階層グループを設定すると、Data Integration ServiceはOutputBufferポー トではなくポートのグループに書き込みます。 これは、トランスフォーメーションに定義 している出力タイプに関係なく行われます。 注: グループを削除すると、グループ内のポートと子グループも削除されます。 階層スキーマのエクスポート カスタムデータトランスフォーメーションに階層出力グループを定義する場合、データを 変換するデータトランスフォーメーションサービスにも同じ構造を定義する必要がありま す。カスタムデータトランスフォーメーションから出力階層構造をXMLスキーマファイルと してエクスポートします。 そのスキーマをデータトランスフォーメーションプロジェクト にインポートします。データトランスフォーメーションプロジェクトではソースドキュメ ントの内容をXML要素および属性にマッピングできます。 [構造]ビューからグループ階層をエクスポートするには、[XMLスキーマへのエクスポー ト]をクリックします。XSDファイルの名前および場所を選択します。データトランスフォ 76 章 8: カスタムデータトランスフォーメーション ーメーションスタジオと共にスキーマをインポートするとアクセスできる場所を選択しま す。 Developerツールは、以下の名前空間を持つスキーマファイルを作成します。 "www.informatica.com/CDET/XSD/mappingName_Unstructured_Data" スキーマには以下のコメントが含まれています。 <!-- ===== AUTO-GENERATED FILE - DO NOT EDIT ===== --> <!-- ===== This file has been generated by Informatica Developer ===== --> スキーマを変更した場合、データトランスフォーメーションエンジンが出力ポートとは異 なる形式のデータをカスタムデータトランスフォーメーションに返す可能性があります。 スキーマのXML要素は、階層内の出力ポートを表しています。NULL値を含めることができる カラムには、minOccurs=0およびmaxOccurs=1となるXML属性があります。 [詳細]ビュー [詳細]ビューで、カスタムデータトランスフォーメーションの属性を設定します。 以下の表に、[詳細]ビューの属性を示します。 InputType カスタムデータトランスフォーメーションがデータトランスフォーメーションエンジ ンに渡す入力データのタイプ。以下の入力タイプのいずれかを選択します。 ¨ バッファ。カスタムデータトランスフォーメーションは、InputBufferポートでソ ースデータを受け取り、そのデータをポートからデータトランスフォーメーション エンジンに渡します。 ¨ ファイル。カスタムデータトランスフォーメーションは、InputBufferポートでソ ースファイルパスを受け取り、そのソースファイルパスをデータトランスフォーメ ーションエンジンに渡します。データトランスフォーメーションエンジンがソース ファイルを開きます。 OutputType カスタムデータトランスフォーメーションまたはデータトランスフォーメーションエ ンジンが返す出力データのタイプ。以下の出力タイプのいずれかを選択します。 ¨ バッファ。出力ポートのリレーショナル階層を設定していない限り、カスタムデー タトランスフォーメーションはOutputBufferポートを介してXMLデータを返しま す。 ポートのリレーショナル階層を設定している場合、カスタムデータトランス フォーメーションは、OutputBufferポートではなく、ポートのリレーショナル階層 に出力を返します。 ¨ ファイル。データトランスフォーメーションエンジンがファイルに出力を書き込み ます。カスタムデータトランスフォーメーションでポートのリレーショナル階層を 設定していない限り、データトランスフォーメーションエンジンはカスタムデータ トランスフォーメーションにデータを返しません。 データトランスフォーメーションサービスのタイプ 実行するデータトランスフォーメーションサービスの名前。サービスは、ローカルの データトランスフォーメーションリポジトリに存在している必要があります。 カスタムデータトランスフォーメーションのビュー 77 動的サービス名 入力行ごとに異なるデータトランスフォーメーションサービスを実行します。動的サ ービス名を有効にすると、カスタムデータトランスフォーメーションはサービス名入 力ポートでサービス名を受け取ります。 動的サービス名を無効にすると、カスタムデータトランスフォーメーションはどの入 力行でも同じサービスを実行します。 [サービス]ビューのサービス名属性には、サ ービス名が含まれている必要があります。デフォルトでは無効になっています。 ステータストレースレベル データトランスフォーメーションサービスからのステータスメッセージのレベルを設 定します。 ¨ 説明のみ。データトランスフォーメーションサービスが正常に実行されたかどうか を示すステータスコードと簡単な説明を返します。 ¨ フルステータス。データトランスフォーメーションサービスからステータスコード およびステータスメッセージをXMLで返します。 ¨ なし。データトランスフォーメーションサービスからステータスを返しません。デ フォルトは[なし]です。 ストリーマチャンクサイズ データトランスフォーメーションサービスがストリーマを実行するときに、カスタム データトランスフォーメーションがデータトランスフォーメーションエンジンに渡す データのバッファサイズ。有効な値は1~100万KBです。 デフォルトは、256KBです。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 78 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 章 8: カスタムデータトランスフォーメーション トレースレベル 説明 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 ステータストレースメッセージ データトランスフォーメーションサービスからのステータスメッセージを返すようにカス タムデータトランスフォーメーションを設定することができます。 ステータストレースレベルを[説明のみ]または[フルステータス]に設定します。 Developerツールは、カスタムデータトランスフォーメーションにStatus_Codeポートおよ びStatus_Message出力ポートを作成します。 [説明のみ]を選択した場合、データトランスフォーメーションサービスにより、ステー タスコードと次のいずれかのステータスメッセージが返されます。 Status Code ステータスメッセージ 1 成功 2 Warning 3 失敗 4 Error 5 致命的なエラー [フルステータス]を選択した場合、データトランスフォーメーションサービスにより、 ステータスコードとエラーメッセージが返されます。メッセージはXMLフォーマットです。 ポート設定 カスタムデータトランスフォーメーションを作成すると、Developerツールにより、入力お よび出力の設定に基づいてポートが作成されます。 データトランスフォーメーションサー ビスの要件に応じて、カスタムデータトランスフォーメーションの追加ポートを作成する ことができます。 入力タイプおよび出力タイプ別のポート 入力タイプによって、Data Integration Serviceがデータトランスフォーメーションエン ジンに渡すデータのタイプが決まります。入力タイプによって、入力がデータであるかソ ースファイルパスであるかが決まります。 ポート設定 79 以下の入力タイプのいずれかを設定します。 ¨ バッファ。カスタムデータトランスフォーメーションは、InputBufferポートでソース データを受け取ります。Data Integration Serviceは、InputBufferポートからデータ トランスフォーメーションエンジンにソース行を渡します。 ¨ ファイル。カスタムデータトランスフォーメーションは、InputBufferポートでソース ファイルパスを受け取ります。Data Integration Serviceは、ソースファイルパスをデ ータトランスフォーメーションエンジンに渡します。データトランスフォーメーション エンジンがソースファイルを開きます。ファイル入力タイプは、Microsoft Excelファ イルまたはMicrosoft Wordファイルなどのバイナリファイルを解析するのに使用しま す。 出力グループおよび出力ポートを定義しないと、カスタムデータトランスフォーメーショ ンは出力タイプに基づいてデータを返します。 以下の出力タイプのいずれかを設定します。 ¨ バッファ。カスタムデータトランスフォーメーションは、Outputbufferポートを介して XMLを返します。XMLパーサートランスフォーメーションをOutputbufferポートに接続す る必要があります。 ¨ ファイル。データトランスフォーメーションエンジンは、Data Integration Serviceに データを渡すのではなく、出力ファイルにデータを書き込みます。データトランスフォ ーメーションエンジンは、OutputFilenameポートのファイル名を基に、出力ファイルに 名前を付けます。ファイル出力タイプは、XMLをバイナリデータに変換する場合に選択 します。 例えば、PDFファイルやMicrosoft Excelファイルを作成できます。 Data Integration Serviceは、ソース行ごとにOutputBufferポートに出力ファイル名 を返します。 出力ファイル名が空白の場合、Data Integration Serviceは行エラーを 返します。 エラーが発生すると、Data Integration ServiceはOutputBufferにNULL値 を書き込み、行エラーを返します。 カスタムデータトランスフォーメーションの出力タイプがファイルで、まだグループ出 力ポートが定義されていない場合は、OutputBufferポートをダウンストリームトランス フォーメーションにリンクする必要があります。 そうしないと、マッピングは無効に なります。 追加のポート データトランスフォーメーションでは、複数の入力ファイル、ファイル名、およびパラメ ータが必要になることがあります。データトランスフォーメーションサービスでは、複数 の出力ファイルを返すことができます。 カスタムデータトランスフォーメーションを作成すると、DesignerによってInputBufferポ ートが1つと、OutputBufferポートが1つ作成されます。 カスタムデータトランスフォーメ ーションとデータトランスフォーメーションエンジンの間で追加のファイルまたはファイ ル名を渡す必要がある場合は、入力ポートまたは出力ポートを追加します。ポートは手動 で追加することも、データトランスフォーメーションサービスから追加することもできま す。 80 章 8: カスタムデータトランスフォーメーション 以下の表に、[概要]ビューで作成できるポートを示します。 ポートタイプ 入力/ 説明 アウトプッ ト 追加の入力 (バッファ) 入力 データトランスフォーメーションエンジンに渡 す入力データを受け取ります。 追加の入力 (ファイル) 入力 開くデータトランスフォーメーションエンジン のファイル名とパスを受け取ります。 追加の出力 (ファイル) 入力 出力ファイル名を受け取ります。 データトラ ンスフォーメーションサービスが、その名前の 出力ファイルを追加で作成します。 サービスパラ メータ 入力 データトランスフォーメーションサービスの入 力パラメータを受け取ります。 追加の出力 (バッファ) Output データトランスフォーメーションエンジンから XMLデータを受け取ります。 パススルー 入力/ カスタムデータトランスフォーメーションを介 してデータをそのままの状態で渡します。 出力 データトランスフォーメーションサービスからのポー トの作成 パラメータ、追加の入力ファイル、および追加の出力ファイルを渡すポートをデータトラ ンスフォーメーションサービスに追加することができます。データトランスフォーメーシ ョンサービスのポートに対応するポートを作成できます。 データトランスフォーメーションサービスでは、入力パラメータ、追加の入力ファイル、 またはユーザー定義変数が必要になることがあります。その場合、カスタムデータトラン スフォーメーションに複数の出力ファイルを返すことができます。 1. データトランスフォーメーションサービスを選択した後に、[選択]をクリックしま す。 Developerツールに、データトランスフォーメーションサービスで必要なサービスパラ メータ、追加の入力ポート、および追加の出力ポートが表示されます。サービスパラ メータには、データトランスフォーメーションのシステム変数およびユーザー定義変 数が含まれます。 2. リストからポートを選択します。 表示されているポートをすべて選択できます。 3. [OK]をクリックして、カスタムデータトランスフォーメーションにポートを作成し ます。 ポート設定 81 カスタムデータトランスフォーメーションの 作成 カスタムデータトランスフォーメーションはDeveloperツールで作成します。 1. [ファイル] > [新規] > [トランスフォーメーション]をクリックします。 新しいオブジェクトウィザードが表示されます。 2. [カスタムデータ]を選択します。 3. [次へ]をクリックします。 [カスタムトランスフォーメーション]ダイアログボックスが表示されます。 4. 82 以下のプロパティを設定します。 プロパテ ィ 説明 名前 トランスフォーメーションの名前。 場所 カスタムデータトランスフォーメーションの場所。 Model Repository Service、プロジェクト、およびフォルダを指定で きます。 デフォルトは現在の場所です。 作成方法 カスタムデータトランスフォーメーションのポートと属性を作 成します。 以下のいずれかのオプションを選択します。 - 空として作成。 デフォルトのポートを作成しません。 トラ ンスフォーメーションの作成後にポートと属性を設定しま す。 - 動的トランスフォーメーションとして作成。 ServiceName入 力ポートの値に基づいて異なるデータトランスフォーメーシ ョンサービスを呼び出すようにトランスフォーメーションを 設定します。 - データトランスフォーメーションサービスから作成。データ トランスフォーメーションリポジトリからデータトランスフ ォーメーションサービスを選択します。[選択]をクリック して、サービスで必要な入力ポート、出力ポート、または変 数ポートを選択します。 サービス 名 使用するデータトランスフォーメーションサービスの名前。 Developerツールには、データトランスフォーメーションリポ ジトリフォルダにあるデータトランスフォーメーションサービ スが表示されます。動的サービス名を有効にする場合は、名前 を選択しないでください。トランスフォーメーションを作成し た後、[サービス]ビューでサービス名を追加できます。 ポート [選択]をクリックして、データトランスフォーメーションサ ービスで必要になる可能性がある追加の入力ポートまたは出力 ポートを選択します。 章 8: カスタムデータトランスフォーメーション プロパテ ィ 説明 入力タイ プ データトランスフォーメーションエンジンが受け取る入力デー タ。 - バッファ。カスタムデータトランスフォーメーションはデー タトランスフォーメーションサービスに行を渡します。 - ファイル。カスタムデータトランスフォーメーションはデー タトランスフォーメーションサービスにファイル名を渡しま す。 デフォルト値はBufferです。 Output Type データトランスフォーメーションエンジンが返す出力データ。 - バッファ。データトランスフォーメーションサービスはXML または行データを返します。 - ファイル。データトランスフォーメーションサービスはデー タを出力ファイルに書き込みます。 デフォルト値は[バッファ]です。 5. [OK]をクリックします。 6. [概要]ビューで、サービスの名前、説明、およびポートを変更できます。 データト ランスフォーメーションサービスに複数の入力ファイルまたは出力ファイルがある場 合、またはデータトランスフォーメーションで入力パラメータが必要になる場合は、 [概要]ビューでポートを追加できます。パススルーポートを追加することもできま す。 7. [詳細]ビューで、カスタムデータトランスフォーメーションの属性を設定します。 8. カスタムデータトランスフォーメーションから行データを返すようにする場合は、 [構造]ビューで出力ポートグループを作成します。 9. ポートグループを作成した場合は、[構造]ビューから各グループについて記述した スキーマをエクスポートします。 そのスキーマをデータトランスフォーメーションプロジェクトにインポートして、プ ロジェクト出力を定義できます。 10. 出力ポートのリレーショナル階層を持つカスタムデータトランスフォーメーションを 設定する場合は、Developerツールのデータビューアで出力データをプレビューできま す。 出力データをプレビューすると、データトランスフォーメーションエンジンが、ロー カルのデータトランスフォーメーションリポジトリからデータトランスフォーメーシ ョンサービスを実行します。 注: ポートの階層的なグループのデータを返すようにカスタムデータトランスフォー メーションを設定した場合、OutputBufferポートはXMLデータを返しません。 データ プレビューの際、OutputBufferポートはXMLヘッダだけを返します。 カスタムデータトランスフォーメーションの作成 83 第 9 章 データマスキングトランスフ ォーメーション この章では、以下の項目について説明します。 ¨ データマスキングトランスフォーメーションの概要, 84 ページ ¨ マスキング方法, 85 ページ ¨ マスキングルール, 88 ページ ¨ 特殊マスク形式, 94 ページ ¨ デフォルト値ファイル, 97 ページ ¨ データマスキングトランスフォーメーションの設定, 97 ページ ¨ データマスキングの例, 99 ページ データマスキングトランスフォーメーション の概要 データマスキングトランスフォーメーションは、機密性が高い実稼働データを、非プロダ クション環境向けの現実的なテストデータに変換します。データマスキングトランスフォ ーメーションは、カラムごとに設定されたマスキングルールに基づいてソースデータを変 更します。 ソフトウェア開発、テスト、トレーニング、およびデータマイニング用にマスクされたデ ータを作成します。 マスクされたデータ内のデータリレーションシップを保持し、データ ベーステーブル間の参照整合性を保持することができます。 データマスキングトランスフォーメーションでは、カラムに設定したソースのデータ型お よびマスキングの種類に基づいてマスキングルールが提供されます。文字列では、文字列 内の置換する文字を制限できます。マスクで適用する文字を制限できます。数と日付の場 合は、マスクされたデータの数の範囲を指定できます。 範囲は、元の数に対する固定偏差 またはパーセント偏差に基づいて設定できます。Data Integration Serviceでは、トラン スフォーメーションに設定したロケールに基づいて文字を置き換えます。 データマスキングトランスフォーメーションには、以下のタイプのマスキングを適用でき ます。 84 キーマスキング 同じソースデータ、マスキングルール、およびシード値に対して確定的な結果を生成 します。確定的な結果は、同じ入力値の再現可能な出力値です。 ランダムマスキング 同じソースデータとマスキングルールに対して再現可能でないランダムな結果を生成 します。 特殊マスク形式 SSN、クレジットカード番号、電話番号、URL、電子メールアドレス、またはIPアドレ スを変更するための特殊マスク形式を適用します。 マスキング方法 マスキング方法は、選択したカラムに適用するデータマスキングのタイプです。 入力カラムに、以下のいずれかのマスキング方法を選択できます。 ランダム 再現可能ではないランダムな値でソースデータをマスクします。ランダムマスキング ではseed値は不要です。ランダムマスキングの結果は、確定的ではありません。 キー ソースデータを再現可能な値でマスクします。データマスキングトランスフォーメー ションによって、同じソースデータ、マスキングルール、およびseed値に対して確定 的な結果が生成されます。データマスキングトランスフォーメーションで確定的な結 果を生成するには、シード値が必要です。 特殊マスク形式 クレジットカード番号、電子メールアドレス、IPアドレス、電話番号、SSN、SIN、ま たはURLに対応します。データマスキングトランスフォーメーションでは、これらの一 般的なセンシティブデータをインテリジェントにマスクするビルトインルールが適用 されます。 マスキングなし データマスキングトランスフォーメーションでは、ソースデータは変更されません。 デフォルトは、[マスキングなし]です。 キーマスキング キーマスキングに対して設定されたカラムは、ソース値とシード値が同じ場合に、マスク された確定的なデータを返します。 データマスキングトランスフォーメーションは、カラ ムに対して一意の値を返します。 キーマスキングに対してカラムを設定すると、データマスキングトランスフォーメーショ ンによって、そのカラムのシード値が生成されます。 異なるデータマスキングトランスフ マスキング方法 85 ォーメーションで再現可能なデータを生成するようにシード値を変更できます。 例えば、 キーマスキングを設定して、参照整合性を強制します。 あるテーブルのプライマリキーと 別のテーブルの外部キーをマスクするには、同じseed値を使用します。 データマスキングトランスフォーメーションによって返されるデータのフォーマットに影 響を与えるマスキングルールを定義できます。文字列値と数値のマスクには、キーマスキ ングを使用します。 文字列値のマスキング 文字列の再現可能な出力を生成するために、キーマスキングを設定できます。マスク形式 を設定して、出力文字列に含まれる各文字に対する制限を定義します。マスクするソース 文字を定義するソース文字列の文字を設定します。結果文字列の置換文字を設定して、マ スクされたデータを特定の文字に制限します。 キーマスキング文字列には、以下のマスキングルールを設定できます。 シード シード値を適用し、列に対して確定的なマスクされた値を生成します。1から1,000ま での数値を入力できます。 マスク形式 置き換える文字の種類を入力データの文字ごとに定義します。各文字の種類を英文 字、数字、または英数字に制限できます。 ソース文字列の文字 ソース文字列内のマスク対象文字を定義します。例えば、入力データに出現する各シ ャープ記号(#)をマスクできます。[ソース文字列の文字]が空白の場合は、すべて の入力文字がマスクされます。データマスキングトランスフォーメーションは、ソー ス文字列の文字数が結果文字列の文字数より少ない場合、一意のデータが返されない ことがあります。 結果文字列の文字 対象文字列内の文字を、[結果文字列の文字]で定義された文字に置き換えます。例 えば、各マスクに英文字の大文字をすべて含めるには、以下の文字を入力します。 ABCDEFGHIJKLMNOPQRSTUVWXYZ 数値のマスキング 決定性出力が生成されるようにするには、数値ソースデータにキーマスキングを設定しま す。カラムに対して数値キーマスキングを設定する場合、カラムにランダムなシード値を 割り当てます。データマスキングトランスフォーメーションによってソースデータがマス クされる場合、seedを必要とするマスキングアルゴリズムが適用されます。 同じソース値が別のカラムに出現した場合に再現可能な結果が生成されるようにするに は、カラムのseed値を変更します。たとえば、2つのテーブル間でプライマリキーと外部キ ーのリレーションが維持されるようにするとします。この場合、各データマスキングトラ ンスフォーメーションで、プライマリキーカラムのseed値と外部キーカラムのseed値とし て同じseed値を入力します。データマスキングトランスフォーメーションによって、同じ 数値に対して確定的な結果が生成されます。これにより、この2つのテーブル間で参照整合 性が維持されるようになります。 86 章 9: データマスキングトランスフォーメーション 日時の値のマスキング 日時の値に対してキーマスキングを設定できる場合、データマスキングトランスフォーメ ーションでシードとしてランダムな数値が必要になります。カラム間で再現可能な日時の 値を返すには、別のカラムのシード値に一致するようにシードを変更できます。 データマスキングトランスフォーメーションは、キーマスキングで1753?2400の日付をマス クできます。 ソース年がうるう年の場合、データマスキングトランスフォーメーションは 同じくうるう年の年を返します。 ソース月に31日が含まれる場合、データマスキングトラ ンスフォーメーションは31日を含む月を返します。 ソース月が2月の場合、データマスキ ングトランスフォーメーションは2月を返します。 データマスキングトランスフォーメーションは、常に有効な日付を生成します。 ランダムマスキング ランダムマスキングでは、非決定性のマスクされたデータがランダムに生成されます。 デ ータマスキングトランスフォーメーションでは、異なる行に同じソース値が出現する場合 に、異なる値が返されます。データマスキングトランスフォーメーションによって返され るデータのフォーマットに影響を与えるマスキングルールを定義できます。ランダムマス キングでは、数値、文字列値、および日付値がマスクされます。 文字列値のマスキング ランダムマスキングを設定すると、文字列カラムにランダムな出力が生成されます。出力 文字列に含まれる各文字の制限を設定するには、マスクフォーマットを定義します。ソー ス文字列の文字と結果文字列の置き換え文字を設定するには、マスクするソース文字とマ スクに使用する文字を定義します。 文字列ポートには、以下のマスキングルールを適用できます。 範囲 文字列長の上限と下限を設定します。データマスキングトランスフォーメーションで は、文字列長の上限と下限の範囲内でランダムに構成された文字列が返されます。 マスク形式 置き換える文字の種類を入力データの文字ごとに定義します。各文字の種類を英文 字、数字、または英数字に制限できます。 ソース文字列の文字 ソース文字列内のマスク対象文字を定義します。例えば、入力データに出現する各シ ャープ記号(#)をマスクできます。[ソース文字列の文字]が空白の場合は、すべて の入力文字がマスクされます。 結果文字列の置換文字 対象文字列内の文字を、[結果文字列の文字]で定義された文字に置き換えます。例 えば、各マスクに英文字の大文字A?Zを含めるには、以下の文字を入力します。 ABCDEFGHIJKLMNOPQRSTUVWXYZ マスキング方法 87 数値のマスキング 数値データをマスクする場合は、カラムの出力データ範囲を設定できます。データマスキ ングトランスフォーメーションでは、ポート精度に応じて、範囲の上限と下限の間の値が 返されます。範囲を定義するには、範囲の上限と下限を設定するか、元のソース値に対す る偏差に基づくブラー範囲を設定します。 数値データには、以下のマスキングパラメータを設定できます。 範囲 出力値の範囲を定義します。データマスキングトランスフォーメーションでは、値の 上限と下限の間にある数値データが返されます。 ブラー範囲 ソースデータに対する固定偏差またはパーセント偏差に基づく範囲として、出力値の 範囲を定義します。データマスキングトランスフォーメーションでは、ソースデータ の値に近い数値データが返されます。範囲とブラー範囲を両方設定することもできま す。 日付値のマスキング 日付値をランダムマスキングでマスクするには、出力日の範囲を設定するか、偏差を選択 します。 偏差を設定する場合は、ブラー対象となる日付部分を選択します。選択できるの は年、月、日、時、分、または秒です。データマスキングトランスフォーメーションは、 設定した範囲内の日付を返します。 日時の値をマスクする場合は、以下のマスキングルールを設定できます。 範囲 選択した日時の値に対して返す値の上限と下限を設定します。 ブラー 日付の単位に適用する偏差に基づいて日付をマスクします。データマスキングトラン スフォーメーションでは、偏差の範囲内の日付が返されます。年、月、日、または時 がブラーの対象になります。適用する低偏差と高偏差を選択します。 マスキングルール マスキングルールは、マスキング方法の選択後に設定するオプションです。 ランダムまたはキーマスキング方法を選択する場合、マスク形式、ソース文字列の文字、 および結果文字列の文字を設定できます。ランダムマスキングを持つ範囲またはブラーを 設定できます。 88 章 9: データマスキングトランスフォーメーション 以下の表で、各マスキング方法に設定できるマスキングルールについて説明します。 マスキングルー ル 説明 マスキング方法 ソースのデータ 型 マスク形式 出力文字列内の 各文字を英文 字、数字、また は英数字に制限 するマスクで す。 ランダムおよび キー String ソース文字列の 文字 マスクするソー ス文字セット、 またはマスク対 象から除外する ソース文字セッ トです。 ランダムおよび キー String 結果文字列の置 換文字 マスクに含める 文字セットまた はマスクから除 外する文字セッ トです。 ランダムおよび キー String 範囲 出力値の範囲で す。 - 数値。 ランダム Numeric String 日付/時刻 データマスキ ングトランス フォーメーシ ョンでは、値 の上限と下限 の間にある数 値データが返 されます。 - 文字列。上限 と下限の文字 列長の範囲内 で、ランダム な文字で構成 される文字列 を返します。 - 日付/時刻。 日時の最大値 と最小値の範 囲内で 日付と時間を 返します。 ブラー ソースデータに 対する固定偏差 またはパーセン ト偏差の範囲の 出力値です。デ ータマスキング ランダム Numeric 日付/時刻 マスキングルール 89 マスキングルー ル 説明 マスキング方法 ソースのデータ 型 トランスフォー メーションで は、ソースデー タの値に近いデ ータが返されま す。日時のカラ ムは固定偏差で ある必要があり ます。カラムは 固定偏差である 必要がありま す。 マスク形式 出力カラム内の各文字を英文字、数字、または英数字に制限するには、マスク形式を設定 します。以下の文字を使用して、マスク形式を定義します。 A, D, N, X, +, R 注: マスク形式には、大文字を使用します。マスク文字として小文字を入力すると、デー タマスキングトランスフォーメーションによって大文字に変換されます。 以下の表では、マスク形式文字について説明します。 文字 説明 A 英文字。例えば、ASCII文字a?z、A?Zです。 D 数字。0?9です。 N 英数字。例えば、ASCII文字a?z、A?Z、および0?9です。 X 任意の文字。たとえば、英文字や記号です。 + マスキングなし。 R 残りの文字。Rは、文字列内のその他の文字に、任意の種類の文字を 使用できることを示します。Rは、マスクの最後の文字にする必要が あります。 たとえば、部署名のフォーマットが以下のとおりであるとします。 nnn-<department_name> 最初の3文字を数値に限定し、部署名を英文字に限定し、ダッシュを出力に残すマスクを設 定できます。この場合、マスクフォーマットを以下のように設定します。 DDD+AAAAAAAAAAAAAAAA 90 章 9: データマスキングトランスフォーメーション データマスキングトランスフォーメーションによって、最初の3文字が数字に置き換えられ ます。4番目の文字は置き換えられません。残りの文字は、英文字に置き換えられます。 マスクフォーマットの定義がない場合、各ソース文字は任意の文字に置き換えられます。 マスクフォーマットが入力文字列より長い場合は、マスクフォーマットの余分な文字が無 視されます。マスクフォーマットがソース文字列より短い場合は、ソース文字列の最後の 部分の文字はマスクされません。 注: マスクフォーマットの設定に範囲オプションを使用することはできません。 ソース文字列の文字 ソース文字列の文字とは、マスクするように選択した文字列、またはマスクしないように 選択したソース文字のことです。ソース文字列内での文字の位置は、重要ではありませ ん。ソース文字では、大文字と小文字が区別されます。 設定できる文字数に制限はありません。[文字]が空白の場合は、カラム内のすべてのソ ース文字列が置き換えられます。 ソース文字列の文字について、以下のいずれかのオプションを選択します。 指定文字のみマスク データマスキングトランスフォーメーションでは、ソースに含まれる文字のうち、ソ ース文字列の文字として設定されている文字がマスクされます。たとえば、文字A、 B、およびcを入力すると、ソースデータに出現したA、B、またはcが別の文字に置き換 えられます。A、B、またはcではないソース文字は置き換えられません。マスクでは、 大文字と小文字が区別されます。 指定文字以外をすべてマスク ソース文字列に出現したソース文字列の文字を除いて、すべての文字をマスクしま す。たとえば、フィルタソース文字"-"を入力し、[指定文字以外をすべてマスク]を 選択した場合は、文字"-"がソースデータに出現しても置き換えられません。それ以外 のソース文字は変更されます。 ソース文字列の例 ソースファイルに[従属]という名前のカラムがあるとします。 [従属]カラムには、カ ンマで区切られた複数の名前が含まれています。[従属]カラムをマスクし、名前を区切 るカンマをテストデータで保持する必要があります。 [従属]カラムに対して、[ソース文字列の文字]を選択します。[マスクしない]を選 択し、対象外の文字として","を入力します。引用符は入力しないでください。 データマスキングトランスフォーメーションによって、ソース文字列内のカンマ以外の文 字がすべて置き換えられます。 結果文字列の置換文字 結果文字列の置換文字は、マスクされたデータに含める置き換え文字として選択した文字 です。結果文字列の置換文字を設定すると、データマスキングトランスフォーメーション によって、ソース文字列内の文字が結果文字列の置換文字に置き換えられます。異なる入 マスキングルール 91 力値に対して同じ出力が生成されないようにするには、設定する置換文字の範囲を広くす るか、マスクするソース文字の数を少なくします。文字列内での文字の位置は、重要では ありません。 結果文字列の置換文字について、以下のいずれかのオプションを選択します。 指定文字のみ使用 結果文字列の置換文字として定義した文字のみを使用してソースをマスクします。例 えば、文字A、B、およびcを入力すると、ソースカラムの各文字がA、B、またはcに置 き換えられます。"horse"という単語は、"BAcBA"などに置き換えられます。 指定文字以外をすべて使用 結果文字列の置換文字として定義した文字以外を使用してソースをマスクします。例 えば、結果文字列の置換文字としてA、B、およびcを入力すると、マスクされたデータ に文字A、B、またはcは出現しません。 結果文字列の置換文字の例 [従属]カラムに含まれるすべてのカンマをセミコロンに置き換えるには、以下のタスク を完了します。 1. ソース文字列の文字としてカンマを設定し、[指定文字のみマスク]を選択します。 データマスキングトランスフォーメーションでは、[従属]カラムにカンマが出現し た場合にのみ、カンマがマスクされます。 2. 結果文字列の置換文字としてセミコロンを設定し、[指定文字のみ使用]を選択しま す。 データマスキングトランスフォーメーションでは、[従属]カラムにカンマが出現す るたびにカンマがセミコロンに置き換えられます。 範囲 数値、日付、または文字列データの範囲を定義します。 数値または日付値の範囲を定義す ると、データマスキングトランスフォーメーションによって、ソースデータが上限値と下 限値の範囲内の値でマスクされます。文字列の範囲を設定する場合は、文字列長の範囲を 設定します。 文字列の範囲 ランダム文字列マスキングを設定すると、データマスキングトランスフォーメーションに よって、ソース文字列の長さとは異なる長さの文字列が生成されます。オプションで、文 字列長の上限と下限を設定できます。文字列長の上限および下限として入力する値は、正 の整数である必要があります。長さは、ポート精度以下である必要があります。 数値の範囲 数値カラムの上限値と下限値を設定します。上限値は、ポート精度以下である必要があり ます。デフォルトの範囲は、1からポート精度長までです。 92 章 9: データマスキングトランスフォーメーション 日付範囲 日時の値の上限値と下限値を設定します。上限と下限の各フィールドには、デフォルトの 日付の上限と下限が表示されます。 デフォルトの日付形式は、MM/DD/YYYY HH24:MI:SSで す。上限の日付は、下限の日付より後である必要があります。 ブラー ブラーでは、ソースデータ値に対する固定偏差またはパーセント偏差の範囲の出力値が生 成されます。元の値に近いランダムな値が返されるようにする場合は、ブラーを設定しま す。ブラーの対象は、数値および日付値です。 数値のブラー ソース数値のブラー方法として、固定偏差またはパーセント偏差を選択します。低ブラー 値は、ソース値より小さい値に関する偏差です。高ブラー値は、ソース値より大きい値に 関する偏差です。どちらの値もゼロ以上である必要があります。データマスキングトラン スフォーメーションによって返されるマスクされたデータで、数値データは定義した値の 範囲内の値に置き換えられます。 以下の表に、入力ソース値が66の場合のブラーの範囲値に応じたマスキング結果を示しま す。 ブラーの種類 低 高 結果 固定長 0 10 66~76 固定長 10 0 56~66 固定長 10 10 56~76 Percent 0 50 66~99 Percent 50 0 33~66 Percent 50 50 33~99 日付値のブラー ブラーを設定すると、ソース日付に対する偏差で日付をマスクできます。偏差の適用対象 の日付単位を選択します。年、月、日、または時を選択できます。ソース日付単位の上下 の偏差を定義するには、上限と下限を入力します。データマスキングトランスフォーメー ションは、偏差を適用し、偏差の範囲内の日付を返します。 例えば、マスクされた日付をソース日付の2年以内に制限するには、単位として年を選択し ます。高低の境界として2を入力します。ソースデータが02/02/2006の場合、データマスキ ングトランスフォーメーションは02/02/2004から02/02/2008の日付を返します。 デフォルトのブラー単位は年です。 マスキングルール 93 特殊マスク形式 特殊マスク形式は、一般的なタイプのデータに適用できるマスクです。特殊マスク形式で は、データマスキングトランスフォーメーションで、現実的な形式を持つものの有効な値 ではない、マスクされた値が返されます。 例えば、SSNをマスクすると、データマスキングトランスフォーメーションにより形式は正 しいものの有効ではないSSNが返されます。社会保障番号には、再現可能なマスキングを設 定できます。 以下のタイプのデータの、特殊マスクを設定します。 ¨ 社会保障番号 ¨ クレジットカード番号 ¨ 電話番号 ¨ URLアドレス ¨ 電子メールアドレス ¨ IPアドレス ¨ 社会保険番号 ソースデータの形式またはデータ型がマスクとして無効の場合、Data Integration Serviceでは、デフォルトのマスクがデータに適用されます。Integration Serviceでは、 デフォルト値のファイルからマスクされた値が適用されます。デフォルト値のファイルを 編集してデフォルト値を変更できます。 社会保障番号 データマスキングトランスフォーメーションでは、米国社会保障庁による最新のハイグル ープ履歴リストに基づいて、無効なSSNが生成されます。High Group Listには、社会保障 局が発行した有効な番号が記載されています。データマスキングトランスフォーメーショ ンでは、以下の場所のHigh Group Listにアクセスします。 <Installation Directory>\infa_shared\SrcFiles\highgroup.txt データマスキングトランスフォーメーションでは、ハイグループ履歴リストにないSSN番号 が生成されます。社会保障庁では、ハイグループ履歴リストを毎月更新しています。 この リストの最新バージョンは、以下の場所からダウンロードします。 http://www.socialsecurity.gov/employer/ssns/highgroup.txt 社会保障番号(SSN)形式 データマスキングトランスフォーメーションは、9桁の数字を含むSSN形式を受け付けま す。 この数字は任意の文字で区切ることができます。 例えば、データマスキングトラン スフォーメーションは以下の形式を受け付けます。 +=54-*9944$#789-,*()”. 地域コードの要件 データマスキングトランスフォーメーションでは、ソースと同じ形式を持つ無効なSSNが返 されます。 SSNの最初の3桁では地域コードが定義されます。 地域コードはマスクされま 94 章 9: データマスキングトランスフォーメーション せん。 グループ番号とシリアル番号はマスクされます。 ソースSSNには有効な地域コード が含まれている必要があります。 データマスキングトランスフォーメーションは、ハイグ ループリストから地域コードを検索し、マスクされたデータとして適用できる未使用の番 号の範囲を判断します。 SSNが無効な場合、ソースデータはマスクされません。 再現可能な社会保障番号のマスキング 社会保障番号には、再現可能なマスキングを設定できます。社会保障番号に対して再現可 能なマスキングを設定するには、[再現可能な出力]をクリックして、[シード値]また は[マッピングパラメータ]を選択します。 [シード値]を選択すると、Designerでは乱数がシードとして割り当てられます。 異なる ソースデータで同じ社会保障番号を生成するには、各データマスキングトランスフォーメ ーションのシード値を変更して、他のトランスフォーメーションの社会保障番号のシード 値に一致させます。 マッピングでデータマスキングトランスフォーメーションを定義して いる場合は、シード値に対するマッピングパラメータを設定できます。 データマスキングトランスフォーメーションでは、再現可能なマスキングが設定された確 定的な社会保障番号が返されます。 データマスキングトランスフォーメーションでは、社 会保障庁が発行した有効な社会保障番号が返されないため、一意のすべての社会保障番号 を返すことはできません。 電子メールアドレス データマスキングトランスフォーメーションでは、電子メールアドレスをマスクする場 合、ランダムな文字で構成される電子メールアドレスが返されます。 たとえば、[email protected]が[email protected]などとしてマスクされます。 注: 電子メールアドレスの場合は、常にASCII文字が返されます。 クレジットカード番号 データマスキングトランスフォーメーションでは、有効なクレジットカード番号をマスク する場合、論理的に有効なクレジットカード番号が生成されます。ソースクレジットカー ド番号の長さは13?19桁です。入力クレジットカード番号に、クレジットカード業界のルー ルに基づく有効なチェックサム値がある必要があります。 ソースクレジットカード番号には、数字、スペース、およびハイフンを使用できます。ク レジットカード番号に無効な文字が含まれている場合、または長さが正しくない場合、 Integration Serviceによって、セッションログにエラーが書き込まれます。ソースデータ が無効の場合、Integration Serviceによって、デフォルトのクレジットカード番号マスク が適用されます。 6桁の銀行識別番号(BIN)はマスクされません。クレジットカード番号4539 1596 8210 2773は、4539 1516 0556 7067などとしてマスクされます。データマスキングトランスフ ォーメーションによって生成されるマスクされた番号は、有効なチェックサムを持ちま す。 電話番号 特殊マスク形式 95 データマスキングトランスフォーメーションでは、元の電話番号のフォーマットが変更さ れることなく、電話番号がマスクされます。電話番号(408)382 0658は、(408)256 3106な どとしてマスクされます。 ソースデータには、数字、スペース、ハイフン、およびかっこを使用できます。 Integration Serviceでは、英文字または特殊文字はマスクされません。 URL データマスキングトランスフォーメーションでは、'://'文字列を検索し、その右側の部分 文字列を解析することによってURLが解析されます。ソースURLには、'://'文字列が含まれ ている必要があります。ソースURLには、数字と英文字を使用できます。 URLのプロトコル部分はマスクされません。URLが http://www.yahoo.comの場合は、http:// MgL.aHjCa.VsD/が返されます。生成されるURLは、無効な場合があります。 注: URLの場合は、常にASCII文字が返されます。 IPアドレス データマスキングトランスフォーメーションでは、IPアドレスをマスクする場合、ピリオ ド(.)で区切られた4つの数による別のIPアドレスとしてマスクされます。最初の数はネ ットワークを表します。ネットワーク番号は、ネットワークの範囲内でマスクされます。 クラスAのIPアドレスはクラスAのIPアドレスにマスクされ、10.x.x.xアドレスは10.x.x.x アドレスにマスクされます。クラスとプライベートネットワークアドレスはマスクされま せん。 11.12.23.34はたとえば75.32.42.52に、10.23.24.32はたとえば10.61.74.84に、それぞれ マスクされます。 社会保険番号 このデータマスキングトランスフォーメーションでは、9桁の社会保険番号がマスクされま す。番号は任意の文字で区切ることができます。 番号に区切り文字が含まれない場合、マスクされた番号に区切り文字は含まれません。そ れ以外の場合、マスクされた番号は以下の形式になります。 xxx-xxx-xxx 再現可能なSIN番号 再現可能なSIN値を返すようにデータマスキングトランスフォーメーションを設定すること ができます。再現可能なSINマスキングに対応するようポートを設定すると、データマスキ ングトランスフォーメーションでは、ソースSIN値とシード値が同じ場合に、マスクされた 確定的なデータが返されます。 再現可能なSIN番号を返すには、[再現可能な値]を有効にしてシード番号を入力します。 データマスキングトランスフォーメーションは、各SINに対して一意の値を返します。 96 章 9: データマスキングトランスフォーメーション SINの開始桁 マスクされたSINの最初の桁を定義できます。 [開始桁]を有効にして、桁を数字で入力します。データマスキングトランスフォーメー ションを実行すると、ここで入力した桁より上をマスクしたSIN番号が作成されます。 デフォルト値ファイル ソースデータの形式またはデータ型がマスクとして無効の場合、Data Integration Serviceでは、デフォルトのマスクがデータに適用されます。Integration Serviceでは、 デフォルト値のファイルからマスクされた値が適用されます。デフォルト値のファイルを 編集してデフォルト値を変更できます。 デフォルト値ファイルは、以下の場所にあるXMLファイルです。 <インストールディレクトリ>\infa_shared\SrcFiles\defaultValue.xml defaultValue.xmlファイルには、以下の名前と値のペアが用意されています。 <?xml version="1.0" standalone="yes" ?> <defaultValue default_char = "X" default_digit = "9" default_date = "11/11/1111 00:00:00" default_email = "[email protected]" default_ip = "99.99.9.999" default_url = "http://www.xyz.com" default_phone = "999 999 999 9999" default_ssn = "999-99-9999" default_cc = "9999 9999 9999 9999" default_sin = "999-999-999" default_seed = "500"/> データマスキングトランスフォーメーション の設定 以下の手順を使用して、データマスキングトランスフォーメーションを設定します。 1. トランスフォーメーションを作成します。 2. 入力ポートを定義します。 3. 変更する各ポートのマスキングルールを設定します。 4. データをプレビューして結果を確認します。 データマスキングトランスフォーメーションの作成 データマスキングトランスフォーメーションはDeveloperツールで作成します。 デフォルト値ファイル 97 データマスキングトランスフォーメーションを作成する前に、ソースを作成します。フラ ットファイルまたはリレーショナルデータベーステーブルを物理データオブジェクトとし てインポートします。 1. 2. [Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。 [ファイル] > [新規] > [トランスフォーメーション]をクリックします。 [新規]ダイアログボックスが表示されます。 3. データマスキングトランスフォーメーションを選択します。 4. [次へ]をクリックします。 5. トランスフォーメーションの名前を入力します。 6. [完了]をクリックします。 トランスフォーメーションがエディタに表示されます。 ポートの定義 [概要]ビューで、データマスキング入力ポートを追加します。入力ポートの作成時に、 Developerツールにより対応する出力ポートがデフォルトで作成されます。出力ポートの名 前は入力ポートと同じです。 1. [概要]ビューで、[新規]をクリックしてポートを追加します。 2. カラムのデータ型、精度、スケールを設定します。 カラムのマスキングルールを定義する前に、カラムのデータ型を設定する必要があり ます。 3. ポートのデータマスキングを設定するには、[概要]ビューのマスキングタイプカラ ムの矢印をクリックします。 各ポートのデータマスキングの設定 [データマスク]ダイアログボックスで、ポートのマスキング方法と対応するマスキング ルールを選択します。[データマスク]ダイアログボックスは、[ポート]ビューの[デ ータマスキング]カラムをクリックすると表示されます。 1. 選択したポートにマスキングを設定するには、[マスキングの適用]を有効にしま す。 マスキングしているポートのデータ型に基づいて、使用できるマスキング方法のリス トがDeveloperツールによって表示されます。 2. リストからマスキング方法を選択します。 選択するマスキング方法に基づいて、各種マスキングルールがDeveloperツールによっ て表示されます。一部の特殊なマスク形式には、設定するマスキングルールがありま せん。 3. マスキングルールを設定します。 4. [OK]をクリックして、ポートのデータマスキング設定を適用します。 ポートのデータマスキングを定義すると、Developerツールによりout-<ポート名>と いう出力ポートが作成されます。<ポート名>は入力ポートと同じ名前です。データマ スキングトランスフォーメーションにより、out-<ポート名>ポートのマスクされたデ ータが返されます。 98 章 9: データマスキングトランスフォーメーション マスクされたデータのプレビュー [データビューア]でデータマスキングトランスフォーメーションの結果を表示する際、 マスクされたデータと元のデータを比較できます。 1. データマスキングトランスフォーメーションポートとマスキングルールの設定後、物 理データオブジェクトソースとデータマスキングトランスフォーメーションを含むマ ッピングを作成します。 2. ソースをデータマスキングトランスフォーメーションに接続します。 3. Data Integration Serviceがアクセス可能な共有場所に、ソースのデータがあること を確認します。 4. データマスキングトランスフォーメーションをクリックして、マッピングで選択しま す。 5. [データビューア]をクリックして、[実行]をクリックします。 Developerツールで、すべてのデータマスキングトランスフォーメーション出力ポート のデータが表示されます。[出力]プレフィックスを持つポートに、マスクされたデ ータが含まれます。[データ]ビューで、マスクされたデータと元のデータを比較で きます。 データマスキングの例 開発者は、カスタマアプリケーション用のテストデータを作成する必要があります。デー タには、他の開発者が会社の開発環境でアクセス可能な現実的なカスタマデータを含める 必要があります。 開発者は、カスタマID、クレジットカード番号、所得などのマスクされたカスタマデータ を返すデータサービスを作成します。マッピングには、カスタマデータを変換するデータ マスキングトランスフォーメーションが含まれます。 以下の図はマッピングを示しています。 マッピングには、以下のトランスフォーメーションが含まれています。 ¨ Read_Customer_Data。カスタマのクレジットカード情報および所得情報が含まれます。 ¨ Customer_Data_Maskingトランスフォーメーション。FirstNameとLastNameを除くすべ てのカラムをマスクします。データマスキングトランスフォーメーションによって、マ スクされたカラムがターゲットに渡されます。 ¨ Customer_TestData。マスクされたカスタマデータを受け取る出力トランスフォーメー ション。 データマスキングの例 99 Read_Customer Data カスタマデータには、以下のカラムが含まれます。 カラム データ型 CustomerID Integer LastName String FirstName String CreditCard String Income Integer Join_Date 日時(MM/DD/YYYY) 以下の表に、カスタマデータのサンプルを示します。 CustomerID 0095 0102 0105 0106 0107 LastName Bergeron Brosseau Anderson Boonstra Chan FirstName Barbara Derrick Lauren Pauline Brian CreditCard 4539-1686-3069-3957 5545-4091-5232-8948 1234-5678-9012-3456 4217-9981-5613-6588 4533-3156-8865-3156 Income 12000 4000 5000 2000 4500 JoinDate 12/31/1999 03/03/2011 04/03/2009 07/07/2007 06/18/1995 カスタマデータマスキングトランスフォーメーション データマスキングトランスフォーメーションでは、最初と最後の名前以外、カスタマ行の すべてのカラムをマスクします。 データマスキングトランスフォーメーションでは、次のタイプのマスキングを実行しま す。 ¨ キーマスキング ¨ ランダムマスキング ¨ クレジットカードマスキング 以下の表に、データマスキングトランスフォーメーションでの各ポートのマスキングルー ルを示します。 入力ポート マスキングの種 類 マスキングルー ル 説明 CustomerID キー シードは934で す。 カスタマIDマス クは確定的で す。 カスタマIDに、 マスク形式はあ りません。 100 章 9: データマスキングトランスフォーメーション マスクされたカ スタマIDには数 字が含まれま す。 入力ポート マスキングの種 類 マスキングルー ル 説明 結果文字列の置 換文字は 1234567890で す。 LastName マスキングなし FirstName マスキングなし CreditCard CreditCard なし データマスキン グトランスフォ ーメーションで は、クレジット カード番号を有 効なチェックサ ムを持つ他の番 号でマスクしま す。 Income ランダム ブラー マスクされた Incomeは、源泉 所得の10パーセ ントの範囲内に なります。 Percent 下限 = 1 上限 = 10 JoinDate ランダム ブラー 単位 = 年 下限 = 5 マスクされた Dateは元の日付 から5年以内にな ります。 上限 = 5 カスタマテストデータ結果 Customer_TestDataトランスフォーメーションは、データマスキングトランスフォーメーシ ョンから実際のカスタマデータを受け取ります。 Customer_TestDataターゲットは、以下のデータを受け取ります。 out-CustomerID 3954 3962 3964 3965 3966 out-LastName Bergeron Brosseau Anderson Boonstra Chan outFirstName Barbara Derrick Lauren Pauline Brian out-CreditCard 4539-1625-5074-4106 5545-4042-8767-5974 1234-5687-2487-9053 4217-9935-7437-4879 4533-3143-4061-8001 out-Income 11500 4300 5433 1820 4811 out-JoinDate 03/22/2001 04/17/2007 09/13/2006 02/03/2010 10/30/2000 Incomeは、元の所得の10パーセントの範囲内になります。JoinDateは元の日付から5年以内 になります。 データマスキングの例 101 第 10 章 ディシジョントランスフォー メーション この章では、以下の項目について説明します。 ¨ ディシジョントランスフォーメーションの概要, 102 ページ ¨ ディシジョントランスフォーメーションの関数, 103 ページ ¨ ディシジョントランスフォーメーションの条件文 , 105 ページ ¨ ディシジョントランスフォーメーションの演算子, 105 ページ ¨ ディシジョンストラテジの設定 , 106 ページ ディシジョントランスフォーメーションの概 要 ディシジョントランスフォーメーションは、入力データの条件を評価し、それらの条件の 結果に基づいて出力を作成するパッシブなトランスフォーメーションです。 ディシジョントランスフォーメーションは、入力フィールドで見つかった値に基づいて異 なる値を生成するように設定できます。 例えば、顧客の収益が特定の金額を超えたら顧客 名に文字列"Priority"を追加するように構成できます。 ディシジョントランスフォーメーションには、複数のディシジョンストラテジを追加する ことができます。 各ストラテジで IF-THEN-ELSE条件文を評価します。 この文の中で、 ELSEIF 条件を使用したり、別のIF-THEN-ELSE文をネストしたりできます。 ディシジョントランスフォーメーションは式トランスフォーメーションに似ており、条件 文と関数を使用してソースデータをテストすることができます。 ただし、ディシジョント ランスフォーメーションは、以下の点が式トランスフォーメーションと異なります。 ¨ ディシジョントランスフォーメーションでは、条件の評価に IF-THEN-ELSE文を使用しま す。 式トランスフォーメーションでは、 IIF文を使用します。 ¨ ディシジョントランスフォーメーションの関数の中には、式トランスフォーメーション では使用できないものもあります。 ¨ 各ディシジョンストラテジで複数の出力を生成できます。 102 ディシジョントランスフォーメーションの関 数 ディシジョントランスフォーメーションでは、ディシジョンストラテジを定義するために 使用できる定義済みの関数にアクセスできます。 ディシジョントランスフォーメーションの式エディタには[ディシジョン]というフォル ダがあります。 このフォルダに、ディシジョントランスフォーメーションに固有の関数が 格納されています。 エディタにはさらに、式トランスフォーメーションの関数にアクセス するためのその他のフォルダもあります。 式エディタで関数をクリックすると、その関数による処理の説明に加え、関数の使用法と データ型が表示されます。 注: 式トランスフォーメーションのすべての関数をディシジョントランスフォーメーショ ンで使用できるわけではありません。 ディシジョントランスフォーメーションでは、互換 性がある式トランスフォーメーションの式にのみアクセスできます。 ディシジョントランスフォーメーションの関数の一覧 ¨ ADD_TO_DATE ¨ ASCII ¨ CEIL ¨ CHOOSE ¨ CONCAT ¨ CONVERT_BASE ¨ COS ¨ COSH ¨ CRC32 ¨ CUME ¨ DATE_DIFF ¨ EXP ¨ FLOOR ¨ FV ¨ GET_DATE_PART ¨ GREATEST ¨ IN ¨ INDEXOF ¨ INITCAP ¨ ISNULL ¨ LAST_DAY ¨ LEAST ¨ LN ディシジョントランスフォーメーションの関数 103 ¨ LOG ¨ LOWER ¨ LPAD ¨ MAKE_DATE_TIME ¨ MD5 ¨ METAPHONE ¨ MOD[MOD] ¨ MOVINGAVG ¨ MOVINGSUM ¨ NPER ¨ PMT ¨ PV ¨ RAND ¨ RATE ¨ REG_EXTRACT ¨ REG_MATCH ¨ REG_REPLACE ¨ REPLACECHR ¨ REPLACESTR ¨ REVERSE ¨ ROUND ¨ RPAD ¨ SET_DATE_PART ¨ SIGN ¨ SIN ¨ SINH ¨ SOUNDEX ¨ SQRT ¨ TAN ¨ TANH ¨ TO_DATE ¨ TRUNC ¨ UPPER 104 章 10: ディシジョントランスフォーメーション ディシジョントランスフォーメーションの条 件文 ディシジョントランスフォーメーションでは、IF-THEN-ELSE条件文を使用して入力データ を評価します。 それらの条件文の中で、ELSEIF条件を使用したり、別のIF-THEN-ELSE文をネストしたりで きます。 ディシジョントランスフォーメーションの条件文の形式を次に示します。 // Primary condition IF <Boolean expression> THEN <Rule Block> // Optional – Multiple ELSEIF conditions ELSEIF <Boolean expression> THEN <Rule Block> // Optional ELSE condition ELSE <Rule Block> ENDIF 追加の条件文は、ルールブロック内にネストできます。 ディシジョントランスフォーメーションの演 算子 ディシジョントランスフォーメーションの演算子は、ディシジョンストラテジを定義する ために使用します。 以下の表に、ディシジョントランスフォーメーションの演算子を示します。 演算子のタイプ 演算子 説明 Assignment := ポートに値を割り当てます。 論理 AND 必須の論理条件を追加します。 親の論理式がtrue になるには、この演算子で連結されたすべての論理 条件がtrueになる必要があります。 論理 OR 論理条件を追加します。 親の論理式がtrueになる には、この演算子で連結された論理条件が少なくと も1つtrueになる必要があります。 論理 NOT 否定の論理条件を指定します。 親の論理式がtrue になるには、この演算子で指定された否定の条件が trueになる必要があります。 ディシジョン = 比較する項目が等しいかどうかを調べます。 文字 列データ型または数値データ型で使用します。 ディシジョン <> 比較する項目が等しくないかどうかを調べます。 文字列データ型または数値データ型で使用します。 ディシジョントランスフォーメーションの条件文 105 演算子のタイプ 演算子 説明 ディシジョン < 値が別の値よりも小さいかどうかを調べます。 数 値データ型で使用します。 ディシジョン <= 値が別の値以下であるかどうかを調べます。 数値 データ型で使用します。 ディシジョン > 値が別の値よりも大きいかどうかを調べます。 数 値データ型で使用します。 ディシジョン >= 値が別の値以上であるかどうかを調べます。 数値 データ型で使用します。 数値 - 減算 数値 NEG 否定 数値 + 加算 数値 * 乗算 数値 / 除算 数値 % モジュロ。 数値を別の数値で割った余りを返しま す。 文字列 || 文字列を連結します。 ディシジョンストラテジの設定 ディシジョンストラテジを設定するには、ソースデータをディシジョントランスフォーメ ーションに接続し、トランスフォーメーションのビューでプロパティを編集します。 1. ディシジョントランスフォーメーションを開きます。 2. トランスフォーメーションに入力ポートと出力ポートがあることを確認します。 3. [ディシジョン]ビューを選択します。 4. [追加]をクリックします。 5. ストラテジの名前を入力します。 6. [Expression]領域で、IF-THEN-ELSE条件文を入力します。 7. 式に関数を追加するには、[関数]タブで関数を参照し、関数名をダブルクリックし ます。 ヒント: 関数を簡単に入力するには、関数名の最初の数文字を入力し、Ctrl-Spaceキー を押します。 106 章 10: ディシジョントランスフォーメーション 8. 式にポートを追加するには、[ポート]タブでポートを参照します。 ポート名をダブ ルクリックして式に追加します。 必要に応じて、[出力ポートの編集]をクリックし て、出力ポートの設定の編集や出力ポートの追加を行います。 9. 必要に応じて、"//"の後にコメントを入力してコメント行を追加します。 10. [検証]をクリックして、ディシジョン式が有効であるかどうかを確認します。 11. [OK]をクリックしてストラテジを保存します。 12. 必要に応じて、その他のストラテジを追加します。 ストラテジごとに一意の出力ポー トを使用する必要があります。 ストラテジ間で出力ポートを共有することはできませ ん。 ディシジョンストラテジの設定 107 第 11 章 例外トランスフォーメーショ ン この章では、以下の項目について説明します。 ¨ 例外トランスフォーメーションの概要, 108 ページ ¨ 例外管理プロセスフロー, 109 ページ ¨ 不良レコードの例外, 110 ページ ¨ 重複している可能性のあるレコードの例外, 115 ページ ¨ 例外トランスフォーメーションの設定, 121 ページ 例外トランスフォーメーションの概要 例外トランスフォーメーションは、アナリストが確認および編集できるステージングテー ブルに例外をロードするアクティブなトランスフォーメーションです。 例外とは、現在の 形式ではデータセットに属さないレコードです。 不良データが含まれいる場合や、他のレ コードと重複している場合があります。 例外トランスフォーメーションが例外レコードをロードするステージングテーブルは、例 外テーブルと呼ばれます。 例外テーブルには、不良レコードの例外や重複レコードの例外 を含めることができます。 不良レコードの例外を生成する例外トランスフォーメーションでは、以下のアクションが 実行されます。 ¨ 例外テーブルへの不良レコードの書き込み ¨ データオブジェクトへの正常レコードの書き込み ¨ データフローからの却下されたレコードの削除 重複レコードの例外を生成する例外トランスフォーメーションでは、以下のアクションが 実行されます。 ¨ 例外テーブルへの重複レコードの例外の書き込み ¨ データオブジェクトへの自動統合レコードの書き込み ¨ データフローからの一意のレコードの削除 108 例外テーブルには、データ品質情報とソースデータが含まれています。 アナリストは、 Informatica Analystを使用して、例外テーブルをモデルリポジトリに追加したり、レコー ドデータを確認したり、レコードデータを編集したりすることができます。 Analystツー ルで例外テーブルを開くと、レコードに適用されるデータ品質の問題に従ってレコードを フィルタできます。 例えば、例外トランスフォーメーションを使用すると、重複している可能性のある顧客レ コードの例外テーブルを作成し、統合トランスフォーメーションに完全一致を書き込むこ とができます。 例外テーブルをAnalystツールにインポートすると、重複している可能性 のあるレコードを確認して手動で統合することができます。 統合トランスフォーメーショ ンを使用して、完全に一致するレコードを統合できます。 例外管理プロセスフロー 不良レコードまたは重複レコードの例外管理を実行するには、DeveloperツールとAnalyst ツールを使用します。 Developerツールを使用して、以下のタスクを実行します。 例外マッピングの定義 例外を特定するマッピングを作成します。 例外を分析するデータソースを追加し、例 外トランスフォーメーションを追加します。 重複レコードの例外を生成するマッピングでは、スコア入力が必要です。 クラスタモ ードで一致トランスフォーメーションを使用して、重複レコードの例外のスコアを作 成します。 不良レコードの例外を生成するマッピングでは、スコアは不要です。 不良レコードの マッピングにスコアが存在しない場合、例外トランスフォーメーションは品質の問題 のあるすべてのレコードを例外テーブルに書き込みます。 ディシジョントランスフォ ーメーションを使用すると、不良レコードのマッピングの数値スコアを作成できま す。 例外テーブルの定義 例外レコードを格納するデータベースに接続するように、例外トランスフォーメーシ ョンを設定します。 正常レコードまたは自動統合レコードのデータオブジェクトの追加 例外トランスフォーメーションの出力ポートをデータオブジェクトに接続するデータ フローに接続します。 不良レコードの例外を生成する例外トランスフォーメーション は、正常レコードをデータオブジェクトに書き込みます。 重複レコードの例外を生成 する例外トランスフォーメーションは、自動統合レコードをデータオブジェクトに書 き込みます。 例外マッピングの実行 例外を処理するマッピングを実行します。 Data Integration Serviceにより、例外 トランスフォーメーションで指定する名前を使用してステージングデータベースに例 外テーブルが作成されます。 例外トランスフォーメーションは、このテーブルに例外 レコードを書き込みます。 例外管理プロセスフロー 109 Analystツールを使用して、以下のタスクを実行します。 モデルリポジトリへの例外テーブルのインポート 例外テーブルをデータ品質テーブルとしてモデルリポジトリにインポートします。 テ ーブルをインポートするときは、テーブルを作成した例外トランスフォーメーション のタイプに基づいて、不良レコードテーブルまたは重複レコードテーブルの作成を選 択します。 例外の確認と編集 Analystツールで例外テーブルを確認します。 品質の問題と優先順位によって例外レ コードをフィルタします。 不良レコードの例外 例外トランスフォーメーションを使用して、不良レコードの例外を特定することができま す。 不良レコードの例外は、手動処理が必要な、品質に問題のあるレコードです。 不良レコードの例外を特定する例外トランスフォーメーションを設定するときは、データ 品質のスコアを使用して不良レコードを決定することができます。 スコア入力を例外トラ ンスフォーメーションに接続しなかった場合、トランスフォーメーションは品質の問題が 含まれるすべてのレコードを例外テーブルに書き込みます。 データ品質のスコアを使用して不良レコードを決定するときは、スコアの上限しきい値と 下限しきい値を設定します。 例外トランスフォーメーションは、しきい値を使用して以下 のタイプのレコードを特定します。 正常レコード スコアが上限しきい値を超えるレコード。 正常レコードは有効で、確認は不要です。 デフォルトでは、例外トランスフォーメーションは正常レコードをトランスフォーメ ーションの出力ポートに書き込みます。 不良レコード スコアが下限しきい値と上限しきい値の間のレコード。 不良レコードは、Analystツ ールで確認する必要のある例外です。 デフォルトでは、例外トランスフォーメーショ ンは不良レコードを定義された例外テーブルに書き込みます。 却下されたレコード スコアが下限しきい値を下回るレコード。 却下されたレコードは無効です。 デフォ ルトでは、例外トランスフォーメーションは却下されたレコードをデータフローから 削除します。 不良レコードの例外の品質に関する問題 不良レコードの例外の品質の問題は、問題のあるレコードに添付されている品質の説明で す。 ルールまたはディシジョントランスフォーメーションを使用して、データセットに対して 品質の問題カラムを1つ以上作成します。 品質の問題カラムが複数ある場合は、[問題の 110 章 11: 例外トランスフォーメーション 割り当て]ビューを使用して品質の問題の優先順位を設定する必要があります。 問題の割 り当ての設定により、品質の問題が複数存在するときに例外トランスフォーメーションが 例外レコードに書き込む品質の問題が決まります。 不良レコードを処理する例外トランスフォーメーションにスコア入力を接続しなかった場 合、トランスフォーメーションは品質の問題フィールドが入力されたレコードを不良レコ ードとして特定します。 不良レコードの例外トランスフォーメーションの入力 不良レコードを特定する例外トランスフォーメーションには、データ、品質の問題、およ びコントロールの入力グループが含まれます。 以下の表に、入力グループを示します。 ポートグループ 説明 データ 例外を分析するソースデータのあるポ ートが含まれます。 品質の問題 レコードの品質を説明するポートが含 まれます。 例えば、品質の問題ポー トは「Too Many Characters」や 「Incorrect Data Format」などの文 字列を含むことができます。 コントロール 数値スコアを示すスコアポートが含ま れます。 スコアポートの接続は、不 良レコードを特定する例外トランスフ ォーメーションではオプションです。 例外トランスフォーメーションは、ス コアを使用して入力行が例外であるか どうかを判断できます。 スコアポー トが接続されていない例外トランスフ ォーメーションでは、品質の問題ポー トにデータが含まれているときに入力 行が例外としてラベル付けされます。 不良レコードの例外トランスフォーメーションの出力 不良レコードを特定する例外トランスフォーメーションを作成した場合、正常データの出 力グループが1つ含まれます。 却下されたレコードの出力グループを追加することができ ます。 トランスフォーメーションは正常レコードを出力ポートに書き込みます。 ただし、不良レ コードと却下されたレコードを出力ポートに書き込むようにトランスフォーメーションを 設定することもできます。 [設定]ビューの[標準出力]の設定により、トランスフォー メーションが出力ポートに書き込むレコードタイプが設定されます。 各出力グループには、データとレコードスコアのポートが含まれます。 不良レコードの例外 111 不良レコードの例外の[設定]ビュー [設定]ビューには、データベース接続、スコアのしきい値、およびデータルーティング のプロパティが表示されます。 以下のプロパティを設定することができます。 テーブル名 例外テーブルの名前。 接続 ステージングデータベースへの接続。 テーブルの上書き 例外テーブルを削除し、再作成するようにトランスフォーメーションを設定します。 出力を例外テーブルに追加するには、このオプションの選択を取り消します。 デフォ ルトでは有効になっています。 注: Webサービスで例外トランスフォーメーションを使用するときは、このオプション が無効になっていることを確認してください。 下限しきい値 不良レコードのスコア範囲の下限です。 トランスフォーメーションは、スコアがこの 値を下回るレコードを却下されたレコードとして処理します。 デフォルトは40です。 上限しきい値 不良レコードのスコア範囲の上限です。 トランスフォーメーションは、スコアがこの 値を超えるレコードを正常レコードとして処理します。 デフォルトは90です。 標準出力 レコードカテゴリが含まれます。 レコードカテゴリを選択すると、トランスフォーメ ーションはレコードを出力ポートに書き込みます。 用意されているレコードカテゴリ は、[正常レコード]、[不良レコード]、および[却下されたレコード]です。 デ フォルトは[正常レコード]です。 不良レコードテーブル レコードカテゴリが含まれます。 レコードカテゴリを選択すると、トランスフォーメ ーションはレコードをデータベース内の例外テーブルに書き込みます。 用意されてい るレコードカテゴリは、[正常レコード]、[不良レコード]、および[却下された レコード]です。 デフォルトは[不良レコード]です。 却下されたレコードのための独立した出力グループを作成 却下されたレコードを書き込む、独立した出力グループを作成します。 デフォルトで は無効になっています。 不良レコードの例外の[問題の割り当て]ビュー ポートと優先順位をデータ品質の問題に割り当てるには、[問題の割り当て]ビューを使 用します。 以下のプロパティを設定することができます。 112 章 11: 例外トランスフォーメーション 品質の問題 品質の問題ポートが含まれます。 入力 品質の問題ポートに割り当てる入力ポートが含まれます。 例えば、電話番号の品質に 関連する品質の問題の場合は、電話番号の入力ポートを選択します。 問題の優先順位 複数の品質の問題を同じ入力ポートに割り当てるときに、最も重要である品質の問題 を決定する問題の優先順位。 1つの入力ポートに対して複数の品質の問題が存在する 場合、Data Integration Serviceは優先順位が最も高い問題を適用します。 1つの入 力ポートに対して複数の品質の問題が存在し、問題の優先順位が同じ場合、Data Integration Serviceはリストの一番上にある品質の問題を適用します。 1~99の優 先度を入力します。1は最高の優先順位を表します。 Analystツールでは、問題の優先順位を使用して品質の問題をフィルタすることができ ます。 不良レコードの例外マッピング 不良レコードの例外を特定するマッピングを作成するときは、ステージングデータベース に例外テーブルを作成するマッピングを設定します。 マッピングの実行後、このテーブル をAnalystツールにインポートして確認します。 不良レコードの例外マッピングでは、以下のオブジェクトを使用できます。 データソース 分析するレコードが含まれるデータソースを追加します。 ルール レコードの品質の問題データを書き込むルールを追加します。 不良レコードのスコア のしきい値を指定しなかった場合、例外トランスフォーメーションは品質の問題デー タのあるレコードを不良レコードカテゴリに割り当てます。 ディシジョントランスフォーメーション(オプション) ディシジョントランスフォーメーションを追加する場合は、スコアフィールド、品質 の問題フィールド、および出力フィールドに対して出力ポートを生成するディシジョ ンストラテジを作成します。 例外トランスフォーメーション トランスフォーメーションがステージングテーブルとデータターゲットに書き込むレ コードを決定するには、例外トランスフォーメーションを設定します。 データターゲット デフォルトでは、例外トランスフォーメーションは品質が正常なレコードをすべてこ のターゲットに書き込みます。 注: 不良レコードの例外マッピングの実行後、アナリストはAnalystツールを開き、不良 レコードの例外テーブルをデータ品質テーブルとしてインポートする必要があります。 そ の後、アナリストは、Analystツールを使用してレコードを確認したり編集したりすること ができます。 例外テーブルのインポートと不良レコードの確認の詳細については、 『Informatica Data Quality Analystユーザーガイド』 を参照してください。 不良レコードの例外 113 不良レコードの例外マッピングの例 あなたの会社で、無効な電話番号が含まれる顧客レコードを見直して更新することになり ました。 不良な電話番号データがあるすべてのレコードを、データ品質アナリストが確認 する必要があります。 アナリストは、顧客に電子メールを送信し、例外テーブルのレコー ドを更新して、正しい電話番号を決定します。 不良な電話番号データを特定するマッピングを作成し、それらのレコードを不良レコード の例外テーブルに書き込みます。 マッピングを実行して不良レコードの例外テーブルを生 成した後、アナリストがそのテーブルをAnalystツールにインポートします。 その後、ア ナリストは、Analystツールを使用して不良レコードの例外テーブルを確認および編集しま す。 入力ファイル 入力ファイルは、顧客の電話番号や他の顧客データが含まれるフラットファイルです。 入力ファイルを定義し、データオブジェクトをマッピングに追加するには、物理データオ ブジェクトを作成します。 物理データオブジェクトの場所は、データオブジェクトの[ラ ンタイムプロパティ]ビューで定義します。 ディシジョントランスフォーメーション マッピングにディシジョントランスフォーメーションを追加します。 電話番号フィールド を調べ、スコア、品質の問題、レコードデータの出力ポートを生成するディシジョンスト ラテジを作成します。 以下のストラテジにより、不正な長さの電話番号が特定されます。 IF LENGTH(Phone_Number) > 9 THEN Score:=50 Phone_Quality_Issue:='Phone Number Too Long' ELSEIF LENGTH(Phone_Number) < 9 THEN Score:=50 Phone_Quality_Issue:=' Phone Number Too Short’ ELSE Score:=90 ENDIF 例外トランスフォーメーションレコードは、ディシジョントランスフォーメーションによ って生成されたスコアを読み取り、スコアが「50」のレコードを不良レコードカテゴリに 割り当てます。 不良レコードの例外のトランスフォーメーション マッピングに不良レコードの例外トランスフォーメーションを追加し、ポートを設定しま す。 例外トランスフォーメーションは、ディシジョントランスフォーメーションのスコア出力 ポートを使用して、レコードを分類するスコアを生成します。 例外トランスフォーメーシ ョンは、ディシジョントランスフォーメーションの品質の問題ポートを使用して、不良レ コードの例外テーブルに表示される品質の問題を入力します。 例外トランスフォーメーシ ョンは、不良レコードを指定された例外テーブルに書き込みます。 例外トランスフォーメーションは、正常レコードをマッピングで指定された書き込みデー タオブジェクトに書き込みます。 114 章 11: 例外トランスフォーメーション 不良レコードの例外トランスフォーメーションビュー 例外トランスフォーメーションのビューを設定して、例外テーブルに書き込まれるレコー ドを決定します。 [設定]ビューで、例外テーブルのテーブル名を入力し、テーブルを格納するデータベー スを選択します。 手動確認のスコアのしきい値およびデータルーティングのオプションの デフォルト値を使用します。 [問題の割り当て]ビューで、Phone_Quality_IssueをPhone_Number入力ポートに関連付 けます。 不良レコードの例外マッピングの出力 マッピングに書き込みデータオブジェクトを追加し、不良レコードの例外トランスフォー メーションの出力ポートを書き込みデータオブジェクトに接続します。 マッピングを実行すると、例外トランスフォーメーションはスコアが「50」の電話番号レ コードを選択されたデータベーステーブルに書き込みます。 トランスフォーメーションは また、正常レコードをマッピングで指定された書き込みデータオブジェクトに書き込みま す。 Analystツールでの不良レコードテーブルのインポートと確認 例外マッピングの実行後、アナリストはAnalystツールを開き、[DQAテーブルのインポー ト]を選択して、不良レコードテーブルをモデルリポジトリに追加します。 アナリストは、不良レコードテーブルをモデルリポジトリに追加し、確認のためにテーブ ルを開きます。 品質の問題や優先順位などのいくつかの値によってフィルタすることがで きます。 特定の品質の問題を選択し、[表示]をクリックしてそのラベルのレコードを表 示できます。 重複している可能性のあるレコードの例外 例外トランスフォーメーションを使用して、重複している可能性のあるレコードの例外の あるクラスタを特定することができます。 重複している可能性のあるレコードの例外に は、指定された手動確認のしきい値内の一致スコアがあります。 重複している可能性のあるレコードのあるクラスタを特定する例外トランスフォーメーシ ョンを設定するときは、データ品質のスコアを使用して重複候補を決定することができま す。 データ品質スコアの上限しきい値と下限しきい値を設定します。 トランスフォーメ ーションは、しきい値を使用して以下のクラスタのタイプを特定します。 自動統合 すべてのレコードスコアが上限しきい値を超えるクラスタ。 自動統合クラスタには確 認は不要で、統合トランスフォーメーションを使用してこれらのクラスタを統合する ことができます。 デフォルトでは、例外トランスフォーメーションは自動統合クラス タをトランスフォーメーションの出力ポートに書き込みます。 重複している可能性のあるレコードの例外 115 手動統合 すべてのレコードスコアが下限しきい値を超え、少なくとも1つのレコードスコアが上 限しきい値を下回るクラスタ。 手動統合クラスタは、Analystツールで確認する例外 です。 デフォルトでは、例外トランスフォーメーションは手動統合レコードを定義さ れた例外テーブルに書き込みます。 一意のレコード クラスタサイズが「1」であるクラスタ、または任意のレコードスコアが下限しきい値 を下回るクラスタ。 一意のレコードクラスタは重複していません。 デフォルトで は、例外トランスフォーメーションは一意のレコードをデータフローから削除しま す。 注: クラスタ内の最低レコードスコアにより、クラスタタイプが決まります。 例えば、11 個のレコードのスコアが0.95で、1つのレコードのスコアが0.79であるクラスタを考えてく ださい。上限しきい値が0.9で下限しきい値が0.8である場合、例外トランスフォーメーシ ョンはこのクラスタを一意のレコードクラスタとして特定します。 重複レコードの例外のクラスタ クラスタには、重複分析やID解決などの一致操作によってグループ化された関連するレコ ードが含まれています。 クラスタ内の最低レコード一致スコアが定義したスコアのしきい 値に収まっているとき、例外トランスフォーメーションはクラスタを重複レコードの例外 のクラスタとして特定します。 一致操作により、ClusterIdカラムがレコードに追加されます。 ClusterIDの値が同じレコ ードは同じクラスタにあります。 重複レコードの例外トランスフォーメーションの入力 重複レコードを特定する例外トランスフォーメーションには、データおよびコントロール の入力ポートが含まれます。 以下の表に、入力ポートを示します。 116 ポート 説明 データ 例外を分析するソースデータ。 スコア レコードをクラスタにリンクしたレコ ードとの類似度を特定します。 RowID レコードの一意なID。 ClusterID レコードが属している一致クラスタの ID。 章 11: 例外トランスフォーメーション 重複レコードの例外トランスフォーメーションの出力 重複レコードを特定する例外トランスフォーメーションを作成すると、自動的に統合可能 なレコードの出力グループが含まれます。 一意のレコードの出力グループを追加すること ができます。 トランスフォーメーションは完全な一致を出力ポートに書き込みます。 ただし、一致候補 と一意のレコードを出力ポートに書き込むようにトランスフォーメーションを設定するこ ともできます。 [設定]ビューの[標準出力]の設定により、トランスフォーメーション が出力ポートに書き込むレコードタイプが設定されます。 以下の表に、出力ポートを示します。 ポート 説明 ClusterID レコードが属している一致クラスタの ID。 データ レコードデータ。 RowID レコードの一否ID。 スコア レコードの一致スコア。 重複レコードの例外トランスフォーメーションの[設 定]ビュー [設定]ビューには、データベース接続、スコアのしきい値、およびデータルーティング のプロパティが表示されます。 以下のプロパティを設定することができます。 テーブル名 例外テーブルの名前。 接続 ステージングデータベースへの接続。 テーブルの上書き 例外テーブルを削除し、再作成するようにトランスフォーメーションを設定します。 出力を例外テーブルに追加するには、このオプションの選択を取り消します。 デフォ ルトでは有効になっています。 注: Webサービスで例外トランスフォーメーションを使用するときは、このオプション が無効になっていることを確認してください。 下限しきい値 重複している可能性のあるレコードのスコアの下限です。 クラスタスコア内の任意の レコードがこの値を下回る場合、トランスフォーメーションはクラスタを一意のレコ ードカテゴリに割り当てます。 デフォルトは0.8です。 重複している可能性のあるレコードの例外 117 この値を一致トランスフォーメーションのしきい値よりも高い値に設定すると、例外 トランスフォーメーションはこの値を下回る一致スコアが含まれるクラスタを一意の レコード出力に送信します。 上限しきい値 重複している可能性のあるレコードのスコアの上限です。 クラスタスコア内のすべて のレコードが上限しきい値を超える場合、トランスフォーメーションはクラスタを自 動統合カテゴリに割り当てます。 デフォルトは0.9です。 標準出力 レコードカテゴリが含まれます。 レコードカテゴリを選択すると、トランスフォーメ ーションはレコードを出力ポートに書き込みます。 用意されているレコードカテゴリ は、「自動統合」、「手動統合」、および「一意のレコード」です。 デフォルトは 「自動統合」です。 重複レコードテーブル レコードカテゴリが含まれます。 レコードカテゴリを選択すると、トランスフォーメ ーションはレコードをデータベース内の例外テーブルに書き込みます。 用意されてい るレコードカテゴリは、「自動統合」、「手動統合」、および「一意のレコード」で す。 デフォルトは「手動統合」です。 一意のレコードを重複レコードテーブルに書き込むと、Analystツールには複数のレコ ードが含まれるクラスタのみが表示されます。 レコードが1つだけのクラスタは統合 は不要なため、Analystツールには表示されません。 一意のレコードのための独立した出力グループを作成 一意のレコードを書き込む、独立した出力ポートグループを作成します。 デフォルト では無効になっています。 重複レコードの例外マッピング 重複レコードの例外を特定するマッピングを作成するときは、ステージングデータベース に例外テーブルを作成するマッピングを設定します。 マッピングの実行後、このテーブル をAnalystツールにインポートして確認します。 重複レコードの例外マッピングでは、以下のオブジェクトが必要です。 データソース 分析するレコードが含まれるデータソースを追加します。 キージェネレータトランスフォーメーション クラスタのキーを生成するには、キージェネレータトランスフォーメーションを追加 します。 一致トランスフォーメーション クラスタを生成するには、一致トランスフォーメーションを追加します。 ソータートランスフォーメーション 一致トランスフォーメーションの出力をClusterIDでソートするには、ソータートラン スフォーメーションを追加します。 118 章 11: 例外トランスフォーメーション 統合例外トランスフォーメーション 例外トランスフォーメーションの入力ポートを、一致トランスフォーメーションの対 応する出力ポートに接続します。 トランスフォーメーションがデータベーステーブル と出力ポートに書き込むレコードを決定するには、例外トランスフォーメーションの プロパティを設定します。 統合トランスフォーメーション 完全に一致するクラスタのマスタレコードを生成するには、統合トランスフォーメー ションを追加します。 データターゲット データターゲットを追加し、例外トランスフォーメーションの出力ポートに入力ポー トを追加します。 デフォルトでは、例外トランスフォーメーションは完全な一致をす べてこのターゲットに書き込みます。 注: 重複レコードの例外マッピングの実行後、アナリストはAnalystツールを開き、重複 レコードの例外テーブルをデータ品質テーブルとしてインポートする必要があります。 そ の後、アナリストは、Analystツールを使用してレコードを確認したり編集したりすること ができます。 例外テーブルのインポートと重複レコードの確認の詳細については、 『Informatica Data Quality Analystユーザーガイド』 を参照してください。 重複レコードの例外マッピングの例 あなたの会社では、重複する顧客レコードを統合することになりました。 重複している可 能性のあるすべてのレコードを、データ品質アナリストが確認する必要があります。 アナ リストは、顧客に電子メールを送信して例外テーブルのマスタレコードを更新することに よって、正しいレコードの詳細を決定します。 重複レコードを特定するマッピングを作成し、それらのレコードを重複レコードの例外テ ーブルに書き込みます。 マッピングを実行して重複レコードの例外テーブルを生成した 後、アナリストがそのテーブルをAnalystツールにインポートします。 その後、アナリス トは、Analystツールを使用して重複レコードの例外テーブルを確認および編集します。 入力ファイル 入力ファイルは、顧客レコードが含まれるフラットファイルです。 入力ファイルを定義し、データオブジェクトをマッピングに追加するには、物理データオ ブジェクトを作成します。 物理データオブジェクトの場所は、[ランタイムプロパティ] ビューで定義します。 キージェネレータトランスフォーメーション マッピングにキージェネレータトランスフォーメーションを追加します。 入力ファイルの出力ポートをキージェネレータの入力グループに接続します。 [ストラテ ジ]ビューで、NYSISSストラテジを追加します。 ストラテジ入力フィールドで、顧客の姓 データが含まれるポートを選択します。 重複している可能性のあるレコードの例外 119 一致トランスフォーメーション マッピングに一致トランスフォーメーションを追加します。 キージェネレータトランスフォーメーションの出力ポートを一致トランスフォーメーショ ンの入力グループに接続します。 [ストラテジ]ビューで、エディット距離ストラテジを 追加します。 [照合フィールド]カラムで選択行をクリックし、フルネームの入力に対応 するポートペアを選択します。 例えば、FullNameというカラム内の値に一致させるには、 FullName_1とFullName_2を選択します。 一致トランスフォーメーションでクラスタ一致出力タイプが使用されていることを確認し ます。 出力タイプの一致ペアと最良の一致は、例外ワークフローではサポートされていま せん。 ソータートランスフォーメーション マッピングにソータートランスフォーメーションを追加します。 一致トランスフォーメー ションのClusterIDポートを、ソータートランスフォーメーションのキー入力ポートに接続 します。 ソータートランスフォーメーションの出力ポートを例外トランスフォーメーショ ンに接続します。 マッピングを実行すると、ソータートランスフォーメーションは、同じクラスタ内のすべ てのレコードが連続して示されるように、レコードを並べ変えます。 例外トランスフォー メーションでは、一意のレコードを決定するために連続するレコードが必要です。 例外ト ランスフォーメーションは、各レコードのClusterIDを次のレコードのClusterIDと比較し ます。 その後、例外トランスフォーメーションは、ClusterIDが一意なレコードを一致の レコードカテゴリに割り当てます。 重複レコードの例外トランスフォーメーション マッピングに重複レコードの例外トランスフォーメーションを追加し、ポートを設定しま す。 例外トランスフォーメーションは、ソータートランスフォーメーションのMatch_Score出力 ポートを使用して、レコードをカテゴリに割り当てます。 例外トランスフォーメーション は、手動確認が必要なレコードを指定された例外テーブルに書き込みます。 例外トランスフォーメーションは、自動統合が可能なレコードをマッピングで指定された 書き込みデータオブジェクトに書き込みます。 重複レコードの例外トランスフォーメーションビュー 例外トランスフォーメーションのビューを設定して、例外テーブルに書き込まれるレコー ドを決定します。 [設定]ビューで、例外テーブルのテーブル名を入力し、テーブルを格納するデータベー スを選択します。 手動確認のスコアのしきい値およびデータルーティングのオプションの デフォルト値を使用します。 120 章 11: 例外トランスフォーメーション 重複レコードの例外マッピングの出力 マッピングに書き込みデータオブジェクトを追加し、統合例外トランスフォーメーション の出力ポートを書き込みデータオブジェクトに接続します。 デフォルト設定が使用される例外トランスフォーメーションでマッピングを実行すると、 トランスフォーメーションは例外レコードを選択されたデータベーステーブルに書き込み ます。 トランスフォーメーションはまた、完全な一致をマッピングで指定された書き込み データオブジェクトに書き込みます。 統合トランスフォーメーション マッピングに統合トランスフォーメーションを追加し、例外トランスフォーメーションの 出力ポートを統合トランスフォーメーションの入力グループに接続します。 [統合]ビューで、[単純]オプションが選択されていることを確認します。 [グループ 別]カラムで、グループキーポートが含まれている行を選択します。 統合トランスフォーメーションは、例外トランスフォーメーションのクラスタを処理し、 マスタレコードを生成します。 Analystツールでの重複レコードテーブルのインポートと確認 例外マッピングの実行後、アナリストはAnalystツールを開き、[DQAテーブルのインポー ト]を選択して、重複レコードテーブルをモデルリポジトリに追加します。 アナリストは、重複レコードテーブルをモデルリポジトリに追加し、確認のためにテーブ ルを開きます。 ラベルや優先順位などのいくつかの値によってフィルタすることができま す。 例えば、特定のラベルを選択し、[表示]をクリックして、そのラベルのレコードを 表示できます。 例外テーブルのインポートと重複レコードの確認の詳細については、 『Informatica Data Quality Analystユーザーガイド』 を参照してください。 例外トランスフォーメーションの設定 例外レコードのデータベースの場所を選択したり、例外確認のしきい値を選択するには、 例外トランスフォーメーションを設定します。 このほか、トランスフォーメーションが各 出力に書き込むレコードタイプも設定できます。 1. [設定]ビューを選択します。 2. テーブル名を入力します。トランスフォーメーションでは、選択されたデータベース にテーブルを追加するときに、この名前が使用されます。 3. [選択]をクリックし、利用可能な接続のリストからデータベースを選択します。 必 要なデータベースが表示されない場合は、[詳細]をクリックして接続を追加しま す。 4. [OK]をクリックします。 5. 手動確認のしきい値を設定して、例外レコードのスコア範囲の上限と下限を決定しま す。 例外トランスフォーメーションの設定 121 122 6. [データルーティング]セクションで、標準出力と例外テーブルのプロパティを設定 して、トランスフォーメーションが各レコードタイプを書き込む場所を選択します。 7. 必要に応じて、非例外レコードの独立した出力ポートグループを作成するオプション を選択します。 章 11: 例外トランスフォーメーション 第 12 章 式トランスフォーメーション この章では、以下の項目について説明します。 ¨ 式トランスフォーメーションの概要, 123 ページ ¨ 式トランスフォーメーションの開発, 123 ページ ¨ 式トランスフォーメーションの詳細プロパティ, 124 ページ ¨ 式トランスフォーメーションのポート, 125 ページ 式トランスフォーメーションの概要 式トランスフォーメーションは、単一の行での非集計計算の実行に使用できる、パッシブ トランスフォーメーションです。 また、式トランスフォーメーションを用いて条件文をテ ストした後で、結果をターゲットやその他のトランスフォーメーションに渡すこともでき ます。 例えば、従業員の給与を調整したり、名前と姓を連結したり、文字列を数値に変換したり することが可能です。 出力ポートごとに式を作成しておくと、単一の式トランスフォーメーションで複数の式の 入力が可能になります。たとえば、国税や地方税、社会保障費や健康保険料といった、各 従業員からの数種の源泉税額を計算したい場合があります。これらの計算では従業員の給 与、源泉カテゴリ、場合によっては対応する税率が必要であるため、給与と源泉カテゴリ に対してパススルーポートを作成できます。 また、計算ごとに個別の出力ポートを作成す ることもできます。 式トランスフォーメーションの開発 式トランスフォーメーションを開発するときは、作成するポートタイプや式タイプなどの 項目について考慮する必要があります。 123 式トランスフォーメーションを開発するときは、以下の項目について考慮してください。 ¨ ポートタイプ(入力、出力、パススルー、変数など)。 式トランスフォーメーション で式を使用するには、入力ポートまたはパススルーポート、および出力ポートを含める 必要があります。 ¨ トランスフォーメーションで使用する式。 式トランスフォーメーションの詳細プロパテ ィ Data Integration Serviceが式トランスフォーメーションのデータを処理する方法を決定 するプロパティを設定します。 [詳細]タブでは、以下のプロパティを設定します。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 124 章 12: 式トランスフォーメーション 式トランスフォーメーションのポート 式トランスフォーメーションにはさまざまなポートタイプがあり、ダウンストリームトラ ンスフォーメーションにデータを渡したり、式を入力したりするなど、さまざまなトラン スフォーメーションタスクを実行できます。 式トランスフォーメーションは、以下のポートタイプを備えています。 入力 アップストリームトランスフォーメーションからデータを受信します。 入力ポート は、計算に使用される値を提供します。 出力 式の戻り値を格納します。 出力ポートの設定オプションとして式を入力します。 ま た、ポートごとにデフォルト値を設定することもできます。 パススルー 変更せずにそのままデータを渡します。 変数 ローカル変数に使用されます。 式トランスフォーメーションのポート 125 第 13 章 フィルタトランスフォーメー ション この章では、以下の項目について説明します。 ¨ フィルタトランスフォーメーションの概要, 126 ページ ¨ フィルタトランスフォーメーションの詳細プロパティ, 127 ページ ¨ フィルタ条件, 127 ページ ¨ フィルタトランスフォーメーションのパフォーマンスのヒント, 128 ページ フィルタトランスフォーメーションの概要 フィルタトランスフォーメーションは、マッピング内の行をフィルタで除外するために使 用します。フィルタトランスフォーメーションはアクティブトランスフォーメーション で、トランスフォーメーション通過する行の数を変更することができます。 フィルタトランスフォーメーションで行が通過を許可されるのは、指定されたフィルタ条 件を満たした場合であり、条件を満たさない行は削除されます。データは1つ以上の条件に 基づいてフィルタできます。 Data Integration Serviceで指定の条件を満たすかどうかを基準に評価された各行につい て、フィルタ条件によりTRUEまたはFALSEが返されます。 TRUEを返した各行はトランスフ ォーメーションを通過し、 FALSEを返した各行は除去されてメッセージがログに書き込ま れます。 複数のトランスフォーメーションからのポートをフィルタトランスフォーメーションに連 結することはできません。フィルタの入力ポートは、1つのトランスフォーメーションから のものでなければなりません。 126 フィルタトランスフォーメーションの詳細プ ロパティ Data Integration Serviceがフィルタトランスフォーメーションのデータを処理する方法 を決定するプロパティを設定します。 [詳細プロパティ]タブで、以下のプロパティを設定します。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 フィルタ条件 フィルタ条件は、TRUEまたはFALSEを返す式です。 式エディタで条件を入力します。 フィルタ条件では大文字と小文字が区別されます。 フィルタとして1つの値を返すすべての式を使用できます。 例えば給料が$30,000未満の従 業員の行を除外する場合は、以下のように条件を入力します。 SALARY > 30000 フィルタトランスフォーメーションの詳細プロパティ 127 ANDおよびOR論理演算子を使用すると、複数の条件を指定することができます。例えば給料 が$30,000未満であるか、または$100,000を超える従業員を除外する場合は、以下のように 条件を入力します。 SALARY > 30000 AND SALARY < 100000 フィルタ条件に定数を入力することもできます。FALSEに該当する値はゼロ(0)です。ゼ ロ以外の値はTRUEとみなされます。たとえば、数値データ型のNUMBER_OF_UNITSという名前 のポートが、トランスフォーメーションに含まれているとします。NUMBER_OF_UNITSの値が 0に等しければFALSEを返すようにフィルタ条件を設定します。値がゼロでなければ、TRUE が返されます。 TRUEまたはFALSEを式の値として指定する必要はありません。TRUEおよびFALSEは、設定し たすべての条件に対する暗黙の戻り値です。フィルタ条件がNULLとして評価されると、そ の行はFALSEとして扱われます。 NULL値を含む行のフィルタ NULL値または空白を含む行をフィルタするには、ISNULL関数とIS_SPACES関数を使用してポ ートの値をテストします。 たとえばFIRST_NAMEポートでNULL値を含む行をフィルタで除外したい場合は、次の条件を 使用します。 IIF(ISNULL(FIRST_NAME),FALSE,TRUE) この条件は、FIRST_NAMEポートがNULLであれば戻り値としてFALSEを返し、その行を無視す ることを指定しています。NULLが含まれていなければ、行は次のトランスフォーメーショ ンへ渡されます。 フィルタトランスフォーメーションのパフォ ーマンスのヒント フィルタトランスフォーメーションのパフォーマンスを向上させるためのヒントを紹介し ます。 マッピングの初期段階でフィルタトランスフォーメーションを使用します。 マッピング内のソースのできる限り近くにフィルタトランスフォーメーションを配置 します。 マッピングを介して削除する予定の行を通過させる代わりに、ソースからタ ーゲットへのデータフローの初期段階で不必要なデータを除外することができます。 128 章 13: フィルタトランスフォーメーション 第 14 章 Javaトランスフォーメーショ ン この章では、以下の項目について説明します。 ¨ Javaトランスフォーメーションの概要, 129 ページ ¨ Javaトランスフォーメーションの設計, 132 ページ ¨ Javaトランスフォーメーションのポート, 133 ページ ¨ Javaトランスフォーメーションの詳細プロパティ, 134 ページ ¨ Javaコードの開発, 137 ページ ¨ JavaトランスフォーメーションのJavaのプロパティ, 142 ページ ¨ Javaトランスフォーメーションの作成, 145 ページ ¨ Javaトランスフォーメーションのコンパイル, 146 ページ ¨ Javaトランスフォーメーションのトラブルシューティング, 147 ページ Javaトランスフォーメーションの概要 Javaトランスフォーメーションを使用すると、Developerツールの機能を拡張できます。 Javaトランスフォーメーションは、Javaプログラミング言語を使用してトランスフォーメ ーション機能を定義するための、単純なネイティブのプログラミングインタフェースを提 供します。Javaトランスフォーメーションを使用すると、Javaプログラミング言語または 外部Java開発環境に関する高度な知識がなくても、単純またはやや高度なトランスフォー メーション機能を定義することができます。 Javaトランスフォーメーションには、アクテ ィブとパッシブの両方があります。 Developerツールは、Java Development Kit(JDK)を使用してJavaコードをコンパイル し、トランスフォーメーションのバイトコードを生成します。 バイトコードはモデルリポ ジトリに格納されます。 Data Integration ServiceはJava Runtime Environment(JRE)を使用して、生成された バイトコードをランタイムで実行します。 Data Integration Serviceは、Javaトランス フォーメーションを使用してマッピングを実行するとき、JREを使用してバイトコードを実 行し、入力行を処理して出力行を生成します。 129 Javaトランスフォーメーションを作成するには、トランスフォーメーションロジックを定 義するJavaコードスニペットを記述します。 以下のイベントに基づいて、Javaトランスフ ォーメーションのトランスフォーメーション動作を定義します。 ¨ トランスフォーメーションが入力行を受け取ったとき。 ¨ トランスフォーメーションがすべての入力行を処理したとき。 再利用可能および再利用不可能なJavaトランスフォー メーション 再利用可能または再利用不可能なJavaトランスフォーメーションを作成できます。 再利用可能なトランスフォーメーションは、複数のマッピングで使用できます。 再利用不可能なトランスフォーメーションは、単一のマッピングで使用されます。 プロパティの定義やJavaコードの作成を行うエディタのビューは、再利用可能なJavaトラ ンスフォーメーションを作成しているか再利用不可能なJavaトランスフォーメーションを 作成しているかによって異なります。 再利用可能なJavaトランスフォーメーションのエディタビュー エディタ内のビューで、再利用可能なJavaトランスフォーメーションのプロパティを定義 したり、Javaコードを作成したりします。 再利用不可能なJavaトランスフォーメーションを作成するには、「「再利用可能なJavaト ランスフォーメーションの作成」 (145ページの)」を参照してください。 再利用可能なJavaトランスフォーメーションでは、以下のビューを利用できます。 概要 トランスフォーメーションの名前と説明を入力し、入出力ポートを作成および設定し ます。 Java Javaコードの定義、コンパイル、およびコンパイルエラーの修正を行います。 [Java]ビューには次のタブがあります。 ¨ コードエントリタブ。Javaコードスニペットを定義できます。 ¨ [コード全体]タブ。Javaトランスフォーメーションの完全なJavaクラスコードが 表示されます。 詳細 Javaトランスフォーメーションの詳細プロパティを設定します。 再利用不可能なJavaトランスフォーメーション用のエディタの ビュー 再利用不可能なJavaトランスフォーメーションのプロパティの定義やJavaコードの作成 は、エディタのビューで行います。 再利用不可能なJavaトランスフォーメーションを作成する方法については、「再利用不可 能なJavaトランスフォーメーションの作成」 (145ページの)を参照してください。 130 章 14: Javaトランスフォーメーション 再利用不可能なJavaトランスフォーメーション用のビューを次に示します。 全般 トランスフォーメーションの名前および説明を入力します。 ポート 入力ポートと出力ポートを作成および設定します。 Java Javaコードの定義、コンパイル、およびコンパイルエラーの修正を行います。 [Java]ビューには次のタブがあります。 ¨ コードエントリタブ。Javaコードスニペットを定義できます。 ¨ [コード全体]タブ。Javaトランスフォーメーションの完全なJavaクラスコードが 表示されます。 詳細 Javaトランスフォーメーションの詳細プロパティを設定します。 アクティブJavaトランスフォーメーションとパッシブ Javaトランスフォーメーション Javaトランスフォーメーションを作成するときは、そのタイプをアクティブまたはパッシ ブとして定義します。 トランスフォーメーションタイプは、設定した後で変更することはできません。 Javaトランスフォーメーションは、入力データのそれぞれの行に対して1回、[入力時]タ ブで定義されたJavaコードを実行します。 Javaトランスフォーメーションは、以下のように、トランスフォーメーションタイプに基 づいて出力行を処理します。 ¨ パッシブJavaトランスフォーメーションは、トランスフォーメーションのそれぞれの入 力行を処理した後、各入力行に対して1つの出力行を生成します。 ¨ アクティブJavaトランスフォーメーションは、トランスフォーメーションのそれぞれの 入力行に対して複数の出力行を生成します。 各出力行を生成するには、generateRowメソッドを使用します。 例えば、トランスフォ ーメーションに開始日と終了日を表す2つの入力ポートが含まれている場合は、 generateRowメソッドを使用して、開始日と終了日の間の各日付に対して出力行を生成 することができます。 データ型変換 Javaトランスフォーメーションは、Javaトランスフォーメーションのポートタイプに基づ いて、Developerツールのデータ型をJavaデータ型に変換します。 Javaトランスフォーメーションは、入力行を読み込むと、入力ポートデータ型をJavaデー タ型に変換します。 Javaトランスフォーメーションは、出力行を読み込むと、Javaデータ型を出力ポートデー タ型に変換します。 Javaトランスフォーメーションの概要 131 例えば、Javaトランスフォーメーションの整数データ型の入力ポートに対しては、以下の 処理が行われます。 1. Javaトランスフォーメーションは、入力ポートの整数データ型をJavaプリミティブデ ータ型intに変換します。 2. このトランスフォーメーションで、トランスフォーメーションは入力ポートの値を Javaプリミティブデータ型intとして扱います。 3. トランスフォーメーションは、出力行を生成すると、Javaプリミティブデータ型intを 整数データ型に変換します。 以下の表に、JavaトランスフォーメーションがDeveloperツールのデータ型をJavaプリミテ ィブデータ型および複合データ型にマッピングする方法を示します。 Developerツールの データ型 Javaデータ型 bigint long binary byte[] date/time ナノ秒の処理を有効にした場合は、ナノ秒の精度の BigDecimal ナノ秒の処理を無効にした場合は、ミリ秒の精度のlong (1970/01/01 00:00:00.000 GMT以降のミリ秒数) decimal 高精度の処理を無効にした場合は、精度が15のdouble 高精度の処理を有効にした場合は、BigDecimal double double integer int string String text String Java、String、byte[]、およびBigDecimalデータ型は複合データ型で、double、int、お よびlongデータ型はプリミティブデータ型です。 注: Javaトランスフォーメーションは、プリミティブデータ型のNULL値をゼロに設定しま す。[入力時]タブでは、isNull APIメソッドおよびsetNull APIメソッドを使用して、入 力ポートのNULL値を出力ポートのNULL値に設定できます。 例については、「setNull」 (158ページの)を参照してください。 Javaトランスフォーメーションの設計 Javaトランスフォーメーションを設計するときは、作成するトランスフォーメーションの タイプなどの要素について考慮する必要があります。 132 章 14: Javaトランスフォーメーション Javaトランスフォーメーションの設計時には、以下の点について検討します。 ¨ アクティブまたはパッシブ、どちらのJavaトランスフォーメーションを作成する必要が あるか。 パッシブJavaランスフォーメーションは、トランスフォーメーション内のそれぞれの入 力行に対して1つの出力行を生成します。 アクティブJavaトランスフォーメーションは、トランスフォーメーションのそれぞれの 入力行に対して複数の出力行を生成します。 ¨ Javaトランスフォーメーションに関数を定義する必要があるか。 定義する必要がある 場合、各関数にどの式を含めるか。 例えば、入力または出力ポートの値をルックアップする式、あるいはJavaトランスフォ ーメーション変数の値をルックアップする式を呼び出す関数を定義できます。 ¨ 再利用可能なJavaトランスフォーメーションと再利用不可能なJavaトランスフォーメー ションのどちらを作成するか。 再利用可能なトランスフォーメーションは、複数のマッピングで使用できます。 再利用不可能なトランスフォーメーションは、単一のマッピングで使用できます。 Javaトランスフォーメーションのポート Javaトランスフォーメーションは、入力ポートと出力ポートを持つことができます。 再利用不可能なJavaトランスフォーメーションのポートの作成や編集を行うには、エディ タの[ポート]ビューを使用します。 再利用可能なJavaトランスフォーメーションのポー トの作成や編集を行うには、エディタの[概要]ビューを使用します。 ポートのデフォルト値を指定できます。トランスフォーメーションにポートを追加した ら、ポート名をJavaコードスニペット内で変数として使用できます。 ポートの作成 作成したJavaトランスフォーメーションには、入力グループおよび出力グループが1つずつ 含まれています。 ポートを作成すると、Developerツールはそのポートを現在選択されている行またはグルー プの下に追加します。 デフォルトポート値の設定 Javaトランスフォーメーションでは、ポートのデフォルト値を定義できます。 Javaトランスフォーメーションは、ポートのデータ型に基づいて、ポートのデフォルト値 を適用してポート変数を初期化します。 Javaトランスフォーメーションのポート 133 入出力ポート Javaトランスフォーメーションは、Javaコードスニペットに値が割り当てられていない未 接続のn入力または出力ポートの値を初期化します。 以下の表に、Javaトランスフォーメーションがポートのデータ型に基づきポートをどのよ うに初期化するかを示します。 ポートのデ ータ型 ポートの初期化 単純 ポートのデフォルト値をNULL以外の値に定義した場合、トラン スフォーメーションはポート変数の値をそのデフォルト値に初 期化します。 それ以外の場合、ポート変数の値は0に初期化されます。 複合 ポートのデフォルト値を定義した場合、トランスフォーメーシ ョンは新規のStringオブジェクトまたはbyte[]オブジェクトを 作成し、そのオブジェクトをデフォルト値に初期化します。 そ れ以外の場合、トランスフォーメーションはポート変数をNULL に初期化します。 注: Javaコードで値がNULLの入力ポート変数にアクセスする と、NullPointerExceptionが発生します。 Javaトランスフォーメーションの詳細プロパ ティ Javaトランスフォーメーションには、トランスフォーメーションコードとトランスフォー メーション両方の詳細プロパティが含まれます。 マッピング内でトランスフォーメーションを使用する際には、トランスフォーメーション のプロパティをオーバーライドできます。 [詳細]ビューで、Javaトランスフォーメーションの以下の詳細プロパティを定義できま す。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 134 章 14: Javaトランスフォーメーション 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 高精度10進演算を有効にする 精度が15より大きく28未満のDecimalデータ型ポートをJava BigDecimalデータ型ポー トとして処理します。 精度が15より大きく28未満のDecimalデータ型ポートをJava Doubleデータ型ポートと して処理するには、高精度処理を無効にします。 以下の表に、高精度オプションを有効にしたか無効にしたかに基づいてJavaトランス フォーメーションがDecimalデータ型入力ポートの値を扱う方法を示します。 例 高精度処理有 効 高精度処理無効 Decimalタイプ入力ポートが 値40012030304957666903を受 け取ります。 Javaトランス フォーメーシ ョンは値をそ のままにしま す。 Javaトランスフォーメー ションは値を以下の値に 変換します。 4.00120303049577 x 10^19 日付/時刻にナノ秒を使用する date/timeデータ型ポートを精度がナノ秒のJava BigDecimalデータ型ポートに変換し ます。 ナノ秒処理を無効にすると、生成されるJavaコードはdate/timeデータ型ポートを精度 がミリ秒のJava Longデータ型ポートに変換します。 Javaトランスフォーメーションの詳細プロパティ 135 クラスパス [インポート]タブでインポートする非標準Javaパッケージに関連付けられたJARファ イルまたはクラスファイルのディレクトリのクラスパスを設定します。 Javaコードのコンパイルには、JARファイルまたはクラスファイルのディレクトリが Developerツールクライアントマシン上でアクセス可能でなければなりません。 オペレーティングシステムに応じてクラスパスの各項目を以下のように区切ります。 ¨ UNIXの場合、クラスパスの各項目を区切るにはコロンを使用します。 ¨ Windowsの場合、クラスパスの各項目を区切るにはセミコロンを使用します。 例えば、[インポート]タブでJavaコンバータパッケージをインポートし、そのパッ ケージをconverter.jarで定義する場合は、JavaトランスフォーメーションのJavaコ ードをコンパイルする前にconverter.jarファイルの場所をクラスパスに追加する必要 があります。 注: 組み込みのJavaパッケージの場合、クラスパスを設定する必要はありません。例 えば、java.ioは組み込みJavaパッケージであるため、java.ioに対してクラスパスを 設定する必要はありません。 アクティブ トランスフォーメーションは、それぞれの入力行に対して複数の出力行を生成できま す。 Javaトランスフォーメーションを作成した後は、このプロパティを変更できません。 このプロパティを変更する必要がある場合、新しいJavaトランスフォーメーションを 作成します。 Developerツールクライアントのクラスパスの設定 Developerツールクライアントのクラスパスにjarファイルまたはクラスファイルのディレ クトリを追加できます。 Developerツールクライアントが動作しているマシン用にクラスパスを設定するには、次の 作業のいずれかを実行します。 ¨ CLASSPATH環境変数を設定します。CLASSPATH環境変数はDeveloperツールクライアント マシン上で設定します。 これは、マシン上で実行されているjavaプロセスすべてに適 用されます。 ¨ 再利用不可能なJavaトランスフォーメーションの場合は、Javaトランスフォーメーショ ンの詳細プロパティでクラスパスを設定します。 これは、このJavaトランスフォーメ ーションを含むマッピングに適用されます。 Developerツールクライアントは、Javaコ ードをコンパイルするときにクラスパス内のファイルをインクルードします。 このプ ロパティは、再利用可能なJavaトランスフォーメーションに対しては設定できません。 jarファイルまたはクラスファイルのディレクトリをJavaトランスフォーメーションのクラ スパスに追加するには、以下の手順を実行します。 1. [詳細]タブで、[クラスパス]の横にある[値]カラムの下矢印アイコンをクリッ クします。 [クラスパスの編集]ダイアログボックスが表示されます。 136 章 14: Javaトランスフォーメーション 2. クラスパスを追加するには、以下の手順を実行します。 a. [追加]をクリックします。 [名前を付けて保存]ウィンドウが表示されます。 b. [名前を付けて保存]ウィンドウで、jarファイルの保存先のディレクトリに移動 します。 c. [OK]をクリックします。 [クラスパスの編集]ダイアログボックスにクラスパスが表示されます。 3. jarファイルまたはクラスファイルのディレクトリを削除するには、jarファイルまた はクラスファイルのディレクトリを選択して[削除]をクリックします。 ディレクトリの一覧からディレクトリが削除されます。 Data Integration Serviceのクラスパスの設定 実行時に必要なjarファイルまたはクラスファイルのディレクトリをData Integration Serviceノードのクラスパスに追加することができます。 実行時に必要なjarファイルは、Data Integration Serviceノードの次のディレクトリに 格納します。 $INFA_HOME/services/shared/jars この場所に格納されたjarファイルは動的にロードされます。 個々のマッピングの実行時 に必要なクラスファイルは、このディレクトリから検出されてロードされます。 注: Javaトランスフォーメーションでは、このディレクトリにあるjarファイルをマッピン グレベルのクラスパスに追加します。 Javaコードの開発 特定のトランスフォーメーションイベントに対するトランスフォーメーションの動作を定 義するJavaコードを記述してコンパイルするには、[Java]ビューのコードエントリタブ を使用します。 コードエントリタブでは、任意の順序でコードスニペットを開発できます。 [コード全 体]タブでは、Javaコード全体の表示は可能ですが、編集はできません。 コードスニペットの開発後は、コードスニペットまたはJavaコード全体をコンパイルし て、[Java]ビューの[結果]ウィンドウの[コンパイル]プロパティでコンパイルの結 果を表示することができます。 各コードエントリタブには、以下のコンポーネントの一部またはすべてが含まれ、これら のコンポーネントにより、Javaコードの書き込み、表示、コンパイルができます。 Javaコードの開発 137 コードプロパティ JavaトランスフォーメーションAPIメソッドなどのJavaコードの表示や入力ができるコ ントロールを提供します。 以下の表に、[コード]プロパティに用意されているコン トロールを示します。 コントロー ル 説明 ナビゲータ 入力ポート、出力ポート、および呼び出し可能なJavaトラン スフォーメーションAPIメソッドを表示します。 ナビゲータ内の項目の説明を表示するには、その項目をクリ ックします。 [Javaコード]ウィンドウに項目を追加するには、その項目 をダブルクリックします。 また、ナビゲータから[Javaコ ード]ウィンドウに項目をドラッグすることもできます。 ナビゲータは、以下のコードエントリタブに用意されていま す。 - ヘルパ - 入力時 - 最後 [Javaコー ド]ウィン ドウ トランスフォーメーションのJavaコードを表示または入力で きます。 [Javaコード]ウィンドウには、基本的なJava構 文ハイライトを使用してJavaコードが表示されます。 注: [コード全体]タブでは、Javaトランスフォーメーシ ョンのクラスコード全体の表示は可能ですが、編集はできま せん。 [Javaコード]ウィンドウは、以下のタブに用意されていま す。 - インポート - ヘルパ - 入力時 - 最後 - 関数 - コード全体 [新しい関 数]コマン ド [関数の定義]ダイアログボックスを開きます。このダイア ログボックスを使用して、Java式を呼び出す関数を定義しま す。 [関数]コマンドは、[関数]タブに用意されています。 編集ツール バー 切り取り、コピー、貼り付けなど、Javaコードを編集するた めのツールアイコンをクリックできます。 編集ツールバーは、以下のタブに用意されています。 - インポート - ヘルパ - 入力時 - 最後 - 関数 138 章 14: Javaトランスフォーメーション コンパイルプロパティCompilation properties Javaコードのコンパイルやデバッグができるコントロールを提供します。 以下の表 に、[コンパイル]プロパティに用意されているコントロールを示します。 コントロー ル 説明 [コンパイ ル]コマン ド トランスフォーメーション用のJavaコードをコンパイルし ます。 [結果]ウ ィンドウ Javaトランスフォーメーションクラスのコンパイル結果が 表示され、コード内のエラーの発生源を見つけることがで きます。 コード内のエラーを見つけるには、[結果]ウィンドウで エラーメッセージを右クリックし、スニペットコードとコ ード全体のどちらでエラーを表示するかを選択します。 [結果]ウィンドウでエラーメッセージをダブルクリック してエラーの発生源を見つけることもできます。 Javaコードスニペットの作成 Javaコードスニペットを作成してトランスフォーメーションの動作を定義するには、コー ドエントリタブの[Javaコード]ウィンドウを使用します。 1. 適切なコードエントリタブをクリックします。 以下の表に、[Java]ビューのコードエントリタブで完了できるタスクを示します。 タブ 説明 イン ポー ト アクティブまたはパッシブなJavaトランスフォーメーションに対し て、サードパーティ製、組み込み、またはカスタムのJavaパッケー ジをインポートします。 パッケージのインポート後、それらのパ ッケージを他のコードエントリタブで使用できます。 ヘル パ アクティブまたはパッシブなJavaトランスフォーメーション内の Javaトランスフォーメーションクラスのユーザー定義変数およびメ ソッドを宣言します。 変数およびメソッドを宣言すると、それらを [インポート]タブを除く他のすべてのコードエントリタブで使用 できます。 入力 時 入力行を受け取った際のアクティブまたはパッシブなJavaトランス フォーメーションの動作を定義します。 このタブで定義したJava コードは、入力行ごとに1回実行されます。 このタブでは、入出力ポートのデータ、変数、およびJavaトランス フォーメーションAPIメソッドにアクセスしして使用することもで きます。 最後 すべての入力データを処理した後のアクティブまたはパッシブな Javaトランスフォーメーションの動作を定義します。 Javaコードの開発 139 タブ 説明 このタブでは、アクティブなトランスフォーメーションの出力デー タの設定や、JavaトランスフォーメーションAPIメソッドの呼び出 しも行うことができます。 関数 Javaトランスフォーメーションの式を呼び出す関数を、Javaプログ ラミング言語を使用して定義します。 例えば、入出力ポートの値や Javaトランスフォーメーションの変数の値をルックアップする式を 呼び出す関数を定義できます。 [関数]タブで、手動で関数を定義するか、または[新しい関数] をクリックして関数を簡単に定義できる[関数の定義]ダイアログ ボックスを呼び出します。 コー ド全 体 読み取り専用。このタブでは、Javaトランスフォーメーションのク ラスコード全体を表示し、コンパイルすることができます。 2. スニペット内の入力または出力カラムの変数にアクセスするには、ナビゲータに表示 された[入力]または[出力]リストを展開し、ポートの名前をダブルクリックしま す。 3. スニペット内のJavaトランスフォーメーションAPIを呼び出すには、ナビゲータに表示 された[呼び出し可能なAPI]リストを展開し、メソッドの名前をダブルクリックしま す。 必要に応じて、メソッドに適切な入力値を設定してください。 4. コードエントリタブのタイプに基づいて、適切なJavaコードを書き込みます。 [コード全体]タブの[Javaコード]ウィンドウで、Javaトランスフォーメーション のクラスコード全体を表示します。 Javaパッケージのインポート [インポート]タブでは、アクティブまたはパッシブなJavaトランスフォーメーションに 対してJavaパッケージをインポートできます。 サードパーティ製、組み込み、またはカスタムのJavaパッケージをインポートできます。 Javaパッケージのインポート後、インポートされたパッケージを他のコードエントリタブ で使用できます。 注: [インポート]タブでは、静的変数、インスタンス変数、またはユーザーメソッドの 宣言または使用はできません。 Developerツールで、Javaトランスフォーメーションを含むメタデータをエクスポートまた はインポートしても、Javaトランスフォーメーションが必要とするサードパーティ製また はカスタムのパッケージが格納されているJARファイルやクラスファイルはエクスポートま たはインポートされません。 Javaトランスフォーメーションを含むメタデータをインポートする場合は、必要なサード パーティ製またはカスタムのパッケージが格納されたJARファイルまたはクラスファイル を、DeveloperツールクライアントおよびData Integration Serviceノードにコピーする 必要があります。 140 章 14: Javaトランスフォーメーション 例えばJava I/Oパッケージをインポートするには、[インポート]タブに以下のコードを 入力します。 import java.io.*; 標準以外のJavaパッケージをインポートするときは、Javaトランスフォーメーションので クラスパスにパッケージまたはクラスを追加します。 Helperコードの定義 [ヘルパ]タブで、アクティブJavaトランスフォーメーションまたはパッシブJavaトラン スフォーメーション内のJavaトランスフォーメーションクラスのユーザー定義変数および メソッドを宣言できます。 [ヘルパ]タブで変数およびメソッドを宣言すると、[インポート]タブを除くすべての コードエントリタブでその変数およびメソッドを使用できます。 [ヘルパ]タブでは、以下のタイプのコード、変数、およびメソッドを宣言できます。 ¨ 静的コードおよび静的変数。 静的ブロック内では、静的変数および静的コードを宣言できます。 マッピング内の再 利用可能なJavaトランスフォーメーションのすべてのインスタンスが、静的コードおよ び静的変数を共有します。 静的コードは、Javaトランスフォーメーション内の他のど のコードよりも先に実行されます。 例えば、以下のコードは、マッピング内のJavaトランスフォーメーションのすべてのイ ンスタンスに対するエラーしきい値を保存する静的変数を宣言します。 static int errorThreshold; この変数を使用してトランスフォーメーションのエラーしきい値を保存すると、そのエ ラーしきい値にマッピング内のJavaトランスフォーメーションの全インスタンスからア クセスできます。 注: 再利用可能なJavaトランスフォーメーションでは、静的変数を同期する必要があ ります。 ¨ インスタンス変数。 マッピング内の再利用可能なJavaトランスフォーメーションの複数のインスタンスは、 インスタンス変数を共有しません。 重複を避けるためにプレフィックスを追加してイ ンスタンス変数を宣言し、非プリミティブインスタンス変数を初期化します。 たとえば、以下のコードを使用すると、ブール変数を使用して出力行を生成するかどう かを決定できます。 // boolean to decide whether to generate an output row // based on validity of input private boolean generateRow; ¨ ユーザー定義の静的メソッドおよびインスタンスメソッド Javaトランスフォーメーションの機能を拡張します。 [ヘルパ]タブで宣言された Javaメソッドでは、出力変数またはローカルで宣言されたインスタンス変数を使用また は変更できます。 [ヘルパ]タブのJavaメソッドからは、入力変数にアクセスできま せん。 例えば、[ヘルパ]タブの以下のコードを使用して2つの整数を追加する関数を宣言し ます。 private int myTXAdd (int num1,int num2) { Javaコードの開発 141 return num1+num2; } JavaトランスフォーメーションのJavaのプロ パティ 特定のトランスフォーメーションイベントに対するトランスフォーメーションの動作を定 義するJavaコードを記述してコンパイルするには、[Java]ビューのコードエントリタブ を使用します。 以下のコードエントリタブがあります。 ¨ インポート ¨ ヘルパ ¨ 入力時 ¨ 最後 ¨ 関数 Javaトランスフォーメーションのクラスコード全体は、[コード全体]タブに表示されま す。 [インポート]タブ [インポート]タブでは、アクティブまたはパッシブなJavaトランスフォーメーションの Javaパッケージ(サードパーティ製、ビルトイン、またはカスタム)をインポートできま す。 Javaパッケージをインポートするには、[インポート]タブの[コード]プロパティの [Javaコード]ウィンドウで、パッケージをインポートするコードを入力します。 例えば、次のコードを入力するとjava.ioパッケージをインポートできます。 import java.io.*; Javaパッケージをインポートするコードをコンパイルするには、[インポート]タブの [コンパイル]プロパティにある[コンパイル]をクリックします。 コンパイルの結果 は、[インポート]タブの[結果]ウィンドウに表示されます。 インポートしたJavaパッケージは、他のコードエントリタブで使用することができます。 [ヘルパ]タブ [ヘルパ]タブで、アクティブまたはパッシブなJavaトランスフォーメーション内のJava トランスフォーメーションクラスのユーザー定義変数およびメソッドを宣言できます。 ユーザー定義変数およびメソッドを宣言するには、[Javaコード]ウィンドウの[ヘル パ]タブの[コード]プロパティにコードを入力します。 142 章 14: Javaトランスフォーメーション Javaトランスフォーメーションのヘルパコードをコンパイルするには、[ヘルパ]タブの [コンパイル]プロパティの[コンパイル]をクリックします。 コンパイルの結果は[結 果]ウィンドウの[ヘルパ]タブに表示されます。 変数およびメソッドを宣言すると、それらを[インポート]タブを除く他のすべてのコー ドエントリタブで使用できます。 [入力時]タブ [入力時]タブでは、入力行を受け取る際のアクティブまたはパッシブJavaトランスフォ ーメーションの動作を定義します。 このタブでは、入出力ポートのデータ、変数、および JavaトランスフォーメーションAPIメソッドにアクセスしして使用することもできます。 このタブで定義したJavaコードは、入力行ごとに1回実行されます。 入力行を受け取る際のJavaトランスフォーメーションの動作を定義するには、[Javaコー ド]ウィンドウの[入力時]タブの[コード]プロパティにコードを入力します。 [入力時]タブのナビゲータから、以下の変数とAPIメソッドにアクセスし、それらを定義 することができます。 ¨ 入力および出力ポートの変数。 入力および出力ポートのデータに変数としてアクセス するには、ポートの名前を変数の名前として使用します。 たとえば「in_int」が整数 の入力ポートである場合、Java基本データ型intで「in_int」変数として参照すること で、このポートのデータにアクセスできます。入力ポートおよび出力ポートを変数とし て宣言する必要はありません。 入力ポート変数に値は割り当てないでください。[入力時]タブの入力変数に値を割り 当てると、対応するポートの入力データを現在の行では取得できません。 ¨ インスタンス変数とユーザー定義メソッド。[ヘルパ]タブで宣言した任意のインスタ ンス変数、静的変数、またはユーザー定義メソッドを使用します。 たとえば、アクティブJavaトランスフォーメーションに、整数データ型の2つの入力ポ ート(BASE_SALARYとBONUSES)、および整数データ型の1つの出力ポート (TOTAL_COMP)があるとします。また、[ヘルパ]タブで、2つの整数を加算して結果 を返すユーザー定義メソッド(myTXAdd)を作成したとします。 この場合、[入力時] タブで以下のJavaコードを使用し、入力ポートの合計値を出力ポートに割り当てて出力 行を生成します。 TOTAL_COMP = myTXAdd (BASE_SALARY,BONUSES); generateRow(); Javaトランスフォーメーションは、入力行を受け取ると2つの入力ポート(BASE_SALARY およびBONUSES)の値を加算した値を出力ポート(TOTAL_COMP)に割り当て、出力行を 生成します。 ¨ JavaトランスフォーメーションAPIメソッド。Javaトランスフォーメーションによって 提供されるAPIメソッドを呼び出すことができます。 Javaトランスフォーメーションのコードをコンパイルするには、[入力時]タブの[コン パイル]プロパティの[コンパイル]をクリックします。 コンパイルの結果は[入力時] タブの[結果]ウィンドウに表示されます。 JavaトランスフォーメーションのJavaのプロパティ 143 [最後]タブ [最後]タブでは、アクティブまたはパッシブなJavaトランスフォーメーションですべて の入力データを処理した後のトランスフォーメーションの動作を定義します。 このタブで は、アクティブなトランスフォーメーションの出力データの設定や、Javaトランスフォー メーションAPIメソッドの呼び出しも行うことができます。 Javaトランスフォーメーションのすべての入力データを処理した後の動作を定義するに は、[最後]タブの[コード]プロパティの[Javaコード]ウィンドウでコードを入力し ます。 [最後]タブでは、以下の変数およびAPIメソッドにアクセスしてそれらを定義することが できます。 ¨ 出力ポート変数。[ポート]タブで変数として定義した出力ポートの名前を使用する か、アクティブなJavaトランスフォーメーションの出力データを設定できます。 ¨ インスタンス変数とユーザー定義メソッド。[ヘルパ]タブで宣言したインスタンス変 数またはユーザー定義メソッドを使用します。 ¨ JavaトランスフォーメーションAPIメソッド。Javaトランスフォーメーションによって 提供されるAPIメソッドを呼び出します。 例えば、以下のJavaコードを使用して、データの終わりに達したときにログに情報を書 き込みます。 logInfo("Number of null rows for partition is: " + partCountNullRows); Javaトランスフォーメーションのコードをコンパイルするには、[最後]タブの[コンパ イル]プロパティにある[コンパイル]をクリックします。 コンパイルの結果は、[最 後]タブの[結果]ウィンドウに表示されます。 [関数]タブ [関数]タブでは、Javaトランスフォーメーションの式を呼び出す関数をJavaプログラミ ング言語を使用して定義します。 例えば、入出力ポートの値やJavaトランスフォーメーションの変数の値をルックアップす る式を呼び出す関数を定義できます。 関数を定義するには、[関数]タブの[コード]プロパティの[Javaコード]ウィンドウ で手動で定義します。また、[新しい関数]をクリックして[関数の定義]ダイアログボ ックスを呼び出せば、簡単に関数を定義することができます。 コードをコンパイルするには、[関数]タブの[コンパイル]プロパティにある[コンパ イル]をクリックします。 コンパイルの結果は、[関数]タブの[結果]ウィンドウに表 示されます。 [コード全体]タブ [コード全体]タブでは、JavaトランスフォーメーションのJavaクラスコード全体を表示 してコードをコンパイルできます。ただし、コードを編集することはできません。 [コード]プロパティの[Javaコード]ウィンドウにクラスコード全体が表示されます。 144 章 14: Javaトランスフォーメーション Javaトランスフォーメーションのコード全体をコンパイルするには、[コード全体]タブ の[コンパイル]プロパティにある[コンパイル]をクリックします。 コンパイルの結果 は、[コード全体]タブの[結果]ウィンドウに表示されます。 Javaトランスフォーメーションの作成 Developerツールでは、再利用可能または再利用不可能なJavaトランスフォーメーションを 作成できます。 再利用可能なJavaトランスフォーメーションの作成 再利用可能なトランスフォーメーションは、複数のマッピングで使用できます。 再利用可能なJavaトランスフォーメーションはDeveloperツールで作成します。 1. 2. [Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。 [ファイル] > [新規] > [トランスフォーメーション]をクリックします。 [新規]ダイアログボックスが表示されます。 3. Javaトランスフォーメーションを選択します。 4. [次へ]をクリックします。 5. トランスフォーメーションの名前を入力します。 6. アクティブなトランスフォーメーションを作成する場合は、[アクティブとして作 成]オプションを選択します。 7. [完了]をクリックします。 トランスフォーメーションがエディタに表示されます。 8. [ポート]ビューで、[新規]ボタンをクリックして、トランスフォーメーションに ポートを追加します。 9. ポートを編集して、名前、データ型、および精度を設定します。 Javaコードスニペットでは、ポート名を変数として使用します。 10. [Java]ビューのコードエントリタブで、トランスフォーメーションのJavaコードを 記述してコンパイルします。 11. [Java]ビューの[関数]タブで、式を呼び出す関数を定義します。 12. 任意のコードエントリタブで、[コンパイル]プロパティの[結果]ウィンドウに表 示されたエラーメッセージをダブルクリックし、トランスフォーメーションのJavaコ ードのコンパイルエラーを特定して修正します。 13. [詳細]ビューで、トランスフォーメーションのプロパティを編集します。 再利用不可能なJavaトランスフォーメーションの作成 再利用不可能なトランスフォーメーションは、単一のマッピングで使用されます。 Javaトランスフォーメーションの作成 145 Developerツールで再利用不可能なJavaトランスフォーメーションを作成します。 1. マッピングまたはマプレットで、トランスフォーメーションパレットからエディタに Javaトランスフォーメーションをドラッグします。 2. [新しいJavaトランスフォーメーション]ダイアログボックスに、トランスフォーメ ーションの名前を入力します。 3. アクティブなトランスフォーメーションを作成する場合は、[アクティブとして作 成]オプションを選択します。 4. [完了]をクリックします。 トランスフォーメーションがエディタに表示されます。 5. [全般]ビューで、トランスフォーメーションの名前と説明を編集します。 6. [ポート]ビューで、[新規]ボタンをクリックして、トランスフォーメーションに ポートを追加します。 7. ポートを編集して、名前、データ型、および精度を設定します。 Javaコードスニペットでは、ポート名を変数として使用します。 8. [Java]ビューのコードエントリタブで、トランスフォーメーションのJavaコードを 記述してコンパイルします。 9. [Java]ビューの[関数]タブで、式を呼び出す関数を定義します。 10. 任意のコードエントリタブで、[コンパイル]プロパティの[結果]ウィンドウに表 示されたエラーメッセージをダブルクリックし、トランスフォーメーションのJavaコ ードのコンパイルエラーを特定して修正します。 11. [詳細]ビューで、トランスフォーメーションのプロパティを編集します。 Javaトランスフォーメーションのコンパイル のDeveloperツールでは、Javaコンパイラを使用してJavaコードをコンパイルしてトランス フォーメーション用のバイトコードを生成します。 Javaコンパイラは、Javaコードをコンパイルし、コンパイルの結果を[結果]ウィンドウ のコードエントリタブの[コンパイル]プロパティに表示します。 Javaコンパイラは、の Developerツールと一緒に java/binディレクトリにインストールされます。 Javaトランスフォーメーションのコード全体をコンパイルするには、[コード全体]タブ の[コンパイル]プロパティの[コンパイル] をクリックします。 作成したJavaトランスフォーメーションには、Javaトランスフォーメーションの基本的な 機能を定義するJavaクラスが含まれています。Javaクラスのコード全体には、トランスフ ォーメーションのテンプレートクラスコードに加えて、コードエントリタブで定義した Javaコードが格納されています。 Javaトランスフォーメーションをコンパイルすると、のDeveloperツールはコードエントリ タブのコードをトランスフォーメーションのテンプレートクラスに追加し、トランスフォ ーメーションのクラスコード全体を生成します。 その後、デベロッパツールはJavaコンパ イラを呼び出してクラスコード全体をコンパイルします。 Javaコンパイラは、トランスフ 146 章 14: Javaトランスフォーメーション ォーメーションをコンパイルし、トランスフォーメーションのバイトコードを生成しま す。 コンパイルの結果は[結果]ウィンドウに表示されます。 コンパイルの結果を使用して、 Javaコードエラーを特定および検出します。 Javaトランスフォーメーションのトラブルシ ューティング すべてのコードエントリタブの[コンパイル]プロパティの[結果]ウィンドウで、Java コードエラーを確認および修正できます。 Javaトランスフォーメーションのエラーは、コードエントリタブのコード内のエラー、ま たはJavaトランスフォーメーションクラスのコード全体内のエラーが原因で発生する可能 性があります。 Javaトランスフォーメーションをトラブルシューティングするには、以下の手順を実行し ます。 1. Javaスニペットコードまたはトランスフォーメーションのクラスコード全体からエラ ーのソースを検出します。 2. エラーのタイプを特定します。エラーのタイプを特定するには、[結果]ウィンドウ に表示されるコンパイルの結果、およびエラーの場所を使用します。 3. コードエントリタブでJavaコードを修正します。 4. トランスフォーメーションを再度コンパイルします。 コンパイルエラーのソースの検出 コンパイルエラーのソースを探すには、コードエントリタブまたは[コード全体]タブの [コンパイル]プロパティの[結果]ウィンドウに表示されるコンパイル結果を使用しま す。 [結果]ウィンドウでエラーメッセージをダブルクリックすると、コードエントリタブま たは[コード全体]タブの[Javaコード]ウィンドウで、エラーの原因となったソースコ ードが強調表示されます。 [コード全体]タブでは、エラーを探すことはできますが、Javaコードを編集することは できません。 [コード全体]タブで見つけたエラーを修正するには、適切なコードエント リタブでコードを変更します。 トランスフォーメーションのクラスコード全体にユーザー コードを追加したことが原因で発生したエラーを表示する場合などは、[コード全体]タ ブを使用する必要があります。 コードエントリタブまたは[コード全体]タブでのエラーの確 認 コードエントリタブまたは[コード全体]タブでコンパイルエラーを探すことができま す。 Javaトランスフォーメーションのトラブルシューティング 147 1. 任意のコードエントリタブまたは[コード全体]タブの[コンパイル]プロパティの [結果]ウィンドウで、エラーメッセージを右クリックします。 2. [表示] > [スニペット]または [表示] > [[コード全体]タブ]をクリック します。 選択したタブでエラーのソースが強調表示されます。 注: [コード全体]タブでは、エラーを表示することはできますが、修正することは できません。 エラーを修正するには、適切なコードエントリタブに移動する必要があ ります。 コンパイルエラーの原因の特定 コンパイルエラーは、ユーザーコードのエラーが原因で発生する場合があります。 ユーザーコードのエラーは、クラスの非ユーザーコードでのエラーの原因になる可能性も あります。 コンパイルエラーは、Javaトランスフォーメーションのユーザーコードおよび 非ユーザーコードで発生します。 ユーザーコードのエラー エラーは、コードエントリタブのユーザーコードで発生する可能性があります。 ユーザー コードのエラーには、標準Java構文および言語のエラーが含まれます。 ユーザーコードのエラーは、Developerツールがコードエントリタブのユーザーコードをク ラスコード全体に追加した場合にも発生することがあります。 たとえば、Javaトランスフォーメーションには整数データ型のint1という名前の入力ポー トがあるとします。クラスのコード全体は、以下のコードで入力ポートの変数を宣言しま す。 int int1; しかし、[入力時]タブで同じ変数名を使用すると、Javaコンパイラは変数の再宣言とし てエラーを発行します。 エラーを修正するには、[入力時]タブで変数の名前を変更しま す。 非ユーザーコードのエラー コードエントリタブのユーザーコードは、非ユーザーコードでのエラーの原因になる場合 もあります。 たとえば、Javaトランスフォーメーションには整数データ型のint1およびout1という名前 の入力ポートと出力ポートがあるとします。ここで、以下のコードを[入力時]コードエ ントリタブに書き込み、入力ポートint1のinterestを計算して出力ポートout1に割り当て ます。 int interest; interest = CallInterest(int1); // calculate interest out1 = int1 + interest; } トランスフォーメーションをコンパイルすると、Developerツールは[入力時]コードエン トリタブのコードを、トランスフォーメーションのクラスコード全体に追加します。 Java コンパイラがJavaコードをコンパイルする際に中括弧が一致していないと、クラスコード 全体のメソッドは不完全なまま終了し、Javaコンパイラによってエラーが発行されます。 148 章 14: Javaトランスフォーメーション 第 15 章 Javaトランスフォーメーショ ンAPIのリファレンス この章では、以下の項目について説明します。 ¨ JavaトランスフォーメーションAPIメソッドの概要, 149 ページ ¨ defineJExpression, 150 ページ ¨ failSession, 151 ページ ¨ generateRow, 152 ページ ¨ getInRowType, 152 ページ ¨ incrementErrorCount, 153 ページ ¨ invokeJExpression, 154 ページ ¨ isNull, 155 ページ ¨ logError, 155 ページ ¨ logInfo, 156 ページ ¨ resetNotification, 157 ページ ¨ setNull, 158 ページ JavaトランスフォーメーションAPIメソッド の概要 エディタの[Java]ビューのコードエントリタブで、APIメソッドをJavaコードに追加して トランスフォーメーションの動作を定義することができます。 APIメソッドをコードに追加するには、コードエントリタブのナビゲータで[呼び出し可能 なAPI]リストを展開し、コードに追加するメソッドの名前をダブルクリックします。 また、ナビゲータからJavaコードスニペットにメソッドをドラッグするか、Javaコードス ニペットにAPIメソッドを手動で入力することもできます。 JavaトランスフォーメーションのJavaコードに追加できるAPIメソッドは次のとおりです。 149 defineJExpression Java式を定義します。 failSession エラーメッセージ付きの例外をスローし、マッピングを失敗させます。 generateRow アクティブなJavaトランスフォーメーションの出力行を生成します。 getInRowType トランスフォーメーションの現在の行の入力タイプを返します。 incrementErrorCount マッピングのエラーカウントを増やします。 invokeJExpression defineJExpressionメソッドを使用して定義したJava式を呼び出します。 isNull 入力カラムのNULL値の有無を確認します。 logError ログにエラーメッセージを書き込みます。 logInfo ログに情報メッセージを書き込みます。 resetNotification Data Integration Serviceマシンがリスタートモードで実行されている場合に、マッ ピングの実行後にJavaコードで使用する変数をリセットします。 setNull アクティブまたはパッシブJavaトランスフォーメーションの出力カラムの値をNULLに 設定します。 defineJExpression 式(式の文字列および入力パラメータを含む)を定義します。 defineJExpressionメソッ ドの引数には、式の構文を定義する入力パラメータと文字列値を含むJExprParamMetadata オブジェクトの配列が含まれています。 以下の構文を使用します。 defineJExpression( String expression, Object[] paramMetadataArray ); 150 章 15: JavaトランスフォーメーションAPIのリファレンス 次の表に、これらのパラメータについて説明します。 パラメータ タイプ データ型 説明 式 入力 String 式を表す文字列。 paramMetadataAr ray 入力 オブジェ クト[] 式の入力パラメータを含む JExprParaMetadataオブジェクト の配列。 defineJExpressionメソッドは、[インポート]タブと[関数]タブを除く任意のコードエ ントリタブでJavaコードに追加することができます。 defineJExpressionメソッドを使用するには、式の入力パラメータを表す JExprParamMetadataオブジェクトの配列をインスタンス化する必要があります。 パラメー タのメタデータ値を設定し、その配列をパラメータとしてdefineJExpressionメソッドに渡 します。 例えば、以下のJavaコードでは、2つの文字列の値をルックアップする式を作成します。 JExprParaMetadata params[] = new JExprParamMetadata[2]; params[0] = new JExprParamMetadata(EDataType.STRING, 20, 0); params[1] = new JExprParamMetadata(EDataType.STRING, 20, 0); defineJExpression(":lkp.mylookup(x1,x2)",params); 注: 式に渡す一連のパラメータには、先頭に文字xを付けて番号を示す必要があります。 例えば、3つのパラメータを式に渡す場合は、各パラメータにx1、x2、およびx3という名前 を付けます。 failSession エラーメッセージ付きの例外をスローし、マッピングを失敗させます。 以下の構文を使用します。 failSession(String errorMessage); 次の表に、パラメータを示します。 パラメータ パラメー タのタイ プ デー タ型 説明 errorMessa ge Input Strin g エラーメッセージの文字列。 failSessionメソッドを使用して、マッピングを終了します。 コードエントリタブのtry/ catchブロック内では、failSessionメソッドを使用しないでください。 [インポート]および[関数]タブを除くコードエントリタブでは、Javaコードに failSessionメソッドを追加できます。 failSession 151 以下のJavaコードは、input1入力ポートにNULL値が存在するかどうかについてテストする 方法と、input1がNULLの場合はマッピングに失敗することを示しています。 if(isNull(”input1”)) { failSession(“Cannot process a null value for port input1.”); } generateRow アクティブなJavaトランスフォーメーションの出力行を生成します。 以下の構文を使用します。 generateRow(); generateRowメソッドを呼び出すと、Javaトランスフォーメーションは出力ポート変数の現 在の値を使用して出力行を生成します。 1つの入力行に対応する複数の行を生成するに は、各入力行に対してgenerateRowメソッドを複数回呼び出すことができます。 アクティ ブなJavaトランスフォーメーションでgenerateRowメソッドを使用しない場合、トランスフ ォーメーションは出力行を生成しません。 [インポート]および[関数]タブ以外のすべてのコードエントリタブで、Javaコードに generateRowメソッドを追加できます。 generateRowメソッドを呼び出すことができるのは、アクティブトランスフォーメーション のみです。 パッシブトランスフォーメーションでgenerateRowメソッドを呼び出すと、 Data Integration Serviceでエラーが発生します。 以下のJavaコードを使用すると、1つの出力行が生成され、出力ポートの値が変更され、別 の出力行が生成されます。 // Generate multiple rows. if(!isNull("input1") && !isNull("input2")) { output1 = input1 + input2; output2 = input1 - input2; } generateRow(); // Generate another row with modified values. output1 = output1 * 2; output2 = output2 * 2; generateRow(); getInRowType トランスフォーメーションの現在の行の入力タイプを返します。このメソッドは、挿入、 更新、削除、またはリジェクトの値を返します。 以下の構文を使用します。 rowType getInRowType(); 152 章 15: JavaトランスフォーメーションAPIのリファレンス 次の表に、パラメータを示します。 パラメータ パラメー タのタイ プ デー タ型 説明 rowType アウトプ ット Strin g アップデートストラテジのタイプを返しま す。以下のいずれかの値となります。 - DELETE - INSERT - REJECT - UPDATE [入力時]コードエントリタブで、JavaコードにgetInRowTypeメソッドを追加できます。 getInRowTypeメソッドは、アップデートストラテジを設定するように設定されたアクティ ブなトランスフォーメーションで使用できます。 アップデートストラテジを設定するよう に設定されていないアクティブなトランスフォーメーションでこのメソッドを呼び出す と、Data Integration Serviceでエラーが発生します。 incrementErrorCount エラーカウントを増やします。 エラー数がエラーしきい値に達すると、マッピングは失敗 します。 以下の構文を使用します。 incrementErrorCount(int nErrors); 次の表に、パラメータを示します。 パラメータ パラメー タのタイ プ データ 型 説明 nErrors 入力 Intege r エラーカウントの増分数。 incrementErrorCountメソッドは、[インポート]タブと[関数]タブを除く任意のコード エントリタブでJavaコードに追加することができます。 以下のJavaコードでは、トランスフォーメーションの入力ポートがNULL値の場合にエラー カウントが増加します。 // Check if input employee id and name is null. if (isNull ("EMP_ID_INP") || isNull ("EMP_NAME_INP")) { incrementErrorCount(1); // if input employee id and/or name is null, don't generate a output row for this input row generateRow = false; } incrementErrorCount 153 invokeJExpression 式を呼び出し、式の値を返します。 以下の構文を使用します。 (datatype)invokeJExpression( String expression, Object[] paramMetadataArray); invokeJExpressionメソッドの入力パラメータは、式および式の入力パラメータを含むオブ ジェクトの配列を表す文字列値です。 次の表に、これらのパラメータについて説明します。 パラメータ パラメー タのタイ プ データ型 説明 式 入力 String 式を表す文字列。 paramMetadataAr ray 入力 オブジェ クト[] 式の入力パラメータを含むオブジ ェクトの配列。 invokeJExpressionメソッドは、[インポート]タブと[関数]タブを除く任意のコードエ ントリタブでJavaコードに追加することができます。 invokeJExpressionメソッドを使用する場合は、以下のルールおよびガイドラインに従いま す。 ¨ 戻りデータ型。invokeJExpressionメソッドの戻りデータ型はオブジェクトです。 関数 の戻り値は、適切なデータ型でキャストする必要があります。 Integer、Double、String、およびbyte[]のデータ型で値を返すことができます。 ¨ 行タイプ。invokeJExpressionメソッドの戻り値の行タイプはINSERTです。 戻り値に異なる行タイプを使用するには、高度なインタフェースを使用します。 ¨ NULL値。パラメータとしてNULL値を渡した場合、またはinvokeJExpressionメソッドの 戻り値がNULLの場合、この値はNULLインジケータとして処理されます。 例えば、式の戻り値がNULLで戻りデータ型がStringの場合、NULL値の文字列が返されま す。 ¨ Dateデータ型。Dateデータ型の入力パラメータは、Stringデータ型に変換する必要があ ります。 式中の文字列をDateデータ型として使用するには、to_date()関数を使用して、文字列 をDateデータ型に変換します。 また、Dateデータ型をStringデータ型として返す式の戻り型をキャストする必要があり ます。 以下の例は、文字列「John」と「Smith」を連結し、文字列「John Smith」を返します。 (String)invokeJExpression("concat(x1,x2)", new Object [] { "John ", "Smith" }); 154 章 15: JavaトランスフォーメーションAPIのリファレンス 注: 式に渡す一連のパラメータには、先頭に文字xを付けて番号を示す必要があります。 例えば、3つのパラメータを式に渡す場合は、各パラメータにx1、x2、およびx3という名前 を付けます。 isNull 入力カラムの値を調べ、NULL値の有無を確認します。 以下の構文を使用します。 Boolean isNull(String satrColName); 次の表に、パラメータを示します。 パラメータ パラメー タのタイ プ データ 型 説明 strColName Input String 入力カラムの名前。 isNullメソッドは、[入力時]コードエントリタブでJavaコードに追加できます。 以下のJavaコードは、SALARY入力カラムの値がNULLであるかどうかを確認してから totalSalariesインスタンス変数に追加する方法を示しています。 // if value of SALARY is not null if (!isNull("SALARY")) { // add to totalSalaries TOTAL_SALARIES += SALARY; } 以下のJavaコードを使用しても同じ結果が得られます。 // if value of SALARY is not null String strColName = "SALARY"; if (!isNull(strColName)) { // add to totalSalaries TOTAL_SALARIES += SALARY; } logError ログにエラーメッセージを書き込みます。 以下の構文を使用します。 logError(String msg); isNull 155 次の表に、パラメータを示します。 パラメータ パラメー タのタイ プ データ型 説明 msg Input String エラーメッセージの文字列。 logErrorメソッドは、[インポート]タブと[関数]タブを除く任意のコードエントリタ ブでJavaコードに追加することができます。 以下のJavaコードでは、入力ポートがNULLの場合にエラーがログに記録されます。 // check BASE_SALARY if (isNull("BASE_SALARY")) { logError("Cannot process a null salary field."); } このコードを実行すると、以下のメッセージがログに出力されます。 [JTX_1013] [ERROR] Cannot process a null salary field. logInfo ログに情報メッセージを書き込みます。 以下の構文を使用します。 logInfo(String msg); 次の表に、パラメータを示します。 パラメータ パラメー タのタイ プ データ型 説明 msg Input String 情報メッセージの文字列。 [インポート]および[関数]タブを除くすべてのコードエントリタブで、Javaコードに logInfoメソッドを追加できます。 以下のJavaコードは、Javaトランスフォーメーションがメッセージしきい値である1,000行 を処理した後に、ログにメッセージを書き込む方法を示しています。 if (numRowsProcessed == messageThreshold) { logInfo("Processed " + messageThreshold + " rows."); } 156 章 15: JavaトランスフォーメーションAPIのリファレンス resetNotification Data Integration Serviceマシンがリスタートモードで実行されている場合に、マッピン グの実行後にJavaコードで使用する変数をリセットします。 リスタートモードでは、Data Integration Serviceの初期化は解除されませんが、Data Integration Serviceが要求後にリセットされて次の要求を処理できるようになります。 Javaトランスフォーメーションの場合は、resetNotificationメソッドを使用すると、マッ ピングの実行後にJavaコードの変数がリセットされます。 以下の構文を使用します。 public int resetNotification(IGroup group) { return EStatus.value; } 次の表に、これらのパラメータについて説明します。 パラメータ パラメータ のタイプ データ型 説明 int 出力 EStatus.value 戻り値。valueは次の値のい ずれかになります。 - SUCCESS。 成功です。 - FAILURE。 失敗です。 - NOIMPL。 実装されていませ ん。 group 入力 IGroup 入力グループ。 resetNotificationメソッドは、[ヘルパ]タブのコードエントリタブでJavaコードに追加 できます。 resetNotificationメソッドは[呼び出し可能なAPI]リストには表示されません。 例えば、Javaコードでout5_staticという名前の静的変数を宣言し、その変数を1に初期化 するとします。以下のJavaコードでは、次回のマッピングの実行後にout5_static変数が1 にリセットされます。 public int resetNotification(IGroup group) { out5_static=1; return EStatus.SUCCESS; } このメソッドは必須ではありません。 ただし、Data Integration Serviceをリスタート モードで実行している場合、resetNotificationメソッドが実装されていないJavaトランス フォーメーションがマッピングに含まれていると、JSDK_42075警告メッセージがログに出 力されます。 resetNotification 157 setNull アクティブまたはパッシブなJavaトランスフォーメーションの出力カラムの値をNULLに設 定します。 以下の構文を使用します。 setNull(String strColName); 次の表に、パラメータを示します。 パラメータ パラメータの タイプ データ型 説明 strColName Input String 出力カラムの名前。 setNullメソッドは、アクティブまたはパッシブなJavaトランスフォーメーションの出力カ ラムの値をNULLに設定します。 出力カラムをNULLに設定したら、出力行を生成するまで値 は変更できません。 [インポート]および[関数]タブを除くすべてのコードエントリタブで、Javaコードに setNullメソッドを追加できます。 以下のJavaコードは、入力カラムの値をチェックし、出力カラムの対応する値をNULLに設 定する方法を示しています。 // check value of Q3RESULTS input column if(isNull("Q3RESULTS")) { // set the value of output column to null setNull("RESULTS"); } また、以下のJavaコードを使用して同じ結果を得ることもできます。 // check value of Q3RESULTS input column String strColName = "Q3RESULTS"; if(isNull(strColName)) { // set the value of output column to null setNull(strColName); } 158 章 15: JavaトランスフォーメーションAPIのリファレンス 第 16 章 Java式 この章では、以下の項目について説明します。 ¨ Java式の概要, 159 ページ ¨ [関数の定義]ダイアログボックスを使用した式の定義, 160 ページ ¨ 単純なインタフェースに関する作業, 163 ページ ¨ 高度なインタフェースに関する作業, 164 ページ ¨ JExpressionクラスAPIリファレンス, 169 ページ Java式の概要 Javaトランスフォーメーションの式を、Javaプログラミング言語を使用して呼び出すこと ができます。 式を使用すると、Javaトランスフォーメーションの機能が拡張されます。たとえば、Java トランスフォーメーションの式を呼び出して、入出力ポートの値、あるいはJavaトランス フォーメーション変数の値をルックアップできます。 Javaトランスフォーメーションの式を呼び出すには、Javaコードを生成するか、または JavaトランスフォーメーションAPIメソッドを使用します。 式を呼び出して、適切なコー ドエントリタブでの式の結果を使用します。 式を呼び出すJavaコードを生成することも、 APIメソッドを使用して式を呼び出すJavaコードを記述することもできます。 以下の表に、Javaトランスフォーメーションの式の作成および呼び出しに使用できる方法 を示します。 メソッド 説明 [関数の定義]ダイア ログボックス 式を呼び出す関数を作成し、式のコードを生成でき ます。 単純なインタフェース 式を呼び出す1つのメソッドを呼び出し、その式の結 果を取得できます。 高度なインタフェース 式を定義し、式を呼び出して、その式の結果を使用 できます。 159 メソッド 説明 オブジェクト指向プログラミングについての知識が あり、式の呼び出しをさらに制御したい場合は、高 度なインタフェースを使用します。 式の関数タイプ Javaトランスフォーメーションの式は、[関数の定義]ダイアログボックスを使用する か、または単純/高度なインタフェースを使用して作成できます。 入出力ポート変数、あるいはJavaコード内の変数を入力パラメータとして使用する式を入 力できます。 [関数の定義]ダイアログボックスを使用する場合、Javaトランスフォーメーションで使 用する前に式を検証できます。 Javaトランスフォーメーションでは、以下のタイプの式の関数を呼び出すことができま す。 式の関数タイプ 説明 トランスフォーメーショ ン言語関数 一般的な式を扱うように設計された、SQLに似た関数 です。 ユーザー定義関数 トランスフォーメーション言語関数に基づいて Developerツールで作成する関数です。 カスタム関数 カスタム関数APIを使用して作成する関数です。 また、未接続のトランスフォーメーションおよびビルトイン変数も式で使用できます。 例 えば、未接続のルックアップトランスフォーメーションを式で使用できます。 [関数の定義]ダイアログボックスを使用し た式の定義 Java式を定義する場合、関数を設定し、式を作成し、式を呼び出すコードを生成します。 関数を定義して式を作成するには、[関数の定義]ダイアログボックスを使用します。 式関数を作成してJavaトランスフォーメーションで式を使用するには、以下の高度なタス クを実行します。 160 1. 式を呼び出す関数を設定します。関数名、説明、およびパラメータの設定を含みま す。関数パラメータは、式を作成する場合に使用します。 2. 式の構文を作成し、式を検証します。 章 16: Java式 3. 式を呼び出すJavaコードを生成します。 生成されたコードが、[関数]コードエントリタブに表示されます。 Javaコードを生成したら、生成した関数を適切なコードエントリタブで呼び出し、単純な インタフェースと高度なインタフェースのどちらを使用するかに基づいて、式を呼び出す かJExpressionオブジェクトを取得します。 注: 式の作成時に式を検証する場合、[関数の定義]ダイアログボックスを使用する必要 があります。 手順1. 関数の設定 式を呼び出すJava関数の関数名、説明、および入力パラメータを設定します。 関数を設定する場合、以下のルールおよびガイドラインを使用します。 ¨ トランスフォーメーション内に既に存在するJava関数、またはJavaの予約語と名前が重 複しない、ユニークな関数名を使用します。 ¨ パラメータ名、Javaデータ型、精度、および位取りを設定する必要があります。入力パ ラメータは、トランスフォーメーションでJavaコードの関数を呼び出す際に渡す値で す。 ¨ 式にDateデータ型を渡すには、入力パラメータのStringデータ型を使用します。 Dateデータ型を返す式の場合、単純なインタフェースでは戻り値をStringデータ型とし て、高度なインタフェースではStringデータ型またはLongデータ型として使用できま す。 手順2. 式の作成と検証 式を作成する場合、設定したパラメータを関数で使用します。 式では、トランスフォーメーション言語の関数、カスタム関数、または他のユーザー定義 関数も使用できます。式の作成および検証は、[関数の定義]ダイアログボックスで実行 できます。 手順3. 式のJavaコードの生成 関数と関数パラメータの定義、および式の定義と検証を完了したら、式を呼び出すJavaコ ードを生成できます。 Developerは、生成されたJavaコードを[関数]コードエントリタブに格納します。 生成 したJavaコードを使用して、コードエントリタブの式を呼び出す関数を呼び出します。 単 純なJavaコード、または高度なJavaコードを生成できます。 式を呼び出すJavaコードを生成した後では、その式の編集および再検証を実行できませ ん。コードを生成した後で式を変更する場合、式を再作成する必要があります。 [関数の定義]ダイアログボックスを使用した式の作 成とJavaコードの生成 式を呼び出す関数を作成するには、[関数の定義]ダイアログボックスを使用します。 [関数の定義]ダイアログボックスを使用した式の定義 161 式を呼び出す関数を作成するには、以下の手順を実行します。 1. Developerで、Javaトランスフォーメーションを開きます。または、新規のJavaトラ ンスフォーメーションを作成します。 2. [Javaコード]タブで、[新しい関数]をクリックします。 [関数の定義]ダイアログボックスが表示されます。 3. 関数名を入力します。 4. 必要に応じて、式の説明を入力します。 最大で2,000文字まで入力できます。 5. 関数の引数を作成します。 引数を作成する場合、引数の名前、データ型、精度、位取りを設定します。 6. [式]タブで、作成した引数を使用して式を作成します。 7. 式を検証するには、[検証]をクリックします。 8. 必要に応じて、[式]ボックスに式を入力します。 その後、[検証]をクリックして 式を検証します。 9. 高度なインタフェースを使用してJavaコードを生成するには、[詳細コードの生成] オプションを選択します。 次に、[生成]をクリックします。 Developerで、[関数]コードエントリタブの式を呼び出す関数が生成されます。 Java式のテンプレート 式の単純または高度なJavaコードを使用すると、式のJavaコードを生成できます。 式のJavaコードは、式のテンプレートに基づいて生成されます。 以下の例は、単純なJavaコード用に生成されたJava式のテンプレートを示しています。 Object function_name (Java datatype x1[, Java datatype x2 ...] ) throws SDK Exception { return (Object)invokeJExpression( String expression, new Object [] { x1[, x2, ... ]} ); } 以下の例は、高度なインタフェースを使用して生成されたJava式のテンプレートを示して います。 JExpression function_name () throws SDKException { JExprParamMetadata params[] = new JExprParamMetadata[number of parameters]; params[0] = new JExprParamMetadata ( EDataType.STRING, // data type 20, // precision 0 // scale ); ... params[number of parameters - 1] = new JExprParamMetadata ( EDataType.STRING, // data type 20, // precision 0 // scale ); ... return defineJExpression(String expression,params); } 162 章 16: Java式 単純なインタフェースに関する作業 単純なインタフェースで式を呼び出すには、invokeJExpression Java APIメソッドを使用 します。 invokeJExpression 式を呼び出し、式の値を返します。 以下の構文を使用します。 (datatype)invokeJExpression( String expression, Object[] paramMetadataArray); invokeJExpressionメソッドの入力パラメータは、式および式の入力パラメータを含むオブ ジェクトの配列を表す文字列値です。 次の表に、これらのパラメータについて説明します。 パラメータ パラメー タのタイ プ データ型 説明 式 入力 String 式を表す文字列。 paramMetadataAr ray 入力 オブジェ クト[] 式の入力パラメータを含むオブジ ェクトの配列。 invokeJExpressionメソッドは、[インポート]タブと[関数]タブを除く任意のコードエ ントリタブでJavaコードに追加することができます。 invokeJExpressionメソッドを使用する場合は、以下のルールおよびガイドラインに従いま す。 ¨ 戻りデータ型。invokeJExpressionメソッドの戻りデータ型はオブジェクトです。 関数 の戻り値は、適切なデータ型でキャストする必要があります。 Integer、Double、String、およびbyte[]のデータ型で値を返すことができます。 ¨ 行タイプ。invokeJExpressionメソッドの戻り値の行タイプはINSERTです。 戻り値に異なる行タイプを使用するには、高度なインタフェースを使用します。 ¨ NULL値。パラメータとしてNULL値を渡した場合、またはinvokeJExpressionメソッドの 戻り値がNULLの場合、この値はNULLインジケータとして処理されます。 例えば、式の戻り値がNULLで戻りデータ型がStringの場合、NULL値の文字列が返されま す。 ¨ Dateデータ型。Dateデータ型の入力パラメータは、Stringデータ型に変換する必要があ ります。 式中の文字列をDateデータ型として使用するには、to_date()関数を使用して、文字列 をDateデータ型に変換します。 また、Dateデータ型をStringデータ型として返す式の戻り型をキャストする必要があり ます。 単純なインタフェースに関する作業 163 注: 式に渡す一連のパラメータには、先頭に文字xを付けて番号を示す必要があります。 例えば、3つのパラメータを式に渡す場合は、各パラメータにx1、x2、およびx3という名前 を付けます。 単純なインタフェースの例 [ヘルパ]および[入力時]コードエントリタブで、invokeJExpression APIメソッドを使 用する式を定義し、呼び出すことができます。 以下の例は、JavaトランスフォーメーションのNAMEおよびADDRESS入力ポートに対してルッ クアップを完了する方法、およびCOMPANY_NAME出力ポートに戻り値を割り当てる方法を示 しています。 [入力時]コードエントリタブで、以下のコードを入力します。 COMPANY_NAME = (String)invokeJExpression(":lkp.my_lookup(X1,X2)", new Object [] {str1 ,str2} ); generateRow(); 高度なインタフェースに関する作業 高度なインタフェースでは、オブジェクト指向のAPIメソッドを使用して、式の定義、呼び 出し、および結果の取得を行うことができます。 以下の表に、高度なインタフェースで使用可能なクラスおよびAPIメソッドを示します。 クラスまたはAPIメソッ ド 説明 EDataTypeクラス 式のデータ型を列挙します。 JExprParamMetadataク ラス 式内の各パラメータのメタデータが含まれていま す。パラメータのメタデータには、データ型、精 度、および位取りが含まれます。 defineJExpression API メソッド 式を定義します。式の文字列およびパラメータが含 まれます。 invokeJExpression API メソッド 式を呼び出します。 JExpressionクラス メタデータの作成、呼び出し、式の結果の取得、お よび戻りデータ型のチェックを実行するメソッドが 含まれます。 高度なインタフェースを使用した式の呼び出し 高度なインタフェースを使用して、式の定義、呼び出し、および結果の取得を行うことが できます。 164 章 16: Java式 1. [ヘルパ]または[入力時]コードエントリタブで、式の各引数に対する JExprParamMetadataクラスのインスタンスを作成し、メタデータの値を設定します。 必要に応じて、defineJExpressionメソッドでJExprParamMetadataオブジェクトをイ ンスタンス化できます。 2. defineJExpressionメソッドを使用して、式のJExpressionオブジェクトを取得しま す。 3. 適切なコードエントリタブで、invokeJExpressionメソッドを使用して式を呼び出し ます。 4. isResultNullメソッドを使用して、戻り値の結果をチェックします。 5. getResultDataTypeメソッドまたはgetResultMetadataメソッドを使用して、戻り値の データ型またはメタデータをそれぞれ取得できます。 6. 適切なAPIメソッドを使用して、式の結果を取得します。 getIntメソッド、getDouble メソッド、getStringBufferメソッド、およびgetBytesメソッドを使用できます。 高度なインタフェースに関する作業のルールとガイド ライン 高度なインタフェースを使用するときは、ルールとガイドラインに注意する必要がありま す。 以下のルールおよびガイドラインを使用します。 ¨ パラメータとしてNULL値を渡す場合、または式の結果がNULLの場合、その値はNULLイン ジケータとして処理されます。例えば、式の結果がNULLで戻り値のデータ型がStringの 場合、NULL値の文字列が返されます。式の結果は、isResultNullメソッドを使用して確 認できます。 ¨ Dateデータ型の入力パラメータをStringデータ型に変換すると、式で使用できるように なります。式中の文字列をDateデータ型として使用するには、to_date()関数を使用し て、文字列をDateデータ型に変換します。 Dateデータ型をStringデータ型またはLongデータ型として返す式の結果を取得できま す。 Dateデータ型をStringデータ型として返す式の結果を取得するには、getStringBuffer メソッドを使用します。 Dateデータ型をLongデータ型として返す式の結果を取得する には、getLongメソッドを使用します。 EDataTypeクラス 式で使用されるJavaデータ型を列挙します。式の戻りデータ型を取得、または JExprParamMetadataオブジェクトのパラメータのデータ型を割り当てます。 EDataTypeク ラスをインスタンス化する必要はありません。 高度なインタフェースに関する作業 165 以下の表に、式で値が列挙されるJavaデータ型を示します。 データ型 列挙された値 INT 1 DOUBLE 2 STRING 3 BYTE_ARRAY 4 DATE_AS_LONG 5 以下のJavaコード例は、EDataTypeクラスを使用して、Stringデータ型を JExprParamMetadataオブジェクトに割り当てる方法を示しています。 JExprParamMetadata params[] = new JExprParamMetadata[2]; params[0] = new JExprParamMetadata ( EDataType.STRING, // data type 20, // precision 0 // scale ); ... JExprParamMetadataクラス 式のパラメータを表すオブジェクトをインスタンス化し、パラメータのメタデータを設定 します。 入力パラメータのメタデータを設定するには、JExprParamMetadataオブジェクトの配列を defineJExpressionメソッドへの入力として使用します。 JExprParamMetadataオブジェク トのインスタンスは、[関数]コードエントリタブまたはdefineJExpressionで作成できま す。 以下の構文を使用します。 JExprParamMetadata paramMetadataArray[] = new JExprParamMetadata[numberOfParameters]; paramMetadataArray[0] = new JExprParamMetadata(datatype, precision, scale); ... paramMetadataArray[numberofParameters - 1] = new JExprParamMetadata(datatype, precision, scale);; 次の表に、引数を示します。 166 引数 引数の タイプ 引数のデー タ型 説明 データ型 入力 EDataType パラメータのデータ型。 精度 入力 Integer パラメータの精度。 スケール 入力 Integer パラメータの位取り。 章 16: Java式 たとえば、以下のJavaコードを使用して、2つのJExprParamMetadata オブジェクトの配列 を、Stringデータ型、精度20、位取り20でインスタンス化します。 JExprParamMetadata params[] = new JExprParamMetadata[2]; params[0] = new JExprParamMetadata(EDataType.STRING, 20, 0); params[1] = new JExprParamMetadata(EDataType.STRING, 20, 0); return defineJExpression(":LKP.LKP_addresslookup(X1,X2)",params); defineJExpression 式(式の文字列および入力パラメータを含む)を定義します。 defineJExpressionメソッ ドの引数には、式の構文を定義する入力パラメータと文字列値を含むJExprParamMetadata オブジェクトの配列が含まれています。 以下の構文を使用します。 defineJExpression( String expression, Object[] paramMetadataArray ); 次の表に、これらのパラメータについて説明します。 パラメータ タイプ データ型 説明 式 入力 String 式を表す文字列。 paramMetadataAr ray 入力 オブジェ クト[] 式の入力パラメータを含む JExprParaMetadataオブジェクト の配列。 defineJExpressionメソッドは、[インポート]タブと[関数]タブを除く任意のコードエ ントリタブでJavaコードに追加することができます。 defineJExpressionメソッドを使用するには、式の入力パラメータを表す JExprParamMetadataオブジェクトの配列をインスタンス化する必要があります。 パラメー タのメタデータ値を設定し、その配列をパラメータとしてdefineJExpressionメソッドに渡 します。 例えば、以下のJavaコードでは、2つの文字列の値をルックアップする式を作成します。 JExprParaMetadata params[] = new JExprParamMetadata[2]; params[0] = new JExprParamMetadata(EDataType.STRING, 20, 0); params[1] = new JExprParamMetadata(EDataType.STRING, 20, 0); defineJExpression(":lkp.mylookup(x1,x2)",params); 注: 式に渡す一連のパラメータには、先頭に文字xを付けて番号を示す必要があります。 例えば、3つのパラメータを式に渡す場合は、各パラメータにx1、x2、およびx3という名前 を付けます。 JExpressionクラス 式の作成および呼び出しを実行するメソッド、式の値を返すメソッド、および戻りデータ 型をチェックするメソッドが含まれています。 高度なインタフェースに関する作業 167 以下の表に、JExpressionクラスのメソッドを示します。 メソッド名 説明 invoke 式を呼び出します。 getResultDataType 式の結果のデータ型を返します。 getResultMetadata 式の結果のメタデータを返します。 isResultNull 式の結果の結果値をチェックします。 getInt 式の結果の値をIntegerデータ型で返します。 getDouble 式の結果の値をDoubleデータ型で返します。 getStringBuffer 式の結果の値をStringデータ型で返します。 getBytes 式の結果の値をbyte[]データ型で返します。 高度なインタフェースの例 高度なインタフェースを使用して、Javaトランスフォーメーションのルックアップ式を作 成したり呼び出したりすることができます。 次の例は、式を呼び出す関数を作成する方法、および戻り値を取得するための式を呼び出 す方法を示しています。 この例では、Stringデータ型の2つの入力ポート(NAMEおよび COMPANY)の値をmyLookup関数に渡します。myLookup関数は、ルックアップ式を使用して ADDRESS出力ポートの値をルックアップします。 注: この例では、LKP_addresslookupという名前のマッピング内に未接続のルックアップ トランスフォーメーションが存在すると想定しています。 [ヘルパ]タブで、以下のJavaコードを使用します。 JExprParamMetadata addressLookup() throws SDKException { JExprParamMetadata params[] = new JExprParamMetadata[2]; params[0] = new JExprParamMetadata ( EDataType.STRING, // data type 50, // precision 0 // scale ); params[1] = new JExprParamMetadata ( EDataType.STRING, // data type 50, // precision 0 // scale ); return defineJExpression(":LKP.LKP_addresslookup(X1,X2)",params); } JExpression lookup = null; boolean isJExprObjCreated = false; 式を呼び出してADDRESSポートの値を返すには、[入力時]タブで以下のJavaコードを使用 します。 ... if(!iisJExprObjCreated) { 168 章 16: Java式 lookup = addressLookup(); isJExprObjCreated = true; } lookup = addressLookup(); lookup.invoke(new Object [] {NAME,COMPANY}, ERowType.INSERT); EDataType addressDataType = lookup.getResultDataType(); if(addressDataType == EDataType.STRING) { ADDRESS = (lookup.getStringBuffer()).toString(); } else { logError("Expression result datatype is incorrect."); } ... JExpressionクラスAPIリファレンス JExpressionクラスには、式の作成および呼び出しを行うAPIメソッド、式の値を返すAPIメ ソッド、および戻りデータ型をチェックするAPIメソッドが含まれています。 JExpressionクラスには、以下のAPIメソッドが含まれています。 ¨ getBytes ¨ getDouble ¨ getInt ¨ getLong ¨ getResultDataType ¨ getResultMetadata ¨ getStringBuffer ¨ 呼び出し ¨ isResultNull getBytes 式の結果の値をbyte[]データ型で返します。AES_ENCRYPT関数でデータを暗号化する式の 結果を取得します。 以下の構文を使用します。 objectName.getBytes(); 以下のJavaコードの例では、JExprEncryptDataがJExpressionオブジェクトである場合 に、AES_ENCRYPT関数を使用してバイナリデータを暗号化する式の結果を取得します。 byte[] newBytes = JExprEncryptData.getBytes(); getDouble 式の結果の値をDoubleデータ型で返します。 以下の構文を使用します。 objectName.getDouble(); JExpressionクラスAPIリファレンス 169 以下のJavaコードの例では、JExprSalaryがJExpressionオブジェクトである場合に給与の 値をDoubleデータ型として返す式の結果を取得します。 double salary = JExprSalary.getDouble(); getInt 式の結果の値をIntegerデータ型で返します。 以下の構文を使用します。 objectName.getInt(); たとえば、以下のJavaコードを使用して、findEmpIDがJExpressionオブジェクトである場 合に社員のID番号を整数として返す式の結果を取得します。 int empID = findEmpID.getInt(); getLong 式の結果の値をLongデータ型として返します。Dateデータ型を使用する式の結果を取得し ます。 以下の構文を使用します。 objectName.getLong(); 以下のJavaコード例を使用して、JExprCurrentDateがJExpressionオブジェクトである場 合に日付の値をLongデータ型として返す式の結果を取得します。 long currDate = JExprCurrentDate.getLong(); getResultDataType 式の結果のデータ型を返します。EDataTypeの値を返します。 以下の構文を使用します。 objectName.getResultDataType(); 以下のJavaコードの例では、式を呼び出し、結果のデータ型をdataType変数に割り当てま す。 myObject.invoke(new Object[] { NAME,COMPANY }, ERowType INSERT); EDataType dataType = myObject.getResultDataType(); getResultMetadata 式の結果のメタデータを返します。getResultMetadataを使用して、式の結果の精度、位取 り、およびデータ型を取得し、 式の戻り値のメタデータをJExprParamMetadataオブジェク トに割り当てることができます。 結果のメタデータを取得するには、getScale、 getPrecision、getDataTypeオブジェクトメソッドを使用します。 以下の構文を使用します。 objectName.getResultMetadata(); 170 章 16: Java式 以下のJavaコードの例では、myObjectの戻り値の位取り、精度、およびデータ型を変数に 割り当てます。 JExprParamMetadata myMetadata = myObject.getResultMetadata(); int scale = myMetadata.getScale(); int prec = myMetadata.getPrecision(); int datatype = myMetadata.getDataType(); 注: getDataTypeオブジェクトメソッドは、データ型の整数値をEDataTypeに列挙された とおりに返します。 getStringBuffer 式の結果の値をStringデータ型で返します。 以下の構文を使用します。 objectName.getStringBuffer(); 以下のJavaコード例を使用して、JExprConcatがJExpressionオブジェクトである場合に2 つの連結された文字列を返す式の結果を取得します。 String result = JExprConcat.getStringBuffer(); 呼び出し 式を呼び出します。invokeの引数には、入力パラメータおよび行タイプを定義するオブジ ェクトが含まれています。invokeメソッドを使用する前にJExpressionオブジェクトをイン スタンス化する必要があります。 行タイプには、ERowType.INSERT、ERowType.DELETE、 およびERowType.UPDATEを使用します。 以下の構文を使用します。 objectName.invoke( new Object[] { param1[, ... paramN ]}, rowType ); 引数 データ型 入力/ 説明 アウ トプ ット objectNam e JExpression Input JExpressionのオブジェクト名です。 parameter s なし Input 式の入力値が含まれるオブジェクトの 配列です。 例えば、[関数]コードエントリタブで、address_lookup()という名前の関数を作成した とします。この関数は、式を表すJExpressionオブジェクトを返します。 NAMEおよび COMPANYの入力ポートを使用する式を呼び出すには、以下のコードを使用します。 JExpression myObject = address_lookup(); myObject.invoke(new Object[] { NAME,COMPANY }, ERowType INSERT); JExpressionクラスAPIリファレンス 171 isResultNull 式の結果の値をチェックします。 以下の構文を使用します。 objectName.isResultNull(); 以下のJavaコード例を使用して式を呼び出し、戻り値がNULLではなかった場合に式の戻り 値をADDRESS変数に割り当てます。 JExpression myObject = address_lookup(); myObject.invoke(new Object[] { NAME,COMPANY }, ERowType INSERT); if(!myObject.isResultNull()) { String address = myObject.getStringBuffer(); } 172 章 16: Java式 第 17 章 ジョイナトランスフォーメー ション この章では、以下の項目について説明します。 ¨ ジョイナトランスフォーメーションの概要, 173 ページ ¨ ジョイナトランスフォーメーションの詳細プロパティ, 174 ページ ¨ ジョイナトランスフォーメーションポート, 175 ページ ¨ 結合条件の定義, 176 ページ ¨ 結合タイプ, 177 ページ ¨ ジョイナトランスフォーメーションでのソート済み入力, 179 ページ ¨ 同じソースのデータの結合, 182 ページ ¨ ソースパイプラインのブロック, 184 ページ ¨ ジョイナトランスフォーメーションのパフォーマンスのヒント, 185 ページ ¨ ジョイナトランスフォーメーションのルールとガイドライン, 186 ページ ジョイナトランスフォーメーションの概要 ジョイナトランスフォーメーションを使用すると、異なる場所またはファイルシステムに ある2つの関連する異種ソースからのソースデータを結合できます。また、同じソースから のデータを結合することもできます。ジョイナトランスフォーメーションはアクティブな トランスフォーメーションです。 ジョイナトランスフォーメーションは、一致するカラムが少なくとも1つあるソースを結合 します。ジョイナトランスフォーメーションでは、2つのソース間の1つ以上のカラムのペ アと一致する条件を使用します。 2つの入力パイプラインには、マスタパイプラインと明細パイプライン、またはマスタブラ ンチと明細ブランチがあります。マスタパイプラインはジョイナトランスフォーメーショ ンで終了しますが、明細パイプラインはターゲットまで継続します。 マッピング内の3つ以上のソースを結合するには、ジョイナトランスフォーメーションから の出力を他のソースパイプラインと結合します。 すべてのソースパイプラインを結合する まで、マッピングにジョイナトランスフォーメーションを追加します。 173 ジョイナトランスフォーメーションの詳細プ ロパティ Data Integration Serviceがジョイナトランスフォーメーションのデータを処理する方法 を決定するプロパティを設定します。 [詳細プロパティ]タブで、以下のプロパティを設定します。 ジョイナのデータキャッシュサイズ トランスフォーメーションのデータキャッシュサイズ。デフォルトは[自動]です。 ジョイナのインデックスキャッシュサイズ トランスフォーメーションのインデックスキャッシュサイズ。デフォルトは[自動] です。 キャッシュディレクトリ Data Integration Serviceがインデックスキャッシュファイルとデータキャッシュフ ァイルを作成するローカルディレクトリ。 デフォルトではピリオドが使用されます。 ディレクトリを上書きする場合は、そのディレクトリが存在していて、かつキャッシ ュファイルを格納するための十分なディスク領域があることを確認します。マッピン グされたドライブまたはマウントされたドライブを指定することができます。 大文字小文字を区別した文字列比較 選択した場合、Data Integration Serviceは文字列カラムで結合を実行する際に大文 字と小文字を区別して文字列を比較します。 Null Ordering in Master この種類のトランスフォーメーションでは該当しません。 ソート済み入力 入力データがグループ単位で前もってソートされていることを示します。 ソートされ たデータを結合するには、[ソート済み入力]を選択します。ソート済み入力を使用 するとパフォーマンスを向上させることができます。 Null Ordering in Detail この種類のトランスフォーメーションでは該当しません。 マスタのソート順 マスタソースデータのソート順を指定します。マスタソースデータが昇順である場合 は、昇順を選択します。昇順を選択した場合には、ソート済み入力も有効にします。 デフォルトは[Auto]です。 スコープ Data Integration Serviceが入力データにトランスフォーメーションロジックを適用 する方法を指定します。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 174 章 17: ジョイナトランスフォーメーション デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 ジョイナトランスフォーメーションポート ジョイナトランスフォーメーションにはさまざまなポートタイプがあり、ポートタイプに よってData Integration Serviceが結合を実行する方法が決まります。 ジョイナトランスフォーメーションには、以下のポートタイプがあります。 マスタ マッピング内のマスタソースにリンクするポート。 明細 マッピング内の明細ソースにリンクするポート。 ポートはマスタポートから明細ポートに変更できます。 明細ポートからマスタポートに変 更することもできます。 1つのポートのポートタイプを変更すると、すべてのポートのポ ートタイプが変更されます。 したがって、マスタポートを明細ポートに変更すると、すべ てのマスタポートが明細ポートに、すべての明細ポートがマスタポートに変更されます。 ジョイナトランスフォーメーションポート 175 結合条件の定義 結合条件は、Data Integration Serviceが2つの行を結合するために使用する両方の入力 ソースのポートを含みます。 選択した結合タイプに応じて、Data Integration Serviceは行を結果セットに追加する か、または行を無視します。Joinerトランスフォーメーションは、ジョインタイプ、ジョ イン条件、および入力データのソースに基づいて結果セットを生成します。 ジョイン条件を定義する前に、マスターソースおよび明細ソースが最適なパフォーマンス に設定されていることを確認してください。Integration Serviceは、マッピングの実行中 にマスターソースの各行を明細ソースと比較します。未ソートジョイナトランスフォーメ ーションのパフォーマンスを高めるには、行の比較的少ないソースをマスターソースとし て使用します。ソート済みジョイナトランスフォーメーションのパフォーマンスを高める には、重複キー値の少ないソースをマスターとして使用します。 ジョイン条件では、ジョイナトランスフォーメーションの入力ソースからの1つ以上のポー トを使用します。ポートの数が増えると、2つのソースの結合に要する時間も長くなりま す。条件内でのポートの順番によって、ジョイナトランスフォーメーションのパフォーマ ンスに影響を与える場合があります。結合条件で複数のポートを使用する場合、Data Integration Serviceは指定された順にポートを比較します。 Charデータ型とVarcharデータ型を結合する場合、Data Integration ServiceはChar値に 埋め込まれている空白の数を文字列の一部として数えます。 Char(40) = "abcd" Varchar(40) = "abcd" このChar値には"abcd"と36個の空白が埋め込まれています。Charフィールドは後ろに空白 が含まれているため、Data Integration Serviceはこの2つのフィールドを結合しません。 注: ジョイナトランスフォーメーションは、NULL値の一致は検出しません。例えば、 EMP_ID1とEMP_ID2の両方にNULL値を持つ行が含まれている場合、Data Integration Serviceはこれらを一致とは見なさないため、2つの行の結合は実行されません。 NULL値を 持つ行を結合するには、NULL入力をデフォルト値で置き換えてから、デフォルト値で結合 します。 単純条件タイプまたは詳細条件タイプを定義できます。 単純条件タイプ ソート済みまたは未ソートのジョイナトランスフォーメーションの単純条件タイプを定義 します。 単純条件には、指定されたマスタと明細ソースを比較する1つ以上の条件が含まれます。単 純条件では以下の形式を使用する必要があります。 <master_port> operator <detail_port> ソート済みジョイナトランスフォーメーションの条件では、等号演算子を使用する必要が あります。 未ソートのジョイナトランスフォーメーションの条件では、=、!=、>、>=、<、<=のどれで も使用できます。 176 章 17: ジョイナトランスフォーメーション 例えば、テーブルを含む2つのソース、EMPLOYEE_AGEとEMPLOYEE_POSITIONがあり、どちら にも従業員ID番号が含まれる場合、以下の条件は両方のソースに含まれる従業員の行に一 致します。 EMP_ID1 = EMP_ID2 Developerツールは、単純条件のデータタイプを検証します。条件の両方のポートは、同じ データタイプを持つ必要があります。データタイプが一致しない2つのポートを条件で使用 しなければならない場合、データタイプが一致するように変換します。 詳細条件タイプ 未ソートジョイナトランスフォーメーションの詳細な条件タイプを定義します。 詳細条件には、ブール値または数値を評価するための式を含めることができます。演算子 =、!=、>、>=、<、<=を使用できます。 結合条件に式を入力するには、[結合]タブで詳細条件タイプを選択します。式エディタ を使用して、式、ポート、および演算子を条件に含めます。 例えば、従業員のフルネームで一致させてソースを結合する場合、マスターソースに FirstNameポートとLastNameポートを含めます。明細ソースにはFullNameポートを含めま す。マスターポートを連結し、両方のソースのフルネームを一致させるには、次の条件を 定義します。 CONCAT(FirstName, LastName) = FullName 結合タイプ ジョイナトランスフォーメーションでは、さまざまなタイプのソースから結合を生成する ことができます。 ジョイナトランスフォーメーションは、以下の結合タイプをサポートしています。 ¨ ノーマル ¨ マスタ外部 ¨ 明細外部 ¨ 完全外部 注: ノーマルまたはマスタ外部結合は、完全外部や明細外部結合よりも高速に動作しま す。 どちらのソースのデータも含まないフィールドが結果セットにある場合、ジョイナトラン スフォーメーションは空のフィールドをNULL値で埋めます。あるフィールドがNULLを返す ことが分かっていて、NULLをターゲットに挿入したくない場合は、対応するポートにデフ ォルト値を設定できます。 ノーマル結合 ノーマル結合の場合、Data Integration Serviceは条件に基づいて、一致しないマスタソ ースおよび明細ソースのデータの行をすべて破棄します。 結合タイプ 177 例えば、PARTS_SIZEおよびPARTS_COLORという、自動車部品に関する2つのデータソースが あるとします。 PARTS_SIZEデータソースはマスタソースで、次のデータが格納されています。 PART_ID1 1 2 3 DESCRIPTION Seat Cover Ash Tray Floor Mat SIZE Large Small Medium PARTS_COLORデータソースは明細ソースで、次のデータが格納されています。 PART_ID2 1 3 4 DESCRIPTION Seat Cover Floor Mat Fuzzy Dice COLOR Blue Black Yellow 両方のPART_IDを照合して2つのテーブルを結合するには、次のように条件を設定します。 PART_ID1 = PART_ID2 これらのテーブルに対してノーマル結合を実行すると、結果セットには以下のデータが含 まれます。 PART_ID 1 3 DESCRIPTION Seat Cover Floor Mat SIZE Large Medium COLOR Blue Black 次の例は、相当するSQL文を示しています。 SELECT * FROM PARTS_SIZE, PARTS_COLOR WHERE PARTS_SIZE.PART_ID1 = PARTS_COLOR.PART_ID2 マスタ外部結合 マスタ外部結合は、明細ソースのデータのすべての行およびマスタソースの一致する行を すべて保持します。一致しないマスタソースの行は無視されます。 サンプルのテーブルに対して同じ条件でマスタ外部結合を実行すると、結果セットには以 下のデータが含まれます。 PART_ID 1 3 4 DESCRIPTION Seat Cover Floor Mat Fuzzy Dice SIZE Large Medium NULL COLOR Blue Black Yellow Fuzzy Diceにはサイズが指定されていないため、Data Integration Serviceはフィールド にNULLを入力します。 以下の例は、相当するSQL文を示しています。 SELECT * FROM PARTS_SIZE RIGHT OUTER JOIN PARTS_COLOR ON (PARTS_COLOR.PART_ID2 = PARTS_SIZE.PART_ID1) 明細外部結合 明細外部結合は、マスタソースのデータのすべての行および明細ソースの一致する行をす べて保持します。一致しない明細ソースの行は無視されます。 サンプルのテーブルに対して同じ条件で明細外部結合を実行すると、結果セットには以下 のデータが含まれます。 PART_ID 1 2 178 DESCRIPTION Seat Cover Ash Tray 章 17: ジョイナトランスフォーメーション SIZE Large Small COLOR Blue NULL PART_ID 3 DESCRIPTION Floor Mat SIZE Medium COLOR Black Ash Trayで色が指定されていないため、Data Integration ServiceはフィールドにNULLを 入力します。 以下の例は、相当するSQL文を示しています。 SELECT * FROM PARTS_SIZE LEFT OUTER JOIN PARTS_COLOR ON (PARTS_SIZE.PART_ID1 = PARTS_COLOR.PART_ID2) 完全外部結合 完全外部結合では、マスタソースと明細ソースの両方のデータのすべての行が保持されま す。 サンプルのテーブルに対して同じ条件で完全外部結合を実行すると、結果セットには以下 のデータが含まれます。 PARTED 1 2 3 4 DESCRIPTION Seat Cover Ash Tray Floor Mat Fuzzy Dice SIZE Large Small Medium NULL Color Blue NULL Black Yellow Ash Trayでは色が、Fuzzy Diceではサイズが指定されていないため、Data Integration ServiceはフィールドにNULLを入力します。 以下の例は、相当するSQL文を示しています。 SELECT * FROM PARTS_SIZE FULL OUTER JOIN PARTS_COLOR ON (PARTS_SIZE.PART_ID1 = PARTS_COLOR.PART_ID2) ジョイナトランスフォーメーションでのソー ト済み入力 [ソート済み入力]オプションを使用して、ジョイナトランスフォーメーションのパフォ ーマンスを向上させることができます。 データがソートされているときは、ソート済み入 力を使用します。 ジョイナトランスフォーメーションでソート済みデータを使うように設定すると、Data Integration Serviceはディスクの入出力を最小化してパフォーマンスを向上させます。 大量のデータセットを扱う場合に、パフォーマンスを最大限に向上させることができま す。 ソート済みデータを使用するようにマッピングを設定するには、Data Integration Serviceがジョイナトランスフォーメーションを処理する場合にソート済みデータを使用で きるように、マッピング内でソート順を確立して維持します。 以下の手順を実行して、マ ッピングの設定を行います。 1. 結合するデータのソート順を設定します。 2. ソート済みデータのソート順を維持するトランスフォーメーションを追加します。 3. ソート済みデータを使用するようにジョイナトランスフォーメーションを設定し、ソ ートの基点ポートを使用するように結合条件を設定します。 ソートの基点は、ソート 済みデータのソースを表します。 ジョイナトランスフォーメーションでのソート済み入力 179 ソート順の設定 ソート順は、Data Integration Serviceからソート済みデータがジョイナトランスフォー メーションに確実に渡されるように設定します。 ソート順を設定するには、以下のいずれかの方法を使用します。 ¨ ソート済みフラットファイルを使用する。ソート済みデータがフラットファイルに入っ ている場合は、ソートカラムの順序が各ソースファイル内で一致していることを確認し ます。 ¨ ソート済みリレーショナルデータを使用する。リレーショナルデータオブジェクト内の ソート済みポートを使用して、ソースデータベースのカラムをソートします。 各リレ ーショナルデータオブジェクト内のソート済みポートの順序は同一に設定してくださ い。 ¨ ソータートランスフォーメーションを使用して、リレーショナルデータまたはフラット ファイルデータをソートします。ソータートランスフォーメーションをマスタおよび明 細パイプラインに配置します。各ソータートランスフォーメーションで、同じ順のソー トキーポートおよび同じソート順方向を使用するよう設定します。 未ソートデータまたは正しくソートされていないデータを、ソート済みデータを使用する ように設定されているジョイナトランスフォーメーションに渡すと、マッピングの実行が 失敗します。 Data Integration Serviceは、ログファイルにエラーを記録します。 マッピングへのトランスフォーメーションの追加 ジョイナトランスフォーメーションでソート済みデータのソート順を維持するトランスフ ォーメーションをマッピングに追加します。 ジョイナトランスフォーメーションをソートの基点のすぐ後に置くことで、ソート済みデ ータを維持できます。 ソートの基点とジョイナトランスフォーメーションの間にトランスフォーメーションを追 加する場合は、以下のガイドラインに従って、ソート済みデータを維持します。 ¨ ソートの基点とジョイナトランスフォーメーションの間に、以下のトランスフォーメー ションは配置しないでください。 - ランク - 共有体 - 未ソートアグリゲータ - 前のトランスフォーメーションが1つ含まれるマプレット ¨ 以下のガイドラインに従うのであれば、ソートの基点とジョイナトランスフォーメーシ ョンの間にソート済みアグリゲータトランスフォーメーションを配置することができま す。 - アグリゲータトランスフォーメーションをソート済み入力に合わせて設定します。 - アグリゲータトランスフォーメーション内のカラムのグループのポートは、ソートの 基点でのポートと同じものを使用してください。 - ポートのグループは、ソートの基点でのポートと同じ順序である必要があります。 180 章 17: ジョイナトランスフォーメーション ¨ 別のパイプラインを持つジョイナトランスフォーメーションの結果セットを結合する場 合は、最初のジョイナトランスフォーメーションからの出力されるデータがソート済み であることを確認してください。 結合条件のルールとガイドライン ソート済みジョイナトランスフォーメーションの結合条件を作成する場合、特定のルール とガイドラインが適用されます。 結合条件条件を作成するときには、以下のガイドラインに従ってください。 ¨ 等号演算子を使用する単純な条件タイプを定義する必要があります。 ¨ ソートの基点とジョイナトランスフォーメーションの間でソート済みアグリゲータトラ ンスフォーメーションを使用する場合は、そのソート済みアグリゲータトランスフォー メーションを、結合条件を定義するときのソートの基点として扱います。 ¨ 結合条件で使用するポートは、ソートの基点でのポートと一致している必要がありま す。 ¨ 複数の結合条件を設定する場合、最初の結合条件内のポートは、ソートの基点での最初 のポートと一致している必要があります。 ¨ 複数の条件を設定する場合、条件の順序は、ソートの基点でのポートの順序と一致して いる必要があり、またどのポートもスキップしてはなりません。 ¨ ソートの基点でのソート済みポートの数は、ジョイン条件でのポートの数以上にするこ とができます。 ¨ Decimalデータ型のポートを結合する場合、各ポートの精度は同じ精度範囲に収まって いる必要があります。有効な精度範囲は以下のとおりです。 - Decimal 0~18 - Decimal 19~28 - Decimal 29以上 例えば、条件DecimalA = DecimalBを定義し、DecimalAが精度15でDecimalBが25の場合、こ の条件は有効ではありません。 結合条件とソート順の例 この例では、ソート済みポートを含むマスタパイプラインと明細パイプラインを結合する ジョイナトランスフォーメーションを示します。 以下のソート済みポートを含むマスタパイプラインと明細パイプラインでソータートラン スフォーメーションを設定します。 ¨ ITEM_NO ¨ ITEM_NAME ¨ PRICE 結合条件を設定するときには、以下のガイドラインを使ってソート順を維持します。 ¨ 最初の結合条件でITEM_NOを使用する必要があります。 ¨ 2番目の結合条件を追加する場合は、ITEM_NAMEを使用する必要があります。 ジョイナトランスフォーメーションでのソート済み入力 181 ¨ 結合条件でPRICEを使用したい場合、2番目の結合条件でもITEM_NAMEを使用する必要が あります。 ITEM_NAMEをスキップしてITEM_NOとPRICEを結合すると、ソート順が失われ、Data Integration Serviceはマッピングの実行に失敗します。 ジョイナトランスフォーメーションを使ってマスタパイプラインと明細パイプランを結合 する場合、次の結合条件のうちどれか1つを設定できます。 ITEM_NO = ITEM_NO または ITEM_NO = ITEM_NO1 ITEM_NAME = ITEM_NAME1 または ITEM_NO = ITEM_NO1 ITEM_NAME = ITEM_NAME1 PRICE = PRICE1 同じソースのデータの結合 データの一部に対して計算を実行し、トランスフォーメーションが実行されたデータと元 のデータを結合する場合、同じソースのデータを結合できます。 同じソースのデータを結合する場合は、1つのマッピング内で元のデータを維持しながら元 データの一部にトランスフォーメーションを行うことができます。 次の方法で同じソース のデータを結合できます。 ¨ 同じパイプラインの2つのブランチを結合します。 ¨ 同じソースの2つのインスタンスを結合します。 同じパイプラインの2つのブランチの結合 同じソースのデータを結合するときには、パイプラインの2つのブランチを作成します。 パイプラインをブランチに分岐する場合は、パイプラインの少なくとも片方のブランチ の、マッピング入力とジョイナトランスフォーメーションの間にトランスフォーメーショ ンを追加する必要があります。 ソート済みデータを結合し、ジョイナトランスフォーメー ションをソート済み入力用に設定する必要があります。 たとえば、以下のポートを含むソースがあるとします。 ¨ Employee ¨ Department ¨ Total Sales 182 章 17: ジョイナトランスフォーメーション ターゲットに、所属する部署の平均売上を超える売上を実現した従業員を表示するとしま す。そのためには、以下のトランスフォーメーションを含むマッピングを作成します。 ¨ ソータートランスフォーメーション。データをソートします。 ¨ ソート済みアグリゲータトランスフォーメーション。 売上データの平均を算出し、部 署ごとにグループ化します。この集計を実行すると、個々の従業員のデータは失われま す。従業員データを維持するには、パイプラインのブランチをアグリゲータトランスフ ォーメーションに渡し、同じデータのブランチをジョイナトランスフォーメーションに 渡して元のデータを維持する必要があります。パイプラインの両方のブランチを結合す ると、集計済みデータと元のデータを結合することになります。 ¨ ソート済みジョイナトランスフォーメーション。 集計されたソート済みデータを元の データと結合します。 ¨ フィルタトランスフォーメーション。平均売上データと各従業員の売上データを比較 し、平均売上に達していない従業員をフィルタで除外します。 ジョイナトランスフォーメーションが一方のブランチのデータを受け取るのが、もう一方 のブランチより大きく遅れる場合、2つのブランチの結合によってパフォーマンスが低下す ることがあります。 ジョイナトランスフォーメーションは、最初のブランチのすべてのデ ータをキャッシュに格納し、キャッシュがいっぱいになるとキャッシュをディスクに書き 込みます。 次にジョイナトランスフォーメーションが2番目のブランチからデータを受け 取るときに、ディスクからデータを読み込む必要があります。 同じソースの2つのインスタンスの結合 ソースの2つ目のインスタンスを作成することによって、同じソースのデータを結合できま す。 2つ目のソースインスタンスを作成すると、2つのソースインスタンスからのパイプライン を結合できます。未ソートデータを結合する場合は、同じソースのインスタンスを2つ作成 して、パイプラインを結合する必要があります。 同じソースの2つのインスタンスを結合すると、Data Integration Serviceは各ソースイ ンスタンスのソースデータを読み込みます。 パフォーマンスはパイプラインの2つのブラ ンチを結合する場合よりも低下します。 同じソースのデータ結合のガイドライン パイプラインのブランチを結合するか、ソースの2つのインスタンスを結合するかの判断に は、特定のガイドラインが適用されます。 パイプラインのブランチを結合するか、ソースの2つのインスタンスを結合するかを判断す るときは、以下のガイドラインに従ってください。 ¨ ソースが大きい場合、あるいはソースデータを1回しか読み込まない場合は、パイプラ インの2つのブランチを結合します。 ¨ ソート済みデータを使う場合は、パイプラインの2つのブランチを結合します。ソース データが未ソートデータで、ソータートランスフォーメーションを使ってデータをソー トする場合には、データのソート後にパイプラインをブランチに分岐します。 ¨ ソースとジョイナトランスフォーメーションの間のパイプラインにブロッキングトラン スフォーメーションを追加する必要がある場合は、ソースの2つのインスタンスを結合 します。 同じソースのデータの結合 183 ¨ 一方のパイプラインの処理がもう一方のパイプラインよりも遅い場合は、ソースの2つ のインスタンスを結合します。 ¨ 未ソートのデータを結合する必要がある場合、ソースの2つのインスタンスを結合しま す。 ソースパイプラインのブロック ジョイナトランスフォーメーションを含むマッピングを実行すると、Data Integration Serviceはマッピングの設定とジョイナトランスフォーメーションがソート済み入力用に設 定されているかどうかによって、ソースデータのブロックとブロック解除を行います。 未ソートジョイナトランスフォーメーション Data Integration Serviceは未ソートジョイナトランスフォーメーションを処理すると き、明細行を読み込む前にマスタ行をすべて読み込みます。 Data Integration Service は、マスタソースの行をキャッシュに格納する間、明細ソースをブロックします。 Data Integration Serviceがマスタ行をすべて読み込んでキャッシュに格納した後、明細 ソースのブロックを解除して明細行を読み込みます。 未ソートジョイナトランスフォーメ ーションを含むマッピングは、データフロー検証に違反する場合があります。 ソート済みジョイナトランスフォーメーション Data Integration Serviceは、ソート済みのジョイナトランスフォーメーションを処理す るとき、マッピングの設定に基づいてデータをブロックします。 ジョイナトランスフォー メーションへのマスタおよび明細入力が異なるソースから生じている場合、ブロックロジ ックが可能になります。 ターゲットロード順グループのすべてのソースを同時にブロックせずにジョイナトランス フォーメーションを処理できる場合、Data Integration Serviceはブロックロジックを使 用してジョイナトランスフォーメーションを処理します。 それ以外の場合、ブロックロジ ックは使用しません。その代わりに、より多くの行をキャッシュに格納します。 ブロックロジックを使用してジョイナトランスフォーメーションを処理できる場合、Data Integration Serviceがキャッシュに格納する行は少なくなり、パフォーマンスが向上しま す。 マスタ行のキャッシュ Data Integration Serviceは、ジョイナトランスフォーメーションを処理する場合、両方 のソースから同時に行を読み込み、マスタ行に基づいてインデックスキャッシュおよびデ ータキャッシュを作成します。 Data Integration Serviceは次に、明細ソースデータとキャッシュデータに基づいて結合 を実行します。 Data Integration Serviceがキャッシュに格納する行数は、ソースデー タ、およびジョイナトランスフォーメーションがソート済み入力用に設定されているかど うかによって異なります。 184 章 17: ジョイナトランスフォーメーション 未ソートジョイナトランスフォーメーションのパフォーマンスを向上させるには、行の比 較的少ないソースをマスタソースとして使用します。 ソート済みジョイナトランスフォー メーションのパフォーマンスを向上させるには、重複キー値の少ないソースをマスタとし て使用します。 ジョイナトランスフォーメーションのパフォ ーマンスのヒント ジョイナトランスフォーメーションのパフォーマンスを向上させるためのヒントを紹介し ます。 ジョイナトランスフォーメーションでは、中間結果を格納するための追加領域を実行時に 必要とするため、パフォーマンスが低下することがあります。ジョイナトランスフォーメ ーションを最適化する必要があるかどうかを判断するには、ジョイナパフォーマンスカウ ンタの情報を表示します。以下のヒントを使用して、ジョイナトランスフォーメーション のパフォーマンスを向上させることができます。 重複キー値が少ない方のソースをマスタとして指定します。 Data Integration Serviceは、ソート済みジョイナトランスフォーメーションを処理 するときに、一度に100個の一意なキーの行をキャッシュに格納します。 マスタソー スに同じキー値を持つ多数の行が含まれる場合、Data Integration Serviceはより多 くの行をキャッシュに格納する必要があり、それによってパフォーマンスが低下する ことがあります。 行数が少ない方のソースをマスタとして指定します。 ジョイナトランスフォーメーションは詳細ソースの各行をマスタソースと比較しま す。 マスタ内の行が少なければ、結合のための比較が繰り返される回数も少なくな り、その結果、結合プロセスが高速になります。 可能な場合は、データベース内で結合を実行します。 データベース内で結合を実行すると、マッピングの実行中に実行する場合よりも処理 が高速になります。 パフォーマンスは、使用するデータベース結合の種類によっても 変わってきます。ノーマル結合は、外部結合よりも高速で、結果的にレコード数が少 なくて済みます。場合によっては、例えば2つの異なるデータベースまたはフラットフ ァイルシステムとテーブルを結合する場合は、これが不可能なこともあります。 可能な場合は、ソート済みデータを結合します。 ソート済み入力を使用するようにジョイナトランスフォーメーションを設定してくだ さい。 Data Integration Serviceは、ディスクの入出力を最小化することによって パフォーマンスを向上させます。 大量のデータセットを扱う場合に、パフォーマンス を最大限に向上させることができます。 未ソートジョイナトランスフォーメーション の場合、行の比較的少ないソースをマスタソースとして指定します。 ジョイナトランスフォーメーションのパフォーマンスのヒント 185 ジョイナトランスフォーメーションのルール とガイドライン ジョイナトランスフォーメーションを使用するときは、特定のルールとガイドラインが適 用されます。 ジョイナトランスフォーメーションは、ほとんどのトランスフォーメーションからの入力 を受け付けます。 ただし、いずれかの入力パイプラインにアップデートストラテジトラン スフォーメーションが含まれている場合、ジョイナトランスフォーメーションは使用でき ません。 186 章 17: ジョイナトランスフォーメーション 第 18 章 キージェネレータトランスフ ォーメーション この章では、以下の項目について説明します。 ¨ キージェネレータトランスフォーメーションの概要, 187 ページ ¨ Soundexストラテジ, 188 ページ ¨ 文字列ストラテジ, 189 ページ ¨ NYSIISストラテジ, 189 ページ ¨ キージェネレータの出力ポート, 190 ページ ¨ グループ化ストラテジの設定, 190 ページ ¨ キー作成のプロパティ, 191 ページ キージェネレータトランスフォーメーション の概要 キージェネレータトランスフォーメーションは、選択されたカラムのデータ値に基づいて レコードをグループに整理するアクティブなトランスフォーメーションです。 このトラン スフォーメーションを使用して、一致トランスフォーメーションに渡す前にレコードをソ ートします。 キージェネレータトランスフォーメーションでは、選択されたカラムのグループキーの作 成にグループ化ストラテジが使用されます。 ストラテジとしては、文字列、Soundex、お よびNYSIISがあります。 選択されたフィールドの値が同じレコードには、同じグループキ ーが割り当てられます。 一致トランスフォーメーションは、グループキー値が同じレコー ドをまとめて処理します。 その結果、一致トランスフォーメーション内の重複分析がスピ ードアップします。 一致トランスフォーメーションが実行する必要のある比較処理の数は、データセット内の レコード数に応じて急激に増加します。 この急激な増加により、大量のコンピューティン グリソースが消費される可能性があります。 キージェネレータトランスフォーメーション は、グループキーを作成することによって、一致トランスフォーメーションがより小さい グループでレコードを比較できるようにし、その結果、処理時間が短縮されます。 187 フィールド一致を実行する場合は、グループキー生成のカラムに、一致ニーズに対して有 用なグループを提供する可能性の高いカラムを選択します。 たとえば、姓のカラムは、名 のカラムよりも有用なグループキーデータを提供する可能性があります。 ただし、一致ト ランスフォーメーションの重複分析では、姓カラムを使用しないでください。 キージェネレータトランスフォーメーションでは、各レコードに一意のIDを作成すること もできます。 一致トランスフォーメーションに渡す各レコードには、一意のIDが含まれて いる必要があります。 データにIDが存在しない場合は、キージェネレータトランスフォー メーションを使用して作成します。 Soundexストラテジ Soundexストラテジは、単語を分析し、単語の発音を表すコードからグループキーを作成し ます。 Soundexコードは単語の1文字目で始まり、後に続く子音を表す一連の数字が続きます。 Soundexストラテジを使用して、音が似た単語に同じコードを割り当てます。 ストラテジ が返す英数字の数を定義するには、Soundex深度を設定します。 このストラテジは、単語のスペルではなく音に焦点を当て、代替のスペルやスペルの小さ な差異をグループ化することができます。 例えば、 SmythとSmithのSoundexコードは同じで す。 Soundexストラテジは、発音の間違った単語をグループ化することもできます。 例えば、 名前EdmontonとEdmonsonのSoundexコードは同じです。 Soundexストラテジのプロパティ キージェネレータトランスフォーメーションでグループキーの作成に使用されるSoundex設 定を決定するには、Soundexストラテジのプロパティを設定します。 以下の表に、Soundexストラテジのプロパティを示します。 プロパティ 説明 Soundex深度 Soundexストラテジによって返される英数字の数を決定します。 デフォルトの深度は3です。 この深度では、文字列の最初の文字 と次の2つの子音を表す2つの数字で構成されるSoundexコードが 作成されます。 関連項目: ¨ 「文字列ストラテジのプロパティ」 ¨ 「キー作成のプロパティ」 (191ページの) ¨ 「 グループ化ストラテジの設定」 188 (189ページの) (190ページの) 章 18: キージェネレータトランスフォーメーション 文字列ストラテジ 文字列ストラテジは、入力データのサブ文字列からグループキーを作成します。 入力カラム内のサブ文字列の長さと場所を指定できます。 例えば、入力文字列の最初の4 文字からキーを作成するようにこのストラテジを設定することができます。 文字列ストラテジのプロパティ キージェネレータトランスフォーメーションでグループキーの作成に使用されるサブ文字 列を決定するには、文字列ストラテジのプロパティを設定します。 以下の表に、文字列ストラテジのプロパティを示します。 プロパテ ィ 説明 左から開 始 左から右に入力フィールドを読み取るようにトランスフォーメーシ ョンを設定します。 右から開 始 右から左に入力フィールドを読み取るようにトランスフォーメーシ ョンを設定します。 開始位置 スキップする文字数を指定します。 例えば、[開始位置]に3と入 力した場合、サブ文字列は入力フィールドの指定された側から4文 字目から始まります。 長さ グループキーとして使用する文字列の長さを指定します。 入力フ ィールドすべてを使用するには、0と入力します。 関連項目: ¨ 「Soundexストラテジのプロパティ」 ¨ 「キー作成のプロパティ」 (188ページの) (191ページの) ¨ 「 グループ化ストラテジの設定」 (190ページの) NYSIISストラテジ NYSIISストラテジは、単語を分析し、単語の発音を表す文字からグループキーを作成しま す。 Soundexストラテジが文字列の最初の母音のみを考慮するのに対し、NYSIISストラテジは文 字列全体の母音を分析します。 NYSIISストラテジは、すべての文字を6つの文字のいずれ かに変換し、ほとんどの母音を文字 Aに変換します。 文字列ストラテジ 189 キージェネレータの出力ポート キージェネレータトランスフォーメーションの出力ポートは、一致トランスフォーメーシ ョンがレコードの処理に使用するIDとグループキーを作成します。 以下の表に、キージェネレータトランスフォーメーションの出力ポートを示します。 プロパティ 説明 SequenceID ソースデータセット内の各レコードを特定するIDを作成します。 GroupKey 一致トランスフォーメーションでレコードの処理に使用されるグ ループキーを作成します。 グループ化ストラテジの設定 グループ化ストラテジを設定するには、[ストラテジ]ビューでプロパティを編集しま す。 キージェネレータストラテジを設定する前に、キージェネレータトランスフォーメーショ ンに入力ポートを追加します。 1. [ストラテジ]ビューを選択します。 2. [新規]ボタンをクリックします。 3. グループ化ストラテジを選択します。 4. [OK]をクリックします。 5. [入力]カラムで、入力ポートを選択します。 6. プロパティフィールドで選択矢印をクリックして、ストラテジのプロパティを設定し ます。 7. キー作成のプロパティを設定します。 関連項目: ¨ 「Soundexストラテジのプロパティ」 ¨ 「文字列ストラテジのプロパティ」 ¨ 「キー作成のプロパティ」 190 (188ページの) (189ページの) (191ページの) 章 18: キージェネレータトランスフォーメーション キー作成のプロパティ 分析するデータに適したキー作成プロパティを設定します。 以下の表にキー作成プロパティを示します。 プロパティ 説明 ソート結果 [GroupKey]フィールドを使用して、キージェネレータトラ ンスフォーメーションの出力をソートします。 フィールド一 致操作では、このオプションを選択するか、一致トランスフ ォーメーションにソート済みデータを提供していることを確 認する必要があります。 このオプションはID一致操作では選 択しないでください。 シーケンスキ ーを自動的に 生成 入力データの順序を使用してシーケンスキーフィールドを生 成します。 フィールドを シーケンスキ ーとして使用 指定されたカラムに対してシーケンスフィールドを生成しま す。 シーケンスキ ーフィールド シーケンスキーフィールドの名前を指定します。 関連項目: ¨ 「Soundexストラテジのプロパティ」 ¨ 「文字列ストラテジのプロパティ」 ¨ 「 グループ化ストラテジの設定」 (188ページの) (189ページの) (190ページの) キー作成のプロパティ 191 第 19 章 ラベラトランスフォーメーシ ョン この章では、以下の項目について説明します。 ¨ ラベラトランスフォーメーションの概要, 192 ページ ¨ ラベラトランスフォーメーションのストラテジ, 193 ページ ¨ ラベラトランスフォーメーションのポート, 193 ページ ¨ 文字ラベル適用操作, 194 ページ ¨ トークンラベル適用操作, 195 ページ ¨ ラベル適用ストラテジの設定, 198 ページ ラベラトランスフォーメーションの概要 ラベラトランスフォーメーションは、入力フィールドを調べ、各フィールドの文字または 文字列のタイプを示すラベルを作成するパッシブトランスフォーメーションです。 ラベラトランスフォーメーションを使用して、以下のタイプのラベル処理を実行できま す。 文字ラベル適用 入力データで識別された各文字のラベルを作成します。 例えば、ラベラトランスフォ ーメーションで郵便番号10028に"nnnnn"("n"は数字)というラベルを適用できま す。 トークンラベル適用 入力データで識別された各トークンのラベルを作成します。 トークンとは、意味を成 す論理的な単位です。 例えば、文字列"John J. Smith"にトークン"Word Init Word"を使用してラベルを適用するようにラベラトランスフォーメーションを設定でき ます。 ラベル適用操作を実行するには、参照テーブルまたはコンテンツ式を選択します。 コンテ ンツ式とは、ラベラトランスフォーメーションやパーサートランスフォーメーションでデ ータを識別するために使用できる式です。 192 ラベラトランスフォーメーションでは、以下のタイプのコンテンツ式を使用できます。 ¨ 文字セット ¨ トークンセット コンテンツ式は、システム定義のものとユーザー定義のものがあります。 ユーザー定義の コンテンツ式は、再利用可能にすることも再利用不可にすることもできます。 ラベラトランスフォーメーションのストラテ ジ 入力データにラベルを割り当てるには、ラベル適用ストラテジを使用します。 ラベル適用ストラテジを作成するときは、操作を1つ以上追加し、 操作ごとに特定のラベ ル適用タスクを実装します。 ラベラトランスフォーメーションには、ストラテジを作成するためのウィザードが用意さ れています。 ラベル適用ストラテジを作成するときは、文字ラベル適用またはトークンラ ベル適用のいずれかのモードを選択します。 その後、そのラベル適用モードに固有の操作 を追加します。 重要: 操作やストラテジの順序は変更が可能です。 各操作で前の操作の結果を読み取る ため、ストラテジ内の操作の順序によってストラテジの出力が変わることがあります。 ラベラトランスフォーメーションのポート ラベラトランスフォーメーションには、入力ポートとラベル適用後の出力ポートがありま す。 さらに、トークンラベル適用モードのラベラトランスフォーメーションには、トーク ン化されたデータの出力も含まれます。 ラベラトランスフォーメーションでは、以下のポートタイプを使用します。 入力ポート アップストリームオブジェクトから文字列の入力を受け取ります。 ラベル適用後の出力ポート トランスフォーメーションのストラテジで定義されたラベルを出力します。 トークン化されたデータの出力ポート 出力の各ラベルに対応する入力文字列を渡します。 このトークンポートは、パーサー トランスフォーメーションをパターンベースの解析モードで実行する場合に入力とし て必要になります。 ラベラトランスフォーメーションのストラテジ 193 文字ラベル適用操作 文字ラベル適用操作は、データの文字パターンを示すラベルを作成する場合に使用しま す。 文字ラベル適用ストラテジには、以下のタイプの操作を追加できます。 文字セットを使用して文字にラベルを適用する 定義済みの文字セット(数字や英文字など)を使用して文字にラベルを適用します。 Unicode文字セットとUnicode以外の文字セットを選択できます。 参照テーブルを使用して文字にラベルを適用する 参照テーブルにあるカスタムラベルを使用して文字にラベルを適用します。 文字セット 文字セットには、特定の文字および文字範囲を識別する式が含まれます。 文字セットは、 ラベラトランスフォーメーション、およびトークン解析モードを使用するパーサートラン スフォーメーションで使用できます。 文字範囲は、連続する文字コードの範囲を指定します。 例えば、文字範囲"[A-C]"は大文 字の"A"、"B"、および"C"に一致します。この文字範囲は、小文字の"a"、"b"、また は"c"には一致しません。 文字セットを使用すると、トークン解析操作やラベル適用操作の一部として特定の文字ま たは文字範囲を識別できます。 例えば、電話番号が格納されたカラムのすべての数字にラ ベルを適用することができます。 数字にラベルを適用した後、パーサートランスフォーメ ーションでパターンを識別し、問題のあるパターンを別の出力に書き込むことができま す。 文字ラベル適用のプロパティ 文字ラベル適用操作のプロパティは、ラベラトランスフォーメーションの[ストラテジ] ビューで設定します。 以下のタイプの文字ラベル適用操作を設定できます。 文字セットラベル適用操作 文字セットのプロパティを設定するには、[文字セットを使用して文字にラベルを適 用する]を選択します。 以下のプロパティを確認して編集します。 ¨ 文字セットの選択。 文字列へのラベルの適用に使用する文字セットを指定しま す。 ¨ ラベル。 文字セットに一致する入力文字列の置換テキストを指定します。 文字セ ットを有効にすると、[ラベル]カラムの選択矢印をクリックしてカスタムの置換 テキストを入力することができます。 ¨ 貼り付け元。 コンテンツセットに格納されている文字セットのコピーを作成でき ます。 元の文字セットに対する変更は、ラベラトランスフォーメーションに格納 したコピーには反映されません。 194 章 19: ラベラトランスフォーメーション ¨ 文字セットの追加。 カスタムの文字セットを定義できます。 ¨ 実行順序の指定。 トークンセットをデータに適用する順序を設定します。 上下の 矢印を使用して順序を変更できます。 参照テーブルラベル適用操作 参照テーブルラベル適用の以下のプロパティを設定するには、[参照テーブルを使用 して文字にラベルを適用する]を選択します。 ¨ 参照テーブル。 文字へのラベルの適用に使用する参照テーブルを指定します。 ¨ ラベル。 参照テーブルのエントリに一致する入力文字の置換テキストを指定しま す。 ¨ ストラテジ内の他のラベルをオーバーライド。 このラベル適用操作で他のラベル 適用操作をオーバーライドするかどうかを指定します。 操作を設定するときは、[テキストを無視する]ビューを選択して、文字セット操作およ び参照テーブルラベル適用操作の例外を指定できます。 以下のプロパティを確認して編集 します。 検索用語 ラベル適用を実行する前にフィルタする文字列を指定します。 この機能を使用して、 定義したラベル適用ストラテジに対する例外を指定できます。 大文字小文字の区別 フィルタする文字列を[無視するテキスト]の文字列と照合するときに大文字と小文 字を区別するかどうかを指定します。 大文字 フィルタした文字列を大文字に変換します。 開始 フィルタする文字列の検索を開始する文字の位置を指定します。 終了 フィルタする文字列の検索を終了する文字の位置を指定します。 トークンラベル適用操作 トークンラベル適用操作は、データの文字列を示すラベルを作成する場合に使用します。 ラベラトランスフォーメーションでは、入力文字列に含まれる複数のトークンを識別して ラベルを適用することができます。 例えば、米国の電話番号と電子メールアドレスのトー クンセットを使用するようにラベラトランスフォーメーションを設定できます。 このラベ ラトランスフォーメーションで入力文字列"555-555-1212 [email protected]"を処理 すると、出力文字列は"USPHONE EMAIL"になります。 ラベル適用ストラテジに追加できるトークンラベル適用操作のタイプを次に示します。 トークンラベル適用操作 195 参照テーブルのラベル 参照テーブルのエントリに一致する文字列にラベルを適用します。 トークンセットのラベルトークン トークンセットを使用して文字列パターンにラベルを適用します。 トークンセット トークンセットには、特定のトークンを識別する式が含まれます。 トークンセットは、ト ークンラベル適用モードを使用するラベラトランスフォーメーションで使用できます。 トークンセットを使用すると、トークンラベル適用操作の一部として特定のトークンを識 別できます。 例えば、トークンセットを使用して、"AccountName@DomainName"という形 式のすべての電子メールアドレスにラベルを適用できます。 トークンにラベルを適用した ら、パーサートランスフォーメーションを使用して、指定した出力ポートに電子メールア ドレスを書き込むことができます。 Developerツールには、さまざまなパターンを識別するために使用できるシステム定義のト ークンセットが用意されています。 システム定義のトークンセットの例をいくつか示しま す。 ¨ 単語 ¨ 数字 ¨ 電話番号 ¨ 電子メールアドレス ¨ 郵便番号 ¨ 国の識別番号(社会保障番号など) ¨ クレジットカード番号 正規表現 ラベル適用操作において、正規表現とは、入力データに含まれる特定の文字列の識別に使 用できる式を指します。 正規表現は、トークンラベル適用モードを使用するラベラトラン スフォーメーションで使用できます。 ラベラトランスフォーメーションでは、正規表現を使用して入力パターンを一致させ、1つ のラベルを作成します。 正規表現の出力が複数になる場合、複数のラベルは生成されませ ん。 トークンラベル適用のプロパティ トークンラベル適用のストラテジや操作のプロパティを設定するには、ラベラトランスフ ォーメーションの[ストラテジ]ビューを選択します。 トークンラベル適用ストラテジについては、以下のプロパティを設定できます。 反転有効 入力データを右から左の順に処理します。 196 章 19: ラベラトランスフォーメーション 区切り文字 入力データ内のサブ文字列を評価するときに使用する文字を指定します。 以下のタイプのトークンラベル適用操作を設定できます。 参照テーブルラベル適用操作 参照テーブルラベル適用の以下のオプションを設定するには、[参照テーブルのラベ ル]を選択します。 ¨ 参照テーブル。 トークンへのラベルの適用に使用する参照テーブルを指定しま す。 ¨ ラベル。 参照テーブルのエントリに一致する入力文字列の置換テキストを指定し ます。 ¨ 大文字小文字の区別。 入力文字列を参照テーブルのエントリと照合するときに大 文字と小文字を区別するかどうかを指定します。 ¨ 有効な値で一致を置換。 ラベルが適用された文字列を参照テーブルの[有効]カ ラムのエントリに置き換えます。 ¨ 優先順位の設定。 参照テーブルラベル適用をラベル適用操作で優先するかどうか を指定します。 ¨ モード。 トークンラベル適用の方法を指定します。 参照テーブルのエントリに一 致する入力文字列にラベルを適用する場合は、 [含める]を選択します。 参照テー ブルのエントリに一致する入力文字列にラベルを適用しない場合は、 [占有]を選択 します。 トークンセットラベル適用操作 トークンセットのプロパティを設定するには、[トークンセットのラベルトークン] を選択します。 以下のプロパティを確認して編集します。 ¨ トークンセットの選択。 文字列へのラベルの適用に使用するトークンセットを指 定します。 ¨ ラベル。 トークンセットに一致する入力文字列の置換テキストを指定します。 ト ークンセットを有効にすると、[ラベル]カラムの選択矢印をクリックしてカスタ ムの置換テキストを入力することができます。 ¨ 貼り付け元。 コンテンツセットに格納されているトークンセットのコピーを作成 できます。 元のトークンセットに対する変更は、ラベラトランスフォーメーショ ンに格納したコピーには反映されません。 ¨ トークンセットの追加。 カスタムのトークンセットを定義できます。 ¨ 正規表現の追加。 入力パターンに一致する正規表現を定義して1つのラベルを作成 できます。 ¨ 実行順序の指定。 トークンセットをデータに適用する順序を設定します。 上下の 矢印を使用して順序を変更できます。 操作を設定するときは、[カスタムラベル]ビューを選択して、特定の検索語句に対する ラベルを作成できます。 以下のプロパティを確認して編集します。 検索用語 検索する文字列を指定します。 トークンラベル適用操作 197 大文字小文字の区別 検索語句と照合するときに大文字と小文字を区別するかどうかを指定します。 カスタムラベル 適用するカスタムラベルを指定します。 ラベル適用ストラテジの設定 ラベル適用ストラテジを設定するには、ラベラトランスフォーメーションの[ストラテ ジ]ビューで設定を編集します。 1. [ストラテジ]ビューを選択します。 2. [新規]をクリックしてストラテジを作成します。 新しいストラテジウィザードが開きます。 3. [入力]フィールドと[出力]フィールドをクリックして、ストラテジのポートを選 択します。 4. ラベル適用モードを選択します。 トークンラベル適用モードを選択した場合は、トー クンラベル適用ストラテジのプロパティを設定します。 [次へ]をクリックします。 5. 操作を選択し、[次へ]をクリックします。 6. 操作のプロパティを設定し、[次へ]をクリックします。 7. その他のオプションを設定します。 ¨ 文字ラベル適用モードを選択した場合は、[テキストを無視する]のプロパティを 必要に応じて設定します。 ¨ トークンラベル適用モードを選択した場合は、[カスタムラベル]のプロパティを 必要に応じて設定します。 198 8. 必要に応じて、[次へ]をクリックして、その他の操作をストラテジに追加します。 9. [完了]をクリックしてストラテジを保存します。 10. 必要に応じて、ストラテジや操作を処理する順序を変更します。 [ストラテジ]ビュ ーで、ストラテジまたは操作を選択し、[上に移動]または[下に移動]をクリック します。 11. 必要に応じて、その他のストラテジをトランスフォーメーションに追加します。 章 19: ラベラトランスフォーメーション 第 20 章 ルックアップトランスフォー メーション ルックアップトランスフォーメーションの概 要 ルックアップトランスフォーメーションは、フラットファイル、リレーショナルテーブ ル、または論理データオブジェクト内のデータをルックアップするパッシブまたはアクテ ィブなトランスフォーメーションです。 ルックアップトランスフォーメーションは、ルッ クアップから1行または複数の行を返すことができます。 ルックアップトランスフォーメーションを作成するときは、フラットファイル、リレーシ ョナルテーブル、またはDeveloperツールの論理データオブジェクトからルックアップソー スファイルをインポートします。 Developerツールは、データオブジェクトのカラムをト ランスフォーメーションのルックアップポートとして追加します。 トランスフォーメーシ ョンの作成後、ルックアップの結果を返すように1つ以上の出力ポートを設定します。 ル ックアップ条件を設定し、他のルックアッププロパティを設定します。 マッピングを実行、またはデータをプレビューすると、Data Integration Serviceはルッ クアップソースに対してクエリを実行します。 Data Integration Serviceは、トランス フォーメーションのルックアップポート、ルックアッププロパティ、およびルックアップ 条件に基づいて、ルックアップソースに対してクエリを実行します。 ルックアップトラン スフォーメーションは、ルックアップの結果をターゲットまたは別のトランスフォーメー ションに返します。 接続されたまたは接続されていないルックアップトランスフォーメーションを設定できま す。 接続されたトランスフォーメーションは、マッピング内の別のトランスフォーメーシ ョンに接続されています。 接続されていないトランスフォーメーションは、別のトランス フォーメーションの:LKP式から入力を受け取ります。 ルックアップトランスフォーメーシ ョンで論理データオブジェクトに対してルックアップを実行する場合は、接続されたルッ クアップトランスフォーメーションを設定する必要があります。 ルックアップトランスフ ォーメーションの入力ポートをアップストリームトランスフォーメーションまたはアップ ストリームソースに接続します。 出力ポートをダウンストリームトランスフォーメーショ ンまたはダウンストリームターゲットに接続します。 199 1つのマッピングで複数のルックアップトランスフォーメーションを使用できます。 ルックアップトランスフォーメーションでは、以下のタスクを実行できます。 ¨ 関連する値を取得する。入力データの値に基づいてルックアップソースから値を取得し ます。. 例えば、入力データに従業員IDが含まれているとします。 ルックアップ sソ ースから従業員IDによって従業員名を取得します。 ¨ ルックアップソースから複数の行を取得する。 ¨ 計算を行う。ルックアップテーブルから値を取得し、その値を計算に使用します。 例 えば、消費税率を取得し、税額を計算してターゲットに返します。 ¨ 式を受け付けるトランスフォーメーションの:LKP式を使用して、接続されていないルッ クアップを実行する。 トランスフォーメーションの別の式を使用して結果をフィルタ します。 接続されたルックアップと接続されていない ルックアップ 接続されたまたは接続されていないルックアップトランスフォーメーションを設定できま す。 接続されたルックアップトランスフォーメーションは、マッピング内の他のトランス フォーメーションに接続する入出力ポートのあるトランスフォーメーションです。 接続さ れていないルックアップトランスフォーメーションは、マッピングに含まれますが、他の トランスフォーメーションに接続されていません。 接続されていないルックアップトランスフォーメーションは、トランスフォーメーション (式トランスフォーメーションやアグリゲータトランスフォーメーションなど)の:LKP式 の結果から入力を受け取ります。 :LKP式は、ルックアップトランスフォーメーションにパ ラメータを渡し、ルックアップから結果を受け取ります。 :LKP式は、ルックアップの結果 をトランスフォーメーションの別の式に渡して、結果をフィルタすることができます。 以下の表に、接続されたルックアップとコネクトされていないルックアップの違いを示し ます。 200 接続されたルックアップ 接続されていないルックアップ 入力値をマッピングから直接受け 取ります。 入力値を別のトランスフォーメーション の:LKP式の結果から受け取ります。 キャッシュには、ルックアップ条 件のルックアップソースカラムお よび出力ポートとなるルックアッ プソースカラムが含まれていま す。 キャッシュには、ルックアップ条件のル ックアップポートと出力ポート、および 戻りポートが含まれています。 同じ行の複数のカラムを返しま す。 複数の行を返すことができま す。 戻りポートを介して1行から1つのカラム を返します。 章 20: ルックアップトランスフォーメーション 接続されたルックアップ 接続されていないルックアップ ルックアップ条件に一致するもの がない場合、Data Integration Serviceはすべての出力ポートにデ フォルト値を返します。 ルックアップ条件に一致するものがない 場合、Data Integration ServiceはNULL を返します。 ルックアップ条件に一致するもの がある場合、Data Integration Serviceはすべてのルックアップ/ 出力ポートにルックアップ条件の 結果を返します。 ルックアップ条件に一致するものがある 場合、Data Integration Serviceは戻り ポートを介してルックアップ条件の結果 を返します。 ルックアップトランスフォーメー ションは、複数の出力値を別のト ランスフォーメーションに渡すこ とができます。 ルックアップポー トを別のトランスフォーメーショ ンにリンクします。 ルックアップは、1つの出力値を別のトラ ンスフォーメーションに返します。 ルッ クアップトランスフォーメーションの戻 りポートは、他のトランスフォーメーシ ョンの:LKP式が含まれるポートに値を渡 します。 ユーザ定義デフォルト値をサポー トします。 ユーザ定義デフォルト値をサポートしま せん。 接続されたルックアップ 接続されたルックアップトランスフォーメーションは、マッピング内のソースまたはター ゲットに接続しているルックアップトランスフォーメーションです。 接続されたルックアップトランスフォーメーションが含まれるマッピングを実行すると、 Data Integration Serviceは以下の手順を実行します。 1. 別のトランスフォーメーションからルックアップトランスフォーメーションの入力ポ ートに値を渡します。 2. 各入力行に対して、トランスフォーメーションのルックアップポートおよびルックア ップ条件に基づいてルックアップソースまたはキャッシュに対してクエリを実行しま す。 3. トランスフォーメーションがキャッシュされていない場合、またはトランスフォーメ ーションに静的キャッシュがある場合、ルックアップクエリから値を返します。 4. クエリからデータを返し、マッピング内の次のトランスフォーメーションに渡しま す。 接続されていないルックアップ 接続されていないルックアップトランスフォーメーションは、マッピング内のソースまた はターゲットに接続していないルックアップトランスフォーメーションです。 式を使用で きるトランスフォーメーションの:LKP式を使用して、ルックアップを呼び出します。 ルックアップ式の構文は、 :LKP lookup_transformation_name(argument, argument, ...)のようになり ます。 接続されたルックアップと接続されていないルックアップ 201 各引数を記述する順序は、ルックアップトランスフォーメーションのルックアップ条件の 順序と一致しなければなりません。 ルックアップトランスフォーメーションは、ルックア ップトランスフォーメーションの戻りポートを介して、クエリの結果を返します。 ルック アップを呼び出すトランスフォーメーションは、:LKP式が含まれるポートにルックアップ の結果値を受け取ります。 ルックアップクエリが値を返せなかった場合、ポートはNULL値 を受け取ります。 接続されていないルックアップを実行するときは、マッピング内で同じルックアップを複 数回実行できます。 ルックアップの結果を別の式でテストし、その結果に基づいて行をフ ィルタすることができます。 接続されていないルックアップトランスフォーメーションが含まれるマッピングを実行す ると、Data Integration Serviceは以下の手順を実行します。 1. :LKP式からルックアップトランスフォーメーションにルックアップパラメータを渡し ます。 式は式トランスフォーメーションやアグリゲータトランスフォーメーションな どの別のトランスフォーメーションに含まれています。 2. ルックアップトランスフォーメーションのルックアップポートおよびルックアップ条 件に基づき、ルックアップソースまたはキャッシュに対してクエリを実行します。 3. ルックアップトランスフォーメーションの戻りポートを介して値を返します。 4. 他のトランスフォーメーションの:LKP式に戻り値を渡します。 :LKP式が含まれるポー トが結果を受け取ります。 ルックアップトランスフォーメーションの開 発 ルックアップトランスフォーメーションを開発するときは、ルックアップソースのタイプ やルックアップ条件などの要素について考慮する必要があります。 ルックアップトランスフォーメーションを開発するときは、以下の項目について考慮して ください。 ¨ フラットファイル、, リレーショナルデータオブジェクト、または論理データオブジェ クトのいずれからトランスフォーメーションを作成するか. ルックアップトランスフォ ーメーションを作成する前に、ルックアップソースを作成します。 フラットファイル またはリレーショナルデータベーステーブルを物理データオブジェクトとしてインポー トします。 または、ルックアップソースとして使用する論理データオブジェクトを作 成します。 ¨ トランスフォーメーションの出力ポート。 ¨ トランスフォーメーションのルックアップ条件。 ¨ Data Integration Serviceでルックアップデータをキャッシュするかどうか。 Data Integration Serviceは、フラットファイルまたはリレーショナルデータオブジェクト のデータをキャッシュに格納できます。 ルックアップトランスフォーメーションを作成する前に、ルックアップソースを作成しま す。 フラットファイルまたはリレーショナルデータベーステーブルを物理データオブジェ クトとしてインポートします。 または、ルックアップソースとして使用する論理データオ ブジェクトを作成します。 202 章 20: ルックアップトランスフォーメーション ルックアップ条件 Data Integration Serviceは、ルックアップ条件でルックアップソースのデータを検索し ます。 ルックアップ条件は、SQLクエリのWHERE句に似ています。Lookupトランスフォーメーショ ンでルックアップ条件を設定すると、ソースデータの1つ以上のカラムの値がルックアップ ソースまたはキャッシュの値と比較されます。 たとえば、ソースデータにemployee_numberが含まれているとします。ルックアップソース テーブルには、employee_ID、first_name、およびlast_nameが含まれています。以下のル ックアップ条件を設定します。 employee_ID = employee_number Data Integration Serviceは、employee_numberごとにルックアップソースの employee_ID、last_name、およびfirst_nameカラムを返します。 Data Integration Serviceは、ルックアップソースから複数の行を返すことができます。 以下のルックアップ条件を設定します。 employee_ID > employee_number Data Integration Serviceは、employee_ID番号がソースの従業員番号よりも大きい行を すべて返します。 ルックアップトランスフォーメーションの条件のルー ルとガイドライン ルックアップトランスフォーメーションの条件の入力時には、特定のルールとガイドライ ンが適用されます。 ルックアップトランスフォーメーションの条件の入力について、以下のルールとガイドラ インを使用してください。 ¨ ルックアップ条件に含めるカラムのデータ型は一致する必要があります。 ¨ すべてのルックアップトランスフォーメーションにルックアップ条件を入力します。 ¨ ルックアップ条件のルックアップポートごとに入力ポートを1つ使用します。同じ入力 ポートをトランスフォーメーションの複数の条件で使用します。 ¨ 複数の条件を入力した場合、Data Integration Serviceはそれぞれの条件をORではなく ANDとして評価します。 Data Integration Serviceは、設定したすべての条件に一致 する行を返します。 ¨ 複数の条件を含める場合は、ルックアップのパフォーマンスを高めるために以下の順序 で条件を入力します。 - 等しい(=) - より小さい (<)、より大きい(>)、より小さいまたは等しい (<=)、より大きいまたは 等しい (>=) - 等しくない(!=) ¨ ルックアップ条件を作成する場合、以下の演算子を使用します。 - =, >, <, >=, <=, != ルックアップ条件 203 ¨ ルックアップが値を返すためには、入力値がすべての条件を満たす必要があります。 ¨ Data Integration ServiceはNULL値を一致させます。 例えば、入力ルックアップ条件 カラムがNULLの場合、Data Integration ServiceはNULLがルックアップのNULLと等し いとみなします。 ¨ ルックアップ条件のカラムのデータ型がDecimalの場合、各カラムの精度は同じ精度範 囲のものにする必要があります。有効な精度範囲は以下のとおりです。 - Decimal 0~18 - Decimal 19~28 - Decimal 29以上 例えば、条件DecimalA = DecimalBを定義し、DecimalAが精度15でDecimalBが25の場合、こ の条件は有効ではありません。 ルックアップキャッシュ ルックアップソースをキャッシュに格納するようにルックアップトランスフォーメーショ ンを設定できます。Data Integration Serviceは、キャッシュを使用するルックアップト ランスフォーメーションのデータの最初の行を処理するときにメモリにキャッシュを構築 します。マッピングが完了すると、永続キャッシュを使用するようにルックアップトラン スフォーメーションを設定していない限り、Data Integration Serviceはキャッシュメモ リを解放し、キャッシュファイルを削除します。 ルックアップキャッシュはパフォーマンスを向上させます。Data Integration Service は、各入力行に対してルックアップソースを照会する代わりにルックアップキャッシュを 照会します。ソーステーブルが大きい場合は、ルックアップソースをキャッシュに格納す ることによってパフォーマンスが最適化されます。 Data Integration Serviceは、ルックアップトランスフォーメーションのランタイムプロ パティで設定した量に基づいて、キャッシュにメモリを割り当てます。キャッシュがメモ リに対して大きすぎる場合、Data Integration Serviceはキャッシュファイルを作成しま す。デフォルトでは、Data Integration Serviceはキャッシュファイルを$PMCacheDirに 格納します。Data Integration Serviceはインデックスキャッシュに条件値を格納し、デ ータキャッシュに出力値を格納します。 ソート済み入力用にフラットファイルルックアップを設定する場合、条件カラムがグルー プ化されていなければData Integration Serviceはルックアップをキャッシュできませ ん。 カラムがグループ化されていてソートされていない場合、Data Integration Service はソート済み入力が設定されていない場合と同様にルックアップを処理します。 Data Integration Serviceがキャッシュを使用しないルックアップを処理する場合、キャ ッシュではなくるルックアップソースを照会します。 204 章 20: ルックアップトランスフォーメーション 共有キャッシュ デフォルトでは、Data Integration Serviceは、マッピング内に互換性のあるキャッシュ 構造体を持つルックアップトランスフォーメーションのキャッシュを共有します。 同じデータまたはデータのサブセットを使ってディスクキャッシュを作成するルックアッ プトランスフォーメーションであれば、複数のルックアップトランスフォーメーションが ディスクキャッシュを共有できます。たとえば、マッピング内に、同じ再利用可能なルッ クアップトランスフォーメーションの2つのインスタンスを設定し、両方のインスタンスに 同じ出力ポートを使用した場合、この2つのルックアップトランスフォーメーションはルッ クアップキャッシュを共有します。トランスフォーメーションプロパティまたはキャッシ ュ構造体により共有が許可されない場合、Data Integration Serviceでキャッシュは共有 されません。ルックアップキーが異なるか、ルックアップトランスフォーメーションに複 数の異なる一致条件がある場合、Data Integration Serviceでキャッシュは共有されませ ん。 永続キャッシュ セッションとセッションの間にルックアップソースが変更されない場合は、永続ルックア ップキャッシュを使用するようにルックアップトランスフォーメーションを設定できま す。Data Integration Serviceは、ルックアップソースの読み取りに必要な時間を予測し ながら、マッピングの実行間にキャッシュファイルを保存および再利用します。 ルックアップトランスフォーメーションでキャッシュを有効にした場合、Data Integration Serviceではデフォルトで非永続キャッシュが使用されます。 Data Integration Serviceは、マッピングの実行の最後にキャッシュファイルを削除します。 次にマッピングを実行したときに、Data Integration Serviceはデータベースからメモリ キャッシュを作成します。 Data Integration Serviceは、永続ルックアップキャッシュを使用して最初にセッション を実行するときに、キャッシュファイルを削除せずにディスクに保存します。次にData Integration Serviceがセッションを実行したときは、メモリキャッシュをキャッシュファ イルから作成します。ルックアップテーブルが変化することがある場合は、ルックアップ プロパティを上書きして、データベースからルックアップを再キャッシュすることができ ます。 キャッシュファイルを保存して再使用する場合、永続キャッシュを使用するようにルック アップトランスフォーメーションを設定できます。永続キャッシュを設定するには、ルッ クアップトランスフォーメーションの[詳細]ビューで[ルックアップキャッシュの永続 性]プロパティを設定します。 フラットファイルまたはリレーショナルルッ クアップの ランタイムプロパティ Data Integration Serviceがルックアップデータをキャッシュするかどうかを決定するに は、ランタイムプロパティを設定します。 フラットファイルまたはリレーショナルルックアップの ランタイムプロパティ 205 以下の表に、フラットファイルまたはリレーショナルルックアップを実行する ルックアッ プトランスフォーメーションのランタイムプロパティを示します。: プロパティ 説明 ルックアップキャッシュが有効 Data Integration Serviceがルックア ップ値をキャッシュするかどうかを指 定します。 ルックアップキャッシュを有効にする と、Data Integration Serviceはルッ クアップソースに対してクエリを一度 実行し、値をキャッシュし、キャッシ ュ内の値をルックアップします。 ル ックアップ値をキャッシュに格納する と、パフォーマンスを高めることがで きます。 キャッシュを無効にすると、行がトラ ンスフォーメーションを通過するたび に、Data Integration Serviceはルッ クアップソースにSelect文を発行して ルックアップ値を求めます。 フラットファイルルックアップは常に キャッシュされます。 ルックアップデータキャッシュのサイ ズ Data Integration Serviceがメモリ内 のデータキャッシュに割り当てるメモ リサイズの最大値。 デフォルトは [自動]です。 ルックアップインデックスキャッシュ のサイズ Data Integration Serviceがメモリ内 のインデックスに割り当てるメモリサ イズの最大値。 デフォルトは[自 動]です。 ルックアップキャッシュの事前作成 Data Integration Serviceで、ルック アップトランスフォーメーションがデ ータを受け取る前に、ルックアップキ ャッシュを作成できるようにします。 Data Integration Serviceは、複数の ルックアップキャッシュファイルを同 時に作成してパフォーマンスを高める ことができます。 以下のいずれかのオプションを設定し ます。 - 自動。Data Integration Serviceで 値が決定されます。 - 常に許可。 Data Integration Serviceで、ルックアップトランス フォーメーションがデータを受け取 る前に、ルックアップキャッシュを 作成できるようにします。 Data Integration Serviceは、複数のル ックアップキャッシュファイルを同 206 章 20: ルックアップトランスフォーメーション プロパティ 説明 時に作成してパフォーマンスを高め ることができます。 - 常に不許可。Data Integration Serviceは、ルックアップトランス フォーメーションが最初の行を受け 取る前に、ルックアップキャッシュ を作成できません。 ルックアップキャッシュディレクトリ 名 ルックアップソースをキャッシュする ようにルックアップトランスフォーメ ーションが設定されている場合に、ル ックアップキャッシュファイルを作成 するために使用されるディレクトリ。 接続 リレーショナルルックアップトランス フォーメーションに適用されます。 ルックアップのソースです。 フラットファイルルックアップトランスフォ ーメーションの詳細プロパティ 永続ルックアップキャッシュや日時フォーマットなど、リレーショナルルックアップトラ ンスフォーメーションの詳細プロパティを設定します。 以下の表に、リレーショナルルックアップトランスフォーメーションの詳細プロパティを 示します。 プロパティ 説明 ルックアップキャッシュの永続性 Data Integration Serviceが、2つ以 上のキャッシュファイルを含む永続ル ックアップキャッシュを使用するかど うかを示します。 ルックアップトラ ンスフォーメーションが永続ルックア ップキャッシュを使用するように設定 されていて、永続ルックアップキャッ シュが存在しない場合、Data Integration Serviceはファイルを作 成します。 大文字小文字を区別した文字列比較 Data Integration Serviceは、文字列 のカラムに対してルックアップを実行 する場合、大文字と小文字を区別した 比較を使用します。 フラットファイルルックアップトランスフォーメーションの詳細プロパティ 207 プロパティ 説明 NULLの順序付け Data Integration ServiceによるNULL 値の順序付けの方法を決定します。 NULL値を昇順にソートの上位に配置す るか(高)下位に配置するか(低)を 選択できます。デフォルトでは、Data Integration ServiceはNULL値を上位 にソートします。 このプロパティ は、比較演算子内のNULL値の扱いを 高、低、またはNULLとするData Integration Serviceの設定をオーバ ーライドします。 リレーショナルル ックアップの場合、NULL値の順序付け はデータベースのデフォルト値によっ て異なります。 トレースレベル ログに表示する詳細の程度を設定しま す。 カスタムSQLクエリ デフォルトのSQLクエリをオーバーラ イドします。 ソースフィルタ Data Integration Serviceがクエリを 実行する行数を削減します。 日時フォーマット 日時フォーマットおよびフィールド幅 を定義します。 ミリ秒、マイクロ 秒、ナノ秒のフォーマットのフィール ド幅は、29になります。ポートの日時 フォーマットを選択しない場合は、任 意の日時フォーマットを入力できま す。 デフォルトはMM/DD/YYYY HH24:MI:SS です。日時フォーマットを設定して も、ポートのサイズは変わりません。 1000ごとの区切り 値は[なし]です。 小数点記号 値はピリオドです。 リレーショナルルックアップトランスフォー メーションの詳細プロパティ 詳細プロパティで、永続ルックアップキャッシュとpre-SQLコマンドを設定します。 208 章 20: ルックアップトランスフォーメーション 以下の表に、リレーショナルルックアップトランスフォーメーションの詳細プロパティを 示します。 プロパティ 説明 ルックアップキャッシュの永続性 Data Integration Serviceが、2つ以 上のキャッシュファイルを含む永続ル ックアップキャッシュを使用するかど うかを示します。 ルックアップトラ ンスフォーメーションが永続ルックア ップキャッシュを使用するように設定 されていて、永続ルックアップキャッ シュが存在しない場合、Data Integration Serviceはファイルを作 成します。 大文字小文字を区別した文字列比較 Data Integration Serviceは、文字列 のカラムに対してルックアップを実行 する場合、大文字と小文字を区別した 比較を使用します。 大文字と小文字 を区別した比較は、データベースでサ ポートされているかどうかによって異 なります。 NULLの順序付け Data Integration ServiceによるNULL 値の順序付けの方法を決定します。 NULL値を昇順にソートの上位に配置す るか(高)下位に配置するか(低)を 選択できます。デフォルトでは、Data Integration ServiceはNULL値を上位 にソートします。 このプロパティ は、比較演算子内のNULL値の扱いを 高、低、またはNULLとするData Integration Serviceの設定をオーバ ーライドします。 リレーショナルル ックアップの場合、NULL値の順序付け はデータベースのデフォルト値によっ て異なります。 トレースレベル ログに含める詳細の程度を設定しま す。 カスタムSQLクエリ デフォルトのSQLクエリをオーバーラ イドします。 ソースフィルタ Data Integration Serviceがクエリを 実行する行数を削減します。 Pre SQL Data Integration Serviceがソースか ら読み込む前にソースデータベースに 対して実行されるSQLコマンド。 Post SQL Data Integration Serviceがターゲッ トに書き込んだ後にソースデータベー スに対して実行されるSQLコマンド。 リレーショナルルックアップトランスフォーメーションの詳細プロパティ 209 論理データオブジェクトのルックアップトラ ンスフォーメーションの詳細プロパティ 論理データオブジェクトのルックアップトランスフォーメーションの詳細プロパティを設 定します。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 再利用可能なルックアップトランスフォーメ ーションの作成 フラットファイル、リレーショナルテーブル、または論理データオブジェクト内のデータ をルックアップするルックアップトランスフォーメーションを作成します。 1. 2. 210 [Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。 [ファイル] > [新規] > [トランスフォーメーション]をクリックします。 章 20: ルックアップトランスフォーメーション 3. ルックアップウィザードに移動します。 4. [フラットファイルルックアップ], [論理データオブジェクトルックアップ]、 ま たは[リレーショナルルックアップ]を選択します。 5. [次へ]をクリックします。 [新しいルックアップ]ダイアログボックスが表示されます。 6. Developerツール内の物理データオブジェクトを選択します。 7. トランスフォーメーションの名前を入力します。 8. [複数の一致の検出時]で、ルックアップトランスフォーメーションがルックアップ 条件に一致する行を複数見つけたときにどの行を返すのかを設定します。 9. [完了]をクリックします。 ルックアップトランスフォーメーションがエディタに表示されます。 10. [概要]ビューの[ポート]セクションで、トランスフォーメーションに出力ポート を追加します。 11. [ルックアップ]ビューで、1つ以上のルックアップ条件を追加します。 12. [詳細]ビューで、ルックアップの詳細プロパティを設定します。 ルックアップトランスフォーメーションをマッピングに追加する場合、[ランタイム]ビ ューでルックアップのランタイムプロパティを設定することもできます。 再利用不可能なルックアップトランスフォー メーションの作成 マッピングまたはマプレットで再利用不可能なルックアップトランスフォーメーションを 作成します。 1. マッピングまたはマプレットで、トランスフォーメーションパレットからエディタに ルックアップトランスフォーメーションをドラッグします。 [新しいルックアップ]ダイアログボックスが表示されます。 2. [フラットファイルルックアップ]、[論理データオブジェクトルックアップ]、ま たは [リレーショナルルックアップ]を選択します。 3. [次へ]をクリックします。 [新しいルックアップ]ダイアログボックスが表示されます。 4. 物理データオブジェクトを選択します。 5. トランスフォーメーションの名前を入力します。 6. [複数の一致の検出時]で、ルックアップトランスフォーメーションがルックアップ 条件に一致する行を複数見つけたときにどの行を返すのかを設定します。 7. [完了]をクリックします。 ルックアップトランスフォーメーションがエディタに表示されます。 8. [ポート]ビューで、トランスフォーメーションに出力ポートを追加します。 再利用不可能なルックアップトランスフォーメーションの作成 211 9. [ランタイム]ビューで、ランタイムプロパティを設定します。 10. [ルックアップ]ビューで、1つ以上のルックアップ条件を追加します。 11. [詳細]ビューで、ルックアップの詳細プロパティを設定します。 接続されていないルックアップトランスレー ションの作成 式からルックアップを実行するときは、接続されていないルックアップトランスフォーメ ーションを作成します。 再利用可能または再利用不可能な接続されていないルックアップ トランスフォーメーションを作成できます。 接続されていないルックアップトランスフォーメーションを作成する前に、ルックアップ ソースを作成します。 フラットファイルまたはリレーショナルデータベーステーブルを物 理データオブジェクトとしてインポートします。 1. 2. [Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。 [ファイル] > [新規] > [トランスフォーメーション]をクリックします。 3. ルックアップウィザードに移動します。 4. [フラットファイルルックアップ]または[リレーショナルルックアップ]を選択し ます。 5. [次へ]をクリックします。 [新しいルックアップ]ダイアログボックスが表示されます。 6. Developerツール内の物理データオブジェクトを選択します。 7. トランスフォーメーションの名前を入力します。 8. [複数の一致の検出時]で、ルックアップトランスフォーメーションがルックアップ 条件に一致する行を複数見つけたときにどの行を返すのかを設定します。 接続されて いないルックアップでは、[すべてを返す]は選択しないでください。 9. [完了]をクリックします。 ルックアップトランスフォーメーションがエディタに表示されます。 10. [概要]ビューの[ポート]セクションで、トランスフォーメーションに出力ポート を追加します。 :LKP式の各引数について入力ポートを作成します。作成する各ルックアップ条件につ いて入力ポートを作成します。 1つの入力ポートを複数の条件で使用できます。 11. [概要]ビューの[ポート]セクションで、1つのポートを戻りポートとして設定しま す。 12. [ルックアップ]ビューで、1つ以上のルックアップ条件を追加して、トランスフォー メーションの入力値をルックアップソースまたはキャッシュの値と比較します。 条件がTrueの場合、ルックアップは戻りポートの値を返します。 ルックアップ条件が Falseの場合、ルックアップはNULLを返します。 212 章 20: ルックアップトランスフォーメーション 13. アグリゲータトランスフォーメーション、式トランスフォーメーション、アップデー トストラテジトランスフォーメーションなど、式を使用できるトランスフォーメーシ ョンのポートに対して:LKP式を作成します。 14. マッピングを作成するときは、接続されていないルックアップトランスフォーメーシ ョンをエディタ内のマッピングに追加しますが、ポートをマッピング内の他のトラン スフォーメーションに接続しないでください。 接続されていないルックアップの例 カリフォルニアの小売店が、州内の顧客に販売する商品の各価格に州の消費税を追加しま す。 税額は、顧客が居住する郡によって異なります。 消費税を取得するために、郡名を 受け取ってその郡の消費税額を返すルックアップトランスフォーメーションを作成しま す。 その郡が消費税を課さない場合、ルックアップトランスフォーメーションはNULLを返 します。 ルックアップは式トランスフォーメーションから呼び出します。 郡別の消費税の接続されていないルックアップトランスフォーメーションを設定するに は、以下の手順に従ってください。 1. 郡別の消費税額を含む、フラットファイルの物理データオブジェクトをインポートし ます。 2. 接続されていないルックアップトランスレーションを作成します。 3. ルックアップトランスフォーメーションに入力ポートを追加します。 4. 戻りポートを定義します。 5. ルックアップ条件を作成します。 6. ルックアップは式トランスフォーメーションから呼び出します。 手順1. 消費税ルックアップソースのモデルリポジトリへのインポート ルックアップトランスフォーメーションを作成する前に、消費税ファイルがモデルリポジ トリに含まれている必要があります。 このシナリオでは、消費税ファイルには Sales_CountyとCounty_SalesTaxの2つのフィールドが含まれています。 Sales_Countyは 郡名を含む文字列です。 County_SalesTaxは、その郡の税率を含むdecimalフィールドで す。 消費税率ファイルがルックアップソースです。 手順2. 接続されていないルックアップトランスレーションの作成 消費税フラットファイルのデータオブジェクトが含まれる、再利用可能なフラットファイ ルルックアップトランスフォーメーションを作成します。 このシナリオでは、トランスフ ォーメーション名はSales_Tax_Lookupです。 [複数一致]で[最初の行を返す]を選択し ます。 接続されていないルックアップの例 213 手順3. ルックアップトランスフォーメーションのポートの定義 [概要]タブの[ポート]ビューで、ルックアップトランスフォーメーションのポートを 定義します。 ポートタイプ 入力 出力 名前 In_County SalesTax タイプ String Decimal 長さ 25 3 スケール 3 手順4. ルックアップトランスフォーメーションの戻りポートの設定 戻りポートは、ルックアップが取得するフラットファイル内のフィールドです。 [カラ ム]ビューのCounty_SalesTaxカラムが戻りポートです。 ルックアップがTrueの場合、Data Integration Serviceはフラットファイルソースで郡を 検索します。 Data Integration Serviceは、戻りポートに消費税の値を返します。 郡が 見つからない場合、ルックアップの結果はFalseとなり、戻りポートにNULLが返されます。 手順5. ルックアップ条件の定義 [ルックアップ]ビューで、ルックアップ条件を定義して、入力値をルックアップソース の値と比較します。 ルックアップ条件を追加するには、[ルックアップカラム]をクリックします。 ルックアップ条件の構文は次のとおりです。 SALES_COUNTY = IN_COUNTY 手順6. 式トランスフォーメーションの作成 フラットファイルから販売レコードを受け取る式トランスフォーメーションを作成しま す。 式トランスフォーメーションは、顧客番号、販売額、および販売した郡を受け取りま す。 式トランスフォーメーションは、顧客番号、販売額、および消費税を返します。 式トランスフォーメーションは、以下のポートを備えています。 ポートタイプ 入力 パススルー パススルー 出力 名前 County Customer SalesAmt SalesTax タイプ String String Decimal Decimal 長さ 25 10 10 10 精度 10 2 2 デフォルト値 0 SalesTaxポートには:LKP式が含まれています。 式は、Sales_Tax_Lookupトランスフォー メーションを呼び出し、郡名をパラメータとして渡します。 Sales_Tax_Lookupトランスフ ォーメーションは、消費税率を式に返します。 式トランスフォーメーションは、税率に販 売額を掛けます。 SalesTaxポートに以下の式を入力します。 (:LKP.Sales_Tax_Lookup(County) * SalesAmt) SalesTaxポートには式の結果が含まれています。 ルックアップが失敗すると、ルックアッ プトランスフォーメーションはNULLを返し、SalesTaxポートにはNULL値が含まれます。 SalesTaxポートにNULL値が含まれるかどうかを確認する式を追加できます。 SalesTaxが NULLの場合はゼロを返すように、SalesTaxポートを設定できます。 NULL値が含まれるかど うかを確認してゼロを返すには、以下のルックアップ式を追加します。 214 章 20: ルックアップトランスフォーメーション IIF(ISNULL(:LKP.Sales_Tax_Lookup(County) * SalesAmt),0, SalesTax) 接続されていないルックアップの例 215 第 21 章 一致トランスフォーメーショ ン この章では、以下の項目について説明します。 ¨ 一致トランスフォーメーションの概要, 216 ページ ¨ 重複分析の実行 , 217 ページ ¨ 一致トランスフォーメーションのプロセス, 218 ページ ¨ 一致トランスフォーメーションのコンポーネント, 219 ページ ¨ フィールド一致, 221 ページ ¨ ID一致, 226 ページ ¨ 一致マプレット, 231 ページ ¨ 一致操作の設定, 232 ページ 一致トランスフォーメーションの概要 一致トランスフォーメーションは、入力レコード間の類似度を計算し、これらの計算の出 力データを生成するアクティブなトランスフォーメーションです。 レコード間の類似性の処理は、重複分析と呼ばれます。 一致トランスフォーメーションを 使用して、以下のタイプの重複分析を設定します。 フィールド一致 2つ以上のレコード内の類似データまたは重複データを検索します。 ID一致 複数のレコードで共有されるIDを検索します。 以下のタイプのデータプロジェクトでは、重複分析が必要な場合があります。 CRMプロジェクト 例えば、ある店舗が顧客に郵便物を発送する計画があり、重複する顧客レコードがな いか顧客データベースを確認する必要があるとき。 216 合併または買収 例えば、ある銀行が地域内の別の銀行を買収し、2つの銀行に共通の顧客がいるとき。 規制の準拠 例えば、すべてのデータシステムに重複レコードがないことを要求する、政府や業界 の規制下で事業が運営されているとき。 注: ID一致操作は、さまざまなタイプのIDを定義した、ポピュレーションと呼ばれる参照 データファイルを読み取ります。 これらのファイルは、Informaticaアプリケーションと 一緒にインストールされません。 ポピュレーションデータファイルをダウンロードし、 Data Qualityコンテンツインストーラを使用してインストールする必要があります。 使用 しているシステムで利用可能なポピュレーションについては、Informatica管理者にお問い 合わせください。 重複分析の実行 重複分析処理の複雑さは、データセットのサイズと構造、およびプロジェクトの目的によ って異なります。 個別のフィールドとIDのどちらを選択するかどうかによっても異なりま す。 一致トランスフォーメーションを単独で使用するプロセス、またはいくつかのトランスフ ォーメーションを使用するプロセスを定義できます。 プロセスのすべての側面に対応する ために、1つ以上のマプレットまたはマッピングを作成できます。 一致トランスフォーメーションに一致マプレットを埋め込むこともできます。 一致マプレ ットでは、一致トランスフォーメーションの代わりに比較トランスフォーメーションおよ び加重平均トランスフォーメーションを使用します。 一致トランスフォーメーションにマ プレットを埋め込む前に、そのマプレットを検証する必要があります。 プロセスには、以下の作業の一部またはすべてを含める必要があります。 ¨ データセットをレコードのグループに整理します。 これにより、大きなデータセット の処理時間が短縮されます。 これらのグループを定義するには、キージェネレータトランスフォーメーションを使用 します。 キージェネレータでは、グループごとにグループのキー値が作成されます。 データにシーケンスIDが存在しない場合は、キージェネレータトランスフォーメーショ ンを使用して作成します。 ¨ 比較するカラムを選択し、そのカラムに1つ以上の重複分析ストラテジを割り当てま す。 これは、一致トランスフォーメーションまたは比較トランスフォーメーションで 行うことができます。 各一致操作のトランスフォーメーションを含む一致ルールを作 成する場合は、比較トランスフォーメーションを使用します。 1つのトランスフォーメ ーションの一致操作を定義するには、一致トランスフォーメーションを使用します。 フィールド一致では、各ペアを個別に選択します。 ID一致では、選択したID一致スト ラテジによって、使用可能なフィールドのペアが定義されます。 ¨ 一致しきい値を設定し、一致ストラテジの結果の一致スコアを計算します。 これは、 一致トランスフォーメーションまたは加重平均トランスフォーメーションで行うことが 重複分析の実行 217 できます。 一致マプレットを作成する場合は、加重平均トランスフォーメーションを 使用します。 ¨ 一致分析結果表示方法を選択します。 [照合出力]ビューで[クラスタ]、[一致ペ ア]、または[最良の一致]を選択します。 一致トランスフォーメーションのプロセス 一致プロセスを定義し、それを入力データに適用するには、実行する一致操作のタイプの 選択、一致ストラテジの設定、分析するデータカラムの選択、および出力の定義を行いま す。 一致プロセスを定義するときは、以下の点について考慮してください。 ¨ レコードは、1つのデータセット内、または2つのデータセットにわたって分析できま す。 一致トランスフォーメーションは、各入力カラムのコピーを2つ作成することでこ の処理を可能にします。 1つのデータセット内の重複を検索するには、カラムの複製さ れたコピーを選択します。 2つのデータセットにわたって重複を検索するには、各デー タセットから一意のカラムを選択します。 一致トランスフォーメーションでは複数の ペアを照合することができます。 ¨ 一致トランスフォーメーションには、さまざまな方法で値を比較する比較ストラテジの セットが含まれます。 比較するフィールドとそのフィールドに適用するストラテジの タイプを選択します。 ¨ 一致ストラテジは、1つのカラム内のすべての値を別のカラム内のすべての値と比較 し、それぞれの値のペア間の類似度を0~1の数値で算出します。 これが一致スコアで す。 スコアは小数値で、スコア1は値が完全に一致することを示します。 注: 一致トランスフォーメーションには、ストラテジの定義に使用するウィザードが用 意されています。 ¨ 定義したすべての一致ストラテジが一致スコアを生成します。つまり、一致トランスフ ォーメーションでは、1つのレコードの値に関連する複数のスコアを生成できます。 一 致トランスフォーメーションは異なるレコード間の類似度を示す平均一致スコアを計算 し、これによって最も類似しているレコードを特定できます。 ¨ 一致トランスフォーメーションが一致スコアを計算する方法を変更するには、各カラム ペアからの出力に数値の加重を適用します。 例えば、重複する姓は重複する名よりも 関連性が高いと判断し、それに従って一致スコアを増減することができます。 ¨ 一致スコアの一致しきい値を設定するには、一致トランスフォーメーションを使用しま す。 一致しきい値は、2つのレコードを重複候補と判断するために必要な最小類似度で す。 218 章 21: 一致トランスフォーメーション 一致トランスフォーメーションのコンポーネ ント 一致トランスフォーメーションのコンポーネントにはビューとポートがあります。 ビュー とポートを設定して、一致操作を定義します。 一致トランスフォーメーションのビュー 一致操作を設定するには、一致トランスフォーメーションのビューを使用します。 一致操作の設定時には、以下のビューを設定できます。 一致タイプ トランスフォーメーションが実行する重複分析のタイプを選択します。 1つまたは2つ のデータセットのフィールド一致またはID一致を選択できます。 ストラテジ 一致させるデータカラムを選択し、カラムに適用する一致ストラテジを設定します。 照合出力 重複分析結果の形式を設定します。 詳細 トランスフォーメーションがセッションログに書き込む詳細度を設定します。 ランタイム中にID一致操作が使用するプロセス数を設定します。 一致トランスフォーメーションのポート 一致トランスフォーメーションには、一致操作に関連するデータの定義済み入出力ポート が含まれています。 入力ポート 一致トランスフォーメーションの入力ポートは、トランスフォーメーションが一致操作に 必要とするデータを提供します。 一致トランスフォーメーションの作成後、以下の入力ポ ートを設定できます。 SequenceId ソースデータセット内の各レコードを一意に特定するIDを指定します。 データセット に一意のIDが存在しない場合は、キージェネレータトランスフォーメーションを使用 して作成します。 GroupKey 一致トランスフォーメーションがレコードの処理に使用するグループキーを指定しま す。 ID一致およびフィールド一致ではグループキーを使用できます。 グループキー とシーケンスIDのフィールドは、必ず同じトランスフォーメーションから選択しま す。 注: 一致速度を向上させるには、GroupKey入力ポートと、それに接続するGroupKey出 力ポートの両方に同じ[精度]を設定します。 一致トランスフォーメーションのコンポーネント 219 出力ポート 一致トランスフォーメーションの出力ポートは、トランスフォーメーションが実行する重 複分析に関する情報を提供します。 一致トランスフォーメーションの作成後、以下の出力 ポートを設定できます。 ClusterId レコードが属しているクラスタのID。 [クラスタ]照合出力で使用されます。 グループキー レコードのグループキー。 ClusterSize レコードが属しているクラスタ内のレコード数。 他のレコードと一致しないレコード のクラスタサイズは1です。 [クラスタ]照合出力で使用されます。 RowIdおよびRowId1 レコードの一意な行ID。 このIDは一致トランスフォーメーションによって作成されま す。 このIDは、入力データ内の行番号と一致しない場合があります。 DriverId クラスタ内のドライバレコードの行ID。 ドライバレコードは、クラスタに追加される 最終レコードです。 [クラスタ]照合出力で使用されます。 DriverScore レコードとそのクラスタ内のドライバレコード間の一致スコア。 LinkId 現在のレコードと一致し、現在のレコードをクラスタに追加したレコードの行ID。 [クラスタ]照合出力で使用されます。 LinkScore クラスタの作成またはクラスタへのレコードの追加を行う2つのレコード間の一致スコ ア。 [クラスタ]照合出力で使用されます。 注: 一致プロセスは、定義したストラテジごとにスコアを1セット生成します。 DriverScoreおよびLinkScoreの値は、異なるレコードペア間の類似度を表し、さまざまな タイプの情報を提供します。 LinkScoreは、クラスタのコンテンツを定義します。 LinkScoreは、一致しきい値を超えて いる必要があります。 DriverScoreはLinkScoreよりも高い場合と低い場合があり、一致しきい値を下回る場合が あります。 220 章 21: 一致トランスフォーメーション フィールド一致 2つ以上のレコード内の類似データまたは重複データを検索するには、フィールド一致を使 用します。 フィールド一致操作は、2つのデータフィールドの値を比較し、それらの類似性を計算しま す。 フィールド一致に対して一致トランスフォーメーションを設定するときは、入力デー タから2つ以上のカラムペアを選択します。 フィールド一致ストラテジ 一致トランスフォーメーションには、データ値のペアを比較する定義済みのフィールド一 致ストラテジが含まれます。 バイグラム バイグラムストラテジは、郵便アドレスが1つのフィールドに入力されている場合など、長 いテキスト文字列を比較する場合に使用します。 バイグラムアルゴリズムでは、2つのデータ文字列の一致スコアを、両方の文字列に含まれ る連続した文字に基づいて計算します。 両方の文字列に共通する連続した文字のペアを探 し、一致する文字のペアの数を文字のペアの総数で割ります。 バイグラムの例 次の文字列について考えてみます。 ¨ larder ¨ lerder これらの文字列をバイグラムのグループに分けると次のようになります。 l a, a r, r d, d e, e r l e, e r, r d, d e, e r 文字列"lerder"の2つ目の"e r"は一致と見なされません。文字列"larder"には文字列"e r"が1 つしかなく、2つ目に対応するものはないからです。 バイグラムの一致スコアを計算するには、一致するペアの数(6)を両方の文字列のペアの 総数(10)で割ります。 この例では、文字列の類似度は60%で、一致スコアは 0.60になりま す。 ハミング距離 ハミング距離ストラテジは、電話番号、郵便番号、製品コードなどの数値フィールドやコ ードフィールドのように、データ文字の位置が重要な要素である場合に使用します。 ハミング距離アルゴリズムでは、2つのデータ文字列の一致スコアを、データ文字列間で文 字が異なる位置の数に基づいて計算します。 長さが異なる文字列の場合、長い方の文字列 にしかない各文字は文字列間の相違としてカウントされます。 フィールド一致 221 ハミング距離の例 次の文字列について考えてみます。 ¨ Morlow ¨ Marlowes 強調表示された文字は、ハミングストラテジで相違と見なされる位置を示しています。 ハミングの一致スコアを計算するには、一致する文字の数(5)を長い方の文字列の文字数 (8)で割ります。 この例では、文字列の類似度は62.5%で、一致スコアは 0.625になりま す。 エディット距離 エディット距離ストラテジは、単語や短いテキスト文字列(名前など)を比較する場合に 使用します。 エディット距離アルゴリズムでは、文字列を別の文字列に変換するために文字の挿入、削 除、または置き換えが必要な最小限の「コスト」を計算します。 エディット距離の例 次の文字列について考えてみます。 ¨ Levenston ¨ Levenshtein 強調表示された文字は、文字列をもう一方の文字列に変換するために処理が必要な部分を 示しています。 エディット距離アルゴリズムでは、変更されない文字の数(8)を長い方の文字列の文字数 (11)で割ります。 この例では、文字列の類似度は72.7%で、一致スコアは 0.727になりま す。 Jaro距離 Jaro距離ストラテジは、2つの文字列を比較するときに、文字列内の最初の文字の類似度を 優先する場合に使用します。 Jaro距離の一致スコアには、両方の文字列の最初の4文字の一致度、および識別された文字 の転置の数が反映されます。 最初の4文字の一致の重要度に、[ペナルティ]プロパティ に入力した値を使用して重みが設定されます。 Jaro距離のプロパティ Jaro距離ストラテジを設定するときは、次のプロパティを設定できます。 ペナルティ 比較する2つの文字列内の最初の4文字が同一でない場合の一致スコアのペナルティを 指定します。 最初の文字が一致しない場合は、ペナルティの値がそのまま減算されま す。 それ以外の文字が異なる場合は、その位置に基づいてペナルティの端数が減算さ れます。 デフォルトのペナルティ値は 0.20です。 222 章 21: 一致トランスフォーメーション 大文字小文字の区別 Jaro距離ストラテジで一致を行うときに大文字と小文字を区別するかどうかを指定し ます。 Jaro距離の例 次の文字列について考えてみます。 ¨ 391859 ¨ 813995 デフォルトのペナルティ値である 0.20を使用してこれらの文字列を分析した場合、Jaro距離 ストラテジで返される一致スコアは 0.513になり、 文字列の類似度は51.3%となります。 ハミング距離の反転 ハミング距離の反転ストラテジは、2つの文字列間で文字が異なる位置の割合を、文字を右 から左の順に読み取って計算する場合に使用します。 ハミング距離アルゴリズムでは、2つのデータ文字列の一致スコアを、データ文字列間で文 字が異なる位置の数に基づいて計算します。 長さが異なる文字列の場合、長い方の文字列 にしかない各文字は文字列間の相違としてカウントされます。 ハミング距離の反転の例 次の文字列について考えてみます。この文字列では、ハミングの反転ストラテジについて 説明するために右から左の順に文字を配置しています。 ¨ 1-999-9999 ¨ 011-01-999-9991 強調表示された文字は、ハミング距離の反転ストラテジで相違と見なされる位置を示して います。 ハミングの反転の一致スコアを計算するには、一致する文字の数(9)を長い方の文字列の 文字数(15)で割ります。 この例では、一致スコアは 0.6になり、文字列の類似度は60%と なります。 フィールド一致ストラテジのプロパティ 各フィールド一致ストラテジに対してプロパティを設定します。 フィールド一致ストラテジの設定時には、以下のプロパティを設定できます。 NULL一致 一方の入力値がNullであるときの一致スコアを決定します。 両方のNULL一致 両方の入力値がNullであるときの一致スコアを決定します。 フィールド一致 223 フィールド一致出力のプロパティ [照合出力]のプロパティを設定して、フィールド一致操作の出力を制御します。 フィールド一致の設定時には、[照合出力のタイプ]および[プロパティ]領域の設定を 構成できます。 [照合出力のタイプ]の設定 以下のいずれかの照合出力タイプを選択します。 クラスタ クラスタ内の一致ペアを出力します。 一致ペア 一致しきい値を超えるすべての出力ペアを出力します。 最良の一致(デュアルソース照合) マスタデータセット内の各行に対して最良の一致を出力します。 プロパティの設定 照合出力タイプの選択後、以下のプロパティを設定できます。 キャッシュディレクトリ フィールド一致キャッシュを格納するディレクトリを指定します。 Data Integration serviceにこのディレクトリへの書き込み権限がある必要がありま す。 マッピングの実行前に、このディレクトリがディレクトリ構造に存在してい る必要があります。 キャッシュサイズ 一致トランスフォーメーションが一致操作の処理に使用できるシステムメモリの 量をバイト単位で割り当てます。 一致トランスフォーメーションは、可能なかぎ りシステムメモリを使用して処理を実行します。 システムメモリのキャッシュが 一杯になると、トランスフォーメーションは指定されたキャッシュディレクトリ に書き込みます。 しきい値 一致トランスフォーメーションでレコードをクラスタに整理するために使用する 最小一致率を設定します。あるレコードがあるクラスタに入るためには、そのレ コードがクラスタ内の少なくとも1つのレコードに、しきい値以上の一致スコアで リンクしている必要があります。 スコアリング方法 トランスフォーメーション出力に表示される一致スコアタイプを決定します。 ク ラスタ一致出力にのみ使用されます。 このプロパティのデフォルト設定は、 [リ ンクスコア]です。 [ドライバスコア]または[両方]のいずれかを選択した場合は、処 理時間が大幅に増える可能性があります。 224 章 21: 一致トランスフォーメーション デュアルソースのフィールド一致プロパティ デュアルソースのフィールド一致操作では、[一致タイプ]ビューで[マスターデータセ ット]プロパティを設定します。 2つのデータソースを使用するときは、一方のデータソースをマスタデータセットとして選 択する必要があります。 どちらのデータソースもマスタデータセットでない場合は、どち らのデータソースをマスタとして選択してもかまいません。 フィールド一致の詳細プロパティ Data Integration Serviceで一致トランスフォーメーションのデータがどのように処理さ れるかを特定するためのプロパティを設定します。 [詳細]ビューでは、以下のプロパティを設定します。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 フィールド一致 225 ID一致 複数のレコードで共有されるIDを検索するには、ID一致を使用します。 IDは、複数の値の組み合わせで個人または組織の識別に十分な情報を提供する、レコード 内のデータ値の集まりです。レコードの重複を示すID一致もあれば、 共有される家族IDや 共有される従業員IDなど、レコード間のつながりを示すID一致もあります。 ID一致に対して一致トランスフォーメーションを設定する場合、IDストラテジで入力ポー トをすべてのプライマリ必須フィールドに接続する必要があります。ほとんどのIDストラ テジにはプライマリ必須フィールドが含まれます。家族および個人IDストラテジには、セ カンダリ必須フィールドも含まれます。入力ポートを少なくとも1つのセカンダリ必須フィ ールドに接続する必要があります。 ID一致タイプのプロパティ ID一致タイプのプロパティを設定し、レコードを分析してIDの一致を検出します。 ID一致タイプの設定時には、以下のプロパティを設定できます。 ポピュレーション ロケールおよび言語用にカスタマイズされたキー構築アルゴリズムを含む参照データ ファイルを決定します。 キーレベル ID一致アルゴリズムによって生成されるキーの数を決定します。デフォルトの設定は [標準]です。 [限定]設定を選択すると、キーの数が減って精度が高くなります が、処理時間は長くなります。 [拡張]設定を選択すると、キーの数が増えて精度は 低くなりますが、処理時間は短くなります。 キータイプ キーフィールドに含まれるデータのカテゴリを表します。ID一致では、個人名、組 織、および住所のキーを生成できます。 [キーフィールド]プロパティに選択したカ ラムを最もよく表すキータイプを選択します。 検索レベル 検索品質と検索速度のバランスを示します。検査速度は、返される一致数に反比例し ます。 例えば、[高]オプションが返す一致は少なくなります。 キーフィールド 一致トランスフォーメーションでグループキーの生成に使用するカラムを指定しま す。選択したカラムに[キータイプ]オプションで指定した種類のデータが含まれる ことを確認してください。 インデックスフォルダ 一致トランスフォーメーションがIDキーインデックスを書き込むディレクトリを指定 します。 Data Integration serviceにこのディレクトリへの書き込み権限がある必 要があります。 226 章 21: 一致トランスフォーメーション 注: このプロパティは、[インデックスフォルダ]の親ディレクトリへのパスを指定 します。 ID一致プロセスは、このパスにディレクトリを作成してインデックスファイ ルを書き込み、マッピングの完了時にディレクトリを削除します。 キャッシュディレクトリ ID一致キャッシュを格納するディレクトリを指定します。Data Integration service にこのディレクトリへの書き込み権限がある必要があります。 注: マッピングの実行前に、このディレクトリがディレクトリ構造に存在している必 要があります。 マスターデータセット マスタデータを含むデータソースを指定します。デュアルソース一致で使用されま す。 IDマッチングストラテジ 一致トランスフォーメーションには、データ値のペアを比較する定義済みのID一致ストラ テジが含まれます。 以下の表に、各ID一致ストラテジの一致操作と必要な入力項目を示します。 ID一致 ストラ テジ 一致操作 住所 住所を共有するレコード を特定します。 住所 担当者 1つの組織の場所にいる担 当者を共有するレコード を特定します。 Person_Name 法人 組織データを共有するレ コードを特定します。 必 要に応じて、住所と電話 番号のデータを分析する ようにこのストラテジを 設定します。 Organization_Name 除算 特定の住所にある組織の オフィスを共有するレコ ードを特定します。 Organization_Name 名前、住所、および電話 番号のデータを分析する ことによって、ある家族 のメンバーを特定しま す。 Person_Name 家族 プライマリ必須入力 セカンダリ必須 入力 (1つ以上選 択) Organization_Name Address_Part1 Address_Part1 Address_Part1 Telephone Number ID一致 227 ID一致 ストラ テジ 一致操作 フィー ルド 選択したカスタムフィー ルドのデータを共有する レコードを特定します。 該当なし 世帯 名前データと住所データ を分析することによっ て、ある世帯の構成員を 特定します。 Person_Name 名前、誕生日、およびID データを分析することに よって、重複する個人を 特定します。 IDの例とし ては、社会保障番号、口 座番号、車両ID番号など があります。 Person_Name 組織 組織データを共有するレ コードを特定します。 Organization_Name 個人名 名前データを分析するこ とによって、重複する個 人を特定します。 Person_Name 住居 ある住所の重複する個人 を特定します。 必要に応 じて、ID情報を分析する ようにこのストラテジを 設定します。 Person_Name 担当者 (広 域) ある組織の担当者を共有 するレコードを特定しま す。 Person_Name 世帯 (広 域) 同じ世帯に属する個人を 特定します。 Address_Part1 個人 プライマリ必須入力 セカンダリ必須 入力 (1つ以上選 択) Address_Part1 Date ID Address_Part1 Organization_Name ID一致ストラテジのプロパティ 各IDストラテジのプロパティを設定します。 ID一致ストラテジの設定時には、以下のストラテジプロパティを設定できます。 ポピュレーション ID一致に適用するポピュレーションを決定します。 ポピュレーションには、特定のロ ケールと言語のキー構築アルゴリズムが含まれます。 228 章 21: 一致トランスフォーメーション 照合レベル 検索品質と検索速度のバランスを決定します。 検査速度は、返される一致数に反比例 します。 [ルーズ]設定が使用される検索が返す一致は少ないのに対して、[保守的]設 定が使用される検索が返す一致は多くなります。 ID一致出力のプロパティ [照合出力]のプロパティを設定して、ID一致操作の出力を制御します。 ID一致の設定時には、[照合出力のタイプ]および[プロパティ]領域の設定を構成でき ます。 [照合出力のタイプ]の設定 以下のいずれかの照合出力タイプを選択します。 クラスタ ID一致クラスタを出力します。 一致ペア 一致しきい値を超えるすべての出力ペアを出力します。 最良の一致(デュアルソース照合のみ) マスタデータセット内の各行に対して最良の一致を出力します。 プロパティの設定 照合出力タイプの選択後、以下のプロパティを設定できます。 キャッシュディレクトリ 一致トランスフォーメーションが一時ファイルを書き込むディレクトリを決定し ます。 キャッシュサイズ 一致トランスフォーメーションが一致操作の処理に使用できるシステムメモリの 量をバイト単位で割り当てます。 一致トランスフォーメーションは、可能なかぎ りシステムメモリを使用して処理を実行します。 システムメモリのキャッシュが 一杯になると、トランスフォーメーションは指定されたキャッシュディレクトリ に書き込みます。 しきい値 一致トランスフォーメーションでレコードをクラスタに整理するために使用する 最小一致率を設定します。あるレコードがあるクラスタに入るためには、そのレ コードがクラスタ内の少なくとも1つのレコードに、しきい値以上の一致スコアで リンクしている必要があります。 IDマッチングの詳細プロパティ Data Integration Serviceで一致トランスフォーメーションのデータがどのように処理さ れるかを特定するためのプロパティを設定します。 [詳細]ビューでは、以下のプロパティを設定します。 ID一致 229 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 実行インスタンス数 トランスフォーメーションで実行時に使用するスレッド数を決定します。実行インス タンス数の値を増やすと、一致のパフォーマンスが向上します。同時一致マッピング を実行する必要がある場合、またはIntegration Serviceの負荷が高い場合は、この プロパティを編集します。実行インスタンス数の値は、CPUコアの数より少なくしま す。デフォルトは1です。 一致トランスフォーメーションをPowerCenterにエクスポートする場合、Developerツ ールは実行インスタンスプロパティで設定した値に従って、一致トランスフォーメー ションを複数のトランスフォーメーションに分割します。Developerツールは一致トラ ンスフォーメーションごとに実行ポイントトランスフォーメーションも作成します。 グリッドに対して一致トランスフォーメーションを実行するには、パーティションポ イントを実行ポイントトランスフォーメーションに設定します。 230 章 21: 一致トランスフォーメーション 一致マプレット 一致マプレットは、一致トランスフォーメーション内で作成して一致トランスフォーメー ションに埋め込むことができるマプレットのタイプです。 一致マプレットを作成するには、一致トランスフォーメーションの設定を一致マプレット として保存します。 一致マプレットを作成する場合は、一致トランスフォーメーションの 設定を比較トランスフォーメーションおよび加重平均トランスフォーメーションに変換し ます。 一致マプレットの作成後、トランスフォーメーションを追加して一致プロセスをカスタマ イズできます。 例えば、2つのストラテジのリンクスコアを評価する式トランスフォーメ ーションを追加し、一番高いスコアを選択することができます。 一致トランスフォーメーションと違って一致マプレットはパッシブで、Analystツール内の ルールとして使用できます。 Analystツールで一致マプレットを使用し、データプロファ イリングプロセスの一部としてレコードを一致させます。 一致トランスフォーメーションは、一致トランスフォーメーション内から作成された一致 マプレットのみを読み取ることができます。 一致マプレットの作成 一致マプレットを作成して、複数の一致トランスフォーメーションおよびマッピング内で 一致操作を再利用します。 1. エディタで一致トランスフォーメーションを開き、[ストラテジ]ビューを選択しま す。 2. [照合ルールを使用]を選択します。 3. [名前]フィールドで、[新規作成]を選択します。 [新しいマプレット]ウィンドウが開きます。 4. [新しいマプレット]ウィンドウで、マプレットの名前を入力し、マプレットを保存 する場所を選択します。 5. 必要に応じて[一致トランスフォーメーションのストラテジを再利用]を選択し、入 力、一致ストラテジ、および加重を現在の一致トランスフォーメーションから一致マ プレットにコピーします。 注: この設定の使用して、一致トランスフォーメーションに現在定義されている一致 機能を複製する一致マプレットを短時間で作成することをお勧めします。 6. [完了]をクリックします。 一致マプレットがエディタに表示されます。 7. 8. 必要に応じて、一致マプレット内で比較トランスフォーメーションと加重平均トラン スフォーメーションを追加および設定することによって、一致操作を作成します。 [ファイル] > [保存]をクリックして、マッピングを保存します。 9. マプレットを閉じ、一致トランスフォーメーションを含むエディタを選択します。 作 成したマプレットが[名前]フィールドに表示されていることを確認します。 10. 必要に応じて、[照合フィールド]ボタンをクリックしてマプレット内の照合フィー ルドを設定します。 一致マプレット 231 [照合ルールの設定]ウィンドウが開きます。 11. [入力フィールド]および[使用可能な入力]カラム内のフィルードをダブルクリッ クして、入力ポートを一致入力に割り当てます。 12. [ファイル] > [保存]をクリックして、トランスフォーメーションを保存しま す。 一致マプレットの使用 以前に定義された一致マプレットを一致トランスフォーメーションで選択および設定でき ます。 1. エディタで一致トランスフォーメーションを開き、[ストラテジ]ビューを選択しま す。 2. [照合ルールを使用]を選択します。 3. [名前]フィールドで、[既存を使用]を選択します。 [照合ルールの設定]ウィンドウが開きます。 4. [参照]をクリックして、リポジトリ内の一致マプレットを探します。 重要: 選択できるのは、一致トランスフォーメーションによって作成されたマプレッ トのみです。 [照合マプレットの選択]ウィンドウが開きます。 5. 一致マプレットを選択し、[OK]をクリックします。 6. [入力フィールド]および[使用可能な入力]カラム内のフィルードをダブルクリッ クして、入力ポートを一致入力に割り当てます。 7. [OK]をクリックします。 [照合ルールの設定]ウィンドウが閉じます。 8. [ファイル] > [保存]をクリックして、一致トランスフォーメーションを保存し ます。 一致操作の設定 一致操作を設定するには、ソースデータを一致トランスフォーメーションに接続し、トラ ンスフォーメーションのビューでプロパティを編集します。 1. 一致トランスフォーメーションを作成し、ソースデータをトランスフォーメーション に接続します。 2. [一致タイプ]ビューを選択し、一致タイプを選択します。 3. 選択した一致プロセスのタイプのプロパティを設定します。 デュアルソース一致タイプを選択した場合は、[マスターデータセット]プロパティ を設定します。 4. 232 [ストラテジ]ビューを選択し、[照合ストラテジの定義]を選択します。 章 21: 一致トランスフォーメーション 5. [新規]をクリックします。 新しい照合ストラテジウィザードが開きます。 6. 一致ストラテジを選択し、[次へ]をクリックします。 7. 必要に応じて、[ウェイト]、[NULL一致]、および[両方のNULL一致]の設定を編 集します。 [次へ]をクリックします。 8. [使用可能]カラムのセルをダブルクリックして、分析する入力ポートを選択しま す。 [次へ]をクリックして別のストラテジを設定するか、[完了]をクリックしてウィ ザードを終了します。 注: ストラテジの設定を編集するには、[ストラテジ]ビューでそのストラテジのセ ル内の矢印をクリックします。 9. [照合出力]ビューを選択します。 照合出力タイプを選択し、そのプロパティを設定します。 注: [ストラテジ]ビューで一致マプレットを選択または編集することによって、一致ス トラテジを設定することもできます。 一致マプレットは、一致トランスフォーメーション に埋め込むことができるマプレットのタイプです。 一致操作の設定 233 第 22 章 マージトランスフォーメーシ ョン この章では、以下の項目について説明します。 ¨ マージトランスフォーメーションの概要, 234 ページ ¨ マージストラテジの設定, 234 ページ マージトランスフォーメーションの概要 マージトランスフォーメーションは、複数の入力カラムからデータ値を読み取り、1つの出 力カラムを作成するパッシブトランスフォーメーションです。 マージトランスフォーメーションを使用して、望ましい形式でデータを作成します。 例え ば、Customer_FirstnameフィールドとCustomer_Surnameフィールドを結合して、 Customer_FullNameというフィールドを作成できます。 マージトランスフォーメーション内では、複数の統合ストラテジを作成できます。 マージ トランスフォーメーションには、ストラテジの作成に使用するウィザードが用意されてい ます。 マージストラテジの設定 マージストラテジを設定するには、マージトランスフォーメーションの[ストラテジ]ビ ューで設定を編集します。 1. [ストラテジ]ビューを選択します。 2. [新規]をクリックします。 新しいストラテジ ウィザードが開きます。 3. 234 [入力]フィールドをクリックして、ストラテジの入力ポートを選択します。 4. マージされた項目間に配置するマージ文字を定義するには、[選択]をクリックしま す。 マージ文字を選択しなかった場合は、デフォルトでスペース文字が使用されま す。 5. 必要に応じて、[マージされた出力に空の文字列を含める]を選択して、出力に空の 入力文字列を含めます。 6. [完了]をクリックします。 マージストラテジの設定 235 第 23 章 パーサートランスフォーメー ション この章では、以下の項目について説明します。 ¨ パーサートランスフォーメーションの概要, 236 ページ ¨ パーサートランスフォーメーションの設計, 237 ページ ¨ トークン解析モード, 237 ページ ¨ パターンベースの解析モード, 240 ページ パーサートランスフォーメーションの概要 パーサートランスフォーメーションは、特定の情報カテゴリの新しいフィールドを作成 し、これらのフィールドに入力データを解析するパッシブトランスフォーメーションで す。 パーサートランスフォーメーションは、以下のカテゴリに従ってデータを解析します。 解析されたデータ ユーザー定義のトークンまたはパターンに一致します。 オーバーフローデータ ユーザー定義のトークンまたはパターンに一致しますが、トランスフォーメーション はデータを出力に割り当てることができません。 未解析のデータ ユーザー定義のトークンまたはパターンに一致しません。 236 パーサートランスフォーメーションの設計 パーサートランスフォーメーションを作成するときは、トークン解析モードまたはパター ンベースの解析モードのいずれかを選択します。 ¨ トークン解析モード: トークンセット、正規表現、または参照テーブルのエントリに一 致する個別の文字列を解析するストラテジを作成するには、このモードを使用します。 トランスフォーメーションでは、複数のトークン解析ストラテジを使用できます。 ¨ パターンベースの解析モード: 複数の文字列からなるパターンを解析するには、このモ ードを使用します。 カスタムパターンを入力することも、トランスフォーメーション を設定して参照テーブルからパターンを読み込むこともできます。 パターンベースの 解析モードでは、ラべラートランスフォーメーションからの出力が入力として必要で す。 どちらのモードで解析操作を実行する場合も、参照テーブルまたはコンテンツ式を選択し ます。 コンテンツ式とは、ラベラトランスフォーメーションやパーサートランスフォーメ ーションでデータを識別するために使用できる式です。 パーサートランスフォーメーションでは、以下のタイプのコンテンツ式を使用できます。 ¨ パターンセット ¨ 正規表現 ¨ トークンセット コンテンツ式は、システム定義のものとユーザー定義のものがあります。 ユーザー定義の コンテンツ式は、再利用可能にすることも再利用不可にすることもできます。 トークン解析モード トークン解析モードでは、トークンセット、正規表現、または参照テーブルのエントリに 一致する文字列が解析されます。 トークン解析を実行するには、トランスフォーメーションの[ストラテジ]ビューでスト ラテジを追加します。 ストラテジごとに1つ以上の操作を追加できます。 トランスフォー メーションには、ストラテジの作成に使用するウィザードが用意されています。 トークン解析ストラテジには、以下のタイプの操作を追加できます。 トークンセットを使用した解析 組み込みまたはユーザー定義のトークン定義を使用して、入力データを解析します。 Informatica Developerに含まれる組み込みトークンセットから選択できます。 トー クンセットの例としては、単語、郵便番号、電話番号などがあります。 トークンセッ ト操作では、1つ以上の出力に書き込むカスタム正規表現も使用できます。 参照テーブルを使用した解析 参照テーブルのエントリを使用して、入力データを解析します。 操作はストラテジに示された順序で実行されます。 パーサートランスフォーメーションの設計 237 正規表現 解析操作における正規表現とは、入力データ内の1つ以上の文字列を特定するために使用で きる式です。 特定された文字列が1つ以上の出力ポートに書き込まれます。 正規表現は、 トークン解析モードを使用するパーサートランスフォーメーションで使用できます。 パーサートランスフォーメーションでは、正規表現を使用して入力データのパターンを一 致させ、一致するすべての文字列を1つ以上の出力に解析します。 例えば、正規表現を使 用して入力データに含まれるすべての電子メールアドレスを識別し、電子メールアドレス の構成要素ごとに異なる出力に解析することができます。 トークンセット トークンセットには、特定のトークンを識別する式が含まれます。 トークンセットは、ト ークン解析モードを使用するパーサートランスフォーメーションで使用できます。 トークンセットを使用して、解析操作の一部として特定のトークンを特定します。 例え ば、トークンセットを使用して、「AccountName@DomainName」形式が使用されるすべての 電子メールアドレスを解析することができます。 トークン解析ポート トークン解析ポートをデータに適した設定で構成します。 トークン解析モードのパーサートランスフォーメーションには、以下のポートタイプがあ ります。 入力 パーサートランスフォーメーションに渡すデータが含まれます。 [ストラテジ]タブ で指定された[結合文字の入力]を使用して、すべての入力ポートがマージされて1つ のデータ文字列に結合されます。 入力の結合文字を指定しなかった場合は、デフォル トでスペース文字が使用されます。 解析された出力ポート 正常に解析された文字列が含まれるユーザー定義の出力ポート。 複数の解析文字列で 同じ出力が使用されている場合は、[ストラテジ]タブで指定された[結合文字の出 力]を使用して、組み合わされたデータ文字列に出力がマージされます。 結合文字の 出力を指定しなかった場合は、デフォルトでスペース文字が使用されます。 オーバーフロー トランスフォーメーションで定義された出力数に収まらない、正常に解析された文字 列が含まれます。 例えば、トランスフォーメーションに2つの「WORD」出力のみがあ る場合、文字列「John James Smith」は「Smith」というオーバーフロー出力になりま す。 追加するストラテジごとにオーバーフローポートが作成されます。 未解析 トランスフォーメーションで正常に解析できない文字列が含まれます。 追加するスト ラテジごとに未解析ポートが作成されます。 238 章 23: パーサートランスフォーメーション トークン解析のプロパティ トークン解析のプロパティには、ストラテジプロパティと操作プロパティがあります。 こ れらのプロパティは、[ストラテジ]ビューで設定します。 ストラテジのプロパティ ストラテジのプロパティは、ストラテジ内のすべての操作に適用されます。 設定できるス トラテジのプロパティを次に示します。 ¨ 結合文字の入力: 入力データポートの結合に使用される文字を指定します。 すべての 入力ポートがマージされて1つの文字列に結合され、この文字列が全体として解析され ます。 ¨ 結合文字の出力: 複数の解析操作で同じ出力が使用されているときに出力データの結合 に使用される文字を指定します。 ¨ 反転有効: 右から左にデータを解析するようにストラテジを設定します。 ¨ オーバーフローの反転有効: 右から左にオーバーフローデータを解析するようにストラ テジを設定します。 ¨ 詳細なオーバーフローが有効: 解析操作ごとに一意のオーバーフローフィールドを作成 します。 ¨ 区切り文字: 入力データを別々のトークンに区切る区切り文字を決定します。 区切り 文字を選択しなかった場合は、デフォルトでスペース区切り文字が使用されます。 操作のプロパティ 操作プロパティは、単一の操作に適用されます。 以下のタイプの操作に対してプロパティ を設定できます。 トークンセット操作 トークンセットを使用して入力を解析するには、[トークンセットを使用した解析] 操作を選択します。 トークン定義操作には以下のプロパティを設定できます。 ¨ トークンセットの選択: 操作が解析に使用するトークンセットを指定します。 ¨ インポート: . コンテンツセットに格納されているトークンセットのコピーを作成 できます。 元のトークンセットを変更しても、パーサートランスフォーメーショ ンに格納するコピーは更新されません。 ¨ トークンセットの追加。 カスタムトークンセットを定義できます。 トークンセッ トを使用して、単一の出力に書き込みます。 ¨ 正規表現の追加: 入力するカスタム正規表現を定義します。 正規表現を使用し て、1つ以上の出力に書き込むことができます。 ¨ 出力: 解析されたデータの出力を決定します。 参照テーブル操作 参照テーブルを使用して入力を解析するには、[参照テーブルを使用した解析]操作 を選択します。 参照テーブル操作には以下のプロパティを設定できます。 ¨ 参照テーブル。 操作が解析に使用する参照テーブルを指定します。 ¨ 大文字小文字の区別: 大文字と小文字を区別して入力データを参照データと比較す るように、操作を設定します。 トークン解析モード 239 ¨ 標準化: 解析されたデータを参照テーブルの「有効」値で置き換えます。 ¨ 出力: 解析されたデータの出力を決定します。 トークン解析ストラテジの設定 トークン解析ストラテジを設定するには、トークン解析モードを使用するパーサートラン スフォーメーションを開き、[ストラテジ]ビューを選択します。 1. [ストラテジ]ビューを選択します。 2. [新規]をクリックします。 新しいストラテジ ウィザードが開きます。 3. [入力]フィールドをクリックして、ストラテジのポートを選択します。 4. ストラテジのプロパティを設定し、[次へ]をクリックします。 5. 操作を選択し、[次へ]をクリックします。 6. 操作プロパティを設定し、正常に解析されたデータの出力ポートを選択します。 7. 必要に応じて、[次へ]をクリックして、その他の操作をストラテジに追加します。 8. ストラテジにすべての操作を追加したら、[完了]をクリックします。 9. 必要に応じて、その他のストラテジをトランスフォーメーションに追加します。 10. 必要に応じて、ストラテジと操作が処理される順序を変更します。 ストラテジまたは 操作を選択し、[上に移動]または[下に移動]をクリックします。 パターンベースの解析モード パターンベースの解析モードでは、複数の文字列からなるパターンが解析されます。 パターンベースの解析モードでデータの解析に使用できる方法には、以下のものがありま す。 ¨ 参照テーブル: 参照テーブルに定義されたパターンを使用して入力データを解析しま す。 パターン参照テーブルは、トークンラべル適用モードを使用するラべラートラン スフォーメーションのプロファイルされた出力から作成できます。 ¨ ユーザー定義のパターン: 定義するパターンを使用して入力データを解析します。 「+」と「*」のワイルドカードを使用して、パターンを定義することができます。 任意の 文字列に一致させるには「*」文字を、前にある文字列の1つ以上のインスタンスに一致さ せるには「+」文字を使用します。 例えば、wordトークンの連続する複数のインスタンス を検索するには「WORD+」を使用し、wordトークンとそれに続く任意のタイプの1つ以上の トークンを検索するには「WORD *」を使用します。 パーサートランスフォーメーション内では、これらの方法の複数のインスタンスを使用で きます。 各インスタンスは、[設定]ビューで示された順序で使用されます。 モデルリポジトリのコンテンツセットからパターンセットをインポートすることもできま す。 元のパターンセットを変更しても、パーサートランスフォーメーションに格納するコ ピーは更新されません。 240 章 23: パーサートランスフォーメーション 注: パターンベースの解析モードでは、トークンラベル適用モードが使用されるラべラー トランスフォーメーションの出力が必要です。 パターンベースの解析モードを使用するパ ーサートランスフォーメーションを作成する前に、ラべラートランスフォーメーションを 作成および設定します。 パターンセット パターンセットには、トークンラベル適用操作の出力のデータパターンを識別する式が含 まれます。 パターンセットを使用すると、トークン化されたデータの出力ポートを分析 し、一致する文字列を1つ以上の出力ポートに書き込むことができます。 パターンセット は、パターン解析モードを使用するパーサートランスフォーメーションで使用します。 例えば、名前と頭文字を識別するパターンセットを使用するようにパーサートランスフォ ーメーションを設定することができます。 このトランスフォーメーションでは、パターン セットを使用して、トークンラベル適用モードのラベラトランスフォーメーションの出力 を分析します。 出力に含まれる名前と頭文字を別のポートに書き込むようにパーサートラ ンスフォーメーションを設定できます。 パターンベースの解析ポート パターンベースの解析ポートをデータに適した設定で構成します。 パターンベースの解析モードが使用されるパーサートランスフォーメーションには、以下 のポートタイプがあります。 Label_Data このポートを、トークンラべル適用モードを使用するラべラートランスフォーメーシ ョンのLabeled_Outputポートに接続します。 Tokenized_Data このポートを、トークンラべル適用モードを使用するラべラートランスフォーメーシ ョンのTokenized_Dataポートに接続します。 Parse_Status 入力パターンに対して一致が見つかった場合、このポートは値 Matchedを出力します。 一致が見つからなかった場合は、 Unmatchedを出力します。 オーバーフロー トランスフォーメーションで定義された出力数に収まらない、正常に解析された文字 列。 例えば、2つの「WORD」出力のみが定義されている場合、文字列「John James Smith」はデフォルトで「Smith」というオーバーフロー出力になります。 Parsed ユーザー定義のポート内の正常に解析された文字列。 パターンベースの解析モード 241 解析パターンの設定 解析パターンを設定するには、パターン解析モードを使用するパーサートランスフォーメ ーションを開き、[パターン]ビューを選択します。 解析パターンを設定する前に、正常に解析されたデータを処理するために、トランスフォ ーメーションに出力ポートを追加します。 1. [パターン]ビューで、[新規]をクリックし、[新しいパターン]または[新しい 参照テーブル]を選択します。 2. パターンを追加する場合は、[パターン]カラムの「ここにパターンを入力」というテキ ストをダブルクリックし、カスタムパターンを入力します。 3. 参照テーブルを追加する場合は、参照テーブルを展開し、行を選択します。 4. トークンを出力に解析するようにトランスフォーメーションを設定します。 ¨ 単一のトークンを出力に解析するには、パターン行を選択し、その出力のカラム内 をクリックします。 その出力に解析するパターンを選択します。 ¨ 複数のトークンを単一の出力に解析するには、その出力のカラム内をクリックし、 [カスタム]を選択します。 出力トークンが区切られるようにする場合は、出力 カラムに対して1つ以上の区切り文字を選択します。 242 章 23: パーサートランスフォーメーション 第 24 章 ランクトランスフォーメーシ ョン この章では、以下の項目について説明します。 ¨ ランクトランスフォーメーションの概要, 243 ページ ¨ ランクトランスフォーメーションのポート, 245 ページ ¨ グループの定義, 246 ページ ¨ ランクトランスフォーメーションの詳細プロパティ, 247 ページ ランクトランスフォーメーションの概要 ランクトランスフォーメーションは、レコードを上限または下限に制限するアクティブな トランスフォーメーションです。ランクトランスフォーメーションを使用して、ポートま たはグループ内で最大または最小の数値を返すことができます。または、ランクトランス フォーメーションを使用して、マッピングのソート順の最上位または最下位の文字列を返 します。 マッピング実行中に、Data Integration Serviceはランク計算を実行できるまで入力デー タをキャッシュに格納します。 ランクトランスフォーメーションは、トランスフォーメーション関数MAXやMINとは異なり ます。ランクトランスフォーメーションは、1つの値だけではなく、最上位または最下位の 値のグループを返します。たとえば、ランクトランスフォーメーションを使用して、指定 された区域内での上位10人の販売員を選択できます。あるいは財務レポートを生成する場 合に、ランクトランスフォーメーションを使用して、給与や経費の支出が最も少ない3つの 部門を調べることができます。SQL言語ではデータグループを取り扱う多くの関数が提供さ れていますが、標準SQL関数を使用して行セット内の最上位または最下位の層を特定するこ とは不可能です。 トランスフォーメーションには、同じ行セットを表すすべてのポートを接続します。ラン クトランスフォーメーションは、トランスフォーメーションを設定するときに指定した基 準に基づいて、当該ランクに収まる行を通過させます。 ランクトランスフォーメーションはアクティブトランスフォーメーションであるため、通 過する行の数を変更してしまう可能性があります。ランクトランスフォーメーションに渡 243 すことができるのは100行ですが、ランク付けのために選択できるのは上位10行だけです。 上位10行が、ランクトランスフォーメーションから別のトランスフォーメーションに渡さ れます。 ランクトランスフォーメーションへは、1つのトランスフォーメーションからのポートを接 続できます。また、ローカル変数を作成して非集計式を書き込むこともできます。 文字列値のランク付け 文字列ポートの最上位または最下位の値を返すようにランクトランスフォーメーションを 設定することができます。Data Integration Serviceは、デプロイされたマッピングに対 して選択されたソート順に基づいて、文字列をソートします。 マッピングが含まれるアプリケーションを設定するときは、Data Integration Serviceで マッピングを実行するために使用されるソート順を選択します。バイナリまたはフランス 語やドイツ語などの特定の言語を選択できます。バイナリを選択した場合、Data Integration Serviceは各文字列のバイナリ値を計算し、そのバイナリ値を使用して文字列 をソートします。言語を選択した場合、Data Integration Serviceはその言語のソート順 を使用してアルファベット順に文字列をソートします。 ランクキャッシュ Data Integration Serviceは、マッピングの実行中に、入力行をデータキャッシュ内の行 と比較します。キャッシュに格納されている行よりも入力行の方がランクが高い場合、 Data Integration Serviceはキャッシュに格納されている行を入力行で置き換えます。ラ ンクトランスフォーメーションをグループ行に設定すると、Data Integration Serviceは 各グループ内の行をランク付けします。 Data Integration Serviceは、グループ情報をインデックスキャッシュに、行データをデ ータキャッシュに格納します。パイプライン内に複数のパーティションを作成した場合、 Data Integration Serviceはパーティションごとの別々のキャッシュを作成します。 ランクトランスフォーメーションのプロパティ ランクトランスフォーメーションを作成するときに、次のプロパティを設定することがで きます。 ¨ キャッシュディレクトリを入力する。 ¨ 最上位または最下位のランクを選択する。 ¨ ランクを判定するための値を含む入出力ポートを選択する。ランクを定義するためのポ ートは1つだけ選択できます。 ¨ ランク付けする行の数を選択する。 ¨ ランクのグループを定義する(たとえば各製造業者で最も安い10個の製品といったグル ープ)。 244 章 24: ランクトランスフォーメーション ランクトランスフォーメーションのポート ランクトランスフォーメーションには、マッピング内の別のトランスフォーメーションに 接続されている入力ポート、入出力ポート、または出力ポートが含まれています。ランク トランスフォーメーションには、パススルーポート、変数ポート、およびグループ別ポー トも含まれています。 ランクトランスフォーメーションには、以下のポートタイプがあります。 入力 アップストリームトランスフォーメーションからデータを受信します。 入力ポートを 入出力ポートとして指定することができます。トランスフォーメーションには少なく とも1つの入力ポートが必要です。 出力 ダウンストリームトランスフォーメーションにデータを渡します。出力ポートを入出 力ポートとして指定することができます。トランスフォーメーションには少なくとも1 つの出力ポートが必要です。 パススルー 変更せずにそのままデータを渡します。 変数 ローカル変数に使用されます。変数ポートを使用して、式で使用する値または計算を 格納することができます。変数ポートは入力ポートまたは出力ポートであってはなり ません。変数ポートはトランスフォーメーション内でデータを渡します。 Group By グループの作成方法を示します。ポートは、任意の入力ポート、入出力ポート、出力 ポート、または変数ポートを設定できます。 ランクポート ランクポートは、値をランク付けするカラムを指定します。 例えば、上位5人の販売員をランク付けするランクトランスフォーメーションを作成する場 合は、SALES_PERSON入出力ポートをランクポートとして指定します。 1つの入出力ポートまたは出力ポートをランクポートとして指定できます。ランクポートは ほかのトランスフォーメーションにリンクする必要があります。 ランクインデックス Developerツールは、それぞれのランクトランスフォーメーションに対してRANKINDEXポー トを作成します。Data Integration ServiceはRank Indexポートを使用して、グループ内 における各行のランキング位置を格納します。 たとえば、会社内で給料の高い50人の従業員を調べるために、ランクトランスフォーメー ションを作成するとします。ランク付けの基準とする入出力ポートとしてSALARYカラムを 指定し、上位50位以外のすべての行をフィルタで除外するようにトランスフォーメーショ ンを設定します。 ランクトランスフォーメーションのポート 245 ランクトランスフォーメーションは、最上位または最下位のランクに属する行をすべて識 別したあと、ランクインデックス値を割り当てます。給料を基準に上位50人の従業員を識 別する場合、最高額の給料が支払われている従業員に対し、ランクインデックスとして1が 与えられます。次に給料が多い従業員には、ランクインデックスとして2が与えられ、以下 同じようにランクインデックスが割り当てられます。たとえば目録内で値段の安い10個の 製品といった最下位ランクを求める場合、ランクトランスフォーメーションは最下位から 最上位の順にランクインデックスを割り当てます。したがって、最も値段の安い商品のラ ンクインデックスには1が与えられます。 2つのランク値が一致すると、それらは同じランクインデックス内で同じ値を受け取り、ト ランスフォーメーションはその次の値をスキップします。たとえば国内で最上位の5つの小 売り店を調べたときに2つの小売り店が同じ売り上げである場合、返されるデータは次のよ うになります。 RANKINDEX 1 1 3 4 SALES 10000 10000 90000 80000 STORE Orange Brea Los Angeles Ventura RANKINDEXは出力ポートのみです。ランクインデックスは、マッピング内の別のトランスフ ォーメーションへ渡すか、直接ターゲットへ渡すことができます。 グループの定義 ランク付けされた行のグループを作成するようにランクトランスフォーメーションを設定 できます。 例えば製造業者別に最も高価な商品を10個選択したい場合は、まずそれぞれの製造業者に ついてグループを定義します。ランクトランスフォーメーションを設定するときに、その いずれか1つの入力ポート、入出力ポート、または出力ポートをGroup Byポートとして設定 することができます。グループポート内の一意の値それぞれに対して、トランスフォーメ ーションは、ランク定義(最上位または最下位、および各ランク内の特定の順位)に該当 する行のグループを作成します。 ランクトランスフォーメーションは行の数を2つの方法で変更します。1つは、最上位また は最下位のランクに収まる行を除いたすべての行をフィルタリングして除外することによ り、トランスフォーメーションを通過する行の数を減らします。もう1つはグループを定義 することにより、各グループでランク付けされた行のセットを1つ作成します。 例えば、四半期ごとに上位5人の販売員をランク付けするランクトランスフォーメーション を作成した場合、ランクインデックスは四半期ごとに販売員に1から5までの数字を付けま す。 RANKINDEX 1 2 3 4 5 246 SALES_PERSON Sam Mary Alice Ron Alex 章 24: ランクトランスフォーメーション SALES 10,000 9,000 8,000 7,000 6,000 QUARTER 1 1 1 1 1 ランクトランスフォーメーションの詳細プロ パティ Data Integration Serviceでランクトランスフォーメーションのデータがどのように処理 されるかを特定するためのプロパティを設定します。 [詳細プロパティ]タブで、以下のプロパティを設定します。 上/下 カラムの最上位または最下位のどちらのランクを使用するかを指定します。 ランク数 最上位または最下位のランキングに含まれる行の数。 大文字小文字を区別した文字列比較 Data Integration Serviceで文字列をランク付けする際に大文字小文字を区別した文 字列比較が使用されるかどうかを指定します。Data Integration Serviceで文字列の 大文字小文字が無視されるようにするには、このオプションの選択を取り消します。 デフォルトでは、このオプションは選択されています。 キャッシュディレクトリ Data Integration Serviceでのインデックスキャッシュファイルとデータキャッシュ ファイルの作成先となるローカルディレクトリ。 このディレクトリが存在し、キャッ シュファイルを格納するのに十分なディスク容量を備えていることを確認します。 ランクのデータデータキャッシュサイズ トランスフォーメーションのデータキャッシュサイズ。数値をバイト数で入力する か、[自動]を選択してData Integration Serviceによってランタイムのキャッシュ サイズが決定されるようにします。デフォルトは[自動]です。 ランクのインデックスキャッシュサイズ トランスフォーメーションのインデックスキャッシュサイズ。数値をバイト数で入力 するか、[自動]を選択してData Integration Serviceによってランタイムのキャッ シュサイズが決定されるようにします。デフォルトは[自動]です。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし ランクトランスフォーメーションの詳細プロパティ 247 トレースレベル 説明 た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 248 章 24: ランクトランスフォーメーション 第 25 章 ルータトランスフォーメーシ ョン この章では、以下の項目について説明します。 ¨ ルータトランスフォーメーションの概要, 249 ページ ¨ グループに関する作業, 250 ページ ¨ ポートに関する作業, 252 ページ ¨ マッピング内のルータトランスフォーメーションの接続, 253 ページ ¨ ルータトランスフォーメーションの詳細プロパティ, 253 ページ ルータトランスフォーメーションの概要 ルータトランスフォーメーションは、1つ以上のグループ条件に基づいてデータを複数のト ランスフォーメーションにルーティングするアクティブなトランスフォーメーションで す。 ルータトランスフォーメーションはフィルタトランスフォーメーションに似ており、両方 とも条件を使用してデータをテストします。ただし、フィルタトランスフォーメーション は1つの条件についてデータをテストし、条件を満たさない他のデータ行は削除します。ル ータトランスフォーメーションは1つ以上の条件についてデータをテストし、どの条件も満 たさないデータ行をデフォルト出力グループにルーティングできます。 複数の条件に基づいて同じ入力データをテストする必要がある場合、同じ作業を実行する 複数のフィルタトランスフォーメーションを作成する代わりに、マッピング内でルータト ランスフォーメーションを使用します。ルータトランスフォーメーションの方が効率的で す。例えば、3つの条件に基づいてデータをテストするために、3つのフィルタトランスフ ォーメーションの代わりに1つのルータトランスフォーメーションを使用できます。マッピ ング内でルータトランスフォーメーションを使用すると、Data Integration Serviceは入 力データを一度処理します。マッピング内で複数のフィルタトランスフォーメーションを 使用すると、Data Integration Serviceは各トランスフォーメーションについて入力デー タを処理します。 ルータトランスフォーメーションは、入力および出力グループ、入力および出力ポート、 グループフィルタ条件、Developerツールで設定される詳細プロパティによって構成されて います。 249 グループに関する作業 ルータトランスフォーメーションには、以下の種類のグループがあります。 ¨ 入力 ¨ 出力 入力グループ ランクトランスフォーメーションには入力グループが1つ含まれます。入力グループは、ト ランスフォーメーションに追加するすべての入力ポートが含まれます。 出力グループ ランクトランスフォーメーションには以下の種類の出力グループが含まれます。 ユーザ定義グループ ユーザー定義グループを作成して、到着するデータに応じて条件をテストします。ユ ーザー定義グループは、出力ポートおよびグループフィルタ条件で構成されていま す。Developerツールのグループビューで、ユーザー定義グループを作成および編集で きます。指定したい各条件について、それぞれ1つのユーザー定義グループを作成しま す。 Data Integration Serviceは条件を使用して、入力データの各行を評価します。各ユ ーザー定義グループの条件をテストしてから、デフォルトグループを処理します。 Data Integration Serviceは、接続された出力グループの順序に基づいて、各条件の 評価順を決定します。Data Integration Serviceは、マッピング内のトランスフォー メーションまたはターゲットに接続されたユーザー定義グループを処理します。 行が複数のグループフィルタ条件を満たす場合、Data Integration Serviceはこの行 を複数回渡します。 デフォルトグループ Developerツールがデフォルトグループを作成するのは、ユーザーがユーザー定義グル ープを1つ作成した後です。Developerツールでは、デフォルトグループを編集または 削除することはできません。このグループに関連付けられたグループフィルタ条件は ありません。すべてのグループ条件がFALSEと評価された場合、Data Integration Serviceは行をデフォルトグループに渡します。Data Integration Serviceでデフォ ルトグループの行をすべて削除する場合は、デフォルトグループをマッピング内のト ランスフォーメーションまたはターゲットに接続しないようにします。 リストから最後のユーザー定義グループを削除すると、Developerツールはデフォルト グループを削除します。 Developerツールは入力グループの入力ポートからプロパティ情報をコピーし、各出力グル ープに対する一連の出力ポートを作成します。出力ポートやそのプロパティを変更または 削除することはできません。 250 章 25: ルータトランスフォーメーション グループフィルタ条件の使用 1つ以上のグループフィルタ条件に基づいてデータをテストできます。式エディタを使用し て、[グループ]ビューでグループフィルタ条件を作成します。 単一の値を返す任意の式を入力することができます。条件に定数を指定することもできま す。フィルタ条件は、指定された条件を行が満たすかどうかに基づいて、トランスフォー メーションを通過する行ごとにTRUEまたはFALSEを返します。ゼロ(0)はFALSEとみなされ ます。ゼロ以外の値はTRUEとみなされます。Data Integration Serviceは、TRUEと評価さ れたデータ行を、各ユーザー定義グループに関連付けられたそれぞれのトランスフォーメ ーションまたはターゲットに渡します。 たとえば、9ヶ国の顧客について、その内の3ヶ国のデータに対して種々の計算を行うとし ます。マッピング内でルータトランスフォーメーションを使用し、このデータをフィルタ リングして3つの異なる式トランスフォーメーションに渡すことができます。 デフォルトグループにはグループフィルタ条件はありません。それでも、残りの6ヶ国のデ ータに基づいて計算を行う式トランスフォーメーションを作成することができます。 3つの異なる国から得たデータに基づいて複数の計算を行うには、[グループ]ビューでユ ーザー定義グループを3つ作成し、グループフィルタ条件を3つ指定します。 以下の表に、顧客データをフィルタリングするグループフィルタ条件を示します。 グループ名 グループフィルタ条件 フランス customer_name=‘France’ 日本 customer_name=‘Japan’ USA customer_name=‘USA’ Data Integration Serviceは、マッピング実行中に、各ユーザー定義グループ(Japan、 France、USAなど)に関連付けられた各トランスフォーメーションまたはターゲットに、 TRUEと評価されたデータ行を渡します。すべての条件がFALSEと評価された場合、Data Integration Serviceは行をデフォルトグループに渡します。Data Integration Service は他の6ヶ国のデータを、デフォルトグループに関連付けられたトランスフォーメーション またはターゲットに渡します。Data Integration Serviceでデフォルトグループの行をす べて削除する場合は、デフォルトグループをマッピング内のトランスフォーメーションま たはターゲットに接続しないようにします。 ルータトランスフォーメーションは、条件を満たす各グループを通じてデータを渡しま す。 データが3つの出力グループ条件を満たす場合、ルータトランスフォーメーションは3 つの出力グループを通じてデータを渡します。 例えば、ルータトランスフォーメーションで以下のグループ条件を設定したとします。 グループ名 グループフィルタ条件 出力グループ1 employee_salary > 1000 出力グループ2 employee_salary > 2000 グループに関する作業 251 ルータトランスフォーメーションが入力行のデータをemployee_salary=3000で処理する場 合、Output Group 1および2を通じてデータがルーティングされます。 グループの追加 グループを追加すると、Developerツールによってプロパティ情報が入力ポートから出力ポ ートにコピーされます。 1. [グループ]ビューをクリックします。 2. [新規]ボタンをクリックします。 3. 新しいグループの名前を、[グループ名]セクションに入力します。 4. [グループフィルタ条件]フィールドをクリックして式エディタを開きます。 5. グループフィルタ条件を入力します。 6. [検証]をクリックして条件の構文をチェックします。 7. [OK]をクリックします。 ポートに関する作業 ルータトランスフォーメーションには、入力ポートと出力ポートがあります。入力ポート は入力グループにあり、出力ポートは出力グループにあります。 入力ポートは、別のトランスフォーメーションからコピーして作成するか、または[ポー ト]ビューで手動で作成することができます。 Developerツールは、入力ポートから以下のプロパティをコピーすることによって出力ポー トを作成します。 ¨ ポート名 ¨ データタイプ ¨ 精度 ¨ スケール ¨ デフォルト値 入力ポートに変更を加えると、Developerツールは出力ポートを更新して変更を反映させま す。出力ポートを編集または削除することはできません。 Developerツールは、入力ポート名に基づいて出力ポート名を作成します。Developerツー ルは各入力ポートに対して、各出力グループ内に対応する出力ポートを作成します。 252 章 25: ルータトランスフォーメーション マッピング内のルータトランスフォーメーシ ョンの接続 トランスフォーメーションをマッピング内のルータトランスフォーメーションに接続する 場合、以下の規則に留意してください。 ¨ 1つのグループは、1つのトランスフォーメーションまたはターゲットに接続することが できます。 ¨ グループ内の1つの出力ポートは、複数のトランスフォーメーションまたはターゲット に接続することができます。 ¨ 1つのグループ内の複数の出力ポートは、複数のトランスフォーメーションまたはター ゲットに接続することができます。 ¨ 複数のグループを1つのターゲットまたは1つの入力グループトランスフォーメーション に接続することはできません。 ¨ 各出力グループを異なる入力グループに接続する場合は、ジョイナトランスフォーメー ションを除いて、1つのグループを複数の入力グループトランスフォーメーションに接 続することができます。 ルータトランスフォーメーションの詳細プロ パティ Data Integration Serviceでのルータトランスフォーメーションのデータの処理方法を指 定するには、詳細プロパティを設定します。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル マッピング内のルータトランスフォーメーションの接続 253 トレースレベル 説明 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 254 章 25: ルータトランスフォーメーション 第 26 章 ソータートランスフォーメー ション この章では、以下の項目について説明します。 ¨ ソータートランスフォーメーションの概要, 255 ページ ¨ ソータートランスフォーメーションの開発, 256 ページ ¨ ソータートランスフォーメーションの詳細プロパティ, 256 ページ ¨ ソータキャッシュサイズ, 257 ページ ¨ ソータートランスフォーメーションのポート, 258 ページ ¨ ソータートランスフォーメーションの作成, 259 ページ ¨ ソータートランスフォーメーションの例, 260 ページ ソータートランスフォーメーションの概要 指定されたソートキーに従って昇順または降順にデータをソートするには、ソータートラ ンスフォーメーションを使用します。 ソータートランスフォーメーションは、大文字小文 字を区別してソートするように設定したり、出力が重複しないように設定したりすること ができます。 ソータートランスフォーメーションはアクティブなトランスフォーメーショ ンです。 ソータートランスフォーメーションを作成する場合、ポートをソートキーとして指定し、 昇順または降順でソートを行うように各ソートキーポートを設定します。 ソートキーに複 数のポートを指定した場合、Data Integration Serviceは各ポートを順番にソートしま す。 例えば、製品の注文に関する情報を含むデータベーステーブルがあるとします。 注文され た品目に対して請求書を作成する必要があります。 製品注文テーブルに対してソータート ランスフォーメーションを使用し、注文IDでデータを降順にソートします。 ソータートラ ンスフォーメーションの結果をアグリゲータトランスフォーメーションに対する入力とし て使用します。 [ソート済み入力]オプションを使用して、アグリゲータトランスフォー メーションのパフォーマンスを向上させることができます。 255 ソータートランスフォーメーションの開発 ソータートランスフォーメーションを開発するときは、ソートキーポート、重複しない出 力行、大文字小文字を区別するソート基準などの項目について検討する必要があります。 ソータートランスフォーメーションを開発するときは、以下の項目について検討してくだ さい。 ¨ ソートキーおよびソート方向として設定するポート。 ¨ 大文字小文字を区別してソートするかどうか。 ¨ NULL値をソートの優先順位として考慮するかどうか。 ¨ 出力行を重複しないようにするかどうか。 ¨ 設定するソーターキャッシュサイズ。 ソータートランスフォーメーションの詳細プ ロパティ ソータートランスフォーメーションの詳細プロパティで、追加のソート基準を指定するこ とができます。 Data Integration Serviceは、プロパティをすべてのソートキーポート に適用します。 また、ソータートランスフォーメーションのプロパティは、Data Integration Serviceがデータのソート時に割り当てるシステムリソースも決定します。 以下に、ソータートランスフォーメーションの詳細プロパティを示します。 個別 出力行を重複しないものとして扱います。 出力行が重複しないようにソータートラン スフォーメーションを設定した場合、Developerツールはすべてのポートをソートキー の一部として設定します。 Data Integration Serviceは、ソート操作時に比較され た重複行を破棄します。 大文字小文字の区別 Data Integration Serviceがデータをソートする際に大文字と小文字を区別するかど うかを決定します。 [大文字小文字の区別]プロパティを有効にすると、Data Integration Serviceはソートの際に大文字を小文字よりも上位にソートします。 Developerツールでは[大文字小文字の区別]がデフォルトで設定されています。 NULLを下として扱う NULL値を最下位にソートします。 Data Integration Serviceがソート操作を行う際 に、NULL値を他のすべての値より下位として処理するようにする場合は、このプロパ ティを有効にします。 ソータキャッシュサイズ ソート操作の実行に必要なメモリの最大量を決定します。 Data Integration Service は、ソート操作を行う前に、すべての入力データをソータートランスフォーメーショ ンに渡します。 [ソーターキャッシュサイズ]プロパティのデフォルト値は[自動] です。 ソーターキャッシュには、数値を設定できます。 256 章 26: ソータートランスフォーメーション 作業ディレクトリ Data Integration Serviceは、作業ディレクトリを使用してデータのソート中に一時 ファイルを作成します。 Data Integration Serviceはデータをソートした後で、一 時ファイルを削除します。 Data Integration Serviceマシン上の任意のディレクト リを作業ディレクトリとして指定できます。 以下のディレクトリはデフォルト値で、 ピリオドで表されます。 <Informatica Servicesのインストールディレクトリ>\tomcat\bin トレースレベル ソータートランスフォーメーションのログに表示される情報の詳細度。 ソータキャッシュサイズ Data Integration Serviceは、ソート操作を行う前に、すべての入力データをソータート ランスフォーメーションに渡します。 [ソーターキャッシュサイズ]を[自動]に設定すると、Data Integration Serviceはキ ャッシュサイズを実行時に決定します。 Data Integration Serviceは、ソート操作を開 始する前に、ソータキャッシュサイズに設定されたメモリ量を割り当てます。 Data Integration Serviceが十分なメモリを割り当てることができない場合は、マッピングが失 敗します。 最高のパフォーマンスのためには、Data Integration Serviceをホストするマシンの利用 可能な物理RAM量以下の値になるように、ソータキャッシュサイズを設定します。 ソータ ートランスフォーメーションを使用してデータをソートするには、少なくとも16MB (16,777,216バイト)の物理メモリを割り当てます。 デフォルトでは、ソータキャッシュ サイズは[自動]に設定されています。 入力されるデータの量がソータキャッシュサイズよりも大きい場合、Data Integration Serviceはデータを一時的にソータートランスフォーメーションの作業ディレクトリに保存 します。 データを作業ディレクトリに保存する場合、Data Integration Serviceは最低 でも入力されるデータの量の2倍のディスク領域を必要とします。 入力されるデータの量 がソータキャッシュサイズよりはるかに大きい場合、Data Integration Serviceは作業デ ィレクトリで利用可能なディスク領域の2倍の量より多くの量を必要とする可能性がありま す。 以下の式を使用して、入力されるデータのサイズを求めます。 [number_of_input_rows [( Sum (column_size) + 16] 以下の表に、ソータデータ計算用のカラムサイズ値をデータ型ごとに示します。 データ型 カラムサイズ バイナリ 精度 +8 最も近似の8の倍数に丸める 日付/時刻 29 ソータキャッシュサイズ 257 データ型 カラムサイズ Decimal、高精度オフ(全精度) 16 Decimal、高精度(精度<=18) 24 Decimal、高精度(精度>18、<=28) 32 Decimal、高精度(精度>28) 16 Decimal、高精度(負の位取り) 16 ダブル 16 Real 16 Integer 16 String、Text Unicodeモード: 2*(精度+5) ASCIIモード: 精度 +9 ソータートランスフォーメーションのポート ソータートランスフォーメーションのすべてのポートで、データの入力、ソート、および 他のトランスフォーメーションへのデータの出力が可能です。 ソータートランスフォーメーションは、以下のポートタイプを備えています。 キー ソートキーとは、ソート基準として使用する1つまたは複数のポートのことです。Data Integration Serviceは、キーとして指定されたポートに従って、データをソートしま す。 データをソートするキーポートの方向を昇順または降順に設定します。 Developerツールでは[方向]のデフォルト値は昇順に設定されています。 その他 ソートキーとして指定されていないポート。 258 章 26: ソータートランスフォーメーション ソータートランスフォーメーションの作成 再利用可能なソータートランスフォーメーションまたは再利用不可能なソータートランス フォーメーションを作成できます。 再利用可能なソータートランスフォーメーションの作 成 複数のマッピングまたはマプレットで使用する、再利用可能なソータートランスフォーメ ーションを作成します。 1. [Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。 2. [ファイル] > [新規] > [トランスフォーメーション]をクリックします。 [新規]ダイアログボックスが表示されます。 3. ソータートランスフォーメーションを選択します。 4. [次へ]をクリックします。 5. トランスフォーメーションの名前を入力します。 6. [完了]をクリックします。 トランスフォーメーションがエディタに表示されます。 7. [新規]をクリックして、トランスフォーメーションにポートを追加します。 8. ポートを編集して、名前、データ型、および精度を設定します。 9. [キー]を選択して、ポートをソートキーとして指定します。 10. [詳細]ビューをクリックし、トランスフォーメーションのプロパティを編集しま す。 再利用不可能なソータートランスフォーメーションの 作成 マッピングまたはマプレットで再利用不可能なソータートランスフォーメーションを作成 します。 1. マッピングまたはマプレットで、トランスフォーメーションパレットからエディタに ソータートランスフォーメーションをドラッグします。 トランスフォーメーションがエディタに表示されます。 2. [プロパティ]ビューで、トランスフォーメーションの名前と説明を編集します。 3. [ポート]ビューで、[新規]をクリックして、トランスフォーメーションにポート を追加します。 4. ポートを編集して、名前、データ型、および精度を設定します。 5. [キー]を選択して、ポートをソートキーとして指定します。 6. [詳細]ビューをクリックし、トランスフォーメーションのプロパティを編集しま す。 ソータートランスフォーメーションの作成 259 ソータートランスフォーメーションの例 顧客からのすべての注文に関する情報を含むデータベーステーブルPRODUCT_ORDERSがあり ます。 ORDER_ID 43 41 43 45 41 45 45 ITEM_ID 123456 456789 000246 000468 123456 123456 456789 ITEM ItemA ItemB ItemC ItemD ItemA ItemA ItemB QUANTITY 3 2 6 5 4 5 3 PRICE 3.04 12.02 34.55 0.56 3.04 3.04 12.02 PRODUCT_ORDERSでソータートランスフォーメーションを使用し、ORDER_IDをソートキー に、方向を降順に指定します。 データをソートした後、Data Integration Serviceはソータートランスフォーメーション から以下の行を渡します。 ORDER_ID 45 45 45 43 43 41 41 ITEM_ID 000468 123456 456789 123456 000246 456789 123456 ITEM ItemD ItemA ItemB ItemA ItemC ItemB ItemA QUANTITY 5 5 3 3 6 2 4 PRICE 0.56 3.04 12.02 3.04 34.55 12.02 3.04 注文ごとの合計金額と数量を特定する必要があります。 ソータートランスフォーメーショ ンの結果をアグリゲータトランスフォーメーションへの入力として使用できます。 パフォ ーマンスを向上させるには、アグリゲータトランスフォーメーションでソート済み入力を 使用します。 [ソート済み入力]オプションを使用しない場合、Data Integration Serviceは読み込み と並行して集計計算を実行します。 すべての集計計算が正確に実行されるように、Data Integration Serviceはソース全体の読み込みが完了するまで各グループのデータを格納し ておきます。 [ソート済み入力]オプションを使用する場合、前もってデータを正しくソ ートしておかないと、予期しない結果が生じます。 アグリゲータトランスフォーメーションでポート別のORDER_IDグループがあり、ソート済 み入力オプションが選択されているとします。 ソータートランスフォーメーションからデ ータを渡すと、アグリゲータトランスフォーメーションはORDER_IDをグループ化して、注 文ごとの合計金額を計算します。 ORDER_ID 45 43 41 260 章 26: ソータートランスフォーメーション SUM 54.06 216.42 36.2 第 27 章 SQLトランスフォーメーショ ン この章では、以下の項目について説明します。 ¨ SQLトランスフォーメーションの概要, 261 ページ ¨ 詳細プロパティ, 262 ページ ¨ SQLトランスフォーメーションのポート, 263 ページ ¨ SQLトランスフォーメーションクエリ, 266 ページ ¨ 入力行と出力行のカーディナリティ, 267 ページ ¨ SQLトランスフォーメーションの例, 272 ページ SQLトランスフォーメーションの概要 SQLトランスフォーメーションは、マッピングの中間地点でSQLクエリを処理します。 デー タベースに行を挿入したり、データベースの行を削除、更新、および取得したりできま す。SQL DDL文を実行して、マッピングの中間地点でテーブルを作成したり、削除したりで きます。 SQLトランスフォーメーションは、トランスフォーメーションのSQLエディタで定義したSQL クエリを実行します。 SQLトランスフォーメーションはクエリを処理し、行を返し、デー タベースエラーがあれば返します。 入力ポートの値をクエリ内のパラメータに渡すことが できます。 SQLトランスフォーメーションはアクティブなトランスフォーメーションです。 入力行ご とに複数の行をトランスフォーメーションで返すことができます。 SQLトランスフォーメーションを設定する場合は、以下のタスクを実行します。 1. 接続先のデータベースタイプなどのトランスフォーメーションプロパティを定義しま す。 2. ポートを定義します。 3. SQLエディタでSQLクエリを作成します。 261 4. マッピングにSQLトランスフォーメーションを設定し、アップストリームのポートに接 続します。 5. データをプレビューして結果を確認します。 詳細プロパティ SQLトランスフォーメーションのプロパティはいつでも変更できます。 デフォルトのデー タベースタイプはOracleです。 接続する必要があるデータベースが別のデータベースタイ プである場合は、トランスフォーメーションにポートを追加する前にデータベースタイプ を変更します。 以下のSQLトランスフォーメーションプロパティが[詳細プロパティ]ビューに表示されま す。 トレースレベル SQLトランスフォーメーションを含むマッピングを実行したときにマッピングログに記 録される情報の詳細度を設定します。 SQLトランスフォーメーションのトレースレベ ルを[Verbose Data]に設定した場合、Data Integration Serviceは準備する各SQL クエリをマッピングログに書き込みます。 接続タイプ Data Integration Serviceがデータベースにどのように接続するかを示します。 接 続タイプは静的プロパティです。 Data Integration Serviceはデータベースに1回接 続します。 SQLトランスフォーメーション内のデータベース接続オブジェクトを選択 します。 読み取り専用です。 データベースタイプ SQLトランスフォーメーションが接続するデータベースのタイプです。 データベース タイプをリストから選択します。 Oracle、Microsoft SQL Server、IBM DB2、または ODBCを選択することができます。 データベースタイプは、[ポート]ビューで割り当 てることができるデータ型に影響を与えます。 データベースタイプを変更すると、 Developerツールによって入力ポート、出力ポート、およびパススルーポートのポート データ型が変更されます。 行内のエラー時でも処理を続行する SQLエラーの発生後、クエリ内の残りのSQL文の処理を継続します。 統計を出力として含める NumRowsAffected出力ポートを追加します。ポートは、入力行のINSERT、DELETE、お よびUPDATEクエリ文で更新されたデータベース行の合計数を返します。 最大出力行数 SQLトランスフォーメーションでSELECTクエリから出力できる最大行数を定義します。 行が制限されないように設定するには、[最大出力行数]をゼロに設定します。 クエリの説明 トランスフォーメーションに定義したSQLクエリの説明です。 262 章 27: SQLトランスフォーメーション SQLモード SQLクエリが例外スクリプトであるかどうかや、クエリがトランスフォーメーションに 定義されるかどうかを決定します。 [SQLモード]は[クエリ]です。 SQLトランス フォーメーションは、SQLエディタで定義されたクエリを実行します。 読み取り専用 です。 SQLクエリ SQLエディタで設定されたSQLクエリを表示します。 SQLトランスフォーメーションのポート SQLトランスフォーメーションを作成すると、DeveloperツールはデフォルトでSQLErrorポ ートを作成します。 [ポート]ビューで入力ポート、出力ポート、およびパススルーポー トを追加します。 SQLトランスフォーメーションには、以下のタイプのポートがあります。 入力 SQLクエリで使用できるソースデータを受け取ります。 出力 SQL SELECTクエリからのデータベースデータを返します。 パススルー トランスフォーメーションを介してソースデータをそのままの状態で渡す入出力ポー トです。 SQLError データベースからのSQLエラーを返します。 エラーが発生しなかった場合は、NULLを 返します。 NumRowsAffected 入力行のINSERT、DELETE、およびUPDATEクエリ文の影響を受けたデータベース行の合 計数を返します。 このポートは、出力行に統計の更新を含めることを選択したとき に、Developerツールによって作成されます。 入力ポート SQLトランスフォーメーションには、出力ポートに渡さないデータの入力ポートを作成でき ます。 SQLクエリで入力ポートを参照し、また、ポート名をパラメータとしてクエリに含 めることができます。 入力ポートを追加するには、[ポート]ビューで[入力]をクリックします。 [新規]を クリックします。 ポートを追加するときは、ポートのネイティブデータ型を入力します。 ネイティブデータ 型は、接続先しようとしているデータベースで有効なデータ型です。 ネイティブデータ型 を設定すると、トランスフォーメーションデータ型が表示されます。 行をSQLトランスフ SQLトランスフォーメーションのポート 263 ォーメーションにドラッグすると、Developerツールは、接続しようとしているデータベー スで有効なデータ型に基づいて、ネイティブデータ型を設定します。 クエリで使用するカ ラムのデータ型がデータベース内のカラムと同じデータ型であることを確認します。 注: ポートに対して[出力にコピー]を選択すると、入力ポートはパススルーポートにな ります。 出力ポート 出力ポートは、SELECT文から値を返します。 SELECT文のカラムごとに出力ポートを作成し ます。 出力ポートを設定するときは、そのポートのネイティブデータ型を選択します。 出力ポー トのネイティブデータ型は、データベース内の対応するカラムのデータ型と同じである必 要があります。 ネイティブデータ型が設定されると、Developerツールはポートのトラン スフォーメーションデータ型を定義します。 例えば、SQLトランスフォーメーションに、Oracleデータベースに対する以下のSQLクエリ が含まれるとします。 SELECT FirstName, LastName, Age FROM EMPLOYEES この場合、SQLトランスフォーメーションに以下の出力ポートとネイティブデータ型を設定 できます。 出力ポー ト ネイティブ データ型 トランスフォーメーションデータ型 FirstNm varchar2 string LastNm varchar2 string Age number double 出力ポートの数および順序は、クエリのSELECT文が返すカラムの数および順序と一致する 必要があります。 出力ポートの数がSELECT句内のカラム数よりも多い場合、余分なポート はNULL値を返します。 出力ポートの数がSELECT句内のカラム数よりも少ない場合、Data Integration Serviceは行エラーを生成します。 トランスフォーメーションの接続先のデータベースタイプを変更すると、Developerツール によって出力ポートのネイティブタイプが変更されます。 Developerツールは、すべての ポートに対して正しいデータ型を選択するとはかぎりません。 データベースタイプを変更 した場合は、各出力ポートのネイティブデータ型がデータベース内のカラムと同じデータ 型であることを確認します。 例えば、Oracleデータベースカラムに対してnVarchar2が選 択される可能性があります。 その場合、データ型をvarchar2に変更する必要があります。 出力ポートは、SQLトランスフォーメーションの[ポート]ビューで設定します。 パススルーポート パススルーポートは、トランスフォーメーションを介してデータをそのままの状態で渡す 入出力ポートです。 SQLトランスフォーメーションは、SQLクエリが行を返すかどうかにか かわらず、パススルーポートにデータを返します。 264 章 27: SQLトランスフォーメーション 入力行にSELECTクエリ文が含まれている場合、SQLトランスフォーメーションは、データベ ースから返される行ごとに、パススルーポートにデータを返します。 クエリ結果に複数の 行が含まれている場合、SQLトランスフォーメーションは、各行についてパススルーデータ の生成を繰り返します。 クエリによって行が返されなかった場合、SQLトランスフォーメーションは、出力カラム に、NULL値を含むパススルーカラムデータを返します。たとえば、INSERT、UPDATE、およ びDELETEの各文を含むクエリでは、行が返されません。クエリでエラーが発生した場合、 SQLトランスフォーメーションは、パススルーカラムデータ、SQLErrorメッセージ、および NULL値を出力ポートに返します。 SELECTクエリからデータを返すようにパススルーポートを設定することはできません。 パススルーポートを作成するには、入力ポートを作成して[出力にコピー]を選択しま す。 Developerツールによって出力ポートが作成され、ポート名に「_output」接尾語が追 加されます。 Developerツールがパススルーポートに対して作成する出力ポートを変更す ることはできません。 「_output」接尾語が含まれる出力ポートを作成することはできま せん。 SQLErrorポート SQLErrorポートは、データベースからのSQLエラーを返します。 SQLクエリに構文エラーがある場合、エラーポートにはデータベースからのエラーテキスト が含まれます。たとえば、以下のSQLクエリでは、Oracleデータベースからの行エラーが生 成されます。 SELECT Product_ID FROM Employees EmployeesテーブルにはProduct_IDはありません。Data Integration Serviceによって1行 が生成されます。 SQLErrorポートに、以下のエラーテキストが1行で含まれます。 ORA-0094: “Product_ID”: invalid identifier Database driver error... Function Name: Execute SQL Stmt: SELECT Product_ID from Employees Oracle Fatal Error SQLクエリには複数のクエリ文を設定できます。 SQLのエラー時でも処理を続行するように SQLトランスフォーメーションを設定した場合、SQLトランスフォーメーションは1つのクエ リ文に対して行を返し、別のクエリ文に対してはデータベースエラーを返すことがありま す。 SQLトランスフォーメーションは、データベースエラーを別の行に返します。 影響を受けた行の数 各入力行のINSERT、UPDATE、またはDELETE文が変更する行の数を返すには、 NumRowsAffected出力ポートを有効にします。 Data Integration Serviceは、クエリの文 ごとにNumRowsAffectedを返します。 NumRowsAffectedはデフォルトでは無効になっていま す。 NumRowsAffectedを有効にし、SQLクエリにINSERT、UPDATE、またはDELETE文が含まれない 場合、各出力行のNumRowsAffectedはゼロになります。 SQLクエリに複数の文が含まれる場合、Data Integration Serviceは文ごとに NumRowsAffectedを返します。 NumRowsAffectedには、入力行のINSERT、UPDATE、および DELETE文が変更する行の合計が含まれます。 SQLトランスフォーメーションのポート 265 たとえば、クエリに以下の文が含まれているとします。 DELETE from Employees WHERE Employee_ID = ‘101’; SELECT Employee_ID, LastName from Employees WHERE Employee_ID = ‘103’; INSERT into Employees (Employee_ID, LastName, Address)VALUES (‘102’, 'Gein', '38 Beach Rd') DELETE文は、1行に影響を与えます。SELECT文は、どの行にも影響を与えません。INSERT文 は、1行に影響を与えます。 Data Integration Serviceは、DELETE文から1行返します。 NumRowsAffectedは1になりま す。Data Integration ServiceはSELECT文から1行返し、NumRowsAffectedはゼロになりま す。 Data Integration ServiceはINSERT文から1行返し、NumRowsAffectedは1になりま す。 SQLトランスフォーメーションクエリ データベースから行を取得したり、データベースを更新したりするには、SQLエディタで SQLクエリを作成します。 クエリを作成するには、[SQL]ビューのSQLエディタでクエリ文を入力します。 SQLエデ ィタには、クエリで参照できるトランスフォーメーションポートのリストが表示されま す。ポート名をダブルクリックして、クエリパラメータとして追加できます。 SQLクエリを作成すると、クエリ内のポート名がSQLエディタによって検証されます。ま た、文字列の置換に使用するポートが文字列データ型であるかどうかも確認されます。SQL エディタでは、SQLクエリの構文は検証されません。 静的なSQLクエリを作成することができます。 クエリ文は変更されませんが、値を変更す るパラメータを含めることができます。 Data Integration Serviceでは、入力行ごとに クエリが実行されます。 SQLクエリの定義 入力行ごとに同じクエリ文を実行するSQLクエリを定義します。 クエリのカラムやテーブ ルを、行内の入力ポートの値に基づいて変更できます。 WHERE句の値も、入力ポートの値 に基づいて変更できます。 入力行ごとのWHERE句のデータ値を変更するには、パラメータのバインドを設定します。 入力ポートの値に基づいてクエリのカラムを変更したり、テーブルを変更したりするに は、文字列の置換を使用します。 パラメータのバインド クエリ内のデータを変更するには、クエリパラメータを設定し、これらのクエリパラメー タをトランスフォーメーションの入力ポートにバインドします。 パラメータを入力ポート にバインドする場合、クエリ内のポート名を指定します。 SQLエディタでは、ポート名は 疑問符(?)で囲まれます。 クエリデータは、ポート内のデータの値に基づいて変化しま す。 266 章 27: SQLトランスフォーメーション 以下のクエリでは、パラメータのバインドが使用されています。 DELETE FROM Employee WHERE Dept = ?Dept? INSERT INTO Employee(Employee_ID, Dept) VALUES (?Employee_ID?, ?Dept?) UPDATE Employee SET Dept = ?Dept? WHERE Employee_ID > 100 以下のSQLクエリには、SQLトランスフォーメーションのEmployee_IDおよびDept入力ポート にバインドするクエリパラメータがあります。 SELECT Name, Address FROM Employees WHERE Employee_Num =?Employee_ID? and Dept = ?Dept? ソースに以下の行があるとします。 Employee_ID 100 123 130 Dept Products HR Accounting Data Integration Serviceによって、行から以下のクエリ文が生成されます。 SELECT Name, Address FROM Employees WHERE Employee_ID = ‘100’ and DEPT = ‘Products’ SELECT Name, Address FROM Employees WHERE Employee_ID = ‘123’ and DEPT = ‘HR’ SELECT Name, Address FROM Employees WHERE Employee_ID = ‘130’ and DEPT = ‘Accounting’ 文字列の置換 クエリ文のコンポーネントを置換するには、文字列変数を使用します。 例えば、文字列変 数を使用してクエリ内のテーブル名を置換することができます。 また、SELECT文内のカラ ム名を置換することもできます。 テーブル名を置換するには、各入力行からテーブル名を受け取るように入力ポートを設定 します。SQLエディタで、ポートの[文字列置換]リストからポートを選択します。 Developerツールは、クエリ内の名前で入力ポートを識別し、名前をティルダ(~)で囲み ます。 以下のクエリには、文字列変数~Table_Port~が含まれています。 SELECT Emp_ID, Address from ~Table_Port~ where Dept = ‘HR’ ソースから、以下の値がTable_Portカラムに渡されるとします。 Table_Port Employees_USA Employees_England Employees_Australia Data Integration Serviceは、~Table_Port~変数を入力ポートのテーブル名の値で置換し ます。 SELECT Emp_ID, Address from Employees_USA where Dept = ‘HR’ SELECT Emp_ID, Address from Employees_England where Dept = ‘HR’ SELECT Emp_ID, Address from Employees_Australia where Dept = ‘HR’ 入力行と出力行のカーディナリティ Data Integration ServiceによってSELECTクエリが実行されると、SQLトランスフォーメ ーションは、取得した行ごとに1行を返します。 クエリでデータが取得されない場合、SQL トランスフォーメーションによって、入力行ごとにゼロまたは1行が返されます。 入力行と出力行のカーディナリティ 267 クエリ文の処理 SELECTクエリが成功した場合、SQLトランスフォーメーションによって複数の行が取得 されることがあります。クエリに他の文が含まれる場合、Data Integration Service は、SQLエラーまたは影響を受けた行の数が含まれる行を生成することがあります。 ポート設定 NumRowsAffected出力ポートには、1つの入力行のUPDATE、INSERT、またはDELETE文が 変更する行の数が含まれます。 SQLトランスフォーメーションは、クエリ内の文ごと に影響を受けた行の数を返します。 SQLトランスフォーメーションにパススルーポー トが設定されている場合、トランスフォーメーションは各ソース行に対して最低1回は カラムデータを返します。 最大行数の設定 [最大出力行数]は、SQLトランスフォーメーションでSELECTクエリから返される行数 を制限します。 エラー行 Data Integration Serviceは、接続エラーまたは構文エラーを検出すると、行エラー を返します。 SQLトランスフォーメーションには、エラーをSQLErrorポートに返しま す。 SQLエラー時に続行 SQL文にエラーがあっても処理を継続するようにSQLトランスフォーメーションを設定 できます。 SQLトランスフォーメーションは、行エラーを生成しません。 クエリ文の処理 SQLクエリのタイプによって、SQLトランスフォーメーションで返される行数が決定しま す。 SQLトランスフォーメーションは、ゼロ行、1行、または複数の行を返すことができま す。 クエリにSELECT文が含まれる場合、SQLトランスフォーメーションによってデータベ ースの各列が出力ポートに返されます。該当するすべての行がトランスフォーメーション によって返されます。 以下の表に、クエリモードでエラーが発生しない場合に、さまざまなタイプのクエリ文に ついてSQLトランスフォーメーションが生成する出力行を示します。 268 クエリー文 出力行 UPDATE、INSERT、DELETEのみ クエリ内の文ごとに1行。 1つ以上のSELECT文 取得されたデータベース行の合計数。 CREATE、DROP、TRUNCATEなどのDDLク エリー クエリ内の文ごとに1行。 章 27: SQLトランスフォーメーション ポート設定 [統計を出力として含める]を有効にすると、DeveloperツールによってNumRowsAffected ポートが作成されます。 Data Integration Serviceは、SQLクエリの文に基づいて NumRowsAffectedが含まれる行を少なくとも1行返します。 以下の表に、NumRowsAffectedを有効にした場合に、SQLトランスフォーメーションによっ て生成される出力行を示します。 クエリ文 出力行 UPDATE、INSERT、DELETEの み 文ごとにその文のNumRowsAffectedが含まれる1 行。 1つ以上のSELECT文 取得されたデータベース行の合計数。 各行のNumRowsAffectedはゼロです。 CREATE、DROP、TRUNCATEな どのDDLクエリ ゼロのNumRowsAffectedが含まれる1行。 最大出力行数 SQLトランスフォーメーションがSELECTクエリに対して返す行数を制限できます。 [最大 出力行数]プロパティを設定して、行数を制限します。 クエリに複数のSELECT文が含まれ る場合、SQLトランスフォーメーションはすべてのSELECT文からの合計の行数を制限しま す。 例えば、[最大出力行数]を100に設定したとします。 クエリに以下の2つのSELECT文が含 まれるとします。 SELECT * FROM table1; SELECT * FROM table2; 最初のSELECT文によって200行が返され、2番目のSELECT文によって50行が返される場合、 SQLトランスフォーメーションによって最初のSELECT文から100行が返されます。SQLトラン スフォーメーションは、2番目の文からは行を返しません。 出力行が制限されないように設定するには、[最大出力行数]をゼロに設定します。 エラー行 Data Integration Serviceは、接続エラーまたは構文エラーを検出すると行エラーを返し ます。 SQLトランスフォーメーションは、SQLエラーをSQLErrorポートに返します。 パススルーポートまたはNumRowsAffectedポートを設定した場合、SQLトランスフォーメー ションは各ソース行について最低1行のデータを返します。クエリから行が返されない場 合、SQLトランスフォーメーションはパススルーデータとNumRowsAffected値を返します が、出力カラムにはNULL値を返します。NULL値の行を削除するには、フィルタトランスフ ォーメーション経由で出力行を渡します。 入力行と出力行のカーディナリティ 269 以下の表に、UPDATE、INSERT、またはDELETEのクエリ文について、SQLトランスフォーメー ションが生成する行を示します。 設定されている NumRowsAffectedポートまたは パススルーポート SQLError 出力される行 いずれのポートも設定されてい ません いいえ SQLErrorポートにNULLを含む1 行。 いずれのポートも設定されてい ません はい SQLErrorポートにエラーを含む1 行 どちらかが設定済み いいえ クエリ文ごとに、 NumRowsAffectedまたはパススル ーのカラムデータを含む1行。 どちらかが設定済み はい SQLErrorポート、 NumRowsAffectedポート、または パススルーポートのデータにエラ ーを含む1行。 以下の表に、SELECT文についてSQLトランスフォーメーションが生成する出力行の数を示し ます。 270 設定されている NumRowsAffectedポー トまたはパススルー ポート SQLError 出力される行 いずれのポートも設定 されていません いいえ 1つ以上の行。各SELECT文から返された行 によって異なります。 いずれのポートも設定 されていません はい 正常に終了した文の出力行の合計よりも 大きい1行。最後の行には、SQLErrorポー トにエラーが含まれます。 どちらかが設定済み いいえ 1つ以上の行。各SELECT文で返された行に よって異なります。 - NumRowsAffectedが有効な場合、各行に は値0のNumRowsAffectedカラムが含ま れます。 - パススルーポートが設定されている場 合、各行にはパススルーカラムデータ が含まれます。クエリによって複数の 行が返された場合、パススルーカラム 章 27: SQLトランスフォーメーション 設定されている NumRowsAffectedポー トまたはパススルー ポート SQLError 出力される行 データは各行について重複して生成さ れます。 どちらかが設定済み はい 1つ以上の行。各SELECT文で返された行に よって異なります。最後の行には、 SQLErrorポートのエラーが含まれます。 - NumRowsAffectedが有効な場合、各行に は値0のNumRowsAffectedカラムが含ま れます。 - パススルーポートが設定されている場 合、各行にはパススルーカラムデータ が含まれます。クエリによって複数の 行が返された場合、パススルーカラム データは各行について重複して生成さ れます。 以下の表に、CREATE、DROP、TRUNCATEなどのDDLクエリについて、SQLトランスフォーメー ションが生成する出力行の数を示します。 設定されている NumRowsAffectedポートまたは パススルーポート SQLError 出力される行 いずれのポートも設定されてい ません いいえ SQLErrorポートにNULLを含む1 行。 いずれのポートも設定されてい ません はい SQLErrorポートにエラーを含む1 行。 どちらかが設定済み いいえ 値0のNumRowsAffectedカラムお よびパススルーカラムデータを含 む1行 どちらかが設定済み はい SQLErrorポートにエラー、値0の NumRowsAffectedカラム、および パススルーカラムデータを含む1 行 SQLエラー時に続行 クエリ文で発生するSQLエラーは無視することができます。 [行内のエラー時でも処理を 続行する]を有効にします。 Data Integration Serviceは、行の残りのSQL文の実行を続 行します。 Data Integration Serviceは行エラーを生成しません。 ただし、SQLErrorポートには、 失敗したSQL文とエラーメッセージが含まれます。 入力行と出力行のカーディナリティ 271 たとえば、クエリに以下の文があるとします。 DELETE FROM Persons WHERE FirstName = ‘Ed’; INSERT INTO Persons (LastName, Address) VALUES ('Gein', '38 Beach Rd') DELETE文が失敗した場合、SQLトランスフォーメーションによってデータベースからエラー メッセージが返されます。Data Integration ServiceはINSERT文の処理を続行します。 データベースエラーをトラブルシューティングしたり、エラーをエラーを発生させたクエ リ文に関連付けたりするには、[行内のエラー時でも処理を続行する] オプションを無効 にします。 SQLトランスフォーメーションの例 あなたはHypostores corporationの人事部の開発者です。 Hypostoresは、従業員の給与 情報を人事の従業員データとは別のデータベースで管理しています。 人事部では、複数の 地域をまたいで、従業員と給与を単一ビューで照会する必要があります。 あなたは、従業員の論理データオブジェクト内の従業員データと給与データを単一ビュー に表示する、論理データオブジェクトマッピングを作成する必要があります。 従業員データソースを使用して論理データオブジェクトマッピングを作成します。 これ に、給与データベースから給与及び入社日を取得するSQLトランスフォーメーションを追加 します。 論理データオブジェクトマッピング 論理データオブジェクトマッピングには、以下のオブジェクトが含まれます。 Employeeテーブル Human Resourcesデータベース内の、従業員データの入力リレーショナルテーブル。 Salaryテーブル 従業員の給与および入社日が含まれる、Payrollデータベース内のテーブル。 データ ベースはOracleデータベースです。 SQLトランスフォーメーション 各従業員行に対して入社日と給与を取得するトランスフォーメーション。 このトラン スフォーメーションはPayrollデータベースに接続され、データベース内のSalaryテー ブルに対してSQLクエリを実行します。 論理データオブジェクト 従業員データと給与データが結合されたビューを含みます。 論理データオブジェクト は、SQLトランスフォーメーションから出力を受け取ります。 SQLErrorsファイル SQLErrorsファイルは、データベースのSQLエラーが含まれるフラットファイルです。 Data Integration Serviceは、入力行ごとに少なくとも1行をSQLErrorsファイルに書 272 章 27: SQLトランスフォーメーション き込みます。 SQLエラーが発生しなかった場合、SQLErrorカラムにはNULLが含まれま す。 SQLErrorsファイルを確認して、エラーをトラブルシューティングします。 Salaryテーブル Salaryテーブルは、Payrollデータベース内のリレーショナルテーブルです。 このテーブ ルには、給与部門が管理する従業員データが含まれます。 SQLトランスフォーメーション は、Salaryテーブルから入社日と従業員の給与を取得します。 以下の表に、Salaryテーブルのいくつかの行を示します。 Employee_Num HireDate Salary 10 3-May-97 232000 11 11-Sep-01 444000 12 17-Oct-89 656000 13 13-Aug-07 332100 Employeeテーブル ソースはHuman ResourcesデータベースのEmployeeテーブルです。 以下の表に、Employeeテーブルのサンプル行を示します。 EmpID LastName FirstName DeptId Phone 10 Smith Martha FIN (415) 552-1623 11 Jones Cynthia ENG (415) 552-1744 12 Russell Cissy SLS (415) 552-1656 13 Goyal Girish FIN (415) 552-1656 SQLトランスフォーメーション SQLトランスフォーメーションは、PayrollデータベースのSalaryテーブルから従業員の入 社日と給与を取得します。 SalaryテーブルはOracleデータベース内にあります。 SQLトランスフォーメーションを設定するには、以下の手順に従います。 1. SQLトランスフォーメーションのプロパティを設定します。 2. ポートを定義します。 SQLトランスフォーメーションの例 273 3. SQLクエリを作成します。 4. SQLトランスフォーメーションのデータベース接続を設定します。 SQLトランスフォーメーションのプロパティを定義します。 [詳細プロパティ]ビューで、SQLトランスフォーメーションのプロパティを設定します。 以下のプロパティを設定します。 データベースタイプ データベースタイプはOracleです。 ポートを定義するときに、Oracleに対して適用可 能なポートデータ型を選択できます。 行内のエラー時でも処理を続行する 無効にします。行でSQLエラーが発生した場合は、処理を停止します。 統計を出力として含める 無効にします。NumRowsAffected出力ポートを作成しないでください。 ポートの定義 Employeeソーステーブルのカラムごとに、入力ポートを定義します。 入力ポートをカラム のパススルーポートに変更するには、[出力にコピー]を選択します。 [出力にコピー] を選択すると、Developerツールはコピーするポートごとに対応する出力ポートを作成しま す。 以下の入力パススルーポートを作成します。 名前 タイプ ネイティ ブタイプ 精度 スケール 出力にコ ピー EmpID decimal number(p, 2) 4 0 x LastName string varchar2 30 0 x FirstName string varchar2 20 0 x DeptID string varchar2 4 0 x Phone string varchar2 16 0 x SQLトランスフォーメーションでの出力ポートを以下に挙げます。 274 名前 タイプ ネイティブ タイプ 精度 スケール EmpID decimal number(p,s) 4 0 LastName string varchar2 30 0 章 27: SQLトランスフォーメーション 名前 タイプ ネイティブ タイプ 精度 スケール FirstName string varchar2 20 0 DeptID string varchar2 4 0 Phone string varchar2 16 0 HireDate date/time timestamp 29 0 Salary decimal number(p,s) 8 2 [出力にコピー]を選択すると、Developerツールは、作成する各出力行に「_output」接 尾辞を追加します。 入社日と給与のカラムに対して、出力ポートを手動で定義します。 SQLトランスフォーメ ーションは、ポート内のSalaryテーブルから入社日と給与のカラムを返します。 SQLクエリの定義 Salaryテーブルから各従業員の入社日と給与を選択するSQLクエリを作成します。 SQLトランスフォーメーションの[SQL]ビューでクエリを定義します。 SQLエディタで以下のクエリを入力します。 select HIREDATE,SALARY,from Salary where EMPLOYEE_NUM =?EmpID? Hiredate、Salary、およびEmployee_Numは、Salaryテーブルのカラム名です。 ?EMPID? は、EmpIDポートの値を含むパラメータです。 データベース接続の定義 [ランタイム]ビューで、SQLトランスフォーメーションの接続先データベースのデータベ ース接続オブジェクトを選択します。 Oracleデータベースの接続オブジェクトを選択しま す。 出力 SQLErrorポートとEmpID_outputポートをSQLErrorsフラットファイルに接続します。 SQL エラーが発生しなかった場合、SQLErrorポートにはNULL値が含まれます。 EmpID出力ポートと他の出力ポートを論理データオブジェクトに接続します。 SQLトランスフォーメーションは、Employeeテーブルのデータが含まれる行を返し、Salary テーブルの入社日と給与を組み込みます。 SQLトランスフォーメーションの例 275 以下の表に、論理データオブジェクトのいくつかの行を示します。 276 EmpID LastNam e FirstNa me DeptId Phone HireDat e Salary 10 Smith Martha FIN (415) 552-162 3 1997030 3 00:00:0 0 2320.00 11 Jones Cynthia ENG (415) 552-174 4 2001091 1 00:00:0 0 4440.00 12 Russell Cissy SLS (415) 552-165 6 1989101 7 00:00:0 0 6560.00 13 Goyal Girish FIN (415) 552-166 0 2007081 3 00:00:0 0 3210.00 章 27: SQLトランスフォーメーション 第 28 章 標準化トランスフォーメーシ ョン この章では、以下の項目について説明します。 ¨ 標準化トランスフォーメーションの概要, 277 ページ ¨ 標準化ストラテジ, 278 ページ ¨ 標準化のプロパティ, 278 ページ ¨ 標準化ストラテジの設定, 279 ページ 標準化トランスフォーメーションの概要 標準化トランスフォーメーションは、入力文字列を調べ、それらの文字列の標準化された バージョンを作成するパッシブなトランスフォーメーションです。 標準化トランスフォーメーションでは、入力文字列の標準化されたバージョンを含むカラ ムを作成します。 それらのカラムを作成するときに、入力データに含まれる文字列を置き 換えたり削除したりできます。 例えば、標準化トランスフォーメーションを使用して、Street、St.、およびSTRという文 字列を含むアドレスデータのカラムを調べ、 それらの文字列のすべての出現箇所をStとい う文字列に置き換えることができます。 標準化トランスフォーメーションには、複数の標準化ストラテジを作成できます。 それぞ れのストラテジに複数の標準化操作を含めることができます。 標準化トランスフォーメー ションには、ストラテジを作成するためのウィザードが用意されています。 277 標準化ストラテジ 入力文字列の標準化されたバージョンを含むカラムを作成するには、標準化ストラテジを 使用します。 標準化ストラテジを設定するときは、操作を1つ以上追加し、 操作ごとに特定の標準化タ スクを実装します。 標準化ストラテジには、以下のタイプの操作を追加できます。 参照テーブルの一致を有効な値で置換 参照テーブルの値に一致する文字列を、参照テーブルの"有効"値で置き換えます。 参照テーブルの一致をカスタム文字列で置換 参照テーブルの値に一致する文字列を、ユーザー定義の置き換え文字列で置き換えま す。 参照テーブルの一致を削除 参照テーブルの値に一致する文字列を削除します。 カスタム文字列の置換 ユーザー定義の文字列を、ユーザー定義の置き換え文字列で置き換えます。 カスタム文字列の削除 ユーザー定義の文字列を削除します。 重要: 操作の順序は変更が可能です。 各操作で前の操作の結果を読み取るため、操作の 順序によってストラテジの出力が変わることがあります。 標準化のプロパティ 標準化のストラテジや操作のプロパティを設定するには、標準化トランスフォーメーショ ンの[ストラテジ]ビューを選択します。 ストラテジのプロパティ ストラテジのプロパティは、ストラテジ内のすべての操作に適用されます。 設定できるス トラテジのプロパティを次に示します。 複数のスペースの削除 連続する複数のスペースを1つのスペースに置き換えます。 末尾および先頭のスペースの削除 データ文字列の先頭および末尾からスペースを削除します。 区切り文字 検索トークンを定義する区切り文字を指定します。 例えば、[セミコロン]を選択し た場合、標準化トランスフォーメーションで文字列"oranges;apples;"を検索する 278 章 28: 標準化トランスフォーメーション と、"oranges"と"apples"の各文字列が検出されます。 区切り文字を選択しなかった 場合は、デフォルトでスペース区切り文字が使用されます。 操作のプロパティ 以下のタイプの標準化操作のプロパティを設定できます。 参照テーブル操作 参照テーブル操作のプロパティを次に示します。 ¨ 参照テーブル。 データの標準化に使用する参照テーブルを指定します。 [参照] をクリックして参照テーブルを選択します。 ¨ 大文字小文字の区別。 入力文字列を参照テーブルのエントリと照合するときに大 文字と小文字を区別するかどうかを指定します。 ¨ 置換後の文字列。 参照テーブルのエントリに一致する入力文字列を、指定したテ キストに置き換えます。 置換操作にのみ適用されます。 ¨ スコープ。 参照テーブルの値を含む入力文字列の部分を指定します。 カスタム文字列操作 カスタム文字列操作のプロパティを次に示します。 ¨ トークンの照合。 入力データ内で検索する検索文字列を定義します。 ¨ 置換後の文字列。 指定した検索文字列に一致する入力文字列を置き換えます。 置 換操作にのみ適用されます。 ¨ スコープ。 検索する入力文字列の部分を指定します。 標準化ストラテジの設定 標準化ストラテジを設定するには、標準化トランスフォーメーションの[ストラテジ]ビ ューで設定を編集します。 1. [ストラテジ]ビューを選択します。 2. [新規]をクリックします。 新しいストラテジ ウィザードが開きます。 3. [入力]フィールドをクリックして、ストラテジのポートを選択します。 4. ストラテジのプロパティを設定し、[次へ]をクリックします。 5. 操作を選択し、[次へ]をクリックします。 6. 操作のプロパティを設定します。 7. 必要に応じて、[次へ]をクリックして、その他の操作をストラテジに追加します。 8. ストラテジにすべての操作を追加したら、[完了]をクリックします。 9. 必要に応じて、その他のストラテジをトランスフォーメーションに追加します。 10. 必要に応じて、ストラテジや操作を処理する順序を変更します。 ストラテジまたは操 作を選択し、[上に移動]または[下に移動]をクリックします。 標準化ストラテジの設定 279 第 29 章 共有体トランスフォーメーシ ョン この章では、以下の項目について説明します。 ¨ 共有体トランスフォーメーションの概要, 280 ページ ¨ グループおよびポート, 281 ページ ¨ 共有体トランスフォーメーションの詳細プロパティ, 281 ページ ¨ 共有体トランスフォーメーションの処理, 282 ページ ¨ 共有体トランスフォーメーションの作成, 282 ページ 共有体トランスフォーメーションの概要 共有体トランスフォーメーションを使用して、複数のパイプラインまたはパイプラインブ ランチから、1つのパイプラインブランチにデータを統合します。 共有体トランスフォーメーションは、複数の入力グループと1つの出力グループを持つアク ティブなトランスフォーメーションです。 一致するポートを持つソースを統合し、入力グ ループと同じポート構造を持つ出力グループを通じてデータを渡します。 共有体トランス フォーメーションは、Developerツールで重複行を削除せずに複数のソースのデータを統合 する場合に使用します。 例えば、American Bankの顧客アカウントデータがOracleデータベースにあり、 California Bankの顧客アカウントデータがIBM DB2データベースにあるとします。 この場 合、それらの顧客アカウントデータの単一ビューを作成するには、 顧客とアカウントの間 のリレーションを定義する論理データオブジェクトモデルをインポートします。 このモデ ルには、アカウントと顧客の属性を含むAccount論理データオブジェクトを含めます。 次 に、Accountデータオブジェクトの論理データオブジェクト読み取りマッピングを作成しま す。 このマッピングに、ソースオブジェクトのデータを統合して顧客アカウントデータの 単一ビューを作成する共有体トランスフォーメーションを含めます。 280 グループおよびポート 共有体トランスフォーメーションには複数の入力グループと1つの出力グループがありま す。入力グループは作成が可能で、いくつでも作成することができます。 出力グループ は、Developerツールによって1つだけ作成されます。 出力グループを作成、編集、または 削除することはできません。 各グループには一致するポートが必要です。 ポートを作成するには、トランスフォーメーションからコピーするか手動で作成します。 ポートを作成すると、Developerツールにより、各入力グループに入力ポートが作成され、 出力グループに出力ポートが作成されます。 Developerツールでは、入力ポートと出力ポ ートのそれぞれに対してユーザーが指定した出力ポート名が使用されます。 また、データ 型、精度、位取りなどのメタデータは、ポートごとに同じものが使用されます。 入力グループは、1つのパイプラインの異なるブランチ、あるいは異なるソースパイプライ ンから接続することができます。 共有体トランスフォーメーションをマッピングに追加す る際には、すべての入力グループで同じポートに接続していることを確認する必要があり ます。1つの入力グループのポートは接続していても、別の入力グループの同じポートを接 続していない場合、Data Integration Serviceは未接続のポートにNULLを渡します。 共有体トランスフォーメーションの詳細プロ パティ Data Integration Serviceでの共有体トランスフォーメーションのログ詳細の表示方法を 指定できるプロパティを設定します。 [詳細]タブでは、以下のプロパティを設定します。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル グループおよびポート 281 トレースレベル 説明 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 共有体トランスフォーメーションの処理 共有体トランスフォーメーションを使用して、複数のパイプラインまたはパイプラインブ ランチから、1つのパイプラインブランチにデータを統合します。Data Integration Serviceは、すべての入力グループを並列に処理します。 また、共有体トランスフォーメ ーションに接続されたソースを読み込むと同時に、データブロックをトランスフォーメー ションの入力グループに渡します。 共有体トランスフォーメーションは、Data Integration Serviceからブロックを受け取る順番に基づいてデータブロックを処理しま す。 入力グループの入力データはブロックされません。 共有体トランスフォーメーションの作成 共有体トランスフォーメーションは、再利用可能または再利用不可能なトランスフォーメ ーションのどちらとしても作成できます。 再利用可能な共有体トランスフォーメーションの作成 複数のマッピングまたはマプレットで使用する場合は、再利用可能な共有体トランスフォ ーメーションを作成します。 1. 2. [Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。 [ファイル] > [新規] > [トランスフォーメーション]をクリックします。 [新規]ダイアログボックスが表示されます。 3. 共有体トランスフォーメーションを選択します。 4. [次へ]をクリックします。 5. トランスフォーメーションの名前を入力します。 6. [完了]をクリックします。 トランスフォーメーションがエディタに表示されます。 282 章 29: 共有体トランスフォーメーション 7. [新規]ボタンをクリックして、トランスフォーメーションにポートを追加します。 8. ポートを編集して、名前、データ型、および精度を設定します。 9. [グループ]ビューを選択します。 10. [新規]ボタンをクリックして、入力グループを追加します。 11. [詳細]ビューをクリックし、トランスフォーメーションのプロパティを編集しま す。 再利用不可能な共有体トランスフォーメーションの作 成 再利用不可能なトランスフォーメーションは、特定のマッピングまたはマプレットで作成 します。 1. マッピングまたはマプレットで、トランスフォーメーションパレットからエディタに 共有体トランスフォーメーションをドラッグします。 トランスフォーメーションがエディタに表示されます。 2. [全般]ビューで、トランスフォーメーションの名前と説明を編集します。 3. アップストリームトランスフォーメーションのポートをすべて選択し、共有体トラン スフォーメーションにドラッグします。 ドラッグしたポートが、共有体トランスフォ ーメーションの入力グループおよび出力グループのポートとして表示されます。 4. [プロパティ]ビューの[グループ]タブで[新規]をクリックして、入力グループ を追加します。 既存の入力グループと同様のポートを含む入力グループがもう1つ表示されます。 5. 共有体トランスフォーメーションの出力グループのポートを選択し、マッピング内の ダウンストリームトランスフォーメーションにドラッグします。 共有体トランスフォーメーションの作成 283 第 30 章 アップデートストラテジトラ ンスフォーメーション この章では、以下の項目について説明します。 ¨ アップデートストラテジトランスフォーメーションの概要, 284 ページ ¨ マッピング内の行のフラグ設定, 285 ページ ¨ 個々のターゲットに対する更新オプションの指定, 287 ページ アップデートストラテジトランスフォーメー ションの概要 アップデートストラテジトランスフォーメーションは、挿入、更新、または拒否のフラグ を行に設定するアクティブなトランスフォーメーションです。アップデートストラテジト ランスフォーメーションを使用して、適用する条件に基づいてターゲットの既存の行の変 更を制御します。 アップデートストラテジトランスフォーメーションはアクティブなトランスフォーメーシ ョンであるため、通過する行の数を変更してしまう可能性があります。アップデートスト ラテジトランスフォーメーションは、特定の条件を満たしているかどうかを確認するため に各行をテストし、それに応じて行にフラグを設定します。アップデートストラテジトラ ンスフォーメーションは、挿入、更新、または削除のフラグを設定する行を次のトランス フォーメーションに渡します。拒否のフラグが設定された行を次のトランスフォーメーシ ョンに渡すか、拒否のフラグが設定された行を削除するか、トランスフォーメーションを 設定できます。 例えば、アップデートストラテジトランスフォーメーションを用いて、全顧客の行に対し て、メールアドレスが変更された際に更新フラグを設定したり、 全従業員の行に対して、 社員でなくなった者については拒否フラグを設定したりできます。 284 アップデートストラテジの設定 更新方式を定義するには、以下の手順を実行します。 1. マッピング内の行に対する挿入、更新、削除、または拒否のフラグ設定を制御する場 合は、マッピングにアップデートストラテジトランスフォーメーションを追加しま す。アップデートストラテジトランスフォーメーションを使用して、同じターゲット に対する行に異なるデータベース操作のフラグを設定したり、行を拒否したりしま す。 2. マッピングの設定時に、個々のターゲットの挿入オプション、更新オプション、およ び削除オプションを定義します。ターゲット単位で、挿入または削除のフラグが設定 されたすべての行に対して、挿入および削除を許可または禁止できます。更新のフラ グが設定されたすべての行に対して更新を処理するさまざまな方法を選択できます。 マッピング内の行のフラグ設定 個々の行に挿入、更新、削除、または拒否のフラグを設定するには、アップデートストラ テジトランスフォーメーションを使用します。 個々の行が特定の条件を満たしているかどうかを見るために、各行をテストするアップデ ートストラテジトランスフォーメーションを使用します。次に、各行に数値コードを割り 当て、特定のデータベース操作に関して行にフラグを設定します。 以下の表に、各データベース操作を表す定数とその数値を示します。 操作 定数 数値 挿入 DD_INSERT 0 更新 DD_UPDATE 1 削除 DD_DELETE 2 Reject DD_REJECT 3 Data Integration Serviceは、上記以外の値をすべて挿入として扱います。 アップデートストラテジ式 式エディタでアップデートストラテジ式を入力します。 アップデートストラテジ式は、トランスフォーメーション言語のIIFまたはDECODE関数を使 用して、各行をテストします。たとえば次のIIF文は、入力日付が適用日付よりあとの場合 は行に拒否のフラグを設定します。そうでない場合、この文は行に更新のフラグを設定し ます。 IIF( ( ENTRY_DATE > APPLY_DATE), DD_REJECT, DD_UPDATE) マッピング内の行のフラグ設定 285 アップデートストラテジトランスフォーメーションの 詳細プロパティ Data Integration Serviceでのアップデートストラテジトランスフォーメーションのデー タの処理方法を指定するには、詳細プロパティを設定します。 拒否された行の転送 アップデートストラテジトランスフォーメーションが、拒否された行を次のトランス フォーメーションに渡すか、拒否された行を削除するかを決定します。デフォルトで は、Data Integration Serviceは拒否された行を次のトランスフォーメーションに転 送します。Data Integration Serviceは、行に拒否のフラグを設定し、拒否ファイル に書き込みます。[拒否された行の転送]を選択しなかった場合、Data Integration Serviceは拒否された行を削除してマッピングログファイルに書き込みます。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 アグリゲータトランスフォーメーションとアップデー トストラテジトランスフォーメーション 同じパイプライン内でアグリゲータトランスフォーメーションとアップデートストラテジ トランスフォーメーションを連結する場合はアグリゲータを配置してからアップデートス トラテジトランスフォーメーションを配置します。この順番では、Data Integration 286 章 30: アップデートストラテジトランスフォーメーション Serviceは集計計算を実行し、計算結果を含む行に、挿入、更新、削除、または拒否のフラ グを設定します。 アグリゲータトランスフォーメーションの前にアップデートストラテジトランスフォーメ ーションを配置する場合は、アグリゲータトランスフォーメーションが、異なる演算子を フラグ付された行をどのように処理するかを考慮する必要があります。この順番では、 Data Integration Serviceは挿入、更新、削除、または拒否のフラグを行に設定してから 集計計算を実行します。行にどのようにフラグを設定するかによって、アグリゲータトラ ンスフォーメーションが計算で使用する行の値をどのように扱うかが決まります。例え ば、行に削除のフラグを設定した後で、その行を使用して合計を計算すると、Data Integration Serviceはこの行の値を合計から除算します。行に拒否のフラグを設定した後 で、その行を使用して合計を計算すると、Data Integration Serviceはこの行の値を合計 には加えません。行に挿入または更新のフラグを設定した後で、その行を使用して合計を 計算すると、Data Integration Serviceはこの行の値を合計に加えます。 個々のターゲットに対する更新オプションの 指定 アップデートストラテジトランスフォーメーションを使用して特定のデータベース操作の 行ごとにフラグを設定した後、マッピング内のターゲットごとに挿入、更新、および削除 オプションを定義します。挿入または削除のフラグが設定された行に対して、挿入または 削除を禁止できます。更新のフラグが設定されたすべての行に対して更新を処理するさま ざまな方法を選択できます。 マッピング内のターゲットデータオブジェクトの詳細プロパティでアップデートストラテ ジオプションを定義します。次のアップデートストラテジオプションを設定できます。 挿入 ターゲットに挿入するようにフラグが設定されたすべての行を挿入します。デフォル トでは有効になっています。 削除 ターゲットから削除するようにフラグが設定されたすべての行を削除します。デフォ ルトでは有効になっています。 アップデートストラテジ 既存の行のアップデートストラテジ。 次のいずれかのストラテジを選択します。 ¨ [更新時に更新]。更新のフラグが設定されたすべての行を更新します。これがデ フォルト値です。 ¨ [挿入時に更新]。更新のフラグが設定されたすべての行を挿入します。 ¨ [更新しない場合は挿入]。更新のフラグが設定されたすべての行がターゲット内 に存在している場合、これらの行を更新した後、挿入のマークが付いている残りの 行を挿入します。 個々のターゲットに対する更新オプションの指定 287 テーブルの切り詰め データをロードする前にターゲットを切り詰めます。デフォルトでは無効になってい ます。 288 章 30: アップデートストラテジトランスフォーメーション 第 31 章 Webサービスコンシューマト ランスフォーメーション この章では、以下の項目について説明します。 ¨ Webサービスコンシューマトランスフォーメーションの概要, 289 ページ ¨ WSDLの選択, 292 ページ ¨ Webサービスコンシューマトランスフォーメーションのポート, 292 ページ ¨ Webサービスコンシューマトランスフォーメーションの入力マッピング, 294 ページ ¨ Webサービスコンシューマトランスフォーメーションの出力マッピング, 297 ページ ¨ Webサービスコンシューマトランスフォーメーションの詳細プロパティ, 301 ページ ¨ Webサービスコンシューマトランスフォーメーションの作成, 304 ページ ¨ Webサービスコンシューマトランスフォーメーションの例, 306 ページ Webサービスコンシューマトランスフォーメ ーションの概要 Webサービスコンシューマトランスフォーメーションは、Webサービスクライアントとして Webサービスに接続し、データへのアクセスまたはデータの変換を行います。 Webサービスは、SOAP、WSDL、XMLなどのオープンスタンダードを使用します。SOAPは、Web サービス用の通信プロトコルです。Webサービスクライアントの要求およびWebサービスの 応答は、SOAPメッセージです。WSDLは、Webサービス操作のプロトコル、形式、およびシグ ネチャを記述するXMLスキーマです。 Webサービス操作には、情報の要求、データ更新の要求、タスク実行の要求などがありま す。例えば、getCustomerOrdersというWebサービス操作を実行するためのSOAPリクエスト をWebサービスコンシューマトランスフォーメーションが送信するとします。トランスフォ ーメーションは、リクエストで顧客IDを渡します。Webサービスは、顧客情報と注文情報を 取得し、その情報をSOAPレスポンスでトランスフォーメーションに返します。 Webサービスコンシューマトランスフォーメーションは、WSDL、Webサービス接続、または エンドポイントURL入力ポートで定義されたエンドポイントURLを使用してWebサービスに接 続します。Webサービス接続でWebサービスのセキュリティを有効にします。 289 SOAPメッセージ Webサービスコンシューマトランスフォーメーションは、Webサービスプロバイダと情報を やり取りしたり、Webサービスを要求したりするために、Simple Object Access Protocol (SOAP)を使用します。SOAPは、Webサービスのリクエストメッセージとレスポンスメッセ ージの形式を定義します。 Webサービスコンシューマトランスフォーメーションでデータを変換すると、トランスフォ ーメーションによってSOAPリクエストが生成され、Webサービスへの接続が行われます。ト ランスフォーメーションは、WSDLオブジェクト、Webサービス接続、またはエンドポイント URL入力ポートで定義されたエンドポイントURLを使用してWebサービスに接続します。SOAP リクエストには、要求された操作を実行するためにWebサービス側で必要となる情報が含ま れています。 そのWebサービス操作から、SOAP応答としてデータがトランスフォーメーシ ョンに返されます。トランスフォーメーションは、SOAPレスポンスからデータをマップ し、出力ポートでデータを返します。 トランスフォーメーションは、ドキュメント/リテラルのエンコーディングを使用するSOAP 1.1メッセージを処理できます。トランスフォーメーションはSOAP 1.2メッセージを処理で きません。 SOAPメッセージはXMLです。SOAPメッセージに複数出現要素が含まれている場合は、要素の グループによってXML階層のレベルが形成されます。あるレベルが別のレベル内にネストさ れている場合、グループは関連しています。 SOAPリクエストメッセージには、階層データを含めることができます。例えば、販売デー タベースに顧客の注文を追加する要求をWebサービスコンシューマトランスフォーメーショ ンが送信するとします。トランスフォーメーションは、2つのデータグループをSOAPリクエ ストメッセージで渡します。一方のグループには顧客のIDと名前が含まれ、もう一方のグ ループには注文情報が含まれています。注文情報は複数回出現します。 SOAPレスポンスメッセージには、階層データを含めることができます。例えば、Webサービ スコンシューマトランスフォーメーションが顧客注文に対するSOAPリクエストを生成する とします。Webサービスは、注文ヘッダーと複数出現の注文詳細要素を、SOAPレスポンスで 返します。 WSDLファイル WSDLファイルには、送信側と受信側が交換するデータを認識できるように、Webサービスに 渡されるデータが記述されています。Webサービスコンシューマトランスフォーメーション を作成する前に、WSDLファイルをリポジトリにインポートする必要があります。 WSDLファイルには、Webサービスコンシューマが正しい形式で要求メッセージを送信できる よう、データに対して実行する操作と、プロトコルやトランスポートへのバインドについ て記述されています。 WSDLファイルには、Webサービスに接続するネットワークアドレス が記述されています。 WSDLには、SOAPリクエストメッセージとSOAPレスポンスメッセージのエンコード方法に関 する情報が含まれています。 SOAPエンコーディングによりSOAPメッセージ本体の形式が決 まります。SOAPエンコーディングには、WebサービスがWebサービスコンシューマとの通信 に使用する要求と応答のメッセージの形式が記述されています。 Webサービス開発者は、 さまざまなツールキットを使用してWebサービスを作成できます。ツールキットによって、 サポートされるSOAPメッセージのエンコーディング方法が異なります。 290 章 31: Webサービスコンシューマトランスフォーメーション Webサービスコンシューマトランスフォーメーションは、ドキュメント/リテラルSOAPエン コーディングスタイルをサポートします。Webサービスコンシューマトランスフォーメーシ ョンでは、開発者はWSDL 1.1を使用できます。 MIME、DIME、MTOMメッセージなど、WSDL アタッチメントは使用できません。 操作 Webサービスには、そのWebサービスがサポートする各アクションの操作が含まれていま す。 例えば、顧客名を受信して顧客の詳細を応答で返すgetcustomeridという操作をWebサービ スに含めることができます。操作入力には、顧客名の要素が含まれています。操作出力に は、顧客名に基づいた顧客詳細の要素が含まれています。 Webサービスコンシューマトランスフォーメーションを設定するときに、トランスフォーメ ーションが操作入力にデータをマップする方法と、トランスフォーメーションが操作出力 からデータをマップする方法を定義します。トランスフォーメーションでは以下の情報を 設定します。 入力マッピング トランスフォーメーションの入力ポートをWebサービスの操作入力ノードにマップする 方法を定義します。操作入力では、SOAPリクエスト内の操作の要素を定義します。 出力マッピング Webサービスの操作出力ノードをトランスフォーメーションの出力ポートにマップする 方法を定義します。操作出力では、SOAPレスポンス内の操作の要素を定義します。 Webサービスのセキュリティ Webサービス接続でWebサービスのセキュリティを有効にします。次のタイプのセキュリテ ィを設定できます。 Webサービスのセキュリティ Data Integration Serviceは、WebサービスプロバイダにSOAPリクエストを送信する ときにWebサービスセキュリティヘッダーを含めることができます。 Webサービスセキ ュリティヘッダーには、WebサービスプロバイダがData Integration Serviceを認証 できるように、認証情報が含まれています。 Webサービスコンシューマトランスフォーメーションによってユーザー名トークンが提 供されます。Data Integration Serviceは、SOAPリクエスト内に個別のセキュリティ SOAPヘッダーを作成し、そのSOAPリクエストをWebサービスプロバイダに渡します。 Webサービス接続では、以下のタイプのWebサービスセキュリティを使用できます。 ¨ PasswordText: Data Integration ServiceはWS-Security SOAPヘッダー内のパス ワードを変更しません。 ¨ PasswordDigest: Data Integration Serviceはナンスとタイムスタンプをパスワ ードに組み合わせます。Data Integration Serviceでは、そのパスワードにSHAハ ッシュを適用してbase64エンコーディングでエンコードし、エンコードしたパスワ ードをSOAPヘッダー内で使用します。 Webサービスコンシューマトランスフォーメーションの概要 291 Transport Layer Security(TLS) Secure Sockets Layer(SSL)を使用してTCP/IPのトランスポートレイヤ(TCPレイ ヤ)の上に実装されるセキュリティ。Webサービスは、WebアドレスとしてHypertext Transfer Protocol over SSL(HTTPS)を使用し、メッセージをセキュリティ保護し て転送します。 HTTP認証、プロキシサーバー認証、SSL証明書の認証方式を、TLSと組 み合わせて使用できます。 WSDLの選択 Webサービスコンシューマトランスフォーメーションを作成する前に、WSDLファイルをモデ ルリポジトリにインポートする必要があります。WSDLファイルは、実行するWebサービスの 操作シグネチャを定義します。WSDLファイルをインポートすると、Developerツールによっ て、他のトランスフォーメーションで再利用可能な物理データオブジェクトが作成されま す。 WSDLファイルには複数の操作を定義できます。 Webサービスコンシューマトランスフォー メーションを作成する場合は、実行する操作を選択します。 操作入力と操作出力の階層を Webサービスコンシューマトランスフォーメーションに表示できます。 これらの階層によ って、SOAPリクエストメッセージとSOAPレスポンスメッセージの構造が定義されます。 Webサービスコンシューマトランスフォーメ ーションのポート トランスフォーメーションのポートを表示するときに、操作階層を確認する必要がない場 合はポートを表示します。ポートを表示している場合は、グループの定義、ポートの定 義、操作出力から出力ポートへのノードのマップを行うことができます。 Webサービスコンシューマトランスフォーメーションには、複数の入力グループと複数の出 力グループを設定できます。ポートの作成時に、グループを作成してそのグループにポー トを追加します。操作入力階層または操作出力階層の構造に基づいて、グループ階層内の ポートを定義します。キーを追加して、子グループと親グループを関連付けます。プライ マリキーは、最下位のグループを除く階層内のすべてのグループに必要です。外部キー は、ルートグループを除く階層内のすべてのグループに必要です。 トランスフォーメーションにはRequestInputという名前のルート入力グループがありま す。プライマリキーをルート入力グループに追加する必要があります。プライマリキー は、string型、bigint型、integer型のいずれかをとる必要があります。 ルート入力グループにはパススルーポートを追加できます。パススルーポートは、データ を変更せずにトランスフォーメーションを介してデータを渡します。パススルーポート は、入力データ内に1回しか指定できません。パススルーポートは、任意の出力グループに 追加できます。出力ポートを入力ポートに関連付けます。SOAPリクエストを通じて渡した 入力値は、SOAPレスポンスからの出力行に繰り返し出現します。 292 章 31: Webサービスコンシューマトランスフォーメーション さらに、HTTPヘッダー、クッキーポート、動的URLポート、Webサービスセキュリティ認証 用のポートをルート入力グループに追加することができます。ルートグループ内のデータ は1回だけ出現します。 操作出力ノードを出力ポートへマップするには、[場所]カラム内のフィールドをクリッ クし、[場所の選択]ダイアログボックスで階層を展開します。次に、階層からノードを 選択します。 HTTPヘッダー入力ポート Webサービスには追加のHTTPヘッダーが必要な場合があります。ルート入力グループ内に入 力ポートを作成して、Webサービスプロバイダに追加のヘッダー情報を渡すことができま す。 HTTPヘッダーとHTTPポートを追加するには、追加先のルート入力グループを選択し、[新 規]ボタンの隣の矢印をクリックします。 次に、[HTTPヘッダー]をクリックします。ヘ ッダー名とポート名を入力します。 複数のHTTPヘッダーを作成することができます。 その他の入力ポート 事前定義済みの入力ポートをWebサービスコンシューマトランスフォーメーションに追加で きます。 以下の事前定義済み入力ポートを追加できます。 クッキーポート クッキー認証を使用するようWebサービスコンシューマトランスフォーメーションを設 定することができます。 リモートWebサービスサーバーは、クッキーに基づいて、Web サービスコンシューマユーザーを追跡します。 マッピングでWebサービスの呼び出し を繰り返し行う場合に、パフォーマンスが向上します。 クッキーポートをWebサービス要求メッセージに対して投影する場合、Webサービスプ ロバイダは応答メッセージでクッキー値を返します。 クッキー値は、マッピング内の 他のトランスフォーメーションダウンストリームに渡すことも、ファイル内に保存す ることもできます。 クッキー値をファイルに保存する場合、そのクッキー値をWebサ ービスコンシューマトランスフォーメーションに対する入力として設定できます。 クッキー出力ポートは、Webサービスコンシューマトランスフォーメーションの任意の 出力グループに投影できます。 エンドポイントURLポート Webサービスコンシューマトランスフォーメーションは、エンドポイントURLを使用し てWebサービスに接続します。エンドポイントURLは、WSDLファイル、Webサービス接 続、またはエンドポイントURL入力ポートで定義できます。トランスフォーメーション がURLをポートで動的に受信すると、Data Integration ServiceはWSDLファイルまたは Webサービス接続で定義されているURLをオーバーライドします。 Webサービスコンシューマトランスフォーメーションには、Webサービス要求ごとにURL ポート値を1個設定できます。 エンドポイントURLポートはルート入力グループに追加 します。 Webサービスコンシューマトランスフォーメーションのポート 293 WS-Securityポート Webサービスのセキュリティは、Webサービス接続で有効にします。Webサービスのセキ ュリティを有効にするときは、Webサービス接続またはWS-Security入力ポートでユー ザー名とパスワードを定義する必要があります。 WS-Securityポートを追加するときは、トランスフォーメーションの入力ポートを通じ てユーザー名とパスワードを渡します。トランスフォーメーションがユーザー名とパ スワードをポートで動的に受信すると、Data Integration ServiceはWebサービス接 続で定義されている値をオーバーライドします。 注: Webサービス接続には、HTTPとWS-Securityの認証用のユーザー名とパスワードが1 組あります。 事前定義済みの入力ポートを追加するには、[ポート]領域でルート入力グループをクリ ックします。[新規]ボタンの隣の矢印をクリックし、[その他のポート]をクリックし ます。 追加するポートを選択します。 Webサービスコンシューマトランスフォーメー ションの入力マッピング トランスフォーメーションのポートを表示するときに、操作入力階層を確認するには入力 マッピングを表示します。入力マッピングを表示している場合は、入力グループの定義、 入力ポートの定義、操作入力ノードへの入力ポートのマップを行うことができます。 入力マッピングは以下の領域で構成されています。 ポート [ポート]領域では、トランスフォーメーションの入力グループと入力ポートを作成 します。 操作入力 [操作入力]領域には、WebサービスコンシューマトランスフォーメーションからWeb サービスに伝送されるSOAPリクエストメッセージ内のノードが表示されます。トラン スフォーメーションの作成に使用するWSDLデータオブジェクトにより、操作入力階層 が定義されます。 入力ポートを作成したら、[ポート]領域から[操作入力]領域のノードへ、入力ポート をマップします。入力ポートを操作入力内のノードへマップすると、[操作入力]領域の [場所]カラムにポートの場所が表示されます。 入力階層の第1レベルをマップするよう選択すると、Developerツールによって操作入力の 第1レベルのノードが入力ポートにマップされます。また、マッピングを実行するためのポ ートが作成されます。階層の第1レベルに、複数出現子ノードを伴う複数出現親ノードが含 まれている場合には、Developerツールは階層の第1レベルをマップしません。 1つの文字列またはテキスト入力ポート内のXMLデータを、完全なSOAPリクエストメッセー ジにマップすることができます。XMLデータを完全なSOAPリクエストメッセージにマップす る場合、ポートを操作入力内のノードにマップすることはできません。 入力ポートと操作入力内のノードを結ぶ線を表示するように選択できます。 294 章 31: Webサービスコンシューマトランスフォーメーション 入力ポートをノードにマップするためのルールとガイ ドライン 入力ポートを操作入力階層内のノードにマップする場合には、以下のルールを確認しま す。 ¨ 階層内の1個のノードに対して、1個の入力ポートをマップできます。同じポートを階層 内の任意の数のキーにマップできます。 ¨ 入力ポートとノードのデータ型には互換性が必要です。 ¨ 1つの入力グループ内のノードを、操作入力内の複数の階層レベルにマップできます。 ¨ 操作入力のキーに入力ポートをマップする必要があります。キーにマップするポートの データ型は、string、integer、またはbigintであることが必要です。操作入力内の、 SOAPメッセージに含める階層レベルより上位にある全レベルのキーに、データをマップ します。マップするレベルと、その上位にある全レベルの外部キーを含めます。 注: 操作入力階層の最下位レベルだけをマップする場合は、入力ポートをキーにマップ する必要はありません。 ¨ string型、bigint型、またはinteger型の複数の入力ポートを[操作入力]領域のキー にマップして、複合キーを作成できます。複合キーの[場所]フィールドをクリックし て、入力ポートの順序を変更したり、いずれかのポートを削除したりすることができま す。 [ビューのカスタマイズ]のオプション [操作入力]領域にキーを表示するように、操作入力階層を変更することができます。ノ ードの順序を定義するグループ化構造を表示することもできます。 [操作入力]領域で、[ビューのカスタマイズ]をクリックします。 以下のいずれかのオ プションを有効にします。 シーケンス、選択、およびすべて 要素定義が、シーケンス、選択、すべてのいずれかであるかどうかを示す線を表示し ます。 全グループ内のすべてのノードをSOAPメッセージ内に含める必要があります。 シーケンスグループ内のノードは、WSDL内に定義された順序で並んでいる必要があり ます。 選択グループ内の少なくとも1つ以上のノードが、SOAPメッセージに指定されている必 要があります。 キー [操作入力]領域にキーを表示します。 [操作入力]領域には、各グループ用のキー が含まれています。 [ポート]領域内の入力ポートに、キーを追加できます。 Webサービスコンシューマトランスフォーメーションの入力マッピング 295 操作入力への入力ポートのマッピング 操作入力マッピングを表示している場合は、入力グループの定義、入力ポートの定義、操 作入力ノードへの入力ポートのマッピングを行うことができます。 296 1. Webサービスコンシューマトランスフォーメーションを開きます。 2. ポートビューで、入力マッピングを表示します。 3. ルート入力グループのプライマリキーを定義します。 4. 次のいずれかの方法を使用して、入力グループまたは入力ポートを[ポート]領域に 追加します。 オプショ ン 説明 ノードをドラッグす る [操作入力]領域のグループノードまたは子ノー ドを、[ポート]領域の空のカラムにドラッグし ます。 グループノードの場合、Developerツール によってポートのないグループが追加されます。 グループまたはポー トを手動で追加する グループを追加するには、[新規]ボタンの隣の 矢印をクリックし、[グループ]をクリックしま す。 ポートを追加するには、[新規]ボタンの隣 の矢印をクリックし、[フィールド]をクリック します。 別のトランスフォー メーションからポー トをドラッグする エディタ内で、別のトランスフォーメーションか らWebサービスコンシューマトランスフォーメーシ ョンへ、ポートをドラッグします。 ポートをコピーする 別のトランスフォーメーションからポートを選択 し、[ポート]領域へコピーします。 ポートをコ ピーするには、キーボードショートカットを使用 するか、Developerツールの[コピー]ボタンと [貼り付け]ボタンを使用します。 [階層の第1レベルの マップ]を選択する [階層の第1レベルのマップ]を選択します。 Developerツールによって、操作入力の第1レベル 内のノードが、入力ポートおよび入力グループに マップされます。また、マッピングを実行するた めの入力ポートと入力グループが作成されます。 5. ポートを手動で作成するか、別のトランスフォーメーションからコピーした場合は、 [操作入力]領域の[場所]カラムをクリックし、リストからポートを選択します。 6. 以下のいずれかの方法を使用して、入力ポートを複合キーとしてマップします。 オプション 説明 入力ポートをドラッグする 2つ以上の入力ポートを選択し、操作入 力階層内のキーにドラッグします。 [場所の選択]ダイアログボッ クスから入力ポートを選択する 操作入力階層でキーの[場所]カラムを クリックし、入力ポートを選択します。 章 31: Webサービスコンシューマトランスフォーメーション 7. 以下のいずれかの方法を使用して、ノードの場所をクリアします。 オプション 説明 [クリア]をクリックする [操作入力]領域でノードを1つ以上選択 し、[クリア]をクリックします。 ポートとノードを結ぶ線を 削除する 操作入力領域で入力ポートとノードを結ぶ 線を1本以上選択し、Deleteキーを押しま す。 8. 関連付けられているWSDLデータオブジェクト内に、anyType要素、任意の要素、 anyAttribute属性、派生型の要素、または置き換えグループが含まれている場合は、 [操作入力]領域でオブジェクトを選択します。 ノードの[タイプ]カラムで[選 択]をクリックし、リストから1つ以上のタイプ、要素、または属性を選択します。 9. 文字列入力ポートまたはテキスト入力ポートから完全なSOAPリクエストにXMLデータを マップするには、ポートを右クリックし、[XMLとしてマップ]を選択します。 Webサービスコンシューマトランスフォーメー ションの出力マッピング トランスフォーメーションのポートを表示するときに、操作出力階層を確認するには出力 マッピングを表示します。出力マッピングを表示している場合は、出力グループの定義、 出力ポートの定義、出力ポートへの操作出力ノードのマップを行うことができます。 出力マッピングは以下の領域で構成されています。 操作出力 [操作出力]領域には、WebサービスからWebサービスコンシューマトランスフォーメ ーションに返されるSOAPレスポンスメッセージ内のノードが表示されます。トランス フォーメーションの作成に使用するWSDLデータオブジェクトにより、操作出力階層が 定義されます。 ポート [ポート]領域では、トランスフォーメーションの出力グループと出力ポートを作成 します。 出力ポートを作成したら、[操作出力]領域から[ポート]領域のポートへ、ノードをマ ップします。操作出力から出力ポートへノードをマップすると、[ポート]領域の[場 所]カラムにノードの場所が表示されます。 出力階層の第1レベルをマップするよう選択すると、Developerツールによって操作出力の 第1レベルのノードが出力ポートにマップされます。また、マッピングを実行するためのポ ートが作成されます。階層の第1レベルに、複数出現子ノードを伴う複数出現親ノードが含 まれている場合には、Developerツールは階層の第1レベルをマップしません。 Webサービスコンシューマトランスフォーメーションの出力マッピング 297 出力ポートを階層構造で表示するよう選択することもできます。各子グループは親グルー プの下に表示されます。操作出力内のノードと出力ポートを結ぶ線を表示するように選択 できます。 関連付けられたWSDLデータオブジェクトがリポジトリから削除された場合、Developerツー ルは操作ノードの場所を出力マッピングに保持します。出力マッピングを表示すると、 [ポート]領域の出力ポートの[場所]カラムに操作ノードの場所が表示されます。別の WSDLをトランスフォーメーションに関連付けると、Developerツールはそれぞれの場所が有 効であるかどうかを調べます。場所が有効ではなくなっている場合は、Developerツールは [ポート]領域で操作ノードの場所をクリアします。 ノードを出力ポートにマップするためのルールとガイ ドライン 操作出力階層内のノードを出力ポートにマップする際には、以下のルールを確認します。 ¨ 操作出力ノードおよび出力ポートのデータ型には互換性が必要です。 ¨ グループ内の複数の出力ポートにノードをマップすることはできません。 ¨ パススルーポートを除く各出力ポートには、有効な場所を指定する必要があります。 ¨ 複数出現子ノードを空の出力ポートにドラッグした場合、グループを他の出力グループ に関連付ける必要があります。関連付けるグループを選択すると、Developerツールに より、グループ間を関連付けるキーが作成されます。 ¨ 複数出現要素を、親要素が含まれているグループにドラッグする場合、含める子要素の 出現回数を設定することができます。 または、親グループを、トランスフォーメーシ ョン出力内の複数出現子グループで置き替えることもできます。 SOAPメッセージをXMLとしてマップ データを個別の出力ポートに返す代わりに、完全なSOAPメッセージをXMLとしてマップでき ます。 SOAPメッセージをXMLとしてマップすると、Data Integration Serviceにより完全なSOAP メッセージが1個のポートに返されます。出力ポートは作成しないでください。 完全なメッセージをマップするには、[操作出力]領域でルートグループを右クリックし ます。[XMLとしてマップ]を選択します。 Developerツールにより、文字列出力ポートが作成されます。 精度は65535バイトです。 [ビューのカスタマイズ]のオプション [操作出力]領域内にクッキーポート、パススルーポート、およびキーを表示するよう に、操作出力階層を変更することができます。ノードの順序を定義するグループ化構造を 表示することもできます。 [操作出力]領域で、[ビューのカスタマイズ]をクリックします。 以下のいずれかのオ プションを有効にします。 298 章 31: Webサービスコンシューマトランスフォーメーション シーケンス、選択、およびすべて 要素定義が、シーケンス、選択、すべてのいずれかであるかどうかを示す線を表示し ます。 全グループ内のすべてのノードをSOAPメッセージ内に含める必要があります。 シーケンスグループ内のノードは、WSDL内に定義された順序で並んでいる必要があり ます。 選択グループ内の少なくとも1つ以上のノードが、SOAPメッセージに指定されている必 要があります。 キー [操作出力]領域にキーを表示します。 [操作出力]領域には、各グループのキーが 含まれています。 [ポート]領域内の出力ポートに、キーを追加できます。 パススルーポート [操作出力]領域には、パススルーポートが表示されます。 パススルーポートとは、 トランスフォーメーションを通じて、変更を加えずにデータを渡すポートのことで す。 操作出力内のパススルーポートを、Webサービスコンシューマトランスフォーメ ーションの任意の出力グループへ投影することができます。 パススルーポートはデー タを1回だけ受け取るため、SOAPメッセージ内のルートレベルにあります。 クッキーポート クッキーポートを表示します。 クッキー認証を設定するときに、リモートWebサービ スサーバーは、クッキーに基づいて、Webサービスコンシューマユーザーを追跡しま す。 Webサービスクッキーを要求メッセージ内に投射する場合、Webサービスは応答メ ッセージでクッキー値を返します。 操作出力内のクッキー値を、Webサービスコンシ ューマトランスフォーメーション任意の出力グループへ投影することができます。 出力ポートへの操作出力のマッピング 操作出力マッピングを表示している場合は、出力グループの定義、出力ポートの定義、出 力ポートへの操作出力ノードのマッピングを行うことができます。 1. Webサービスコンシューマトランスフォーメーションを開きます。 2. ポートビューで、出力マッピングを表示します。 3. 以下のいずれかの方法を使用して、出力グループまたは出力ポートを[ポート]領域 に追加します。 オプショ ン 説明 ノードをドラッグす る [操作出力]領域のグループノードまたは子ノー ドを、[ポート]領域の空のカラムにドラッグし ます。 グループノードの場合、Developerツール によってポートのないグループが追加されます。 Webサービスコンシューマトランスフォーメーションの出力マッピング 299 300 オプショ ン 説明 グループまたはポー トを手動で追加する グループを追加するには、[新規]ボタンの隣の 矢印をクリックし、[グループ]をクリックしま す。 ポートを追加するには、[新規]ボタンの隣 の矢印をクリックし、[フィールド]をクリック します。 別のトランスフォー メーションからポー トをドラッグする エディタ内で、別のトランスフォーメーションか らWebサービスコンシューマトランスフォーメーシ ョンへ、ポートをドラッグします。 ポートをコピーする 別のトランスフォーメーションからポートを選択 し、[ポート]領域へコピーします。 ポートをコ ピーするには、キーボードショートカットを使用 するか、Developerツールの[コピー]ボタンと [貼り付け]ボタンを使用します。 [階層の第1レベルの マップ]を選択する [階層の第1レベルのマップ]を選択します。 Developerツールによって、操作出力の第1レベル 内のノードが、出力ポートおよび出力グループに マップされます。また、マッピングを実行するた めの出力ポートと出力グループが作成されます。 4. ポートを手動で作成するか、別のトランスフォーメーションからコピーした場合は、 [ポート]領域の[場所]カラムをクリックし、リストからノードを選択します。 5. 以下のいずれかの方法を使用して、ポートの場所をクリアします。 オプション 説明 [クリア]をクリックする [ポート]領域でポートを1つ以上選択し、 [クリア]をクリックします。 ノードとポートを結ぶ線を 削除する 操作出力のノードと出力ポートを結ぶ線を1 本以上選択し、Deleteキーを押します。 6. 関連付けられているWSDLデータオブジェクト内に、anyType要素、任意の要素、 anyAttribute属性、派生型の要素、または置き換えグループが含まれている場合、 [操作出力]領域でオブジェクトを選択します。 ノードの[タイプ]カラムで[選 択]をクリックし、リストから1つ以上のタイプ、要素、または属性を選択します。 7. 完全なSOAPレスポンスメッセージをXMLとしてマップするには、[操作出力]領域でル ートグループを右クリックし、[XMLとしてマップ]を選択します。 章 31: Webサービスコンシューマトランスフォーメーション Webサービスコンシューマトランスフォーメ ーションの詳細プロパティ Webサービスコンシューマトランスフォーメーションの詳細プロパティには、トレースレベ ル、汎用フォールトポート、およびWebサービス接続が含まれます。 トレースレベル トランスフォーメーションのログに表示される情報の詳細度。 デフォルトは[ノーマル]です。 以下の表に、トレースレベルに関する説明を示します。 トレースレベル 説明 Terse 初期化情報、エラーメッセージ、および拒否データの 通知をログに記録します。 Normal 初期化情報とステータス情報、発生したエラー、トラ ンスフォーメーション行エラーの発生時にスキップし た行を、ログに記録します。 マッピング結果のまと めを行いますが、個別行のレベルでのまとめは行いま せん。 Verbose Initialization Normalトレースで記録される情報に加えて、初期化の 詳細、インデックス名と使用されたデータファイル 名、詳細なトランスフォーメーション統計をログに記 録します。 Verbose Data Verbose Initializationトレースで記録される情報に 加えて、マッピングに渡された各行をログに記録しま す。 また、文字列データがカラムの精度に一致する ように切り捨てられた箇所を記録します。 このトレースレベルを設定した場合、トランスフォー メーションが処理されるときに、ブロック内のすべて の行の行データがログに書き込まれます。 SOAPアクション WSDLに定義されているSOAPアクション値を、Webサービスコンシューマトランスフォー メーションの定数値でオーバーライドします。 汎用SOAPフォールト処理を有効にする WSDLで定義されていないフォールトメッセージを返します。 フォールトのコードとメ ッセージを処理する出力ポートをGenericFault出力グループ内に作成します。 Webサービスコンシューマトランスフォーメーションの詳細プロパティ 301 以下の表に、フォールト出力ポートを示します。 フォールト出力コ ード 説明 フォールトコード フォールトのIDコードを返します。 フォールト文字列 フォールトメッセージ内のエラーの説明を返しま す。 フォールト詳細 WebサービスプロバイダからWebサービスコンシュー マトランスフォーメーションへ、汎用フォールトメ ッセージで渡されるカスタム情報を返します。 フォールトアクタ フォールト発生の原因となったオブジェクトに関す る情報を返します。 HTTPエラー処理を有効にする WebサービスからHTTPエラーを返します。GenericFault出力グループ内にHTTPエラー 出力ポートを作成します。 フォールトをエラーとして扱う フォールトメッセージをマッピングログに記録します。 フォールトが発生すると、 Data Integration Serviceによってマッピングのエラー数が1件加算されます。 接続 Webサービスに接続するWebサービス接続オブジェクトを特定します。Developerツー ルでWebサービス接続を作成します。DeveloperツールまたはAdministratorツールで Webサービス接続を編集します。Webサービス接続を設定するときは、エンドポイント URL、Webサービスに必要なセキュリティのタイプ、および接続タイムアウト期間を設 定します。 Webサービスコンシューマトランスフォーメーションは、エンドポイントURLを使用し てWebサービスに接続します。エンドポイントURLは、WSDLファイル、Webサービス接 続、またはエンドポイントURL入力ポートで定義できます。 以下のガイドラインを使用して、Webサービス接続をいつ設定するか判断します。 ¨ WSDLファイル内のURLと異なるエンドポイントURLを使用する場合、およびエンドポ イントURL入力ポートを使用しない場合に、接続を設定します。 ¨ 接続先のWebサービスにWebサービスセキュリティ、HTTP認証、またはSSL証明書が 必要な場合に、接続を設定します。 ¨ デフォルトの接続タイムアウト時間を変更する場合に、接続を設定します。 注: リポジトリ内のWSDLデータオブジェクトは、Webサービス接続に関連付けることが できます。関連付けられた接続は、そのWSDLから作成される各Webサービスコンシュー マトランスフォーメーションのデフォルト接続になります。 圧縮を有効にする gzip圧縮方式によるSOAPリクエストのエンコードを有効にし、gzipまたはdeflateに よるSOAPレスポンスのデコードを有効にします。 302 章 31: Webサービスコンシューマトランスフォーメーション XMLスキーマ検証 実行時にSOAPレスポンスメッセージを検証します。[無効なXMLでのエラー]または [検証なし]を選択します。 ソート済み入力 入力データを必ずしもすべて処理しなくても、Data Integration Serviceが出力を生 成できるようにします。 入力データが操作入力階層内のキーを基準にしてソートされ る場合に、ソート済み入力を有効にします。 Webサービスのエラー処理 Webサービスコンシューマトランスフォーメーションは、SOAPフォールトとHTTPエラーをマ ッピング内のダウンストリームに渡すように設定できます。 フォールトが発生したとき に、そのフォールトをエラー数に加算することができます。Webサービスのエラー処理は、 トランスフォーメーションの詳細プロパティで設定します。 Webサービスは、応答メッセージを返すか、またはフォールトを返します。 フォールトは エラーの一種です。 Webサービスでは、発生するエラーに基づいて各種のフォールトを生 成できます。 Webサービスコンシューマトランスフォーメーションは、以下のタイプのフォールトを返す ことができます。 SOAPフォールト WSDLによって定義されたSOAPエラー。 フォールトをWebサービス応答メッセージに含 めて返す出力エラーポートを設定します。 Data Integration Serviceは、フォール トのフォールトメッセージ、フォールトコード、フォールト文字列、フォールトアク タ要素を返します。 汎用SOAPフォールト Webサービスは実行時に汎用SOAPフォールトを生成します。 WSDLは、汎用SOAPフォー ルトを定義しません。 汎用SOAPフォールトには、認証エラーやSOAPリクエストエラー などがあります。 HTTPエラー トランスフォーメーション内でHTTPエラー処理を有効にすると、Developerツールによ ってHTTPフォールト出力ポートが追加されます。 Data Integration Serviceは、1個 の文字列ポート内のWebサービスからHTTPエラーを返します。 HTTPエラーには、エラ ーコードとメッセージが含まれます。 WebサービスからのSOAPレスポンスに無効なXMLデータが含まれていた場合、Webサービスコ ンシューマトランスフォーメーションはエラーを返します。 SOAPフォールトをエラーとして扱うかどうか、設定することができます。 [フォールトを エラーとして扱う]を有効にした場合にSOAPフォールトが発生すると、Data Integration Serviceによってマッピングのエラー数が1件加算されます。 フォールトはメッセージログ に記録されます。 Webサービスコンシューマトランスフォーメーションの詳細プロパティ 303 メッセージの圧縮 SOAPメッセージ圧縮を有効にした場合、Webサービスコンシューマトランスフォーメーショ ンはWebサービス要求メッセージを圧縮し、圧縮済みのWebサービス応答メッセージを受け 取ります。 Webサービスコンシューマトランスフォーメーションは、SOAPリクエストをgzip圧縮でエン コードします。 このトランスフォーメーションでは、gzip圧縮またはdeflate圧縮によっ てエンコードされた応答メッセージを受け付けます。 Webサービスからの応答を受信すると、Data Integration ServiceはSOAPメッセージ内の Content-Encoding HTTPヘッダーを調べ、SOAPメッセージをデコードします。 デフォルトは、圧縮なしのエンコードです。 WebサービスはSOAPレスポンスを圧縮しませ ん。 以下の表に、圧縮がオンになっている場合とオフになっている場合の要求メッセージと応 答メッセージのヘッダーを示します。 圧縮 ヘッダー オン Content-Encodingヘッダー: gzip Accept-Encodingヘッダー: gzip、deflate オフ 空のContent-Encodingヘッダー 空のAccept-Encodingヘッダー 応答メッセージはWebサービスによってデフォルトの圧縮方式でエンコードされていること もあります。 メッセージがgzipまたはdeflateでエンコードされている場合、Webサービス コンシューマトランスフォーメーションはそのメッセージをデコードします。 Webサービ スが応答メッセージを予期せずエンコードしていた場合、Webサービスコンシューマトラン スフォーメーションはマッピングログにメッセージを記録します。 圧縮はトランスフォーメーションの詳細プロパティで有効にします。 Webサービスコンシューマトランスフォーメ ーションの作成 再利用可能または再利用不可能なWebサービスコンシューマトランスフォーメーションを作 成できます。再利用可能なトランスフォーメーションは、複数のマッピングで使用できま す。再利用不可能なトランスフォーメーションは、単一のマッピングで使用されます。 304 章 31: Webサービスコンシューマトランスフォーメーション 1. トランスフォーメーションを作成するには、次のいずれかの方法を使用します。 オプ ショ ン 説明 再利用可能 Object Explorerビューで、プロジェクトまたはフォ ルダを選択します。 [ファイル] > [新規] > [トランスフォーメーション]をクリックします。 Webサービスコンシューマトランスフォーメーション を選択し、[次へ]をクリックします。 再利用不可 マッピングまたはマプレットで、トランスフォーメー ションパレットからエディタにWebサービスコンシュ ーマフォーメーションをドラッグします。 [新しいWebサービスコンシューマトランスフォーメーション]ダイアログボックスが 表示されます。 2. [参照]をクリックして、Webサービスの要求メッセージと応答メッセージを定義する WSDLデータオブジェクトを選択します。 リポジトリ内にWSDLが存在しない場合、[新しいWebサービスコンシューマトランスフ ォーメーション]ダイアログボックスからWSDLをインポートすることができます。 3. [参照]をクリックして、WSDLから操作を選択します。 [次へ]をクリックします。 [ポート]領域に、トランスフォーメーションの入力グループと入力ポートが表示さ れます。[操作入力]領域に、要求メッセージ階層が表示されます。 4. 入力グループと入力ポートを定義し、操作入力ノードに入力ポートをマップします。 5. [次へ]をクリックします。 [操作出力]領域に、応答メッセージ階層が表示されます。[ポート]領域に、トラ ンスフォーメーションの出力グループと出力ポートが表示されます。 6. 出力グループと出力ポートを定義し、出力ポートに操作出力ノードをマップします。 7. [完了]をクリックします。 8. 詳細ビューをクリックし、トランスフォーメーションプロパティとWebサービス接続を 設定します。 関連項目: ¨ 「操作入力への入力ポートのマッピング」 (296ページの) ¨ 「出力ポートへの操作出力のマッピング」 (299ページの) ¨ 「Webサービスコンシューマトランスフォーメーションの詳細プロパティ」 (301ページ の) Webサービスコンシューマトランスフォーメーションの作成 305 Webサービスコンシューマトランスフォーメ ーションの例 例えば、RT100製品ラインの注文情報を営業部門へ公開する必要があるとします。 営業チ ームでは、注文の概要と注文の詳細を日常的に照会する必要があります。 仮想テーブル内に毎日の注文情報を公開する論理データオブジェクトを作成します。 読み 取りマッピングには、最新のRT100の注文を返すWebサービスコンシューマトランスフォー メーションが含まれます。 このWebサービスコンシューマトランスフォーメーションは、 RT100製品ラインに対する毎日の注文の概要と詳細をそれぞれ返すWebサービスを使用しま す。 入力ファイル 入力ファイルは、製品ライン番号を含むフラットファイルです。 この入力ファイルを定義する物理データオブジェクトを作成します。 ファイルには Product_Lineというフィールドが1個含まれます。 フィールド値はRT100です。 プロパテ ィビューのランタイムビューで、物理データオブジェクトの場所を定義します。 論理データオブジェクトモデル 所属部門のビジネスアナリストは、注文の概要と注文の詳細のテーブル構造を説明する論 理データモデルを作成します。 この論理データモデルには、Order_Summaryと Order_Detailの論理データオブジェクトが含まれます。 論理データモデルを定義するスキーマが、アナリストによってモデリングツールで作成さ れます。 このスキーマから論理データモデルをインポートし、Order_Summaryと Order_Detailの論理データオブジェクトを作成します。 306 章 31: Webサービスコンシューマトランスフォーメーション 論理データオブジェクトマッピング 論理データオブジェクトマッピングは、論理データオブジェクトを通じてデータにアクセ スする方法を記述したものです。 読み取りマッピングには以下のオブジェクトが含まれます。 Product_Line 製品ライン番号を含む入力フラットファイル。 Exp_Curr_Dateトランスフォーメーション 現在の日付と、Webサービスコンシューマトランスフォーメーションのルートレベル入 力グループのプライマリキーを返す式トランスフォーメーション。 WSC_Orderトランスフォーメーション Webサービスを使用して注文情報を取得するWebサービスコンシューマトランスフォー メーション。 トランスフォーメーションは、製品ラインと現在の日付を応答メッセー ジに含めてWebサービスに渡します。 トランスフォーメーションは、Webサービスから 注文情報を応答メッセージとして受け取ります。 Order_Summaryテーブル Order_No、Customer_Id、Qty、Order_Dateなどの注文情報を含む論理データオブジェ クト。 Order_Detailテーブル Order_No、Product_Id、Qty、Statusなどの詳細な注文情報を含む論理データオブジ ェクト。 Orders_Fault 汎用フォールトメッセージを受け取る出力フラットファイル。 Webサービスコンシューマトランスフォーメーションの例 307 Webサービスコンシューマトランスフォーメーション Webサービスコンシューマトランスフォーメーションは、製品ライン、日付、シーケンス番 号を入力として受け取ります。 このトランスフォーメーションは、Get_Order_Info Webサ ービス操作を使用して、注文情報を取得します。 Webサービスコンシューマトランスフォーメーションを作成する場合、要求と応答のWebサ ービスメッセージを記述するWSDLデータオブジェクトを選択します。 Webサービスメッセ ージには、XML要素の階層グループが含まれます。 要素には他の要素を含めることができ ます。 要素によっては、複数回出現するものもあります。 トランスフォーメーション を、リポジトリ内のOrder_Info WSDLオブジェクトから作成します。 トランスフォーメーションの入力ポートを設定し、ポートを操作入力階層にマップしま す。操作出力階層から出力ポートにノードをマップします。Webサービス接続および実行時 プロパティを設定します。 トランスフォーメーション入力マッピング ポートビューに入力マッピングを表示している場合、入力ポートを定義し、それらのポー トを操作入力のノードにマップできます。 トランスフォーメーションの[ポート]領域には、ルートグループとOrderグループがあり ます。 ルートグループは、Request入力グループです。 Request入力グループに、プライ マリキーを表すポートを1個追加します。 OrderグループにはSelect_Date入力ポートとSelect_Product_Line入力ポートがありま す。 これらの入力ポートを、[操作入力]領域のOrder_DateノードとProduct_Lineノードにマ ップします。 [操作入力]領域は、WebサービスコンシューマトランスフォーメーションがWebサービス に渡す要求メッセージを定義します。 [操作入力]領域には、デフォルトでノードが表示 されます。 トランスフォーメーション出力マッピング ポートビューに出力マッピングが表示されている場合、操作出力のノードをトランスフォ ーメーション出力グループにマップすることで、出力ポートを定義できます。 Webサービスは、以下の階層をWebサービス応答メッセージに含めて返します。 Response Orders Order Key_Order Order_ID Order_Date Customer_ID Total_Qty Order_Details Order_Detail Product_ID Description Qty Status 308 章 31: Webサービスコンシューマトランスフォーメーション Webサービスから複数の注文が返されます。 Orderは、Ordersレベルの複数出現ノードで す。個々の注文に対して、Webサービスは注文の詳細を複数返すことができます。 Order_Detailは、Order_Detailレベルの複数出現ノードです。 注: Developerツールにより、ユーザーインタフェースにKey_Orderノードが追加されま す。 これらのキーを出力グループにマッピングすることで、グループ間のリレーションを 定義できます。 この例では、Order_IDは、Orderのプライマリキーであると同時に Order_Detailsの外部キーでもあります。 [ポート]領域で、以下の出力グループを作成します。 Order Order_ID Order_Date Customer_ID Total_Qty Order_Detail Order_ID Product_ID Description Qty Status Data Integration Serviceは、Order_IDの値が変更されると必ず、Orderグループから行 を書き出します。 Data Integration Serviceは、Order_IDとProduct_IDの値が変更されると必ず、 Order_Detailグループから行を書き出します。 トランスフォーメーションの詳細プロパティ Webサービスコンシューマトランスフォーメーションの以下の詳細プロパティを設定しま す。 汎用SOAPフォールト処理を有効にする SOAPフォールトメッセージを受け取る出力ポートを追加します。 接続 WebサービスにアクセスするWebサービス接続を選択します。 圧縮を有効にする Webサービスコンシューマトランスフォーメーションにより、Webメッセージがgzipで 圧縮されます。 Webサービスコンシューマトランスフォーメーションの例 309 第 32 章 加重平均トランスフォーメー ション ¨ 加重平均トランスフォーメーションの概要, 310 ページ 加重平均トランスフォーメーションの概要 加重平均トランスフォーメーションは、一致操作から一致スコアを読み取り、スコアに重 み付けをし、集計一致スコアを生成するパッシブトランスフォーメーションです。 加重は割合値です。 各入力スコアに適用される加重を編集して、集計スコアに寄与する割 合を増やしたり減らしたりすることができます。 加重平均トランスフォーメーションの出 力スコアには、重複分析の各データフィールドの相対的な重要度が反映されます。 入力一致スコアに加重を割り当てるには、加重平均トランスフォーメーションの入力ポー トをクリックし、[ウェイト]カラムの値を編集します。 0.001から1.0までの値を選択で きます。 加重平均トランスフォーメーションは、2つ以上の一致ストラテジをデータセット内のレコ ードに適用するように比較トランスフォーメーションを設定しているときに使用します。 加重平均トランスフォーメーションは、レコードのペアごとに集計一致スコアを計算し、 重複レコードをグループ化して以降の処理を実行できるようにします。 注: 一致トランスフォーメーションで加重を割り当てることもできます。 照合マプレット では、加重平均トランスフォーメーションを比較トランスフォーメーションとともに使用 します。 一致ストラテジの設定や1つのトランスフォーメーションでの加重の割り当てに は、一致トランスフォーメーションを使用します。 一致トランスフォーメーションに一致 マプレットを組み込むことができます。 一致スコアの重み付けの例 一致トランスフォーメーションを使用して、顧客データセットの ZIP codeカラムとSurnameカ ラムの一致スコアを生成しています。 多くのレコードには一致する郵便番号があります が、一致する姓のあるレコードの数はそれよりもかなり少なくなります。 これらの一致ス コアの平均を算出するときは、より一意性の高い一致の重要性を強調する必要がありま す。 310 姓の一致スコアの重要性を強調するために、 Surnameの入力の[ウェイト]値を0.8に設定 し、ZIP codeの入力の値を0.4に設定します。 加重平均トランスフォーメーションの概要 311 付録 A トランスフォーメーションの 区切り文字 ¨ トランスフォーメーションの区切り文字の概要, 312 ページ トランスフォーメーションの区切り文字の概 要 トランスフォーメーションの区切り文字は、データ文字列間の区切りを示します。 次の表に、データ文字列の解析や書き込みを行う際にトランスフォーメーションで使用す る区切り文字を示します。 312 区切り文字の名称 区切り文字記号 アットマーク @ カンマ , ダッシュ - 二重引用符 " スラッシュ / ピリオド . シャープ # パイプ | セミコロン ; 単一引用符 ' 区切り文字の名称 区切り文字記号 スペース [Spaceキー] タブ [Tabキー] 下線 _ トランスフォーメーションの区切り文字の概要 313 索引 A anyAttribute属性 Webサービスコンシューマトランスフォーメーション 294, 297 anyType要素 Webサービスコンシューマトランスフォーメーション 294, 297 any要素 Webサービスコンシューマトランスフォーメーション 294, 297 APIメソッド Javaトランスフォーメーション 149 C getDoubleメソッド Javaトランスフォーメーション getInRowTypeメソッド Javaトランスフォーメーション getIntメソッド Javaトランスフォーメーション getLongメソッド Javaトランスフォーメーション getResultDataTypeメソッド Javaトランスフォーメーション getResultMetadataメソッド Javaトランスフォーメーション getStringBufferメソッド Javaトランスフォーメーション gzip SOAPメッセージの圧縮 304 169 152 170 170 170 170 171 choice要素 Webサービスコンシューマトランスフォーメーションの 表示 295, 298 H D HTTPエラー出力 Webサービスコンシューマトランスフォーメーションの 有効化 301 HTTPヘッダー Webサービスコンシューマトランスフォーメーションへ の追加 293 Data Integration Service) 再起動モード 157 defineJExpression Java式のAPIメソッド 167 defineJExpressionメソッド Javaトランスフォーメーション 150 E EDataTypeクラス Java式 166 F failSessionメソッド Javaトランスフォーメーション 151 G generateRowメソッド Javaトランスフォーメーション 152 getBytesメソッド Javaトランスフォーメーション 169 314 I incrementErrorCountメソッド Javaトランスフォーメーション invokeJExpression APIメソッド 163 invokeJExpressionメソッド Javaトランスフォーメーション isNullメソッド Javaトランスフォーメーション isResultNullメソッド Javaトランスフォーメーション 153 154 155 172 J Javaコード Javaトランスフォーメーション 137 エラーの検出 148 Javaコードのコンパイル [コード全体]タブ 144 Javaコードスニペット Javaトランスフォーメーション用に作成 139 Javaコードの生成 Java式 161 Java式 EDataTypeクラス 166 invokeJExpression APIメソッド 163 Javaコードの生成 161 Javaトランスフォーメーション 159 JExpressionクラス 168, 169 JExprParaMetadataクラス 166 [関数の定義]ダイアログボックスで作成 162 関数の設定 161 高度なインタフェース 164 高度なインタフェースを使用した呼び出し 165 高度なインタフェースの例 168 作成 161 生成 160 設定 160 単純なインタフェース 163 単純なインタフェースの例 164 単純なインタフェースを使用した呼び出し 163 呼び出し 154 呼び出しに関するルールおよびガイドライン 154 ルールおよびガイドライン 163, 165 Java式のAPIメソッド defineJExpression 167 getBytes 169 getDouble 169 getInt 170 getLong 170 getResultDataType 170 getResultMetadata 170 getStringBuffer 171 isResultNull 172 呼び出し 171 Javaトランスフォーメーション APIメソッド 149 defineJExpressionメソッド 150 failSessionメソッド 151 generateRowメソッド 152 getInRowTypeメソッド 152 incrementErrorCountメソッド 153 invokeJExpressionメソッド 154 isNullメソッド 155 Javaコード 137 Javaコードスニペットの作成 139 Javaプリミティブデータ型 131 logErrorメソッド 155 logInfoメソッド 156 NULL値の設定 158 NULL値のチェック 155 resetNotificationメソッド 157 setNullメソッド 158 アクティブ 131 [インポート]タブ 140, 142 概要 129 [関数]タブ 144 高精度処理 134 [コード全体]タブ 144 コンパイル 146 コンパイルエラー 147 コンパイルエラーの原因の特定 148 [最後]タブ 144 再利用可能 130 再利用不可 130 作成 145, 146 詳細プロパティ 134 設計 133 データ型変換 131 デフォルトのポート値 133 トラブルシューティング 147 ナノ秒処理 134 入力行タイプの取得 152 入力ポート 134 出力ポート 134 [入力時]タブ 143 パッシブ 131 非ユーザーコードのエラー 148 [ヘルパ]タブ 141, 142 変数のリセット 157 ポートの作成 133 マッピングの失敗 151 マッピングレベルのクラスパス ユーザーコードのエラー 148 ログ 155, 156 Javaパッケージ インポート 140 Javaプリミティブデータ型 Javaトランスフォーメーション JDK Javaトランスフォーメーション JExpressionクラス Java式 168, 169 JExprParaMetadataクラス Java式 166 JRE Javaトランスフォーメーション 137 131 129 129 L logErrorメソッド Javaトランスフォーメーション 155 logInfoメソッド Javaトランスフォーメーション 156 N NULL値 Javaトランスフォーメーションの設定 158 Javaトランスフォーメーションでのチェック 155 NumRowsAffected 出力される行 269 R resetNotificationメソッド Javaトランスフォーメーション 157 S setNullメソッド Javaトランスフォーメーション 158 SIN番号 再現可能なデータマスキング 96 社会保険番号のマスキング 96 索引 315 SOAPアクション Webサービスコンシューマトランスフォーメーションの オーバーライド 301 SOAPアクションのオーバーライド Webサービスコンシューマトランスフォーメーション 301 SOAP圧縮 Webサービスコンシューマトランスフォーメーション 304 SOAPメッセージ 概要 290 SQLErrorポート SQLトランスフォーメーション 265 SQLエラー時に続行 SQLトランスフォーメーション 268, 271 SQLクエリ SQLトランスフォーメーション 266 SQLトランスフォーメーション SQLErrorポート 265 SQLエラー時に続行 271 影響を受けた行の数 265 概要 261 クエリの定義 266 クエリ文 275 クエリ文字列の置換 267 出力行の数 269 出力行の制限 269 出力ポートの定義 264 [詳細プロパティ]ビュー 262 データベース接続の定義 275 入力行と出力行のカーディナリティ 268 入力ポートの説明 263 パススルーポート 265 パラメータのバインド 266 ポート 263 example 272 SQL入力ポート SQLトランスフォーメーション 263 W Webサービスコンシューマトランスフォーメーション HTTPエラー出力の有効化 301 HTTPヘッダーの追加 293 SOAP圧縮 304 SOAPメッセージ 290 エラー処理 303 エンドポイントURL 293 概要 289 キーの表示 295, 298 クッキー認証 293 作成 305 出力マッピング 297 詳細プロパティ 301 セキュリティ 291 操作 291 動的WebサービスURL 293 動的なWS-Security名 293 トランスポートレイヤセキュリティ 291 入力マッピング 294 汎用フォールト出力の有効化 301 汎用SOAPフォールト 303 マッピング出力ノード 297 316 索引 マッピング入力ポート 294 Webサービス接続 概要 301 WS-Securityユーザー名 動的ポート 293 WSDLファイル サービス要素 290 操作の要素 290 バインディング要素 290 ポート要素 290 あ アクティブトランスフォーメーション Java 129 説明 1 アクティブなトランスフォーメーション Java 131 Rank 243 アグリゲータトランスフォーメーション Group Byポート 54 アップデートストラテジの組み合わせ 286 開発 50 概要 49 再利用可能なオブジェクトの作成 57 再利用不可能なオブジェクトの作成 58 集計関数 53 集計キャッシュ 52 集計式 53 詳細プロパティ 51 ソート済み入力 55 データのソート 56 トラブルシューティング 59 ネストされた集計関数 53 非集計式 55 ヒント 58 ポート 50 アップデートストラテジトランスフォーメーション アグリゲータの組み合わせ 286 概要 284 拒否された行の転送 286 作成 285 式 285 詳細プロパティ 286 設定手順 285 い インスタンス変数 Javaトランスフォーメーション 141 え 影響を受けた行の数 SQLトランスフォーメーション 265 エディタのビュー 再利用可能なJavaトランスフォーメーション 130 再利用不可能なJavaトランスフォーメーション 130 エラー Javaトランスフォーメーションにおけるしきい値の増加 153 エラー数 Javaトランスフォーメーションでの増分 153 エンドポイントURL Webサービスコンシューマトランスフォーメーション 293 か 開始桁 社会保険番号 97 概要 カスタムデータトランスフォーメーション 74 カスタムデータトランスフォーメーション XMLスキーマへのエクスポート 76 概要 72 サービスの設定 75 サービスからのポートの作成 81 作成 82 出力データのプレビュー 82 [詳細]ビュー 77 ステータストレースメッセージ 79 追加ポート 74 デフォルトポート 74 ビュー 73 ポートのタイプ 80 ポートの追加 80 リレーショナルターゲットへの書き込み 76 [関数]タブ Javaトランスフォーメーション 144 き キーマスキング 数値 85 数値のマスキング 86 説明 85 日時の値のマスキング 87 文字列値のマスキング 86 キャッシュ ルックアップトランスフォーメーション 204 行 更新のフラグ設定 285 共有体トランスフォーメーション 概要 280 拒否された行の転送 オプション 286 設定 286 拒否ファイル アップデートストラテジ 286 く クッキー認証 Webサービスコンシューマトランスフォーメーション 293 クラスパス マッピングプロパティ 137 グループ ユーザー定義 250 ルータトランスフォーメーション 250 ルータトランスフォーメーションへの追加 252 グループフィルタ条件 ルータトランスフォーメーション 251 け 結果文字列の置換文字 データマスキングトランスフォーメーション 91 結合条件 概要 176 検索 Javaコードのエラー 148 こ 高精度処理 Javaトランスフォーメーション 134 [構造]ビュー カスタムデータトランスフォーメーション 76 高度なインタフェース EDataTypeクラス 166 Java式 164 Java式の呼び出し 165 JExpressionクラス 168, 169 JExprParaMetadataクラス 166 例 168 考慮事項 Javaトランスフォーメーション 133 [コード全体]タブ Javaコンパイルエラー 147 Javaトランスフォーメーション 144 コードスニペット Javaトランスフォーメーション用に作成 139 コンパイル Javaトランスフォーメーション 146 コンパイルエラー Javaトランスフォーメーションのソースの識別 148 さ サービス WSDLファイル要素 290 データトランスフォーメーション 75 サービスビュー カスタムデータトランスフォーメーション 75 [最後]タブ Javaトランスフォーメーション 144 最大出力行数 SQLトランスフォーメーション 268, 269 再利用可能なトランスフォーメーション 説明 6 編集 7 作成 Javaトランスフォーメーション 145, 146 し 式 Javaトランスフォーメーション 159 検査 10 コメントの追加 10 索引 317 トランスフォーメーション内 7 入力 9 ポートへの追加 9 式エディタ 式の検証 10 説明 9 式トランスフォーメーション 開発 124 概要 123 詳細プロパティ 124 ポート 125 社会保障番号 再現可能なデータマスキング 95 地域コードマスキング 94 出力階層のエクスポート カスタムデータトランスフォーメーション 76 出力マッピング Webサービスコンシューマトランスフォーメーション 297 ジョイナトランスフォーメーション 同じソースからのデータの結合 182 概要 173 完全外部結合 179 結合タイプ 177 条件 176 条件タイプ 176, 177 詳細条件タイプ 177 詳細プロパティ 174 ソースパイプラインのブロック 184 ソート順の設定 180 ソート済み 184 ソート済み入力 179 単純条件タイプ 176 ノーマルジョイン 178 パフォーマンス 185 ポート 175 マスタ外部結合 178 マスタ行のキャッシュ 184 未ソート 184 明細外部結合 178 ルールおよびガイドライン 186 条件 ジョイナトランスフォーメーション 176 ルータトランスフォーメーション 251 条件タイプ ジョイナトランスフォーメーションの詳細 177 ジョイナトランスフォーメーションの単純 176 詳細条件タイプ ジョイナトランスフォーメーション 177 [詳細]ビュー カスタムデータトランスフォーメーション 77 詳細プロパティ Javaトランスフォーメーション 134 SQLトランスフォーメーション 262 Webサービスコンシューマトランスフォーメーション 301 シリアライザ データトランスフォーメーション 75 す 数値 キーマスキング 86 318 索引 ランダムマスキング 88 ステータストレースメッセージ カスタムデータトランスフォーメーション 79 ストリーマ データトランスフォーメーション 75 すべてのグループ Webサービスコンシューマトランスフォーメーションの 表示 295, 298 せ 静的コード Javaトランスフォーメーション 141 静的変数 Javaトランスフォーメーション 141 設計 Javaトランスフォーメーション 133 接続 Webサービス 301 接続されたトランスフォーメーション Java 129 ランク 243 接続されたルックアップ 概要 201 説明 200 接続されていないトランスフォーメーション ルックアップトランスフォーメーション 201 接続されていないルックアップ 概要 201 説明 200 そ 操作 WSDLファイル要素 290 [操作出力]領域 Webサービスコンシューマトランスフォーメーションの カスタマイズ 298 [操作入力]領域 Webサービスコンシューマトランスフォーメーションの カスタマイズ 295 ソータートランスフォーメーション 概要 255 ソース文字列の文字 データマスキングトランスフォーメーション 91 た 代替グループ Webサービスコンシューマトランスフォーメーション 294, 297 単純条件タイプ ジョイナトランスフォーメーション 176 単純なインタフェース Java式 163 JavaトランスフォーメーションAPIメソッド 163 例 164 て データ型 Javaトランスフォーメーション 131 データトランスフォーメーション 設定 73 説明 72 ポートの作成 81 データのプレビュー カスタムデータトランスフォーメーション 82 データマスキングトランスフォーメーション IPアドレスのマスキング 96 URLのマスキング 96 クレジットカードのマスキング 95 再現可能なSIN番号 96 再現可能なSSN 95 社会保険番号のマスキング 96 社会保障番号のマスキング 94, 98 説明 84 ソース文字列の文字 91 デフォルト値ファイル 97 電子メールアドレスのマスキング 95 電話番号のマスキング 95 特殊マスク形式 94 範囲 92 日付値のマスキング 93 ブラー 93 マスキング方法 85 マスク形式 90 ランダムマスキング 87 デフォルトグループ ルータトランスフォーメーション 250 デフォルト値 データマスキング 97 と 動的URL Webサービスコンシューマトランスフォーメーション 293 特殊形式マスキング IPアドレス 96 URL 96 クレジットカード番号 95 再現可能なSIN番号 96 社会保険番号 96 社会保障番号 94 電子メールアドレス 95 電話番号 95 トラブルシューティング Javaトランスフォーメーション 147 トランスフォーマ データトランスフォーメーション 75 トランスフォーメーション Java 129 アクティブ 1 開発 6 概要 1 再利用可能 6 再利用可能なトランスフォーメーションの編集 7 作成 17 式 7 式の検証 10 パッシブ 2 トランスポートレイヤセキュリティ Webサービスコンシューマトランスフォーメーション 291 な ナノ秒処理 Javaトランスフォーメーション 134 に 日時の値 データマスキング 87 入力行 行タイプの取得 152 入力ポート Javaトランスフォーメーション 133, 134 出力ポート Javaトランスフォーメーション 133, 134 入力マッピング Webサービスコンシューマトランスフォーメーション 294 [入力時]タブ Javaトランスフォーメーション 143 は パーサー データトランスフォーメーション 75 バインディング WSDLファイル要素 290 パススルーポート SQLトランスフォーメーション 265 派生型要素 Webサービスコンシューマトランスフォーメーション 294, 297 パッシブトランスフォーメーション Java 129, 131 説明 2 バッファポート カスタムデータトランスフォーメーション 80 パラメータのバインド SQLトランスフォーメーション 266 範囲 数値のマスキング 92 汎用フォールト出力 Webサービスコンシューマトランスフォーメーションの 有効化 301 ひ 日付の値 ランダムデータマスキング 88 非ユーザーコードのエラー Javaトランスフォーメーション 148 索引 319 ふ め ファイルポート カスタムデータトランスフォーメーション 80 フィルタトランスフォーメーション NULL値を含む行 128 概要 126 詳細プロパティ 127 パフォーマンスのヒント 128 フィルタ条件 127 フォールトをエラーとして扱う Webサービスコンシューマトランスフォーメーションの 有効化 301 複合キー Webサービスコンシューマトランスフォーメーション 294 ブラー 数値 93 日付の値 93 メソッド JavaトランスフォーメーションAPI 149 も 文字列 ランク付け 244 文字列値 カスタムデータマスキング 87 キーデータマスキング 86 文字列の置換 SQLトランスフォーメーション 267 ゆ 変数 Javaトランスフォーメーション 141 ユーザーコードのエラー Javaトランスフォーメーション 148 ユーザー定義グループ ルータトランスフォーメーション 250 ユーザー定義メソッド Javaトランスフォーメーション 141 ほ よ ポート Javaトランスフォーメーション 133 カスタムデータトランスフォーメーション 80 ルータトランスフォーメーション 252 [ポート]ビュー SQLトランスフォーメーション出力 264 ポート値 Javaトランスフォーメーション 133 汎用SOAPフォールト Webサービスコンシューマトランスフォーメーション 303 呼び出し Java式のAPIメソッド 171 へ ま マスキング方法 データマスキング 85 マスキングルール 結果文字列の置換文字 91 ソース文字列の文字 91 特殊マスク形式 94 範囲 92 ブラー 93 マスク形式 90 マスク形式 特殊マスク形式 94 文字列値のマスキング 90 マッパー データトランスフォーメーション 75 マッピング 行に対する更新のフラグ設定 285 ルータトランスフォーメーションの使用 253 マッピングの失敗 Javaトランスフォーメーション 151 320 索引 ら ランク付け データグループ 246 文字列値 244 ランクトランスフォーメーション RANKINDEXポート 245 オプション 244 概要 243 グループの定義 246 詳細プロパティ 247 ポート 245 ランクポート 245 [ランタイム]ビュー SQLトランスフォーメーション 275 ランダムマスキング 数値 87 日付値のマスキング 88 文字列値のマスキング 87 る ルータトランスフォーメーション 概要 249 グループ 250 グループフィルタ条件 251 詳細プロパティ 253 ポート 252 マッピングでの接続 253 example 251 ルックアップキャッシュ 概要 204 ルックアップトランスフォーメーション 開発 202 概要 199 キャッシュ 204 再利用可能なオブジェクトの作成 210 再利用不可能なオブジェクトの作成 211 接続 200, 201 接続されていないルックアップの作成 212 フラットファイルルックアップの詳細プロパティ 207 未接続 200, 201 ランタイムプロパティ 206 リレーショナルルックアップの詳細プロパティ 209 ルックアップ条件 203 ルックアップ条件のルールおよびガイドライン 203 論理データオブジェクトルックアップの詳細プロパティ 210 ろ ログ Javaトランスフォーメーション 155, 156 索引 321