...

Informatica - 9.5.1 HotFix 3 - Developerトランスフォーメーションガイド

by user

on
Category: Documents
14

views

Report

Comments

Transcript

Informatica - 9.5.1 HotFix 3 - Developerトランスフォーメーションガイド
Informatica
(バージョン 9.5.1 HotFix 3)
Developerトランスフォーメー
ションガイド
Informatica Developerトランスフォーメーションガイド
バージョン 9.5.1 HotFix 3
2013年3月
著作権 2009-2013 Informatica Corporation. すべての権利を保留する.
本ソフトウェアおよびマニュアルには、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.コンテンツの無断複写・転載を禁じます。Copyright (c) Sun Microsystems.コンテンツの無断複写・転
載を禁じます。Copyright (c) RSA Security Inc. コンテンツの無断複写・転載を禁じます。 Copyright (c) Ordinal Technology Corp. All
rights reserved. Copyright (c) Aandacht c.v. コンテンツの無断複写・転載を禁じます。 Copyright Genivia, Inc. コンテンツの無断複
写・転載を禁じます。 Copyright Isomorphic Software. コンテンツの無断複写・転載を禁じます。Copyright (c) Meta Integration
Technology, Inc. コンテンツの無断複写・転載を禁じます。 Copyright (c) Intalio. コンテンツの無断複写・転載を禁じます。Copyright
(c) Oracle. コンテンツの無断複写・転載を禁じます。Copyright (c) Adobe Systems Incorporated. コンテンツの無断複写・転載を禁じま
す。Copyright (c) DataArt, Inc. コンテンツの無断複写・転載を禁じます。 Copyright (c) ComponentSource. コンテンツの無断複写・転
載を禁じます。Copyright (c) Microsoft Corporation. コンテンツの無断複写・転載を禁じます。Copyright (C) Rogue Wave Software, Inc.
コンテンツの無断複写・転載を禁じます。 Copyright (c) Teradata Corporation. コンテンツの無断複写・転載を禁じます。Copyright (c)
Yahoo! Inc. コンテンツの無断複写・転載を禁じます。 Copyright (c) Glyph & Cog, LLC. コンテンツの無断複写・転載を禁じます。
Copyright (C) Thinkmap, Inc. コンテンツの無断複写・転載を禁じます。 Copyright (C) Clearpace Software Limited. コンテンツの無断
複写・転載を禁じます。Copyright (C) Information Builders, Inc. コンテンツの無断複写・転載を禁じます。 Copyright (C) OSS Nokalva,
Inc. コンテンツの無断複写・転載を禁じます。 Copyright Edifecs, Inc. コンテンツの無断複写・転載を禁じます。 Copyright Cleo
Communications, Inc. コンテンツの無断複写・転載を禁じます。 Copyright (c) International Organization for Standardization 1986.
コンテンツの無断複写・転載を禁じます。Copyright (C) ej-technologies GmbH. コンテンツの無断複写・転載を禁じます。Copyright (c)
Jaspersoft Corporation. コンテンツの無断複写・転載を禁じます。Copyright (C) is International Business Machines Corporation. コ
ンテンツの無断複写・転載を禁じます。Copyright (C) yWorks GmbH. コンテンツの無断複写・転載を禁じます。Copyright (C) Lucent
Technologies. コンテンツの無断複写・転載を禁じます。Copyright (c) University of Toronto. コンテンツの無断複写・転載を禁じます。
Copyright (C) Daniel Veillard. コンテンツの無断複写・転載を禁じます。Copyright (C) Unicode, Inc. Copyright IBM Corp. コンテンツ
の無断複写・転載を禁じます。 Copyright (C) MicroQuill Software Publishing, Inc. コンテンツの無断複写・転載を禁じます。 Copyright
(C) PassMark Software Pty Ltd. コンテンツの無断複写・転載を禁じます。 Copyright (C) LogiXML, Inc. コンテンツの無断複写・転載を
禁じます。 Copyright (C) 2003-2010 Lorenzi Davide, コンテンツの無断複写・転載を禁じます。 Copyright (C) Red Hat, Inc. コンテン
ツの無断複写・転載を禁じます。 Copyright (c) The Board of Trustees of the Leland Stanford Junior University. コンテンツの無断複
写・転載を禁じます。Copyright (C) EMC Corporation. コンテンツの無断複写・転載を禁じます。Copyright (C) Flexera Software. コンテ
ンツの無断複写・転載を禁じます。Copyright (c) Jinfonet Software. コンテンツの無断複写・転載を禁じます。Copyright (C) Apple Inc.
コンテンツの無断複写・転載を禁じます。 Copyright (C) Telerik Inc. コンテンツの無断複写・転載を禁じます。 Copyright (C) BEA
Systems. コンテンツの無断複写・転載を禁じます。
本製品には、Apache Software Foundation(http://www.apache.org/)によって開発されたソフトウェア、およびさまざまなバージョンの
Apache License(まとめて「License」と呼んでいます)の下に許諾された他のソフトウェアが含まれます。これらのライセンスのコピー
は、http://www.apache.org/licenses/で入手できます。適用法にて要求されないか書面にて合意されない限り、ライセンスの下に配布され
るソフトウェアは「現状のまま」で配布され、明示的あるいは黙示的かを問わず、いかなる種類の保証や条件も付帯することはありません。
ライセンス下での許諾および制限を定める具体的文言については、ライセンスを参照してください。
本製品には、Mozilla(http://www.mozilla.org/)によって開発されたソフトウェア、ソフトウェアcopyright The JBoss Group, LLC, all
rights reserved、ソフトウェアcopyright, Red Hat Middleware, LLC, all rights reserved、Copyright (C) 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 (c) 1993-2006, コンテンツの無断複写・転載を禁
じます。
本製品には、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-2013, Daniel Stenberg, <[email protected]>が含まれています。コンテンツの無断複写・転載
を禁じます。本ソフトウェアに関する許諾および制限は、http://curl.haxx.se/docs/copyright.htmlにある使用条件に従います。すべての
コピーに上記の著作権情報とこの許諾情報が記載されている場合、目的に応じて、本ソフトウェアの使用、コピー、変更、ならびに配布が有
償または無償で許可されます。
本製品には、ソフトウェアcopyright 2001-2005 (C) MetaStuff, Ltd. コンテンツの無断複写・転載を禁じます が含まれます。本ソフトウェ
アに関する許諾および制限は、http://www.dom4j.org/license.htmlにある使用条件に従います。
製品には、ソフトウェアcopyright (C) 2004-2007, The Dojo Foundationが含まれます。コンテンツの無断複写・転載を禁じます。本ソフト
ウェアに関する許諾および制限は、http://dojotoolkit.org/licenseにある使用条件に従います。
本製品には、ICUソフトウェアcopyright International Business Machines Corporationおよび他のソフトウェアが含まれます。コンテンツ
の無断複写・転載を禁じます。本ソフトウェアに関する許諾および制限は、http://source.icu-project.org/repos/icu/icu/trunk/
license.htmlにある使用条件に従います。
本製品には、ソフトウェアcopyright (c) 1996-2006 Per Bothnerが含まれます。コンテンツの無断複写・転載を禁じます。お客様がこのよう
なソフトウェアを使用するための権利は、ライセンスで規定されています。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 (c) 1997-2007 University of Cambridgeが含まれます。本ソフトウェアに関する許諾および制限は、
http://www.pcre.org/license.txtにある使用条件に従います。
本製品には、ソフトウェアcopyright (C) 2007 The Eclipse Foundationが含まれます。コンテンツの無断複写・転載を禁じます。本ソフトウ
ェアに関する許諾および制限は、http://www.eclipse.org/org/documents/epl-v10.phpおよびhttp://www.eclipse.org/org/documents/edlv10.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://nanoxml.sourceforge.net/orig/copyright.html、http://www.json.org/license.html; http://
forge.ow2.org/projects/javaservice/、http://www.postgresql.org/about/licence.html, http://www.sqlite.org/copyright.html、
http://www.tcl.tk/software/tcltk/license.html, http://www.jaxen.org/faq.html、http://www.jdom.org/docs/faq.html, http://
www.slf4j.org/license.html、http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/License、http://www.keplerproject.org/md5/
license.html、http://www.toedter.com/en/jcalendar/license.html; http://www.edankert.com/bounce/index.html、http://www.netsnmp.org/about/license.html; http://www.openmdx.org/#FAQ、http://www.php.net/license/3_01.txt、http://srp.stanford.edu/
license.txt、http://www.schneier.com/blowfish.html; http://www.jmock.org/license.html; http://xsom.java.net、およびhttp://
benalman.com/about/license/、https://github.com/CreateJS/EaselJS/blob/master/src/easeljs/display/Bitmap.js、http://
www.h2database.com/html/license.html#summary、http://jsoncpp.sourceforge.net/LICENSE、およびhttp://jdbc.postgresql.org/
license.htmlの条項の下に許諾されたソフトウェアが含まれています。
本製品には、Academic Free License(http://www.opensource.org/licenses/afl-3.0.php)、Common Development and 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/bsdlicense.php)、MIT License(http://www.opensource.org/licenses/mit-license.php)、Artistic License(http://www.opensource.org/
licenses/artistic-license-1.0)、Initial Developer’s Public License Version 1.0(http://www.firebirdsql.org/en/initialdeveloper-s-public-license-version-1-0/)に基づいて許諾されたソフトウェアが含まれています。
本製品には、ソフトウェアcopyright (c) 2003-2006 Joe WaInes, 2006-2007 XStream Committersが含まれています。コンテンツの無断複
写・転載を禁じます。本ソフトウェアに関する許諾および制限は、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,243,110、
7,254,590、7,281,001、7,421,458、7,496,588、7,523,121、7,584,422、7,676,516、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-DTG-95100-HF3-0001
目次
序文............................................. xix
Informaticaのリソース. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Informaticaマイサポートポータル. . . . . . . . . . . . . . . . . . . . . . . . . xix
Informaticaのマニュアル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
InformaticaのWebサイト. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Informatica How-To Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Informatica Knowledge Base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
InformaticaサポートのYouTubeチャンネル. . . . . . . . . . . . . . . . . . . . . xx
Informatica Marketplace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Informatica Velocity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Informaticaグローバルカスタマサポート. . . . . . . . . . . . . . . . . . . . . xxi
第 1 章 : トランスフォーメーションについて......... 1
トランスフォーメーションについての概要. . . . . . . . . . . . . . . . . . . . . . . . . 1
アクティブなトランスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . 1
パッシブなトランスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . . . 2
接続されていないトランスフォーメーション. . . . . . . . . . . . . . . . . . . . . 2
複数ストラテジのトランスフォーメーション. . . . . . . . . . . . . . . . . . . . . 2
トランスフォーメーションの説明. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
トランスフォーメーションの開発. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
再利用可能なトランスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . . . . 6
再利用可能なトランスフォーメーションのインスタンスと継承される変更. . 7
再利用可能なトランスフォーメーションの編集. . . . . . . . . . . . . . . . . . . 7
トランスフォーメーションの式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
式エディタ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
式内のポート名. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
ポートへの式の追加. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
式内のコメント. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
式の検証. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
トランスフォーメーションの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
トレースレベル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
第 2 章 : アドレスバリデータトランスフォーメーショ
ン................................................ 13
アドレスバリデータトランスフォーメーションの概要. . . . . . . . . . . . . . . . . 13
アドレスバリデータトランスフォーメーションの入力ポートグループ. . . . . . . 15
目次
i
アドレスバリデータトランスフォーメーションの出力ポートグループ. . . . . . . 16
複数インスタンスのポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
アドレス検証プロジェクト. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
フォーマットされたアドレスと郵便事業者の住所表記基準. . . . . . . . . . . . . . 20
アドレスバリデータのステータスポート. . . . . . . . . . . . . . . . . . . . . . . . . . 21
要素のステータスコードの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
[アドレス解決コード]出力ポートの値. . . . . . . . . . . . . . . . . . . . . . . 24
[要素入力のステータス]出力ポートの値. . . . . . . . . . . . . . . . . . . . . 25
[要素の関連性]出力ポートの値. . . . . . . . . . . . . . . . . . . . . . . . . . . 26
[要素の結果ステータス]出力ポートの値. . . . . . . . . . . . . . . . . . . . . 26
[拡張要素のステータス]出力ポートの値. . . . . . . . . . . . . . . . . . . . . 28
[郵送可能スコア]の出力ポートの値. . . . . . . . . . . . . . . . . . . . . . . . 29
[照合コード]の出力ポートの値. . . . . . . . . . . . . . . . . . . . . . . . . . . 30
[ジオコーディングのステータス]の出力ポートの値. . . . . . . . . . . . . . 32
アドレス参照データファイルのステータス. . . . . . . . . . . . . . . . . . . . . . . . 33
アドレスバリデータトランスフォーメーションの詳細プロパティ. . . . . . . . . . 34
エイリアス番地. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
大文字小文字表記. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
国. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
国のタイプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
デフォルトの国. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
要素の略式表記. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
実行インスタンス数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
入力形式の種類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
国を含む入力形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
行セパレータ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
一致する代替用語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
一致するスコープ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
最大結果カウント. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
モード. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
最適化レベル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
出力形式の種類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
国を含む出力形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
優先される言語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
優先されるスクリプト. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
トレースレベル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
アドレスバリデータトランスフォーメーションの全般設定. . . . . . . . . . . . . . 44
提案リストモード. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
認証レポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
AMASレポートのフィールド. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
ii
目次
CASSレポートのフィールド. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
SERPレポートのフィールド. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
アドレスバリデータトランスフォーメーションの設定. . . . . . . . . . . . . . . . . 48
アドレスバリデータトランスフォーメーションへのポートの追加. . . . . . . . . . 49
ユーザー定義テンプレートの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
アドレスバリデータのモデルの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
認証レポートの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
第 3 章 : アグリゲータトランスフォーメーション. . . 52
アグリゲータトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . 52
アグリゲータトランスフォーメーションの開発. . . . . . . . . . . . . . . . . . . . . 53
アグリゲータトランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . 53
アグリゲータトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . 54
集計キャッシュ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
集計式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
集計関数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
ネストされた集計関数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
集計式の条件句. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Group Byポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
非集計式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Group Byポートのデフォルト値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
アグリゲータトランスフォーメーションの[ソート済み入力]オプション. . . . 58
[ソート済み入力]オプションの条件. . . . . . . . . . . . . . . . . . . . . . . . 59
アグリゲータトランスフォーメーションでのデータのソート. . . . . . . . . . 59
再利用可能なアグリゲータトランスフォーメーションの作成. . . . . . . . . . . . . 60
再利用不可能なアグリゲータトランスフォーメーションの作成. . . . . . . . . . . 60
アグリゲータトランスフォーメーションに関するヒント. . . . . . . . . . . . . . . . 61
アグリゲータトランスフォーメーションのトラブルシューティング. . . . . . . . 61
第 4 章 : 関連付けトランスフォーメーション........ 63
関連付けトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . 63
メモリ割り当て. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
関連付けトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . 66
第 5 章 : 不良レコードの例外トランスフォーメーショ
ン................................................ 67
不良レコードの例外トランスフォーメーションの概要. . . . . . . . . . . . . . . . . 67
不良レコードの例外の出力レコードタイプ. . . . . . . . . . . . . . . . . . . . . . . . 68
不良レコードの例外管理プロセスフロー. . . . . . . . . . . . . . . . . . . . . . . . . . 69
不良レコードの例外マッピング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
目次
iii
不良レコードの例外の品質に関する問題. . . . . . . . . . . . . . . . . . . . . . . 71
ヒューマンタスク. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
不良レコードの例外のポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
不良レコードの例外トランスフォーメーションの入力ポート. . . . . . . . . . 73
不良レコードの例外トランスフォーメーションの出力. . . . . . . . . . . . . . 73
不良レコードの例外の[設定]ビュー. . . . . . . . . . . . . . . . . . . . . . . . . . . 74
不良レコードテーブルおよび問題テーブルの生成. . . . . . . . . . . . . . . . . 75
不良レコードの例外の問題の割り当て . . . . . . . . . . . . . . . . . . . . . . . . . . 76
品質の問題に対するポートの割り当て. . . . . . . . . . . . . . . . . . . . . . . . 76
例外トランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . . . 77
不良レコードの例外トランスフォーメーションの設定. . . . . . . . . . . . . . . . . 77
不良レコードの例外マッピングの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
不良レコードの例外のマプレット. . . . . . . . . . . . . . . . . . . . . . . . . . . 78
不良レコードの例外の入力グループの例. . . . . . . . . . . . . . . . . . . . . . . . 79
不良レコードの例外の設定例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
不良レコードの例外のマッピングの出力例. . . . . . . . . . . . . . . . . . . . . 81
第 6 章 : 大文字小文字変換プログラムトランスフォー
メーション........................................ 84
大文字小文字変換プログラムトランスフォーメーションの概要. . . . . . . . . . . 84
大文字小文字ストラテジのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . 85
大文字小文字変換プログラムストラテジの設定. . . . . . . . . . . . . . . . . . . . . 85
大文字小文字変換プログラムトランスフォーメーションの詳細プロパティ. . . . 86
第 7 章 : 分類子トランスフォーメーション.......... 87
分類子トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . 87
分類子モデル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
分類子アルゴリズム. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
分類子トランスフォーメーションのオプション. . . . . . . . . . . . . . . . . . . . . 89
分類子ストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
分類子トランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . 90
分類子ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
分類子分析の例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
分類子マッピングの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
入力データサンプル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
データソースの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
分類子トランスフォーメーションの設定. . . . . . . . . . . . . . . . . . . . . . . 93
Routerトランスフォーメーションの設定. . . . . . . . . . . . . . . . . . . . . . . 93
データターゲットの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
分類子マッピングの結果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
iv
目次
第 8 章 : 比較トランスフォーメーション............ 97
比較トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . . 97
フィールド一致ストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
バイグラム. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
ハミング距離. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
エディット距離. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Jaro距離. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
ハミング距離の反転. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
IDマッチングストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
比較ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
比較トランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . . 101
第 9 章 : 統合トランスフォーメーション........... 102
統合トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . 102
統合マッピング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Consolidationトランスフォーメーションのポート. . . . . . . . . . . . . . . . . . 103
統合トランスフォーメーションのビュー. . . . . . . . . . . . . . . . . . . . . . . . . 104
統合トランスフォーメーションの[ストラテジ]ビュー. . . . . . . . . . . . 104
統合トランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . 104
キャッシュファイルサイズ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
単純ストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
行ベースストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
詳細ストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
単純な統合関数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
CONSOL_AVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
CONSOL_LONGEST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
CONSOL_MAX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
CONSOL_MIN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
CONSOL_MOSTFREQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
CONSOL_MOSTFREQ_NB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
CONSOL_SHORTEST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
行ベースの統合関数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
CONSOL_GETROWFIELD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
CONSOL_MODALEXACT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
CONSOL_MOSTDATA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
CONSOL_MOSTFILLED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
統合マッピングの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
入力. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
キージェネレータトランスフォーメーション. . . . . . . . . . . . . . . . . . . 118
目次
v
統合トランスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
統合マッピング出力. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
統合トランスフォーメーションの設定. . . . . . . . . . . . . . . . . . . . . . . . . .
119
第 10 章 : データマスキングトランスフォーメーショ
ン............................................... 120
データマスキングトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . 120
マスキング方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
ランダムマスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
式マスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
123
キーマスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
置換マスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
依存マスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
マスキングルール. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
132
マスク形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
ソース文字列の文字. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
結果文字列の置換文字. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
範囲. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
ブラー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
特殊マスク形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
クレジットカード番号のマスキング. . . . . . . . . . . . . . . . . . . . . . . . . 139
電子メールアドレスマスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
高度な電子メールマスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
IPアドレスマスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
電話番号マスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
社会保障番号(SSN)のマスキング. . . . . . . . . . . . . . . . . . . . . . . . . . 141
URLアドレスマスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
社会保険番号のマスキング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
デフォルト値ファイル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
データマスキングトランスフォーメーションの設定. . . . . . . . . . . . . . . . . . 144
Data Integration Serviceの設定. . . . . . . . . . . . . . . . . . . . . . . . . . 144
ポートの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
144
各ポートのデータマスキングの設定. . . . . . . . . . . . . . . . . . . . . . . . . 145
マスクされたデータのプレビュー. . . . . . . . . . . . . . . . . . . . . . . . . .
145
データマスキングトランスフォーメーションの作成. . . . . . . . . . . . . . . 146
データマスキングトランスフォーメーションのセッションプロパティ. . . . . . 146
データマスキングの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Read_Customer Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
カスタマデータマスキングトランスフォーメーション. . . . . . . . . . . . .
148
カスタマテストデータ結果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
vi
目次
データマスキングトランスフォーメーションの詳細プロパティ. . . . . . . . . .
150
第 11 章 : ディシジョントランスフォーメーション. 151
ディシジョントランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . 151
ディシジョントランスフォーメーションの関数. . . . . . . . . . . . . . . . . . . . . 152
ディシジョントランスフォーメーションの条件文 . . . . . . . . . . . . . . . . . . 154
ディシジョントランスフォーメーションの演算子. . . . . . . . . . . . . . . . . . . 154
ディシジョントランスフォーメーションのNULL処理. . . . . . . . . . . . . . . . . . 155
ディシジョンストラテジの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
ディシジョントランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . 156
第 12 章 : 重複レコードの例外トランスフォーメーシ
ョン............................................. 158
重複レコードの例外トランスフォーメーションの概要. . . . . . . . . . . . . . . . 158
重複レコードの例外プロセスフロー. . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
重複レコードの例外. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
重複レコードの例外の[設定]ビュー . . . . . . . . . . . . . . . . . . . . . . . . . . 160
重複レコードテーブルの生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
重複レコードの例外トランスフォーメーションの入力ポート. . . . . . . . . 163
重複レコードの例外トランスフォーメーションの出力ポート. . . . . . . . . 163
ポートの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
重複レコードの例外トランスフォーメーションの詳細プロパティ. . . . . . . . . 165
重複レコードの例外マッピングの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
重複レコードの例外マッピング. . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
一致トランスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
重複レコードの例外の入力グループ. . . . . . . . . . . . . . . . . . . . . . . . . 167
重複レコードの例外の[設定]ビューの例. . . . . . . . . . . . . . . . . . . . 168
標準出力テーブルレコード. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
クラスタ出力. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
重複レコードの例外トランスフォーメーションの作成. . . . . . . . . . . . . . . . 171
第 13 章 : 式トランスフォーメーション............. 173
式トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
式トランスフォーメーションの開発. . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
式トランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . . . . 174
式トランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . . . . . 174
第 14 章 : フィルタトランスフォーメーション. . . . . 175
フィルタトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . 175
目次
vii
フィルタトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . 176
フィルタ条件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
NULL値を含む行のフィルタ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
フィルタトランスフォーメーションのパフォーマンスのヒント. . . . . . . . . . 177
第 15 章 : Javaトランスフォーメーション......... 178
Javaトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . 178
再利用可能および再利用不可能なJavaトランスフォーメーション. . . . . . 179
アクティブJavaトランスフォーメーションとパッシブJavaトランスフォ
ーメーション. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
データ型変換. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Javaトランスフォーメーションの設計. . . . . . . . . . . . . . . . . . . . . . . . . . 182
Javaトランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . . . . 182
ポートの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
デフォルトポート値の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Javaトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . . 183
Developerツールクライアントのクラスパスの設定. . . . . . . . . . . . . . . 185
Data Integration Serviceのクラスパスの設定. . . . . . . . . . . . . . . . . 186
Javaコードの開発. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Javaコードスニペットの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Javaパッケージのインポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Helperコードの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
JavaトランスフォーメーションのJavaのプロパティ. . . . . . . . . . . . . . . . . . 191
[インポート]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
[ヘルパ]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
[入力時]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
[最後]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
[関数]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
[コード全体]タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Javaトランスフォーメーションによるフィルタの最適化. . . . . . . . . . . . . . . 194
Javaトランスフォーメーションによる初期選択の最適化. . . . . . . . . . . . 195
Javaトランスフォーメーションによるプッシュイン最適化. . . . . . . . . . 196
Javaトランスフォーメーションの作成. . . . . . . . . . . . . . . . . . . . . . . . . . 198
再利用可能なJavaトランスフォーメーションの作成. . . . . . . . . . . . . . . 198
再利用不可能なJavaトランスフォーメーションの作成. . . . . . . . . . . . . 198
Javaトランスフォーメーションのコンパイル. . . . . . . . . . . . . . . . . . . . . . 199
Javaトランスフォーメーションのトラブルシューティング. . . . . . . . . . . . . 200
コンパイルエラーのソースの検出. . . . . . . . . . . . . . . . . . . . . . . . . . 200
コンパイルエラーの原因の特定. . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
viii
目次
第 16 章 : JavaトランスフォーメーションAPIのリフ
ァレンス......................................... 202
JavaトランスフォーメーションAPIメソッドの概要. . . . . . . . . . . . . . . . . .
202
defineJExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
203
failSession. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
generateRow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
getInRowType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
getMetadata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
incrementErrorCount. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
invokeJExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
207
isNull. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
logError. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
logInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
resetNotification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
210
setNull. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
storeMetadata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
212
第 17 章 : Java式................................ 214
Java式の概要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
214
式の関数タイプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
[関数の定義]ダイアログボックスを使用した式の定義. . . . . . . . . . . . . . . 216
手順1. 関数の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
手順2. 式の作成と検証. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
手順3. 式のJavaコードの生成. . . . . . . . . . . . . . . . . . . . . . . . . . . .
217
[関数の定義]ダイアログボックスを使用した式の作成とJavaコードの
生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Java式のテンプレート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
217
単純なインタフェースに関する作業. . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
invokeJExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
218
単純なインタフェースの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
高度なインタフェースに関する作業. . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
高度なインタフェースを使用した式の呼び出し. . . . . . . . . . . . . . . . . . 220
高度なインタフェースに関する作業のルールとガイドライン. . . . . . . . . 220
EDataTypeクラス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
JExprParamMetadataクラス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
221
defineJExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
222
JExpressionクラス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
高度なインタフェースの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
JExpressionクラスAPIリファレンス. . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
目次
ix
getBytes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
getDouble. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
getInt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
getLong. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
getResultDataType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
getResultMetadata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
getStringBuffer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
呼び出し. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
isResultNull. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
第 18 章 : ジョイナトランスフォーメーション. . . . . 228
ジョイナトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . 228
ジョイナトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . 229
ジョイナトランスフォーメーションポート. . . . . . . . . . . . . . . . . . . . . . . 229
結合条件の定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
単純条件タイプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
詳細条件タイプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
結合タイプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
ノーマル結合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
マスタ外部結合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
明細外部結合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
完全外部結合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
ジョイナトランスフォーメーションでのソート済み入力. . . . . . . . . . . . . . . 234
ソート順の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
マッピングへのトランスフォーメーションの追加. . . . . . . . . . . . . . . . 235
結合条件のルールとガイドライン. . . . . . . . . . . . . . . . . . . . . . . . . . 236
結合条件とソート順の例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
同じソースのデータの結合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
同じパイプラインの2つのブランチの結合. . . . . . . . . . . . . . . . . . . . . 237
同じソースの2つのインスタンスの結合. . . . . . . . . . . . . . . . . . . . . . . 238
同じソースのデータ結合のガイドライン. . . . . . . . . . . . . . . . . . . . . . 239
ソースパイプラインのブロック. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
未ソートジョイナトランスフォーメーション. . . . . . . . . . . . . . . . . . . 239
ソート済みジョイナトランスフォーメーション. . . . . . . . . . . . . . . . . . 239
ジョイナトランスフォーメーションのパフォーマンスのヒント. . . . . . . . . . 240
ジョイナトランスフォーメーションのルールとガイドライン. . . . . . . . . . . . 241
第 19 章 : キージェネレータトランスフォーメーショ
ン............................................... 242
キージェネレータトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . 242
x
目次
Soundexストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Soundexストラテジのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . 243
文字列ストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
244
文字列ストラテジのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
NYSIISストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
244
キージェネレータの出力ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
グループ化ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
キー作成のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
キージェネレータトランスフォーメーションの詳細プロパティ. . . . . . . . . .
246
第 20 章 : ラベラトランスフォーメーション........ 247
ラベラトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 247
ラベラトランスフォーメーションを使用する状況. . . . . . . . . . . . . . . . . . . 248
ラベラトランスフォーメーションでの参照データの使用. . . . . . . . . . . . . . . 249
文字セット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
確率モデル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
参照テーブル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
251
正規表現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
トークンセット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
ラベラトランスフォーメーションのストラテジ. . . . . . . . . . . . . . . . . . . . . 252
文字ラベル適用操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
トークンラベル適用操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
ラベラトランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . .
253
文字ラベル適用のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
全般プロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
参照テーブルのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
文字セットのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
フィルタのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
トークンラベル適用のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
256
全般プロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
トークンセットのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
カスタムラベルプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
確率的な一致のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
参照テーブルのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
文字ラベル適用ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
261
トークンラベル適用ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . .
261
ラベラトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . 262
第 21 章 : ルックアップトランスフォーメーション. 263
ルックアップトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . 263
目次
xi
接続されたルックアップと接続されていないルックアップ. . . . . . . . . . . . .
264
接続されたルックアップ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
接続されていないルックアップ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
ルックアップトランスフォーメーションの開発. . . . . . . . . . . . . . . . . . . . . 267
ルックアップ条件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
ルックアップトランスフォーメーションの条件のルールとガイドライン. . 268
ルックアップキャッシュ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
共有キャッシュ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
永続キャッシュ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
フラットファイル、参照テーブル、またはリレーショナルルックアップのラ
ンタイププロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
フラットファイルルックアップトランスフォーメーションの詳細プロパティ. . 272
参照テーブルルックアップまたはリレーショナルルックアップのトランスフ
ォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
論理データオブジェクトのルックアップトランスフォーメーションの詳細プ
ロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
再利用可能なルックアップトランスフォーメーションの作成. . . . . . . . . . . . 275
再利用不可能なルックアップトランスフォーメーションの作成. . . . . . . . . . 276
接続されていないルックアップトランスレーションの作成. . . . . . . . . . . . . 277
接続されていないルックアップの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
第 22 章 : 一致トランスフォーメーション.......... 281
一致トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . 281
フィールド照合とIDマッチング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
一致分析のプロセスフロー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
マッチ率の計算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
加重スコア. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
NULLのマッチ率. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
クラスタスコアのオプション. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
照合マッピングのパフォーマンス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
一致トランスフォーメーションのコンポーネント. . . . . . . . . . . . . . . . . . . 287
一致トランスフォーメーションのビュー. . . . . . . . . . . . . . . . . . . . . . 287
一致トランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . 288
フィールド一致. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
フィールド照合アルゴリズム. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
フィールド一致ストラテジのプロパティ. . . . . . . . . . . . . . . . . . . . . . 292
フィールド一致出力のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . 293
デュアルソースのフィールド一致プロパティ. . . . . . . . . . . . . . . . . . . 294
フィールド一致の詳細プロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . 294
ID一致. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
ID一致タイプのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
xii
目次
IDマッチングストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
ID一致ストラテジのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
ID一致出力のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
IDマッチングの詳細プロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
一致マプレット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
一致マプレットの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
一致マプレットの使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
一致操作の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
第 23 章 : マージトランスフォーメーション........ 304
マージトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 304
マージストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
マージトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . 305
第 24 章 : パーサートランスフォーメーション. . . . . 306
パーサートランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . 306
パーサートランスフォーメーションのモード. . . . . . . . . . . . . . . . . . . . . . 307
パーサートランスフォーメーションを使用するとき. . . . . . . . . . . . . . . . . . 307
パーサートランスフォーメーションでの参照データの使用. . . . . . . . . . . . . 309
パターンセット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
確率モデル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
参照テーブル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
正規表現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
トークンセット. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
トークン解析操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
トークン解析ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
トークン解析のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
全般プロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
確率モデルのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
参照テーブルのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
トークンセットのプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
パターンベースの解析モード. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
パターンベースの解析ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
トークン解析ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
パターン解析ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
パーサートランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . 319
第 25 章 : ランクトランスフォーメーション........ 320
ランクトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 320
文字列値のランク付け. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
目次
xiii
ランクキャッシュ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
ランクトランスフォーメーションのプロパティ. . . . . . . . . . . . . . . . . . 321
ランクトランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . . 322
ランクポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
ランクインデックス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
グループの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
ランクトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . 324
第 26 章 : ルータトランスフォーメーション........ 326
ルータトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 326
グループに関する作業. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
入力グループ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
出力グループ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
グループフィルタ条件の使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
グループの追加. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
ポートに関する作業. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
マッピング内のルータトランスフォーメーションの接続. . . . . . . . . . . . . . . 330
ルータトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . 330
第 27 章 : ソータートランスフォーメーション. . . . . 331
ソータートランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . 331
ソータートランスフォーメーションの開発. . . . . . . . . . . . . . . . . . . . . . . 332
ソータートランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . 332
ソータキャッシュサイズ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
ソータートランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . 334
ソータートランスフォーメーションの作成. . . . . . . . . . . . . . . . . . . . . . . 334
再利用可能なソータートランスフォーメーションの作成. . . . . . . . . . . . 334
再利用不可能なソータートランスフォーメーションの作成. . . . . . . . . . 335
ソータートランスフォーメーションの例. . . . . . . . . . . . . . . . . . . . . . . . . 335
第 28 章 : SQLトランスフォーメーション........... 337
SQLトランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . . . 337
SQLトランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . . . 338
SQLトランスフォーメーションのポート. . . . . . . . . . . . . . . . . . . . . . . . . . 339
入力ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
出力ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
パススルーポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
SQLErrorポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
影響を受けた行の数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
SQLトランスフォーメーションクエリ. . . . . . . . . . . . . . . . . . . . . . . . . . . 343
xiv
目次
SQLクエリの定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
入力行と出力行のカーディナリティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
クエリ文の処理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
ポート設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
最大出力行数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
346
エラー行. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
SQLエラー時に続行. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
SQLトランスフォーメーションによるフィルタの最適化. . . . . . . . . . . . . . . . 349
SQLトランスフォーメーションを使用した初期選択の最適化. . . . . . . . . . 349
SQLトランスフォーメーションによるプッシュイン最適化. . . . . . . . . . . 350
SQLトランスフォーメーションの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
論理データオブジェクトマッピング. . . . . . . . . . . . . . . . . . . . . . . . . 351
Salaryテーブル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Employeeテーブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
SQLトランスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . . . . . .
353
出力. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
第 29 章 : 標準化トランスフォーメーション........ 356
標準化トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 356
標準化ストラテジ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
357
標準化のプロパティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
標準化ストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
標準化トランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . 359
第 30 章 : 共有体トランスフォーメーション........ 360
共有体トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . . . 360
グループおよびポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
共有体トランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . . . 361
共有体トランスフォーメーションの処理. . . . . . . . . . . . . . . . . . . . . . . . . 361
共有体トランスフォーメーションの作成. . . . . . . . . . . . . . . . . . . . . . . . . 362
再利用可能な共有体トランスフォーメーションの作成. . . . . . . . . . . . .
362
再利用不可能な共有体トランスフォーメーションの作成. . . . . . . . . . . . 362
第 31 章 : アップデートストラテジトランスフォーメ
ーション......................................... 363
アップデートストラテジトランスフォーメーションの概要. . . . . . . . . . . . .
363
アップデートストラテジの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
マッピング内の行のフラグ設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
アップデートストラテジ式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
アップデートストラテジトランスフォーメーションの詳細プロパティ. . . 365
目次
xv
アグリゲータトランスフォーメーションとアップデートストラテジトラ
ンスフォーメーション. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
個々のターゲットに対する更新オプションの指定. . . . . . . . . . . . . . . . . . . 366
第 32 章 : Webサービスコンシューマトランスフォーメ
ーション......................................... 367
Webサービスコンシューマトランスフォーメーションの概要. . . . . . . . . . . . . 367
SOAPメッセージ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
WSDLファイル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Webサービスのセキュリティ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
WSDLの選択. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Webサービスコンシューマトランスフォーメーションのポート. . . . . . . . . . . 370
HTTPヘッダー入力ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
その他の入力ポート. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Webサービスコンシューマトランスフォーメーションの入力マッピング. . . . . . 372
入力ポートをノードにマップするためのルールとガイドライン. . . . . . . 373
[ビューのカスタマイズ]のオプション. . . . . . . . . . . . . . . . . . . . . . 373
操作入力への入力ポートのマッピング. . . . . . . . . . . . . . . . . . . . . . . 374
Webサービスコンシューマトランスフォーメーションの出力マッピング. . . . . . 376
ノードを出力ポートにマップするためのルールとガイドライン. . . . . . . 376
SOAPメッセージをXMLとしてマップ . . . . . . . . . . . . . . . . . . . . . . . . . 377
[ビューのカスタマイズ]のオプション. . . . . . . . . . . . . . . . . . . . . . 377
出力ポートへの操作出力のマッピング. . . . . . . . . . . . . . . . . . . . . . . 378
Webサービスコンシューマトランスフォーメーションの詳細プロパティ. . . . . 379
Webサービスのエラー処理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
メッセージの圧縮 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
並行処理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
フィルタの最適化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Webサービスコンシューマトランスフォーメーションでの初期選択の最適
化の有効化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Webサービスコンシューマトランスフォーメーションによるプッシュイン
最適化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Webサービスコンシューマトランスフォーメーションの作成. . . . . . . . . . . . . 387
Webサービスコンシューマトランスフォーメーションの例. . . . . . . . . . . . . . 388
入力ファイル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
論理データオブジェクトモデル. . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
論理データオブジェクトマッピング. . . . . . . . . . . . . . . . . . . . . . . . . 389
Webサービスコンシューマトランスフォーメーション. . . . . . . . . . . . . . 390
xvi
目次
第 33 章 : WebサービスSOAPメッセージの解析...... 392
WebサービスSOAPメッセージの解析の概要. . . . . . . . . . . . . . . . . . . . . . . . 392
トランスフォーメーションのユーザーインタフェース. . . . . . . . . . . . . . . . . 393
複数出現出力設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
正規化したリレーショナル出力. . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
生成キー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
非正規化したリレーショナル出力. . . . . . . . . . . . . . . . . . . . . . . . . . 396
ピボット化したリレーショナル出力. . . . . . . . . . . . . . . . . . . . . . . . . 396
anyType要素の解析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
派生型の解析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
QName要素の解析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
代替グループの解析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
SOAPメッセージ内のXML構造の解析. . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
choice要素. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
list要素. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
union要素. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
第 34 章 : WebサービスSOAPメッセージの生成...... 401
WebサービスSOAPメッセージの生成の概要. . . . . . . . . . . . . . . . . . . . . . . . 401
トランスフォーメーションのユーザーインタフェース. . . . . . . . . . . . . . . . . 402
[入力ポート]領域. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
操作領域. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
ポートと階層レベルのリレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
キー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
ポートのマップ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
ポートのマップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
グループのマップ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
複数のポートのマップ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
複数出現ポートのピボット化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
非正規化データのマップ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
派生型および要素の置き換え. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
派生型の生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
anyType要素および属性の生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
置き換えグループの生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
SOAPメッセージ内のXML構造の生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
choice要素. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
list要素. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
union要素. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
目次
xvii
第 35 章 : 加重平均トランスフォーメーション. . . . . 416
加重平均トランスフォーメーションの概要. . . . . . . . . . . . . . . . . . . . . . . 416
加重平均トランスフォーメーションの構成. . . . . . . . . . . . . . . . . . . . . . . 416
加重マッチ率の例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
加重平均トランスフォーメーションの詳細プロパティ. . . . . . . . . . . . . . . . 417
付録 A : トランスフォーメーションの区切り文字. . . 419
トランスフォーメーションの区切り文字の概要. . . . . . . . . . . . . . . . . . . . . 419
索引............................................. 421
xviii
目次
序文
『Informatica Developerトランスフォーメーションガイド』は、データ品質とデータサー
ビスの開発者を対象としています。 本書では、データ品質の概念、フラットファイルとリ
レーショナルデータベースの概念、および作業環境のデータベースエンジンについて理解
していることを前提としています。また、『Informatica Developerユーザーガイド』で説
明されている概念について理解していることも前提となります。
Informaticaのリソース
Informaticaマイサポートポータル
Informaticaのユーザーであれば、Informaticaマイサポートポータル
(http://mysupport.informatica.com)にアクセスできます。
このサイトには、製品情報、ユーザーグループ情報、ニュースレター、Informaticaカスタ
マサポート事例管理システム(ATLAS)へのアクセス、Informatica How-Toライブラリ、
Informatica Knowledge Base、Informatica製品文書、Informaticaユーザーコミュニティ
へのアクセスが含まれています。
Informaticaのマニュアル
Informaticaのマニュアルチームは、正確で役に立つマニュアルの作成に努めています。こ
のマニュアルに関する質問、コメント、ご意見の電子メールの送付先は、Informaticaマニ
ュアルチーム([email protected])です。 お客様のフィードバック
は、マニュアルの改良に利用させていただきます。コメントに返信をご希望のお客様は、
その旨をお知らせください。
マニュアルチームは、必要に応じてマニュアルを更新します。製品の最新のマニュアルを
入手するには、http://mysupport.informatica.comから製品マニュアルにアクセスしま
す。
InformaticaのWebサイト
Informatica社のWebサイトは、http://www.informatica.comからアクセスできます。この
サイトでは、Informatica社の概要と沿革、今後のイベント、営業拠点などの情報を提供し
ています。また、製品情報やパートナー情報もあります。サービス関連のページには、テ
xix
クニカルサポート、トレーニングと教育、および実装に関するサービスの重要な情報を掲
載しています。
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サポートのYouTubeチャンネル
http://www.youtube.com/user/INFASupportでInformaticaサポートのYouTubeチャンネル
にアクセスできます。InformaticaサポートのYouTubeチャンネルでは、特定のタスクを実
行するソリューションについてのビデオを用意しています。Informaticaサポートの
YouTubeチャンネルに関する質問、コメント、またはアイデアがある場合は、サポート
YouTubeチームに電子メール([email protected])を送信するか、または
@INFASupportでツイートしてください。
Informatica Marketplace
情報マーケットプレースは、開発者とパートナーがデータ統合実装を増幅、拡張、強化す
るソリューションを共有するためのフォーラムです。マーケットプレースにある何百もの
ソリューションを利用して、プロジェクトで実装にかかる時間を短縮したり、生産性を向
上させたりできます。Informatica Marketplaceには、
http://www.informaticamarketplace.comからアクセスできます。
Informatica Velocity
http://mysupport.informatica.comでInformatica Velocityにアクセスできます。数多く
のデータ管理プロジェクトの実世界での経験から開発されたInformatica Velocityは、世
界中の組織と協力して優れたデータ管理ソリューションの計画、開発、展開、および維持
を行ってきた弊社コンサルタントの知識の集合体を表しています。Informatica Velocity
についての質問、コメント、またはアイデアがある場合は、[email protected]から
Informaticaのプロフェッショナルサービスにお問い合わせください。
xx
序文
Informaticaグローバルカスタマサポート
電話またはオンラインサポートからカスタマサポートセンターに連絡できます。
オンラインサポートのご利用には、ユーザー名とパスワードが必要です。
http://mysupport.informatica.comから、ユーザー名とパスワードが入手できます。
Informaticaグローバルカスタマサポートの電話番号は、InformaticaのWebサイト
http://www.informatica.com/us/services-and-training/support-services/global-support-centers/
に掲載されています。
はじめに
xxi
xxii
第 1 章
トランスフォーメーションに
ついて
この章では、以下の項目について説明します。
¨ トランスフォーメーションについての概要, 1 ページ
¨ トランスフォーメーションの開発, 5 ページ
¨ 再利用可能なトランスフォーメーション, 6 ページ
¨ トランスフォーメーションの式, 7 ページ
¨ トランスフォーメーションの作成, 10 ページ
¨ トレースレベル, 11 ページ
トランスフォーメーションについての概要
トランスフォーメーションは、データの生成、変更、または受け渡しを行うオブジェクト
です。
Informatica Developerには、特定の関数を実行する一連のトランスフォーメーションが用
意されています。例えば、アグリゲータトランスフォーメーションはデータのグループに
対して計算を実行します。
マッピング内のトランスフォーメーションは、Data Integration Serviceがデータに対し
て実行する処理を表します。 データは、マッピングまたはマップレット内のリンクされた
トランスフォーメーションポートを通過します。
トランスフォーメーションはアクティブであるかパッシブであるかのいずれかです。トラ
ンスフォーメーションはデータフローに接続されているか、接続されていないかのいずれ
かです。
アクティブなトランスフォーメーション
アクティブなトランスフォーメーションは、トランスフォーメーションの前後で行数を変
更します。 または、行タイプを変更します。
1
例えば、フィルタトランスフォーメーションはフィルタ条件を満たさない行を削除するた
め、アクティブなトランスフォーメーションです。 また、アップデートストラテジトラン
スフォーメーションは挿入、削除、更新、または拒否のフラグを行に設定するため、アク
ティブなトランスフォーメーションです。
複数のアクティブなトランスフォーメーション、または1つのアクティブなトランスフォー
メーションと1つのパッシブなトランスフォーメーションを同じダウンストリームトランス
フォーメーションまたはトランスフォーメーション入力グループに接続することはできま
せん。Data Integration Serviceはアクティブなトランスフォーメーションから渡される
行を連結できない可能性があります。
例えば、マッピング内の1つのブランチに、行に削除のフラグを付けるアップデートストラ
テジトランスフォーメーションが含まれているとします。別のブランチには、行に挿入の
フラグを付けるアップデートストラテジトランスフォーメーションが含まれています。こ
れらのトランスフォーメーションを1つのトランスフォーメーション入力グループに接続し
た場合、Data Integration Serviceは行の削除操作と挿入操作を結合できません。
パッシブなトランスフォーメーション
パッシブなトランスフォーメーションでは、トランスフォーメーションの前後で行数は変
更されず、行タイプも維持されます。
アップストリームブランチ内のすべてのトランスフォーメーションがパッシブである場
合、複数のトランスフォーメーションを同じダウンストリームトランスフォーメーション
またはトランスフォーメーション入力グループに接続できます。 ブランチを発生させるト
ランスフォーメーションはアクティブである場合とパッシブである場合があります。
接続されていないトランスフォーメーション
トランスフォーメーションはデータフローに接続されているか、接続されていないかのい
ずれかです。コネクトされていないトランスフォーメーションとは、マッピング内の他の
トランスフォーメーションに接続されていないトランスフォーメーションのことです。コ
ネクトされていないトランスフォーメーションは他のトランスフォーメーション内で呼び
出され、そのトランスフォーメーションに値を返します。
複数ストラテジのトランスフォーメーション
以下のトランスフォーメーションで、複数のトランスフォーメーションストラテジを定義
することができます。
¨ 大文字小文字
¨ 分類子
¨ ディシジョン
¨ キージェネレータ
¨ ラべラ
¨ 一致
¨ マージ
¨ パーサー
2
第 1章: トランスフォーメーションについて
¨ 標準化
トランスフォーメーションのストラテジごとに異なる入力ポートと出力ポートのセットを
割り当てることができます。 定義したストラテジは、1つのトランスフォーメーションオ
ブジェクトに格納されます。
注: 各ストラテジで使用する入力と出力は、[依存関係]ビューで確認できます。
トランスフォーメーションの説明
Developerツールには、共通のトランスフォーメーションとデータ品質トランスフォーメー
ションが含まれます。共通のトランスフォーメーションは、Informatica Data Qualityと
Informatica Data Servicesで使用できます。 データ品質トランスフォーメーションは、
Informatica Data Qualityで使用できます。
次の表に、各トランスフォーメーションを示します。
トランスフォー
メーション
タイプ
説明
アドレスバリデ
ータ
アクティブま
たはパッシ
ブ/
アドレスデータを修正し、検証情報を
返します。
接続済
関連付け
アグリゲータ
アクティブ/
接続済
さまざまな一致クラスタに割り当てら
れる重複レコード間のリンクを作成し
ます。
アクティブ/
集計の計算を実行します。
接続済
大文字小文字変
換プログラム
パッシブ/
分類子
パッシブ/
接続済
接続済
比較
パッシブ/
接続済
統合
アクティブ/
接続済
データマスキン
グ
パッシブ/
接続済または
未接続
文字列の大文字小文字を標準化しま
す。
入力ポートフィールド内の情報をまと
めたラベルを書き込みます。入力フィ
ールドがかなりのテキスト量になる場
合に使用します。
入力文字列のペア間の類似度を示す数
値スコアを生成します。
一致トランスフォーメーションによっ
て重複として特定されたレコードか
ら、統合されたレコードを作成しま
す。
非プロダクション環境で、センシティ
ブなプロダクションデータを現実的な
テストデータに置き換えます。
トランスフォーメーションについての概要
3
トランスフォー
メーション
タイプ
説明
ディシジョン
パッシブ/
入力データの条件を評価し、それらの
条件の結果に基づいて出力を作成しま
す。
接続済
例外
Expression
アクティブ/
接続済
アナリストが確認および編集可能なス
テージングテーブルの例外をロードし
ます。例外とは、現在の形式ではデー
タセットに属さないレコードです。
パッシブ/
値を計算します。
接続済
Filter
アクティブ/
データをフィルタリングします。
接続済
Java
アクティブま
たはパッシ
ブ/
Javaで書かれたユーザコードを実行し
ます。ユーザロジックのバイトコード
はリポジトリ内に格納されています。
接続済
ジョイナ
アクティブ/
接続済
キージェネレー
タ
アクティブ/
ラべラ
パッシブ/
接続済
接続済
ルックアップ
アクティブま
たはパッシ
ブ/
接続済または
未接続
一致
アクティブ/
接続済
マージ
アウトプット
パッシブ/
選択されたカラム内のデータ値に基づ
いて、レコードをグループに分類しま
す。
入力ポートフィールド内の文字または
文字列を記述したラベルを書き込みま
す。
フラットファイル、論理データ オブジ
ェクト、参照テーブル、リレーショナ
ルテーブル、ビュー、または同義語か
らのデータをルックアップして返しま
す。
入力レコード間の類似度を示すスコア
を生成し、類似度の高いレコードをグ
ループ化します。
接続済
複数の入力カラムからデータ値を読み
取り、単一の出力カラムを作成しま
す。
パッシブ/
マップレット出力行を定義します。
接続済
4
異なるデータベースまたはフラットフ
ァイルシステムから得たデータを結合
します。
第 1章: トランスフォーメーションについて
トランスフォー
メーション
タイプ
説明
パーサー
パッシブ/
入力ポートフィールドの値を解釈し、
含まれている情報のタイプに基づいて
別々の出力ポートに送ります。
接続済
ランク
アクティブ/
接続済
ルータ
アクティブ/
接続済
ソータ
アクティブ/
接続済
SQL
アクティブま
たはパッシ
ブ/
レコードのランキング処理を行いま
す。
グループ条件に基づいて、複数のトラ
ンスフォーメーションにデータをルー
ティングします。
ソートキーに基づいてデータをソート
します。
データベースに対してSQLクエリを実行
します。
接続済
標準化
パッシブ/
入力文字列の標準化版を生成します。
接続済
共有体
アクティブ/
接続済
アップデートス
トラテジ
アクティブ/
Webサービスコン
シューマ
アクティブ/
加重平均
パッシブ/
接続済
接続済
接続済
異なるデータベースまたはフラットフ
ァイルシステムから得たデータを結合
します。
行を挿入、削除、更新、または拒否す
るかどうかを決定します。
WebサービスクライアントとしてWebサ
ービスに接続し、データへのアクセス
またはデータの変換を行います。
一致ストラテジから一致スコアを読み
込み、平均一致スコアを生成します。
ストラテジ内のデータの相対的な重要
度に基づいて、各ストラテジに異なる
数値の加重を適用することができま
す。
トランスフォーメーションの開発
マッピングを作成する場合は、トランスフォーメーションを追加し、そのトランスフォー
メーションに業務目的に応じたデータ処理方法を設定します。
トランスフォーメーションの開発
5
トランスフォーメーションを開発してマッピングに組み込むには、以下の作業を行いま
す。
1.
再利用できないトランスフォーメーションをマッピングまたはマプレットに追加しま
す。または、複数のマッピングまたはマプレットに追加できる再利用可能なトランス
フォーメーションを作成します。
2.
トランスフォーメーションを設定します。各タイプのトランスフォーメーションに
は、設定可能な固有のオプションのセットがあります。
3.
再利用可能なトランスフォーメーションの場合は、そのトランスフォーメーションを
マッピングまたはマプレットに追加します。
4.
マッピングまたはマプレット内の他のオブジェクトにトランスフォーメーションをリ
ンクします。
上流のオブジェクトからこのトランスフォーメーションの入力ポートに、ポートをド
ラッグします。このトランスフォーメーションから下流のオブジェクトのポートに、
出力ポートをドラッグします。トランスフォーメーションによっては、選択できる事
前定義済みポートを使用します。
注: 再利用可能なトランスフォーメーションを作成するときは、このトランスフォーメー
ションを他のオブジェクトにリンクする前に、必要となる入力ポートと出力ポートを追加
します。マプレットまたはマッピングキャンバス上のトランスフォーメーションインスタ
ンスにポートを追加することはできません。再利用可能なトランスフォーメーションのポ
ートを更新するには、リポジトリプロジェクトからトランスフォーメーショオブジェクト
を開いてからポートを追加します。
再利用可能なトランスフォーメーション
再利用可能なトランスフォーメーションは、複数のマッピングまたはマプレットで使用で
きるトランスフォーメーションです。
例えば、カナダでの販売付加価値税を計算する式トランスフォーメーションを作成すれ
ば、カナダにおける事業コストを分析できます。 いつも同じ作業を行うというのであれ
ば、再利用可能なトランスフォーメーションを作成できます。当該のトランスフォーメー
ションをマッピングに組み込む必要のある場合には、そのインスタンスをマッピングに追
加してください。トランスフォーメーションの定義を変更した場合には、そのインスタン
スはすべてこの変更を受け継ぎます。
Developerツールは再利用可能なトランスフォーメーションを、それを使用するマッピング
またはマプレットとは別のメタデータとして格納します。 再利用可能なトランスフォーメ
ーションは、プロジェクトまたはフォルダに格納されます。
再利用可能なトランスフォーメーションのインスタンスをマッピングに追加した場合、ト
ランスフォーメーションに変更を加えると、マッピングが無効になったり、予期しないデ
ータが生成されたりすることがあります。
6
第 1章: トランスフォーメーションについて
再利用可能なトランスフォーメーションのインスタン
スと継承される変更
再利用可能なトランスフォーメーションをマッピングまたはマプレットに追加する場合に
は、このトランスフォーメーションのインスタンスを追加します。 トランスフォーメーシ
ョンの定義はマッピングまたはマプレット外にあるのに対して、トランスフォーメーショ
ンのインスタンスはマッピングまたはマプレット内に表示されます。
トランスフォーメーションを変更すると、トランスフォーメーションのインスタンスにそ
れらの変更が反映されます。 同じトランスフォーメーションを使用するマッピングでそれ
ぞれトランスフォーメーションを更新する代わりに、再利用可能なトランスフォーメーシ
ョンを一度更新すると、そのトランスフォーメーションのインスタンスすべてに変更が反
映されます。 インスタンスには、トランスフォーメーションのポート、式、プロパティ、
および名前に対する変更が継承されます。
再利用可能なトランスフォーメーションの編集
再利用可能なトランスフォーメーションを編集すると、そのトランスフォーメーションの
すべてのインスタンスに変更が継承されます。 変更によっては、再利用可能なトランスフ
ォーメーションを使用したマッピングが無効となる場合があります。
再利用可能なトランスフォーメーションは、エディタで開いて編集することができます。
マッピング内でトランスフォーメーションのインスタンスを編集することはできません。
ただし、トランスフォーメーションのランタイムプロパティは編集が可能です。
再利用可能なトランスフォーメーションに以下のいずれかの変更を行うと、そのインスタ
ンスを用いるマッピングが無効となる場合があります。
¨ トランスフォーメーションの1つ以上のポートを削除すると、マッピングの一部または
すべてのデータフローからインスタンスが切り離されます。
¨ ポートのデータ型を変更すると、そのポートから互換性のないデータ型を使用する別の
ポートへマッピングできなくなります。
¨ ポート名を変更すると、そのポートを参照する式は無効となります。
¨ 再利用可能なトランスフォーメーションに無効な式を入力すると、そのトランスフォー
メーションを使用するマッピングは無効となります。 Data Integration Serviceでは
無効なマッピングを実行できません。
トランスフォーメーションの式
一部のトランスフォーメーションでは、式エディタで式を入力できます。 式はデータを変
更します。または、データが条件に一致するかテストします。
トランスフォーメーション言語関数を使用する式を作成します。 トランスフォーメーショ
ン言語関数は、データを変換するSQLに似た関数です。
入力または入出力ポートから得たデータの値を使用するポートに、式を入力します。 例え
ば、全従業員の給与が含まれる入力ポートIN_SALARYを持つトランスフォーメーションがあ
るとします。IN_SALARYカラムの値を後でマッピングに使用できます。このトランスフォー
トランスフォーメーションの式
7
メーションを使用sテンプレート、給与の合計や平均を計算することもできます。
Developerツールでは各計算値について個別の出力ポートを作成する必要があります。
以下の表に、式を入力できるトランスフォーメーションを示します。
8
トランスフ
ォーメーシ
ョン
式
戻り値
アグリゲー
タ
トランスフォーメーションを通過
するすべてのデータに基づいて、
集計を行います。また、集計する
レコードに対してフィルタを指定
して、特定のレコードを排除でき
ます。たとえば、このトランスフ
ォーメーションを用いて、事務所
の全従業員の総数と平均給与を算
出できます。
ポートの集計結果。
Expression
単一の行内の値に基づいて計算を
行います。たとえば、特定品目の
価格や数量に基づいて、注文にお
けるその品目の購入価格合計値の
算出ができます。
ポートの行レベルの計
算結果。
Filter
このトランスフォーメーションを
通過する行のフィルタリング条件
を指定します。たとえば、未払い
残高のある顧客についての
BAD_DEBTテーブルに顧客データを
書き込みたい場合には、Filterト
ランスフォーメーションを用いて
顧客データのフィルタリングがで
きます。
TRUEまたはFALSE。指定
条件を行が満たしてい
るかどうかによりま
す。 TRUEを返す行はこ
のトランスフォーメー
ションを通過し、 通過
した各行にこの値が適
用されます。
ジョイナ
未ソートソースデータで使用され
る詳細な条件を指定します。例え
ば、名と姓のマスターポートを連
結し、それをフルネーム明細ポー
トと一致させることができます。
TRUEまたはFALSE。指定
条件を行が満たしてい
るかどうかによりま
す。選択した結合タイ
プに応じて、Data
Integration Serviceは
行を結果セットに追加
するか、または行を無
視します。
ランク
ランクに含める行の条件を設定し
ます。例えば、現在組織に所属し
ている販売員の上位10名をランク
付けできます。
ポートの条件適用結果
または計算結果。
第 1章: トランスフォーメーションについて
トランスフ
ォーメーシ
ョン
式
戻り値
ルータ
グループ式に基づいて、複数のト
ランスフォーメーションにデータ
をルーティングします。たとえ
ば、このトランスフォーメーショ
ンを使用して、3つの異なる給与
レベルに属する従業員の給与を比
較します。これは、Routerトラン
スフォーメーションに3つのグル
ープを作成することによって行う
ことができます。たとえば、各給
与範囲に対して1つのグループ式
を作成します。
TRUEまたはFALSE。指定
されたグループ式を行
が満たしているかどう
かによります。 TRUEを
返す行は、このトラン
スフォーメーションの
各ユーザー定義グルー
プを通過します。
FALSEを返す行は、デフ
ォルトグループを通過
します。
アップデー
トストラテ
ジ
行に更新、挿入、削除、またはリ
ジェクトのフラグを設定します。
一定の条件に基づいてターゲット
の更新を管理する場合に、このト
ランスフォーメーションを使用し
ます。例えば、アップデートスト
ラテジトランスフォーメーション
を用いて、全顧客の行に対して、
メールアドレスが変更された際に
更新フラグを設定したり、 全従
業員の行に対して、社員でなくな
った者については拒否フラグを設
定したりできます。
更新、挿入、削除、ま
たはリジェクトに対応
する数値コード。この
トランスフォーメーシ
ョンは該当値を各取得
行に適用します。
式エディタ
式エディタは、SQLに似た文を作成するために使用します。
式を手動で入力することも、ポイントアンドクリック機能を使用することもできます。 ポ
イントアンドクリックインタフェースを使用して関数、ポート、変数、および演算子を選
択することで、式を作成するときのエラーを減らすことができます。式に使用できる文字
は最大32,767文字です。
式内のポート名
式にはトランスフォーメーションのポート名を入力することができます。
接続されているトランスフォーメーションでは、式でポート名を使用した場合、トランス
フォーメーション内のポート名を変更するとDeveloperツールによって式が更新されます。
例えば、2つの日付Date_PromisedとDate_Deliveredの間の差を求める式を作成したとしま
す。 この場合、Date_Promisedポートの名前をDue_Dateに変更すると、式内の
Date_Promisedポート名はDue_Dateに変更されます。
注: ポート名Due_Dateは、マッピングでこのポートに依存する他の再利用不可能なトラン
スフォーメーションにプロパゲートできます。
トランスフォーメーションの式
9
ポートへの式の追加
出力ポートに式を追加することができます。
1.
トランスフォーメーションで、ポートを選択し、式エディタを開きます。
2.
式を入力します。
[関数]タブおよび[ポート]タブ、および演算子キーを使用します。
3.
必要に応じて、式にコメントを追加します。
コメントインジケータの「--」または「//」を使用します。
4.
[検証]ボタンをクリックして、式を検証します。
5.
[OK]をクリックします。
6.
式が有効でない場合、検証エラーを修正して再度検証します。
7.
式が有効になったら、[OK]をクリックして式エディタを閉じます。
式内のコメント
コメントを式に追加して式に関する説明を記述したり、式に関連するビジネス文書にアク
セスするための有効なURLを指定したりできます。
式にコメントを追加するには、コメントインジケータ「--」または「//」を使用します。
式の検証
マッピングを実行したりマプレットの出力をプレビューしたりするには、式を検証する必
要があります。
式を検証するには、式エディタの[検証]ボタンを使用します。 自分で式の検証を行わず
に式エディタを閉じると、Developerツールによって式が検証されます。 式が無効な場
合、Developerツールは警告を表示します。 無効な式を保存または変更することができま
す。
トランスフォーメーションの作成
複数のマッピングまたはマプレットで再利用する再利用可能なトランスフォーメーション
を作成できます。 また、マッピングまたはマプレットで1回だけ使用する再利用不可のト
ランスフォーメーションも作成できます。
再利用可能なトランスフォーメーションを作成するには、[ファイル] > [新規] > [ト
ランスフォーメーション]をクリックし、ウィザードの手順に従います。
マッピングまたはマプレットで再利用不可のトランスフォーメーションを作成するには、
トランスフォーメーションパレットからトランスフォーメーションを選択し、エディタに
ドラッグします。
10
第 1章: トランスフォーメーションについて
トランスフォーメーションによっては、作成時にモードの選択などの追加の設定が必要に
なるものがあります。 例えば、パーサートランスフォーメーションを作成するときは、ト
ークン解析モードとパターン解析モードのどちらかを選択する必要があります。
作成したトランスフォーメーションはエディタに表示されます。 トランスフォーメーショ
ンによっては、あらかじめ定義されたポートやグループが含まれていることがあります。
それ以外のトランスフォーメーションは空です。
トレースレベル
トランスフォーメーションを設定するとき、Data Integration Serviceがログに書き込む
情報の詳細度を指定できます。
デフォルトでは、すべてのトランスフォーメーションのトレースレベルは[Normal]で
す。正常に動作しないトランスフォーメーションをトラブルシュートする必要がある場合
は、トレースレベルをいずれかの[Verbose]設定に変更します。ログに最小限の情報を表
示する場合は、トレースレベルを[Terse]に設定します。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
トランスフォーメーションのログに表示される情報の詳細度。
以下の表に、トレースレベルを示します。
トレースレベル
説明
Terse
初期化情報とエラーメッセージ、およびリジェク
トされたデータに関する通知を記録します。
Normal
初期化情報とステータス情報、発生したエラー、
トランスフォーメーション行エラーの発生時にス
キップした行を、ログに記録します。 マッピング
結果のまとめを行いますが、個別行のレベルでの
まとめは行いません。
デフォルトは[Normal]です。
トレースレベル
11
トレースレベル
説明
Verbose
Initialization
Normalトレースで記録される情報に加えて、初期
化の詳細、インデックス名と使用されたデータフ
ァイル名、詳細なトランスフォーメーション統計
をログに記録します。
Verbose Data
Verbose Initializationトレースで記録される情
報に加えて、マッピングに渡された各行をログに
記録します。 また、カラムの精度に合わせて文字
列データを切り詰めた場所と、詳細なトランスフ
ォーメーション統計情報も記録します。
このトレースレベルを設定した場合、トランスフ
ォーメーションが処理されるときに、ブロック内
のすべての行の行データがログに書き込まれま
す。
12
第 1章: トランスフォーメーションについて
第 2 章
アドレスバリデータトランス
フォーメーション
この章では、以下の項目について説明します。
¨ アドレスバリデータトランスフォーメーションの概要, 13 ページ
¨ アドレスバリデータトランスフォーメーションの入力ポートグループ, 15 ページ
¨ アドレスバリデータトランスフォーメーションの出力ポートグループ, 16 ページ
¨ 複数インスタンスのポート, 18 ページ
¨ アドレス検証プロジェクト, 19 ページ
¨ フォーマットされたアドレスと郵便事業者の住所表記基準, 20 ページ
¨ アドレスバリデータのステータスポート, 21 ページ
¨ アドレス参照データファイルのステータス, 33 ページ
¨ アドレスバリデータトランスフォーメーションの詳細プロパティ, 34 ページ
¨ アドレスバリデータトランスフォーメーションの全般設定, 44 ページ
¨ 認証レポート, 45 ページ
¨ アドレスバリデータトランスフォーメーションの設定, 48 ページ
¨ アドレスバリデータトランスフォーメーションへのポートの追加, 49 ページ
¨ ユーザー定義テンプレートの作成, 50 ページ
¨ アドレスバリデータのモデルの定義, 50 ページ
¨ 認証レポートの定義, 51 ページ
アドレスバリデータトランスフォーメーショ
ンの概要
アドレスバリデータトランスフォーメーションでは、入力アドレスデータをアドレス参照
データと比較して入力データの精度を確認し、それらのアドレスの誤りを修正します。 こ
13
のトランスフォーメーションは、新しいアドレスデータ、修正されたアドレスデータ、お
よび各アドレスのステータス情報を持つカラムを作成します。
アドレスバリデータトランスフォーメーションは、デフォルトではパッシブなトランスフ
ォーメーションですが、[実行インスタンス数]プロパティに1より大きい値を設定すると
アクティブなトランスフォーメーションになります。
以下の方法でアドレスデータを検証して更新することができます。
¨ 入力データをInformaticaから提供されるアドレス参照データと比較します。
¨ 各入力アドレスの有効性、配達可能ステータス、および誤りの性質やその曖昧さに関す
る詳しいステータスレポートを生成します。
¨ 参照データの情報を使用して、誤りを修正し、部分的なアドレスレコードを完全なもの
にします。 アドレスを修正するには、参照データのアドレスとの明確な一致を探す必
要があります。
¨ 郵送可能な形式で出力アドレスを書き込みます。 形式はトランスフォーメーションの
出力ポートを選択するときに定義します。
¨ 標準のアドレスには含まれない、郵便配達の際に役立つ情報(ジオコーディング情報な
ど)を追加します。
アドレス参照データ
アドレス参照データセットには、国内の配達可能アドレスがすべて記述されたデータが含
まれています。 アドレス検証プロセスでは、入力アドレスデータに最もよく似たアドレス
を参照データセットから探します。 よく似たアドレスが参照データセット内で見つかる
と、無効または不完全なデータ値に対して新しい値が書き込まれます。 このプロセスで
は、入力アドレスと参照アドレスの間に見つかった一致のタイプを説明する一連の英数字
のコードが作成されます。
また、アドレスを再構築したり、入力アドレスにない情報(米国のアドレスの4桁の郵便番
号サフィックスなど)を追加したりすることもできます。
アドレス参照データセットは、Data Qualityのインストールには含まれていません。アド
レス参照データセットは別途ダウンロードし、Data Quality Content Installerを使用し
てインストールする必要があります。 アドレス参照データセットに関する情報を確認する
には、Developerツールの[設定]ウィンドウを使用します。
ポートグループとポートの選択
アドレスバリデータトランスフォーメーションには、使用可能な入力ポートと出力ポート
を含む定義済みのポートグループが含まれています。 アドレスバリデータトランスフォー
メーションを設定する場合、グループを参照して必要なポートを選択します。
アドレス入力データに対応する入力ポートを選択します。プロジェクトに必要なアドレス
データを含む出力ポートを選択します。
入力ポートと出力ポートはトランスフォーメーションに直接選択できます。また、入力ポ
ートと出力ポートを含むデフォルトモデルを作成することもできます。ポートをトランス
フォーメーションに直接選択すると、選択したポートはそのトランスフォーメーションに
のみ適用されます。ポートをデフォルトモデルに追加すると、そのポートは、それ以降に
作成するアドレスバリデータトランスフォーメーションに適用されます。
注: デフォルトモデルはリポジトリオブジェクトではありません。デフォルトモデルは作
成したマシン内に存在します。
14
第 2章: アドレスバリデータトランスフォーメーション
アドレスバリデータトランスフォーメーションで処理しないカラムについては、パススル
ーポートをトランスフォーメーションに追加できます。
ポートのテンプレート
トランスフォーメーションには、ポートのテンプレートを1つ以上作成できます。テンプレ
ートは、1つ以上のポートグループからのポートのサブセットです。テンプレートを使用し
て、プロジェクトで頻繁に使用するポートを編成しておくことができます。
作成したテンプレートは、モデルリポジトリのすべてのアドレスバリデータトランスフォ
ーメーションに表示されます。
アドレスバリデータトランスフォーメーショ
ンの入力ポートグループ
アドレスデータをトランスフォーメーションの入力ポートに接続する前に、入力グループ
を参照して、入力データの構造および内容に対応するポートを選択する必要があります。
出力グループを参照して、データの要件を満たすポートを選択します。
アドレスバリデータトランスフォーメーションには、基本モデルと詳細モデルのポートグ
ループが表示されます。 ほとんどのアドレスは、基本モデルのポートグループを使用して
定義できます。 詳細モデルで利用可能なその他のポートは、アドレスが非常に複雑な場合
に使用します。
注: 複数のポートを選択するときは、すべて同じ入力ポートグループから選択します。
以下の入力ポートグループがあります。
個別
住居番号、町名、郵便番号など、個々のデータ要素に完全な情報を含むデータ列を読
み取ります。 [個別]グループは、基本モデルと詳細モデルの両方で使用できます。
混合
1つまたは複数のデータ要素を含むデータ列を読み取ります。 [混合]グループは、
[個別]グループと[複数行]グループのそれぞれのポートを組み合わせたもので
す。 郵便事業者に登録する住所レコードを作成する場合は、[混合]ポートを使用し
ます。 [混合]ポートは、郵便事業者の住所表記標準に合わせて住所を構成し、各行
のデータタイプを識別します。 [混合]グループは、基本モデルと詳細モデルの両方
で使用できます。
複数行
複数行のデータ要素を含むデータ列を読み取ります。 各入力行は、郵便事業者が要求
する住所表記形式で記述した住所の各行に対応します。 住所列を[複数行]ポートに
関係付けて、印刷する住所のレコードセットを作成します。
各[複数行]ポートは、印刷された住所の各行を表します。以下に、例として町名デ
ータの行を示します。
"123 Main Street Apartment 2"
アドレスバリデータトランスフォーメーションの入力ポートグループ
15
[複数行]ポートは、各住所行に表示されるデータのタイプを指定しません。 [複数
行]グループは、基本モデルと詳細モデルの両方で使用できます。
アドレスバリデータトランスフォーメーショ
ンの出力ポートグループ
アドレスバリデータトランスフォーメーションを他のトランスフォーメーションまたはデ
ータオブジェクトに接続する前に、必要なデータの種類と、出力アドレスの構造を決定し
ます。
出力グループを参照して、データの要件を満たすポートを選択します。
注: ポートは複数の出力グループから選択することが可能で、共通の機能を持つポートを
選択することができます。
以下の定義済みの出力グループがあります。
アドレス要素
住居番号、部屋番号、町名など、住所データの各要素を個別のポートに書き出しま
す。 基本モデルと詳細モデルでアドレス要素グループを検索します。
オーストラリア特有
オーストラリア郵便公社のAddress Matching Approval System(AMAS)基準に準拠し
たオーストラリア住所表記のデータを生成します。 基本モデルと詳細モデルでオース
トラリア特有グループを検索します。
CAMEO
カスタマセグメント化分析で使用できる人口統計および所得の概要データを生成しま
す。基本モデルでCAMEOグループを検索します。
カナダ特有
カナダ郵便公社のSoftware Evaluation and Recognition Program(SERP)基準に準拠
したカナダ住所表記のデータを生成します。 基本モデルでカナダ特有グループを検索
します。
担当者要素
名前、敬称、役職名など、個人または担当者のデータを書き出します。 詳細モデルで
担当者要素グループを検索します。
国
国際標準化機構 (ISO)で定義されている国名や国コードを記述します。基本モデルと
詳細モデルで国グループを検索します。
フォーマットされたアドレス行
印刷用または郵送用にフォーマットされた住所を書き出します。 基本モデルと詳細モ
デルでフォーマットされたアドレス行グループを検索します。
16
第 2章: アドレスバリデータトランスフォーメーション
フランス特有
フランス郵政公社のNational Address Management Service(SNA)基準に準拠したフ
ランス住所表記のデータを生成します。基本モデルでフランス特有グループを検索し
ます。
ジオコーディング
住所のジオコードデータ(緯度座標と経度座標など)を生成します。 基本モデルでジ
オコーディンググループを検索します。
ID要素
レコードIDとトランザクションキーを書き出します。 詳細モデルでID要素グループを
検索します。
日本補足
日本の住所表記に使用する地域識別データを書き出します。基本モデルで日本補足グ
ループを検索します。
最終行の要素
国内で使われる住所の最終行に表示するデータを書き出します。 基本モデルと詳細モ
デルで最終行の要素グループを検索します。
ニュージーランド特有
[SendRightステータス]データを含む郵便配達に役立つニュージーランドのアドレス
データを生成します。基本モデルでニュージーランド特有グループを検索します。
その他
トランスフォーメーションで解析できないデータ要素を他のポートに書き出します。
基本モデルと詳細モデルでその他グループを検索します。
RS補足
セルビアの住所表記で使用する郵便番号の補足データを書き出します。基本モデルで
RS補足グループを検索します。
ステータス情報
入力および出力された住所ごとに品質に関する詳細情報を出力します。 基本モデルで
ステータス情報グループを検索します。
英国補足
英国の住所表記で使用する集配場所データを書き出します。基本モデルでUK補足グル
ープを検索します。
米国特有
集配場所など、郵便の配達に役立つ米国の住所表記のデータを生成します。 基本モデ
ルで米国特有グループを検索します。
米国補足
アメリカ合衆国の連邦情報処理標準(FIPS)コードのような地理的あるいは人口統計学
のデータを記述します。基本モデルで米国補足グループを検索します。
アドレスバリデータトランスフォーメーションの出力ポートグループ
17
複数インスタンスのポート
住所データタイプの多くは、住所内に複数回出現します。 複数回出現するデータ要素が住
所に含まれている場合には、複数インスタンスのポートを選択することができます。
複数インスタンスのポートには、最大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個
選択できます。
18
第 2章: アドレスバリデータトランスフォーメーション
アドレス検証プロジェクト
アドレスバリデータトランスフォーメーションは、さまざまなタイプのプロジェクトで使
用できます。 プロジェクトタイプごとに、各種ポートを使用して住所テンプレートを作成
します。
アドレス検証プロジェクトは、以下の目的で定義することができます。
郵便事業者の標準に準拠するようにフォーマットされた住所の作成
郵便でのキャンペーン用に、大きな住所レコードセットを準備することができます。
郵便事業者の希望するフォーマットで住所を作成すると、郵送料が大幅に下がりま
す。 郵送用の住所を準備する場合は、フォーマットされた住所の各行を単一ポートに
書き出す出力ポートを選択します。 担当者名、番地住所の行、および市区町村と郵便
番号の行に、別々のポートを選択できます。
収入と生活様式をインジケータとする住所の整理
カスタマセグメント化データを居住地住所レコードに追加することができます。カス
タマセグメント化データは、住所ごとに居住者の推定収入レベルと希望の生活様式を
示しています。CAMEO出力グループからポートを選択して、カスタマセグメント化デー
タを住所レコードに追加します。カスタマセグメント化データは、複数のカスタマ市
場をターゲットにするメールキャンペーンで使用することができます。
郵便事業者から認証される住所の作成
Australia Post(オーストラリア郵政公社)、Canada Post(カナダ郵政公社)、また
はUSPS(米国郵政公社)向けのレコードセットを準備する際に、各住所の配達可能性
を確認するデータを追加することができます。
アドレスバリデータトランスフォーメーションでは、各郵便事業者のデータ標準に対
して住所レコードが完全かつ正確であることを証明するレポートを生成できます。
規制上の要件を満たす住所の作成
組織が保持している住所レコードが、業界または政府の規制に正確に従っていること
を検証できます。 住所データの各要素を別々のフィールドに書き込む出力ポートを選
択します。 さらに、出力データの正確性と完全性について詳細な情報を提供するアド
レス検証ステータスポートを選択します。
住所のデータ品質の向上
他のデータプロジェクトと並行して、住所データセットの構造および全般的なデータ
品質を高めることができます。 例えば、データセットに不要なカラムが含まれていた
り、同じタイプのデータが複数のカラムに含まれていたりする場合があります。 デー
タセット内のカラム数を減らすと共に、さまざまなタイプのデータに使用するカラム
を簡略化することができます。
アドレス検証プロジェクト
19
フォーマットされたアドレスと郵便事業者の
住所表記基準
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
印刷する住所を、行ごとに1つのポートへ書き出すように設定することができます。 その
場合、それぞれの行のデータタイプに適したポートを使用できますが、各行のデータタイ
プに関係なく住所の構造を受け付けるポートを使用することもできます。
以下の表に、米国の住所を印刷するときの住所の2種類のフォーマット方法を示します。
印刷する住所
使用ポートの一例
使用ポートのもう一つ
の例
JOHN DOE
受取人行1
フォーマットされたア
ドレス行1
123 MAIN ST NW STE 12
送付先住所1
フォーマットされたア
ドレス行2
ANYTOWN NY 12345
国特有の最終行1
フォーマットされたア
ドレス行3
[フォーマットされたアドレス行]ポートを使用するのは、データセットにタイプの異な
る住所(勤務先住所と自宅住所など)が混在している場合です。 勤務先住所の場合、担当
者と組織の情報で3行必要になることもあります。 アドレスバリデータトランスフォーメ
ーションは、必要に応じて[フォーマットされたアドレス行]ポートのみを使用して、勤
務先住所も自宅住所も適切にフォーマットします。 ただし、[フォーマットされたアドレ
ス行]ポートは、ポートに含まれるデータタイプを指定しません。
[受取人行]、[送付先住所]、[国特有の最終行]などのポートを使用するのは、すべ
ての住所が同じ形式でフォーマットされている場合です。 これらのポートにより、住所の
データ要素がデータタイプ別に分類されるので、データセットを把握しやすくなります。
注: この例の住所は、他のポートを使用して処理することもできます。 上記の例は、印刷
と配達用に住所をフォーマットするポートの説明を目的としたものです。
人口統計データと地理的データ
DMによるキャンペーンでレコードセットを作成する場合、さまざまなデータタイプを追加
して住所表記に挿入することができます。 このようなデータを使用することで、郵便物の
配達状況を人口統計的に、地理的に把握することができます。
例えば、米国内のある住所がどの下院選挙区に属しているのかを特定することができま
す。 また、郵便物の仕向国の郵便システムで、アドレス参照データに地理座標が使われて
いる場合は、緯度と経度の座標を生成することもできます。
20
第 2章: アドレスバリデータトランスフォーメーション
アドレスバリデータのステータスポート
アドレスバリデータトランスフォーメーションは、入力ポートや出力ポートで読み書きす
るアドレス要素に関するステータス情報を書き込みます。[ステータス情報]ポートを使
用してステータス情報を表示します。
以下のステータスポートを選択できます。
アドレス解決コード
アドレス内の無効なアドレス要素について説明します。[基本モデル]の[ステータ
ス情報]ポートグループからポートを選択します。
アドレスタイプ
郵便事業者が複数の形式の住所を認識する場合に使用するアドレスタイプを示しま
す。[基本モデル]の[ステータス情報]ポートグループからポートを選択します。
要素入力のステータス
入力アドレス要素と参照データの間の類似性を示します。[基本モデル]の[ステー
タス情報]ポートグループからポートを選択します。
要素の関連性
郵便事業者が住所のメールボックスを識別するために必要なアドレス要素を識別しま
す。[基本モデル]の[ステータス情報]ポートグループからポートを選択します。
要素の結果ステータス
アドレス検証が入力アドレスに対して行う更新を示します。[基本モデル]の[ステ
ータス情報]ポートグループからポートを選択します。
拡張要素のステータス
参照データにアドレスの追加データがあるかどうかを示します。ポートには、アドレ
ス検証がアドレスに対して行う更新についての詳細情報を含めることができます。
[基本モデル]の[ステータス情報]ポートグループからポートを選択します。
ジオコーディングのステータス
アドレス検証がアドレスに返したジオコーディングデータのタイプを説明します。
[基本モデル]の[ジオコーディング]ポートグループからポートを選択します。
郵送可能スコア
入力アドレスの全体としての配達可能性を示します。[基本モデル]の[ステータス
情報]ポートグループからポートを選択します。
照合コード
入力アドレスに対するアドレス検証の結果を示します。[基本モデル]の[ステータ
ス情報]ポートグループからポートを選択します。
結果の割合
入力アドレスと対応する出力アドレスの類似性を割合で表します。[基本モデル]の
[ステータス情報]ポートグループからポートを選択します。
アドレスバリデータのステータスポート
21
要素のステータスコードの定義
[要素入力のステータス]、[要素の関連性]、[要素の結果ステータス]および[拡張
要素の結果ステータス]ポートは、入力と出力のデータ要素の有効性に関するステータス
情報を表します。 アドレス検証操作の結果を確認するには、該当する要素のポートを選択
します。
コードには以下の情報が含まれます。
¨ [要素入力のステータス]のコードは、入力された住所のデータとアドレス参照データ
との比較で見つかった一致の品質を表します。
¨ [要素の関連性]のコードは、配達先の国の住所に必要なアドレス要素を識別します。
¨ [要素の結果ステータス]のコードは、入力データに対して処理中に加えられた変更に
関する説明です。
¨ [拡張要素のステータス]のコードは、アドレス参照データにアドレス要素に関する追
加情報が含まれることを示します。
各ポートは20文字のコードを返し、コード内の文字は、それぞれが異なる住所データ要素
を表します。要素ポート上の出力コードを読み取る場合、それぞれの文字が表す要素を把
握しておく必要があります。 この20文字は、2文字1組のペア10個で構成されます。 2文字
1組のコードは、ペアごとに1つの住所情報タイプを表します。例えば、各リターンコード
の先頭の位置は、基本の郵便番号情報を表しています。
注: [アドレス解決コード]ポートは、[要素のステータス]ポートと同じアドレス要素
に基づいて20桁の文字列を返します。
以下の表に、それぞれの位置の値が識別するアドレス要素を示します。
22
位置
アドレス要素
説明
アドレス要素の例
1
郵便番号レベル0
5桁のZIPコードな
ど、基本的な郵便
コード情報。
5桁のZIPコード10118
2
郵便番号レベル1
ZIP+4コードの下4
桁など、追加の郵
便コード情報。
ZIP+4コード
10118-0110の「0110」
3
市区町村レベル0
市や町など、プラ
イマリの場所情
報。
イギリスの「London」
4
市区町村レベル1
市区町村に従属す
る集落などの名
前。
ロンドンの
「Islington」
5
都道府県レベル0
その国におけるプ
ライマリの地域
名。米国、カナ
ダ、スイスにおけ
る州名など。
New York State
第 2章: アドレスバリデータトランスフォーメーション
位置
アドレス要素
説明
アドレス要素の例
6
都道府県レベル1
米国における郡
名。
ニューヨーク市の
「Queens County」
7
町名レベル0
プライマリの町名
情報。
South Great George's
Street
8
町名レベル1
町名および番地等
に従属する情報。
South Great George's
Streetの「George's
Arcade」
9
番地レベル0
主な町名に関連付
けられている建物
番号または住居番
号。
South Great George's
Streetの460
10
番地レベル1
従属する町名およ
び番地等に関連付
けられている建物
番号または住居番
号。
George's Arcadeの81
11
配達サービスレベ
ル0
私書箱の記述子お
よび番号。
PO Box 111
12
配達サービスレベ
ル1
配達を担当する郵
便局のコード
MAIN STN
13
建物レベル0
建物の名前または
番号。
Alice Tully Hall
住居番号は特定し
ません。
14
建物レベル1
補足的な建物名ま
たは番号。
Alice Tully Hallの
「Starr Theater」
15
棟レベル0
アパートメント、
スイート、フロア
名またはフロア番
号。
350 5th Avenue,
Floor 80の「80」
16
棟レベル1
棟レベル0の情報と
組み合わされてい
る場合は、アパー
トメント、スイー
ト、またはフロア
の情報。
80-18(80がフロア番
号で、18が部屋番
号)。
17
組織レベル0
会社名。
Address Doctor GmbH
18
組織レベル1
親会社などの追加
の企業情報。
Informatica
Corporation
アドレスバリデータのステータスポート
23
位置
アドレス要素
説明
アドレス要素の例
19
国レベル0
国名。
United States of
America
20
国レベル1
自治領。
United States Virgin
Islands
ポート名に数字のサフィックスが付く場合、レベル0はポート番号1上のデータを表し、レ
ベル1は、ポート2から6上のデータを表します。
印刷された住所では、レベル0情報をレベル1の前または後ろのどちらにでも配置できま
す。 例えば、郵便番号レベル0の後に郵便番号レベル1が続き、市区町村レベル1は市区町
村レベル0の前に配置されます。
[アドレス解決コード]出力ポートの値
[アドレス解決コード]は20文字から成る文字列であり、個々の文字は異なる入力アドレ
ス要素を表します。文字の値は、アドレスの対応する位置にある無効なアドレス要素を表
します。
以下の表で、[アドレス解決コード]ポートの値について説明します。
コード
説明
2
アドレス要素が配達に必要ですが、入力アドレスに含
まれていません。アドレス参照データに、不足してい
るアドレス要素が含まれています。
出力コード2は、アドレス要素がないため配達先の住所
として無効であることを示します。
24
3
アドレス要素は、有効な範囲外の住居番号または番地
です。例えば、指定された番地に存在しない住居番号
がアドレス要素に含まれています。提案リストモード
が、代替の住所を返します。
4
入力アドレスに要素のインスタンスが複数含まれるた
め、アドレス検証がアドレス要素を検証または訂正で
きません。
5
アドレス要素が不正で、アドレス参照データに複数の
代替データが存在します。出力アドレスは入力アドレ
スをコピーします。
6
アドレス要素が住所内の別の要素と矛盾します。アド
レス検証は、この住所の正しい要素を判別できませ
ん。出力アドレスは入力アドレスをコピーします。
第 2章: アドレスバリデータトランスフォーメーション
コード
説明
7
住所に対して複数の変更を行わないとアドレス要素を
訂正できません。アドレス検証は住所を訂正できます
が、変更箇所の数から、住所が信頼できないものであ
ることが示されます。
8
データは郵便事業者の検証ルールには従っていませ
ん。
[要素入力のステータス]出力ポートの値
[要素入力のステータス]は20文字から成る文字列であり、個々の文字は異なる入力アド
レス要素を表します。それぞれの文字の値は、アドレス要素に対して実行された処理のタ
イプを表します。
このポートはステータス情報ポートグループにあります。
以下の表で、バッチモード、認証済みモード、提案リストモードで[要素入力のステータ
ス]から出力文字列内の各位置に返されるコードについて説明します。
コード
説明
0
入力アドレスは、この位置のデータを含みません。
1
この位置のデータが、参照データ内にありません。
2
参照データがないため、この位置は確認できません。
3
データが正しくありません。例えば、町名や配達サー
ビス番号が、参照データで予期している範囲の外部に
ある場合です。
バッチモードや認証済みモードでは、この位置の入力
データは、出力として誤ってパスされます。
提案リストモードでは、アドレスの検証で代替の方法
が提示されます。
4
この位置のデータは参照データと一致しますが、エラ
ーが多少発生します。
5
この位置のデータは参照データと一致しますが、デー
タ要素は修正されたか標準化されていました。
6
この位置のデータは参照データと一致し、エラーは発
生していません。
アドレスバリデータのステータスポート
25
以下の表で、解析モード時に[要素入力のステータス]から出力文字列内の各位置に返さ
れるコードについて説明します。
コード
説明
0
入力アドレスは、この位置のデータを含みません。
3
データはこの位置で正しいです。
[要素の関連性]出力ポートの値
[要素の関連性]の値は、郵便事業者が郵便物を住所に配達するために必要なアドレス要
素を識別します。郵便配達の対象となるには、値が1のアドレス要素がすべて存在する必要
があります。このポートはステータス情報ポートグループにあります。
[要素の関連性]の値は、照合コードの値がCまたはVのアドレス要素にとって重要な意味
を持ちます。
以下の表で、[要素の関連性]ポートの値について説明します。
値
説明
0
郵便事業者はアドレス要素を必要と
します。
1
郵便事業者はアドレス要素を必要と
しません。
[要素の結果ステータス]出力ポートの値
[要素の結果ステータス]は20文字から成る文字列であり、個々の文字は異なる入力アド
レス要素を表します。それぞれの文字の値は、アドレス要素に対して検証プロセスが行っ
た更新を示します。
このポートはステータス情報ポートグループにあります。
以下の表で、[要素の結果ステータス]ポートの値について説明します。
26
コード
説明
0
出力アドレスには、この位置のデータがありません。
1
この位置にあるデータは未検証であり、変更されてい
ません。 入力ポートのデータは、出力ポートにコピー
されています。
2
この位置にあるデータは未検証ですが、標準化済みで
す。
第 2章: アドレスバリデータトランスフォーメーション
コード
説明
3
この位置のデータは、検証されましたが、予想された
参照データと一致しません。参照データは、数字デー
タが有効範囲外にあることを示しています。 入力ポー
トのデータは、出力ポートにコピーされています。
このステータス値は、バッチモードにのみ適用されま
す。
4
この位置にあるデータは検証済みですが、参照データ
がないため、変更されていません。
5
この位置にあるデータは検証済みですが、参照データ
内に一致が複数見つかったため、変更されていませ
ん。
このステータス値は、バッチモードにのみ適用されま
す。
6
データ検証でこの位置の入力値が削除されました。
7
この位置のデータは、検証済みで、参照データを基に
修正されています。
8
この位置のデータは検証済みで、参照データの値を加
えることによって変更されています。
9
この位置のデータは検証済みですが変更されておら
ず、配達ステータスは不明です。 例えば、DPV値が間
違っている場合などです。
C
このデータは検証され確認されていますが、名前デー
タが古すぎます。検証により名前データが変更されま
した。
D
この位置のデータは検証され確認されていますが、外
名から正式名に変更されています。
E
この位置のデータは検証され確認されています。しか
し、データ検証により、大文字/小文字や言語が標準化
されました。
アドレスの検証により、値が完全に代替の言語に一致
する場合、言語を変更できます。たとえば、アドレス
の検証で、「Brussels」がベルギーのアドレスの
「Bruxelles」に変更されます。
F
この位置にあるデータは検証済みかつ確認済みであ
り、参照データとの完全一致が検出されたため変更さ
れていません。
出力文字列の19および20の位置は、国に関するデータです。
アドレスバリデータのステータスポート
27
次の表に、19および20の位置のデータに対する検証で返される値を示します。
コード
説明
0
この位置にあるポートにはデータは含まれません。
4
国は、アドレスバリデータトランスフォーメーション
で設定された[デフォルトの国]値によって認識され
ます。
E
国名は、ISOコードや国名などのアドレスデータから認
識されます。
F
国は、アドレスバリデータトランスフォーメーション
で設定された[国を強制的に適用]値によって認識さ
れます。
[拡張要素のステータス]出力ポートの値
[拡張要素のステータス]は20文字から成る文字列であり、個々の文字は異なる入力アド
レス要素を表します。このポートの出力コードは[要素入力のステータス]ポートおよび
[要素の結果ステータス]ポートのステータスデータを補完するものです。このポートの
出力コードは、参照データ内のアドレス要素について追加情報の有無を示すこともできま
す。
このポートはステータス情報ポートグループにあります。
以下の表で、[拡張要素のステータス]ポートの値について説明します。
28
コード
説明
1
アドレス参照データは、アドレス要素に関する追加情
報を含みます。アドレス検証は追加情報を必要としま
せん。
2
アドレス検証はデータエラーまたは形式エラーを解消
するためにアドレス要素を更新しました。アドレス検
証はアドレス要素を検証しませんでした。
3
アドレス検証はデータエラーまたは形式エラーを解消
するためにアドレス要素を更新しました。アドレス検
証はアドレス要素の数値データを検証しました。
4
アドレス検証は形式エラーを解消するためにアドレス
要素を別のフィールドに移動しました。
5
アドレス参照データは、優先される市区町村名など、
アドレス要素の代替バージョンを含みます。
6
アドレス検証は、アドレス要素のすべての部分を検証
しませんでした。アドレス要素に、アドレス検証が検
証できないデータが含まれています。
第 2章: アドレスバリデータトランスフォーメーション
コード
説明
7
アドレス検証は、有効なアドレス要素を住所の間違っ
た位置で検出しました。アドレス検証はアドレス要素
を正しい位置に移動しました。
8
アドレス検証は間違ったデータフィールドで有効なア
ドレス要素を検出しました。アドレス検証はアドレス
要素を正しいフィールドに移動しました。
9
アドレス検証は郵便事業者の検証ルールに従って、出
力要素を生成しました。
A
アドレス検証は現在の位置に適した、別のアドレスタ
イプのアドレス要素を検出しました。アドレス検証は
宛先の国の郵便事業者のルールに適合する出力アドレ
ス要素を選択しました。
B
アドレス検証は、要素の関連性を特定できません。ア
ドレス検証は住所が指定する国のデフォルト値を返し
ます。
C
提案リストモードです。アドレス検証はアドレス要素
の追加の候補を返すことができます。追加の候補を返
すには、アドレスバリデータトランスフォーメーショ
ンの[最大結果カウント]プロパティを更新します。
D
アドレス検証はアドレス要素に数値データを追加しま
した。
E
アドレス検証はアドレス要素を優先される言語で返す
ことができません。アドレス検証は要素をデフォルト
の言語で返します。
[郵送可能スコア]の出力ポートの値
以下の表に、[郵送可能スコア]の出力ポートの値を示します。このポートはステータス
情報ポートグループにあります。
アドレスバリデータトランスフォーメーションは、アドレスへの配達可能性を見積もり、
見積もりを表す数値を[郵送可能]ポートに書き込みます。照合コードの値がI1からI4に
範囲にある場合は、この図を参照してください。
以下の表に、[郵送可能スコア]の出力コードを示します。
コード
説明
5
確実に配達可能
4
ほぼ確実に配達可能
3
配達できる可能性が高い
アドレスバリデータのステータスポート
29
コード
説明
2
配達できる可能性がある
1
配達できる可能性は少ない
0
配達不能
[照合コード]の出力ポートの値
以下の表に、[照合コード]の出力ポートの値を示します。このポートはステータス情報
ポートグループにあります。
30
コード
説明
V4
検証済み。入力されたデータは正確です。 アドレス検
証が郵送に関連する要素すべてを確認した結果、入力
は完全に一致しました。
V3
検証済み。入力データは正しいですが、一部あるいは
全部の要素が標準化されていたか、入力データに古い
名前あるいは外名が含まれています。
V2
検証済み。入力データは正確ですが、参照データが完
全ではないため、一部の要素を検証できません。
V1
検証済み。入力データは正確ですが、ユーザーによる
標準化が配達可能性を低下させています。たとえば、
ポストコードの長さが短すぎます。
C4
修正済み。 郵送に関連する要素すべてが確認されてい
ます。
C3
修正済み。 いくつかの要素が確認できません。
C2
修正済みですが、参照データが存在しないため、配達
ステータスが不明です。
C1
修正されましたが、ユーザーの標準化によって誤りが
生じたため配達ステータスは不明です。
I4
データを完全に修正できませんが、参照データに1つ
の一致があります。
I3
データを完全に修正できませんが、参照データに複数
の一致があります。
I2
データを修正できません。バッチモードで部分的に提
案されたアドレスが返されます。
第 2章: アドレスバリデータトランスフォーメーション
コード
説明
I1
データを修正できません。バッチモードでアドレスを
提案できません。
Q3
提案リストモードアドレスの検証は、1つ以上の完全な
アドレスを提案できます。
Q2
提案リストモード提案アドレスは完全ですが、入力ア
ドレスからコピーした要素を含んでいます。
Q1
提案リストモードアドレスの検証は、完全なアドレス
を提案できません。アドレスにはさらに入力データが
必要です。
Q0
提案リストモード提案を生成するための十分な入力デ
ータがありません。
RB
略称によって国が認識されました。ISOの2文字とISOの
3文字の国コードを認識します。ドイツを表わす
「GER」のような一般的な略称を認識できます。
RA
トランスフォーメーション内の[国を強制的に適用]
設定によって国が認識されました。
R9
トランスフォーメーション内の[デフォルトの国]設
定によって国が認識されました。
R8
アドレスデータのほかの要素から認識された国
R0
国が認識されません。
S4
解析モード住所は完全に解析されました。
S3
解析モード住所は解析され、複数の結果が返されまし
た。
S1
解析モード入力フォーマットの不一致のため解析エラ
ーが発生しました。
N5
検査エラーです。参照データベースが古すぎるため、
検証を行えませんでした。
N4
検査エラーです。参照データが破損しているか不正な
フォーマットのため、検証を行えませんでした。
N3
検査エラーです。国データのロック解除ができないた
め、検証を行えませんでした。
アドレスバリデータのステータスポート
31
コード
説明
N2
検査エラーです。要求された参照データベースが利用
できないため、検証を行えませんでした。
N1
検査エラーです。国が認識できなかったかサポートさ
れていないため、検証を行えませんでした。
[ジオコーディングのステータス]の出力ポートの値
以下の表に、[ジオコーディングのステータス]の出力ポートの値を示します。ジオコー
ディングポートグループのポートを探します。
このポートは、入力アドレスの国に対応するジオコーディング参照データをインストール
している場合に選択します。
32
値
説明
EGCU
ジオコーディングデータベースのロックが解除されて
いません
EGCN
ジオコーディングデータベースが見つかりません
EGCC
ジオコーディングデータベースが壊れています
EGC0
使用可能なジオコードがありません
EGC1-3
将来の使用のために予約済み
EGC4
部分的に郵便番号レベルの精度を持つジオコードデー
タです
EGC5
郵便番号レベルの精度を持つジオコードデータです
EGC6
ローカルレベルの精度を持つジオコードデータです
EGC7
ストリートレベルの精度を持つジオコードデータです
EGC8
家番号レベルの精度を持つジオコードデータです(推測
値の挿入)
EGC9
将来の使用のために予約済み
第 2章: アドレスバリデータトランスフォーメーション
アドレス参照データファイルのステータス
Developerツールを使用して、ドメイン上のアドレス参照データファイルのステータスを確
認します。ステータス情報には、各ファイルのライセンスの有効期限やそのファイルに対
して実行可能な処理の種類が含まれています。
アドレス参照データファイルのステータスを確認するには、Developerツールの[設定]ウ
ィンドウを使用します。[設定]ウィンドウの[コンテンツのステータス]オプションを
使用してステータスを確認します。
以下の表に、[コンテンツのステータス]を選択したときにデフォルトで表示される、ス
テータスのプロパティを示します。
プロパティ
説明
国のISO
アドレス参照データファイルが適用される国。このプ
ロパティは、ISOによる3文字の国名の略記を表しま
す。
有効期限
ファイルが新しいファイルに置き換えらえる日付。有
効期限後にもアドレス参照データファイルは使用でき
ますが、そのデータ正確性は保証されません。
国のタイプ
そのデータに対して実行可能な住所の処理のタイプ。
[全般設定]タブの[モード]オプションで処理のタ
イプを選択できます。選択したモードがドメイン上の
アドレスデータファイルと対応しない場合、アドレス
検証マッピングは失敗します。
有効期限のロック
解除
ファイルのライセンスの有効期限が切れる日付。有効
期限のロック解除後はファイルを使用できません。
開始日のロック解
除
ファイルのライセンスが有効になる日付。開始日のロ
ックを解除する前はファイルを使用できません。
プロパティテーブルを右クリックすると、追加のプロパティのリストが表示されます。
アドレス参照データファイルのステータス
33
アドレスバリデータトランスフォーメーショ
ンの詳細プロパティ
Data Integration Serviceでのアドレスバリデータトランスフォーメーションのデータの
処理方法を指定するには、詳細プロパティを設定します。
エイリアス番地
[エイリアス番地]プロパティは、アドレス検証が有効な通りのエイリアスを通りの公式
名に置き換えるかどうかを決定します。
通りのエイリアスは、米国郵政公社が配達可能なアドレスの要素として認識する、通りの
代替名です。このプロパティは、アドレスバリデータトランスフォーメーションを設定し
て米国のアドレスレコードを認証モードで検証する場合に使用できます。
以下の表に、エイリアス番地のオプションを示します。
オプション
説明
公式
通りの代替名または通りのエイリアスを通りの公式
名に置き換えます。デフォルトのオプションです。
維持
有効な通りの代替名または通りのエイリアスを維持
します。入力した通りの名前が有効でない場合、ア
ドレス検証はその名前を公式名に置き換えます。
大文字小文字表記
[大文字小文字表記]プロパティは、このトランスフォーメーションが出力データの書き
込みに使用する大文字小文字表記を決定します。
以下の表に、大文字小文字表記のオプションを示します。
オプション
説明
パラメータの割り当
て
大文字小文字表記を特定するパラメータを割り当て
ます。
小文字
出力データを小文字で書き込みます。
混在
可能な場合、宛先の国で使用されている大文字小文
字表記を使用します。
維持
参照データで使用されている大文字小文字表記を適
用します。デフォルトのオプションです。
大文字
出力データを大文字で書き込みます。
大文字小文字表記は[全般設定]タブで設定することもできます。
34
第 2章: アドレスバリデータトランスフォーメーション
パラメータの使用
パラメータを割り当てて大文字小文字表記を指定することができます。パラメータを作成
するときは、大文字小文字表記オプションをパラメータ値として入力します。
値は大文字で入力する必要があります。LOWER、MIXED、PRESERVED、またはUPPERを入力し
ます。
国
国プロパティは、アドレスレコードが送信される国を識別します。
リストから国を選択します。このプロパティは、デフォルトでは空になっています。
国のタイプ
国のタイププロパティは、住所の正式表記やフォーマットされたアドレス行ポートの出力
データで使用される国名の形式を決定します。トランスフォーメーションは、選択した国
の標準の形式で国名や略語を表記します。
以下の表に、国のタイプのオプションを示します。
オプション
国
ISO2
ISOの2文字の国コード
ISO3
ISOの3文字の国コード
ISO #
ISOの3桁の国コード
略語
(将来の使用のために予約されています)
CN
カナダ
DA
(将来の使用のために予約されています)
DE
ドイツ
EN
英国(デフォルト)
ES
スペイン
FI
フィンランド
FR
フランス
GR
ギリシア
IT
イタリア
JP
日本
アドレスバリデータトランスフォーメーションの詳細プロパティ
35
オプション
国
HU
ハンガリー
KR
韓国
NL
オランダ
PL
ポーランド
PT
ポルトガル
RU
ロシア
SA
サウジアラビア
SE
スウェーデン
デフォルトの国
[デフォルトの国]プロパティは、住所レコードが宛先の国を識別できないときにトラン
スフォーメーションが使用するアドレス参照データセットを指定します。
リストから国を選択します。住所レコードに国情報が含まれる場合は、デフォルトオプシ
ョンを使用します。デフォルトは[なし]です。
デフォルトの国は、[全般設定]タブで設定することもできます。
パラメータの使用
パラメータを使用してデフォルトの国を指定することができます。パラメータを作成する
ときは、国のISO 3166-1 alpha-3コードをパラメータ値として入力します。パラメータ値
は大文字で入力します。例えば、すべての住所レコードに国情報が含まれる場合は、NONE
を入力します。
要素の略式表記
[要素の略式表記]プロパティは、トランスフォーメーションがアドレス要素の略式表記
形式を返すかどうかを決定します。アドレス参照データに略式表記が含まれる場合は、略
式表記を返すようにトランスフォーメーションを設定できます。
例えば、United States Postal Service(米国郵政公社)は、多くの通り名や市区町村名
の長い形式と短い形式を保持しています。HUNTSVILLE BROWNSFERRY RDの短い形式はHSV BROWNS
FRY RDです。通り名や市区町村名が、米国郵政公社の定めるフィールド長の上限を上回る場
合に、[要素の略式表記]プロパティを選択できます。
このオプションはデフォルトで選択されていません。略式表記のアドレス値を返すには、
このプロパティをONに設定します。トランスフォーメーションをバッチモードで使用する
と、このプロパティは略式表記の市区町村名と市区町村コードを返します。トランスフォ
ーメーションを認証モードで使用すると、このプロパティは略式表記の通り名、市区町村
名、市区町村コードを返します。
36
第 2章: アドレスバリデータトランスフォーメーション
実行インスタンス数
[実行インスタンス数]プロパティは、現在のトランスフォーメーションが実行時に使用
するスレッドの数を決定します。
実行インスタンスの数を、Data Integration ServiceがアクセスできるCPUの数以下に設定
します。設定した値は現在のトランスフォーメーションに適用されます。デフォルト値は1
です。
注: アドレスバリデータトランスフォーメーションをPowerCenterにエクスポートすると、
エクスポートプロセスは実行インスタンスごとにトランスフォーメーションのインスタン
スをPowerCenterリポジトリに作成します。例えば、実行インスタンスの数を1に設定する
と、エクスポートプロセスは1つのアドレスバリデータトランスフォーメーションを
PowerCenterリポジトリに追加します。実行インスタンスの数を2に設定すると、エクスポ
ートプロセスは2つのアドレスバリデータトランスフォーメーションをPowerCenterリポジ
トリに追加します。
入力形式の種類
[入力形式の種類]プロパティは、フィールド化されていない入力データに含まれる最も
一般的な情報の種類を示します。[入力形式の種類]プロパティは、入力データを住所の
正式表記やフォーマットされたアドレス行ポートに接続する場合に使用します。マッピン
グソリューションでの情報を最も適切に表すオプションを選択します。
次のいずれかのオプションを選択します。
¨ すべて
¨ 住所
¨ 組織
¨ 担当者
¨ 組織/担当者
アドレスには組織情報と担当者情報が含まれます。
¨ 組織/部署
アドレスには組織情報と部署情報が含まれます。
デフォルトは[すべて]です。
国を含む入力形式
国を含む入力形式プロパティは、入力額にデータを含むかどうかを指定します。このプロ
パティは、入力データを[住所の正式表記]または[フォーマットされたアドレス行]ポ
ートに接続する場合で、そのデータが国情報を含む場合に選択します。
このオプションはデフォルトで選択されていません。
アドレスバリデータトランスフォーメーションの詳細プロパティ
37
行セパレータ
[行セパレータ]プロパティは、フォーマットされたアドレスの改行を示す区切り文字記
号を指定します。
次のいずれかのオプションを選択します。
¨ パラメータを割り当てて行セパレータを識別する
¨ 復帰改行文字
¨ カンマ
¨ ラインフィード(LF)
¨ セミコロン
¨ タブ
¨ Windows改行(CRLF)
デフォルトは[セミコロン]です。
行セパレータは、[全般設定]タブで設定することもできます。
パラメータの使用
パラメータを割り当てて行セパレータを指定することができます。パラメータを作成する
ときは、行セパレータオプションをパラメータ値として入力します。この値では、大文字
と小文字は区別されません。
一致する代替用語
[一致する代替用語]プロパティは、アドレス検証が入力アドレスにある代替の場所の名
前(例えば同義語や歴史名など)を認識するかどうかを決定します。このプロパティは、
通り、市区町村、および地方のデータに適用されます。
注: [一致する代替用語]プロパティは、検証されたアドレスにある代替名を維持しませ
ん。
以下の表に、一致する代替用語のオプションを示します。
38
オプション
説明
すべて
通りおよび場所のすべての既知の代替名を認識しま
す。デフォルトのオプションです。
アーカイブのみ
歴史名のみ認識します。例えば、
「Constantinople」を「Istanbul」の古い呼称とし
て検証します。
なし
通りや場所の代替名を認識しません。
同義語のみ
同義語およびエクソニム(外名)のみ認識します。
例えば、「Londres」を「London」のエクソニム
(外名)として検証します。
第 2章: アドレスバリデータトランスフォーメーション
一致するスコープ
一致するスコーププロパティは、トランスフォーメーションがアドレス検証中にアドレス
参照データに対して一致させるデータ量を決定します。
以下の表に、一致するスコープのオプションを示します。
オプション
説明
すべて
すべての選択されたポートを検証します。デフォル
トのオプションです。
納入場所
[番地]オプションで検証されるデータに加え、建
物および棟のデータを検証します。
市区町村
都道府県、市区町村、および郵便番号のデータを検
証します。
番地
[市区町村]オプションで検証されるデータに加
え、番地アドレスデータを検証します。
最大結果カウント
[最大結果カウント]プロパティは、アドレス検証が提案リストモードに返すアドレスの
候補の数を決定します。
1から100の範囲で最大数を設定できます。デフォルトは100です。
注: 提案リストモードは、アドレス参照データに対してアドレスチェックを実行し、入力
アドレスに一致する可能性のあるアドレスのリストを返します。提案リストモードのアド
レスを検証すると、アドレス検証は最も一致するものを最初に返します。
モード
[モード]プロパティは、トランスフォーメーションが実行するアドレス検証の種類を決
定します。
以下の表に、モードのオプションを示します。
オプション
説明
バッチ
アドレス参照データに対してアドレス検証を実行し
ます。デフォルトのオプションです。
認証
アドレス検証を、郵便サービス認証標準への参照デ
ータに対して実行します。
国認識
国情報を含まない入力アドレスを識別します。市区
町村や地方のデータにより1つの国が特定される場
合に国情報をそのアドレスに追加します。
アドレスバリデータトランスフォーメーションの詳細プロパティ
39
オプション
説明
解析
アドレスフィールドのデータを解析し、アドレス検
証は実行しません。
提案リスト
アドレスチェックをアドレス参照データに対して実
行し、入力アドレスに該当する可能性のあるアドレ
スの一覧を生成します。提案リストモードは入力専
用アプリケーションで使用します。
パラメータの割り当
て
アドレス検証モードを特定するパラメータを割り当
てます。
処理モードは、[全般設定]タブで設定することもできます。
パラメータの使用
パラメータを割り当ててアドレス検証モードを指定することができます。パラメータを作
成するときは、アドレス検証モードをデフォルト値として入力します。値は大文字で入力
する必要があります。例えば、バッチモードの場合はBATCH、解析モードの場合はPARSEと
入力します。
最適化レベル
最適化レベルプロパティは、トランスフォーメーションが入力アドレスデータとアドレス
参照データを一致させる方法を決定します。このプロパティは、トランスフォーメーショ
40
第 2章: アドレスバリデータトランスフォーメーション
ンが住所レコードを更新する前に、入力データと参照データの間で行う照合のタイプを指
定します。
以下の表に、最適化レベルのオプションを示します。
オプション
説明
低
トランスフォーメーションは、検証を行う前に番地
情報から建物番号または住居番号を解析します。あ
るいは、入力ポート構造に従って入力アドレス要素
を厳密に検証します。低オプションは、アドレス検
証を最速で実行しますが、他のオプションよりも精
度が低下する場合があります。
標準
トランスフォーメーションは検証を行う前に、入力
データから複数の種類の住所情報を解析します。標
準オプションを選択すると、トランスフォーメーシ
ョンは複数の入力値と参照データを一致させること
ができる場合にアドレスを更新します。
デフォルトは[標準]です。
高
トランスフォーメーションは標準解析設定を使用
し、入力データ全体に対して追加の解析処理を実行
します。高オプションを選択すると、トランスフォ
ーメーションは少なくとも1つの入力値と参照デー
タを一致させることができる場合にアドレスを更新
します。高オプションではマッピングの実行時間が
増加します。
出力形式の種類
出力形式の種類プロパティは、トランスフォーメーションが住所の正式表記やフォーマッ
トされたアドレス行の出力ポートに書き込む情報の一般的な種類を記述します。出力ポー
トに書き込む情報を示すオプションを選択します。
次のいずれかのオプションを選択します。
¨ すべて
¨ 住所
¨ 組織
¨ 担当者
¨ 組織/担当者
アドレスには組織情報と担当者情報が含まれます。
¨ 組織/部署
アドレスには組織情報と部署情報が含まれます。
デフォルトは[すべて]です。
アドレスバリデータトランスフォーメーションの詳細プロパティ
41
国を含む出力形式
[国を含む出力形式]プロパティは、トランスフォーメーションが住所の正式表記やフォ
ーマットされたアドレス行の出力ポートに国情報データを書き込むかどうかを決定しま
す。
このオプションはデフォルトで選択されていません。
優先される言語
優先される言語プロパティは、出力データの言語を決定します。
デフォルトでは、トランスフォーメーションはアドレス値をアドレス参照データが指定す
る言語で返します。アドレス参照データがアドレス要素を複数の言語で保存している場合
は、言語を指定できます。
以下の表に、このプロパティのオプションを示します。
オプション
説明
代替1、
アドレス要素を代替言語で返します。住所の国のア
ドレス参照データにより、選択できる言語が決定さ
れます。
代替2、
代替3
データベース
アドレス参照データが住所用の言語として指定した
言語で住所を返します。
デフォルトは[データベース]です。
英語
参照データに英語版が含まれる場合は、英語版の市
区町村名と都道府県名を返します。
アドレスバリデータトランスフォーメーションは、複数の言語および文字セットのデータ
を含むデータソースを処理できます。ラテン文字以外の住所を読み取ると、トランスフォ
ーメーションはラテン文字に変換してから検証します。トランスフォーメーションはラテ
ン文字形式の住所を検証し、アドレス要素をプロパティが定義する言語に変換します。デ
フォルトでは、プロパティは入力レコードの言語を使用します。
注: 出力データに対して優先される言語および優先されるスクリプトを指定した場合は、
選択した言語および文字エンコードとの互換性があることを確認します。
優先されるスクリプト
優先されるスクリプトプロパティは、アドレスバリデータトランスフォーメーションが出
力データに使用する文字セットを決定します。
アドレスバリデータトランスフォーメーションは、複数の言語および文字セットのデータ
を含むデータソースを処理できます。トランスフォーメーションはすべての入力データを
Unicode UCS-2文字セットに変換し、データをその形式で処理します。データを処理した
後、トランスフォーメーションは各住所レコードのデータを優先されるスクリプトプロパ
ティで指定された文字セットに変換します。このプロセスを文字変換といいます。デフォ
ルトでは、プロパティは入力レコードの文字セットを使用します。
42
第 2章: アドレスバリデータトランスフォーメーション
以下の表に、このプロパティのオプションを示します。
オプション
説明
ASCII(簡易)
アドレス検証はASCII文字を使用します。
ASCII(拡張)
アドレス検証はASCII文字と特殊文字の拡張を使用
します。例えば、ÖはOEに置き換えられます。
データベース
アドレス検証は各アドレスに適用されるアドレス参
照データの文字エンコードを使用します。
デフォルトは[データベース]です。
ラテン
アドレス検証はラテン1文字を使用します。
ラテン(代替)
アドレス検証はラテン1文字と代替表記を使用しま
す。
郵政
アドレス検証は、宛先の国のメール配信業者の設定
に従って、ラテン1文字またはASCII文字を使用しま
す。
郵政(代替)
アドレス検証は、宛先の国のメール配信業者が代替
文字セットをサポートしている場合、ラテン1文字
またはASCII文字を使用します。
文字を変換する際、文字変換では、文字セットの各文字に対応する数値表現を使用できま
す。また、対応する数値表現がない文字の場合は、音写変換することもできます。アドレ
スバリデータトランスフォーメーションが文字をUCS-2にマップできない場合、文字はスペ
ースに変換されます。
注: 出力データに対して優先される言語および優先されるスクリプトを指定した場合は、
選択した言語および文字エンコードとの互換性があることを確認します。
トレースレベル
トレースレベルはログに含まれる情報の詳細度を設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
アドレスバリデータトランスフォーメーションの詳細プロパティ
43
アドレスバリデータトランスフォーメーショ
ンの全般設定
アドレス検証の必須のパラメータを設定するには、全般設定を設定します。
[全般設定]ビューでは、以下のプロパティを設定します。
デフォルトの国
入力アドレスデータから国の情報を特定できない場合に使用する参照データセットを
設定します。 データに国の情報が含まれている場合は[なし]を選択します。
国を強制的に適用
アドレスに国固有の情報が含まれているかどうかに関係なく、特定の参照データセッ
トを使用するように強制します。
行セパレータ
1行のアドレス内のデータフィールドを区切る区切り文字記号を指定します。
大文字小文字表記
出力データの大文字小文字の表記を設定します。 参照データの標準に従って先頭の文
字を大文字にする場合は、[混在]を選択します。 アドレス参照データで使用される
大文字小文字の表記が返されるようにする場合は、[維持]を選択します。
モード
トランスフォーメーションで実行する検証のタイプを決定します。 デフォルトのモー
ドは[バッチ]です。
次のいずれかのオプションを選択します。
モードの種類
説明
国認識
アドレス検証を実行せずに郵便アド
レスの配達先の国を決定します。
解析
検証を実行せずにデータをアドレス
フィールドに解析します。
提案リスト
アドレス検証を実行し、入力アドレ
スに対するアドレス候補のリストを
生成します。
注: 提案リストモードは、個別入力
ポートグループのポートで使用しま
す。
44
バッチ
アドレス検証を実行します。
認証
郵政機関の認証基準を満たす検証を
実行します。
第 2章: アドレスバリデータトランスフォーメーション
提案リストモード
提案リストモードを選択した場合、アドレスバリデータトランスフォーメーションでアド
レス参照データが検索され、入力アドレスに一致する可能性があるすべてのアドレスが返
されます。
アドレスの精度を検証する必要がある場合は、このモードを選択します。
このモードは、例えば、データ入力端末のWebサービスから実行されるアドレス検証マッピ
ングで使用できます。データ入力端末でユーザーがアドレスを入力すると、Webサービスで
マッピングが実行されます。 マッピングは、アドレス参照データ内で検出した類似または
一致するアドレスを返します。ユーザーは、入力アドレスを使用することも、マッピング
で提案されたアドレスを選択することもできます。
提案リストモードを選択するときは、以下の点を考慮してください。
¨ トランスフォーメーションを提案リストモードで設定するときは、個別入力グループの
ポートを使用します。
¨ 提案リストモードでは、各入力レコードに対して複数のレコードが返される場合があり
ます。したがって、検証可能なデータセットのサイズに制限はありませんが、提案リス
トモードをバッチモード操作の代わりに使用することはできません。
認証レポート
アドレスバリデータトランスフォーメーションのアドレス検証操作を認証している郵便運
送業者向けのレポートを生成することができます。
このレポートは、アドレス検証操作が郵便運送業者の標準に準拠していることの証明にな
ります。 例えば、米国郵政公社(USPS)では、米国のアドレスをZIP+4コードレベルまで
検証するソフトウェアエンジンを認証しています。 アドレスバリデータトランスフォーメ
ーションでは、米国のアドレスをZIP+4コードレベルまで検証し、仕分けや配達に役立つ追
加のデータを提供できます。
アドレスバリデータトランスフォーメーションは、以下の標準の認証を受けています。
Address Machine Approval System(AMAS)
オーストラリア郵政省が定めた、オーストラリアのアドレスを検証するソフトウェア
アプリケーションの認証基準です。
Coding Accuracy Support System(CASS)
USPSが定めた、米国のアドレスを検証するソフトウェアアプリケーションの認証基準
です。
Software Evaluation and Recognition Program(SERP)
カナダ郵政省が定めた、カナダのアドレスを検証するソフトウェアアプリケーション
の認証基準です。
認証されたソフトウェアを使用してアドレスデータを検証すると、郵便運送業者から割引
を受けられる場合があります。
認証レポート
45
レポートは、郵便運送業者に郵便物を渡すときに郵送先住所のリストと一緒に提出しま
す。 レポートには組織に関するデータが含まれます。 このデータはアドレスバリデータ
トランスフォーメーションの設定時に入力します。 レポートファイルは、指定したパスに
書き込まれます。
AMASレポートのフィールド
オーストラリア郵政省のAMASレポートを選択した場合、[レポート]ビューで組織に関す
るデータを入力します。
次の表に、入力する情報を示します。
フィールド
説明
レポートファイル名
トランスフォーメーションで作成す
るレポートのパス。 デフォルトで
は、Informaticaインストールのbin
ディレクトリにレポートが作成され
ます。
レポートファイルをマシン上の別の
場所に書き込むには、ファイルパス
とファイル名を入力します。 パス
は完全修飾パスでも相対パスでもか
まいません。 相対パスのルートデ
ィレクトリにはbinディレクトリが使
用されます。
指定するディレクトリは、アドレス
検証マッピングの実行前に作成して
おく必要があります。
46
住所リスト名
郵便運送業者に提出する住所リスト
の名前。
プロセッサ名を一覧表示
アドレス検証を実行する組織の名
前。
リストの管理者/所有者の名前
組織内のアドレスデータの管理者ま
たは所有者の名前。
電話番号
アドレス検証を実行する組織の連絡
先電話番号。
住所
アドレス検証を実行する組織の住
所。
第 2章: アドレスバリデータトランスフォーメーション
関連項目:
¨ 「認証レポートの定義」
(ページ51)
CASSレポートのフィールド
USPSのCASSレポートを選択した場合、[レポート]ビューで組織に関するデータを入力し
ます。
次の表に、入力する情報を示します。
フィールド
説明
レポートファイル名
トランスフォーメーションで作成す
るレポートのパス。 デフォルトで
は、Informaticaインストールのbin
ディレクトリにレポートが作成され
ます。
レポートファイルをマシン上の別の
場所に書き込むには、ファイルパス
とファイル名を入力します。 パス
は完全修飾パスでも相対パスでもか
まいません。 相対パスのルートデ
ィレクトリにはbinディレクトリが使
用されます。
指定するディレクトリは、アドレス
検証マッピングの実行前に作成して
おく必要があります。
リスト名/ID
郵便運送業者に提出する住所リスト
の名前またはID番号。
プロセッサ名を一覧表示
アドレス検証を実行する組織の名
前。
名前/住所
アドレス検証を実行する組織の名前
と住所。
認証レポート
47
関連項目:
¨ 「認証レポートの定義」
(ページ51)
SERPレポートのフィールド
カナダ郵政省のSERPレポートを選択した場合、[レポート]ビューで組織に関するデータ
を入力します。
次の表に、入力する情報を示します。
フィールド
説明
レポートファイル名
トランスフォーメーションで作成す
るレポートのパス。 デフォルトで
は、Informaticaインストールのbin
ディレクトリにレポートが作成され
ます。
レポートファイルをマシン上の別の
場所に書き込むには、ファイルパス
とファイル名を入力します。 パス
は完全修飾パスでも相対パスでもか
まいません。 相対パスのルートデ
ィレクトリにはbinディレクトリが使
用されます。
指定するディレクトリは、アドレス
検証マッピングの実行前に作成して
おく必要があります。
顧客CPC番号
アドレス検証を実行する組織のカナ
ダ郵政省発行の顧客番号。
顧客名/アドレス
アドレス検証を実行する組織の名前
と住所。
関連項目:
¨ 「認証レポートの定義」
(ページ51)
アドレスバリデータトランスフォーメーショ
ンの設定
アドレスバリデータトランスフォーメーションは、郵便アドレスデータの品質を検証して
改善するために使用します。
アドレスバリデータトランスフォーメーションでは、アドレス参照データを読み取りま
す。 必要なアドレス参照データファイルにDeveloperツールからアクセスできることを確
認してください。
1.
48
トランスフォーメーションを開きます。
第 2章: アドレスバリデータトランスフォーメーション
2.
[全般設定]ビューをクリックし、全般プロパティを設定します。
3.
[テンプレート]ビューをクリックし、入力ポートと出力ポートを追加します。
4.
[レポート]ビューをクリックし、郵政機関のアドレス認証用のレポートを生成しま
す。
5.
[詳細]ビューをクリックし、アドレス検証の詳細プロパティを設定します。
6.
入力ポートおよび出力ポートを接続します。
注:
アドレスバリデータトランスフォーメーションで検証しない入力ポートは、
[パススルー]入力ポートグループに接続します。
アドレスバリデータトランスフォーメーショ
ンへのポートの追加
アドレスバリデータトランスフォーメーションにポートを追加するには、[テンプレー
ト]ビューを使用します。
1.
[テンプレート]ビューをクリックします。
2.
テンプレートを展開します。
¨ 一般的なアドレスフィールドを追加する場合は、[基本モデル]テンプレートを選
択します。
¨ 特殊なアドレスフィールドを追加する場合は、[詳細モデル]テンプレートを選択
します。
3.
入力データの形式に対応する入力ポートグループを展開します。入力ポートグループ
は、[個別]、[複数行]、および[混合]です。
4.
入力ポートを選択します。
ヒント:
複数のポートを選択するには、Ctrlキーを押しながらクリックします。
5.
ポートを右クリックし、[トランスフォーメーションにポートを追加]を選択しま
す。
6.
必要なフィールドを含む出力ポートグループを展開します。
7.
ポートを右クリックし、[トランスフォーメーションにポートを追加]を選択しま
す。
8.
検証しないカラム用のパススルーポートを追加するには、[ポート]タブをクリック
し、[パススルー]入力ポートグループを選択して、[新規]をクリックします。
アドレスバリデータトランスフォーメーションへのポートの追加
49
ユーザー定義テンプレートの作成
再利用するアドレスポートをグループ化するには、テンプレートを作成します。
カスタムテンプレートは、基本モデルおよび詳細モデルのテンプレートからポートを選択
して作成します。 作成したカスタムテンプレートは、以降にアドレスバリデータトランス
フォーメーションを作成する際に選択することができます。
注: テンプレートはリポジトリオブジェクトではありません。 作成に使用したマシンに
保存されます。
1.
[テンプレート]ビューを選択します。
2.
[新規]をクリックします。
3.
テンプレートの名前を入力します。
4.
[基本モデル]テンプレートまたは[詳細モデル]テンプレートを展開し、必要なポ
ートを選択します。
5.
[OK]をクリックします。
アドレスバリデータのモデルの定義
アドレスバリデータのモデルとは、アドレスバリデータトランスフォーメーションのデフ
ォルトの入力ポートと出力ポートを定義したものです。
アドレスバリデータトランスフォーメーションには、デフォルトの入力ポートと出力ポー
トはありません。 ただし、モデルを定義することで、アドレスバリデータトランスフォー
メーションで使用する入力ポートと出力ポートを指定できます。
注: モデルはリポジトリオブジェクトではありません。 作成に使用したマシンに保存さ
れます。
アドレスバリデータのモデルを定義するには、以下の手順を実行します。
50
1.
[テンプレート]ビューを選択します。
2.
[基本モデル]テンプレートまたは[詳細モデル]テンプレートを展開し、必要なポ
ートを選択します。
3.
[選択したポートを使用してデフォルトAVモデルを作成]を選択します。
4.
モデルをリセットしてすべてのポートを削除するには、[デフォルトAVモデルのクリ
ア]を選択します。
第 2章: アドレスバリデータトランスフォーメーション
認証レポートの定義
アドレスバリデータトランスフォーメーションで認証レポートを定義するときは、[全般
設定]ビューと[レポート]ビューでオプションを設定します。
1.
[全般設定]ビューで、[モード]オプションを[認証]に設定します。
2.
[レポート]ビューで、生成するレポートのタイプを選択します。 以下のタイプのレ
ポートを選択できます。
3.
オプショ
ン
説明
AMASレポート
レコードセットに関してオーストラリア郵政省
から要求される情報が含まれます。
CASSレポート
レコードセットに関してUSPSから要求される情
報が含まれます。
SERPレポート
レコードセットに関してカナダ郵政省から要求
される情報が含まれます。
選択したレポートのタイプに応じて、レポートの詳細を入力します。
レポートファイルは、アドレスバリデータトランスフォーメーションで検証したアドレス
レコードのリストと一緒に郵便運送業者に提出します。
関連項目:
¨ 「AMASレポートのフィールド」
(ページ46)
¨ 「CASSレポートのフィールド」
(ページ47)
¨ 「SERPレポートのフィールド」
(ページ48)
認証レポートの定義
51
第 3 章
アグリゲータトランスフォー
メーション
この章では、以下の項目について説明します。
¨ アグリゲータトランスフォーメーションの概要, 52 ページ
¨ アグリゲータトランスフォーメーションの開発, 53 ページ
¨ アグリゲータトランスフォーメーションのポート, 53 ページ
¨ アグリゲータトランスフォーメーションの詳細プロパティ, 54 ページ
¨ 集計キャッシュ, 55 ページ
¨ 集計式, 55 ページ
¨ Group Byポート, 56 ページ
¨ アグリゲータトランスフォーメーションの[ソート済み入力]オプション, 58 ペー
ジ
¨ 再利用可能なアグリゲータトランスフォーメーションの作成, 60 ページ
¨ 再利用不可能なアグリゲータトランスフォーメーションの作成, 60 ページ
¨ アグリゲータトランスフォーメーションに関するヒント, 61 ページ
¨ アグリゲータトランスフォーメーションのトラブルシューティング, 61 ページ
アグリゲータトランスフォーメーションの概
要
アグリゲータトランスフォーメーションを使用して、平均値や合計値などの集計計算を実
行します。Data Integration Serviceは、データグループおよび行データを読み取って集
計キャッシュに保存する際に、集計計算を実行します。 アグリゲータトランスフォーメー
ションはアクティブなトランスフォーメーションです。
アグリゲータトランスフォーメーションは、式トランスフォーメーションとは異なり、グ
ループに対して計算を実行するために使用します。式トランスフォーメーションでは、行
単位の計算だけが可能です。
52
トランスフォーメーション言語を使用して集計式を作成する場合、条件句を使用して行を
フィルタリングすることで、SQL言語より優れた柔軟性を実現できます。
アグリゲータトランスフォーメーションの開
発
アグリゲータトランスフォーメーションを開発するときは、実行する計算のタイプやトラ
ンスフォーメーションのパフォーマンスなどの項目について考慮する必要があります。
アグリゲータトランスフォーメーションを開発するときは、以下の項目について考慮して
ください。
¨ データを計算するために出力ポートで使用する式。
¨ 集計キャッシュを使用してトランスフォーメーションデータを処理するかどうか。
¨ すべての入力データで集計を実行する代わりに、Group Byポートを使用して集計対象と
なるグループを定義するかどうかするかどうか。 Group Byポートを使用すると、パフ
ォーマンスを向上させることができます。
¨ [ソート済み入力]オプションを使用して、Data Integration Serviceがグループの行
を読み込みながら集計計算を実行するようにするかどうか。
アグリゲータトランスフォーメーションのポ
ート
アグリゲータトランスフォーメーションにはさまざまなポートタイプがあり、これらを使
用して、データの集計やデータのグループ化など、さまざまなトランスフォーメーション
タスクを実行できます。
アグリゲータトランスフォーメーションは、以下のポートタイプを備えています。
入力
アップストリームトランスフォーメーションからデータを受信します。
出力
式の戻り値を格納します。 式には非集計式や条件句を含めることができます。複数の
集計出力ポートを作成できます。
パススルー
変更せずにそのままデータを渡します。
変数
ローカル変数に使用されます。
アグリゲータトランスフォーメーションの開発
53
Group By
グループの作成方法を示します。ポートは、任意の入力ポート、入出力ポート、出力
ポート、または変数ポートを設定できます。データのグループ分けを行う場合、アグ
リゲータトランスフォーメーションは、原則として、各グループの最終行を出力しま
す。
アグリゲータトランスフォーメーションの詳
細プロパティ
Data Integration Serviceでアグリゲータトランスフォーメーションのデータがどのよう
に処理されるかを特定するためのプロパティを設定します。
以下の表に、アグリゲータトランスフォーメーションの詳細プロパティを示します。
キャッシュディレクトリ
Data Integration Serviceでのインデックスキャッシュファイルとデータキャッシュ
ファイルの作成先となるローカルディレクトリ。 このディレクトリが存在し、集計キ
ャッシュを格納するのに十分なディスク容量を備えていることを確認します。
差分集計を有効にした場合は、マッピングを実行するたびにData Integration
Serviceでファイルのバックアップが作成されます。 キャッシュディレクトリには、2
セットのファイルを格納できるだけの十分なディスク容量が必要です。
デフォルトはCacheDirシステムパラメータです。
データキャッシュサイズ
トランスフォーメーションのデータキャッシュサイズ。デフォルトは[自動]です。
インデックスキャッシュサイズ
トランスフォーメーションのインデックスキャッシュサイズ。デフォルトは[自動]
です。
ソート済み入力
入力データがグループで事前にソートされていることを示します。このオプション
は、マッピングでアグリゲータトランスフォーメーションにソート済みデータが渡さ
れる場合にのみ選択してください。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
54
第 3章: アグリゲータトランスフォーメーション
集計キャッシュ
アグリゲータトランスフォーメーションを使用するマッピングを実行すると、Data
Integration Serviceはメモリにインデックスキャッシュおよびデータキャッシュを作成し
てトランスフォーメーションを処理します。 Data Integration Serviceでさらに多くの領
域が必要になると、オーバーフローした値がキャッシュファイルに格納されます。
インデックスキャッシュおよびデータキャッシュはアグリゲータトランスフォーメーショ
ンで設定できます。
Data Integration Serviceはメモリを使用して、ソート済みのポートを使用したアグリゲ
ータトランスフォーメーションを処理します。 キャッシュメモリは使用されません。ソー
ト済みポートを使用するアグリゲータトランスフォーメーションでは、キャッシュメモリ
を設定する必要はありません。
集計式
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
集計キャッシュ
55
¨ MIN
¨ PERCENTILE
¨ STDDEV
¨ SUM
¨ VARIANCE
これらの関数はアグリゲータトランスフォーメーション内の式で使用する必要がありま
す。
ネストされた集計関数
アグリゲータトランスフォーメーションの異なる出力ポートに、単一レベルの関数を複数
含めたり、複数レベルにネストされた関数を複数含めたりすることができます。
アグリゲータトランスフォーメーションには、単一レベルの関数とネストされた関数の両
方を含めることはできません。 そのため、アグリゲータトランスフォーメーションの出力
ポートに単一レベルの関数が含まれる場合には、そのトランスフォーメーションの他のポ
ートでネストされた関数を使うことはできません。単一レベルの関数とネストされた関数
を同じアグリゲータトランスフォーメーションに含めると、そのマッピングまたはマップ
レットはDeveloperツールによって無効とされます。 単一レベルの関数とネストされた関
数の両方を作成する必要がある場合は、別々のアグリゲータトランスフォーメーションを
作成してください。
集計式の条件句
集計で使用される行の数を削減するには、集計式で条件句を使用します。条件句には、
TRUEまたはFALSEに評価される任意の句を使用できます。
たとえば以下の式を使用して、四半期単位のノルマを超過して達成した従業員の歩合総額
を算出します。
SUM( COMMISSION, COMMISSION > QUOTA )
Group Byポート
アグリゲータトランスフォーメーションを使用すると、すべての入力データで集計を実行
する代わりに、集計対象となるグループを定義できます。たとえば、会社の総売上高を求
めるのでなく、地域ごとにグループ分けした総売上高の確認ができます。
集計式に対してグループを定義するには、アグリゲータトランスフォーメーションで該当
する入力、入出力、出力、および変数ポートを選択します。複数のGroup Byポートを選択
して、一意なグループの組み合わせそれぞれについて新しいグループを作成することがで
きます。その後、Data Integration Serviceではグループごとに定義済みの集計が実行さ
れます。
値をグループ分けすると、Data Integration Serviceはグループごとに1つの行を生成しま
す。 値をグループ分けをしないと、Data Integration Serviceはすべての入力行に対して
1つの行を返します。 一般には、各グループの最終行(または最後に受信した行)と集計
56
第 3章: アグリゲータトランスフォーメーション
結果が返されます。 ただし、(例えばFIRST関数を使用して)特定の行を返すように指定
した場合、Data Integration Serviceはその行を返します。
アグリゲータトランスフォーメーションで複数のGroup Byポートを選択すると、Data
Integration Serviceはポートの順序に基づいてグループ分けの順序を決定します。 グル
ープの順序は結果に影響を及ぼす場合もあるため、グループ分けが妥当なものとなるよう
に、Group Byポートの順序付けを行ってください。たとえば、ITEM_IDの後でQUANTITYのグ
ループ分けを行った場合の結果と、QUANTITYの後でITEM_IDのグループ分けを行った場合の
結果が異なることもありますが、その理由は、数量の数値が必ずしも一意ではないからで
す。
このアグリゲータトランスフォーメーションに以下のデータを渡すとします。
STORE_ID
ITEM
QTY
PRICE
101
'battery'
3
2.99
101
'battery'
1
3.19
101
'battery'
2
2.59
101
'AAA'
2
2.45
201
'battery'
1
1.99
201
'battery'
4
1.59
301
'battery'
1
2.45
Data Integration Serviceは、以下の一意なグループに対して集計計算を実行します。
STORE_ID
ITEM
101
'battery'
101
'AAA'
201
'battery'
301
'battery'
その後、Data Integration Serviceは、最後に受信した行と集計結果を、次のように渡し
ます。
STORE_ID
ITEM
QTY
PRICE
SALES_PER_STORE
101
'battery'
2
2.59
17.34
101
'AAA'
2
2.45
4.90
201
'battery'
4
1.59
8.35
301
'battery'
1
2.45
2.45
Group Byポート
57
非集計式
グループの変更または置き換えを実行するには、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を通して
以下のデータを渡すと、Data Integration Serviceは201/batteryグループを検出した時点
で、101/batteryグループの3つの行を集計します。
58
STORE_ID
ITEM
QTY
PRICE
101
'battery'
3
2.99
101
'battery'
1
3.19
101
'battery'
2
2.59
201
'battery'
4
1.59
201
'battery'
1
1.99
第 3章: アグリゲータトランスフォーメーション
[ソート済み入力]オプションを使用する場合、前もってデータを正しくソートしておか
ないと、予期しない結果が生じます。
[ソート済み入力]オプションの条件
特定の条件では、[ソート済み入力]オプションを使用できない場合があります。
以下のいずれかの条件が当てはまる場合には、[ソート済み入力]オプションを使用しな
いでください。
¨ 集計式がネストされた集計関数を使用している。
¨ トランスフォーメーションで差分集計を使用している。
[ソート済み入力]オプションを使用した場合、データを正しくソートしないと、マッピ
ングの実行は失敗します。
アグリゲータトランスフォーメーションでのデータの
ソート
[ソート済み入力]オプションを使用する場合は、ソート済みデータをアグリゲータトラ
ンスフォーメーションへ渡します。
AggregatorのGroup Byポートごとに、アグリゲータトランスフォーメーションに表示され
る順で、データをソートする必要があります。
リレーショナルファイル入力およびフラットファイル入力の場合、アグリゲータトランス
フォーメーションにデータを渡す前に、ソータートランスフォーメーションを使用してマ
ッピング内でデータをソートします。 ソート済みデータの順序を変更するトランスフォー
メーションが1つもない場合は、マッピング内のAggregatorより前の任意の場所にソーター
トランスフォーメーションを配置できます。 アグリゲータトランスフォーメーションの中
のグループ別カラムの順序はソータートランスフォーメーションと同じでなければなりま
せん。
ソータートランスフォーメーションは下記のようにデータをソートします。
ITEM_NO
ITEM_NAME
QTY
PRICE
345
Soup
4
2.95
345
Soup
1
2.95
345
Soup
2
3.25
546
Cereal
1
4.49
546
Cereal
2
5.25
[ソート済み入力]オプションを使用した場合、アグリゲータトランスフォーメーション
は下記の結果を返します。
ITEM_NAME
QTY
PRICE
INCOME_PER_ITEM
Cereal
2
5.25
14.99
アグリゲータトランスフォーメーションの[ソート済み入力]オプション
59
ITEM_NAME
QTY
PRICE
INCOME_PER_ITEM
Soup
2
3.25
21.25
再利用可能なアグリゲータトランスフォーメ
ーションの作成
複数のマッピングまたはマプレットで使用する、再利用可能なアグリゲータトランスフォ
ーメーションを作成します。
1.
[Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。
2.
[ファイル] > [新規] > [トランスフォーメーション]をクリックします。
[新規]ダイアログボックスが表示されます。
3.
アグリゲータトランスフォーメーションを選択します。
4.
[次へ]をクリックします。
5.
トランスフォーメーションの名前を入力します。
6.
[完了]をクリックします。
トランスフォーメーションがエディタに表示されます。
7.
[新規]ボタンをクリックして、トランスフォーメーションにポートを追加します。
8.
ポートを編集して、名前、データ型、および精度を設定します。
9.
各ポートのタイプ(入力、出力、パススルー、または変数)を決定します。
10.
出力ポートの集計式を設定します。
11.
[詳細]ビューをクリックし、トランスフォーメーションのプロパティを編集しま
す。
再利用不可能なアグリゲータトランスフォー
メーションの作成
マッピングまたはマプレットで再利用不可能なアグリゲータトランスフォーメーションを
作成します。
1.
マッピングまたはマプレットで、トランスフォーメーションパレットからエディタに
アグリゲータトランスフォーメーションをドラッグします。
トランスフォーメーションがエディタに表示されます。
2.
60
[プロパティ]ビューで、トランスフォーメーションの名前と説明を編集します。
第 3章: アグリゲータトランスフォーメーション
3.
[ポート]タブで、[新規]ボタンをクリックして、トランスフォーメーションにポ
ートを追加します。
4.
ポートを編集して、名前、データ型、および精度を設定します。
5.
各ポートのタイプ(入力、出力、パススルー、または変数)を決定します。
6.
出力ポートの集計式を設定します。
7.
[詳細]ビューで、トランスフォーメーションのプロパティを編集します。
アグリゲータトランスフォーメーションに関
するヒント
アグリゲータトランスフォーメーションをより効果的に使用するためのヒントを紹介しま
す。
[ソート済み入力]オプションを使用し、集計キャッシュの使用量を減らしてください。
[ソート済み入力]オプションはマッピングの実行時にキャッシュに格納されるデー
タ量を減らし、パフォーマンスを向上させます。 このオプションをソータートランス
フォーメーションと共に使用して、ソート済みデータをアグリゲータトランスフォー
メーションに渡します。
接続される入出力ポートまたは出力ポートを制限してください。
接続される入出力ポートまたは出力ポートの数を制限することにより、アグリゲータ
トランスフォーメーションがデータキャッシュに格納するデータ量を減らしてくださ
い。
集計に先立ってデータをフィルタリングします。
マッピングでFilterトランスフォーメーションを使用する場合は、そのあとにアグリ
ゲータトランスフォーメーションを配置して、不要な集計を減らしてください。
アグリゲータトランスフォーメーションのト
ラブルシューティング
アグリゲータトランスフォーメーションをトラブルシューティングすることができます。
[ソート済み入力]オプションを選択しましたが、ワークフローの処理
にかかる時間が前と変わりません。
以下のいずれかの条件では、[ソート済み入力]オプションを使用できません。
¨ 集計式が、ネストされた集計関数を含んでいる。
¨ 差分集計を使用している。
アグリゲータトランスフォーメーションに関するヒント
61
¨ ソースデータがデータドリブンである。
以上の条件のいずれかが満たされている場合、Integration Serviceはソート済み入力オプ
ションが使用されていない場合と同様にトランスフォーメーションを処理します。
アグリゲータトランスフォーメーションを使用するとマッピングのパフ
ォーマンスが低下します。
Data Integration Serviceは、ディスクへのページングを行う場合があります。 トランス
フォーメーションのプロパティでインデックスキャッシュとデータキャッシュのサイズを
増やせば、パフォーマンスを向上させることができます。
62
第 3章: アグリゲータトランスフォーメーション
第 4 章
関連付けトランスフォーメー
ション
この章では、以下の項目について説明します。
¨ 関連付けトランスフォーメーションの概要, 63 ページ
¨ メモリ割り当て, 65 ページ
¨ 関連付けトランスフォーメーションの詳細プロパティ, 66 ページ
関連付けトランスフォーメーションの概要
関連付けトランスフォーメーションは、一致トランスフォーメーションの出力データを処
理します。 異なる一致クラスタに割り当てられた重複レコードの間のリンクを作成し、そ
れらのレコードをデータ統合やマスタデータ管理の操作で関連付けることができるように
します。
関連付けトランスフォーメーションは、関連レコードのグループ内の行ごとに
AssociationID値を生成し、そのID値を出力ポートに書き込みます。
統合トランスフォーメーションは、関連付けトランスフォーメーションの出力を読み取り
ます。 統合トランスフォーメーションを使用して、共通の関連付けID値を持つレコードに
基づいてマスタレコードを作成します。
関連付けトランスフォーメーションは、入力ポートのデータ値として文字列と数値を受け
入れます。 別のデータ型の入力ポートを追加した場合、トランスフォーメーションによっ
てポートのデータ値が文字列に変換されます。
AssociationID出力ポートは、整数データを書き込みます。 以前のバージョンの
Informatica Data Qualityで設定されたトランスフォーメーションは、AssociationIDポー
トに文字列データを書き込むことができます。
63
例: 一致トランスフォーメーションの出力の関連付け
次の表に、同一であると見なされる可能性がある3つのレコードを示します。
ID
名前
住所
市区町
村
州
郵便番
号
SSN
1
David
Jones
100
Admiral
Ave.
New
York
NY
10547
987-654321
2
Dennis
Jones
1000
Alberta
Ave.
New
Jersey
NY
-
987-654321
3
D.
Jones
Admiral
Ave.
New
York
NY
10547-1
521
-
一致トランスフォーメーションで定義された重複分析操作では、以下の理由で、これらの3
つのレコードはどれも相互に重複するとは見なされません。
¨ 名前および住所のデータに対する重複検索を定義した場合、レコード1とレコード3は重
複と見なされますが、レコード2は除外されます。
¨ 名前および社会保障番号のデータに対する重複検索を定義した場合、レコード1とレコ
ード2は重複と見なされますが、レコード3は除外されます。
¨ 3つのすべての属性(名前、住所、および社会保障番号)に対する重複検索を定義した
場合、いずれのレコードも一致とは見なされません。
関連付けトランスフォーメーションは、異なる一致クラスタのデータをリンクし、クラス
タIDが同じレコードに共通のAssociationID値が割り当てられるようにします。 この例の
64
第 4章: 関連付けトランスフォーメーション
場合、次の表に示すように、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
Jone
s
1000
Albe
rta
Ave.
New
Jers
ey
NY
-
98765-4
320
2
1
1
3
D.
Jone
s
Albe
rta
Ave.
New
York
NY
1054
7-15
21
-
1
2
1
重複レコードのデータは、統合トランスフォーメーションで統合することができます。
メモリ割り当て
関連付けトランスフォーメーションで使用される最小限のキャッシュメモリ量を設定でき
ます。デフォルトの設定は400,000バイトです。
この値は、[詳細]タブの[キャッシュファイルサイズ]プロパティで設定します。
デフォルト値は、トランスフォーメーションで使用される最小限のメモリ量を表します。
関連付けトランスフォーメーションは、関連付けるポートの数に基づいて、デフォルト値
の倍数を取得しようとします。 取得するキャッシュメモリは、次の式で計算されます。
(関連付けポートの数 + 1) x デフォルトのキャッシュメモリ
例えば、関連付けポートを7つ設定すると、トランスフォーメーションは320万バイト
(3.05MB)をキャッシュメモリに割り当てようとします。
デフォルトの設定を変更した場合、トランスフォーメーションで追加のメモリの取得は試
行されません。
注: 入力したキャッシュメモリの値が65536を下回る場合、関連付けトランスフォーメーシ
ョンでは値がMB単位で読み取られます。
メモリ割り当て
65
関連付けトランスフォーメーションの詳細プ
ロパティ
Data Integration Serviceで関連付けトランスフォーメーションのデータがどのように処
理されるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
66
第 4章: 関連付けトランスフォーメーション
第 5 章
不良レコードの例外トランス
フォーメーション
この章では、以下の項目について説明します。
¨ 不良レコードの例外トランスフォーメーションの概要, 67 ページ
¨ 不良レコードの例外の出力レコードタイプ, 68 ページ
¨ 不良レコードの例外管理プロセスフロー, 69 ページ
¨ 不良レコードの例外マッピング, 70 ページ
¨ 不良レコードの例外のポート , 72 ページ
¨ 不良レコードの例外の[設定]ビュー, 74 ページ
¨ 不良レコードの例外の問題の割り当て , 76 ページ
¨ 例外トランスフォーメーションの詳細プロパティ, 77 ページ
¨ 不良レコードの例外トランスフォーメーションの設定, 77 ページ
¨ 不良レコードの例外マッピングの例, 78 ページ
不良レコードの例外トランスフォーメーショ
ンの概要
不良トランスフォーメーションは、データ品質プロセスの出力を読み取り、手動確認が必
要なレコードを特定する、アクティブなトランスフォーメーションです。
レコード内のデータ品質の問題を識別するプロセスの出力を分析するように、不良レコー
ドの例外トランスフォーメーションを設定します。データ品質の問題が含まれており、さ
らに確認が必要なレコードは、例外と呼ばれます。
不良レコード例外トランスフォーメーションでは、別のトランスフォーメーションや別の
マッピング内のデータオブジェクトから入力を受け取ります。不良レコードトランスフォ
ーメーションへの入力には、データ品質の問題のテキスト説明を受け取る1つまたは複数の
品質の問題ポートが含まれている必要があります。また、不良レコード例外トランスフォ
ーメーションに対する入力には、各レコードのデータ品質を決定するために使用される数
値レコードスコアを含めることもできます。例外トランスフォーメーションで上限スコア
67
および下限スコアのしきい値を設定して、レコードスコアに基づいて、レコードを正常品
質および不良品質として分類します。不良レコードの例外トランスフォーメーションで
は、例外および関連付けられた品質の問題のテキストが不良レコードテーブルに書き込ま
れます。
たとえば、組織が郵便物を顧客に郵送する前に、顧客の住所を検証する必要があるとしま
す。ラベラトランスフォーメーションで顧客の市町村、都道府県、郵便番号を参照テーブ
ルに照らして検証するマッピングを作成します。ラベラトランスフォーメーションでは、
フィールドを検証し、結果に基づいてレコードスコアを各レコードに追加します。また、
ラベラトランスフォーメーションでは、エラーのある各レコードの品質の問題を説明する
テキストも追加します。ラベラトランスフォーメーションでは、市町村が無効や郵便番号コー
ドが空白などの問題のテキストを各例外に追加します。不良レコードの例外トランスフォー
メーションでは、手動確認が必要な顧客レコードが不良レコードテーブルに書き込まれま
す。データアナリストはInformatica Data Director for Data Qualityで不良レコードを
確認し、訂正することができます。
関連項目:
¨ 「重複レコードの例外トランスフォーメーションの概要」
(ページ158)
不良レコードの例外の出力レコードタイプ
不良レコードの例外では、入力レコードスコアを調べて、レコードの品質を判別します。
その後、レコードを複数の出力グループに返します。
例外トランスフォーメーションは、各レコードスコアに基づいて、次のレコードタイプを
識別します。
正常レコード
スコアが上限しきい値以上のレコードです。正常レコードは有効で、確認は不要で
す。 たとえば、上限しきい値を90に設定する場合、スコアが90以上のレコードには確
認が不要です。
不良レコード
スコアが上限しきい値未満で、下限しきい値以上のレコードです。不良レコードは、
Data Director for Data Qualityで確認する必要がある例外です。たとえば、下限し
きい値が40の場合、スコアが40~90のレコードには手動確認が必要です。
却下されたレコード
スコアが下限しきい値未満のレコード。却下されたレコードは無効です。 デフォルト
では、例外トランスフォーメーションは却下されたレコードをデータフローから削除
します。この例では、スコアが40以下のレコードが却下されたレコードです。
空の文字列は有効な品質の問題です。品質の問題がNULLの場合、レコードは例外ではあり
ません。ただし、品質の問題が空の文字列の場合、レコードは例外です。
レコードのスコアが0未満または100を上回る場合、その行は有効ではありません。データ
統合サービスは行が有効ではなく、レコードの処理がスキップされるというエラーメッセ
ージを記録します。
68
第 5章: 不良レコードの例外トランスフォーメーション
レコードスコアを入力として例外トランスフォーメーションに接続しなかった場合、トラ
ンスフォーメーションは品質の問題が含まれるすべてのレコードを不良レコードテーブル
に書き込みます。
マッピングタスクに不良レコードの例外トランスフォーメーションを含める場合、同じワ
ークフローでヒューマンタスクを設定し、例外の手動確認を含めることができます。ヒュ
ーマンタスクはワークフロー内のマッピングタスクの終了時に開始します。ヒューマンタ
スクでは、ユーザーが品質の問題を解決するために、Informatica Data Director for
Data Qualityツールにアクセスする必要があります。ユーザーはデータを更新したり、不
良レコードテーブル内の各レコードの品質のステータスを変更したりできます。
不良レコードの例外管理プロセスフロー
例外トランスフォーメーションはデータ品質トランスフォーメーションからレコードスコ
アを受信し、さまざまなレベルのデータ品質のレコードを含むテーブルを作成します。品
質の問題を検出し、各行にレコードスコアを提供するようにデータ品質トランスフォーメ
ーションを設定する必要があります。
複数のデータ品質トランスフォーメーションを単一のマッピングで設定することも、デー
タ品質プロセス内のステージ別にマッピングを作成することもできます。
以下の不良レコードの例外管理タスクを実行します。
1.
Developerツールで、定義したデータ品質の問題に基づいてソースデータのスコア値を
生成するトランスフォーメーションを定義します。ソースデータの品質を説明するテ
キストを返すトランスフォーメーションを定義します。たとえば、ラベラトランスフ
ォーメーションを設定することで、ソースデータを参照テーブルに照らして確認し、
比較ごとに説明ラベルを書き込むことができます。ディシジョントランスフォーメー
ションでデータフィールドを調べるためにIF/THENルールを定義できます。複数のトラ
ンスフォーメーションと、複数のデータ品質操作を実行するマプレットを定義できま
す。
2.
データ品質操作から受け取るレコードを分析するように例外トランスフォーメーショ
ンを設定します。スコア値に基づいてレコードをデータベーステーブルに書き込むに
は、このトランスフォーメーションを設定します。正常レコード、不良レコード、品
質の問題、却下されたレコードにそれぞれテーブルを作成できます。
3.
品質の問題ポートを、不良データが含まれている可能性がある各入力ポートに割り当
てます。
4.
必要に応じて、正常レコードと不良レコードのターゲットデータオブジェクトを設定
します。例外トランスフォーメーション出力ポートをマッピングのターゲットデータ
オブジェクトに接続します。
5.
不良レコードのターゲットデータオブジェクトの作成します。不良レコードテーブル
を生成し、マッピングに追加するように選択します。不良レコードテーブルの生成時
に、Developerツールは品質の問題テーブルも生成します。品質の問題テーブルをマッ
ピングに追加します。
6.
マッピングをワークフローに追加します。
不良レコードの例外管理プロセスフロー
69
7.
不良レコードの手動確認をユーザーに割り当てるようにヒューマンタスクを設定しま
す。ユーザーはData Director for Data Qualityで不良レコードのデータ品質を確認
し、更新することができます。
不良レコードの例外マッピング
不良レコードの例外を特定するマッピングを作成するときは、レコードのデータの品質に
基づいて、1つ以上のデータベースターゲットにレコードを書き込むようにマッピングを設
定します。
下の図に、不良レコードの例外マッピング例を示します。
マッピングには次のオブジェクトが含まれます。
データソース
データ品質を分析するためのレコードが含まれているEmployeesデータソース。
Bad_Records_Mapplet
Bad_Records_Mappletには、品質の問題およびレコードスコアを確認し、ソースレコ
ードに追加するトランスフォーメーションが含まれています。ルールは、データを分
析し、品質の問題を見つけるトランスフォーメーションです。たとえば、ラベラトラ
ンスフォーメーションを含めて、入力データを参照テーブルと比較することができま
す。結果に応じて、品質の問題を行の追加カラムとして返すようにラベラトランスフ
ォーメーションを構成できます。IF、THEN、ELSEの各ステートメントを使用して、デ
ータを調べて、品質の問題およびレコードスコアを入力データに適用するようにディ
シジョントランスフォーメーションを構成できます。
例外トランスフォーメーション
例外トランスフォーメーションは、不良レコードテーブルや問題テーブルなどのデー
タターゲットに書き込むレコードを判別します。
データターゲット
デフォルトでは、例外トランスフォーメーションは品質が正常なレコードをすべてこ
のターゲットに書き込みます。
70
第 5章: 不良レコードの例外トランスフォーメーション
不良レコードテーブル
デフォルトでは、例外トランスフォーメーションは品質が不良のレコードすべてをこ
のターゲットに書き込みます。不良レコードには手動確認が必要です。
問題テーブル
例外トランスフォーメーションでは、品質の問題が個別のテーブルに書き込まれま
す。Data Director for Data Qualityで不良レコードを表示する場合、ユーザーイン
タフェースで品質の問題が不良レコードにリンクされます。
必要に応じて、例外トランスフォーメーションで却下されたレコードを却下されたレコー
ドテーブルに書き込むことができます。[設定]ビューで却下されたレコード専用の出力
グループを作成するように選択する必要があります。
不良レコードの例外の品質に関する問題
品質の問題は、低いレコードスコアの原因となったデータ品質の問題のタイプを説明する
テキスト文字列です。不良レコードの例外トランスフォーメーションは、低いレコードス
コアが含まれる各ソース行に関連付けられた品質の問題を受信します。品質の問題および
レコードスコアを判別する複数のタイプのトランスフォーメーションを設定できます。
たとえば、電話番号を判別するディシジョントランスフォーメーションを作成できます。
ディシジョントランスフォーメーションは電話番号のレコードスコアおよび品質の問題を
生成します。
以下のディシジョンストラテジでは、ディシジョントランスフォーメーションで不正な長
さとされた電話番号が特定されます。
IF LENGTH(Phone_Number) > 10 THEN
Score:=50
Phone_Quality_Issue:='Phone num too long'
ELSEIF LENGTH(Phone_Number) < 10 THEN
Score:=50
Phone_Quality_Issue:=' Phone num too short’
ELSE
Score:=90
ENDIF
例外トランスフォーメーションを設定する場合、Phone_Quality_Issueを電話番号ポートに
関連付ける必要があります。このポートは複数の入力グループで構成されています。
例外トランスフォーメーションレコードは、ディシジョントランスフォーメーションによ
って生成されたスコアを読み取り、スコアが「50」のレコードを出力ポートの不良レコー
ドグループに割り当てます。これによって、Phone_Quality_Issueが出力ポートの問題グル
ープに書き込まれます。
ヒューマンタスク
例外トランスフォーメーションが含まれるワークフローを設定する場合、マッピングタス
クにマッピングを含めます。ヒューマンタスクを同じワークフローに追加できます。ヒュ
ーマンタスクでは、1人または複数のユーザーがInformatica Data Director for Data
Qualityで例外を手動で修正する必要があります。
マッピングタスクでは、データ品質の問題が解決されていないソースデータ内のレコード
が特定されます。ヒューマンタスクを実行するユーザーは、Informatica Data Director
不良レコードの例外マッピング
71
for Data Qualityツールを使用して問題を解決し、各レコードのデータ品質ステータスを
更新します。
ヒューマンタスクを設定するときは、タスクインスタンスとタスクステップをそれぞれ1つ
以上作成します。タスクインスタンスは、ユーザーが作業する必要があるデータセットで
す。タスクステップは、ユーザーがタスクインスタンスのレコードに対して実行する作業
のタイプを表します。Informatica Data Director for Data Qualityで複数のユーザーが
データの複数の部分に対して作業できるように、複数のタスクインスタンスを作成できま
す。
ユーザーは以下のいずれかの方法でInformatica Data Director for Data Qualityで不良
レコードのステータスを更新できます:
¨ レコードが有効な場合は、レコードのデータベースへの永続的な格納を確定するため
に、テーブルのメタデータを更新します。
¨ レコードが無効な場合は、ワークフローの以降のステージでレコードをデータベースか
ら削除するために、テーブルのメタデータを更新します。
¨ レコードのステータスが確定されていない場合は、マッピングタスクでの将来の処理の
ために、レコードがワークフローに戻ります。
ヒューマンタスクの詳細については、『Informatica Developer ワークフローガイド』を
参照してください。
不良レコードの例外のポート
不良レコードの例外トランスフォーメーションの[ポート]タブで入力ポートと出力ポー
トを設定します。
不良レコードの例外トランスフォーメーションには入力ポートグループと出力ポートグル
ープがあります。
以下の図は、[ポート]タブを示しています。
72
第 5章: 不良レコードの例外トランスフォーメーション
不良レコードの例外トランスフォーメーションの入力
ポート
不良レコードの例外トランスフォーメーションには、データ、品質の問題、およびレコー
ドスコアにそれぞれ入力グループがあります。
不良レコードの例外トランスフォーメーションには次の入力グループがあります。
データ
ソースデータフィールドです。
品質の問題
レコードの品質の問題を説明するポートが含まれます。品質の問題ポートには、
「Excess_Characters」や「Bad_Data_Format」などの文字列が含まれます。各レコー
ドに複数の品質の問題を含めることができます。トランスフォーメーションでは、
[問題の割り当て]ビューで問題をデータポートに割り当てるまで、品質の問題グル
ープのポートがソースデータフィールドに関連付けられません。
コントロール
レコードスコアです。例外トランスフォーメーションは、レコードスコアを分析し
て、入力行が例外であるかどうかを判断します。スコアポートに接続していない場
合、品質の問題ポートにデータが含まれていなければ、例外トランスフォーメーショ
ンは行を例外として特定します。
不良レコードの例外トランスフォーメーションの出力
不良レコードの例外トランスフォーメーションには複数の出力グループがあります。
不良レコードの例外トランスフォーメーションには次の出力グループがあります。
標準出力
データ品質の問題がないか調べる必要のない正常なレコードです。
標準出力グループの各レコードには、レコードのデータ品質を表すスコアポートが含
まれています。
不良レコード
データ品質の問題がないか調べる必要がある例外です。
不良レコードグループの各レコードには、ワークフローID、行識別子、およびレコー
ドステータスポートが含まれています。
問題
不良レコードグループのレコードの品質の問題です。品質の問題とは、Informatica
Data Director for Data Qualityで不良レコードを手動で確認する場合に表示される
メタデータのことです。
問題グループの各レコードには、問題が存在している不良レコード行を特定するワー
クフローIDおよび行識別子ポートが含まれています。
不良レコードの例外のポート
73
却下されたレコード
データベースから削除できるレコードが含まれるオプションのグループです。拒否さ
れたレコードグループの各レコードには、スコアポート内のレコードスコアが含まれ
ています。
不良レコードの例外の[設定]ビュー
[設定]ビューでは、例外トランスフォーメーションのレコードスコアの上限および下限
のしきい値が定義されます。また、例外トランスフォーメーションで正常レコード、不良
レコード、および却下されたレコードが書き込まれる場所も定義されます。
以下の図に、例外トランスフォーメーションの[設定]ビューを示します。
[設定]ビューでは、次のプロパティを設定できます。
下限しきい値
不良レコードのスコア範囲の下限です。 トランスフォーメーションは、スコアがこの
値を下回るレコードを却下されたレコードとして処理します。
上限しきい値
不良レコードのスコア範囲の上限です。 トランスフォーメーションは、スコアがこの
値を超えるか、または等しいレコードを正常レコードとして処理します。
データルーティングのオプション
出力レコードのタイプ。デフォルトの設定では、正常レコードが標準出力に、不良レ
コードが不良レコードテーブルにルーティングされ、却下されたレコードは削除され
ます。各レコードタイプを受け取るグループを変更できます。
標準出力
標準出力ポートに書き込まれるレコードのタイプです。
74
第 5章: 不良レコードの例外トランスフォーメーション
デフォルトは[正常レコード]です。
不良レコードテーブル
不良レコード出力ポートに書き込まれるレコードのタイプです。デフォルトは[不良
レコード]です。
却下されたレコードのための独立した出力グループを作成
却下されたレコードの独立した出力グループを作成します。デフォルトでは無効にな
っており、例外トランスフォーメーションで却下されたレコードがデータベーステー
ブルに書き込まれません。
不良レコードテーブルの生成
不良レコードを含める、データベースオブジェクトを作成します。 このオプションを
選択すると、例外トランスフォーメーションによってデータベースオブジェクトが作
成され、オブジェクトがモデルリポジトリに追加され、オブジェクトのインスタンス
がマッピングキャンバスに追加されます。マッピングで例外トランスフォーメーショ
ンインスタンスの不良レコードテーブルを生成できます。
関連項目:
¨ 「重複レコードの例外の[設定]ビュー 」
(ページ160)
不良レコードテーブルおよび問題テーブルの生成
トランスフォーメーションがマッピング内にある場合、不良レコードテーブルおよび問題
テーブルを生成できます。テーブルを生成する場合、Developerツールによってテーブルが
モデルリポジトリに追加されます。
1.
[不良レコードテーブルの生成]をクリックして、テーブルを生成します。
また、オブジェクトがMRSに追加されるため、プロジェクト内の物理データオブジェク
トが表示されます。
[リレーショナルデータオブジェクトの作成]ダイアログボックスが表示されます。
2.
テーブルが含まれているデータベースへの接続を参照して選択します。
3.
データベース内の不良レコードテーブル名を入力します。
問題テーブルは、"_Issue"が追加された不良レコードテーブルと同じ名前を受け取り
ます。
4.
モデルリポジトリ内の不良レコードテーブルオブジェクト名を入力します。
5.
[完了]をクリックします。
Developerツールでは、マッピングキャンパスおよびモデルリポジトリにテーブルを追
加します。テーブルをプロジェクト内で物理データオブジェクトとして表示できま
す。マッピングでは、テーブルを不良レコードの例外トランスフォーメーションにリ
ンクします。
不良レコードの例外の[設定]ビュー
75
不良レコードの例外の問題の割り当て
データ品質の問題にポートおよび優先順位を割り当てる必要があります。
以下の図に、[問題の割り当て]ビューを示します。
[問題の割り当て]ビューには以下のフィールドがあります。
品質の問題
品質の問題入力グループで定義した各品質の問題ポートは、品質の問題カラムに表示
されます。
入力
入力カラムには、[問題の割り当て]ビューで品質の問題に割り当てたデータポート
が含まれています。各品質の問題ポートに入力ポートを関連付けます。不良品質デー
タが含まれる各入力ポートには、問題のタイプを示す、対応する問題の品質ポートが
少なくとも1つは必要です。たとえば、Phone_Quality_Issueに対してPhone_numberポ
ートを選択できます。複数の品質の問題にポートを選択できます。
問題の優先順位
問題の優先順位によって、同じ入力ポートを複数の品質の問題に割り当てる場合に最
も重要な品質の問題を決定します。1つの入力フィールドに対して複数の品質の問題が
発生する場合、データ統合サービスは優先順位が最も高い問題を適用します。1つの入
力ポートに対して複数の品質の問題が存在し、問題の優先順位が同じ場合、データ統
合サービスはリストの一番上にある品質の問題を適用します。1~99の優先度を入力し
ます。1は最高の優先順位を表します。
Data Director for Data Qualityでレコードをフィルタリングするための問題の優先
順位を割り当てることができます。
品質の問題に対するポートの割り当て
品質の問題のそれぞれにポートを割り当て、関連付けます。Developerツールによって、
[問題の割り当て]ビューで追加する各関連付けのために出力グループにポートが作成さ
れます。
1.
各品質の問題の[入力]フィールドをクリックすると、入力ポートのリストが表示さ
れます。
2.
品質の問題に関連付ける入力ポートを選択します。
複数の問題に同じポートを選択できます。
3.
76
[問題]カラムをクリックし、品質の問題の優先順位を選択します。
第 5章: 不良レコードの例外トランスフォーメーション
例外トランスフォーメーションの詳細プロパ
ティ
データ統合サービスで例外トランスフォーメーションのデータがどのように処理されるか
を特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
不良レコードの例外トランスフォーメーショ
ンの設定
不良レコードの例外トランスフォーメーションを設定する場合、各ポートで発生する可能
性がある入力ポートおよび品質の問題を設定します。データの品質を特定するための上限
および下限のしきい値を定義します。例外および却下されたレコードを書き込むかどうか
を設定します。
1.
再利用可能な、または再利用不可能な不良レコードの例外トランスフォーメーション
を作成します。
¨ 再利用可能なトランスフォーメーションを作成するには、[ファイル] > [新
規] > [トランスフォーメーション]を選択します。
¨ 再利用不可能なトランスフォーメーションを作成するには、マッピングを開き、ト
ランスフォーメーションをマッピングキャンバスに追加します。
不良レコードの例外トランスフォーメーションを選択します。
2.
入力ポートを設定します。
¨ 再利用可能なトランスフォーメーションを作成する場合は、[ポート]タブを選択
し、トランスフォーメーションに接続するデータのポートを追加します。
¨ 再利用不可能なトランスフォーメーションを作成する場合は、他のオブジェクトを
マッピングキャンバスに追加し、入力ポートをトランスフォーメーションにドラッ
グします。
3.
[設定]ビューを選択します。
4.
スコアの上限および下限のしきい値を設定します。
5.
[データルーティングのオプション]セクションで、標準出力と例外テーブルのプロ
パティを設定して、トランスフォーメーションが各レコードタイプを書き込む場所を
設定します。
例外トランスフォーメーションの詳細プロパティ
77
正常レコード、不良レコード、および却下されたレコードを書き込むかどうかを設定
します。標準出力または不良レコードテーブルに書き込むことができます。
6.
[問題の割り当て]ビューを開きます。データ品質の問題をデータポートに割り当て
ます。
問題ごとに優先順位を割り当てます。 ポートに複数の問題の値が含まれている場合
は、優先順位の一番高い問題が表示されます。
7.
不良レコードテーブルを生成するオプションを選択します。データベース接続とテー
ブル名の情報を入力します。
¨ 不良レコードテーブルを生成する場合は、レコードのテーブルおよびレコードに関
連するデータ品質の問題の追加テーブルを生成します。
モデルリポジトリにデータベースオブジェクトが作成されます。
8.
トランスフォーメーション出力ポートを1つ以上のデータターゲットに接続します。出
力ポートを[設定]ビューで設定した出力オプションに対応するデータオブジェクト
に接続します。
¨ 再利用可能なトランスフォーメーションを作成する場合は、トランスフォーメーシ
ョンをマッピングに追加し、出力ポートを接続します。
¨ 再利用不可能なトランスフォーメーションを作成する場合は、トランスフォーメー
ションにより、ポートが不良レコードテーブルに接続されます。出力ポートを他の
いずれかのデータターゲットに接続します。
不良レコードの例外マッピングの例
組織が新しい顧客データを確認するデータプロジェクトを実施します。組織は顧客の連絡
先データが有効であることを確認する必要があります。次の例は、顧客レコードのデータ
品質の分析を行うマプレットからレコードを受け取る不良レコードの例外トランスフォー
メーションを定義する方法を示します。
顧客データの形式や精度を評価するデータ品質トランスフォーメーションを含むマプレッ
トを作成します。マプレットには、データ品質の分析結果に基づいてレコードスコアを生
成するトランスフォーメーションが含まれています。また、トランスフォーメーション
は、分析結果に基づいてデータの品質の問題も定義します。
不良レコードの例外のマプレット
データ品質トランスフォーメーションが含まれるマプレットを作成して、特定のフィール
ドの値を確認します。このトランスフォーメーションは参照テーブルとコンテンツセット
を確認して、レコード内のフィールドが有効であるかどうかを判断します。このトランス
フォーメーションは結果に基づいて、レコードスコアを各レコードに適用します。例外ト
ランスフォーメーションはマプレットからレコードを受け取り、レコードスコアに基づい
て、各レコードを適切な出力にルーティングします。
マプレットはラベラートランスフォーメーション、ディシジョントランスフォーメーショ
ン、および式トランスフォーメーションで構成されています。
78
第 5章: 不良レコードの例外トランスフォーメーション
以下の図に、マプレット内のオブジェクトを示します。
マプレットは、以下のタスクを実行します。
¨ ラベラトランスフォーメーションは入力ポートで受け取る状態、国コード、郵便番号な
どのデータをローカルで検証します。このトランスフォーメーションには、各ポートの
ストラテジが含まれています。ストラテジは、ソースデータを参照テーブルと比較し、
有効でない値を識別します。
¨ 式トランスフォーメーションマプレットは電話番号が数値であることを確認し、10桁が
含まれる数値であることを検証します。
¨ ラベラトランスフォーメーションおよび式トランスフォーメーションマプレットは、電
子メールアドレスが有効であることを確認します。式トランスフォーメーションは電子
メール文字列の構造を検証します。ラベラトランスフォーメーションはIPアドレスを国
際IPアドレスサフィックスの参照テーブルに照らして確認します。
¨ ディシジョントランスフォーメーションはトランスフォーメーションおよびマプレット
から出力を受信します。これは顧客の連絡先レコード全体のレコードスコアを計算しま
す。
マプレットが含まれる不良レコードの例外マッピングを作成します。不良レコードの例外
マッピングには、例外を不良レコードのデータベーステーブルに書き込む例外トランスフ
ォーメーションが含まれています。データアナリストはData Director for Data Quality
で不良レコードテーブル内の例外レコードを調査し、更新します。
不良レコードの例外の入力グループの例
例外トランスフォーメーションには3つの入力グループがあります。トランスフォーメーシ
ョンには、ソースデータを受け取るデータグループがあります。品質の問題グループは、
データ品質トランスフォーメーションによって見つかったデータ品質の問題を受け取りま
す。また、行のレコードスコアが含まれるコントロールグループもあります。
以下の図に、例外トランスフォーメーションの入力グループを示します。
不良レコードの例外マッピングの例
79
不良レコードの例外の設定例
[設定]ビューで上限および下限のしきい値を定義します。トランスフォーメーションで
正常レコード、不良レコード、および却下されたレコードが書き込まれる場所を特定しま
す。
正常レコード、不良レコード、および問題のルーティングのデフォルト設定を受け入れま
す。
以下の図に、例外トランスフォーメーションの[設定]ビューを示します。
80
第 5章: 不良レコードの例外トランスフォーメーション
以下の表に、構成設定を示します。
オプション
設定項目
下限しきい値
10
上限しきい値
90
正常レコード
標準出力
不良レコード
不良レコードテーブル
却下されたレコード
-
[不良レコードテーブルの生成]をクリックし、不良レコードテーブルと問題テーブルを
作成します。
不良レコードの例外のマッピングの出力例
マッピングに書き込みデータオブジェクトを追加し、標準出力ポートをそのデータオブジ
ェクトに接続します。 マッピングには[設定]ビューで作成した不良レコードのデータベ
ースオブジェクトと問題のデータベースオブジェクトも含まれます。
不良レコードテーブル
不良レコードテーブルには、レコードスコアが下限しきい値と上限しきい値の間の例外が
含まれています。
以下の図に、例外トランスフォーメーションで返される不良レコードを示します。
不良レコードの例外マッピングの例
81
不良レコードテーブルにはソースレコードのすべてのフィールドが含まれています。ま
た、不良レコードには以下のフィールドも含まれています。
Workflow_ID
例外トランスフォーメーションに含まれているワークフロー名です。ワークフローに
は、問題を確認する例外トランスフォーメーションマッピングタスクとヒューマンタ
スクが含まれています。例外トランスフォーメーションがワークフローに存在してい
ない場合、Workflow_IDにDummyWorkflowIDが含まれています。
Row_Identifier
各行を識別する一意の名前です。
Record_Status
Informatica Data Director for Data Qualityのレコードステータスです。不良レコ
ードテーブル内の各レコードは無効ステータスを受け取ります。Informatica Data
Director for Data Qualityでのレコードの更新時にレコードステータスを維持するこ
とができます。
問題テーブル
問題テーブルには、不良レコードテーブル内の各行に対して1行が含まれています。各行に
はデータ品質アナリストがソースレコードの品質を行う問題が含まれています。
以下の図に、問題テーブル内のカラムを示します。
以下のカラムが問題テーブルに含まれています。
Workflow_ID
レコードを作成したワークフローを特定します。ワークフローには、問題を確認する
例外トランスフォーメーションマッピングタスクとヒューマンタスクが含まれていま
す。
82
第 5章: 不良レコードの例外トランスフォーメーション
Row_Identifier
データベーステーブル内のレコード行を特定します。行IDは、問題テーブル内の行に
対応する不良レコードテーブル内の行を特定します。
問題フィールド名
このフィールド名は、品質の問題である可能性があるフィールドの名前です。このフ
ィールドにエラーが含まれている場合、列の値が品質の問題テキストです。上の図で
は、ADDR2フィールド名にinvalid_localityという品質の問題が含まれています。
DQAPriority
問題の優先順位です。同じフィールドに複数の問題が発生している場合、優先順位の
高い問題が問題フィールド名に表示されます。
正常レコードテーブル
正常レコードテーブルの各レコードには、上限しきい値を上回るレコードスコアが含まれ
ています。この例では、上限しきい値は90です。
以下の図に、例外トランスフォーメーションで返される正常レコードを示します。
正常レコードテーブルのレコードには、レコードスコアとソースデータのフィールドが含
まれています。
不良レコードの例外マッピングの例
83
第 6 章
大文字小文字変換プログラム
トランスフォーメーション
この章では、以下の項目について説明します。
¨ 大文字小文字変換プログラムトランスフォーメーションの概要, 84 ページ
¨ 大文字小文字ストラテジのプロパティ, 85 ページ
¨ 大文字小文字変換プログラムストラテジの設定, 85 ページ
¨ 大文字小文字変換プログラムトランスフォーメーションの詳細プロパティ, 86 ペー
ジ
大文字小文字変換プログラムトランスフォー
メーションの概要
大文字小文字変換プログラムトランスフォーメーションは、入力データで文字列の大文字
小文字を標準化することによって、データの均一性を実現するパッシブトランスフォーメ
ーションです。
データ品質を高めるには、大文字小文字変換プログラムトランスフォーメーションを使用
して、類似する文字形式にデータをフォーマットします。 大文字、小文字、トグルケー
ス、タイトルケース、センテンスケースなど、定義済みの大文字小文字変換タイプを選択
できます。
参照テーブルを使用して大文字小文字変換を制御することもできます。 参照テーブルを使
用して、入力文字列の大文字小文字を参照テーブルの[有効]カラムの値に変更します。
参照テーブルは、大文字小文字変換タイプが [Title Case] または [Sentence case]
であるときに使用できます。
大文字小文字変換プログラムトランスフォーメーション内に、複数の大文字小文字変換ス
トラテジを作成できます。 各ストラテジは、1つの変換タイプを使用します。 大文字小文
字変換プログラムトランスフォーメーションには、ストラテジの作成に使用するウィザー
ドが用意されています。
84
大文字小文字ストラテジのプロパティ
大文字小文字変換ストラテジのプロパティを設定できます。
[ストラテジ]ビューで、以下の大文字小文字変換のプロパティを設定できます。
変換タイプ
ストラテジで使用される大文字小文字変換メソッドを定義します。 以下の大文字小文
字変換タイプを適用できます。
¨ [Uppercase]。 すべての文字を大文字に変換します。
¨ [Sentence Case]。 フィールドデータ文字列の最初の文字を大文字にします。
¨ [Toggle Case]。 小文字を大文字に、大文字を小文字に変換します。
¨ [Title Case]。 各部分文字列の最初の文字を大文字にします。
¨ [Lowercase]。 すべての文字を小文字に変換します。
デフォルトの大文字小文字変換メソッドは大文字です。
大文字の単語をそのまま残す
大文字の文字列に対して選択された大文字化をオーバーライドします。
区切り文字
大文字小文字変換に対して大文字化がどのように機能するかを定義します。 例えば、
「smith-jones」を「Smith-Jones」に変換するには、区切り文字としてダッシュを選
択します。 デフォルトの区切り文字はスペース文字です。
参照テーブル
参照テーブルによって指定された大文字化形式を適用します。 大文字小文字変換オプ
ションが [Title Case] または [Sentence case] である場合にのみ適用されま
す。[新規]をクリックし、参照テーブルをストラテジに追加します。
注: トークンの先頭部分が参照テーブルと一致した場合、そのトークンの次の文字が
大文字に変わります。例えば、入力文字列がmcdonaldで、参照テーブルにMcというエ
ントリがある場合、出力文字列はMcDonaldになります。
大文字小文字変換プログラムストラテジの設
定
入力文字列の大文字小文字を変更するには、大文字小文字変換プログラムトランスフォー
メーションの[ストラテジ]ビューで設定を構成します。
1.
[ストラテジ]ビューを選択します。
2.
[新規]をクリックします。
新しいストラテジウィザードが開きます。
3.
必要に応じて、ストラテジ名と説明を編集します。
大文字小文字ストラテジのプロパティ
85
4.
[入力]フィールドと[出力]フィールドをクリックして、ストラテジのポートを選
択します。
5.
ストラテジのプロパティを設定します。 デフォルトの変換ストラテジは
[Uppercase]です。
6.
[次へ]をクリックします。
7.
必要に応じて参照テーブルを追加し、参照テーブルのエントリに一致する入力データ
の大文字小文字オプションをカスタマイズします。 参照テーブルの大文字小文字のカ
スタマイズは、タイトルの大文字小文字ストラテジと文の大文字小文字ストラテジに
のみ適用されます。
8.
[完了]をクリックします。
大文字小文字変換プログラムトランスフォー
メーションの詳細プロパティ
Data Integration Serviceで大文字小文字変換プログラムトランスフォーメーションのデ
ータがどのように処理されるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
86
第 6章: 大文字小文字変換プログラムトランスフォーメーション
第 7 章
分類子トランスフォーメーシ
ョン
この章では、以下の項目について説明します。
¨ 分類子トランスフォーメーションの概要, 87 ページ
¨ 分類子モデル, 88 ページ
¨ 分類子アルゴリズム, 88 ページ
¨ 分類子トランスフォーメーションのオプション, 89 ページ
¨ 分類子ストラテジ, 89 ページ
¨ 分類子トランスフォーメーションの詳細プロパティ, 90 ページ
¨ 分類子ストラテジの設定, 90 ページ
¨ 分類子分析の例, 91 ページ
分類子トランスフォーメーションの概要
分類子トランスフォーメーションはパッシブトランスフォーメーションであり、入力フィ
ールドを分析して各フィールド内の情報のタイプを特定します。入力フィールドに複数の
テキスト値が含まれている場合は分類子トランスフォーメーションを使用します。
分類子トランスフォーメーションを設定する場合、分類子モデルと分類子アルゴリズムを
選択します。分類子モデルは、参照データセットの一種です。 分類子アルゴリズムとは、
文字列の中から類似する単語の数と、単語の相対的な位置を計算するための一連のルール
です。このトランスフォーメーションでは、アルゴリズムによる分析結果を分類子モデル
の内容と比較します。このトランスフォーメーションでは、文字列の中で多数派である情
報タイプを特定するモデル分類を返します。
分類子トランスフォーメーションでは、かなりの長さの文字列を分析することができま
す。例えば、このトランスフォーメーションを使用することで、電子メールメッセージの
本文やソーシャルメディアのメッセージ、さらにはドキュメントのテキストを分類するこ
とができます。それぞれのドキュメントまたはメッセージの内容をデータソースカラムの
フィールドに渡し、そのカラムを分類子トランスフォーメーションに接続します。それぞ
れのケースで、分析する必要のあるドキュメントまたは文字列の内容が完全に各フィール
ドに含まれるようにデータソースを準備します。
87
分類子モデル
分類子トランスフォーメーションでは、入力データの分析に、分類子モデルと呼ばれる参
照データオブジェクトを使用します。分類子トランスフォーメーションを設定する際に分
類子モデルを選択します。このトランスフォーメーションでは、入力データを分類子モデ
ルのデータと比較し、各入力フィールドの情報のタイプを特定します。
分類子モデルには次のカラムが含まれています。
データカラム
入力データ内に存在する可能性のあるワードやフレーズを含むカラム。このトランス
フォーメーションでは、入力データをこのカラム内のデータと比較します。
ラベルカラム
データ内の情報を定義する説明ラベルが入ったカラム。このトランスフォーメーショ
ンは、出力としてこのカラムからラベルを返します。
分類子モデルには、分類子トランスフォーメーションが入力データに対して正しい情報タ
イプを計算する際に使用する編集データが含まれています。
Developerツールで分類子モデルを作成します。 このモデルリポジトリは、分類子モデル
のオブジェクトに対するメタデータを格納します。カラムデータと編集データは、
Informaticaディレクトリ構造の中のファイルに格納されています。
分類子アルゴリズム
分類子モデルをトランスフォーメーションストラテジに追加するときに、分類子アルゴリ
ズムも選択します。このアルゴリズムでは、トランスフォーメーションが分類子モデルを
入力データと比較する方法を決定します。
[単純ベイズ]アルゴリズムまたは[最大エントロピー]アルゴリズムを選択することが
できます。.
アルゴリズムの選択時には次の要因を考慮してください。
¨ 最大エントロピーアルゴリズムでは、単純ベイズアルゴリズムよりさらに徹底した分析
を行います。
¨ 同じデータの場合、単純ベイズアルゴリズムを使用するマッピングの実行速度は、最大
エントロピーアルゴリズムを使用するマッピングよりも速くなります。
¨ InformaticaがCore Acceleratorに組み込んだ分類子モデルとともに最大エントロピー
アルゴリズムを選択します。
88
第 7章: 分類子トランスフォーメーション
分類子トランスフォーメーションのオプショ
ン
分類子トランスフォーメーションでは、設定可能なオプションがDeveloperツールの一連の
タブまたはビューに表示されます。
再利用可能なトランスフォーメーションを開くと、トランスフォーメーションエディタの
一連のタブにオプションが表示されます。再利用できないトランスフォーメーションを開
くと、マッピングエディタの一連のビューにオプションが表示されます。マッピングプロ
パティを選択して、再利用できないトランスフォーメーションのビューを表示します。
次に挙げるビューを選択することができます。
全般
トランスフォーメーションの名称と説明を表示し更新します。
ポート
このトランスフォーメーションの入力ポートと出力ポートを表示します。
注: 再利用可能な分類子トランスフォーメーションでは、全般ビューとポートビュー
が組み合わされて[概要]タブになっています。
ストラテジ
ストラテジを追加、削除、編集します。
依存関係
各ストラテジの入力ポートと出力ポートを表示します。
詳細
トランスフォーメーションでログファイルに書き込まれる詳細のレベルを設定しま
す。
分類子ストラテジ
ストラテジとは、トランスフォーメーションが入力データに対して実行する一連のデータ
分析操作です。分類子トランスフォーメーションにストラテジを少なくとも1つ作成しま
す。分類子ストラテジでは、単一の入力ポートを読み取ります。
ストラテジに1つまたは複数の操作を定義します。分類子操作は、入力ポートのデータに適
用する分類子モデルと分類子アルゴリズムを特定します。各操作で異なるポートに書き込
みが行われます。入力ポートを異なる方法で分析する必要がある場合は、ストラテジに複
数の操作を作成します。
注: ソースデータで使用する言語を特定する必要がある場合、分類子操作で最大エントロ
ピーアルゴリズムを選択します。
分類子トランスフォーメーションのオプション
89
分類子トランスフォーメーションの詳細プロ
パティ
Data Integration Serviceで分類子トランスフォーメーションのデータがどのように処理
されるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
分類子ストラテジの設定
データの情報タイプを特定するようにストラテジを設定します各ストラテジは入力ポート
を分析します。
再利用できないトランスフォーメーションでは、ストラテジを設定する前に入力ポートを
トランスフォーメーションに接続しておきます。
1.
トランスフォーメーションを開き、[ストラテジ]ビューを選択します。
2.
[新規ストラテジ]をクリックします。
[プロファイルの作成]ウィザードが開きます。
3.
ストラテジの名前と、必要に応じてその説明を入力します。
4.
[入力]フィールドから入力ポートを選択します。
5.
入力ポートからすべてのフィールドが読み込まれるように、入力ポートの精度が十分
高い値に設定されてあるか確認します。これは、入力ポートの精度を超える入力デー
タは切り捨てられてしまうためです。
6.
オプションを選択またはクリアし、スコアデータをストラテジ出力に追加します。
7.
[次へ]をクリックします。
8.
分類子の操作タイプを確認して、[次へ]をクリックします。
9.
分類子アルゴリズムを選択します。次のアルゴリズムを選択することができます。
¨ 単純ベイズ
¨ 最大エントロピー
注: ソースデータで使用されている言語を特定するには、最大エントロピーアルゴリ
ズムを選択します。
10.
出力ポートを検証します。
このトランスフォーメーションでは、ストラテジの各操作に対して単一のポートを作
成します。ポート名と精度は編集することができます。
90
第 7章: 分類子トランスフォーメーション
11.
分類子モデルを選択します。
ウィザードに、モデルリポジトリ内の分類子モデルオブジェクトが表示されます。
12.
[次へ]をクリックして、別の操作をストラテジに追加します。それ以外の場合は
[完了]をクリックします。
分類子分析の例
あなたは、スマートフォン向けの新しいアプリケーションをリリースしたソフトウェア会
社のデータスチュワードです。この会社は、このアプリケーションが人々にどう受け止め
られられているのか、そしてメディアの取り上げ方について知る必要性を感じています。
このため、会社はあなたとあなたのチームに対して、アプリケーションに関するソーシャ
ルメディアでの発言を分析するように指示します。
そこであなたは、スマートフォンの話をしているツイッターフィードからデータを取り込
むことにします。ツイッターアプリケーションのプログラミングインターフェイスを使っ
てツイッターのデータストリームをフィルタリングします。そして、データソースを作成
し、分析する必要のあるツイッターデータをそこに格納します。
ツイッターフィードには複数の言語で書かれたメッセージが含まれているため、各メッセ
ージで使用されている言語を特定する必要があります。そこで、分類子トランスフォーメ
ーションを使用して言語を分析することに決めます。ソースデータの言語を特定するマッ
ピングを作成し、ツイッターメッセージを英語データターゲットと英語以外のデータター
ゲットに書き込みます。
分類子マッピングの作成
作成するマッピングでは、まずデータソースを読み込み、データの言語を分類し、含まれ
る言語に基づいてデータをターゲットに書き込みます。
次の図に、Developerツールのマッピングを示します。
分類子分析の例
91
作成するマッピングには、以下のオブジェクトが含まれます。
オブジェクト名
説明
Read_tweet_user_lang
データソース。
ツイッターのメッセージが入りま
す。
分類子
分類子トランスフォーメーション。
ツイッターメッセージに使用されて
いる言語を特定します。
Router
Routerトランスフォーメーション。
ツイッターメッセージを、そこに含
まれる言語に従ってデータターゲッ
トオブジェクトにルーティングしま
す。
Write_en_tweets_out
データターゲット。
英語のツイッターメッセージが入り
ます。
Write_other_tweets_out
データターゲット。
英語以外の言語のツイッターメッセ
ージが入ります。
入力データサンプル
次に示すデータの抜粋は、マッピングで分析するツイッターデータのサンプルです。
Twitter Message
RT @GanaphoneS3: Faltan 10 minutos para la gran rifa de un iPhone 5...
RT @Clarified: How to Downgrade Your iPhone 4 From iOS 6.x to iOS 5.x (Mac)...
RT @jerseyjazz: The razor was the iPhone of the early 2000s
RT @KrissiDevine: Apple Pie that I made for Thanksgiving. http://t.com/s9ImzFxO
RT @sophieHz: Dan yang punya 2 kupon undian. Masuk dalam kotak undian yang berhadiah
Samsung
RT @IsabelFreitas: o galaxy tem isso isso isso e a bateria à melhor que do iPhone
RT @PremiusIpad: Faltan 15 minutos para la gran rifa de un iPhone 5...
RT @payyton3: I want apple cider
RT @wiesteronder: Retweet als je iets van Apple, Nike, Adidas of microsoft hebt!
92
第 7章: 分類子トランスフォーメーション
データソースの設定
データソースには単一のポートが含まれています。このポートに各行に、単一のツイッタ
ーメッセージが入ります。
次の表に、データソースの設定を示します。
ポート名
ポートタイプ
精度
テキスト
なし
200
分類子トランスフォーメーションの設定
分類子トランスフォーメーションは、単一の入力ポートと出力ポートを使用します。トラ
ンスフォーメーション入力ポートは、データソースのテキストフィールドを読み取りま
す。出力ポートには、テキストフィールド内のツイッターメッセージに特定された言語が
含まれます。分類子トランスフォーメーションでは、ISO国コードを使用して言語を特定し
ています。
次の表に、分類子トランスフォーメーションの設定を示します。
ポート名
ポートタイプ
精度
ストラテジ
text_input
入力
200
分類子1
Classifier_Out
put
出力
2
分類子1
Routerトランスフォーメーションの設定
Routerトランスフォーメーションでは2つの入力ポートを使用します。データソースからは
ツイッターメッセージを読み込み、分類子トランスフォーメーションからはISO国コードを
分類子分析の例
93
読み取ります。Routerトランスフォーメーションでは、入力ポートのデータを、指定した
条件に基づいて異なる出力ポートにルーティングします。
次の図に、Routerトランスフォーメーションのポートグループとポートの接続を示しま
す。
次の表に、Routerトランスフォーメーションの設定を示します。
ポート名
ポートタイプ
ポートグループ
精度
Classifier_Out
put
入力
入力
2
text
入力
入力
200
Classifier_Out
put
入力
デフォルト
2
text
入力
デフォルト
200
Classifier_Out
put
入力
En_Group
2
text
入力
En_Group
200
英語のメッセージおよび英語以外のメッセージのデータストリームを作成するためのトラ
ンスフォーメーションを設定します。データストリームを作成するには、トランスフォー
メーションに出力ポートを追加します。トランスフォーメーションの[グループ]オプシ
ョンを使用してポートグループを追加します。
トランスフォーメーションがデータを各データストリームにルーティングする方法を決め
るには、ポートグループに対する条件を定義します。この条件でポートを特定し、そのポ
ートで可能な値を指定します。トランスフォーメーションが条件に一致する入力ポート値
を検出すると、入力データを条件を適用するポートグループにルーティングします。
94
第 7章: 分類子トランスフォーメーション
En_Groupに対して次の条件を定義します。
ClassifierOutput='en'
注: Routerトランスフォーメーションでは、マッピング内の2つのオブジェクトからデータ
を読み込みます。このトランスフォーメーションでは、データオブジェクトで定義した行
の順番が変わらないため、各出力グループ内のデータを結合することができます。
データターゲットの設定
このマッピングには、英語によるツイッターメッセージ用のデータターゲットが1つと、英
語以外の言語のメッセージ用のターゲットが1つ含まれています。ポートをRouterトランス
フォーメーションの出力グループからデータターゲットに接続します。
次の表に、データターゲットの設定を示します。
ポート名
ポートタイプ
精度
テキスト
なし
200
Classifier_Output
なし
2
分類子マッピングの結果
このマッピングを実行すると、分類子トランスフォーメーションでツイッターメッセージ
の言語が特定されます。Routerトランスフォーメーションでは、言語の分類に基づいてメ
ッセージのテキストを各データターゲットに書き込みます。
次に示すデータの抜粋は、英語のターゲットデータのサンプルです。
ISO Country CodeTwitter Message
en
RT @Clarified: How to Downgrade Your iPhone 4 From iOS 6.x to iOS 5.x
(Mac)...
en
RT @jerseyjazz: The razor was the iPhone of the early 2000s
en
RT @KrissiDevine: Apple Pie that I made for Thanksgiving. http://
t.com/s9ImzFxO
en
RT @payyton3: I want apple cider
次に示すデータの抜粋は、英語以外の言語であると特定されたターゲットデータのサンプ
ルです。
ISO Country CodeTwitter Message
es
RT @GanaphoneS3: Faltan 10 minutos para la gran rifa de un iPhone
5...
分類子分析の例
95
ISO Country CodeTwitter Message
96
id
RT @sophieHz: Dan yang punya 2 kupon undian. Masuk dalam kotak undian
yang berhadiah Samsung Champ.
pt
RT @IsabelFreitas: o galaxy tem isso isso isso e a bateria à melhor
que do iPhone
es
RT @PremiusIpad: Faltan 15 minutos para la gran rifa de un iPhone
5...
nl
RT @wiesteronder: Retweet als je iets van Apple, Nike, Adidas of
microsoft hebt! http://t.co/Je6Ts00H
第 7章: 分類子トランスフォーメーション
第 8 章
比較トランスフォーメーショ
ン
この章では、以下の項目について説明します。
¨ 比較トランスフォーメーションの概要, 97 ページ
¨ フィールド一致ストラテジ, 98 ページ
¨ IDマッチングストラテジ, 100 ページ
¨ 比較ストラテジの設定, 101 ページ
¨ 比較トランスフォーメーションの詳細プロパティ, 101 ページ
比較トランスフォーメーションの概要
比較トランスフォーメーションは、入力文字列のペア間の類似度を評価し、各ペアの類似
度を数値スコアとして計算するパッシブなトランスフォーメーションです。
トランスフォーメーションを設定するときは、入力カラムのペアを選択し、それらに一致
ストラテジを割り当てます。
比較トランスフォーメーションでは、一致スコアを0~1の範囲で出力します。1が完全一致
を表します。
注: 比較トランスフォーメーションで使用できるストラテジは、一致トランスフォーメー
ションでも使用できます。 一致マプレットに追加する一致比較処理を定義する場合は、比
較トランスフォーメーションを使用します。 マプレットに複数の比較トランスフォーメー
ションを追加することができます。 1つのトランスフォーメーション内で一致比較を定義
する場合は、一致トランスフォーメーションを使用します。 一致トランスフォーメーショ
ンに一致マプレットを組み込むことができます。
97
フィールド一致ストラテジ
比較トランスフォーメーションには、入力データフィールドのペアを比較する定義済みの
フィールド一致ストラテジが用意されています。
バイグラム
バイグラムアルゴリズムは、郵便アドレスが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になりま
す。
98
第 8章: 比較トランスフォーメーション
エディット距離
エディット距離アルゴリズムは、単語や短いテキスト文字列(名前など)を比較する場合
に使用します。
エディット距離アルゴリズムでは、文字列を別の文字列に変換するために文字の挿入、削
除、または置き換えが必要な最小限の「コスト」を計算します。
エディット距離の例
次の文字列について考えてみます。
¨ Levenston
¨ Levenshtein
強調表示された文字は、文字列をもう一方の文字列に変換するために処理が必要な部分を
示しています。
エディット距離アルゴリズムでは、変更されない文字の数(8)を長い方の文字列の文字数
(11)で割ります。 この例では、文字列の類似度は72.7%で、一致スコアは0.727になりま
す。
Jaro距離
2つの文字列を比較するときに文字列内の最初の文字の類似度を優先する場合は、Jaro距離
アルゴリズムを使用します。
Jaro距離の一致スコアには、両方の文字列の最初の4文字の一致度、および識別された文字
の転置の数が反映されます。 最初の4文字の一致の重要度に、[ペナルティ]プロパティ
に入力した値を使用して重みが設定されます。
Jaro距離のプロパティ
Jaro距離アルゴリズムを設定する場合は、次のプロパティが設定できます。
ペナルティ
比較する2つの文字列内の最初の4文字が同一でない場合の一致スコアのペナルティを
指定します。 最初の文字が一致しない場合は、ペナルティの値がそのまま減算されま
す。 それ以外の文字が異なる場合は、その位置に基づいてペナルティの端数が減算さ
れます。 デフォルトのペナルティ値は0.20です。
大文字小文字の区別
Jaro距離アルゴリズムで照合を行うときに大文字と小文字を区別するかどうかを指定
します。
Jaro距離の例
次の文字列について考えてみます。
¨ 391859
¨ 813995
[ペナルティ]を0.20(デフォルト値)にしてこれらの文字列を分析した場合、Jaro距離
アルゴリズムで返される一致スコアは0.513になります。文字列の類似度は51.3%となりま
す。
フィールド一致ストラテジ
99
ハミング距離の反転
ハミング距離反転アルゴリズムは、2つの文字列間で文字が異なる位置の割合を、文字列を
右から左に読み取りながら計算する場合に使用します。
ハミング距離アルゴリズムでは、2つのデータ文字列の一致スコアを、データ文字列間で文
字が異なる位置の数に基づいて計算します。 長さが異なる文字列の場合、長い方の文字列
にしかない各文字は文字列間の相違としてカウントされます。
ハミング距離の反転の例
次の文字列について考えてみましょう。この文字列は、ハミング反転アルゴリズムについ
て説明するために右から左に文字を配置しています。
¨ 1-999-9999
¨ 011-01-999-9991
強調表示された文字は、ハミング距離反転アルゴリズムで相違と見なされる位置を示して
います。
ハミングの反転の一致スコアを計算するには、一致する文字の数(9)を長い方の文字列の
文字数(15)で割ります。 この例では、一致スコアは0.6になり、文字列の類似度は60%と
なります。
IDマッチングストラテジ
比較トランスフォーメーションには、個人、住所、または法人の一致を見つけるために使
用できる定義済みのID一致ストラテジが用意されています。
次の表に、それぞれのIDマッチングストラテジで実行される一致操作を示します。
100
ID一致ストラテジ
一致操作
住所
住所の一致を特定します。
担当者
単一の場所にいる組織内の担当者を特定します。
法人
組織を正式な社名で特定します。
除算
ある住所を所在地とする組織を特定します。
家族
家族を姓と住所または電話番号で特定します。
フィールド
選択するカスタムフィールドを特定します。
世帯
同じ住所の同じ家族のメンバーを特定します。
個人
個人を名前とIDまたは誕生日で特定します。
組織
組織を名前で特定します。
第 8章: 比較トランスフォーメーション
ID一致ストラテジ
一致操作
個人名
個人を名前で特定します。
住居
ある住所にいる個人を特定します。
担当者(広域)
所在地に関係なく、組織内の担当者を特定します。
世帯(広域)
住所に関係なく、同じ家族のメンバーを特定します。
注: ID一致ストラテジでは、ポピュレーションと呼ばれる参照データファイルを読み取り
ます。 システムにインストールされているポピュレーションデータファイルについては、
Informatica Administratorユーザーに問い合わせてください。
比較ストラテジの設定
比較ストラテジを設定するには、比較トランスフォーメーションの[ストラテジ]ビュー
で設定を編集します。
1.
[ストラテジ]ビューを選択します。
2.
[ストラテジ]セクションから比較ストラテジを選択します。
3.
[フィールド]セクションで、[使用可能なフィールド]カラムのセルをダブルクリ
ックして入力を選択します。
注: [入力フィールド]カラムで入力名が太字で示されている各行について、入力を
選択する必要があります。
比較トランスフォーメーションの詳細プロパ
ティ
Data Integration Serviceで比較トランスフォーメーションのデータがどのように処理さ
れるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
比較ストラテジの設定
101
第 9 章
統合トランスフォーメーショ
ン
この章では、以下の項目について説明します。
¨ 統合トランスフォーメーションの概要, 102 ページ
¨ 統合マッピング, 103 ページ
¨ Consolidationトランスフォーメーションのポート, 103 ページ
¨ 統合トランスフォーメーションのビュー, 104 ページ
¨ 単純ストラテジ, 106 ページ
¨ 行ベースストラテジ, 107 ページ
¨ 詳細ストラテジ, 108 ページ
¨ 単純な統合関数, 109 ページ
¨ 行ベースの統合関数, 114 ページ
¨ 統合マッピングの例, 117 ページ
¨ 統合トランスフォーメーションの設定, 119 ページ
統合トランスフォーメーションの概要
統合トランスフォーメーションは、関連するレコードのグループを分析し、各グループに
対して統合されたレコードを作成する、アクティブなトランスフォーメーションです。統
合トランスフォーメーションを使用して、キージェネレータ、一致、および関連付けなど
のトランスフォーメーションによって生成されたレコードグループを統合します。
統合トランスフォーメーションは、関連するレコードのグループにストラテジを適用する
ことによって、統合されたレコードを生成します。トランスフォーメーションには、どの
レコードが統合されたレコードであるかを示す出力ポートが含まれています。統合された
レコードのみが含まれるようにトランスフォーメーション出力を制限することも選択でき
ます。
例えば、一致トランスフォーメーションによって生成された従業員の重複レコードのグル
ープを統合できます。統合トランスフォーメーションは、グループ内のすべてのレコード
からマージされたデータが含まれる、統合されたレコードを作成できます。
102
統合トランスフォーメーションを設定すると、ユーザーの統合の要件に基づいてさまざま
なタイプのストラテジを使用することができます。複数のレコードから統合されたレコー
ドを作成するには、単純ストラテジを使用します。単純ストラテジを使用するときは、ポ
ートごとにストラテジを指定します。レコードグループ内の行を分析し、いずれかの行か
らの値を持つ統合されたレコードを作成するには、行ベースストラテジを使用します。作
成した式を適用することによって統合されたレコードを作成するには、詳細ストラテジを
使用します。
統合マッピング
レコードを統合するには、関連するレコードのグループを作成するマッピングを作成しま
す。統合トランスフォーメーションを追加し、レコードグループをそれぞれ1つのマスター
レコードに統合するようにトランスフォーメーションを設定します。
統合マッピングを作成するときは、ユーザーの要件のタイプおよび複雑性に応じてトラン
スフォーメーションを選択します。例えば、キージェネレータトランスフォーメーション
を使用してレコードをグループ化する場合は、統合トランスフォーメーションをキージェ
ネレータトランスフォーメーションに直接接続できます。統合トランスフォーメーション
は、キージェネレータトランスフォーメーションによって作成された各グループに対して
統合されたレコードを作成します。
一致したレコードを統合する場合は、統合トランスフォーメーションを一致トランスフォ
ーメーションに接続できます。例外レコード管理の一環としてレコードを統合する必要が
ある場合は、統合トランスフォーメーションを例外トランスフォーメーションに接続しま
す。
Consolidationトランスフォーメーションの
ポート
Developerツールは、追加する入力ポートごとに出力ポートを作成します。トランスフォー
メーションに手動で出力ポートを追加することはできません。統合トランスフォーメーシ
ョンには、統合されたレコードを示すIsSurvivor出力ポートも含まれています。
統合トランスフォーメーションに追加する入力ポートのいずれかにはグループキーが含ま
れている必要があります。統合トランスフォーメーションはデータセット全体ではなくレ
コードグループを処理するため、グループキーの情報を必要とします。
入力ポートを追加するとき、Developerツールは、入力ポート名にサフィックス「1」を追
加することによって出力ポート名を作成します。トランスフォーメーションには、レコー
ドが統合されたレコードであるかどうかを示すIsSurvivor出力ポートも含まれています。
統合されたレコードの場合、統合トランスフォーメーションは、IsSurvivorポートに文字
列「Y」を書き込みます。入力レコードの場合、統合トランスフォーメーションは、
IsSurvivorポートに文字列「N」を書き込みます。
統合マッピング
103
統合トランスフォーメーションのビュー
統合トランスフォーメーションには、ポート、ストラテジ、および詳細の各プロパティに
関するビューが含まれています。
統合トランスフォーメーションの[ストラテジ]ビュ
ー
[ストラテジ]ビューには、単純ストラテジ、行ベースストラテジ、および詳細ストラテ
ジのプロパティが含まれます。
以下のリストでは、統合ストラテジのタイプについて説明します。
単純ストラテジ
単純ストラテジは、レコードグループ内のポートのすべての値を分析し、1つの値を選
択します。単純ストラテジはポートごとに指定します。統合トランスフォーメーショ
ンは、すべての単純ストラテジによって選択されたポートの値を使用して、統合され
たレコードを作成します。単純ストラテジの例には、ポート内の最頻値、ポート内の
最長の値、ポート内の空白以外の最頻値などがあります。
行ベースストラテジ
行ベースストラテジは、レコードグループ内の行を分析し、1つの行を選択します。統
合トランスフォーメーションはその行のポート値を使用して、統合されたレコードを
作成します。行ベースストラテジの例には、最大の文字数、空白フィールドの最小
数、最も頻度の高いフィールドの最大数などがあります。
詳細ストラテジ
詳細ストラテジは、ユーザー定義のストラテジを使用してレコードグループを分析し
ます。詳細ストラテジは、式に統合関数を使用することによって作成します。統合ト
ランスフォーメーションは、式の出力に基づいて統合されたレコードを作成します。
また、作成する式には、ディシジョントランスフォーメーションで使用可能なすべて
の関数を使用することができます。
統合トランスフォーメーションの詳細プロパティ
統合トランスフォーメーションには、ソート、出力、キャッシュ設定、およびトレースレ
ベルについての詳細プロパティが含まれています。
以下のリストでは、統合の詳細プロパティについて説明します。
ソート
[ストラテジ]ビューで設定するGroup Byポートに従って入力行をソートします。
入力行がソートされていない場合はこのオプションを選択します。デフォルトでは有
効になっています。
大文字小文字を区別したソート
入力行のソート時に大文字と小文字を区別した順序付けを採用します。デフォルトで
は有効になっています。
104
第 9章: 統合トランスフォーメーション
出力モード
トランスフォーメーション出力にすべてのレコードを含めるか、または統合されたレ
コードのみを含めるかを指定します。デフォルトは[すべて]です。
キャッシュファイルディレクトリ
Data Integration Serviceは、キャッシュファイルディレクトリを使用してデータの
ソート中に一時ファイルを作成しますData Integration Serviceはデータをソートし
た後で、一時ファイルを削除します。 Data Integration Serviceマシン上の任意のデ
ィレクトリをキャッシュファイルディレクトリとして使用するように指定できます。
以下のディレクトリはデフォルト値で、ピリオドで表されます。
<Informatica Servicesのインストールディレクトリ>\tomcat\bin
キャッシュファイルサイズ
統合トランスフォーメーションがソート操作を実行する際に必要なメモリの最大量を
決定します。Data Integration Serviceは、ソート操作を実行する前に、入力される
データをすべて統合トランスフォーメーションに渡します。デフォルトは400,000バイ
トです。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
キャッシュファイルサイズ
キャッシュファイルサイズのプロパティは、統合トランスフォーメーションがソート操作
を実行する際に必要なメモリの最大量を決定します。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]
統合トランスフォーメーションのビュー
105
以下の表に、キャッシュファイルデータ計算用のカラムサイズ値をデータ型ごとに示しま
す。
データ型
カラムサイズ
Binary
精度 +8
最も近似の8の倍数に丸める
Date/Time
29
Decimal、高精度オフ(全精度)
16
Decimal、高精度(精度<=18)
24
Decimal、高精度(精度>18、<=28)
32
Decimal、高精度(精度>28)
16
Decimal、高精度(負の位取り)
16
Double
16
Real
16
Integer
16
String、Text
Unicodeモード: 2*(精度+5)
ASCIIモード: 精度 +9
単純ストラテジ
単純ストラテジは、レコードグループ内のポートを分析し、1つの値を返します。単純スト
ラテジはポートごとに指定します。統合トランスフォーメーションは、すべての単純スト
ラテジによって選択されたポートの値を使用して、統合されたレコードを作成します。
トランスフォーメーションの[ストラテジ]ビューでストラテジを設定すると、統合方式
として次のテキストがストラテジに表示されます。
デフォルトを使用。
デフォルトのストラテジは「最大の行ID」です。
単純ストラテジは、以下のいずれかを選択できます。
平均
レコードグループのポートを分析し、すべての値の平均を返します。
String型およびDate/time型のデータの場合、ストラテジは最も頻繁に出現する値を
返します。
106
第 9章: 統合トランスフォーメーション
最長
レコードグループのポートを分析し、文字数が最も多い値を返します。最も多い文字
数が2つ以上の値により共有されている場合、ストラテジは要件を満たす最初の値を返
します。
最大
レコードグループのポートを分析し、最大値を返します。
Stringデータ型の場合、ストラテジは最長の文字列を返します。Date/timeデータ型
の場合、ストラテジは最新の日付を返します。
最小
レコードグループのポートを分析し、最小値を返します。
Stringデータ型の場合、ストラテジは最短の文字列を返します。Date/timeデータ型
の場合、ストラテジは最も古い日付を返します。
最も頻繁
レコードグループのポートを分析し、空白またはNULL値を含む、最も頻繁に出現する
値を返します。出現の最大数を2つ以上の値が共有している場合、ストラテジは要件を
満たす最初の値を返します。
空白以外の最も頻繁
レコードグループのポートを分析し、空白またはNULL値以外の最も頻繁に出現する値
を返します。空白以外の出現の最大数を2つ以上の値が共有している場合、ストラテジ
は要件を満たす最初の値を返します。
最短
レコードグループのポートを分析し、文字数が最も少ない値を返します。最も少ない
文字数が2つ以上の値により共有されている場合、ストラテジは要件を満たす最初の値
を返します。
最大の行ID
レコードグループのポートを分析し、行IDが最も高い値を返します。
行ベースストラテジ
行ベースストラテジは、レコードグループ内の行を分析し、1つの行を選択します。統合ト
ランスフォーメーションはその行のポート値を使用して、統合されたレコードを作成しま
す。デフォルトのストラテジは、「Most Data」です。
以下のいずれかの行ベースストラテジを選択します。
Most Data
文字数が最も多い行を選択します。最も多い文字数が2つ以上の行により共有されてい
る場合、ストラテジは要件を満たす最後の値を返します。
行ベースストラテジ
107
Most Filled
空白以外のカラム数が最大の行を選択します。空白以外のカラムの最大数が2つ以上の
行により共有されている場合、ストラテジは要件を満たす最後の値を返します。
Modal Exact
最も頻度の高い空白以外の値の数が最大の行を選択します。例えば、レコードグルー
プ内に最も頻度の高い値を含む3つのポートを持つ行があるとします。この行の最も頻
度の高い値の数は「3」です。
最も頻度の高い空白以外の値の最大数が2つ以上の行により共有されている場合、スト
ラテジは要件を満たす最後の値を返します。
行ベースストラテジの例
以下の表に、レコードグループの例を示します。最後のカラムでは、特定の行ベーススト
ラテジがこのレコードグループで異なる行を選択する理由を説明しています。
製品ID名
姓
郵便番 ストラテジの選択
号
2106 Bartholomew
28516 Most Dataストラテジは、他の行よりも多くの文字が含まれ
ているため、この行を選択します。
2236 Bart
Smith28579 Most Filledストラテジは、他の行よりも多くの空白以外の
カラムが含まれているため、この行を選択します。
2236 <空白>
Smith28516 Modal Exactストラテジは、最も頻度の高い値の数が最大で
あるため、この行を選択します。
詳細ストラテジ
詳細ストラテジを使用すると、定義済み関数から統合ストラテジを作成できます。統合関
数とInformaticaのその他の関数を使用できます。
単純な統合関数または行ベースの統合関数を含む式を作成できます。レコードグループ内
のポートの値に基づいて統合されたレコードを作成するには、単純な統合関数を使用しま
す。レコードグループから行を選択するには、行ベースの統合関数を使用します。
統合の式には、統合トランスフォーメーションのすべての出力ポートを組み込む必要があ
ります。統合の式がすべての出力ポートを使用しない場合、トランスフォーメーションが
原因でマッピングが失敗します。
単純ストラテジまたは行ベースストラテジは、詳細ストラテジのテンプレートとして使用
できます。単純ストラテジまたは行ベースストラテジを設定し、[詳細]を選択します。
統合トランスフォーメーションは、ストラテジを実行する関数が含まれる式を生成しま
す。さらに関数を追加すると、追加の要件を実装することができます。
108
第 9章: 統合トランスフォーメーション
単純な統合関数
単純な統合関数は、レコードグループのすべてのポート値から値を選択します。単純な統
合関数の使用時は、ポートおよびGroup Byポートを使用して関数を指定します。
CONSOL_AVG
レコードグループのポートを分析し、すべての値の平均を返します。
構文
CONSOL_AVG(string, group by)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
string
必須
入力ポート名。
Group By
必須
グループ識別子を含む
入力ポートの名前。
戻り値
ポートのすべての値の平均。
StringおよびDate/timeデータ型の場合、関数は最も頻繁に出現する値を返します。
例
以下の式は、CONSOL_AVG関数を使用してSalesTotal入力ポートの平均値を検索します。
SalesTotal1:= CONSOL_AVG(SalesTotal, GroupKey)
この式で、CONSOL_AVG関数はGroupKeyポートを使用してレコードグループを識別します。こ
のレコードグループ内で、関数はSalesTotalポートを分析し、平均値を返します。式は平
均値をSalesTotal1出力ポートに書き込みます。
CONSOL_LONGEST
レコードグループのポートを分析し、文字数が最も多い値を返します。
構文
CONSOL_LONGEST(string, group by)
単純な統合関数
109
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
string
必須
入力ポート名。
Group By
必須
グループ識別子を含む
入力ポートの名前。
戻り値
文字数が最も多いポート値。
最も多い文字数が2つ以上の値により共有されている場合、ストラテジは要件を満たす最初
の値を返します。
例
以下の式は、CONSOL_LONGEST関数を使用してFirstName入力ポートを分析し、文字数が最も多
い値を検索します。
FirstName1:= CONSOL_LONGEST(FirstName, GroupKey)
この式で、CONSOL_LONGEST関数はGroupKeyポートを使用してレコードグループを識別しま
す。このレコードグループ内で、関数はFirstNameポートを分析し、最長値を返します。式
はこの値をFirstName1出力ポートに書き込みます。
CONSOL_MAX
レコードグループのポートを分析し、最大値を返します。
構文
CONSOL_MAX(string, group by)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
string
必須
入力ポート名。
Group By
必須
グループ識別子を含む
入力ポートの名前。
戻り値
最大ポート値。
Stringデータ型の場合、関数は最長の文字列を返します。Date/timeデータ型の場合、関数
は最新の日付を返します。
110
第 9章: 統合トランスフォーメーション
例
以下の式は、CONSOL_MAX関数を使用してSalesTotal入力ポートを分析し、最大値を検索しま
す。
SalesTotal1:= CONSOL_MAX(SalesTotal, GroupKey)
この式で、CONSOL_MAX関数はGroupKeyポートを使用してレコードグループを識別します。こ
のレコードグループ内で、関数はSalesTotalポートを分析し、最大値を返します。式はこ
の値をSalesTotal1出力ポートに書き込みます。
CONSOL_MIN
レコードグループのポートを分析し、最小値を返します。
構文
CONSOL_MIN(string, group by)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
string
必須
入力ポート名。
Group By
必須
グループ識別子を含む
入力ポートの名前。
戻り値
最小ポート値。
Stringデータ型の場合、関数は最短の文字列を返します。Date/timeデータ型の場合、関数
は最も古い日付を返します。
例
以下の式は、CONSOL_MIN関数を使用してSalesTotal入力ポートを分析し、最小値を検索しま
す。
SalesTotal1:= CONSOL_MIN(SalesTotal, GroupKey)
この式で、CONSOL_MIN関数はGroupKeyポートを使用してレコードグループを識別します。こ
のレコードグループ内で、関数はSalesTotalポートを分析し、最小値を返します。式はこ
の値をSalesTotal1出力ポートに書き込みます。
CONSOL_MOSTFREQ
レコードグループのポートを分析し、空白またはNULL値を含む、最も頻繁に出現する値を
返します。
構文
CONSOL_MOSTFREQ(string, group by)
単純な統合関数
111
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
string
必須
入力ポート名。
Group By
必須
グループ識別子を含む
入力ポートの名前。
戻り値
空白またはNULL値を含む最も頻繁に出現する値。
出現の最大数が2つ以上の値により共有されている場合、ストラテジは要件を満たす最初の
値を返します。
例
以下の式は、CONSOL_MOSTFREQ関数を使用してCompany入力ポートを分析し、最も頻繁に出現
する値を検索します。
Company1:= CONSOL_MOSTFREQ(Company, GroupKey)
この式で、CONSOL_MOSTFREQ関数はGroupKeyポートを使用してレコードグループを識別しま
す。このレコードグループ内で、関数はCompanyポートを分析し、最も頻繁に出現する値を
返します。式はこの値をCompany1出力ポートに書き込みます。
CONSOL_MOSTFREQ_NB
レコードグループのポートを分析し、空白またはNULL値以外の最も頻繁に出現する値を返
します。
構文
CONSOL_MOSTFREQ_NB(string, group by)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
string
必須
入力ポート名。
Group By
必須
グループ識別子を含む
入力ポートの名前。
戻り値
空白またはNULL値以外の最も頻繁に出現する値。
出現の最大数が2つ以上の値により共有されている場合、ストラテジは要件を満たす最初の
値を返します。
112
第 9章: 統合トランスフォーメーション
例
以下の式は、CONSOL_MOSTFREQ_NB関数を使用してCompany入力ポートを分析し、最も頻繁に出
現する値を検索します。
Company1:= CONSOL_MOSTFREQ_NB(Company, GroupKey)
この式で、CONSOL_MOSTFREQ_NB関数はGroupKeyポートを使用してレコードグループを識別し
ます。このレコードグループ内で、関数はCompanyポートを分析し、最も頻繁に出現する値
を返します。式はこの値をCompany1出力ポートに書き込みます。
CONSOL_SHORTEST
レコードグループのポートを分析し、文字数が最も少ない値を返します。
構文
CONSOL_SHORTEST(string, group by)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
string
必須
入力ポート名。
Group By
必須
グループ識別子を含む
入力ポートの名前。
戻り値
文字数が最も少ないポート値。
最も少ない文字数が2つ以上の値により共有されている場合、ストラテジは要件を満たす最
初の値を返します。
例
以下の式は、CONSOL_SHORTEST関数を使用してFirstName入力ポートを分析し、文字数が最も
少ない値を検索します。
FirstName1:= CONSOL_SHORTEST(FirstName, GroupKey)
この式で、CONSOL_SHORTEST関数はGroupKeyポートを使用してレコードグループを識別しま
す。このレコードグループ内で、関数はFirstNameポートを分析し、最短値を返します。式
はこの値をFirstName1出力ポートに書き込みます。
単純な統合関数
113
行ベースの統合関数
行ベースの統合関数を使用して、レコードグループのレコードを選択します。行ベースの
統合関数は、IF-THEN-ELSE文内で使用する必要があります。
CONSOL_GETROWFIELD
行ベースの統合関数によって識別された行を読み取り、指定したポートの値を返します。
ポートを指定するには、数値の引数を使用します。
CONSOL_GETROWFIELD関数は以下のいずれかの行ベースの統合関数と組み合わせて使用する必要
があります。
¨ CONSOL_MODALEXACT
¨ CONSOL_MOSTDATA
¨ CONSOL_MOSTFILLED
行ベースの統合関数の各入力ポートに、CONSOL_GETROWFIELD関数のインスタンスを1つ使用す
る必要があります。
構文
CONSOL_GETROWFIELD(value)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
value
必須
行ベースの統合関数の
入力ポートを示す数
字。関数の一番左のポ
ートを指定するには、
「0」を使用します。
他のポートを示すに
は、後続の数字を使用
します。
戻り値
指定したポートの値。関数は行ベースの統合関数によって識別された行からこの値を読み
取ります。
例
以下の式は、CONSOL_GETROWFIELD関数をCONSOL_MOSTDATA関数と組み合わせて使用しています。
IF (CONSOL_MOSTDATA(First_Name,Last_Name,GroupKey,GroupKey))
THEN
First_Name1 := CONSOL_GETROWFIELD(0)
Last_Name1 := CONSOL_GETROWFIELD(1)
GroupKey1 := CONSOL_GETROWFIELD(2)
ELSE
First_Name1 := First_Name
Last_Name1 := Last_Name
GroupKey1 := GroupKey
ENDIF
114
第 9章: 統合トランスフォーメーション
この式で、CONSOL_MOSTDATA関数はレコードグループの行を分析し、単一行を識別します。
CONSOL_GETROWFIELD関数は連続した数字を使用して、その行のポート値を読み取り、その値を
出力ポートに書き込みます。
CONSOL_MODALEXACT
最も頻度の高い値の数が最大の行を識別します。
例えば、レコードグループ内に最も頻度の高い値を含む3つのポートを持つ行があるとしま
す。この行の最も頻度の高い値の数は「3」です。
この関数はCONSOL_GETROWFIELD関数を組み合わせて使用する必要があります。
CONSOL_GETROWFIELDは、CONSOL_MODALEXACT関数が識別した行からの値を返します。
構文
CONSOL_MODALEXACT(string1, [string2, ..., stringN,]
group by)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
string
必須
入力ポート名。
Group By
必須
グループ識別子を含む
入力ポートの名前。
戻り値
行が、最も頻度の高いフィールドの最大数を獲得する場合はTRUE、他のすべての行の場合
はFALSE。
例
以下の式は、CONSOL_MODALEXACT関数を使用して、最も頻度の高いフィールドの数が最大の行
を検索します。
IF (CONSOL_MODALEXACT(First_Name,Last_Name,GroupKey,GroupKey))
THEN
First_Name1 := CONSOL_GETROWFIELD(0)
Last_Name1 := CONSOL_GETROWFIELD(1)
GroupKey1 := CONSOL_GETROWFIELD(2)
ELSE
First_Name1 := First_Name
Last_Name1 := Last_Name
GroupKey1 := GroupKey
ENDIF
この式で、CONSOL_MODALEXACT関数はレコードグループの行を分析し、単一行を識別します。
CONSOL_GETROWFIELD関数は連続した数字を使用して、その行のポート値を読み取り、その値を
出力ポートに書き込みます。
行ベースの統合関数
115
CONSOL_MOSTDATA
すべてのポートで最多数の文字を含む行を識別します。
この関数はCONSOL_GETROWFIELD関数を組み合わせて使用する必要があります。
CONSOL_GETROWFIELDは、CONSOL_MOSTDATA関数が識別した行からの値を返します。
構文
CONSOL_MOSTDATA(string1, [string2, ..., stringN,]
group by)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
string
必須
入力ポート名。
Group By
必須
グループ識別子を含む
入力ポートの名前。
戻り値
すべてのポートで最も多い文字を含む行の場合はTRUE、他のすべての行の場合はFALSE。
例
以下の式は、CONSOL_MOSTDATA関数を使用して、最多数の文字を含む行を検索します。
IF (CONSOL_MOSTDATA(First_Name,Last_Name,GroupKey,GroupKey))
THEN
First_Name1 := CONSOL_GETROWFIELD(0)
Last_Name1 := CONSOL_GETROWFIELD(1)
GroupKey1 := CONSOL_GETROWFIELD(2)
ELSE
First_Name1 := First_Name
Last_Name1 := Last_Name
GroupKey1 := GroupKey
ENDIF
この式で、CONSOL_MOSTDATA関数はレコードグループの行を分析し、単一行を識別します。
CONSOL_GETROWFIELD関数は連続した数字を使用して、その行のポート値を読み取り、その値を
出力ポートに書き込みます。
CONSOL_MOSTFILLED
空白以外のフィールド数が最大の行を識別します。
この関数はCONSOL_GETROWFIELD関数を組み合わせて使用する必要があります。
CONSOL_GETROWFIELDは、CONSOL_MOSTFILLED関数が識別した行からの値を返します。
構文
CONSOL_MOSTFILLED(string1, [string2, ..., stringN,]
group by)
116
第 9章: 統合トランスフォーメーション
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
string
必須
入力ポート名。
Group By
必須
グループ識別子を含む
入力ポートの名前。
戻り値
空白以外のフィールド数が最大の行の場合はTRUE、他のすべての行の場合はFALSE。
例
以下の式は、CONSOL_MOSTFILLED関数を使用して、最多数の文字を含む行を検索します。
IF (CONSOL_MOSTFILLED(First_Name,Last_Name,GroupKey,GroupKey))
THEN
First_Name1 := CONSOL_GETROWFIELD(0)
Last_Name1 := CONSOL_GETROWFIELD(1)
GroupKey1 := CONSOL_GETROWFIELD(2)
ELSE
First_Name1 := First_Name
Last_Name1 := Last_Name
GroupKey1 := GroupKey
ENDIF
この式で、CONSOL_MOSTFILLED関数はレコードグループの行を分析し、単一行を識別します。
CONSOL_GETROWFIELD関数は連続した数字を使用して、その行のポート値を読み取り、その値を
出力ポートに書き込みます。
統合マッピングの例
あなたの会社では、重複する顧客レコードを統合することになりました。 顧客レコードを
統合するには、キージェネレータトランスフォーメーションでデータをグループ化し、統
合トランスフォーメーションを使用してレコードを統合します。
顧客レコードを含むデータソース、キージェネレータトランスフォーメーション、統合ト
ランスフォーメーション、およびデータターゲットのマッピングを作成します。このマッ
統合マッピングの例
117
ピングは、カスタマレコードをグループ化してそのグループを統合し、1つの統合されたレ
コードを書き込みます。
以下の図はマッピングを示しています。
入力
分析する入力データには、顧客情報が含まれています。
以下の表に、この例の入力データを示します。
名前
Dennis Jones
Dennis Jones
D Jones
住所
100 All Saints Ave
1000 Alberta Rd
100 All Saints Ave
市区町村
New York
New York
New York
都道府県
NY
NY
NY
郵便番号
10547
10547
10547-1521
SSN
987-65-4320
987-65-4320
キージェネレータトランスフォーメーション
キージェネレータトランスフォーメーションを使用し、 ZIP codeポートに基づいて入力デ
ータをグループ化します。
トランスフォーメーションは以下のデータを返します。
SequenceIdGroupKey名前
118
1
10547
2
3
10547
10547
住所
市区町村都道府 郵便番号 SSN
県
New YorkNY
10547
987-65-4320
Dennis Jones100 All Saints
Ave
Dennis Jones1000 Alberta Rd New YorkNY
D Jones
100 All Saints New YorkNY
Ave
第 9章: 統合トランスフォーメーション
10547
10547-1521987-65-4320
統合トランスフォーメーション
統合トランスフォーメーションを使用して、統合されたレコードを生成します。
行ベースストラテジタイプを使用するように統合トランスフォーメーションを設定しま
す。Modal Exactストラテジを選択し、最も頻度の高い値の数が最大の行を選択します。
Modal Exactストラテジは、その行からの値を使用して、統合されたレコードを生成しま
す。統合されたレコードは、IsSurvivorポートに「Y」の値が含まれているレコードです。
トランスフォーメーションは以下のデータを返します。
GroupKey名前
10547
10547
10547
10547
住所
市区町村都道府
県
Dennis Jones100 All Saints AveNew YorkNY
Dennis Jones1000 Alberta Rd New YorkNY
D Jones
100 All Saints AveNew YorkNY
D Jones
100 All Saints AveNew YorkNY
郵便番号 SSN
IsSurvivor
10547
987-65-4320N
10547
N
10547-1521987-65-4320N
10547-1521987-65-4320Y
統合マッピング出力
マッピング出力が統合されたレコードのみを含むように統合トランスフォーメーションを
設定します。
この例では、Modal Exactストラテジにより選択された最も頻度の高い値が正しいポート値
であることはほぼ信頼できます。統合されたレコードのみをマッピングターゲットに書き
込むには、[詳細]ビューを選択して出力モードを「存続のみ」に設定します。
マッピングの実行時に、マッピング出力には統合されたレコードのみが含まれます。
統合トランスフォーメーションの設定
統合トランスフォーメーションを設定する際は、 ストラテジタイプ、ストラテジまたは式
の記述、グループ化ポートを選択し、詳細オプションを設定します。
1.
[コンソリデーション]ビューを選択します。
2.
ストラテジタイプを選択します。
3.
ストラテジを設定します。
¨ 単純ストラテジタイプの場合は、ポートごとにストラテジを選択します。
¨ 行ベースストラテジタイプの場合は、ストラテジを選択します。
¨ 詳細ストラテジタイプの場合は、統合関数を使用する式を作成します。
4.
[グループ別]フィールドで、グループ識別子を含むポートを選択します。
5.
入力データがソートされていない場合、[詳細]ビューでソートを有効にします。
6.
統合されたレコードまたはすべてのレコードを含むように出力を設定します。
統合トランスフォーメーションの設定
119
第 10 章
データマスキングトランスフ
ォーメーション
この章では、以下の項目について説明します。
¨ データマスキングトランスフォーメーションの概要, 120 ページ
¨ マスキング方法, 121 ページ
¨ マスキングルール, 132 ページ
¨ 特殊マスク形式, 138 ページ
¨ デフォルト値ファイル, 143 ページ
¨ データマスキングトランスフォーメーションの設定, 144 ページ
¨ データマスキングトランスフォーメーションのセッションプロパティ, 146 ページ
¨ データマスキングの例, 147 ページ
¨ データマスキングトランスフォーメーションの詳細プロパティ, 150 ページ
データマスキングトランスフォーメーション
の概要
データマスキングトランスフォーメーションは、機密性が高い実稼働データを、非プロダ
クション環境向けの現実的なテストデータに変換します。データマスキングトランスフォ
ーメーションは、カラムごとに設定されたマスキング方法に基づいてソースデータを変更
します。
ソフトウェア開発、テスト、トレーニング、およびデータマイニング用にマスクされたデ
ータを作成します。 マスクされたデータ内のデータリレーションシップを保持し、データ
ベーステーブル間の参照整合性を保持することができます。
データマスキングトランスフォーメーションでは、カラムに設定したソースのデータ型お
よびマスキング方法に基づいてマスキングルールが提供されます。 文字列では、文字列内
の置換する文字を制限できます。マスクで適用する文字を制限できます。数と日付の場合
は、マスクされたデータの数の範囲を指定できます。 範囲は、元の数に対する固定偏差ま
たはパーセント偏差に基づいて設定できます。Data Integration Serviceでは、トランス
フォーメーションに設定したロケールに基づいて文字を置き換えます。
120
マスキング方法
マスキング方法は、選択したカラムに適用するデータマスキングのタイプです。
入力カラムに、以下のいずれかのマスキング方法を選択できます。
ランダム
同じソースデータとマスキングルールに対して再現可能でないランダムな結果を生成
します。マスクできるのは、日付、数値、および文字列データ型です。 ランダムマス
キングではseed値は不要です。ランダムマスキングの結果は、確定的ではありませ
ん。
式
式をソースカラムに適用して、データを作成またはマスクします。 すべてのデータ型
をマスクできます。
キー
ソースデータを再現可能な値に置き換えます。 データマスキングトランスフォーメー
ションによって、同じソースデータ、マスキングルール、およびseed値に対して確定
的な結果が生成されます。マスクできるのは、日付、数値、および文字列データ型で
す。
置換
データのカラムを、ディクショナリ内の似ているが関連のないデータに置き換えま
す。 マスクできるのは、文字列データ型です。
依存
あるソースカラムの値を別のソースカラムの値に基づいて置き換えます。 マスクでき
るのは、文字列データ型です。
特殊マスク形式
クレジットカード番号、電子メールアドレス、IPアドレス、電話番号、SSN、SIN、ま
たはURLに対応します。データマスキングトランスフォーメーションでは、これらの一
般的なセンシティブデータをインテリジェントにマスクするビルトインルールが適用
されます。
マスキングなし
データマスキングトランスフォーメーションでは、ソースデータは変更されません。
デフォルトは、[マスキングなし]です。
ランダムマスキング
ランダムマスキングでは、非決定性のマスクされたデータがランダムに生成されます。 デ
ータマスキングトランスフォーメーションでは、異なる行に同じソース値が出現する場合
に、異なる値が返されます。データマスキングトランスフォーメーションによって返され
るデータのフォーマットに影響を与えるマスキングルールを定義できます。ランダムマス
キングでは、数値、文字列値、および日付値がマスクされます。
マスキング方法
121
文字列値のマスキング
ランダムマスキングを設定すると、文字列カラムにランダムな出力が生成されます。出力
文字列に含まれる各文字の制限を設定するには、マスクフォーマットを定義します。ソー
ス文字列の文字と結果文字列の置き換え文字を設定するには、マスクするソース文字とマ
スクに使用する文字を定義します。
文字列ポートには、以下のマスキングルールを適用できます。
範囲
文字列長の上限と下限を設定します。データマスキングトランスフォーメーションで
は、文字列長の上限と下限の範囲内でランダムに構成された文字列が返されます。
マスク形式
置き換える文字の種類を入力データの文字ごとに定義します。各文字の種類を英文
字、数字、または英数字に制限できます。
ソース文字列の文字
ソース文字列内のマスク対象文字を定義します。例えば、入力データに出現する各シ
ャープ記号(#)をマスクできます。[ソース文字列の文字]が空白の場合は、すべて
の入力文字がマスクされます。
結果文字列の置換文字
対象文字列内の文字を、[結果文字列の文字]で定義された文字に置き換えます。例
えば、各マスクに英文字の大文字A?Zを含めるには、以下の文字を入力します。
ABCDEFGHIJKLMNOPQRSTUVWXYZ
数値のマスキング
数値データをマスクする場合は、カラムの出力データ範囲を設定できます。データマスキ
ングトランスフォーメーションでは、ポート精度に応じて、範囲の上限と下限の間の値が
返されます。範囲を定義するには、範囲の上限と下限を設定するか、元のソース値に対す
る偏差に基づくブラー範囲を設定します。
数値データには、以下のマスキングパラメータを設定できます。
範囲
出力値の範囲を定義します。データマスキングトランスフォーメーションでは、値の
上限と下限の間にある数値データが返されます。
ブラー範囲
ソースデータに対する固定偏差またはパーセント偏差に基づく範囲として、出力値の
範囲を定義します。データマスキングトランスフォーメーションでは、ソースデータ
の値に近い数値データが返されます。範囲とブラー範囲を両方設定することもできま
す。
日付値のマスキング
日付値をランダムマスキングでマスクするには、出力日の範囲を設定するか、偏差を選択
します。 偏差を設定する場合は、ブラー対象となる日付部分を選択します。選択できるの
122
第 10章: データマスキングトランスフォーメーション
は年、月、日、時、分、または秒です。データマスキングトランスフォーメーションは、
設定した範囲内の日付を返します。
日時の値をマスクする場合は、以下のマスキングルールを設定できます。
範囲
選択した日時の値に対して返す値の上限と下限を設定します。
ブラー
日付の単位に適用する偏差に基づいて日付をマスクします。データマスキングトラン
スフォーメーションでは、偏差の範囲内の日付が返されます。ブラーできるのは、
年、月、日、時、分、または秒です。 適用する低偏差と高偏差を選択します。
式マスキング
式マスキングは、データを変更または新しいデータを作成するための式をポートに適用し
ます。 式マスキングを設定するときは、式エディタで式を作成します。 式を構築するた
めの入力ポートおよび出力ポート、関数、変数、演算子を選択します。
複数のポートからのデータを連結して別のポートの値を作成できます。 例えば、ログイン
名を作成する必要があるとします。 ソースには名と姓のカラムがあります。 ルックアッ
プファイルから名と姓をマスクします。 データマスキングトランスフォーメーションで、
Loginという別のポートを作成します。 Loginポートで、名の最初の文字を姓と連結するた
めの式を設定します。
SUBSTR(FIRSTNM,1,1)||LASTNM
ポイントアンドクリックインタフェースを使用して関数、ポート、変数、および演算子を
選択することで、式を作成するときのエラーを減らすことができます。
式エディタには、式マスキングに対して設定されていない出力ポートが表示されます。 あ
る式からの出力を別の式に対する入力として使用することはできません。 出力ポート名を
手動で式に追加した場合、予期しない結果が発生することがあります。
式を作成するときは、その式が、ポートのデータタイプに一致する値を返すことを確認し
ます。 式ポートのデータタイプが数値であり、式のデータタイプが同じではない場合、デ
ータマスキングトランスフォーメーションではゼロが返されます。 式ポートのデータタイ
プが文字列であり、式のデータタイプが同じではない場合、データマスキングトランスフ
ォーメーションではNULL値が返されます。
再現可能な式マスキング
複数のテーブルでソースカラムが出現し、各テーブルのカラムを同じ値でマスクする必要
がある場合、再現可能な式マスキングを設定します。
再現可能な式マスキングを設定すると、データマスキングトランスフォーメーションによ
って式の結果が格納テーブルに保存されます。別のソーステーブルで同じカラムが出現し
た場合、データマスキングトランスフォーメーションは式からマスク値を返すのではな
く、格納テーブルからマスク値を返します。
ディクショナリ名
再現可能な式マスキングを設定する場合、ディクショナリ名を入力する必要があります。
ディクショナリ名は、複数のデータマスキングトランスフォーメーションで、同じソース
マスキング方法
123
値から同じマスク値を生成できるようにするキーです。 各データマスキングトランスフォ
ーメーションで同じディクショナリ名を定義します。ディクショナリ名には、任意のテキ
ストを指定できます。
格納テーブル
ストレージテーブルには、セッション間の再現可能な式マスキングの結果が含まれます。
格納テーブルの行には、ソース列およびマスクされた値ペアが含まれています。式マスキ
ング用の格納テーブルは、置換マスキング用の格納テーブルとは別のテーブルです。
データマスキングトランスフォーメーションでは、再現可能な式で値がマスクされるたび
に、ディクショナリ名、ロケール、列名、および入力値によって格納テーブルの検索が行
われます。 格納テーブル内に行が見つかると、格納テーブルからマスクされた値が返され
ます。 データマスキングトランスフォーメーションで行が見つからない場合、その列に対
して式からマスク値が生成されます。
ストレージ内のデータの暗号化を解除した後、同じディクショナリ名をキーとして使用す
る場合は、式マスキング用の格納テーブルを暗号化する必要があります。
式マスキング用の格納テーブルの暗号化
格納テーブルは、トランスフォーメーション言語エンコード機能を使用して暗号化できま
す。ストレージの暗号化を有効にした場合は、格納テーブルを暗号化する必要がありま
す。
1.
IDM_EXPRESSION_STORAGE格納テーブルをソースとして使用し、マッピングを作成しま
す。
2.
データマスキングトランスフォーメーションを作成します。
3.
マスクされた値ポートに式マスキング方法を適用します。
4.
MASKEDVALUEポートに対して次の式を使用します。
Enc_Base64(AES_Encrypt(MASKEDVALUE, Key))
5.
ポートをターゲットにリンクします。
例
例えば、従業員テーブルに以下のカラムが含まれているとします。
FirstName
LastName
LoginID
データマスキングトランスフォーメーションでは、FirstNameとLastNameを組み合わせた式
を使用してLoginIDがマスクされます。 式マスクを再現可能に設定します。再現可能なマ
スキングのキーとしてディクショナリ名を入力します。
Computer_UsersテーブルにはLoginIDが含まれていますが、FirstName列またはLastName列
は含まれていません。
Dept
LoginID
Password
Computer_Usersテーブル内のLoginIDを同じLoginIDで従業員としてマスクするには、
LoginIDカラム用の式マスキングを設定します。 再現可能なマスキングを有効にし、
124
第 10章: データマスキングトランスフォーメーション
LoginID従業員テーブルに対して定義した同じディクショナリ名を入力します。
Integration Serviceでは、格納テーブルからLoginID値が取得されます。
Integration ServiceでLoginIDの格納テーブル内の行が見つからない場合に使用するデフ
ォルトの式を作成します。Computer_UsersテーブルにはFirstNameカラムまたはLastName
カラムがないので、式によって生成されるLoginIDにはあまり意味がありません。
格納テーブルスクリプト
Informaticaは、格納テーブルを作成するために実行できるスクリプトを提供します。 ス
クリプトは以下の場所に格納されています。
<PowerCenter installation directory>\client\bin\Extensions\DataMasking
ディクショナリには、Sybase、Microsoft SQL Server、IBM DB2、およびOracleの各データ
ベース用のスクリプトが含まれています。 各スクリプトの名前は、<Expression_<データ
ベースタイプ>です。
式マスキングのルールとガイドライン
式マスキングには以下のルールおよびガイドラインを使用します。
¨ ある式からの出力を別の式に対する入力として使用することはできません。 出力ポー
ト名を手動で式に追加した場合、予期しない結果が発生することがあります。
¨ 式を作成する際は、ポイントアンドクリックを使用します。 ポイントアンドクリック
インタフェースを使用して関数、ポート、変数、および演算子を選択することで、式を
作成するときのエラーを減らすことができます。
¨ 再現可能なマスキング用にデータマスキングトランスフォーメーションが設定されてお
り、格納テーブルが存在しない場合、Integration Serviceはソースデータをデフォル
ト値で置換します。
キーマスキング
キーマスキングに対して設定されたカラムは、ソース値とシード値が同じ場合に、マスク
された確定的なデータを返します。 データマスキングトランスフォーメーションは、カラ
ムに対して一意の値を返します。
キーマスキングに対してカラムを設定すると、データマスキングトランスフォーメーショ
ンによって、そのカラムのシード値が生成されます。 異なるデータマスキングトランスフ
ォーメーションで再現可能なデータを生成するようにシード値を変更できます。 例えば、
キーマスキングを設定して、参照整合性を強制します。 あるテーブルのプライマリキーと
別のテーブルの外部キーをマスクするには、同じseed値を使用します。
データマスキングトランスフォーメーションによって返されるデータのフォーマットに影
響を与えるマスキングルールを定義できます。文字列値と数値のマスクには、キーマスキ
ングを使用します。
文字列値のマスキング
文字列の再現可能な出力を生成するために、キーマスキングを設定できます。マスク形式
を設定して、出力文字列に含まれる各文字に対する制限を定義します。マスクするソース
マスキング方法
125
文字を定義するソース文字列の文字を設定します。結果文字列の置換文字を設定して、マ
スクされたデータを特定の文字に制限します。
キーマスキング文字列には、以下のマスキングルールを設定できます。
シード
シード値を適用し、列に対して確定的なマスクされた値を生成します。1から1,000ま
での数値を入力できます。
マスク形式
置き換える文字の種類を入力データの文字ごとに定義します。各文字の種類を英文
字、数字、または英数字に制限できます。
ソース文字列の文字
ソース文字列内のマスク対象文字を定義します。例えば、入力データに出現する各シ
ャープ記号(#)をマスクできます。[ソース文字列の文字]が空白の場合は、すべて
の入力文字がマスクされます。データマスキングトランスフォーメーションは、ソー
ス文字列の文字数が結果文字列の文字数より少ない場合、一意のデータが返されない
ことがあります。
結果文字列の文字
対象文字列内の文字を、[結果文字列の文字]で定義された文字に置き換えます。例
えば、各マスクに英文字の大文字をすべて含めるには、以下の文字を入力します。
ABCDEFGHIJKLMNOPQRSTUVWXYZ
数値のマスキング
決定性出力が生成されるようにするには、数値ソースデータにキーマスキングを設定しま
す。カラムに対して数値キーマスキングを設定する場合、カラムにランダムなシード値を
割り当てます。データマスキングトランスフォーメーションによってソースデータがマス
クされる場合、seedを必要とするマスキングアルゴリズムが適用されます。
同じソース値が別のカラムに出現した場合に再現可能な結果が生成されるようにするに
は、カラムのseed値を変更します。たとえば、2つのテーブル間でプライマリキーと外部キ
ーのリレーションが維持されるようにするとします。この場合、各データマスキングトラ
ンスフォーメーションで、プライマリキーカラムのseed値と外部キーカラムのseed値とし
て同じseed値を入力します。データマスキングトランスフォーメーションによって、同じ
数値に対して確定的な結果が生成されます。これにより、この2つのテーブル間で参照整合
性が維持されるようになります。
日時の値のマスキング
日時の値に対してキーマスキングを設定できる場合、データマスキングトランスフォーメ
ーションでシードとしてランダムな数値が必要になります。カラム間で再現可能な日時の
値を返すには、別のカラムのシード値に一致するようにシードを変更できます。
データマスキングトランスフォーメーションは、キーマスキングで1753?2400の日付をマス
クできます。 ソース年がうるう年の場合、データマスキングトランスフォーメーションは
同じくうるう年の年を返します。 ソース月に31日が含まれる場合、データマスキングトラ
ンスフォーメーションは31日を含む月を返します。 ソース月が2月の場合、データマスキ
ングトランスフォーメーションは2月を返します。
126
第 10章: データマスキングトランスフォーメーション
データマスキングトランスフォーメーションは、常に有効な日付を生成します。
置換マスキング
置換マスキングでは、データのカラムを似ているが関連のないデータに置き換えることが
できます。置換マスキングを使用して、プロダクションデータを現実的なテストデータに
置き換えます。 置換マスキングを設定する場合は、代替値が含まれるディクショナリを定
義します。
データマスキングトランスフォーメーションでは、設定したディクショナリでのルックア
ップが実行されます。データマスキングトランスフォーメーションでは、ソースデータが
ディクショナリから取得したデータに置き換えられます。 ディクショナリファイルには、
文字列データ、日時の値、整数、および浮動小数点数を含めることができます。 日時の値
は次の形式で入力します。
mm/dd/yyyy
データは、再現可能な値または再現不可能な値に置き換えることができます。再現可能な
値を選択すると、データマスキングトランスフォーメーションで、同じソースデータおよ
びシード値に対する確定的な結果が生成されます。 データを確定的な結果に置き換えるに
は、シード値を設定する必要があります。Integration Serviceでは、ソースの格納テーブ
ルと、再現可能なマスキングに使用するマスキング値が保持されます。
データの複数のカラムを同じディクショナリ行のマスキング値に置き換えることができま
す。 1つの入力カラムに対して置換マスキングを設定します。 同じディクショナリ行から
マスキングデータを受け取る他のカラムに対しては、依存データマスキングを設定しま
す。
ディクショナリ
ディクショナリは、置換データとテーブル内の各行のシリアル番号が含まれている参照テ
ーブルです。 モデルリポジトリにインポートするフラットファイルまたはリレーショナル
テーブルから置換マスキングの参照テーブルを作成します。
データマスキングトランスフォーメーションでは、シリアル番号単位でディクショナリ行
を取得するために番号が生成されます。 データマスキングトランスフォーメーションで
は、再現可能な置換マスキング用にハッシュキーが生成されます。再現不可能なマスキン
グ用には、乱数が生成されます。 再現可能な置換マスキングを設定する場合は、追加のル
ックアップ条件を設定することができます。
データマスキングトランスフォーメーションでは、ディクショナリを設定して、複数のポ
ートをマスクすることができます。
データマスキングトランスフォーメーションがディクショナリから置換データを取得する
とき、置換データの値が元の値と同じであるかどうかは確認されません。 例えば、データ
マスキングトランスフォーメーションがJohnという名前をディクショナリファイルの同じ
名前(John)に置き換える可能性があります。
マスキング方法
127
次の例に、名と性別が含まれるディクショナリテーブルを示します。
SNO
GENDER
FIRSTNAME
1
M
Adam
2
M
Adeel
3
M
Adil
4
F
Alice
5
F
Alison
このディクショナリでは、行の最初のフィールドはシリアル番号、2番目のフィールドは性
別です。 Integration Serviceでは、常にシリアル番号でディクショナリのレコードが検
索されます。再現可能なマスキングを設定する場合、ルックアップ条件として性別を追加
することができます。Integration Serviceでは、ハッシュキーを使用して行がディクショ
ナリから取得され、ソースデータ内の性別と一致する性別の行が検出されます。
参照テーブルを作成する場合は、以下のルールおよびガイドラインに従います。
¨ テーブル内の各レコードには、シリアル番号が存在する必要があります。
¨ シリアル番号は、1から始まる連続した整数です。 シリアル番号のシーケンスには、欠
番が存在していてはなりません。
¨ シリアル番号のカラムは、テーブル行の任意の場所に配置できます。 任意のラベルを
設定することもできます。
フラットファイルテーブルを使用して参照テーブルを作成する場合は、以下のルールおよ
びガイドラインに従います。
¨ フラットファイルテーブルの第1行には、各レコードのフィールドを識別するためにカ
ラムラベルを設定する必要があります。 フィールドは、カンマで区切ります。1行目に
カラムラベルが含まれていない場合、Integration Serviceでは最初の行のフィールド
値がカラム名として処理されます。
¨ Windowsでフラットファイルテーブルを作成し、UNIXマシンにコピーする場合は、ファ
イルがUNIXに適した形式であることを確認します。 例えば、WindowsとUNIXでは、行末
マーカーに異なる文字を使用します。
格納テーブル
データマスキングトランスフォーメーションには、セッションごとに再現可能な置換用に
格納テーブルが維持されています。 格納テーブルの行には、ソースカラムおよびマスクさ
れた値ペアが含まれています。データマスキングトランスフォーメーションでは、再現可
能な代替値で値がマスクされるたびに、ディクショナリ名、ロケール、カラム名、入力
値、およびシードで格納テーブルの検索が行われます。 行が見つかると、格納テーブルか
らマスクされた値が返されます。 行が見つからない場合、データマスキングトランスフォ
ーメーションはハッシュキーを使用してディクショナリから行を取得します。
格納テーブル内のディクショナリ名の形式は、フラットファイルディクショナリとリレー
ショナルディクショナリでは異なります。 フラットファイルディクショナリの名前は、フ
128
第 10章: データマスキングトランスフォーメーション
ァイル名によって識別されます。 リレーショナルディクショナリの名前の構文は次のとお
りです。
<Connection object>_<dictionary table name>
Informaticaは、リレーショナル格納テーブルを作成するために実行できるスクリプトを提
供します。 スクリプトは以下の場所に格納されています。
<PowerCenter Client installation directory>\client\bin\Extensions\DataMasking
ディクショナリには、Sybase、Microsoft SQL Server、IBM DB2、およびOracleの各データ
ベース用のスクリプトが含まれています。 各スクリプトの名前は、Substitution_<データ
ベースタイプ>です。 SQL文およびプライマリキー制約を設定する場合は、別のデータベー
スでテーブルを作成できます。
ストレージ内のデータの暗号化を解除した後、同じシード値とディレクトリを使用して同
じカラムを暗号化する場合は、置換マスキング用の格納テーブルを暗号化する必要があり
ます。
置換マスキング用の格納テーブルの暗号化
格納テーブルは、トランスフォーメーション言語エンコード機能を使用して暗号化できま
す。ストレージの暗号化を有効にした場合は、格納テーブルを暗号化する必要がありま
す。
1.
IDM_SUBSTITUTION_STORAGE格納テーブルをソースとして使用し、マッピングを作成し
ます。
2.
データマスキングトランスフォーメーションを作成します。
3.
入力値とマスクされた値ポートに、式マスキング方法を適用します。
4.
INPUTVALUEポートに対して次の式を使用します。
Enc_Base64(AES_Encrypt(INPUTVALUE, Key))
5.
MASKEDVALUEポートに対して次の式を使用します。
Enc_Base64(AES_Encrypt(MASKEDVALUE, Key))
6.
ポートをターゲットにリンクします。
置換マスキングプロパティ
置換マスキングには、以下のマスキングルールを設定できます。
¨ 再現可能な出力。 セッションごとに確定的な結果を返します。 データマスキングトラ
ンスフォーメーションは、マスクされた値をストレージテーブルに格納します。
¨ シード値。 シード値を適用し、カラムに対して確定的なマスクされた値を生成しま
す。 1?1,000の範囲で数値を入力してください。
¨ 一意の出力。 データマスキングトランスフォーメーションに一意の入力値に対して一
意の出力値を作成させます。 同じ出力値に対して2つの入力値はマスクされません。デ
ィクショナリに、一意の出力を有効にするのに十分な一意の行が必要です。
一意の出力を無効にすると、データマスキングトランスフォーメーションが一意の出力
値に対する入力値をマスクしない場合があります。 ディクショナリにいくつかの行が
含まれている場合があります。
マスキング方法
129
¨ 一意のポート。 置換マスキングの一意のレコードの特定に使用されるポート。 例え
ば、Customerというテーブルで名をマスクするとします。 名が一意のポートとして含
まれるテーブルカラムを選択した場合、データマスキングトランスフォーメーションは
重複する名をマスクされた同じ値に置き換えます。 Customer_IDカラムを一意のポート
として選択した場合、データマスキングトランスフォーメーションはそれぞれの名を一
意の値に置き換えます。
¨ ディクショナリ情報。 置換データ値が含まれる参照テーブルを設定します。 [ソース
の選択]をクリックして参照テーブルを選択します。
- ディクショナリ名。 選択した参照テーブルの名前を表示します。
- シリアル番号カラム。 シリアル番号を含むディクショナリ内のカラムを選択します。
- 出力カラム。 データマスキングトランスフォーメーションに返すカラムを選択しま
す。
¨ ルックアップ条件。置換マスキングで使用するディクショナリ行の適正を評価するに
は、ルックアップ条件を設定します。 ルックアップ条件は、SQLクエリのWHERE句に似
ています。ルックアップ条件を設定する場合、ソース内のカラムとディクショナリ内の
カラムを比較します。
たとえば、ファーストネームをマスクするとします。ソースデータおよびディクショナ
リには、ファーストネームの列と性別の列があります。それぞれの女性のファーストネ
ームをディクショナリの女性の名前で置き換えるという条件を追加できます。ルックア
ップ条件は、ソース内の性別とディクショナリ内の性別を比較します。
- 入力ポート。 ルックアップで使用するソースデータカラム。
- ディクショナリカラム。 入力ポートと比較するディクショナリカラム。
置換マスキングのルールおよびガイドライン
置換マスキングに使用されるルールおよびガイドラインは、次のとおりです。
¨ 一意の再現可能な置換マスクの格納テーブルが存在しない場合、セッションは失敗しま
す。
¨ ディクショナリに行が含まれていない場合は、データマスキングトランスフォーメーシ
ョンがエラーメッセージを返します。
¨ データマスキングトランスフォーメーションで格納テーブル内にロケール、ディクショ
ナリ、シードを持つ入力値が見つかった場合、その行がディクショナリ内にすでに存在
しない場合でもマスク値が取得されます。
¨ 接続オブジェクトの削除またはディクショナリの変更を行った場合、格納テーブルが切
り詰められます。 そうでない場合、予期しない結果になる可能性があります。
¨ ディクショナリ内の値の数がソースデータ内の一意の値の数よりも少ない場合、データ
マスキングトランスフォーメーションでは一意の再現可能な値でデータをマスクするこ
とができません。 データマスキングトランスフォーメーションはエラーメッセージを
返します。
依存マスキング
依存マスキングは、ソースデータの複数のカラムを同じディクショナリ行のデータに置き
換えます。
130
第 10章: データマスキングトランスフォーメーション
データマスキングトランスフォーメーションが複数のカラムに対して置換マスキングを実
行すると、マスクされたデータに現実的でないフィールドの組み合わせが含まれる場合が
あります。 同じディクショナリ行の複数の入力カラムのデータを置き換えるために、依存
マスキングを設定することができます。 マスクされたデータは、「New York, New York」
や「Chicago, Illinois」などの有効な組み合わせを受け取ります。
依存マスキングを設定するときは、最初に置換マスキングの入力カラムを設定します。 そ
の置換カラムに依存するように他の入力カラムを設定します。 例えば、置換マスキングの
郵便コードカラムを選択し、郵便番号カラムに依存する市区町村カラムと州カラムを選択
します。 依存マスキングにより、置き換えられた市区町村と州の値が、置き換えられた郵
便番号の値に対して有効になります。
注: 最初に置換マスキングのカラムを設定せずに依存マスキングのカラムを設定すること
はできません。
依存マスキングのカラムを設定するときは、次のマスキングルールを設定します。
依存カラム
置換マスキングに対して設定した入力カラムの名前。 データマスキングトランスフォ
ーメーションは、そのカラムのマスキングルールを使用して、ディクショナリルール
の置換データを受け取ります。 置換マスキングに対して設定するカラムは、ディクシ
ョナリからマスクされたデータを受け取るためのキーカラムになります。
出力カラム
依存マスキングで設定するカラムの値が含まれるディクショナリカラムの名前。
依存マスキングの例
データマスキングディクショナリには、次の値の住所行が含まれている可能性がありま
す。
SNO
STREET
CITY
STATE
ZIP
COUNTRY
1
32 Apple
Lane
Chicago
IL
61523
US
2
776 Ash
Street
Dallas
TX
75240
US
3
2229 Big
Square
Atleevil
le
TN
38057
US
4
6698
Cowboy
Street
Houston
TX
77001
US
ソースデータは、住所ディクショナリの市区町村、州、および郵便番号の有効な組み合わ
せでマスクする必要があります。
マスキング方法
131
置換マスキングのZIPポートを設定します。 ZIPポートに対して次のマスキングルールを入
力します。
ルール
値
辞書名
Address
シリアル番号カラム
SNO
出力カラム
ZIP
依存マスキングのCityポートを設定します。 Cityポートに対して次のマスキングルールを
入力します。
ルール
値
依存カラム
ZIP
出力カラム
City
依存マスキングのStateポートを設定します。 Stateポートに対して次のマスキングルール
を入力します。
ルール
値
依存カラム
ZIP
出力カラム
State
データマスキングトランスフォーメーションが郵便番号をマスクするときは、ディクショ
ナリ行からその郵便番号に対して正しい市区町村と州を返します。
マスキングルール
マスキングルールは、マスキング方法の選択後に設定するオプションです。
ランダムまたはキーマスキング方法を選択する場合、マスク形式、ソース文字列の文字、
および結果文字列の文字を設定できます。ランダムマスキングを持つ範囲またはブラーを
設定できます。
132
第 10章: データマスキングトランスフォーメーション
以下の表で、各マスキング方法に設定できるマスキングルールについて説明します。
マスキングルー
ル
説明
マスキング方法
ソースのデータ
型
マスク形式
出力文字列内の
各文字を英文
字、数字、また
は英数字に制限
するマスクで
す。
ランダムおよび
キー
String
ソース文字列の
文字
マスクするソー
ス文字セット、
またはマスク対
象から除外する
ソース文字セッ
トです。
ランダムおよび
キー
String
結果文字列の置
換文字
マスクに含める
文字セットまた
はマスクから除
外する文字セッ
トです。
ランダムおよび
キー
String
マスキングルール
133
マスキングルー
ル
説明
マスキング方法
ソースのデータ
型
範囲
出力値の範囲で
す。
ランダム
Numeric
String
- 数値。
日付/時刻
データマスキ
ングトランス
フォーメーシ
ョンでは、値
の上限と下限
の間にある数
値データが返
されます。
- 文字列。上限
と下限の文字
列長の範囲内
で、ランダム
な文字で構成
される文字列
を返します。
- 日付/時刻。
日時の最大値
と最小値の範
囲内で
日付と時間を
返します。
ブラー
ソースデータに
対する固定偏差
またはパーセン
ト偏差の範囲の
出力値です。デ
ータマスキング
トランスフォー
メーションで
は、ソースデー
タの値に近いデ
ータが返されま
す。日時のカラ
ムは固定偏差で
ある必要があり
ます。カラムは
固定偏差である
必要がありま
す。
ランダム
Numeric
日付/時刻
マスク形式
出力カラム内の各文字を英文字、数字、または英数字に制限するには、マスク形式を設定
します。以下の文字を使用して、マスク形式を定義します。
A, D, N, X, +, R
134
第 10章: データマスキングトランスフォーメーション
注: マスク形式には、大文字を使用します。マスク文字として小文字を入力すると、デー
タマスキングトランスフォーメーションによって大文字に変換されます。
以下の表では、マスク形式文字について説明します。
文字
説明
A
英文字。例えば、ASCII文字a~z、A~Zです。
D
数字0~9。データマスキングトランスフォーメーションは、数字
0~9以外の文字に対して「X」を返します。
N
英数字。例えば、ASCII文字a~z、A~Z、および0~9です。
X
任意の文字。たとえば、英文字や記号です。
+
マスキングなし。
R
残りの文字。Rは、文字列内のその他の文字に、任意の種類の文
字を使用できることを示します。Rは、マスクの最後の文字にす
る必要があります。
たとえば、部署名のフォーマットが以下のとおりであるとします。
nnn-<department_name>
最初の3文字を数値に限定し、部署名を英文字に限定し、ダッシュを出力に残すマスクを設
定できます。この場合、マスクフォーマットを以下のように設定します。
DDD+AAAAAAAAAAAAAAAA
データマスキングトランスフォーメーションによって、最初の3文字が数字に置き換えられ
ます。4番目の文字は置き換えられません。残りの文字は、英文字に置き換えられます。
マスクフォーマットの定義がない場合、各ソース文字は任意の文字に置き換えられます。
マスクフォーマットが入力文字列より長い場合は、マスクフォーマットの余分な文字が無
視されます。マスクフォーマットがソース文字列より短い場合は、ソース文字列の最後の
部分の文字はマスクされません。
注:
マスクフォーマットの設定に範囲オプションを使用することはできません。
ソース文字列の文字
ソース文字列の文字とは、マスクするように選択した文字列、またはマスクしないように
選択したソース文字のことです。ソース文字列内での文字の位置は、重要ではありませ
ん。ソース文字では、大文字と小文字が区別されます。
設定できる文字数に制限はありません。[文字]が空白の場合は、カラム内のすべてのソ
ース文字列が置き換えられます。
ソース文字列の文字について、以下のいずれかのオプションを選択します。
マスキングルール
135
指定文字のみマスク
データマスキングトランスフォーメーションでは、ソースに含まれる文字のうち、ソ
ース文字列の文字として設定されている文字がマスクされます。たとえば、文字A、
B、およびcを入力すると、ソースデータに出現したA、B、またはcが別の文字に置き換
えられます。A、B、またはcではないソース文字は置き換えられません。マスクでは、
大文字と小文字が区別されます。
指定文字以外をすべてマスク
ソース文字列に出現したソース文字列の文字を除いて、すべての文字をマスクしま
す。たとえば、フィルタソース文字"-"を入力し、[指定文字以外をすべてマスク]を
選択した場合は、文字"-"がソースデータに出現しても置き換えられません。それ以外
のソース文字は変更されます。
ソース文字列の例
ソースファイルに[従属]という名前のカラムがあるとします。 [従属]カラムには、カ
ンマで区切られた複数の名前が含まれています。[従属]カラムをマスクし、名前を区切
るカンマをテストデータで保持する必要があります。
[従属]カラムに対して、[ソース文字列の文字]を選択します。[マスクしない]を選
択し、対象外の文字として","を入力します。引用符は入力しないでください。
データマスキングトランスフォーメーションによって、ソース文字列内のカンマ以外の文
字がすべて置き換えられます。
結果文字列の置換文字
結果文字列の置換文字は、マスクされたデータに含める置き換え文字として選択した文字
です。結果文字列の置換文字を設定すると、データマスキングトランスフォーメーション
によって、ソース文字列内の文字が結果文字列の置換文字に置き換えられます。異なる入
力値に対して同じ出力が生成されないようにするには、設定する置換文字の範囲を広くす
るか、マスクするソース文字の数を少なくします。文字列内での文字の位置は、重要では
ありません。
結果文字列の置換文字について、以下のいずれかのオプションを選択します。
指定文字のみ使用
結果文字列の置換文字として定義した文字のみを使用してソースをマスクします。例
えば、文字A、B、およびcを入力すると、ソースカラムの各文字がA、B、またはcに置
き換えられます。"horse"という単語は、"BAcBA"などに置き換えられます。
指定文字以外をすべて使用
結果文字列の置換文字として定義した文字以外を使用してソースをマスクします。例
えば、結果文字列の置換文字としてA、B、およびcを入力すると、マスクされたデータ
に文字A、B、またはcは出現しません。
結果文字列の置換文字の例
136
第 10章: データマスキングトランスフォーメーション
[従属]カラムに含まれるすべてのカンマをセミコロンに置き換えるには、以下のタスク
を完了します。
1.
ソース文字列の文字としてカンマを設定し、[指定文字のみマスク]を選択します。
データマスキングトランスフォーメーションでは、[従属]カラムにカンマが出現し
た場合にのみ、カンマがマスクされます。
2.
結果文字列の置換文字としてセミコロンを設定し、[指定文字のみ使用]を選択しま
す。
データマスキングトランスフォーメーションでは、[従属]カラムにカンマが出現す
るたびにカンマがセミコロンに置き換えられます。
範囲
数値、日付、または文字列データの範囲を定義します。 数値または日付値の範囲を定義す
ると、データマスキングトランスフォーメーションによって、ソースデータが上限値と下
限値の範囲内の値でマスクされます。文字列の範囲を設定する場合は、文字列長の範囲を
設定します。
文字列の範囲
ランダム文字列マスキングを設定すると、データマスキングトランスフォーメーションに
よって、ソース文字列の長さとは異なる長さの文字列が生成されます。オプションで、文
字列長の上限と下限を設定できます。文字列長の上限および下限として入力する値は、正
の整数である必要があります。長さは、ポート精度以下である必要があります。
数値の範囲
数値カラムの上限値と下限値を設定します。上限値は、ポート精度以下である必要があり
ます。デフォルトの範囲は、1からポート精度長までです。
日付範囲
日時の値の上限値と下限値を設定します。上限と下限の各フィールドには、デフォルトの
日付の上限と下限が表示されます。 デフォルトの日付形式は、MM/DD/YYYY HH24:MI:SSで
す。上限の日付は、下限の日付より後である必要があります。
ブラー
ブラーでは、ソースデータ値に対する固定偏差またはパーセント偏差の範囲の出力値が生
成されます。元の値に近いランダムな値が返されるようにする場合は、ブラーを設定しま
す。ブラーの対象は、数値および日付値です。
数値のブラー
ソース数値のブラー方法として、固定偏差またはパーセント偏差を選択します。低ブラー
値は、ソース値より小さい値に関する偏差です。高ブラー値は、ソース値より大きい値に
関する偏差です。どちらの値もゼロ以上である必要があります。データマスキングトラン
スフォーメーションによって返されるマスクされたデータで、数値データは定義した値の
範囲内の値に置き換えられます。
マスキングルール
137
以下の表に、入力ソース値が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の日付を返します。
デフォルトのブラー単位は年です。
特殊マスク形式
特殊マスク形式は、一般的なタイプのデータに適用できるマスクです。特殊マスク形式で
は、データマスキングトランスフォーメーションで、現実的な形式を持つものの有効な値
ではない、マスクされた値が返されます。
例えば、SSNをマスクすると、データマスキングトランスフォーメーションにより形式は正
しいものの有効ではないSSNが返されます。社会保障番号には、再現可能なマスキングを設
定できます。
以下のタイプのデータの、特殊マスクを設定します。
¨ 社会保障番号
¨ クレジットカード番号
¨ 電話番号
¨ URLアドレス
¨ 電子メールアドレス
138
第 10章: データマスキングトランスフォーメーション
¨ IPアドレス
¨ 社会保険番号
ソースデータの形式またはデータ型がマスクとして無効の場合、Data Integration
Serviceでは、デフォルトのマスクがデータに適用されます。Integration Serviceでは、
デフォルト値のファイルからマスクされた値が適用されます。デフォルト値のファイルを
編集してデフォルト値を変更できます。
クレジットカード番号のマスキング
データマスキングトランスフォーメーションでは、有効なクレジットカード番号をマスク
する場合、論理的に有効なクレジットカード番号が生成されます。ソースクレジットカー
ド番号の長さは13~19桁です。入力クレジットカード番号に、クレジットカード業界のル
ールに基づく有効なチェックサム値がある必要があります。
ソースクレジットカード番号には、数字、スペース、およびハイフンを使用できます。ク
レジットカード番号に無効な文字が含まれている場合、または長さが正しくない場合、
Integration Serviceによって、セッションログにエラーが書き込まれます。ソースデータ
が無効の場合、Integration Serviceによって、デフォルトのクレジットカード番号マスク
が適用されます。
6桁の銀行識別番号(BIN)はマスクされません。クレジットカード番号4539 1596 8210
2773は、4539 1516 0556 7067などとしてマスクされます。データマスキングトランスフォ
ーメーションによって生成されるマスクされた番号は、有効なチェックサムを持ちます。
電子メールアドレスマスキング
データマスキングトランスフォーメーションを使用し、文字列値が含まれる電子メールア
ドレスをマスクします。データマスキングトランスフォーメーションを使用すると、電子
メールアドレスをランダムなASCII文字でマスクすることも、電子メールアドレスを現実的
な電子メールアドレスに置き換えることもできます。
電子メールアドレスには次のタイプのマスキングを適用できます。
標準の電子メールマスキング
データマスキングトランスフォーメーションは、電子メールアドレスをマスクすると
きにランダムなASCII文字を返します。例えば、[email protected][email protected]などとしてマスクされます。デフォルトは標準のマスキング
です。
詳細電子メールマスキング
データマスキングトランスフォーメーションは、トランスフォーメーション出力ポー
トまたはディクショナリカラムから派生した他の現実的な電子メールアドレスを使用
して電子メールアドレスをマスクします。
高度な電子メールマスキング
タイプが高度な電子メールマスキングであれば、電子メールを実際にありそうな別の電子
メールでマスクすることができます。データマスキングトランスフォーメーションでは、
特殊マスク形式
139
辞書カラムまたはトランスフォーメーション出力ポートから電子メールアドレスを作成し
ます。
マッピング出力ポートから電子メールアドレスのローカル部分を作成することができま
す。または、電子メールアドレスのローカル部分をリレーショナルテーブルまたはフラッ
トファイルカラムから作成することができます。
データマスキングトランスフォーメーションでは、定数値から、またはドメインディクシ
ョナリのランダム値から電子メールのドメイン名を作成することができます。
次のオプションに基づいて高度な電子メールマスキングを作成することができます。
依存ポートに基づく電子メールアドレス
データマスキングトランスフォーメーション出力ポートに基づいて電子メールアドレ
スを作成することができます。名前カラムと苗字カラムのトランスフォーメーション
出力ポートを選択します。データマスキングトランスフォーメーションでは、名前と
苗字の長さとして指定した値に基づいて、名前か苗字、またはその両方をマスクしま
す。
ディクショナリに基づいた電子メール
ディクショナリからカラムに基づいて電子メールアドレスを作成することができま
す。参照テーブルをディクショナリのソースとして選択します。
名前と苗字のためのディクショナリカラムを選択します。データマスキングトランス
フォーメーションでは、名前と苗字の長さとして指定した値に基づいて、名前か苗
字、またはその両方をマスクします。
詳細電子メールアドレスマスキングタイプの設定パラメータ
詳細電子メールアドレスマスキングを設定する際には、設定パラメータを指定します。
以下のパラメータを指定できます。
区切り文字
電子メールアドレス内の名と姓を区切るために、ドット、ハイフン、アンダースコア
などの区切り文字を選択できます。電子メールアドレス内の名と姓を区切らない場合
は、区切り文字を空欄のままにします。
[名]カラム
電子メールアドレス内の名をマスクするデータマスキングトランスフォーメーション
出力ポートまたはディクショナリカラムを選択します。
[姓]カラム
電子メールアドレス内の姓をマスクするデータマスキングトランスフォーメーション
出力ポートまたはディクショナリカラムを選択します。
[名]カラムまたは[姓]カラムの長さ
[名]カラムと[姓]カラムでマスクする文字列の長さを制限します。例えば、入力
データの名がTimothyで、姓がSmithであるとします。[名]カラムの長さを5、[姓]
カラムの長さを1に選択し、区切り文字にはドットを選択したとします。この設定で
は、データマスキングトランスフォーメーションによって次の電子メールアドレスが
生成されます。
timot.s@<domain_name>
140
第 10章: データマスキングトランスフォーメーション
DomainName
ドメイン名には、gmail.comのような一定の値を使用できます。または、ドメイン名の
一覧が含まれている別のディクショナリファイルを指定することもできます。ドメイ
ンディクショナリは、フラットファイルでもリレーショナルテーブルでもかまいませ
ん。
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に、それぞれマ
スクされます。
注: 多数のIPアドレスをマスクした場合に、IPアドレスのクラスやプライベートネットワ
ークがマスクされないために、データマスキングトランスフォーメーションで非固有値が
戻されることがあります。
電話番号マスキング
データマスキングトランスフォーメーションでは、元の電話番号のフォーマットが変更さ
れることなく、電話番号がマスクされます。例えば、電話番号(408)382 0658は、(607)256
3106などとしてマスクされます。
ソースデータには、数字、スペース、ハイフン、およびかっこを使用できます。
Integration Serviceでは、英文字または特殊文字はマスクされません。
データマスキングトランスフォーメーションは、string、integer、bigintデータをマスク
できます。
社会保障番号(SSN)のマスキング
データマスキングトランスフォーメーションでは、社会保障庁による最新のハイグループ
履歴リストに基づいて、無効な社会保障番号が生成されます。 ハイグループ履歴リストに
は、社会保障庁が発行した有効な番号が記載されています。
デフォルトのハイグループ履歴リストは、以下の場所にあるテキストファイルです。
<Installation Directory>\infa_shared\SrcFiles\highgroup.txt
ワークフローでハイグループ履歴リストを使用するには、このテキストファイルをData
Integration Serviceに対して設定するソースディレクトリにコピーします。
データマスキングトランスフォーメーションでは、ハイグループ履歴リストにないSSN番号
が生成されます。社会保障庁では、ハイグループ履歴リストを毎月更新しています。 この
リストの最新バージョンは、以下の場所からダウンロードします。
http://www.socialsecurity.gov/employer/ssns/highgroup.txt
特殊マスク形式
141
社会保障番号(SSN)形式
データマスキングトランスフォーメーションは、9桁の数字を含むSSN形式を受け付けま
す。 この数字は任意の文字で区切ることができます。 例えば、データマスキングトラン
スフォーメーションは以下の形式を受け付けます。 +=54-*9944$#789-,*()”.
地域コードの要件
データマスキングトランスフォーメーションは、ソースと同じ形式で有効でない社会保障
番号を返します。SSNの最初の3桁では地域コードが定義されます。 地域コードはマスクさ
れません。 グループ番号とシリアル番号はマスクされます。 ソースSSNには有効な地域コ
ードが含まれている必要があります。 データマスキングトランスフォーメーションは、ハ
イグループリストから地域コードを検索し、マスクされたデータとして適用できる未使用
の番号の範囲を判断します。 SSNが無効な場合、ソースデータはマスクされません。
再現可能な社会保障番号のマスキング
データマスキングトランスフォーメーションでは、再現可能なマスキングが設定された確
定的な社会保障番号が返されます。 データマスキングトランスフォーメーションでは、社
会保障庁が発行した有効な社会保障番号が返されないため、一意のすべての社会保障番号
を返すことはできません。
URLアドレスマスキング
データマスキングトランスフォーメーションでは、'://'文字列を検索し、その右側の部分
文字列を解析することによってURLが解析されます。ソースURLには、'://'文字列が含まれ
ている必要があります。ソースURLには、数字と英文字を使用できます。
URLのプロトコル部分はマスクされません。URLがhttp://www.yahoo.comの場合は、http://
MgL.aHjCa.VsD/が返されます。データマスキングトランスフォーメーションは、有効でない
URLを生成する可能性があります。
注:
URLの場合は、常にASCII文字が返されます。
社会保険番号のマスキング
このデータマスキングトランスフォーメーションでは、9桁の社会保険番号がマスクされま
す。番号は任意の文字で区切ることができます。
番号に区切り文字が含まれない場合、マスクされた番号に区切り文字は含まれません。そ
れ以外の場合、マスクされた番号は以下の形式になります。
xxx-xxx-xxx
再現可能なSIN番号
再現可能なSIN値を返すようにデータマスキングトランスフォーメーションを設定すること
ができます。再現可能なSINマスキングに対応するようポートを設定すると、データマスキ
ングトランスフォーメーションでは、ソースSIN値とシード値が同じ場合に、マスクされた
確定的なデータが返されます。
142
第 10章: データマスキングトランスフォーメーション
再現可能なSIN番号を返すには、[再現可能な値]を有効にしてシード番号を入力します。
データマスキングトランスフォーメーションは、各SINに対して一意の値を返します。
SINの開始桁
マスクされたSINの最初の桁を定義できます。
[開始桁]を有効にして、桁を数字で入力します。データマスキングトランスフォーメー
ションを実行すると、ここで入力した桁より上をマスクしたSIN番号が作成されます。
デフォルト値ファイル
ソースデータの形式またはデータ型がマスクとして無効の場合、Data Integration
Serviceでは、デフォルトのマスクがデータに適用されます。Integration Serviceでは、
デフォルト値のファイルからマスクされた値が適用されます。デフォルト値のファイルを
編集してデフォルト値を変更できます。
デフォルト値ファイルは、以下の場所にあるXMLファイルです。
<インストールディレクトリ>\infa_shared\SrcFiles\defaultValue.xml
ワークフローでデフォルト値ファイルを使用するには、デフォルト値ファイルをData
Integration Serviceに対して設定するソースディレクトリにコピーします。
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"/>
デフォルト値ファイル
143
関連項目:
¨ 「Data Integration Serviceの設定」
(ページ144)
データマスキングトランスフォーメーション
の設定
以下の手順を使用して、データマスキングトランスフォーメーションを設定します。
1.
Data Integration Serviceの実行オプションを設定します。
2.
トランスフォーメーションを作成します。
3.
入力ポートを定義します。
4.
変更する各ポートのマスキングルールを設定します。
5.
データをプレビューして結果を確認します。
Data Integration Serviceの設定
Informatica Administrator(Administratorツール)でData Integration Serviceの実行
オプションを設定することができます。
実行オプションを設定して、次のデフォルトのディレクトリを設定します。
¨ ホームディレクトリ。 ソースディレクトリとキャッシュディレクトリが含まれます。
¨ ソースディレクトリ。 ワークフローのソースファイルが含まれます。 例えば、ソース
ディレクトリにはhighgrp.txtおよびdefaultvalue.xmlファイルを含めることができま
す。
¨ キャッシュディレクトリ。 置換マスキングのキャッシュファイルが含まれます。
実行オプションの値を設定するには、Administratorツールを開き、ドメインナビゲータで
Data Integration Serviceを選択します。 ツールバーで[プロセス]をクリックして、実
行オプションノードを表示します。
関連項目:
¨ 「デフォルト値ファイル」
(ページ143)
ポートの定義
[概要]ビューで、データマスキング入力ポートを追加します。入力ポートの作成時に、
Developerツールにより対応する出力ポートがデフォルトで作成されます。出力ポートの名
前は入力ポートと同じです。
144
1.
[概要]ビューで、[新規]をクリックしてポートを追加します。
2.
カラムのデータ型、精度、スケールを設定します。
第 10章: データマスキングトランスフォーメーション
カラムのマスキングルールを定義する前に、カラムのデータ型を設定する必要があり
ます。
3.
ポートのデータマスキングを設定するには、[概要]ビューのマスキングタイプカラ
ムの矢印をクリックします。
各ポートのデータマスキングの設定
[データマスク]ダイアログボックスで、ポートのマスキング方法と対応するマスキング
ルールを選択します。[データマスク]ダイアログボックスは、[ポート]タブの[デー
タマスキング]カラムをクリックすると表示されます。
1.
選択したポートにマスキングを設定するには、[マスキングの適用]を有効にしま
す。
マスキングしているポートのデータ型に基づいて、使用できるマスキング方法のリス
トがDeveloperツールによって表示されます。
2.
リストからマスキング方法を選択します。
選択するマスキング方法に基づいて、各種マスキングルールがDeveloperツールによっ
て表示されます。一部の特殊なマスク形式には、設定するマスキングルールがありま
せん。
3.
マスキングルールを設定します。
4.
[OK]をクリックして、ポートのデータマスキング設定を適用します。
ポートのデータマスキングを定義すると、Developerツールによりout-<ポート名>と
いう出力ポートが作成されます。<ポート名>は入力ポートと同じ名前です。データマ
スキングトランスフォーメーションにより、out-<ポート名>ポートのマスクされたデ
ータが返されます。
マスクされたデータのプレビュー
[データビューア]でデータマスキングトランスフォーメーションの結果を表示する際、
マスクされたデータと元のデータを比較できます。
1.
データマスキングトランスフォーメーションポートとマスキングルールの設定後、物
理データオブジェクトソースとデータマスキングトランスフォーメーションを含むマ
ッピングを作成します。
2.
ソースをデータマスキングトランスフォーメーションに接続します。
3.
データ統合サービスがアクセス可能な共有場所に、ソースのデータがあることを確認
します。
4.
データマスキングトランスフォーメーションをクリックして、マッピングで選択しま
す。
5.
[データビューア]をクリックして、[実行]をクリックします。
Developerツールで、すべてのデータマスキングトランスフォーメーション出力ポート
のデータが表示されます。[出力]プレフィックスを持つポートに、マスクされたデ
ータが含まれます。[データビューア]ビューで、マスクされたデータと元のデータ
を比較できます。
データマスキングトランスフォーメーションの設定
145
データマスキングトランスフォーメーションの作成
データマスキングトランスフォーメーションはDeveloperツールで作成します。
データマスキングトランスフォーメーションを作成する前に、ソースを作成します。フラ
ットファイルまたはリレーショナルデータベーステーブルを物理データオブジェクトとし
てインポートします。
1.
[Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。
2.
[ファイル] > [新規] > [トランスフォーメーション]をクリックします。
[新規]ダイアログボックスが表示されます。
3.
データマスキングトランスフォーメーションを選択します。
4.
[次へ]をクリックします。
5.
トランスフォーメーションの名前を入力します。
6.
[完了]をクリックします。
トランスフォーメーションがエディタに表示されます。
データマスキングトランスフォーメーション
のセッションプロパティ
データマスキングトランスフォーメーションのセッションプロパティを設定して、パフォ
ーマンスを向上させることができます。
以下のセッションプロパティを設定します。
キャッシュサイズ
メインメモリのディクショナリキャッシュのサイズ。パフォーマンスを向上させるに
は、メモリサイズを増やします。推奨される最小サイズは、100,000レコードに対して
32 MBです。デフォルトは8MBです。
キャッシュディレクトリ
ディクショナリキャッシュの場所。そのディレクトリに対する書き込み権限が必要で
す。デフォルトは$PMCacheDirです。
共有ストレージテーブル
データマスキングトランスフォーメーションのインスタンス間でのストレージテーブ
ルの共有を可能にします。共有ストレージテーブルは、データマスキングトランスフ
ォーメーションのインスタンスで、データベース接続、シード値、およびロケールに
対して同じディクショナリカラムが使用されているときに有効にします。共有ストレ
ージテーブルは、同じデータマスキングトランスフォーメーション内の2つのポート
で、接続、シード、およびロケールに対して同じディクショナリカラムが使用されて
いるときにも有効にできます。データマスキングトランスフォーメーションまたはポ
ートでディクショナリカラムが共有されていないときは、共有ストレージテーブルを
無効にします。デフォルトでは無効になっています。
146
第 10章: データマスキングトランスフォーメーション
ストレージのコミット間隔
ストレージテーブルに一度にコミットする行数。パフォーマンスを向上させるには、
この値を増やします。コミット間隔は、共有ストレージテーブルを設定しないときに
設定します。デフォルトは100,000です。
ストレージの暗号化
IDM_SUBSTITUTION_STORAGE、IDM_EXPRESSION_STORAGEなどのストレージテーブルを暗
号化します。暗号化ストレージプロパティを有効にする前に、ストレージテーブル内
のデータが暗号化されていること確認してください。ストレージテーブルを暗号化し
ない場合は、このオプションを無効にします。デフォルトでは無効になっています。
ストレージの暗号化キー
データマスキングトランスフォーメーションは、ストレージ暗号化キーに基づいてス
トレージを暗号化します。同一のデータマスキングトランスフォーメーションインス
タンスの各セッションの実行には、同じ暗号化キーを使用します。
置換ディクショナリのオーナー名
置換マスキングタイプを選択する場合の置換ディクショナリテーブルのオーナー名で
す。データベース接続で指定されたデータベースユーザーがセッションの置換ディク
ショナリテーブルのオーナーではない場合、テーブルのオーナーを指定する必要があ
ります。
ストレージのオーナー名
再現可能な式マスキングタイプまたは一意の再現可能な置換マスキングタイプを選択
する場合、IDM_SUBSTITUTION_STORAGEまたはIDM_EXPRESSION_STORAGEのテーブルオー
ナー名です。
データマスキングの例
開発者は、カスタマアプリケーション用のテストデータを作成する必要があります。デー
タには、他の開発者が会社の開発環境でアクセス可能な現実的なカスタマデータを含める
必要があります。
開発者は、カスタマID、クレジットカード番号、所得などのマスクされたカスタマデータ
を返すデータサービスを作成します。マッピングには、カスタマデータを変換するデータ
マスキングトランスフォーメーションが含まれます。
以下の図はマッピングを示しています。
マッピングには、以下のトランスフォーメーションが含まれています。
¨ Read_Customer_Data。カスタマのクレジットカード情報および所得情報が含まれます。
データマスキングの例
147
¨ Customer_Data_Maskingトランスフォーメーション。FirstNameとLastNameを除くすべ
てのカラムをマスクします。データマスキングトランスフォーメーションによって、マ
スクされたカラムがターゲットに渡されます。
¨ Customer_TestData。マスクされたカスタマデータを受け取る出力トランスフォーメー
ション。
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
カスタマデータマスキングトランスフォーメーション
データマスキングトランスフォーメーションでは、最初と最後の名前以外、カスタマ行の
すべてのカラムをマスクします。
データマスキングトランスフォーメーションでは、次のタイプのマスキングを実行しま
す。
¨ キーマスキング
¨ ランダムマスキング
¨ クレジットカードマスキング
148
第 10章: データマスキングトランスフォーメーション
以下の表に、データマスキングトランスフォーメーションでの各ポートのマスキングルー
ルを示します。
入力ポート
マスキングの種
類
マスキングルー
ル
説明
CustomerID
キー
シードは934で
す。
カスタマIDマス
クは確定的で
す。
カスタマIDに、
マスク形式はあ
りません。
結果文字列の置
換文字は
1234567890で
す。
マスクされたカ
スタマIDには数
字が含まれま
す。
LastName
マスキングなし
-
-
FirstName
マスキングなし
-
-
CreditCard
CreditCard
-
データマスキン
グトランスフォ
ーメーションで
は、クレジット
カード番号を有
効なチェックサ
ムを持つ他の番
号でマスクしま
す。
Income
ランダム
ブラー
マスクされた
Incomeは、源泉
所得の10パーセ
ントの範囲内に
なります。
Percent
下限 = 1
上限 = 10
JoinDate
ランダム
ブラー
単位 = 年
下限 = 5
マスクされた
Dateは元の日付
から5年以内に
なります。
上限 = 5
カスタマテストデータ結果
Customer_TestDataトランスフォーメーションは、データマスキングトランスフォーメーシ
ョンから実際のカスタマデータを受け取ります。
Customer_TestDataターゲットは、以下のデータを受け取ります。
out-CustomerID
3954
3962
3964
out-LastName outFirstName out-CreditCard
Bergeron
Barbara
4539-1625-5074-4106
Brosseau
Derrick
5545-4042-8767-5974
Anderson
Lauren
1234-5687-2487-9053
out-Income out-JoinDate
11500
03/22/2001
4300
04/17/2007
5433
09/13/2006
データマスキングの例
149
out-CustomerID out-LastName outFirstName out-CreditCard
out-Income out-JoinDate
3965
Boonstra
Pauline
4217-9935-7437-4879 1820
02/03/2010
3966
Chan
Brian
4533-3143-4061-8001 4811
10/30/2000
Incomeは、元の所得の10パーセントの範囲内になります。JoinDateは元の日付から5年以内
になります。
データマスキングトランスフォーメーション
の詳細プロパティ
Data Integration Serviceでデータマスキングトランスフォーメーションのデータがどの
ように処理されるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
150
第 10章: データマスキングトランスフォーメーション
第 11 章
ディシジョントランスフォー
メーション
この章では、以下の項目について説明します。
¨ ディシジョントランスフォーメーションの概要, 151 ページ
¨ ディシジョントランスフォーメーションの関数, 152 ページ
¨ ディシジョントランスフォーメーションの条件文 , 154 ページ
¨ ディシジョントランスフォーメーションの演算子, 154 ページ
¨ ディシジョントランスフォーメーションのNULL処理, 155 ページ
¨ ディシジョンストラテジの設定 , 156 ページ
¨ ディシジョントランスフォーメーションの詳細プロパティ, 156 ページ
ディシジョントランスフォーメーションの概
要
ディシジョントランスフォーメーションは、入力データの条件を評価し、それらの条件の
結果に基づいて出力を作成するパッシブなトランスフォーメーションです。
ディシジョントランスフォーメーションは、入力フィールドで見つかった値に基づいて異
なる値を生成するように設定できます。 例えば、顧客の収益が特定の金額を超えたら顧客
名に文字列"Priority"を追加するように構成できます。
ディシジョントランスフォーメーションには、複数のディシジョンストラテジを追加する
ことができます。 各ストラテジでIF-THEN-ELSE条件文を評価します。 この文の中で、ELSEIF
条件を使用したり、別のIF-THEN-ELSE文をネストしたりできます。
ディシジョントランスフォーメーションは式トランスフォーメーションに似ており、条件
文と関数を使用してソースデータをテストすることができます。 ただし、ディシジョント
ランスフォーメーションは、以下の点が式トランスフォーメーションと異なります。
¨ ディシジョントランスフォーメーションでは、条件の評価にIF-THEN-ELSE文を使用しま
す。 式トランスフォーメーションでは、IIF文を使用します。
151
¨ ディシジョントランスフォーメーションの関数の中には、式トランスフォーメーション
では使用できないものもあります。
¨ 各ディシジョンストラテジで複数の出力を生成できます。
ディシジョントランスフォーメーションの関
数
ディシジョントランスフォーメーションでは、ディシジョンストラテジを定義するために
使用できる定義済みの関数にアクセスできます。
ディシジョントランスフォーメーションの式エディタには[ディシジョン]というフォル
ダがあります。 このフォルダに、ディシジョントランスフォーメーションに固有の関数が
格納されています。 エディタにはさらに、式トランスフォーメーションの関数にアクセス
するためのその他のフォルダもあります。
式エディタで関数をクリックすると、その関数による処理の説明に加え、関数の使用法と
データ型が表示されます。
注: 式トランスフォーメーションのすべての関数をディシジョントランスフォーメーショ
ンで使用できるわけではありません。 ディシジョントランスフォーメーションでは、互換
性がある式トランスフォーメーションの式にのみアクセスできます。
ディシジョントランスフォーメーションの関数の一覧
¨ ADD_TO_DATE
¨ ASCII
¨ CEIL
¨ CHOOSE
¨ CONCAT
¨ CONVERT_BASE
¨ COS
¨ COSH
¨ CRC32
¨ CUME
¨ DATE_DIFF
¨ EXP
¨ FLOOR
¨ FV
¨ GET_DATE_PART
¨ GREATEST
¨ IN
¨ INDEXOF
152
第 11章: ディシジョントランスフォーメーション
¨ INITCAP
¨ ISNULL
¨ LAST_DAY
¨ LEAST
¨ LN
¨ 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
ディシジョントランスフォーメーションの関数
153
¨ UPPER
ディシジョントランスフォーメーションの条
件文
ディシジョントランスフォーメーションでは、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
追加の条件文は、ルールブロック内にネストできます。
ディシジョントランスフォーメーションの演
算子
ディシジョントランスフォーメーションの演算子は、ディシジョンストラテジを定義する
ために使用します。
以下の表に、ディシジョントランスフォーメーションの演算子を示します。
154
演算子のタイプ
演算子
説明
Assignment
:=
ポートに値を割り当てます。
論理
AND
必須の論理条件を追加します。 親の論理式が
trueになるには、この演算子で連結されたすべ
ての論理条件がtrueになる必要があります。
論理
OR
論理条件を追加します。 親の論理式がtrueに
なるには、この演算子で連結された論理条件が
少なくとも1つtrueになる必要があります。
論理
NOT
否定の論理条件を指定します。 親の論理式が
trueになるには、この演算子で指定された否定
の条件がtrueになる必要があります。
第 11章: ディシジョントランスフォーメーション
演算子のタイプ
演算子
説明
ディシジョン
=
比較する項目が等しいかどうかを調べます。
文字列データ型または数値データ型で使用しま
す。
ディシジョン
<>
比較する項目が等しくないかどうかを調べま
す。 文字列データ型または数値データ型で使
用します。
ディシジョン
<
値が別の値よりも小さいかどうかを調べます。
数値データ型で使用します。
ディシジョン
<=
値が別の値以下であるかどうかを調べます。
数値データ型で使用します。
ディシジョン
>
値が別の値よりも大きいかどうかを調べます。
数値データ型で使用します。
ディシジョン
>=
値が別の値以上であるかどうかを調べます。
数値データ型で使用します。
数値
-
減算
数値
NEG
否定
数値
+
加算
数値
*
乗算
数値
/
除算
数値
%
モジュロ。 数値を別の数値で割った余りを返
します。
文字列
||
文字列を連結します。
ディシジョントランスフォーメーションの
NULL処理
NULL処理は、Data Integration Serviceによるディシジョントランスフォーメーションの
NULL値の処理方法を決定します。
NULL処理を有効にすると、ディシジョントランスフォーメーションはNULL入力データの元
の形を保持します。トランスフォーメーションは、NULL入力値を使用して関数を評価しま
す。
NULL処理を無効にすると、ディシジョントランスフォーメーションはNULL入力値にデフォ
ルト値を割り当てます。トランスフォーメーションはデフォルト値を使用して関数を評価
ディシジョントランスフォーメーションのNULL処理
155
します。例えば、整数型の入力フィールドにNULL値がある場合、ディシジョントランスフ
ォーメーションは値0を入力に割り当て、入力値0を使用して関数を評価します。
デフォルトでは、NULL処理がディシジョントランスフォーメーションで有効になっていま
せん。NULL処理は[ストラテジ]タブで有効にします。NULL処理は、トランスフォーメー
ションのストラテジを設定した後で有効にできます。
ディシジョンストラテジの設定
ディシジョンストラテジを設定するには、ソースデータをディシジョントランスフォーメ
ーションに接続し、トランスフォーメーションのビューでプロパティを編集します。
1.
ディシジョントランスフォーメーションを開きます。
2.
トランスフォーメーションに入力ポートと出力ポートがあることを確認します。
3.
[ディシジョン]ビューを選択します。
4.
[追加]をクリックします。
5.
ストラテジの名前を入力します。
6.
[Expression]領域で、IF-THEN-ELSE条件文を入力します。
7.
式に関数を追加するには、[関数]タブで関数を参照し、関数名をダブルクリックし
ます。
ヒント: 関数を簡単に入力するには、関数名の最初の数文字を入力し、Ctrl-Spaceキー
を押します。
8.
式にポートを追加するには、[ポート]タブでポートを参照します。 ポート名をダブ
ルクリックして式に追加します。 必要に応じて、[出力ポートの編集]をクリックし
て、出力ポートの設定の編集や出力ポートの追加を行います。
9.
必要に応じて、"//"の後にコメントを入力してコメント行を追加します。
10.
[検証]をクリックして、ディシジョン式が有効であるかどうかを確認します。
11.
[OK]をクリックしてストラテジを保存します。
12.
必要に応じて、その他のストラテジを追加します。 ストラテジごとに一意の出力ポー
トを使用する必要があります。 ストラテジ間で出力ポートを共有することはできませ
ん。
ディシジョントランスフォーメーションの詳
細プロパティ
Data Integration Serviceでディシジョントランスフォーメーションのデータがどのよう
に処理されるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
156
第 11章: ディシジョントランスフォーメーション
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
ディシジョントランスフォーメーションの詳細プロパティ
157
第 12 章
重複レコードの例外トランス
フォーメーション
この章では、以下の項目について説明します。
¨ 重複レコードの例外トランスフォーメーションの概要, 158 ページ
¨ 重複レコードの例外プロセスフロー, 159 ページ
¨ 重複レコードの例外, 160 ページ
¨ 重複レコードの例外の[設定]ビュー , 160 ページ
¨ ポート, 162 ページ
¨ 重複レコードの例外トランスフォーメーションの詳細プロパティ, 165 ページ
¨ 重複レコードの例外マッピングの例, 166 ページ
¨ 重複レコードの例外トランスフォーメーションの作成, 171 ページ
重複レコードの例外トランスフォーメーショ
ンの概要
重複レコード例外トランスフォーメーションは、データ品質プロセスの出力を読み取り、
手動確認が必要な重複レコードを特定する、アクティブなトランスフォーメーションで
す。
重複レコード例外トランスフォーメーションでは、別のトランスフォーメーションや別の
マッピング内のデータオブジェクトから入力を受け取ります。例外トランスフォーメーシ
ョンに対する入力には、レコードが重複しているかどうかを判別するために使用される数
値一致スコアを含める必要があります。重複レコードの例外トランスフォーメーションで
上限および下限の一致スコアのしきい値を設定します。
重複レコードの例外トランスフォーメーションは、以下のアクションのいずれかを実行し
ます。
¨ 一致スコアが上限しきい値と等しいか、上回る場合、レコードは重複として扱われ、デ
ータベースターゲットに書き込まれます。
158
¨ 一致スコアが上限しきい値を下回り、下限しきい値を上回る場合、レコードは重複して
いる可能性があるとして扱われ、手動確認のために別のターゲットに書き込まれます。
レコードがクラスタに属している場合、クラスタ内のすべてのレコードがターゲットに
書き込まれます。
¨ クラスタの一致率がしきい値を下回る場合、クラスタ内のすべてのレコードが一意のレ
コードの出力グループに書き込まれます。サイズが1のクラスタは、一致スコアに関係
なく、一意のグループにルーティングされます。デフォルトでは、例外トランスフォー
メーションで一意のレコードがターゲットに書き込まれません。一意のレコードを返す
ようにトランスフォーメーションを設定できます。
¨ クラスタ内の一致スコアが0~100の範囲外である場合、例外トランスフォーメーション
ではクラスタ内のすべての行が無視されます。データ統合サービスでは、クラスタIDが
含まれているメッセージが記録されます。
関連項目:
¨ 「不良レコードの例外トランスフォーメーションの概要」
(ページ67)
重複レコードの例外プロセスフロー
重複レコードの例外トランスフォーメーションは他のデータ品質トランスフォーメーショ
ンの出力を分析し、さまざまなレベルのデータ品質のレコードを含むテーブルを作成しま
す。
複数のデータ品質トランスフォーメーションを単一のマッピングに設定することも、プロ
セス内のステージ別にマッピングを作成することもできます。
Informatica Data Director for Data Qualityを使用して、手動確認が必要な重複レコー
ドを確認し、更新することができます。
Developerツールを使用して、以下のタスクを実行します。
1.
データ品質の問題に関するスコア値を生成するマッピングを作成します。
2.
クラスタモードで一致トランスフォーメーションを使用して、重複レコードの例外の
スコア値を生成します。
3.
一致トランスフォーメーションの出力を読み取るには、重複レコードの例外トランス
フォーメーションを設定します。一致スコア値に基づいてレコードをデータベーステ
ーブルに書き込むには、このトランスフォーメーションを設定します。
4.
自動統合レコードのターゲットデータオブジェクトを設定します。
5.
[重複レコードテーブルの生成]オプションをクリックして、重複レコードテーブル
を作成し、マッピングキャンパスに追加します。
6.
マッピングをワークフローに追加します。
7.
重複している可能性があるレコードの手動確認をユーザーに割り当てるようにヒュー
マンタスクを設定します。ユーザーはData Director for Data Qualityでレコードを
確認し、更新することができます。
重複レコードの例外プロセスフロー
159
重複レコードの例外
重複レコードの例外トランスフォーメーションを使用して、手動確認が必要な重複データ
のクラスタを識別できます。クラスタ内のレコードの一致スコアで、潜在的な重複が判別
されます。トランスフォーメーションの一致スコアの上限および下限のしきい値を設定で
きます。上限および下限のしきい値によって、類似度が定義されます。
クラスタには、マッチング操作グループと一緒に関連レコードが含まれています。一致ト
ランスフォーメーションでは、重複分析操作およびID解決操作を使用して、クラスタを作
成します。クラスタ内の各レコードに同じクラスタIDがあります。クラスタ内で最も低い
一致スコアがが上限しきい値と下限しきい値の間である場合、重複レコードの例外トラン
スフォーメーションでクラスタが重複レコードの例外クラスタとして識別されます。一致
トランスフォーメーションでは、クラスタID値カラムをすべてのレコードに割り当てま
す。重複レコードは同じクラスタIDを受け取ります。
クラスタ内の最低レコードスコアにより、クラスタタイプが決まります。クラスタに一致
スコアが0.95の11のレコードと、一致スコアが0.79の1つのレコードがあるとします。上限
しきい値が0.9で下限しきい値が0.8の場合、例外トランスフォーメーションではレコード
が一意のレコードテーブルに書き込まれます。
重複レコードの例外の[設定]ビュー
一致スコアしきい値を定義し、重複レコードの例外トランスフォーメーションで各種出力
データを書き込む場所を設定します。
以下の図に、設定可能なプロパティを示します。
以下のプロパティを設定することができます。
下限しきい値
重複レコードのスコア範囲の下限です。トランスフォーメーションは、一致スコアが
この値を下回るレコードを一意のレコードとして処理します。下限しきい値は0~1の
数値です。
160
第 12章: 重複レコードの例外トランスフォーメーション
上限しきい値
重複レコードのスコア範囲の上限です。トランスフォーメーションは、一致スコアが
上限しきい値以上、または同等のレコードを重複レコードとして処理します。上限し
きい値は下限しきい値を超える数値です。
自動統合
すべてのレコードに上限しきい値を超える一致スコアがあるクラスタ。自動統合クラ
スタは確認が不要です。レコードは重複しています。レコードの結合には、統合トラ
ンスフォーメーションを使用できます。デフォルトでは、重複レコードの例外トラン
スフォーメーションは自動統合クラスタを標準出力ポートに書き込みます。
手動統合
すべてのレコードに下限しきい値以上または同等の一致スコアがあり、少なくとも1つ
のレコードに上限しきい値を下回る一致スコアがあるクラスタ。クラスタに重複レコ
ードが含まれているかどうかを判断するには、クラスタの手動確認を実行する必要が
あります。デフォルトでは、重複レコードの例外トランスフォーメーションは手動統
合レコードを重複レコードテーブルに書き込みます。
一意統合
サイズが1であるクラスタ、またはレコードのどれかに下限しきい値を下回る一致スコ
アがあるクラスタ。一意のレコードクラスタは重複していません。 デフォルトでは、
重複レコードの例外トランスフォーメーションは一意のレコードを出力テーブルに書
き込みません。
標準出力
標準出力ポートに書き込まれるレコードのタイプです。
デフォルトは自動統合レコードです。
重複レコードテーブル
重複レコード出力ポートに書き込まれるレコードのタイプです。デフォルトは手動統
合レコードです。
一意のレコードのための独立した出力グループを作成
一意のレコードのために別の出力グループを作成します。一意のレコードのために別
のテーブルを作成しない場合は、一意のレコードを他のグループのどれかに書き込む
ためのトランスフォーメーションを設定できます。あるいは、一意のレコードを出力
テーブルに書き込む処理をスキップすることも可能です。デフォルトでは無効になっ
ています。
重複レコードテーブルの生成
重複レコードのクラスタデータを含める、データベースオブジェクトを作成します。
このオプションを選択すると、Developerツールによってデータベースオブジェクトが
作成されます。Developerツールは、オブジェクトをモデルリポジトリに追加し、オブ
ジェクトのインスタンスをマッピングキャンバスに追加し、ポートをオブジェクトに
リンクします。
重複レコードの例外の[設定]ビュー
161
関連項目:
¨ 「不良レコードの例外の[設定]ビュー」
(ページ74)
重複レコードテーブルの生成
マッピングで例外トランスフォーメーションのインスタンスから重複レコードテーブルを
生成できます。
1.
[設定]ビューで[重複レコードテーブルの生成]をクリックして、テーブルを生成
します。
[リレーショナルデータオブジェクトの作成]ダイアログボックスが表示されます。
2.
テーブルが含まれているデータベースへの接続を参照して選択します。
3.
データベース内の重複レコードテーブル名を入力します。
4.
モデルリポジトリ内の重複レコードテーブルオブジェクト名を入力します。
5.
[完了]をクリックします。
Developerツールでは、マッピングキャンパスに新しいテーブルを追加します。
ポート
重複レコードの例外トランスフォーメーションには複数の入力グループと出力グループが
あります。
下の図に、入力ポートと出力ポートの例を示します。
162
第 12章: 重複レコードの例外トランスフォーメーション
重複レコードの例外トランスフォーメーションの入力
ポート
重複レコードの例外トランスフォーメーションには、入力ポートのデータグループとコン
トロールグループがあります。
データグループには、ソースデータを受け取るユーザー定義のポートが含まれています。
コントロールポートは、一致トランスフォーメーションがソースデータに追加するメタデ
ータを受け取ります。以下の表に、コントロールポートを示します。
ポート
説明
スコア
0~1の10進値。 レコードをクラスタにリンクしたレコー
ドとの類似度を特定します。
Row_Identifier
レコードの一意なID。
Cluster_ID
レコードが属している一致クラスタのID。
重複レコードの例外トランスフォーメーションの出力
ポート
重複レコードの例外トランスフォーメーションには複数の出力グループがあります。デフ
ォルトでは、このトランスフォーメーションによって、重複レコードが標準出力グループ
ポート
163
に書き込まれます。このトランスフォーメーションによって、一致候補がクラスタデータ
グループに書き込まれます。一意のレコードの出力グループを追加することができます。
[設定]ビューのデフォルト設定を変更することによって、このトランスフォーメーショ
ンが出力ポートに書き込むレコードタイプを変更できます。
以下の表に、標準出力グループの出力ポートを示します。
ポート
説明
スコア
0~1の10進値。クラスタ内のあるレコードと別の
レコードが共通している度合いを識別します。
Row_Identifier
レコードの一意なID。
Cluster_ID
一致トランスフォーメーションがレコードを割り
当てるクラスタのIDです。
ユーザー定義のポート
ソースデータフィールドです。
以下の表に、クラスタデータグループの出力ポートを示します。
164
ポート
説明
Row_Identifier
レコードの一否ID。
Sequential_Cluster_ID
ヒューマンタスクでクラスタを識別します。ワー
クフローでは、クラスタをヒューマンタスクのイ
ンスタンスに割り当てるために、連続したクラス
タID値が使用されます。
Cluster_ID
そのレコードが属しているクラスタを特定しま
す。一致トランスフォーメーションでは、クラス
タIDをすべてのレコードに割り当てます。
スコア
0~ 1の10進値。レコードをクラスタにリンクし
たレコードとの類似度を特定します。
Is_Master
レコードがクラスタ内の優先されるレコードであ
るかどうかを示す文字列値。デフォルトでは、ク
ラスタ内の最初の行が優先されるレコードです。
値はYまたはNです。
Workflow_ID
タスク内のレコードのワークフローを識別する
IDです。ワークフロー外でマッピングを実行す
る場合、ワークフローIDはDummyWorkflowIDで
す。
ユーザー定義のポート
ソースデータポートです。
第 12章: 重複レコードの例外トランスフォーメーション
ポートの作成
各入力ポートをデータグループに追加します。入力ポートを追加する場合、Developerツー
ルによって、同じ名前の出力ポートが標準出力グループ、クラスタデータグループ、およ
び一意のレコードグループに追加されます。
1.
データ入力グループを選択します。
グループが強調表示されます。
2.
[新規作成(挿入)]をクリックします。
Developerツールによって、フィールドが標準出力グループ、クラスタデータグルー
プ、および一意のレコードグループに追加されます。
3.
必要に応じて、フィールド名を変更します。
Developerツールによって、他のグループのフィールド名が変更されます。
4.
データソースに追加する必要がある残りのポートを入力します。
重複レコードの例外トランスフォーメーショ
ンの詳細プロパティ
重複レコードの例外トランスフォーメーションには、ソート、出力、キャッシュ設定、お
よびトレースレベルについての詳細プロパティが含まれています。
以下のプロパティを設定することができます。
ソート
重複レコードの例外トランスフォーメーションがクラスタIDを基準にしてレコードを
ソートすることを指定します。デフォルトで有効になっています。重複レコードの例
外トランスフォーメーションがソート順でレコードを受け取る場合は、このプロパテ
ィを無効にします。
キャッシュファイルディレクトリ
データ統合サービスは、キャッシュファイルディレクトリを使用してデータのソート
中に一時ファイルを作成しますデータ統合サービスはデータをソートした後で、一時
ファイルを削除します。 データ統合サービスマシン上の任意のディレクトリをキャッ
シュファイルディレクトリとして使用するように設定できます。以下のディレクトリ
はデフォルト値で、ピリオドで表されます。
<Informaticaサービスのインストールディレクトリ>\tomcat\bin
キャッシュファイルサイズ
重複レコードトランスフォーメーションがソート操作を実行する際に必要なメモリの
最大量を決定します。データ統合サービスは、ソート操作を実行する前に、すべての
データを重複レコードトランスフォーメーションに渡します。デフォルトは400,000バ
イトです。
重複レコードの例外トランスフォーメーションの詳細プロパティ
165
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
重複レコードの例外マッピングの例
組織が顧客データを確認するデータプロジェクトを実施します。 組織は顧客データに複数
の重複レコードがあると判断しています。組織は重複している可能性があるレコードの一
部を手動で確認する必要があります。
データ品質マッピングを作成して、重複顧客レコードを識別します。マッピングには一致
トランスフォーメーションが含まれています。重複レコードの例外トランスフォーメーシ
ョンは、一致トランスフォーメーションから結果を受け取ります。重複レコードの例外ト
ランスフォーメーションによって、ステータスが不明な各レコードクラスタがデータベー
ステーブルに書き込まれます。データアナリストはInformatica Data Director for Data
Qualityでデータを確認し、重複レコードを判別します。
重複レコードの例外マッピング
顧客レコードを調べて、重複レコードを検出するための重複レコードの例外マッピングを
設定します。
下の図に、重複レコードの例外マッピングを示します。
マッピングには次のオブジェクトが含まれます。
Customer_Details
重複レコードが含まれている可能性があるデータソースです。
mat_MatchData
一致トランスフォーメーションでは、顧客データを調べて、レコードが一致している
かどうかを判別します。一致トランスフォーメーションでは、2つのカラムの値の類似
度を示す数値スコアが生成されます。アルゴリズムでは、0から1までの小数値として
166
第 12章: 重複レコードの例外トランスフォーメーション
マッチ率を計算します。2つのカラムの値が同じ場合、アルゴリズムはスコアに1を割
り当てます。
exc_Consolidate
重複している可能性がある顧客、重複が判明している顧客、または一意の顧客レコー
ドを判別する重複レコードの例外トランスフォーメーションです。
Write_GoodMatches_Customerテーブル
手動確認が不要なすべてのレコードを受け取るテーブルです。重複レコードの例外ト
ランスフォーメーションでは、重複レコードおよび一意のレコードがこのテーブルに
書き込まれます。
Target_CustomerConsolidateテーブル
例外トランスフォーメーションによって、重複している可能性があるレコードが
Target_CustomerConsolidateテーブルに書き込まれます。このテーブルのレコード
は、Informatica Data Director for Data Qualityで手動確認が必要です。
一致トランスフォーメーション
一致トランスフォーメーションでは、顧客データを受け取り、ID照合を実行します。
「クラスタ-すべて一致」出力タイプの一致トランスフォーメーションを設定します。一致
トランスフォーメーションはクラスタ内のマッチングレコードを返します。クラスタ内の
各レコードは、スコアが一致のしきい値以上の1つ以上のクラスタ内の他のレコードと一致
している必要があります。一致のしきい値は.75です。
一致トランスフォーメーション [ストラテジ]タブで[Division一致ストラテジ]を選択
します。Divisionストラテジは組み込み一致ストラテジで、住所フィールドに基づいて組
織を識別します。一致トランスフォーメーションの[ストラテジ]タブで、一致を調べる
入力ポートを選択します。ストラテジのウェイトを.5に設定します。
以下の図に、一致トランスフォーメーションのDivisionストラテジ設定を示します。
一致トランスフォーメーションは、クラスタ情報を各出力レコードに追加します。また、
このトランスフォーメーションは、一意のRowIDを各レコードに追加します。
重複レコードの例外の入力グループ
重複レコードの例外トランスフォーメーションには2つの入力グループがあります。このト
ランスフォーメーションには、顧客データを受け取るデータグループがあります。このト
ランスフォーメーションには、行、行ID、クラスタIDの一致スコアが含まれるコントロー
ルグループがあります。
以下の図に、例外トランスフォーメーションの入力グループを示します。
重複レコードの例外マッピングの例
167
データグループには、顧客データが含まれています。顧客データには顧客ID、連絡先、役
職、住所のフィールドがあります。コントロールグループは、各顧客レコードに一致トラ
ンスフォーメーションが追加された、追加のメタデータです。コントロールグループに
は、一致スコア、行、行ID、クラスタIDが含まれています。
重複レコードの例外の[設定]ビューの例
[設定]ビューで上限および下限のしきい値を定義します。トランスフォーメーションで
重複顧客レコード、重複している可能性のあるレコード、および一意の顧客レコードが書
き込まれる場所を特定します。
以下の図に、重複レコードの例外トランスフォーメーションの[設定]ビューを示しま
す。
168
第 12章: 重複レコードの例外トランスフォーメーション
以下の表に、構成設定を示します。
オプション
設定項目
下限しきい値
.80
上限しきい値
.95
自動統合
標準出力テーブル
手動統合
重複レコードテーブル
一意のレコード
標準出力テーブル
[重複レコードテーブルの生成]をクリックして、重複レコードテーブルを作成します。
一意のレコード専用のテーブルは作成しないでください。このトランスフォーメーション
によって、一意のレコードが標準出力テーブルに書き込まれます。
標準出力テーブルレコード
Write_GoodMatches_Customerターゲットテーブルは、標準出力グループから行を受け取り
ます。このテーブルは、一意のレコードを受け取り、重複しているレコードを受け取りま
す。これらのレコードには手動確認が不要です。
以下の図に、例外トランスフォーメーションで返される標準出力レコードを示します。
レコードには、以下のフィールドが含まれます。
スコア
クラスタ内のあるレコードと別のレコードの類似度を示す一致スコアです。一致スコ
アが1のレコードは重複レコードであり、確認は不要です。レコードの一致スコアが下
限しきい値を下回るクラスタは、重複クラスタではありません。
Row_Identifier
テーブル内の各行を識別する一意の行番号です。この例では、行IDに顧客IDが含まれ
ています。
重複レコードの例外マッピングの例
169
クラスタID
クラスタの一意なIDです。クラスタ内の各レコードが同じクラスタIDを受け取りま
す。サンプル出力データの最初の4つのレコードは一意です。各レコードに一意のクラ
スタIDがあります。5行目から9行目はクラスタ5に属しています。住所フィールドが同
一であるため、このクラスタ内のレコードは重複レコードです。
ソースデータフィールド
標準出力テーブルグループは、すべてのソースデータフィールドも受け取ります。
クラスタ出力
Target_CustomerConsolidateテーブルは、クラスタ出力グループからレコードを受け取り
ます。クラスタ出力グループは、重複レコードである可能性のあるレコードを返します。
Target_CustomerConsolidateテーブルのレコードは、Data Director for Data Qualityで
手動確認が必要です。
以下の図に、Target_CustomerConsolidateテーブルのレコードとフィールドの例を示しま
す。
レコードには、以下のフィールドが含まれます。
Row_Identifier
テーブル内の各行を識別する一意の番号です。
シーケンシャルクラスタID
ヒューマンタスクで確認する各クラスタのシーケンシャルIDです。重複レコードの例
外トランスフォーメーションでは、シーケンシャルクラスタIDをクラスタデータ出力
グループのレコードに追加します。
クラスタID
クラスタの一意なIDです。一致トランスフォーメーションでは、クラスタIDをすべて
の出力レコードに割り当てます。重複レコードと重複レコードである可能性のあるレ
コードがクラスタIDを共有します。一意のレコードがクラスタIDを受け取りますが、
レコードは他のレコードとID番号を共有しません。
スコア
クラスタ内のあるレコードと別のレコードの類似度を示す一致スコアです。一致スコ
アが.95未満で.80を上回る、手動確認が必要なレコードです。
170
第 12章: 重複レコードの例外トランスフォーメーション
Is Master
そのレコードがクラスタの優先レコードかどうかを特定します。
WorkflowID
トランスフォーメーションがワークフローに存在していないため、Workflow_IDは
DummyWorkflowIDです。
レコードフィールド
レコード内の他のフィールドに、顧客のソースデータが含まれています。
重複レコードの例外トランスフォーメーショ
ンの作成
重複レコードの例外トランスフォーメーションを作成する場合、入力ポートを設定しま
す。一致を特定するための上限および下限のしきい値を定義します。重複レコードおよび
一意のレコードを書き込むかどうかを設定します。
1.
再利用可能な、または再利用不可能な重複レコードの例外トランスフォーメーション
を作成します。
¨ 再利用可能なトランスフォーメーションを作成するには、[ファイル] > [新
規] > [トランスフォーメーション]を選択します。
¨ 再利用不可能なトランスフォーメーションを作成するには、マッピングを開き、ト
ランスフォーメーションをマッピングキャンバスに追加します。
重複レコードの例外トランスフォーメーションを選択します。
2.
[設定]ビューで、一致スコアの上限および下限のしきい値を設定します。
3.
[データルーティングのオプション]セクションで、標準出力と例外テーブルのプロ
パティを設定して、トランスフォーメーションが各レコードタイプを書き込む場所を
設定します。
必要に応じて、重複レコード、確認する重複レコードおよび一意のレコードを書き込
むかどうかを設定します。
4.
必要に応じて、一意のレコードテーブルを生成します。新しいテーブルのデータベー
ス接続とテーブル名の情報を入力します。一意のレコードテーブルを生成する場合、
モデルリポジトリにデータベースオブジェクトが作成されます。
5.
入力ポートを設定します。入力ポートを追加する場合、Developerツールによって同じ
ポート名が出力グループに追加されます。
¨ 再利用可能なトランスフォーメーションを作成する場合は、[ポート]タブを選択
し、トランスフォーメーションに接続するデータのポートを追加します。
¨ 再利用不可能なトランスフォーメーションを作成する場合は、他のオブジェクトを
マッピングキャンバスに追加し、入力ポートをトランスフォーメーションにドラッ
グします。
重複レコードの例外トランスフォーメーションの作成
171
6.
トランスフォーメーション出力ポートを1つ以上のデータターゲットに接続します。出
力ポートを[設定]ビューで設定した出力オプションに対応するデータオブジェクト
に接続します。
¨ 再利用可能なトランスフォーメーションを作成する場合は、トランスフォーメーシ
ョンをマッピングに追加し、出力ポートを接続します。
¨ 再利用不可能なトランスフォーメーションを作成する場合は、トランスフォーメー
ションにより、ポートがクラスタデータテーブルに接続されます。出力ポートを他
のデータターゲットに接続する必要があります。
172
第 12章: 重複レコードの例外トランスフォーメーション
第 13 章
式トランスフォーメーション
この章では、以下の項目について説明します。
¨ 式トランスフォーメーションの概要, 173 ページ
¨ 式トランスフォーメーションの開発, 173 ページ
¨ 式トランスフォーメーションの詳細プロパティ, 174 ページ
¨ 式トランスフォーメーションのポート, 174 ページ
式トランスフォーメーションの概要
式トランスフォーメーションは、単一の行での非集計計算の実行に使用できる、パッシブ
トランスフォーメーションです。また、式トランスフォーメーションを用いて条件文をテ
ストした後で、結果をターゲットやその他のトランスフォーメーションに渡すこともでき
ます。
例えば、従業員の給与を調整したり、名前と姓を連結したり、文字列を数値に変換したり
することが可能です。
出力ポートごとに式を作成しておくと、単一の式トランスフォーメーションで複数の式の
入力が可能になります。たとえば、国税や地方税、社会保障費や健康保険料といった、各
従業員からの数種の源泉税額を計算したい場合があります。これらの計算では従業員の給
与、源泉カテゴリ、場合によっては対応する税率が必要であるため、給与と源泉カテゴリ
に対してパススルーポートを作成できます。 また、計算ごとに個別の出力ポートを作成す
ることもできます。
式トランスフォーメーションの開発
式トランスフォーメーションを開発するときは、作成するポートタイプや式タイプなどの
項目について考慮する必要があります。
173
式トランスフォーメーションを開発するときは、以下の項目について考慮してください。
¨ ポートタイプ(入力、出力、パススルー、変数など)。 式トランスフォーメーション
で式を使用するには、入力ポートまたはパススルーポート、および出力ポートを含める
必要があります。
¨ トランスフォーメーションで使用する式。
式トランスフォーメーションの詳細プロパテ
ィ
Data Integration Serviceが式トランスフォーメーションのデータを処理する方法を決定
するプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
式トランスフォーメーションのポート
式トランスフォーメーションにはさまざまなポートタイプがあり、ダウンストリームトラ
ンスフォーメーションにデータを渡したり、式を入力したりするなど、さまざまなトラン
スフォーメーションタスクを実行できます。
式トランスフォーメーションは、以下のポートタイプを備えています。
入力
アップストリームトランスフォーメーションからデータを受信します。 入力ポート
は、計算に使用される値を提供します。
出力
式の戻り値を格納します。 出力ポートの設定オプションとして式を入力します。 ま
た、ポートごとにデフォルト値を設定することもできます。
パススルー
変更せずにそのままデータを渡します。
変数
ローカル変数に使用されます。
174
第 13章: 式トランスフォーメーション
第 14 章
フィルタトランスフォーメー
ション
この章では、以下の項目について説明します。
¨ フィルタトランスフォーメーションの概要, 175 ページ
¨ フィルタトランスフォーメーションの詳細プロパティ, 176 ページ
¨ フィルタ条件, 176 ページ
¨ フィルタトランスフォーメーションのパフォーマンスのヒント, 177 ページ
フィルタトランスフォーメーションの概要
フィルタトランスフォーメーションは、マッピング内の行をフィルタで除外するために使
用します。フィルタトランスフォーメーションはアクティブトランスフォーメーション
で、トランスフォーメーション通過する行の数を変更することができます。
フィルタトランスフォーメーションで行が通過を許可されるのは、指定されたフィルタ条
件を満たした場合であり、条件を満たさない行は削除されます。データは1つ以上の条件に
基づいてフィルタできます。
Data Integration Serviceで指定の条件を満たすかどうかを基準に評価された各行につい
て、フィルタ条件によりTRUEまたはFALSEが返されます。 TRUEを返した各行はトランスフ
ォーメーションを通過し、FALSEを返した各行は除去されてメッセージがログに書き込まれ
ます。
複数のトランスフォーメーションからのポートをフィルタトランスフォーメーションに連
結することはできません。フィルタの入力ポートは、1つのトランスフォーメーションから
のものでなければなりません。
175
フィルタトランスフォーメーションの詳細プ
ロパティ
Data Integration Serviceがフィルタトランスフォーメーションのデータを処理する方法
を決定するプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
フィルタ条件
フィルタ条件は、TRUEまたはFALSEを返す式です。
式エディタで条件を入力します。 フィルタ条件では大文字と小文字が区別されます。
フィルタとして1つの値を返すすべての式を使用できます。 例えば給料が$30,000未満の従
業員の行を除外する場合は、以下のように条件を入力します。
SALARY > 30000
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)
176
第 14章: フィルタトランスフォーメーション
この条件は、FIRST_NAMEポートがNULLであれば戻り値としてFALSEを返し、その行を無視す
ることを指定しています。NULLが含まれていなければ、行は次のトランスフォーメーショ
ンへ渡されます。
フィルタトランスフォーメーションのパフォ
ーマンスのヒント
フィルタトランスフォーメーションのパフォーマンスを向上させるためのヒントを紹介し
ます。
マッピングの初期段階でフィルタトランスフォーメーションを使用します。
マッピング内のソースのできる限り近くにフィルタトランスフォーメーションを配置
します。 マッピングを介して削除する予定の行を通過させる代わりに、ソースからタ
ーゲットへのデータフローの初期段階で不必要なデータを除外することができます。
フィルタトランスフォーメーションのパフォーマンスのヒント
177
第 15 章
Javaトランスフォーメーショ
ン
この章では、以下の項目について説明します。
¨ Javaトランスフォーメーションの概要, 178 ページ
¨ Javaトランスフォーメーションの設計, 182 ページ
¨ Javaトランスフォーメーションのポート, 182 ページ
¨ Javaトランスフォーメーションの詳細プロパティ, 183 ページ
¨ Javaコードの開発, 186 ページ
¨ JavaトランスフォーメーションのJavaのプロパティ, 191 ページ
¨ Javaトランスフォーメーションによるフィルタの最適化, 194 ページ
¨ Javaトランスフォーメーションの作成, 198 ページ
¨ Javaトランスフォーメーションのコンパイル, 199 ページ
¨ Javaトランスフォーメーションのトラブルシューティング, 200 ページ
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トランスフォ
178
ーメーションを使用してマッピングを実行するとき、JREを使用してバイトコードを実行
し、入力行を処理して出力行を生成します。
Javaトランスフォーメーションを作成するには、トランスフォーメーションロジックを定
義するJavaコードスニペットを記述します。 以下のイベントに基づいて、Javaトランスフ
ォーメーションのトランスフォーメーション動作を定義します。
¨ トランスフォーメーションが入力行を受け取ったとき。
¨ トランスフォーメーションがすべての入力行を処理したとき。
再利用可能および再利用不可能なJavaトランスフォー
メーション
再利用可能または再利用不可能なJavaトランスフォーメーションを作成できます。
再利用可能なトランスフォーメーションは、複数のマッピングで使用できます。
再利用不可能なトランスフォーメーションは、単一のマッピングで使用されます。
プロパティの定義やJavaコードの作成を行うエディタのビューは、再利用可能なJavaトラ
ンスフォーメーションを作成しているか再利用不可能なJavaトランスフォーメーションを
作成しているかによって異なります。
再利用可能なJavaトランスフォーメーションのエディタビュー
エディタ内のビューで、再利用可能なJavaトランスフォーメーションのプロパティを定義
したり、Javaコードを作成したりします。
再利用不可能なJavaトランスフォーメーションを作成するには、「「再利用可能なJavaト
ランスフォーメーションの作成」 (ページ198)」を参照してください。
再利用可能なJavaトランスフォーメーションでは、以下のビューを利用できます。
概要
トランスフォーメーションの名前と説明を入力し、入出力ポートを作成および設定し
ます。
Java
Javaコードの定義、コンパイル、およびコンパイルエラーの修正を行います。
[Java]ビューには次のタブがあります。
¨ コードエントリタブ。Javaコードスニペットを定義できます。
¨ [コード全体]タブ。Javaトランスフォーメーションの完全なJavaクラスコードが
表示されます。
詳細
Javaトランスフォーメーションの詳細プロパティを設定します。
再利用不可能なJavaトランスフォーメーション用のエディタの
ビュー
再利用不可能なJavaトランスフォーメーションのプロパティの定義やJavaコードの作成
は、エディタのビューで行います。
Javaトランスフォーメーションの概要
179
再利用不可能なJavaトランスフォーメーションを作成する方法については、「再利用不可
能なJavaトランスフォーメーションの作成」 (ページ198)を参照してください。
再利用不可能な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デー
タ型に変換します。
180
第 15章: Javaトランスフォーメーション
Javaトランスフォーメーションは、出力行を読み込むと、Javaデータ型を出力ポートデー
タ型に変換します。
例えば、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」
(ページ211)を参照してください。
Javaトランスフォーメーションの概要
181
Javaトランスフォーメーションの設計
Javaトランスフォーメーションを設計するときは、作成するトランスフォーメーションの
タイプなどの要素について考慮する必要があります。
Javaトランスフォーメーションの設計時には、以下の点について検討します。
¨ アクティブまたはパッシブ、どちらのJavaトランスフォーメーションを作成する必要が
あるか。
パッシブJavaランスフォーメーションは、トランスフォーメーション内のそれぞれの入
力行に対して1つの出力行を生成します。
アクティブJavaトランスフォーメーションは、トランスフォーメーションのそれぞれの
入力行に対して複数の出力行を生成します。
¨ Javaトランスフォーメーションに関数を定義する必要があるか。 定義する必要がある
場合、各関数にどの式を含めるか。
例えば、入力または出力ポートの値をルックアップする式、あるいはJavaトランスフォ
ーメーション変数の値をルックアップする式を呼び出す関数を定義できます。
¨ 再利用可能なJavaトランスフォーメーションと再利用不可能なJavaトランスフォーメー
ションのどちらを作成するか。
再利用可能なトランスフォーメーションは、複数のマッピングで使用できます。
再利用不可能なトランスフォーメーションは、単一のマッピングで使用できます。
Javaトランスフォーメーションのポート
Javaトランスフォーメーションは、入力ポートと出力ポートを持つことができます。
再利用不可能なJavaトランスフォーメーションのポートの作成や編集を行うには、エディ
タの[ポート]タブを使用します。再利用可能なJavaトランスフォーメーションのポート
の作成や編集を行うには、エディタの[概要]ビューを使用します。
ポートのデフォルト値を指定できます。トランスフォーメーションにポートを追加した
ら、ポート名をJavaコードスニペット内で変数として使用できます。
ポートの作成
作成したJavaトランスフォーメーションには、入力グループおよび出力グループが1つずつ
含まれています。
ポートを作成すると、Developerツールはそのポートを現在選択されている行またはグルー
プの下に追加します。
デフォルトポート値の設定
Javaトランスフォーメーションでは、ポートのデフォルト値を定義できます。
182
第 15章: Javaトランスフォーメーション
Javaトランスフォーメーションは、ポートのデータ型に基づいて、ポートのデフォルト値
を適用してポート変数を初期化します。
入出力ポート
Javaトランスフォーメーションは、Javaコードスニペットに値が割り当てられていない未
接続のn入力または出力ポートの値を初期化します。
以下の表に、Javaトランスフォーメーションがポートのデータ型に基づきポートをどのよ
うに初期化するかを示します。
ポートのデ
ータ型
ポートの初期化
単純
ポートのデフォルト値をNULL以外の値に定義した場合、トラ
ンスフォーメーションはポート変数の値をそのデフォルト値
に初期化します。
それ以外の場合、ポート変数の値は0に初期化されます。
複合
ポートのデフォルト値を定義した場合、トランスフォーメー
ションは新規のStringオブジェクトまたはbyte[]オブジェ
クトを作成し、そのオブジェクトをデフォルト値に初期化し
ます。 それ以外の場合、トランスフォーメーションはポー
ト変数をNULLに初期化します。
注: Javaコードで値がNULLの入力ポート変数にアクセスす
ると、NullPointerExceptionが発生します。
Javaトランスフォーメーションの詳細プロパ
ティ
Javaトランスフォーメーションには、トランスフォーメーションコードとトランスフォー
メーション両方の詳細プロパティが含まれます。
マッピング内でトランスフォーメーションを使用する際には、トランスフォーメーション
のプロパティをオーバーライドできます。
[詳細]タブで、Javaトランスフォーメーションの以下の詳細プロパティを定義できま
す。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
高精度10進演算を有効にする
精度が15より大きく28未満のDecimalデータ型ポートをJava BigDecimalデータ型ポー
トとして処理します。
精度が15より大きく28未満のDecimalデータ型ポートをJava Doubleデータ型ポートと
して処理するには、高精度処理を無効にします。
Javaトランスフォーメーションの詳細プロパティ
183
以下の表に、高精度オプションを有効にしたか無効にしたかに基づいてJavaトランス
フォーメーションがDecimalデータ型入力ポートの値を扱う方法を示します。
例
高精度処理
が有効
高精度処理が無効
Decimalタイプ入力ポートが
値40012030304957666903を
受け取ります。
Javaトラン
スフォーメ
ーションは
値をそのま
まにしま
す。
Javaトランスフォーメ
ーションは値を以下の
値に変換します。
4.00120303049577 x 10^19
日付/時刻にナノ秒を使用する
date/timeデータ型ポートを精度がナノ秒のJava BigDecimalデータ型ポートに変換し
ます。
ナノ秒処理を無効にすると、生成されるJavaコードはdate/timeデータ型ポートを精度
がミリ秒のJava Longデータ型ポートに変換します。
クラスパス
[インポート]タブでインポートする非標準Javaパッケージに関連付けられたJARファ
イルまたはクラスファイルのディレクトリのクラスパスを設定します。
Javaコードのコンパイルには、JARファイルまたはクラスファイルのディレクトリが
Developerツールクライアントマシン上でアクセス可能でなければなりません。
オペレーティングシステムに応じてクラスパスの各項目を以下のように区切ります。
¨ UNIXの場合、クラスパスの各項目を区切るにはコロンを使用します。
¨ Windowsの場合、クラスパスの各項目を区切るにはセミコロンを使用します。
例えば、[インポート]タブでJavaコンバータパッケージをインポートし、そのパッ
ケージをconverter.jarで定義する場合は、JavaトランスフォーメーションのJavaコ
ードをコンパイルする前にconverter.jarファイルの場所をクラスパスに追加する必要
があります。
注: 組み込みのJavaパッケージの場合、クラスパスを設定する必要はありません。例
えば、java.ioは組み込みJavaパッケージであるため、java.ioに対してクラスパスを
設定する必要はありません。
アクティブ
トランスフォーメーションは、それぞれの入力行に対して複数の出力行を生成できま
す。
Javaトランスフォーメーションを作成した後は、このプロパティを変更できません。
このプロパティを変更する必要がある場合、新しいJavaトランスフォーメーションを
作成します。
184
第 15章: Javaトランスフォーメーション
トランスフォーメーション範囲
データ統合サービスでトランスフォーメーションロジックを着信データに適用するた
めに使用する方法を定義します。以下の値のいずれかを選択できます。
¨ 行。トランスフォーメーションロジックを、データの1つの行ごとに適用します。
手続きの結果がデータの単一の行に依存する場合は[行]を選択してください。
¨ Transaction。トランスフォーメーションロジックをトランザクションのすべての
行に適用します。手続きの結果が同一トランザクションのすべての行に依存し、他
のトランザクションの行には依存していないない場合には、[Transaction]を選
択します。[Transaction]を選択した場合、すべての入力グループを同じトラン
ザクション制御ポイントに接続する必要があります。
¨ すべての入力。トランスフォーメーションロジックをすべての入力データに適用し
ます。[すべての入力]を選択すると、データ統合サービスはトランザクション境
界を削除します。[すべての入力]は、手続きの結果がソース内のすべての行に依
存する場合に選択します。
注: トランスフォーメーション範囲プロパティは、Hive環境のみで有効です。
ステートレス
前の行の値に依存していない入力行データを処理します。ステートレスプロパティ
は、Hive環境のみで有効です。
Developerツールクライアントのクラスパスの設定
Developerツールクライアントのクラスパスにjarファイルまたはクラスファイルのディレ
クトリを追加できます。
Developerツールクライアントが動作しているマシン用にクラスパスを設定するには、次の
作業のいずれかを実行します。
¨ CLASSPATH環境変数を設定します。CLASSPATH環境変数はDeveloperツールクライアント
マシン上で設定します。 これは、マシン上で実行されているjavaプロセスすべてに適
用されます。
¨ 再利用不可能なJavaトランスフォーメーションの場合は、Javaトランスフォーメーショ
ンの詳細プロパティでクラスパスを設定します。 これは、このJavaトランスフォーメ
ーションを含むマッピングに適用されます。 Developerツールクライアントは、Javaコ
ードをコンパイルするときにクラスパス内のファイルをインクルードします。 このプ
ロパティは、再利用可能なJavaトランスフォーメーションに対しては設定できません。
jarファイルまたはクラスファイルのディレクトリをJavaトランスフォーメーションのクラ
スパスに追加するには、以下の手順を実行します。
1.
[詳細]タブで、[クラスパス]の横にある[値]カラムの下矢印アイコンをクリッ
クします。
[クラスパスの編集]ダイアログボックスが表示されます。
2.
クラスパスを追加するには、以下の手順を実行します。
a.
[追加]をクリックします。
[名前を付けて保存]ウィンドウが表示されます。
Javaトランスフォーメーションの詳細プロパティ
185
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コードの記述、表示、およびコンパイルに使用するコンポ
ーネントで構成されます。
186
第 15章: Javaトランスフォーメーション
コードプロパティ
JavaトランスフォーメーションAPIメソッドなどのJavaコードの表示や入力ができるコ
ントロールを提供します。 以下の表に、[コード]プロパティに用意されているコン
トロールを示します。
コントロー
ル
説明
ナビゲータ
入力ポート、出力ポート、および呼び出し可能なJavaト
ランスフォーメーションAPIメソッドを表示します。
ナビゲータ内の項目の説明を表示するには、その項目を
クリックします。
[Javaコード]ウィンドウに項目を追加するには、その
項目をダブルクリックします。 また、ナビゲータから
[Javaコード]ウィンドウに項目をドラッグすることも
できます。
ナビゲータは、以下のコードエントリタブに用意されて
います。
- ヘルパ
- 入力時
- 最後
[Javaコー
ド]ウィン
ドウ
トランスフォーメーションのJavaコードを表示または入
力できます。 [Javaコード]ウィンドウには、基本的な
Java構文ハイライトを使用してJavaコードが表示されま
す。
注: [コード全体]タブでは、Javaトランスフォーメー
ションのクラスコード全体の表示は可能ですが、編集は
できません。
[Javaコード]ウィンドウは、以下のコードエントリタ
ブに用意されています。
-
インポート
ヘルパ
入力時
最後
関数
最適化インタフェース
コード全体
Javaコードの開発
187
コントロー
ル
説明
[新しい関
数]コマン
ド
[関数の定義]ダイアログボックスを開きます。このダ
イアログボックスを使用して、Java式を呼び出す関数を
定義します。
[関数]コマンドは、[関数]タブに用意されていま
す。
編集ツール
バー
切り取り、コピー、貼り付けなど、Javaコードを編集す
るためのツールアイコンをクリックできます。
編集ツールバーは、以下のコードエントリタブに用意さ
れています。
-
インポート
ヘルパ
入力時
最後
関数
最適化インタフェース
コンパイルプロパティCompilation properties
Javaコードをコンパイルおよびデバッグするコントロールを提供します。 以下の表
に、コンパイルプロパティのコントロールを示します。
コントロー
ル
説明
[コンパイ
ル]コマン
ド
トランスフォーメーション用のJavaコードをコンパイル
します。
[結果]ウ
ィンドウ
Javaトランスフォーメーションクラスのコンパイル結果
が表示され、コード内のエラーの発生源を見つけること
ができます。
コード内のエラーを見つけるには、[結果]ウィンドウ
でエラーメッセージを右クリックし、スニペットコード
とコード全体のどちらでエラーを表示するかを選択しま
す。
[結果]ウィンドウでエラーメッセージをダブルクリッ
クしてエラーの発生源を見つけることもできます。
Javaコードスニペットの作成
Javaコードスニペットを作成してトランスフォーメーションの動作を定義するには、コー
ドエントリタブの[Javaコード]ウィンドウを使用します。
1.
188
適切なコードエントリタブをクリックします。
第 15章: Javaトランスフォーメーション
以下の表に、[Java]ビューのコードエントリタブで完了できるタスクを示します。
タブ
説明
イン
ポー
ト
アクティブまたはパッシブなJavaトランスフォーメーションに
対して、サードパーティ製、組み込み、またはカスタムのJava
パッケージをインポートします。 パッケージのインポート後、
それらのパッケージを他のコードエントリタブで使用できま
す。
ヘル
パ
アクティブまたはパッシブなJavaトランスフォーメーション内
のJavaトランスフォーメーションクラスのユーザー定義変数お
よびメソッドを宣言します。 変数およびメソッドを宣言する
と、それらを[インポート]タブを除く他のすべてのコードエ
ントリタブで使用できます。
入力
時
入力行を受け取った際のアクティブまたはパッシブなJavaトラ
ンスフォーメーションの動作を定義します。 このタブで定義し
たJavaコードは、入力行ごとに1回実行されます。
このタブでは、入出力ポートのデータ、変数、およびJavaトラ
ンスフォーメーションAPIメソッドにアクセスしして使用する
こともできます。
最後
すべての入力データを処理した後のアクティブまたはパッシブ
なJavaトランスフォーメーションの動作を定義します。
このタブでは、アクティブなトランスフォーメーションの出力
データの設定や、JavaトランスフォーメーションAPIメソッド
の呼び出しも行うことができます。
関数
Javaトランスフォーメーションの式を呼び出す関数を、Javaプ
ログラミング言語を使用して定義します。 例えば、入出力ポー
トの値やJavaトランスフォーメーションの変数の値をルックア
ップする式を呼び出す関数を定義できます。
[関数]タブで、手動で関数を定義するか、または[新しい関
数]をクリックして関数を簡単に定義できる[関数の定義]ダ
イアログボックスを呼び出します。
最適
化イ
ンタ
フェ
ース
初期選択または最適化にプッシュインを定義します。 ナビゲー
タで、最適化方式を選択します。 最適化を有効にするには、コ
ードスニペットを更新します。 入力ポートおよびフィルタロジ
ックをプッシュする関連付けられた出力ポートを定義します。
コー
ド全
体
読み取り専用。このタブでは、Javaトランスフォーメーション
のクラスコード全体を表示し、コンパイルすることができま
す。
2.
スニペット内の入力または出力カラムの変数にアクセスするには、ナビゲータに表示
された[入力]または[出力]リストを展開し、ポートの名前をダブルクリックしま
す。
3.
スニペット内のJavaトランスフォーメーションAPIを呼び出すには、ナビゲータに表示
された[呼び出し可能なAPI]リストを展開し、メソッドの名前をダブルクリックしま
す。 必要に応じて、メソッドに適切な入力値を設定してください。
Javaコードの開発
189
4.
コードエントリタブのタイプに基づいて、適切なJavaコードを書き込みます。
[コード全体]タブの[Javaコード]ウィンドウで、Javaトランスフォーメーション
のクラスコード全体を表示します。
Javaパッケージのインポート
[インポート]タブでは、アクティブまたはパッシブなJavaトランスフォーメーションに
対してJavaパッケージをインポートできます。
サードパーティ製、組み込み、またはカスタムのJavaパッケージをインポートできます。
Javaパッケージのインポート後、インポートされたパッケージを他のコードエントリタブ
で使用できます。
注: [インポート]タブでは、静的変数、インスタンス変数、またはユーザーメソッドの
宣言または使用はできません。
Developerツールで、Javaトランスフォーメーションを含むメタデータをエクスポートまた
はインポートしても、Javaトランスフォーメーションが必要とするサードパーティ製また
はカスタムのパッケージが格納されているJARファイルやクラスファイルはエクスポートま
たはインポートされません。
Javaトランスフォーメーションを含むメタデータをインポートする場合は、必要なサード
パーティ製またはカスタムのパッケージが格納されたJARファイルまたはクラスファイル
を、DeveloperツールクライアントおよびData Integration Serviceノードにコピーする必
要があります。
例えばJava I/Oパッケージをインポートするには、[インポート]タブに以下のコードを
入力します。
import java.io.*;
標準以外のJavaパッケージをインポートするときは、Javaトランスフォーメーションので
クラスパスにパッケージまたはクラスを追加します。
Helperコードの定義
[ヘルパ]タブで、アクティブJavaトランスフォーメーションまたはパッシブJavaトラン
スフォーメーション内のJavaトランスフォーメーションクラスのユーザー定義変数および
メソッドを宣言できます。
[ヘルパ]タブで変数およびメソッドを宣言すると、[インポート]タブを除くすべての
コードエントリタブでその変数およびメソッドを使用できます。
[ヘルパ]タブでは、以下のタイプのコード、変数、およびメソッドを宣言できます。
¨ 静的コードおよび静的変数。
静的ブロック内では、静的変数および静的コードを宣言できます。 マッピング内の再
利用可能なJavaトランスフォーメーションのすべてのインスタンスが、静的コードおよ
び静的変数を共有します。 静的コードは、Javaトランスフォーメーション内の他のど
のコードよりも先に実行されます。
190
第 15章: 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)
{
return num1+num2;
}
JavaトランスフォーメーションのJavaのプロ
パティ
特定のトランスフォーメーションイベントに対するトランスフォーメーションの動作を定
義するJavaコードを記述してコンパイルするには、[Java]ビューのコードエントリタブ
を使用します。
以下のコードエントリタブがあります。
¨ インポート
¨ ヘルパ
¨ 入力時
¨ 最後
¨ 関数
JavaトランスフォーメーションのJavaのプロパティ
191
¨ 最適化インタフェース
Javaトランスフォーメーションのクラスコード全体は、[コード全体]タブに表示されま
す。
[インポート]タブ
[インポート]タブでは、アクティブまたはパッシブなJavaトランスフォーメーションの
Javaパッケージ(サードパーティ製、ビルトイン、またはカスタム)をインポートできま
す。
Javaパッケージをインポートするには、[インポート]タブの[コード]プロパティの
[Javaコード]ウィンドウで、パッケージをインポートするコードを入力します。
例えば、次のコードを入力するとjava.ioパッケージをインポートできます。
import java.io.*;
Javaパッケージをインポートするコードをコンパイルするには、[インポート]タブの
[コンパイル]プロパティにある[コンパイル]をクリックします。 コンパイルの結果
は、[インポート]タブの[結果]ウィンドウに表示されます。
インポートしたJavaパッケージは、他のコードエントリタブで使用することができます。
[ヘルパ]タブ
[ヘルパ]タブで、アクティブまたはパッシブなJavaトランスフォーメーション内のJava
トランスフォーメーションクラスのユーザー定義変数およびメソッドを宣言できます。
ユーザー定義変数およびメソッドを宣言するには、[Javaコード]ウィンドウの[ヘル
パ]タブの[コード]プロパティにコードを入力します。
Javaトランスフォーメーションのヘルパコードをコンパイルするには、[ヘルパ]タブの
[コンパイル]プロパティの[コンパイル]をクリックします。 コンパイルの結果は[結
果]ウィンドウの[ヘルパ]タブに表示されます。
変数およびメソッドを宣言すると、それらを[インポート]タブを除く他のすべてのコー
ドエントリタブで使用できます。
[入力時]タブ
[入力時]タブでは、入力行を受け取る際のアクティブまたはパッシブJavaトランスフォ
ーメーションの動作を定義します。 このタブでは、入出力ポートのデータ、変数、および
JavaトランスフォーメーションAPIメソッドにアクセスしして使用することもできます。
このタブで定義したJavaコードは、入力行ごとに1回実行されます。
入力行を受け取る際のJavaトランスフォーメーションの動作を定義するには、[Javaコー
ド]ウィンドウの[入力時]タブの[コード]プロパティにコードを入力します。
192
第 15章: 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トランスフォー
メーションAPIメソッドの呼び出しも行うことができます。
Javaトランスフォーメーションのすべての入力データを処理した後の動作を定義するに
は、[最後]タブの[コード]プロパティの[Javaコード]ウィンドウでコードを入力し
ます。
[最後]タブでは、以下の変数およびAPIメソッドにアクセスしてそれらを定義することが
できます。
¨ 出力ポート変数。[ポート]タブで変数として定義した出力ポートの名前を使用する
か、アクティブなJavaトランスフォーメーションの出力データを設定できます。
¨ インスタンス変数とユーザー定義メソッド。[ヘルパ]タブで宣言したインスタンス変
数またはユーザー定義メソッドを使用します。
JavaトランスフォーメーションのJavaのプロパティ
193
¨ JavaトランスフォーメーションAPIメソッド。Javaトランスフォーメーションによって
提供されるAPIメソッドを呼び出します。
例えば、以下のJavaコードを使用して、データの終わりに達したときにログに情報を書
き込みます。
logInfo("Number of null rows for partition is: " + partCountNullRows);
Javaトランスフォーメーションのコードをコンパイルするには、[最後]タブの[コンパ
イル]プロパティにある[コンパイル]をクリックします。 コンパイルの結果は、[最
後]タブの[結果]ウィンドウに表示されます。
[関数]タブ
[関数]タブでは、Javaトランスフォーメーションの式を呼び出す関数をJavaプログラミ
ング言語を使用して定義します。
例えば、入出力ポートの値やJavaトランスフォーメーションの変数の値をルックアップす
る式を呼び出す関数を定義できます。
関数を定義するには、[関数]タブの[コード]プロパティの[Javaコード]ウィンドウ
で手動で定義します。また、[新しい関数]をクリックして[関数の定義]ダイアログボ
ックスを呼び出せば、簡単に関数を定義することができます。
コードをコンパイルするには、[関数]タブの[コンパイル]プロパティにある[コンパ
イル]をクリックします。 コンパイルの結果は、[関数]タブの[結果]ウィンドウに表
示されます。
[コード全体]タブ
[コード全体]タブでは、JavaトランスフォーメーションのJavaクラスコード全体を表示
してコードをコンパイルできます。ただし、コードを編集することはできません。
[コード]プロパティの[Javaコード]ウィンドウにクラスコード全体が表示されます。
Javaトランスフォーメーションのコード全体をコンパイルするには、[コード全体]タブ
の[コンパイル]プロパティにある[コンパイル]をクリックします。 コンパイルの結果
は、[コード全体]タブの[結果]ウィンドウに表示されます。
Javaトランスフォーメーションによるフィル
タの最適化
Data Integration Serviceは、アクティブなJavaトランスフォーメーションにフィルタの
最適化を適用できます。Javaトランスフォーメーションを定義するときは、Javaトランス
194
第 15章: Javaトランスフォーメーション
フォーメーションの[最適化インタフェース]タブで、フィルタの最適化のコードを追加
します。
Javaトランスフォーメーションによる初期選択の最適
化
Javaトランスフォーメーションに副次作用がない場合は、初期選択の最適化のアクティブ
またはパッシブなJavaトランスフォーメーションを有効化できます。 オプティマイザは、
Javaトランスフォーメーションを介してフィルタロジックを渡し、必要に応じてフィルタ
条件を変更します。
初期選択の最適化のコードスニペットを表示するには、[最適化インタフェース]タブの
ナビゲータで、PredicatePushOptimizationを選択します。
allowPredicatePush
ブール型。 初期選択を有効にします。 初期選択を有効にするためにTrueの結果とメッセ
ージを返すようにこの関数を変更します。 デフォルトはFalseで、最適化がサポートされ
ていないというメッセージが返されます。
public ResultAndMessage allowPredicatePush(boolean ignoreOrderOfOp) {
// To Enable PredicatePushOptimization, this function should return true
//return new ResultAndMessage(true, "");
return new ResultAndMessage(false, "Predicate Push Optimization Is Not Supported");
}
canGenerateOutputFieldEvalError
ブール型。 Javaトランスフォーメーションがゼロ除算エラーなどの出力フィールドエラー
を返すことができるかどうかを示します。 Javaトランスフォーメーションが出力フィール
ドエラーを生成しない場合はFalseを返すようにこの関数を変更します。 Javaトランスフ
ォーメーションがフィールドエラーを生成できるとき、Data Integration Serviceでは初
期選択の最適化は使用できません。
public boolean canGenerateOutputFieldEvalError() {
// If this Java transformation can never generate an output field evaluation error,
// return false.
return true;
}
getInputExpr
入力フィールドのどの入力値が出力フィールドを構成しているかを示すInformaticaの式を
返します。 オプティマイザは、Javaトランスフォーメーションを介してフィルタロジック
をプッシュするために、出力フィールドを構成している入力フィールドを認識する必要が
あります。
public InfaExpression getInputExpr(TransformationField field,
TransformationDataInterface group) {
// This should return an Informatica expression for output fields in terms of input fields
// We will only push predicate that use fields for which input expressions are defined.
// For example, if you have two input fields in0 and in1 and three output fields out0, out1,
out2
// out0 is the pass-through of in1, out2 is sum of in1 and in2, and out3 is unknown, the code
should be:
//if (field.getName().equals("out0"))
// return new InfaExpression("in0", instance);
//else if (field.getName().equals("out1"))
Javaトランスフォーメーションによるフィルタの最適化
195
//
return new InfaExpression("in0 + in1", instance);
//else if (field.getName().equals("out2"))
//
return null;
return null;
}
例えば、マッピングにフィルタ式が含まれている場合は、"out0 > 8"です。 out0は、Javaト
ランスフォーメーションのout0出力ポートの値です。 out0の値をin0入力ポート+ 5の値と
して定義できます。 オプティマイザは、式"(in0 + 5) > 8"を初期選択の最適化のJavaトラン
スフォーメーション以降にプッシュできます。 出力フィールドに入力フィールドの式がな
い場合は、NULLを返すことができます。 オプティマイザでは、入力式がない出力フィール
ド以降にフィルタ式がプッシュされることはありません。
次のコードを含めることができます。
if (field.getName().equals("out0"))
return new InfaExpression("in0 + 5", instance);
else if (field.getName().equals("out2"))
return null;
inputGroupsPushPredicateTo
フィルタロジックを受け取ることができるグループのリストを返します。 Javaトランスフ
ォーメーションには入力グループが1つあります。 Javaトランスフォーメーションのこの
関数は変更しないでください。
public List<TransformationDataInterface> inputGroupsPushPredicateTo(
List<TransformationField> fields) {
// This functions returns a list of input data interfaces to push predicates to.
// Since JavaTx only has one input data interface, you should not have to modify this function
AbstractTransformation tx = instance.getTransformation();
List<DataInterface> dis = tx.getDataInterfaces();
List<TransformationDataInterface> inputDIs = new ArrayList<TransformationDataInterface>();
for (DataInterface di : dis){
TransformationDataInterface tdi = (TransformationDataInterface) di;
if (tdi.isInput())
inputDIs.add(tdi);
}
if(inputDIs.size() == 1)
return inputDIs;
else
return null;
}
Javaトランスフォーメーションによるプッシュイン最
適化
副次作用がなく、最適化がマッピング結果に影響しない場合は、最適化にプッシュインで
アクティブJavaトランスフォーメーションを有効にできます。
Javaトランスフォーメーションで最適化にプッシュインを設定するときは、Javaトランス
フォーメーションがオプティマイザから受け取るフィルタ条件を格納する方法を定義しま
す。フィルタ条件を調べるコードを追加します。 Javaトランスフォーメーションがフィル
タロジックを吸収できる場合、JavaトランスフォーメーションはTrueの条件をオプティマ
イザに戻します。 オプティマイザは、最適化されたマッピングからフィルタトランスフォ
ーメーションを削除します。
Javaトランスフォーメーションを設定するときは、最適化中にフィルタ条件をトランスフ
ォーメーションのメタデータとして格納するコードを記述します。 実行時にフィルタ条件
を取得するコードや、フィルタロジックに従って行を削除するコードも記述します。
196
第 15章: Javaトランスフォーメーション
Javaトランスフォーメーションを定義するときは、Javaトランスフォーメーションの[最
適化インタフェース]タブで、最適化にプッシュインのコードを追加します。 最適化にプ
ッシュインのコードスニペットにアクセスするには、[最適化インタフェース]タブのナ
ビゲータで、FilterPushdownOptimizationを選択します。
最適化にプッシュインを有効にするコードスニペットや、オプティマイザからフィルタ条
件を取得するコードスニペットが表示されます。 最適化を有効にしたり、フィルタロジッ
クをトランスフォーメーションのメタデータとして保存したりするには、コードスニペッ
トを更新します。
isFilterSupported
最適化にプッシュインを有効にする場合は、Trueを返します。 最適化にプッシュインを無
効にする場合は、Falseを返します。
最適化にプッシュインを有効にするためにTrueを返すようにこの関数を変更します。
public ResultAndMessage isFilterSupported() {
// To enable filter push-into optimization this function should return true
// return new ResultAndMessage(true, "");
return new ResultAndMessage(false, "Filter push-into optimization is not supported");
}
pushFilter
オプティマイザからフィルタ条件を受け取ります。
フィルタを調べ、トランスフォーメーションでフィルタロジックが使用可能かどうかを判
断するコードを追加します。 Javaトランスフォーメーションがフィルタを吸収できる場合
は、次のメソッドを使用してフィルタ条件をトランスフォーメーションのメタデータとし
て格納します。
storeMetadata(String key、String data)
このキーは、メタデータの識別子です。 任意の文字列をキーとして定義できます。 この
データは、実行時に削除する行を指定するために格納するデータです。 例えば、このデー
タは、Javaトランスフォーメーションがオプティマイザから受け取るフィルタ条件である
可能性があります。
public ResultAndMessage pushFilter(InfaExpression condition) {
// Add code to absorb the filter
// If filter is successfully absorbed return new ResultAndMessage(true, ""); and the optimizer
// will remove the filter from the mapping
// If the filter is not absorbed, return new ResultAndMessage(false, msg);
return new ResultAndMessage(false, "Filter push-into optimization is not supported");
}
Javaトランスフォーメーションによるフィルタの最適化
197
Javaトランスフォーメーションの作成
Developerツールでは、再利用可能または再利用不可能なJavaトランスフォーメーションを
作成できます。
再利用可能なJavaトランスフォーメーションの作成
再利用可能なトランスフォーメーションは、複数のマッピングで使用できます。
再利用可能なJavaトランスフォーメーションはDeveloperツールで作成します。
1.
[Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。
2.
[ファイル] > [新規] > [トランスフォーメーション]をクリックします。
[新規]ダイアログボックスが表示されます。
3.
Javaトランスフォーメーションを選択します。
4.
[次へ]をクリックします。
5.
トランスフォーメーションの名前を入力します。
6.
アクティブなトランスフォーメーションを作成する場合は、[アクティブとして作
成]オプションを選択します。
7.
[完了]をクリックします。
トランスフォーメーションがエディタに表示されます。
8.
[ポート]ビューで、[新規]ボタンをクリックして、トランスフォーメーションに
ポートを追加します。
9.
ポートを編集して、名前、データ型、および精度を設定します。
Javaコードスニペットでは、ポート名を変数として使用します。
10.
[Java]ビューのコードエントリタブで、トランスフォーメーションのJavaコードを
記述してコンパイルします。
11.
[Java]ビューの[関数]タブで、式を呼び出す関数を定義します。
12.
任意のコードエントリタブで、[コンパイル]プロパティの[結果]ウィンドウに表
示されたエラーメッセージをダブルクリックし、トランスフォーメーションのJavaコ
ードのコンパイルエラーを特定して修正します。
13.
[詳細]ビューで、トランスフォーメーションのプロパティを編集します。
再利用不可能なJavaトランスフォーメーションの作成
再利用不可能なトランスフォーメーションは、単一のマッピングで使用されます。
Developerツールで再利用不可能なJavaトランスフォーメーションを作成します。
198
1.
マッピングまたはマプレットで、トランスフォーメーションパレットからエディタに
Javaトランスフォーメーションをドラッグします。
2.
[新しいJavaトランスフォーメーション]ダイアログボックスで、トランスフォーメ
ーションの名前を入力します。
第 15章: 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コンパイラは、トランスフ
ォーメーションをコンパイルし、トランスフォーメーションのバイトコードを生成しま
す。
コンパイルの結果は[結果]ウィンドウに表示されます。 コンパイルの結果を使用して、
Javaコードエラーを特定および検出します。
Javaトランスフォーメーションのコンパイル
199
Javaトランスフォーメーションのトラブルシ
ューティング
すべてのコードエントリタブの[コンパイル]プロパティの[結果]ウィンドウで、Java
コードエラーを確認および修正できます。
Javaトランスフォーメーションのエラーは、コードエントリタブのコード内のエラー、ま
たはJavaトランスフォーメーションクラスのコード全体内のエラーが原因で発生する可能
性があります。
Javaトランスフォーメーションをトラブルシューティングするには、以下の手順を実行し
ます。
1.
Javaスニペットコードまたはトランスフォーメーションのクラスコード全体からエラ
ーのソースを検出します。
2.
エラーのタイプを特定します。エラーのタイプを特定するには、[結果]ウィンドウ
に表示されるコンパイルの結果、およびエラーの場所を使用します。
3.
コードエントリタブでJavaコードを修正します。
4.
トランスフォーメーションを再度コンパイルします。
コンパイルエラーのソースの検出
コンパイルエラーのソースを探すには、コードエントリタブまたは[コード全体]タブの
[コンパイル]プロパティの[結果]ウィンドウに表示されるコンパイル結果を使用しま
す。
[結果]ウィンドウでエラーメッセージをダブルクリックすると、コードエントリタブま
たは[コード全体]タブの[Javaコード]ウィンドウで、エラーの原因となったソースコ
ードが強調表示されます。
[コード全体]タブでは、エラーを探すことはできますが、Javaコードを編集することは
できません。 [コード全体]タブで見つけたエラーを修正するには、適切なコードエント
リタブでコードを変更します。 トランスフォーメーションのクラスコード全体にユーザー
コードを追加したことが原因で発生したエラーを表示する場合などは、[コード全体]タ
ブを使用する必要があります。
コードエントリタブまたは[コード全体]タブでのエラーの確
認
コードエントリタブまたは[コード全体]タブでコンパイルエラーを探すことができま
す。
1.
200
任意のコードエントリタブまたは[コード全体]タブの[コンパイル]プロパティの
[結果]ウィンドウで、エラーメッセージを右クリックします。
第 15章: Javaトランスフォーメーション
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コンパイラによってエラーが発行されます。
Javaトランスフォーメーションのトラブルシューティング
201
第 16 章
Javaトランスフォーメーショ
ンAPIのリファレンス
この章では、以下の項目について説明します。
¨ JavaトランスフォーメーションAPIメソッドの概要, 202 ページ
¨ defineJExpression, 203 ページ
¨ failSession, 204 ページ
¨ generateRow, 205 ページ
¨ getInRowType, 205 ページ
¨ getMetadata, 206 ページ
¨ incrementErrorCount, 207 ページ
¨ invokeJExpression, 207 ページ
¨ isNull, 208 ページ
¨ logError, 209 ページ
¨ logInfo, 210 ページ
¨ resetNotification, 210 ページ
¨ setNull, 211 ページ
¨ storeMetadata, 212 ページ
JavaトランスフォーメーションAPIメソッド
の概要
エディタの[Java]ビューのコードエントリタブで、APIメソッドをJavaコードに追加して
トランスフォーメーションの動作を定義することができます。
APIメソッドをコードに追加するには、コードエントリタブのナビゲータで[呼び出し可能
なAPI]リストを展開し、コードに追加するメソッドの名前をダブルクリックします。
また、ナビゲータからJavaコードスニペットにメソッドをドラッグするか、Javaコードス
ニペットにAPIメソッドを手動で入力することもできます。
202
JavaトランスフォーメーションのJavaコードに追加できるAPIメソッドは次のとおりです。
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
);
defineJExpression
203
次の表に、これらのパラメータについて説明します。
パラメータ
タイプ
データ
型
説明
式
入力
String
式を表す文字列。
paramMetadataA
rray
入力
オブジ
ェクト
[]
式の入力パラメータを含む
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
Stri
ng
エラーメッセージの文字列。
failSessionメソッドを使用して、マッピングを終了します。 コードエントリタブのtry/
catchブロック内では、failSessionメソッドを使用しないでください。
[インポート]および[関数]タブを除くコードエントリタブでは、Javaコードに
failSessionメソッドを追加できます。
204
第 16章: JavaトランスフォーメーションAPIのリファレンス
以下の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();
generateRow
205
次の表に、パラメータを示します。
パラメータ
パラメ
ータの
タイプ
デー
タ型
説明
rowType
アウト
プット
Strin
g
アップデートストラテジのタイプを返し
ます。以下のいずれかの値となります。
-
DELETE
INSERT
REJECT
UPDATE
[入力時]コードエントリタブで、JavaコードにgetInRowTypeメソッドを追加できます。
getInRowTypeメソッドは、アップデートストラテジを設定するように設定されたアクティ
ブなトランスフォーメーションで使用できます。 アップデートストラテジを設定するよう
に設定されていないアクティブなトランスフォーメーションでこのメソッドを呼び出す
と、Data Integration Serviceでエラーが発生します。
getMetadata
Javaトランスフォーメーションのメタデータを実行時に取得します。 getMetadataメソッ
ドは、pushFilter関数でオプティマイザがJavaトランスフォーメーションに渡すフィルタ
条件など、storeMetadataメソッドを使用して保存するメタデータを取得します。
以下の構文を使用します。
getMetadata (String key);
次の表に、これらのパラメータについて説明します。
パラメータ
パラメ
ータの
タイプ
デー
タ型
説明
key
Input
Strin
g
メタデータを特定します。 getMetadata
メソッドでは、取得するメタデータを決
定するキーが使用されます。
getMetadataメソッドは、次のコードエントリタブでJavaコードに追加できます。
¨ ヘルパ
¨ 入力時
¨ 最後
¨ 最適化インタフェース
¨ 関数
206
第 16章: JavaトランスフォーメーションAPIのリファレンス
最適化にプッシュインのフィルタ条件を取得するように、getMetadataメソッドを設定する
とができます。 getMetadataメソッドは、格納する各フィルタ条件をオプティマイザから
取得できます。
// Retrieve a filter condition
String mydata = getMetadata ("FilterKey");
incrementErrorCount
エラーカウントを増やします。 エラー数がエラーしきい値に達すると、マッピングは失敗
します。
以下の構文を使用します。
incrementErrorCount(int nErrors);
次の表に、パラメータを示します。
パラメー
タ
パラメー
タのタイ
プ
デー
タ型
説明
nErrors
入力
Integ
er
エラーカウントの増分数。
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;
}
invokeJExpression
式を呼び出し、式の値を返します。
以下の構文を使用します。
(datatype)invokeJExpression(
String expression,
Object[] paramMetadataArray);
incrementErrorCount
207
invokeJExpressionメソッドの入力パラメータは、式および式の入力パラメータを含むオブ
ジェクトの配列を表す文字列値です。
次の表に、これらのパラメータについて説明します。
パラメータ
パラメ
ータの
タイプ
データ
型
説明
式
入力
String
式を表す文字列。
paramMetadataA
rray
入力
オブジェ
クト[]
式の入力パラメータを含むオブ
ジェクトの配列。
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" });
注: 式に渡す一連のパラメータには、先頭に文字xを付けて番号を示す必要があります。
例えば、3つのパラメータを式に渡す場合は、各パラメータにx1、x2、およびx3という名前
を付けます。
isNull
入力カラムの値を調べ、NULL値の有無を確認します。
208
第 16章: JavaトランスフォーメーションAPIのリファレンス
以下の構文を使用します。
Boolean isNull(String satrColName);
次の表に、パラメータを示します。
パラメー
タ
パラメー
タのタイ
プ
データ
型
説明
strColNam
e
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);
次の表に、パラメータを示します。
パラメータ
パラメー
タのタイ
プ
データ型
説明
msg
Input
String
エラーメッセージの文字列。
logErrorメソッドは、[インポート]タブと[関数]タブを除く任意のコードエントリタ
ブでJavaコードに追加することができます。
logError
209
以下の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.");
}
resetNotification
Data Integration Serviceマシンがリスタートモードで実行されている場合に、マッピン
グの実行後にJavaコードで使用する変数をリセットします。
リスタートモードでは、Data Integration Serviceの初期化は解除されませんが、Data
Integration Serviceが要求後にリセットされて次の要求を処理できるようになります。
Javaトランスフォーメーションの場合は、resetNotificationメソッドを使用すると、マッ
ピングの実行後にJavaコードの変数がリセットされます。
210
第 16章: JavaトランスフォーメーションAPIのリファレンス
以下の構文を使用します。
public int resetNotification(IGroup group) {
return EStatus.value;
}
次の表に、これらのパラメータについて説明します。
パラメータ
パラメータ
のタイプ
データ型
説明
int
出力
EStatus.valu
e
戻り値。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警告メッセージがログに出力
されます。
setNull
アクティブまたはパッシブなJavaトランスフォーメーションの出力カラムの値をNULLに設
定します。
以下の構文を使用します。
setNull(String strColName);
setNull
211
次の表に、パラメータを示します。
パラメータ
パラメータの
タイプ
データ型
説明
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);
}
storeMetadata
実行時にgetMetadataメソッドを使用して取得できるJavaトランスフォーメーションのメタ
データを格納します。
以下の構文を使用します。
storeMetadata (String key String data);
212
第 16章: JavaトランスフォーメーションAPIのリファレンス
次の表に、これらのパラメータについて説明します。
パラメータ
パラメ
ータの
タイプ
デー
タ型
説明
key
Input
Strin
g
メタデータを特定します。
storeMetadataメソッドでは、メタデー
タを特定するキーが必要です。 キーを
任意の文字列として定義します。
data
Input
Strin
g
Javaトランスフォーメーションのメタデ
ータとして格納するデータ。
storeMetadataメソッドは、次のコードエントリタブでJavaコードに追加できます。
¨ ヘルパ
¨ 入力時
¨ 最後
¨ 最適化インタフェース
¨ 関数
最適化にプッシュインのフィルタ条件を受け入れるように、アクティブなトランスフォー
メーションでstoreMetadataメソッドを設定することができます。 storeMetadataメソッド
は、オプティマイザがマッピングからJavaトランスフォーメーションにプッシュするフィ
ルタ条件を格納します。
// Store a filter condition
storeMetadata ("FilterKey", condition);
storeMetadata
213
第 17 章
Java式
この章では、以下の項目について説明します。
¨ Java式の概要, 214 ページ
¨ [関数の定義]ダイアログボックスを使用した式の定義, 216 ページ
¨ 単純なインタフェースに関する作業, 218 ページ
¨ 高度なインタフェースに関する作業, 219 ページ
¨ JExpressionクラスAPIリファレンス, 224 ページ
Java式の概要
Javaトランスフォーメーションの式を、Javaプログラミング言語を使用して呼び出すこと
ができます。
式を使用すると、Javaトランスフォーメーションの機能が拡張されます。たとえば、Java
トランスフォーメーションの式を呼び出して、入出力ポートの値、あるいはJavaトランス
フォーメーション変数の値をルックアップできます。
Javaトランスフォーメーションの式を呼び出すには、Javaコードを生成するか、または
JavaトランスフォーメーションAPIメソッドを使用します。 式を呼び出して、適切なコー
ドエントリタブでの式の結果を使用します。 式を呼び出すJavaコードを生成することも、
APIメソッドを使用して式を呼び出すJavaコードを記述することもできます。
214
以下の表に、Javaトランスフォーメーションの式の作成および呼び出しに使用できる方法
を示します。
メソッド
説明
[関数の定義]ダイア
ログボックス
式を呼び出す関数を作成し、式のコードを生成で
きます。
単純なインタフェース
式を呼び出す1つのメソッドを呼び出し、その式
の結果を取得できます。
高度なインタフェース
式を定義し、式を呼び出して、その式の結果を使
用できます。
オブジェクト指向プログラミングについての知識
があり、式の呼び出しをさらに制御したい場合
は、高度なインタフェースを使用します。
式の関数タイプ
Javaトランスフォーメーションの式は、[関数の定義]ダイアログボックスを使用する
か、または単純/高度なインタフェースを使用して作成できます。
入出力ポート変数、あるいはJavaコード内の変数を入力パラメータとして使用する式を入
力できます。
[関数の定義]ダイアログボックスを使用する場合、Javaトランスフォーメーションで使
用する前に式を検証できます。
Javaトランスフォーメーションでは、以下のタイプの式の関数を呼び出すことができま
す。
式の関数タイプ
説明
トランスフォーメーシ
ョン言語関数
一般的な式を扱うように設計された、SQLに似た
関数です。
ユーザー定義関数
トランスフォーメーション言語関数に基づいて
Developerツールで作成する関数です。
カスタム関数
カスタム関数APIを使用して作成する関数です。
また、未接続のトランスフォーメーションおよびビルトイン変数も式で使用できます。 例
えば、未接続のルックアップトランスフォーメーションを式で使用できます。
Java式の概要
215
[関数の定義]ダイアログボックスを使用し
た式の定義
Java式を定義する場合、関数を設定し、式を作成し、式を呼び出すコードを生成します。
関数を定義して式を作成するには、[関数の定義]ダイアログボックスを使用します。
式関数を作成してJavaトランスフォーメーションで式を使用するには、以下の高度なタス
クを実行します。
1.
式を呼び出す関数を設定します。関数名、説明、およびパラメータの設定を含みま
す。関数パラメータは、式を作成する場合に使用します。
2.
式の構文を作成し、式を検証します。
3.
式を呼び出すJavaコードを生成します。
生成されたコードが、[関数]コードエントリタブに表示されます。
Javaコードを生成したら、生成した関数を適切なコードエントリタブで呼び出し、単純な
インタフェースと高度なインタフェースのどちらを使用するかに基づいて、式を呼び出す
かJExpressionオブジェクトを取得します。
注: 式の作成時に式を検証する場合、[関数の定義]ダイアログボックスを使用する必要
があります。
手順1. 関数の設定
式を呼び出すJava関数の関数名、説明、および入力パラメータを設定します。
関数を設定する場合、以下のルールおよびガイドラインを使用します。
¨ トランスフォーメーション内に既に存在するJava関数、またはJavaの予約語と名前が重
複しない、ユニークな関数名を使用します。
¨ パラメータ名、Javaデータ型、精度、および位取りを設定する必要があります。入力パ
ラメータは、トランスフォーメーションでJavaコードの関数を呼び出す際に渡す値で
す。
¨ 式にDateデータ型を渡すには、入力パラメータのStringデータ型を使用します。
Dateデータ型を返す式の場合、単純なインタフェースでは戻り値をStringデータ型とし
て、高度なインタフェースではStringデータ型またはLongデータ型として使用できま
す。
手順2. 式の作成と検証
式を作成する場合、設定したパラメータを関数で使用します。
式では、トランスフォーメーション言語の関数、カスタム関数、または他のユーザー定義
関数も使用できます。式の作成および検証は、[関数の定義]ダイアログボックスで実行
できます。
216
第 17章: Java式
手順3. 式のJavaコードの生成
関数と関数パラメータの定義、および式の定義と検証を完了したら、式を呼び出すJavaコ
ードを生成できます。
Developerは、生成されたJavaコードを[関数]コードエントリタブに格納します。 生成
したJavaコードを使用して、コードエントリタブの式を呼び出す関数を呼び出します。 単
純なJavaコード、または高度なJavaコードを生成できます。
式を呼び出すJavaコードを生成した後では、その式の編集および再検証を実行できませ
ん。コードを生成した後で式を変更する場合、式を再作成する必要があります。
[関数の定義]ダイアログボックスを使用した式の作
成とJavaコードの生成
式を呼び出す関数を作成するには、[関数の定義]ダイアログボックスを使用します。
式を呼び出す関数を作成するには、以下の手順を実行します。
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,
[関数の定義]ダイアログボックスを使用した式の定義
217
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);
}
単純なインタフェースに関する作業
単純なインタフェースで式を呼び出すには、invokeJExpression Java APIメソッドを使用
します。
invokeJExpression
式を呼び出し、式の値を返します。
以下の構文を使用します。
(datatype)invokeJExpression(
String expression,
Object[] paramMetadataArray);
invokeJExpressionメソッドの入力パラメータは、式および式の入力パラメータを含むオブ
ジェクトの配列を表す文字列値です。
次の表に、これらのパラメータについて説明します。
218
パラメータ
パラメ
ータの
タイプ
データ
型
説明
式
入力
String
式を表す文字列。
paramMetadataA
rray
入力
オブジェ
クト[]
式の入力パラメータを含むオブ
ジェクトの配列。
第 17章: Java式
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データ型として返す式の戻り型をキャストする必要があり
ます。
注: 式に渡す一連のパラメータには、先頭に文字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メソッドを使用して、式の定義、呼び
出し、および結果の取得を行うことができます。
高度なインタフェースに関する作業
219
以下の表に、高度なインタフェースで使用可能なクラスおよびAPIメソッドを示します。
クラスまたはAPIメソ
ッド
説明
EDataTypeクラス
式のデータ型を列挙します。
JExprParamMetadataク
ラス
式内の各パラメータのメタデータが含まれていま
す。パラメータのメタデータには、データ型、精
度、および位取りが含まれます。
defineJExpression
APIメソッド
式を定義します。式の文字列およびパラメータが
含まれます。
invokeJExpression
APIメソッド
式を呼び出します。
JExpressionクラス
メタデータの作成、呼び出し、式の結果の取得、
および戻りデータ型のチェックを実行するメソッ
ドが含まれます。
高度なインタフェースを使用した式の呼び出し
高度なインタフェースを使用して、式の定義、呼び出し、および結果の取得を行うことが
できます。
1.
[ヘルパ]または[入力時]コードエントリタブで、式の各引数に対する
JExprParamMetadataクラスのインスタンスを作成し、メタデータの値を設定します。
必要に応じて、defineJExpressionメソッドでJExprParamMetadataオブジェクトをイ
ンスタンス化できます。
2.
defineJExpressionメソッドを使用して、式のJExpressionオブジェクトを取得しま
す。
3.
適切なコードエントリタブで、invokeJExpressionメソッドを使用して式を呼び出し
ます。
4.
isResultNullメソッドを使用して、戻り値の結果をチェックします。
5.
getResultDataTypeメソッドまたはgetResultMetadataメソッドを使用して、戻り値の
データ型またはメタデータをそれぞれ取得できます。
6.
適切なAPIメソッドを使用して、式の結果を取得します。 getIntメソッド、getDouble
メソッド、getStringBufferメソッド、およびgetBytesメソッドを使用できます。
高度なインタフェースに関する作業のルールとガイド
ライン
高度なインタフェースを使用するときは、ルールとガイドラインに注意する必要がありま
す。
220
第 17章: Java式
以下のルールおよびガイドラインを使用します。
¨ パラメータとして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ク
ラスをインスタンス化する必要はありません。
以下の表に、式で値が列挙される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クラス
式のパラメータを表すオブジェクトをインスタンス化し、パラメータのメタデータを設定
します。
高度なインタフェースに関する作業
221
入力パラメータのメタデータを設定するには、JExprParamMetadataオブジェクトの配列を
defineJExpressionメソッドへの入力として使用します。 JExprParamMetadataオブジェク
トのインスタンスは、[関数]コードエントリタブまたはdefineJExpressionで作成できま
す。
以下の構文を使用します。
JExprParamMetadata paramMetadataArray[] = new JExprParamMetadata[numberOfParameters];
paramMetadataArray[0] = new JExprParamMetadata(datatype, precision, scale);
...
paramMetadataArray[numberofParameters - 1] = new JExprParamMetadata(datatype, precision,
scale);;
次の表に、引数を示します。
引数
引数のタイプ
引数のデータ型
説明
データ型
入力
EDataType
パラメータのデータ型。
精度
入力
Integer
パラメータの精度。
位取り
入力
Integer
パラメータの位取り。
たとえば、以下の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
);
次の表に、これらのパラメータについて説明します。
222
パラメータ
タイプ
データ
型
説明
式
入力
String
式を表す文字列。
paramMetadataA
rray
入力
オブジ
ェクト
[]
式の入力パラメータを含む
JExprParaMetadataオブジェクト
の配列。
第 17章: Java式
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クラス
式の作成および呼び出しを実行するメソッド、式の値を返すメソッド、および戻りデータ
型をチェックするメソッドが含まれています。
以下の表に、JExpressionクラスのメソッドを示します。
メソッド名
説明
invoke
式を呼び出します。
getResultDataType
式の結果のデータ型を返します。
getResultMetadata
式の結果のメタデータを返します。
isResultNull
式の結果の結果値をチェックします。
getInt
式の結果の値をIntegerデータ型で返します。
getDouble
式の結果の値をDoubleデータ型で返します。
getStringBuffer
式の結果の値をStringデータ型で返します。
getBytes
式の結果の値をbyte[]データ型で返します。
高度なインタフェースの例
高度なインタフェースを使用して、Javaトランスフォーメーションのルックアップ式を作
成したり呼び出したりすることができます。
次の例は、式を呼び出す関数を作成する方法、および戻り値を取得するための式を呼び出
す方法を示しています。 この例では、Stringデータ型の2つの入力ポート(NAMEおよび
COMPANY)の値をmyLookup関数に渡します。myLookup関数は、ルックアップ式を使用して
ADDRESS出力ポートの値をルックアップします。
高度なインタフェースに関する作業
223
注: この例では、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)
{
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
224
第 17章: Java式
¨ getStringBuffer
¨ 呼び出し
¨ isResultNull
getBytes
式の結果の値をbyte[]データ型で返します。AES_ENCRYPT関数でデータを暗号化する式の
結果を取得します。
以下の構文を使用します。
objectName.getBytes();
以下のJavaコードの例では、JExprEncryptDataがJExpressionオブジェクトである場合
に、AES_ENCRYPT関数を使用してバイナリデータを暗号化する式の結果を取得します。
byte[] newBytes = JExprEncryptData.getBytes();
getDouble
式の結果の値をDoubleデータ型で返します。
以下の構文を使用します。
objectName.getDouble();
以下の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();
JExpressionクラスAPIリファレンス
225
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();
以下の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を使用します。
226
第 17章: Java式
以下の構文を使用します。
objectName.invoke(
    new Object[] { param1[, ... paramN ]},
    rowType
    );
次の表に、引数を示します。
引数
データ型
入力/
説明
アウ
トプ
ット
objectNa
me
JExpression
入力
JExpressionのオブジェクト名で
す。
paramete
rs
-
入力
式の入力値が含まれるオブジェクト
の配列です。
例えば、[関数]コードエントリタブで、address_lookup()という名前の関数を作成した
とします。この関数は、式を表すJExpressionオブジェクトを返します。 NAMEおよび
COMPANYの入力ポートを使用する式を呼び出すには、以下のコードを使用します。
JExpression myObject = address_lookup();
myObject.invoke(new Object[] { NAME,COMPANY }, ERowType INSERT);
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();
}
JExpressionクラスAPIリファレンス
227
第 18 章
ジョイナトランスフォーメー
ション
この章では、以下の項目について説明します。
¨ ジョイナトランスフォーメーションの概要, 228 ページ
¨ ジョイナトランスフォーメーションの詳細プロパティ, 229 ページ
¨ ジョイナトランスフォーメーションポート, 229 ページ
¨ 結合条件の定義, 230 ページ
¨ 結合タイプ, 231 ページ
¨ ジョイナトランスフォーメーションでのソート済み入力, 234 ページ
¨ 同じソースのデータの結合, 237 ページ
¨ ソースパイプラインのブロック, 239 ページ
¨ ジョイナトランスフォーメーションのパフォーマンスのヒント, 240 ページ
¨ ジョイナトランスフォーメーションのルールとガイドライン, 241 ページ
ジョイナトランスフォーメーションの概要
ジョイナトランスフォーメーションを使用すると、異なる場所またはファイルシステムに
ある2つの関連する異種ソースからのソースデータを結合できます。また、同じソースから
のデータを結合することもできます。ジョイナトランスフォーメーションはアクティブな
トランスフォーメーションです。
ジョイナトランスフォーメーションは、一致するカラムが少なくとも1つあるソースを結合
します。ジョイナトランスフォーメーションでは、2つのソース間の1つ以上のカラムのペ
アと一致する条件を使用します。
2つの入力パイプラインには、マスタパイプラインと明細パイプライン、またはマスタブラ
ンチと明細ブランチがあります。マスタパイプラインはジョイナトランスフォーメーショ
ンで終了しますが、明細パイプラインはターゲットまで継続します。
マッピング内の3つ以上のソースを結合するには、ジョイナトランスフォーメーションから
の出力を他のソースパイプラインと結合します。 すべてのソースパイプラインを結合する
まで、マッピングにジョイナトランスフォーメーションを追加します。
228
ジョイナトランスフォーメーションの詳細プ
ロパティ
Data Integration Serviceがジョイナトランスフォーメーションのデータを処理する方法
を決定するプロパティを設定します。
[詳細]タブで、以下のプロパティを設定します。
ジョイナのデータキャッシュサイズ
トランスフォーメーションのデータキャッシュサイズ。デフォルトは[自動]です。
ジョイナのインデックスキャッシュサイズ
トランスフォーメーションのインデックスキャッシュサイズ。デフォルトは[自動]
です。
キャッシュディレクトリ
Data Integration Serviceがインデックスキャッシュファイルとデータキャッシュフ
ァイルを作成するローカルディレクトリ。 このディレクトリが存在し、キャッシュフ
ァイルを格納するのに十分なディスク容量を備えていることを確認します。このディ
レクトリは、マップしたドライブでもマウントされたドライブでもかまいません。
デフォルトはCacheDirシステムパラメータです。
ソート済み入力
入力データがグループで事前にソートされていることを示します。ソートされたデー
タを結合するには、[ソート済み入力]を選択します。ソート済み入力を使用すると
パフォーマンスを向上させることができます。
マスタのソート順
マスタソースデータのソート順を指定します。マスタソースデータが昇順である場合
は、昇順を選択します。昇順を選択した場合には、ソート済み入力も有効にします。
デフォルトは[自動]です。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
ジョイナトランスフォーメーションポート
ジョイナトランスフォーメーションにはさまざまなポートタイプがあり、ポートタイプに
よってData Integration Serviceが結合を実行する方法が決まります。
ジョイナトランスフォーメーションには、以下のポートタイプがあります。
ジョイナトランスフォーメーションの詳細プロパティ
229
マスタ
マッピング内のマスタソースにリンクするポート。
明細
マッピング内の明細ソースにリンクするポート。
ポートはマスタポートから明細ポートに変更できます。 明細ポートからマスタポートに変
更することもできます。 1つのポートのポートタイプを変更すると、すべてのポートのポ
ートタイプが変更されます。 したがって、マスタポートを明細ポートに変更すると、すべ
てのマスタポートが明細ポートに、すべての明細ポートがマスタポートに変更されます。
結合条件の定義
結合条件は、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入力をデフォルト値で置き換えてから、デフォルト値で結合
します。
単純条件タイプまたは詳細条件タイプを定義できます。
230
第 18章: ジョイナトランスフォーメーション
単純条件タイプ
ソート済みまたは未ソートのジョイナトランスフォーメーションの単純条件タイプを定義
します。
単純条件には、指定されたマスタと明細ソースを比較する1つ以上の条件が含まれます。単
純条件では以下の形式を使用する必要があります。
<master_port> operator <detail_port>
ソート済みジョイナトランスフォーメーションの条件では、等号演算子を使用する必要が
あります。
未ソートのジョイナトランスフォーメーションの条件では、=、!=、>、>=、<、<=のどれで
も使用できます。
例えば、テーブルを含む2つのソース、EMPLOYEE_AGEとEMPLOYEE_POSITIONがあり、どちら
にも従業員ID番号が含まれる場合、以下の条件は両方のソースに含まれる従業員の行に一
致します。
EMP_ID1 = EMP_ID2
Developerツールは、単純条件のデータタイプを検証します。条件の両方のポートは、同じ
データタイプを持つ必要があります。データタイプが一致しない2つのポートを条件で使用
しなければならない場合、データタイプが一致するように変換します。
詳細条件タイプ
未ソートジョイナトランスフォーメーションの詳細な条件タイプを定義します。
詳細条件には、ブール値または数値を評価するための式を含めることができます。演算子
=、!=、>、>=、<、<=を使用できます。
結合条件に式を入力するには、[結合]タブで詳細条件タイプを選択します。式エディタ
を使用して、式、ポート、および演算子を条件に含めます。
例えば、従業員のフルネームで一致させてソースを結合する場合、マスターソースに
FirstNameポートとLastNameポートを含めます。明細ソースにはFullNameポートを含めま
す。マスターポートを連結し、両方のソースのフルネームを一致させるには、次の条件を
定義します。
CONCAT(FirstName, LastName) = FullName
結合タイプ
ジョイナトランスフォーメーションでは、さまざまなタイプのソースから結合を生成する
ことができます。
ジョイナトランスフォーメーションは、以下の結合タイプをサポートしています。
¨ ノーマル
¨ マスタ外部
¨ 明細外部
結合タイプ
231
¨ 完全外部
注: ノーマルまたはマスタ外部結合は、完全外部や明細外部結合よりも高速に動作しま
す。
どちらのソースのデータも含まないフィールドが結果セットにある場合、ジョイナトラン
スフォーメーションは空のフィールドをNULL値で埋めます。あるフィールドがNULLを返す
ことが分かっていて、NULLをターゲットに挿入したくない場合は、対応するポートにデフ
ォルト値を設定できます。
ノーマル結合
ノーマル結合の場合、Data Integration Serviceは条件に基づいて、一致しないマスタソ
ースおよび明細ソースのデータの行をすべて破棄します。
例えば、PARTS_SIZEおよびPARTS_COLORという、自動車部品に関する2つのデータソースが
あるとします。
PARTS_SIZEデータソースはマスタソースで、次のデータが格納されています。
PART_ID1
DESCRIPTION
SIZE
1
Seat Cover
Large
2
Ash Tray
Small
3
Floor Mat
Medium
PARTS_COLORデータソースは明細ソースで、次のデータが格納されています。
PART_ID2
DESCRIPTION
COLOR
1
Seat Cover
Blue
3
Floor Mat
Black
4
Fuzzy Dice
Yellow
両方のPART_IDを照合して2つのテーブルを結合するには、次のように条件を設定します。
PART_ID1 = PART_ID2
これらのテーブルに対してノーマル結合を実行すると、結果セットには以下のデータが含
まれます。
PART_ID
DESCRIPTION
SIZE
COLOR
1
Seat Cover
Large
Blue
3
Floor Mat
Medium
Black
次の例は、相当するSQL文を示しています。
SELECT * FROM PARTS_SIZE, PARTS_COLOR WHERE PARTS_SIZE.PART_ID1 = PARTS_COLOR.PART_ID2
232
第 18章: ジョイナトランスフォーメーション
マスタ外部結合
マスタ外部結合は、明細ソースのデータのすべての行およびマスタソースの一致する行を
すべて保持します。一致しないマスタソースの行は無視されます。
サンプルのテーブルに対して同じ条件でマスタ外部結合を実行すると、結果セットには以
下のデータが含まれます。
PART_ID
DESCRIPTION
SIZE
COLOR
1
Seat Cover
Large
Blue
3
Floor Mat
Medium
Black
4
Fuzzy Dice
NULL
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
DESCRIPTION
SIZE
COLOR
1
Seat Cover
Large
Blue
2
Ash Tray
Small
NULL
3
Floor Mat
Medium
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)
完全外部結合
完全外部結合では、マスタソースと明細ソースの両方のデータのすべての行が保持されま
す。
結合タイプ
233
サンプルのテーブルに対して同じ条件で完全外部結合を実行すると、結果セットには以下
のデータが含まれます。
PARTED
DESCRIPTION
SIZE
Color
1
Seat Cover
Large
Blue
2
Ash Tray
Small
NULL
3
Floor Mat
Medium
Black
4
Fuzzy Dice
NULL
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.
ソート済みデータを使用するようにジョイナトランスフォーメーションを設定し、ソ
ートの基点ポートを使用するように結合条件を設定します。 ソートの基点は、ソート
済みデータのソースを表します。
ソート順の設定
ソート順は、Data Integration Serviceからソート済みデータがジョイナトランスフォー
メーションに確実に渡されるように設定します。
234
第 18章: ジョイナトランスフォーメーション
ソート順を設定するには、以下のいずれかの方法を使用します。
¨ ソート済みフラットファイルを使用する。ソート済みデータがフラットファイルに入っ
ている場合は、ソートカラムの順序が各ソースファイル内で一致していることを確認し
ます。
¨ ソート済みリレーショナルデータを使用する。リレーショナルデータオブジェクト内の
ソート済みポートを使用して、ソースデータベースのカラムをソートします。 各リレ
ーショナルデータオブジェクト内のソート済みポートの順序は同一に設定してくださ
い。
¨ ソータートランスフォーメーションを使用して、リレーショナルデータまたはフラット
ファイルデータをソートします。ソータートランスフォーメーションをマスタおよび明
細パイプラインに配置します。各ソータートランスフォーメーションで、同じ順のソー
トキーポートおよび同じソート順方向を使用するよう設定します。
未ソートデータまたは正しくソートされていないデータを、ソート済みデータを使用する
ように設定されているジョイナトランスフォーメーションに渡すと、マッピングの実行が
失敗します。 Data Integration Serviceは、ログファイルにエラーを記録します。
マッピングへのトランスフォーメーションの追加
ジョイナトランスフォーメーションでソート済みデータのソート順を維持するトランスフ
ォーメーションをマッピングに追加します。
ジョイナトランスフォーメーションをソートの基点のすぐ後に置くことで、ソート済みデ
ータを維持できます。
ソートの基点とジョイナトランスフォーメーションの間にトランスフォーメーションを追
加する場合は、以下のガイドラインに従って、ソート済みデータを維持します。
¨ ソートの基点とジョイナトランスフォーメーションの間に、以下のトランスフォーメー
ションは配置しないでください。
- ランク
- 共有体
- 未ソートアグリゲータ
- 前のトランスフォーメーションが1つ含まれるマプレット
¨ 以下のガイドラインに従うのであれば、ソートの基点とジョイナトランスフォーメーシ
ョンの間にソート済みアグリゲータトランスフォーメーションを配置することができま
す。
- アグリゲータトランスフォーメーションをソート済み入力に合わせて設定します。
- アグリゲータトランスフォーメーション内のカラムのグループのポートは、ソートの
基点でのポートと同じものを使用してください。
- ポートのグループは、ソートの基点でのポートと同じ順序である必要があります。
¨ 別のパイプラインを持つジョイナトランスフォーメーションの結果セットを結合する場
合は、最初のジョイナトランスフォーメーションからの出力されるデータがソート済み
であることを確認してください。
ジョイナトランスフォーメーションでのソート済み入力
235
結合条件のルールとガイドライン
ソート済みジョイナトランスフォーメーションの結合条件を作成する場合、特定のルール
とガイドラインが適用されます。
結合条件条件を作成するときには、以下のガイドラインに従ってください。
¨ 等号演算子を使用する単純な条件タイプを定義する必要があります。
¨ ソートの基点とジョイナトランスフォーメーションの間でソート済みアグリゲータトラ
ンスフォーメーションを使用する場合は、そのソート済みアグリゲータトランスフォー
メーションを、結合条件を定義するときのソートの基点として扱います。
¨ 結合条件で使用するポートは、ソートの基点でのポートと一致している必要がありま
す。
¨ 複数の結合条件を設定する場合、最初の結合条件内のポートは、ソートの基点での最初
のポートと一致している必要があります。
¨ 複数の条件を設定する場合、条件の順序は、ソートの基点でのポートの順序と一致して
いる必要があり、またどのポートもスキップしてはなりません。
¨ ソートの基点でのソート済みポートの数は、ジョイン条件でのポートの数以上にするこ
とができます。
¨ 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を使用する必要があります。
¨ 結合条件でPRICEを使用したい場合、2番目の結合条件でもITEM_NAMEを使用する必要が
あります。
ITEM_NAMEをスキップしてITEM_NOとPRICEを結合すると、ソート順が失われ、Data
Integration Serviceはマッピングの実行に失敗します。
236
第 18章: ジョイナトランスフォーメーション
ジョイナトランスフォーメーションを使ってマスタパイプラインと明細パイプランを結合
する場合、次の結合条件のうちどれか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
ターゲットに、所属する部署の平均売上を超える売上を実現した従業員を表示するとしま
す。そのためには、以下のトランスフォーメーションを含むマッピングを作成します。
¨ ソータートランスフォーメーション。データをソートします。
¨ ソート済みアグリゲータトランスフォーメーション。 売上データの平均を算出し、部
署ごとにグループ化します。この集計を実行すると、個々の従業員のデータは失われま
す。従業員データを維持するには、パイプラインのブランチをアグリゲータトランスフ
同じソースのデータの結合
237
ォーメーションに渡し、同じデータのブランチをジョイナトランスフォーメーションに
渡して元のデータを維持する必要があります。パイプラインの両方のブランチを結合す
ると、集計済みデータと元のデータを結合することになります。
¨ ソート済みジョイナトランスフォーメーション。 集計されたソート済みデータを元の
データと結合します。
¨ フィルタトランスフォーメーション。平均売上データと各従業員の売上データを比較
し、平均売上に達していない従業員をフィルタで除外します。
1.Employees_Westソース
2.パイプラインブランチ1
3.パイプラインブランチ2
4.ソート済みジョイナトランスフォーメーション
5.平均売上より低い従業員を除外する
ジョイナトランスフォーメーションが一方のブランチのデータを受け取るのが、もう一方
のブランチより大きく遅れる場合、2つのブランチの結合によってパフォーマンスが低下す
ることがあります。 ジョイナトランスフォーメーションは、最初のブランチのすべてのデ
ータをキャッシュに格納し、キャッシュがいっぱいになるとキャッシュをディスクに書き
込みます。 次にジョイナトランスフォーメーションが2番目のブランチからデータを受け
取るときに、ディスクからデータを読み込む必要があります。
同じソースの2つのインスタンスの結合
ソースの2つ目のインスタンスを作成することによって、同じソースのデータを結合できま
す。
2つ目のソースインスタンスを作成すると、2つのソースインスタンスからのパイプライン
を結合できます。未ソートデータを結合する場合は、同じソースのインスタンスを2つ作成
して、パイプラインを結合する必要があります。
同じソースの2つのインスタンスを結合すると、Data Integration Serviceは各ソースイン
スタンスのソースデータを読み込みます。 パフォーマンスはパイプラインの2つのブラン
チを結合する場合よりも低下します。
238
第 18章: ジョイナトランスフォーメーション
同じソースのデータ結合のガイドライン
パイプラインのブランチを結合するか、ソースの2つのインスタンスを結合するかの判断に
は、特定のガイドラインが適用されます。
パイプラインのブランチを結合するか、ソースの2つのインスタンスを結合するかを判断す
るときは、以下のガイドラインに従ってください。
¨ ソースが大きい場合、あるいはソースデータを1回しか読み込まない場合は、パイプラ
インの2つのブランチを結合します。
¨ ソート済みデータを使う場合は、パイプラインの2つのブランチを結合します。ソース
データが未ソートデータで、ソータートランスフォーメーションを使ってデータをソー
トする場合には、データのソート後にパイプラインをブランチに分岐します。
¨ ソースとジョイナトランスフォーメーションの間のパイプラインにブロッキングトラン
スフォーメーションを追加する必要がある場合は、ソースの2つのインスタンスを結合
します。
¨ 一方のパイプラインの処理がもう一方のパイプラインよりも遅い場合は、ソースの2つ
のインスタンスを結合します。
¨ 未ソートのデータを結合する必要がある場合、ソースの2つのインスタンスを結合しま
す。
ソースパイプラインのブロック
ジョイナトランスフォーメーションを含むマッピングを実行すると、Data Integration
Serviceはマッピングの設定とジョイナトランスフォーメーションがソート済み入力用に設
定されているかどうかによって、ソースデータのブロックとブロック解除を行います。
未ソートジョイナトランスフォーメーション
Data Integration Serviceは未ソートジョイナトランスフォーメーションを処理すると
き、明細行を読み込む前にマスタ行をすべて読み込みます。 Data Integration Service
は、マスタソースの行をキャッシュに格納する間、明細ソースをブロックします。
Data Integration Serviceがマスタ行をすべて読み込んでキャッシュに格納した後、明細
ソースのブロックを解除して明細行を読み込みます。 未ソートジョイナトランスフォーメ
ーションを含むマッピングは、データフロー検証に違反する場合があります。
ソート済みジョイナトランスフォーメーション
Data Integration Serviceは、ソート済みのジョイナトランスフォーメーションを処理す
るとき、マッピングの設定に基づいてデータをブロックします。 ジョイナトランスフォー
メーションへのマスタおよび明細入力が異なるソースから生じている場合、ブロックロジ
ックが可能になります。
ターゲットロード順グループのすべてのソースを同時にブロックせずにジョイナトランス
フォーメーションを処理できる場合、Data Integration Serviceはブロックロジックを使
ソースパイプラインのブロック
239
用してジョイナトランスフォーメーションを処理します。 それ以外の場合、ブロックロジ
ックは使用しません。その代わりに、より多くの行をキャッシュに格納します。
ブロックロジックを使用してジョイナトランスフォーメーションを処理できる場合、Data
Integration Serviceがキャッシュに格納する行は少なくなり、パフォーマンスが向上しま
す。
マスタ行のキャッシュ
Data Integration Serviceは、ジョイナトランスフォーメーションを処理する場合、両方
のソースから同時に行を読み込み、マスタ行に基づいてインデックスキャッシュおよびデ
ータキャッシュを作成します。
Data Integration Serviceは次に、明細ソースデータとキャッシュデータに基づいて結合
を実行します。 Data Integration Serviceがキャッシュに格納する行数は、ソースデー
タ、およびジョイナトランスフォーメーションがソート済み入力用に設定されているかど
うかによって異なります。
未ソートジョイナトランスフォーメーションのパフォーマンスを向上させるには、行の比
較的少ないソースをマスタソースとして使用します。 ソート済みジョイナトランスフォー
メーションのパフォーマンスを向上させるには、重複キー値の少ないソースをマスタとし
て使用します。
ジョイナトランスフォーメーションのパフォ
ーマンスのヒント
ジョイナトランスフォーメーションのパフォーマンスを向上させるためのヒントを紹介し
ます。
ジョイナトランスフォーメーションでは、中間結果を格納するための追加領域を実行時に
必要とするため、パフォーマンスが低下することがあります。ジョイナトランスフォーメ
ーションを最適化する必要があるかどうかを判断するには、ジョイナパフォーマンスカウ
ンタの情報を表示します。以下のヒントを使用して、ジョイナトランスフォーメーション
のパフォーマンスを向上させることができます。
重複キー値が少ない方のソースをマスタとして指定します。
Data Integration Serviceは、ソート済みジョイナトランスフォーメーションを処理
するときに、一度に100個の一意なキーの行をキャッシュに格納します。 マスタソー
スに同じキー値を持つ多数の行が含まれる場合、Data Integration Serviceはより多
くの行をキャッシュに格納する必要があり、それによってパフォーマンスが低下する
ことがあります。
行数が少ない方のソースをマスタとして指定します。
ジョイナトランスフォーメーションは詳細ソースの各行をマスタソースと比較しま
す。 マスタ内の行が少なければ、結合のための比較が繰り返される回数も少なくな
り、その結果、結合プロセスが高速になります。
240
第 18章: ジョイナトランスフォーメーション
可能な場合は、データベース内で結合を実行します。
データベース内で結合を実行すると、マッピングの実行中に実行する場合よりも処理
が高速になります。 パフォーマンスは、使用するデータベース結合の種類によっても
変わってきます。ノーマル結合は、外部結合よりも高速で、結果的にレコード数が少
なくて済みます。場合によっては、例えば2つの異なるデータベースまたはフラットフ
ァイルシステムとテーブルを結合する場合は、これが不可能なこともあります。
可能な場合は、ソート済みデータを結合します。
ソート済み入力を使用するようにジョイナトランスフォーメーションを設定してくだ
さい。 Data Integration Serviceは、ディスクの入出力を最小化することによってパ
フォーマンスを向上させます。 大量のデータセットを扱う場合に、パフォーマンスを
最大限に向上させることができます。 未ソートジョイナトランスフォーメーションの
場合、行の比較的少ないソースをマスタソースとして指定します。
ジョイナトランスフォーメーションのルール
とガイドライン
ジョイナトランスフォーメーションを使用するときは、特定のルールとガイドラインが適
用されます。
ジョイナトランスフォーメーションは、ほとんどのトランスフォーメーションからの入力
を受け付けます。 ただし、いずれかの入力パイプラインにアップデートストラテジトラン
スフォーメーションが含まれている場合、ジョイナトランスフォーメーションは使用でき
ません。
ジョイナトランスフォーメーションのルールとガイドライン
241
第 19 章
キージェネレータトランスフ
ォーメーション
この章では、以下の項目について説明します。
¨ キージェネレータトランスフォーメーションの概要, 242 ページ
¨ Soundexストラテジ, 243 ページ
¨ 文字列ストラテジ, 244 ページ
¨ NYSIISストラテジ, 244 ページ
¨ キージェネレータの出力ポート, 245 ページ
¨ グループ化ストラテジの設定, 245 ページ
¨ キー作成のプロパティ, 246 ページ
¨ キージェネレータトランスフォーメーションの詳細プロパティ, 246 ページ
キージェネレータトランスフォーメーション
の概要
キージェネレータトランスフォーメーションは、選択されたカラムのデータ値に基づいて
レコードをグループに整理するアクティブなトランスフォーメーションです。 このトラン
スフォーメーションを使用して、一致トランスフォーメーションに渡す前にレコードをソ
ートします。
キージェネレータトランスフォーメーションでは、選択されたカラムのグループキーの作
成にグループ化ストラテジが使用されます。 ストラテジとしては、文字列、Soundex、お
よびNYSIISがあります。 選択されたフィールドの値が同じレコードには、同じグループキ
ーが割り当てられます。 一致トランスフォーメーションは、グループキー値が同じレコー
ドをまとめて処理します。 その結果、一致トランスフォーメーション内の重複分析がスピ
ードアップします。
一致トランスフォーメーションが実行する必要のある比較処理の数は、データセット内の
レコード数に応じて急激に増加します。 この急激な増加により、大量のコンピューティン
グリソースが消費される可能性があります。 キージェネレータトランスフォーメーション
242
は、グループキーを作成することによって、一致トランスフォーメーションがより小さい
グループでレコードを比較できるようにし、その結果、処理時間が短縮されます。
フィールド一致を実行する場合は、グループキー生成のカラムに、一致ニーズに対して有
用なグループを提供する可能性の高いカラムを選択します。 たとえば、姓のカラムは、名
のカラムよりも有用なグループキーデータを提供する可能性があります。 ただし、一致ト
ランスフォーメーションの重複分析では、姓カラムを使用しないでください。
キージェネレータトランスフォーメーションでは、各レコードに一意の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コードが作成されます。
関連項目:
¨ 「文字列ストラテジのプロパティ」
¨ 「キー作成のプロパティ」
(ページ244)
(ページ246)
¨ 「 グループ化ストラテジの設定」
(ページ245)
Soundexストラテジ
243
文字列ストラテジ
文字列ストラテジは、入力データのサブ文字列からグループキーを作成します。
入力カラム内のサブ文字列の長さと場所を指定できます。 例えば、入力文字列の最初の4
文字からキーを作成するようにこのストラテジを設定することができます。
文字列ストラテジのプロパティ
キージェネレータトランスフォーメーションでグループキーの作成に使用されるサブ文字
列を決定するには、文字列ストラテジのプロパティを設定します。
以下の表に、文字列ストラテジのプロパティを示します。
プロパテ
ィ
説明
左から開
始
左から右に入力フィールドを読み取るようにトランスフォーメ
ーションを設定します。
右から開
始
右から左に入力フィールドを読み取るようにトランスフォーメ
ーションを設定します。
開始位置
スキップする文字数を指定します。 例えば、[開始位置]に3
と入力した場合、サブ文字列は入力フィールドの指定された側
から4文字目から始まります。
長さ
グループキーとして使用する文字列の長さを指定します。 入
力フィールドすべてを使用するには、0と入力します。
関連項目:
¨ 「Soundexストラテジのプロパティ」
¨ 「キー作成のプロパティ」
(ページ243)
(ページ246)
¨ 「 グループ化ストラテジの設定」
(ページ245)
NYSIISストラテジ
NYSIISストラテジは、単語を分析し、単語の発音を表す文字からグループキーを作成しま
す。
Soundexストラテジが文字列の最初の母音のみを考慮するのに対し、NYSIISストラテジは文
字列全体の母音を分析します。 NYSIISストラテジは、すべての文字を6つの文字のいずれ
かに変換し、ほとんどの母音を文字Aに変換します。
244
第 19章: キージェネレータトランスフォーメーション
キージェネレータの出力ポート
キージェネレータトランスフォーメーションの出力ポートは、一致トランスフォーメーシ
ョンがレコードの処理に使用するIDとグループキーを作成します。
以下の表に、キージェネレータトランスフォーメーションの出力ポートを示します。
プロパティ
説明
SequenceID
ソースデータセット内の各レコードを特定するIDを作成しま
す。
GroupKey
一致トランスフォーメーションでレコードの処理に使用され
るグループキーを作成します。
再利用可能なキージェネレータトランスフォーメーションを作成するときは、[概要]ビ
ューを使ってポートを表示します。再利用できないトランスフォーメーションをマッピン
グに追加するときは、[プロパティ]ビューの[ポート]タブを使ってポートを表示しま
す。
グループ化ストラテジの設定
グループ化ストラテジを設定するには、[ストラテジ]ビューでプロパティを編集しま
す。
キージェネレータストラテジを設定する前に、キージェネレータトランスフォーメーショ
ンに入力ポートを追加します。
1.
[ストラテジ]ビューを選択します。
2.
[新規]ボタンをクリックします。
3.
グループ化ストラテジを選択します。
4.
[OK]をクリックします。
5.
[入力]カラムで、入力ポートを選択します。
6.
プロパティフィールドで選択矢印をクリックして、ストラテジのプロパティを設定し
ます。
7.
キー作成のプロパティを設定します。
関連項目:
¨ 「Soundexストラテジのプロパティ」
¨ 「文字列ストラテジのプロパティ」
¨ 「キー作成のプロパティ」
(ページ243)
(ページ244)
(ページ246)
キージェネレータの出力ポート
245
キー作成のプロパティ
分析するデータに適したキー作成プロパティを設定します。
以下の表にキー作成のプロパティを示します。
プロパティ
説明
ソート結果
[GroupKey]フィールドを使用して、キージェネレータト
ランスフォーメーションの出力をソートします。 フィー
ルド一致操作では、このオプションを選択するか、一致ト
ランスフォーメーションにソート済みデータを提供してい
ることを確認する必要があります。 このオプションはID
一致操作では選択しないでください。
シーケンスキ
ーを自動的に
生成
入力データの順序を使用してシーケンスキーフィールドを
生成します。
フィールドを
シーケンスキ
ーとして使用
指定されたカラムに対してシーケンスフィールドを生成し
ます。
シーケンスキ
ーフィールド
シーケンスキーフィールドの名前を指定します。
関連項目:
¨ 「Soundexストラテジのプロパティ」
¨ 「文字列ストラテジのプロパティ」
¨ 「 グループ化ストラテジの設定」
(ページ243)
(ページ244)
(ページ245)
キージェネレータトランスフォーメーション
の詳細プロパティ
Data Integration Serviceでキージェネレータトランスフォーメーションのデータがどの
ように処理されるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
246
第 19章: キージェネレータトランスフォーメーション
第 20 章
ラベラトランスフォーメーシ
ョン
この章では、以下の項目について説明します。
¨ ラベラトランスフォーメーションの概要, 247 ページ
¨ ラベラトランスフォーメーションを使用する状況, 248 ページ
¨ ラベラトランスフォーメーションでの参照データの使用, 249 ページ
¨ ラベラトランスフォーメーションのストラテジ, 252 ページ
¨ ラベラトランスフォーメーションのポート, 253 ページ
¨ 文字ラベル適用のプロパティ, 254 ページ
¨ トークンラベル適用のプロパティ, 256 ページ
¨ 文字ラベル適用ストラテジの設定, 261 ページ
¨ トークンラベル適用ストラテジの設定, 261 ページ
¨ ラベラトランスフォーメーションの詳細プロパティ, 262 ページ
ラベラトランスフォーメーションの概要
ラベラトランスフォーメーションは、入力ポートフィールドを分析し、各フィールドのデ
ータを説明するテキストラベルを書き込む、パッシブなトランスフォーメーションです。
ラベラトランスフォーメーションは、ポートに含まれる情報のタイプを把握するときに使
用します。 ポート上の情報のタイプがわからないときや、ポート上で必要な情報のタイプ
が含まれていないレコードを特定するときに、ラベラトランスフォーメーションを使用し
ます。
ラベルは、入力文字列を説明する、1つ以上の文字から成る文字列です。 各文字列に含ま
れるデータに基づいて入力文字列にラベルを割り当てるように、ラベラトランスフォーメ
ーションを設定します。
トランスフォーメーションを設定するときは、検索する文字または文字列のタイプを指定
し、関連する文字または文字列を検索するときに出力として書き込まれるラベルを指定し
ます。 ラベル適用操作を設定するときは、検索する文字または文字列のタイプ、および使
247
用するラベルを入力します。 あるいは、参照データオブジェクトを使用して、文字、文字
列、およびラベルを指定します。
文字ラベル適用またはトークンラベル適用を実行するように、ラベラトランスフォーメー
ションを設定します。
文字ラベル適用
句読点やスペースを含めて、入力文字列の文字構造を説明するラベルを書き込みま
す。 カラム内の行ごとにラベルが1つ書き込まれます。 例えば、ラベラトランスフォ
ーメーションで郵便番号10028に"nnnnn"("n"は数字)というラベルを適用できま
す。
トークンラベル適用
入力文字列の情報のタイプを説明するラベルを書き込みます。 入力データで特定され
た各トークンのラベルが書き込まれます。 例えば、文字列"John J. Smith"にトーク
ン"Word Init Word"を使用してラベルを適用するようにラベラトランスフォーメーシ
ョンを設定できます。
トークンは入力文字列内の区切られた値です。
ラベラは、指定されたラベルに一致する文字または文字列を検出すると、ラベル名を新し
い出力ポートに書き込みます。
ラベラトランスフォーメーションでは、文字とトークンの特定に参照データが使用されま
す。 参照データオブジェクトは、ラベラストラテジで操作を設定するときに選択します。
ラベラトランスフォーメーションを使用する
状況
ラベラトランスフォーメーションは、ポートの各値を説明するラベルを書き込みます。
以下の例に、ラベラトランスフォーメーションで実行できるいくつかのタイプの分析を示
します。
連絡先データが含まれるレコードの検索
名のリストが含まれる参照テーブルのあるトランスフォーメーションを設定します。
トークンラベル適用ストラテジを作成して、参照テーブル内の値に一致するすべての
文字列にラベルを適用します。 出力データを確認するとき、ラベルが含まれるレコー
ドは人物を特定できる可能性が高くなります。
企業レコードの検索
Inc、Corp、Ltdなどの企業の接尾辞のリストが含まれるトークンセットのあるトラン
スフォーメーションを設定します。トークンラベル適用ストラテジを作成して、参照
テーブル内の値に一致するすべての文字列にラベルを適用します。 出力データを確認
するとき、ラベルが含まれるレコードは企業を特定できる可能性が高くなります。
注: 企業名を特定するには、目的の企業の接尾辞のトークンセットを使用します。 特
定するすべての企業がテーブルに含まれていることが確かである場合は、企業名の参
248
第 20章: ラベラトランスフォーメーション
照テーブルを使用できます。 例えば、ニューヨーク証券取引所の企業を一覧表示する
参照テーブルを使用できます。
電話番号データの検索
電話番号の文字構造を定義する文字セットのあるトランスフォーメーションを設定し
ます。 例えば、米国の電話番号のさまざまなパターンの句読記号と数字を認識する文
字セットを使用できます。 このデータを確認して、電話番号として正しい数字が含ま
れないレコードを検索することができます。
カラムデータを分析するために、文字ラベルでは次の文字を使用できます。
c=punctuation character n=digit s=space
以下の表に、電話番号の構造の例を示します。
文字構造
電話番号
cnnncsnnncnnncnnnnn
(212) 555-1212
nnnnnnnnnn
2125551212
cnnncnnncnnnn
+212-555-1212
ラベラトランスフォーメーションでの参照デ
ータの使用
InformaticaのDeveloperツールでは、インストール時に、ラベラトランスフォーメーショ
ンで使用できるさまざまなタイプの参照データオブジェクトもインストールされます。 参
照データオブジェクトを作成することもできます。
参照データオブジェクトをラベラトランスフォーメーションのストラテジに追加すると、
このトランスフォーメーションがストラテジの入力データから参照データオブジェクトを
検索します。このトランスフォーメーションでは、検索されたすべての値を参照データオ
ブジェクトからの有効な値に、または指定した値に置き換えます。
ラベラトランスフォーメーションでの参照データの使用
249
次の表に、使用できる参照データのタイプを示します。
参照データのタイプ
説明
文字セット
文字、数字、句読記号など、さまざ
まなタイプの文字を特定します。
文字のラベル適用操作を使用しま
す。
確率モデル
トークンラベル適用操作にあいまい
一致機能を追加します。 パーサー
トランスフォーメーションは、確率
モデルを使用して、文字列内の情報
のタイプを推測することができま
す。 あいまい一致機能を有効にす
るには、Developerツールで確率モ
デルをコンパイルします。
トークンのラベル適用操作を使用し
ます。
参照テーブル
データベーステーブル内のエントリ
に一致する文字列を検索します。
トークンのラベル適用操作と文字の
ラベル適用操作を使用します。
正規表現
定義した条件に一致する文字列を特
定します。 正規表現を使用して、
大きな文字列内の文字列を検索する
ことができます。
トークンのラベル適用操作を使用し
ます。
トークンセット
文字列に含まれる情報のタイプに基
づいて、文字列を特定します。
トークンのラベル適用操作を使用し
ます。
Informaticaは、単語、電話番号、
郵便番号、製品コードの定義など、
トークンセットのさまざまなタイプ
のトークン定義とともにインストー
ルされます。
文字セット
文字セットには、特定の文字および文字範囲を識別する式が含まれます。 文字セットは、
ラベラトランスフォーメーション、およびトークン解析モードを使用するパーサートラン
スフォーメーションで使用できます。
文字範囲は、連続する文字コードの範囲を指定します。 例えば、文字範囲"[A-C]"は大文
字の"A"、"B"、および"C"に一致します。この文字範囲は、小文字の"a"、"b"、また
は"c"には一致しません。
250
第 20章: ラベラトランスフォーメーション
文字セットを使用すると、トークン解析操作やラベル適用操作の一部として特定の文字ま
たは文字範囲を識別できます。 例えば、電話番号が格納されたカラムのすべての数字にラ
ベルを適用することができます。 数字にラベルを適用した後、パーサートランスフォーメ
ーションでパターンを識別し、問題のあるパターンを別の出力に書き込むことができま
す。
確率モデル
確率モデルは、トークンに含まれている情報のタイプと入力文字列内のトークンの位置に
よってトークンを特定します。
確率モデルには次のカラムが含まれます。
¨ 入力ポートのデータを表す入力カラム。入力ポートのサンプルデータをカラムに入力し
ます。このモデルでは、解析操作やラベル適用操作でサンプルデータを参照データとし
て使用します。
¨ 各入力文字列の情報のタイプと文字列内のトークンの正しい位置を特定する1つ以上の
カラム。カラムをモデルに追加し、各文字列のトークンを正しいカラムに割り当てま
す。
ラベラトランスフォーメーションで確率モデルを使用するとき、ラベラトランスフォーメ
ーションは、ラベラの値を入力行の各値に割り当てます。たとえば、トランスフォーメー
ションは、文字列「Franklin Delano Roosevelt」を「FIRSTNAME MIDDLENAME LASTNAME」
とラベル付けします。
ラベラトランスフォーメーションは、入力ポートのデータがモデルに一覧表示されていな
い場合でも、入力ポートのデータ値とモデルのデータ値の間の一致を推測できます。 つま
り、確率モデルでは、データセット内のトークンに対してラベル適用または解析を正しく
行うためにデータセット内のすべてのトークンを表示する必要はありません。
ラベラトランスフォーメーションは、確率的な論理またはあいまい論理を使用して、確率
モデル内のトークンに一致するトークンを特定します。 確率モデルをコンパイルするとき
は、あいまい論理のルールを更新します。 確率モデルは、マッピングで使用する前にコン
パイルする必要があります。
参照テーブル
参照テーブルは、少なくとも2つのカラムが含まれるデータベーステーブルです。 一方の
カラムにはデータ値の標準バージョンまたは必要なバージョンが含まれ、もう一方のカラ
ムにはデータ値の代替バージョンが含まれます。 参照テーブルをトランスフォーメーショ
ンに追加すると、テーブルに存在する値が入力ポートデータで検索されます。 作業するデ
ータプロジェクトに役立つデータを含むテーブルを作成できます。
正規表現
ラベル適用操作において、正規表現とは、入力データに含まれる特定の文字列の識別に使
用できる式を指します。 正規表現は、トークンラベル適用モードを使用するラベラトラン
スフォーメーションで使用できます。
ラベラトランスフォーメーションでは、正規表現を使用して入力パターンを一致させ、1つ
のラベルを作成します。 正規表現の出力が複数になる場合、複数のラベルは生成されませ
ん。
ラベラトランスフォーメーションでの参照データの使用
251
トークンセット
トークンセットには、特定のトークンを識別する式が含まれます。 トークンセットは、ト
ークンラベル適用モードを使用するラベラトランスフォーメーションで使用できます。
トークンセットを使用すると、トークンラベル適用操作の一部として特定のトークンを識
別できます。 例えば、トークンセットを使用して、"AccountName@DomainName"という形式
のすべての電子メールアドレスにラベルを適用できます。 トークンにラベルを適用した
ら、パーサートランスフォーメーションを使用して、指定した出力ポートに電子メールア
ドレスを書き込むことができます。
Developerツールには、さまざまなパターンを識別するために使用できるシステム定義のト
ークンセットが用意されています。 システム定義のトークンセットの例をいくつか示しま
す。
¨ 単語
¨ 数字
¨ 電話番号
¨ 電子メールアドレス
¨ 郵便番号
¨ 国の識別番号(社会保障番号など)
¨ クレジットカード番号
ラベラトランスフォーメーションのストラテ
ジ
入力データにラベルを割り当てるには、ラベル適用ストラテジを使用します。ラベル適用
ストラテジを設定するには、ラベラトランスフォーメーションの[ストラテジ]ビューで
設定を編集します。
ラベル適用ストラテジを作成するときは、操作を1つ以上追加し、操作ごとに特定のラベル
適用タスクを実装します。
ラベラトランスフォーメーションには、ストラテジを作成するためのウィザードが用意さ
れています。 ラベル適用ストラテジを作成するときは、文字ラベル適用またはトークンラ
ベル適用のいずれかのモードを選択します。 その後、そのラベル適用モードに固有の操作
を追加します。
重要: 操作やストラテジの順序は変更が可能です。 各操作で前の操作の結果を読み取る
ため、ストラテジ内の操作の順序によってストラテジの出力が変わることがあります。
文字ラベル適用操作
文字ラベル適用操作は、データの文字パターンを示すラベルを作成する場合に使用しま
す。
文字ラベル適用ストラテジには、以下のタイプの操作を追加できます。
252
第 20章: ラベラトランスフォーメーション
文字セットを使用して文字にラベルを適用する
定義済みの文字セット(数字や英文字など)を使用して文字にラベルを適用します。
Unicode文字セットとUnicode以外の文字セットを選択できます。
参照テーブルを使用して文字にラベルを適用する
参照テーブルにあるカスタムラベルを使用して文字にラベルを適用します。
トークンラベル適用操作
トークンラベル適用操作は、データの文字列を示すラベルを作成する場合に使用します。
ラベラトランスフォーメーションでは、入力文字列に含まれる複数のトークンを識別して
ラベルを適用することができます。 例えば、米国の電話番号と電子メールアドレスのトー
クンセットを使用するようにラベラトランスフォーメーションを設定できます。 このラベ
ラトランスフォーメーションで入力文字列"555-555-1212 [email protected]"を処理
すると、出力文字列は"USPHONE EMAIL"になります。
ラベル適用ストラテジに追加できるトークンラベル適用操作のタイプを次に示します。
参照テーブルのラベル
参照テーブルのエントリに一致する文字列にラベルを適用します。
トークンセットのラベルトークン
トークンセットデータまたは確率モデルデータに一致するラベル文字列パターン。
ラベラトランスフォーメーションのポート
トランスフォーメーション内で設定するラベル適用操作に必要な入力ポートと出力ポート
を選択します。
ラベラトランスフォーメーションでは、以下のポートを使用します。
入力ポート
アップストリームオブジェクトから文字列の入力を読み取ります。
ラベル適用後の出力ポート
トランスフォーメーションの操作によって定義されたラベルを書き込みます。
トークン化された出力ポート
出力の各ラベルに対応する入力文字列を渡します。 このポートは、マプレットまたは
マッピング内でラベラトランスフォーメーションのパーサートランスフォーメーショ
ンのダウンストリームを追加する場合にこのポートを選択し、パターンベースの解析
モードで実行されるようにパーサートランスフォーメーションを設定します。 パーサ
ートランスフォーメーションは、トークンラベル適用の出力を、トークン化された出
力ポートのデータと関連付けます。
スコア出力ポート
トークンラベル適用操作の確率的な一致手法によって生成されるスコア値を書き込む
場合に選択します。
ラベラトランスフォーメーションのポート
253
確率モデルが使用されるトークンラベル適用操作を実行すると、ラベルが適用された
文字列ごとに数値スコアが生成されます。 このスコアは、入力文字列と確率モデルで
定義されたパターンの間の類似度を表します。
文字ラベル適用のプロパティ
文字ラベル適用操作のプロパティは、ラベラトランスフォーメーションの[ストラテジ]
ビューで設定します。
全般プロパティ
全般プロパティは、ストラテジで定義するすべての文字ラベル適用操作に適用されます。
ストラテジに名前を付けたり、入出力ポートを指定したりするには、全般プロパティを使
用します。
次の表は、全般プロパティの説明です。
プロパティ
説明
名前
ストラテジの名前を入力します。
入力
ストラテジ操作で読み取ることがで
きる入力ポートを特定します。
出力
ストラテジ操作で書き込むことがで
きる出力ポートを特定します。
説明
ストラテジの説明を入力します。
これはオプションのプロパティで
す。
参照テーブルのプロパティ
文字ラベル適用ストラテジを定義するときは、文字セットと参照テーブルを使用してラベ
ルに演算子を追加できます。 参照テーブルのプロパティを使用して、参照テーブルの使用
方法を指定します。
以下の表に、参照テーブルのプロパティを示します。
254
プロパティ
説明
名前
操作の名前を入力します。
参照テーブル
文字へのラベルの適用に使用する参
照テーブルを指定します。
第 20章: ラベラトランスフォーメーション
プロパティ
説明
ラベル
参照テーブルのエントリに一致する
入力文字の置換テキストを指定しま
す。
ストラテジ内の他のラベルをオーバ
ーライドします
このラベル適用操作で他のラベル適
用操作をオーバーライドするかどう
かを指定します。
文字セットのプロパティ
文字ラベル適用ストラテジを定義するときは、文字セットと参照テーブルを使用してラベ
ルに演算子を追加できます。 文字セットのプロパティを使用して、文字セットの使用方法
を指定します。
以下の表に、文字セットのプロパティを示します。
プロパティ
説明
名前
操作の名前を入力します。
文字セットの選択
文字列へのラベルの適用に使用する
文字セットを指定します。
文字セットに一致する入力文字列の
置換テキストをオーバーライドでき
ます。 [ラベル]カラムで選択矢
印をクリックして、カスタム置換テ
キストを入力します。
フィルタテキスト
入力する文字またはワイルドカード
を使用して、文字セットのリストを
フィルタリングします。
文字セットの追加
カスタム文字セットを定義する場合
に選択します。
編集
カスタム文字セットの内容を編集し
ます。
インポート
コンテンツセットに格納されている
文字セットの再利用不可能なコピー
を作成できます。 元の文字セット
を変更しても、ラベラトランスフォ
ーメーションに格納したコピーには
反映されません。
削除
カスタム文字セットを削除します。
実行順序の指定
トークンセットをデータに適用する
順序を設定します。 上下の矢印を
使用して順序を変更できます。
文字ラベル適用のプロパティ
255
フィルタのプロパティ
ラベル適用操作中にスキップする値を指定できます。 ラベル適用操作を適用しない値を指
定するには、[テキストを無視する]プロパティを使用します。
以下の表に、フィルタのプロパティを示します。
プロパティ
説明
検索用語
ラベル適用を実行する前にフィルタ
する文字列を指定します。 この機
能を使用して、定義したラベル適用
ストラテジに対する例外を指定でき
ます。
大文字小文字の区別
フィルタする文字列を検索語句と照
合するときに大文字と小文字を区別
するかどうかを指定します。
大文字
フィルタする文字列を大文字に変換
します。
開始
フィルタする文字列の検索を開始す
る文字の位置を指定します。
終了
フィルタする文字列の検索を終了す
る文字の位置を指定します。
トークンラベル適用のプロパティ
トークンラベル適用操作のプロパティは、ラベラトランスフォーメーションの [ストラテ
ジ]ビューで設定します。
全般プロパティ
全般プロパティは、ストラテジで定義するすべてのトークンラベル適用操作に適用されま
す。 ストラテジに名前を付けたり、入出力ポートを指定したり、ストラテジで確率的な一
致方法を有効にするかどうかを指定するには、全般プロパティを使用します。
次の表は、全般プロパティの説明です。
256
プロパティ
説明
名前
ストラテジの名前を入力します。
入力
ストラテジ操作で読み取ることがで
きる出力ポートを識別します。
第 20章: ラベラトランスフォーメーション
プロパティ
説明
出力
ストラテジ操作で書き込むことがで
きる出力ポートを識別します。
説明
ストラテジを説明します。このプロ
パティはオプションです。
確率的な一致方法を使用
ストラテジが確率モデルを使用して
トークンのタイプを識別することが
できるように指定します。
反転有効
右から左に入力データを読み取るよ
うにストラテジを設定します。 こ
のプロパティは、確率的な一致に対
して無効になっています。
区切り文字
入力データ内のサブ文字列を評価す
るためにトランスフォーメーション
が使用する文字を指定します。デフ
ォルトはスペースです。
このプロパティは確率的なラベル適
用で無効になっています。
トークン化された出力フィールド
複数のラベルを出力ポートに書き込
むようにストラテジを設定します。
パーサートランスフォーメーション
でパターンベースの解析の入力デー
タを作成するには、このフィールド
を選択します。
スコア出力フィールド
確率的な一致で生成されるスコア値
が含まれるフィールドを特定しま
す。 スコア出力フィールドは、確
率的な一致方法を使用するオプショ
ンを選択するときに設定します。
出力の区切り文字
出力ポートのデータ値を区切る文字
を指定します。デフォルトはコロン
です。
トークンラベル適用のプロパティ
257
トークンセットのプロパティ
トークンセットプロパティは、トークンセットを使用するためにラベル適用操作を設定す
るときに適用されます。
次の表は、全般プロパティの説明です。
258
プロパティ
説明
トークンセットの選択
文字列へのラベルの適用に使用する
トークンセットを特定します。
フィルタテキスト
入力する文字またはワイルドカード
を使用して、トークンセットまたは
正規表現のリストをフィルタリング
します。
トークンセットの追加
カスタムのトークンセットを定義で
きます。
正規表現の追加
入力パターンに一致する正規表現を
定義できます。
編集
カスタムのトークンセットまたは正
規表現の内容を編集します。
インポート
リポジトリに格納されているトーク
ンセットまたは再利用不可能な正規
表現のコピーを作成できます。 再
利用可能なトークンセットに加えた
変更は、ラベラトランスフォーメー
ションに追加したコピーには反映さ
れません。
削除
カスタムのトークンセットまたは正
規表現を削除します。
実行順序の指定
トークンセットまたは正規表現をデ
ータに適用する順序を設定します。
上下の矢印を使用して順序を変更で
きます。
第 20章: ラベラトランスフォーメーション
カスタムラベルプロパティ
トークンラベル適用操作を設定するときは、[カスタムラベル]ビューを選択して、特定
の検索語句に対するラベルを作成できます。
以下の表に、カスタムラベルプロパティを示します。
プロパティ
説明
検索用語
検索する文字列を特定します。
大文字小文字の区別
検索語句と照合するときに大文字と
小文字を区別するかどうかを指定し
ます。
カスタムラベル
適用するカスタムラベルを特定しま
す。
確率的な一致のプロパティ
確率的な一致方法を使用するオプションを選択すると、確率モデルをラベル適用操作に追
加できます。 トークンセットまたは参照テーブルが使用されている確率モデルをストラテ
ジに追加することはできません。
以下の表に、確率的な一致に関連付けられているプロパティを示します。
プロパティ
説明
名前
操作の名前を入力します。
フィルタテキスト
入力する文字またはワイルドカード
を使用して、リポジトリ内の確率モ
デルのリストをフィルタリングしま
す。
確率モデル
この操作で使用する確率モデルを特
定します。
トークンラベル適用のプロパティ
259
参照テーブルのプロパティ
参照テーブルプロパティは、参照テーブルを使用するためにラベル適用操作を設定すると
きに適用されます。
以下の表に、参照テーブルのプロパティを示します。
260
プロパティ
説明
名前
操作の名前を入力します。
参照テーブル
トークンへのラベルの適用に使用す
る参照テーブルを指定します。
ラベル
入力文字列が参照テーブルのエント
リに一致するときに新しいポートに
書き込まれるテキストを指定しま
す。
大文字小文字の区別
入力文字列を参照テーブルのエント
リと照合するときに大文字と小文字
を区別するかどうかを指定します。
有効な値で一致を置換
ラベルが適用された文字列を参照テ
ーブルの[有効]カラムのエントリ
に置き換えます。
最頻値
トークンラベル適用の方法を指定し
ます。 参照テーブルのエントリに
一致する入力文字列にラベルを適用
する場合は、[含める]を選択しま
す。 参照テーブルのエントリに一
致する入力文字列にラベルを適用し
ない場合は、[占有]を選択しま
す。
優先順位の設定
ストラテジで、参照テーブルへのラ
ベル適用操作がトークンセットへの
ラベル適用操作よりも優先されるか
どうかを指定します。 このプロパ
ティを設定すると、トークンセット
へのラベル適用の前に参照テーブル
へのラベル適用が実行され、トーク
ンセットの分析は参照テーブルのラ
ベル分析を上書きできません。
第 20章: ラベラトランスフォーメーション
文字ラベル適用ストラテジの設定
ラベル適用ストラテジを設定するには、ラベラトランスフォーメーションの[ストラテ
ジ]ビューで設定を編集します。
1.
[ストラテジ]ビューを選択し、[新規]をクリックしてストラテジを作成します。
ストラテジウィザードが開きます。
2.
ストラテジの名前を入力します。
3.
[入力]フィールドと[出力]フィールドをクリックして、ストラテジのポートを定
義します。
4.
必要に応じて、ストラテジの説明を入力します。
5.
文字ラベル適用モードを選択します。
6.
[次へ]をクリックします。
7.
設定する文字ラベル適用操作のタイプを選択します。 以下の操作を設定できます。
¨ 参照テーブルを使用して文字にラベルを適用する。
¨ 文字セットを使用したラベル文字。
8.
[次へ]をクリックします。
9.
操作のプロパティを設定し、[次へ]をクリックします。
10.
必要に応じて、[テキストを無視する]プロパティを設定します。
11.
[次へ]をクリックしてその他の操作をストラテジに追加するか、[完了]をクリッ
クします。
ストラテジや操作を処理する順序は変更できます。 [ストラテジ]ビューで、ストラテジ
または操作を選択し、[上に移動]または[下に移動]をクリックします。
トークンラベル適用ストラテジの設定
ラベル適用ストラテジを設定するには、ラベラトランスフォーメーションの[ストラテ
ジ]ビューで設定を編集します。
1.
[ストラテジ]ビューを選択し、[新規]をクリックしてストラテジを作成します。
ストラテジウィザードが開きます。
2.
ストラテジの名前を入力します。
3.
[入力]フィールドと[出力]フィールドをクリックして、ストラテジのポートを定
義します。
4.
必要に応じて、ストラテジの説明を入力します。
5.
トークンラベル適用モードを選択します。
選択するモードのプロパティを検証または編集します。
6.
[次へ]をクリックします。
文字ラベル適用ストラテジの設定
261
7.
設定するトークンラベル適用操作のタイプを選択します。 以下の操作を設定できま
す。
¨ トークンセットを使用してトークンにラベルを適用します。
¨ 参照テーブルを使用してトークンにラベルを適用します。
¨ 確率的な一致を使用してトークンにラベルを適用します。
8.
[次へ]をクリックします。
9.
操作のプロパティを設定し、[次へ]をクリックします。
確率的な一致を使用するようにストラテジを設定する場合は、その他のデータとして
特定されるトークンに使用するラベルを入力します。
10.
必要に応じて、[カスタムラベル]プロパティを設定します。
11.
[次へ]をクリックしてその他の操作をストラテジに追加するか、[完了]をクリッ
クします。
ストラテジや操作を処理する順序は変更できます。 [ストラテジ]ビューで、ストラテジ
または操作を選択し、[上に移動]または[下に移動]をクリックします。
ラベラトランスフォーメーションの詳細プロ
パティ
Data Integration Serviceでラベラトランスフォーメーションのデータがどのように処理
されるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
262
第 20章: ラベラトランスフォーメーション
第 21 章
ルックアップトランスフォー
メーション
この章では、以下の項目について説明します。
¨ ルックアップトランスフォーメーションの概要, 263 ページ
¨ 接続されたルックアップと接続されていないルックアップ, 264 ページ
¨ ルックアップトランスフォーメーションの開発, 267 ページ
¨ ルックアップ条件, 267 ページ
¨ ルックアップキャッシュ, 268 ページ
¨ フラットファイル、参照テーブル、またはリレーショナルルックアップのランタイププ
ロパティ, 270 ページ
¨ フラットファイルルックアップトランスフォーメーションの詳細プロパティ, 272 ペ
ージ
¨ 参照テーブルルックアップまたはリレーショナルルックアップのトランスフォーメーシ
ョンの詳細プロパティ, 274 ページ
¨ 論理データオブジェクトのルックアップトランスフォーメーションの詳細プロパテ
ィ, 275 ページ
¨ 再利用可能なルックアップトランスフォーメーションの作成, 275 ページ
¨ 再利用不可能なルックアップトランスフォーメーションの作成, 276 ページ
¨ 接続されていないルックアップトランスレーションの作成, 277 ページ
¨ 接続されていないルックアップの例, 278 ページ
ルックアップトランスフォーメーションの概
要
ルックアップトランスフォーメーションはパッシブまたはアクティブなトランスフォーメ
ーションであり、フラットファイル、論理データオブジェクト、参照テーブル、またはリ
レーショナルテーブルをルックアップします。ルックアップトランスフォーメーション
は、ルックアップから1行または複数の行を返すことができます。
263
ルックアップトランスフォーメーションを作成する前に、ルックアップソースを作成しま
す。 フラットファイルまたはリレーショナルデータベーステーブルを物理データオブジェ
クトとしてインポートします。 または、ルックアップソースとして使用する論理データオ
ブジェクトまたは参照テーブルを作成します。ルックアップトランスフォーメーションを
作成する際、Developerツールがデータオブジェクトまたは参照テーブルからこれらのカラ
ムをトランスフォーメーションのルックアップ用ポートとして追加します。トランスフォ
ーメーションの作成後、ルックアップの結果を返すように1つ以上の出力ポートを設定しま
す。 ルックアップ条件を設定し、他のルックアッププロパティを設定します。
マッピングを実行、またはデータをプレビューすると、Data Integration Serviceはルッ
クアップソースに対してクエリを実行します。 Data Integration Serviceは、トランスフ
ォーメーションのルックアップポート、ルックアッププロパティ、およびルックアップ条
件に基づいて、ルックアップソースに対してクエリを実行します。 ルックアップトランス
フォーメーションは、ルックアップの結果をターゲットまたは別のトランスフォーメーシ
ョンに返します。
接続されたまたは接続されていないルックアップトランスフォーメーションを設定できま
す。 接続されたトランスフォーメーションは、マッピング内の別のトランスフォーメーシ
ョンに接続されています。 接続されていないトランスフォーメーションは、別のトランス
フォーメーションの:LKP式から入力を受け取ります。 ルックアップトランスフォーメーシ
ョンで論理データオブジェクトに対してルックアップを実行する場合は、接続されたルッ
クアップトランスフォーメーションを設定する必要があります。 ルックアップトランスフ
ォーメーションの入力ポートをアップストリームトランスフォーメーションまたはアップ
ストリームソースに接続します。 出力ポートをダウンストリームトランスフォーメーショ
ンまたはダウンストリームターゲットに接続します。
1つのマッピングで複数のルックアップトランスフォーメーションを使用できます。
ルックアップトランスフォーメーションでは、以下のタスクを実行できます。
¨ 関連する値を取得する。入力データの値に基づいてルックアップソースから値を取得し
ます。. 例えば、入力データに従業員IDが含まれているとします。 ルックアップ sソ
ースから従業員IDによって従業員名を取得します。
¨ ルックアップソースから複数の行を取得する。
¨ 計算を行う。ルックアップテーブルから値を取得し、その値を計算に使用します。 例
えば、消費税率を取得し、税額を計算してターゲットに返します。
¨ 式を受け付けるトランスフォーメーションの:LKP式を使用して、接続されていないルッ
クアップを実行する。 トランスフォーメーションの別の式を使用して結果をフィルタ
します。
接続されたルックアップと接続されていない
ルックアップ
接続されたまたは接続されていないルックアップトランスフォーメーションを設定できま
す。 接続されたルックアップトランスフォーメーションは、マッピング内の他のトランス
フォーメーションに接続する入出力ポートのあるトランスフォーメーションです。 接続さ
264
第 21章: ルックアップトランスフォーメーション
れていないルックアップトランスフォーメーションは、マッピングに含まれますが、他の
トランスフォーメーションに接続されていません。
接続されていないルックアップトランスフォーメーションは、トランスフォーメーション
(式トランスフォーメーションやアグリゲータトランスフォーメーションなど)の:LKP式
の結果から入力を受け取ります。 :LKP式は、ルックアップトランスフォーメーションにパ
ラメータを渡し、ルックアップから結果を受け取ります。 :LKP式は、ルックアップの結果
をトランスフォーメーションの別の式に渡して、結果をフィルタすることができます。
以下の表に、接続されたルックアップとコネクトされていないルックアップの違いを示し
ます。
接続されたルックアップ
接続されていないルックアップ
入力値をマッピングから直接受
け取ります。
入力値を別のトランスフォーメーショ
ンの:LKP式の結果から受け取ります。
キャッシュには、ルックアップ
条件のルックアップソースカラ
ムおよび出力ポートとなるルッ
クアップソースカラムが含まれ
ています。
キャッシュには、ルックアップ条件の
ルックアップポートと出力ポート、お
よび戻りポートが含まれています。
同じ行の複数のカラムを返しま
す。 複数の行を返すことができ
ます。
戻りポートを介して1行から1つのカラ
ムを返します。
ルックアップ条件に一致するも
のがない場合、Data
Integration Serviceはすべての
出力ポートにデフォルト値を返
します。
ルックアップ条件に一致するものがな
い場合、Data Integration Serviceは
NULLを返します。
ルックアップ条件に一致するも
のがある場合、Data
Integration Serviceはすべての
ルックアップ/出力ポートにルッ
クアップ条件の結果を返しま
す。
ルックアップ条件に一致するものがあ
る場合、Data Integration Serviceは
戻りポートを介してルックアップ条件
の結果を返します。
ルックアップトランスフォーメ
ーションは、複数の出力値を別
のトランスフォーメーションに
渡すことができます。 ルックア
ップポートを別のトランスフォ
ーメーションにリンクします。
ルックアップは、1つの出力値を別のト
ランスフォーメーションに返します。
ルックアップトランスフォーメーショ
ンの戻りポートは、他のトランスフォ
ーメーションの:LKP式が含まれるポー
トに値を渡します。
ユーザ定義デフォルト値をサポ
ートします。
ユーザ定義デフォルト値をサポートし
ません。
接続されたルックアップ
接続されたルックアップトランスフォーメーションは、マッピング内のソースまたはター
ゲットに接続しているルックアップトランスフォーメーションです。
接続されたルックアップと接続されていないルックアップ
265
接続されたルックアップトランスフォーメーションが含まれるマッピングを実行すると、
Data Integration Serviceは以下の手順を実行します。
1.
別のトランスフォーメーションからルックアップトランスフォーメーションの入力ポ
ートに値を渡します。
2.
各入力行に対して、トランスフォーメーションのルックアップポートおよびルックア
ップ条件に基づいてルックアップソースまたはキャッシュに対してクエリを実行しま
す。
3.
トランスフォーメーションがキャッシュされていない場合、またはトランスフォーメ
ーションに静的キャッシュがある場合、ルックアップクエリから値を返します。
4.
クエリからデータを返し、マッピング内の次のトランスフォーメーションに渡しま
す。
接続されていないルックアップ
接続されていないルックアップトランスフォーメーションは、マッピング内のソースまた
はターゲットに接続していないルックアップトランスフォーメーションです。 式を使用で
きるトランスフォーメーションの:LKP式を使用して、ルックアップを呼び出します。
ルックアップ式の構文は、:LKP lookup_transformation_name(argument, argument, ...)のようにな
ります。
各引数を記述する順序は、ルックアップトランスフォーメーションのルックアップ条件の順
序と一致しなければなりません。ルックアップトランスフォーメーションは、ルックアッ
プトランスフォーメーションの戻りポートを介して、クエリの結果を返します。 ルックア
ップを呼び出すトランスフォーメーションは、:LKP式が含まれるポートにルックアップの
結果値を受け取ります。 ルックアップクエリが値を返せなかった場合、ポートはNULL値を
受け取ります。
接続されていないルックアップを実行するときは、マッピング内で同じルックアップを複
数回実行できます。 ルックアップの結果を別の式でテストし、その結果に基づいて行をフ
ィルタすることができます。
接続されていないルックアップトランスフォーメーションが含まれるマッピングを実行す
ると、Data Integration Serviceは以下の手順を実行します。
266
1.
:LKP式からルックアップトランスフォーメーションにルックアップパラメータを渡し
ます。 式は式トランスフォーメーションやアグリゲータトランスフォーメーションな
どの別のトランスフォーメーションに含まれています。
2.
ルックアップトランスフォーメーションのルックアップポートおよびルックアップ条
件に基づき、ルックアップソースまたはキャッシュに対してクエリを実行します。
3.
ルックアップトランスフォーメーションの戻りポートを介して値を返します。
4.
他のトランスフォーメーションの:LKP式に戻り値を渡します。 :LKP式が含まれるポー
トが結果を受け取ります。
第 21章: ルックアップトランスフォーメーション
ルックアップトランスフォーメーションの開
発
ルックアップトランスフォーメーションを開発するときは、ルックアップソースのタイプ
やルックアップ条件などの要素について考慮する必要があります。
ルックアップトランスフォーメーションを開発するときは、以下の項目について考慮して
ください。
¨ フラットファイル、論理データ オブジェクト、参照テーブル、リレーショナルデータ
オブジェクトのうち、どれからトランスフォーメーションを作成することにするか。ル
ックアップトランスフォーメーションを作成する前に、ルックアップソースを作成しま
す。 フラットファイルまたはリレーショナルデータベーステーブルを物理データオブ
ジェクトとしてインポートします。 または、ルックアップソースとして使用する論理
データオブジェクトまたは参照テーブルを作成します。
¨ トランスフォーメーションの出力ポート。
¨ トランスフォーメーションのルックアップ条件。
¨ Data Integration Serviceでルックアップデータをキャッシュするかどうか。フラット
ファイル、参照テーブル、またはリレーショナルデータオブジェクトの場合に、Data
Integration Serviceはデータをキャッシュに格納できます。
ルックアップ条件
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番号がソースの従業員番号よりも大きい行をす
べて返します。
ルックアップトランスフォーメーションの開発
267
ルックアップトランスフォーメーションの条件のルー
ルとガイドライン
ルックアップトランスフォーメーションの条件の入力時には、特定のルールとガイドライ
ンが適用されます。
ルックアップトランスフォーメーションの条件の入力について、以下のルールとガイドラ
インを使用してください。
¨ ルックアップ条件に含めるカラムのデータ型は一致する必要があります。
¨ すべてのルックアップトランスフォーメーションにルックアップ条件を入力します。
¨ ルックアップ条件のルックアップポートごとに入力ポートを1つ使用します。同じ入力
ポートをトランスフォーメーションの複数の条件で使用します。
¨ 複数の条件を入力した場合、Data Integration Serviceはそれぞれの条件をORではなく
ANDとして評価します。 Data Integration Serviceは、設定したすべての条件に一致す
る行を返します。
¨ 複数の条件を含める場合は、ルックアップのパフォーマンスを高めるために以下の順序
で条件を入力します。
- 等しい(=)
- より小さい (<)、より大きい(>)、より小さいまたは等しい (<=)、より大きいまたは
等しい (>=)
- 等しくない(!=)
¨ ルックアップ条件を作成する場合、以下の演算子を使用します。
- =, >, <, >=, <=, !=
¨ ルックアップが値を返すためには、入力値がすべての条件を満たす必要があります。
¨ 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は、キャッシュを使用するルックアップト
ランスフォーメーションのデータの最初の行を処理するときにメモリにキャッシュを構築
します。マッピングが完了すると、永続キャッシュを使用するようにルックアップトラン
268
第 21章: ルックアップトランスフォーメーション
スフォーメーションを設定していない限り、Data Integration Serviceはキャッシュメモ
リを解放し、キャッシュファイルを削除します。
ルックアップキャッシュはパフォーマンスを向上させます。Data Integration Service
は、各入力行に対してルックアップソースを照会する代わりにルックアップキャッシュを
照会します。ソーステーブルが大きい場合は、ルックアップソースをキャッシュに格納す
ることによってパフォーマンスが最適化されます。
Data Integration Serviceは、ルックアップトランスフォーメーションのランタイムプロ
パティで設定した量に基づいて、キャッシュにメモリを割り当てます。キャッシュがメモ
リに対して大きすぎる場合、Data Integration Serviceはキャッシュファイルを作成しま
す。デフォルトでは、Data Integration ServiceはCacheDirシステムパラメータで指定さ
れたディレクトリにキャッシュファイルを格納します。Data Integration Serviceはイン
デックスキャッシュに条件値を格納し、データキャッシュに出力値を格納します。
ソート済み入力用にフラットファイルルックアップを設定する場合、条件カラムがグルー
プ化されていなければData Integration Serviceはルックアップをキャッシュできませ
ん。 カラムがグループ化されていてソートされていない場合、Data Integration Service
はソート済み入力が設定されていない場合と同様にルックアップを処理します。
Data Integration Serviceがキャッシュを使用しないルックアップを処理する場合、キャ
ッシュではなくるルックアップソースを照会します。
共有キャッシュ
デフォルトでは、Data Integration Serviceは、マッピング内に互換性のあるキャッシュ
構造体を持つルックアップトランスフォーメーションのキャッシュを共有します。
同じデータまたはデータのサブセットを使ってディスクキャッシュを作成するルックアッ
プトランスフォーメーションであれば、複数のルックアップトランスフォーメーションが
ディスクキャッシュを共有できます。たとえば、マッピング内に、同じ再利用可能なルッ
クアップトランスフォーメーションの2つのインスタンスを設定し、両方のインスタンスに
同じ出力ポートを使用した場合、この2つのルックアップトランスフォーメーションはルッ
クアップキャッシュを共有します。トランスフォーメーションプロパティまたはキャッシ
ュ構造体により共有が許可されない場合、Data Integration Serviceでキャッシュは共有
されません。ルックアップキーが異なるか、ルックアップトランスフォーメーションに複
数の異なる一致条件がある場合、Data Integration Serviceでキャッシュは共有されませ
ん。
永続キャッシュ
ルックアップソースを変えることなくマッピングを複数回実行する場合、永続ルックアッ
プキャッシュを使用するようにルックアップトランスフォーメーションを設定することが
できます。Data Integration Serviceは、ルックアップソースの読み取りに必要な時間を
予測しながら、マッピングの実行間にキャッシュファイルを保存および再利用します。
ルックアップトランスフォーメーションでキャッシュを有効にした場合、Data
Integration Serviceではデフォルトで非永続キャッシュが使用されます。 Data
Integration Serviceは、マッピングの実行の最後にキャッシュファイルを削除します。
次にマッピングを実行したときに、Data Integration Serviceはデータベースからメモリ
キャッシュを作成します。
ルックアップキャッシュ
269
永続ルックアップキャッシュに設定している場合、Data Integration Serviceが最初のマ
ッピングを実行したときに、キャッシュファイルが削除されずにディスクに保存されま
す。Data Integration Serviceが次のマッピングを実行するときに、そのキャッシュファ
イルからメモリキャッシュを作成します。ルックアップテーブルが変化することがある場
合は、ルックアッププロパティを上書きして、データベースからルックアップを再キャッ
シュすることができます。
キャッシュファイルを保存して再使用する場合、永続キャッシュを使用するようにルック
アップトランスフォーメーションを設定できます。永続キャッシュを設定するには、ルッ
クアップトランスフォーメーションの[詳細]ビューで[ルックアップキャッシュの永続
性]プロパティを設定します。
フラットファイル、参照テーブル、またはリ
レーショナルルックアップのランタイププロ
パティ
Data Integration Serviceがルックアップデータをキャッシュするかどうかを決定するに
は、ランタイムプロパティを設定します。
270
第 21章: ルックアップトランスフォーメーション
次の表に、フラットファイル、参照テーブル、またはリレーショナルルックアップを実行
するルックアップトランスフォーメーションのランタイムプロパティを示します。
プロパティ
説明
ルックアップキャッシュが有効
Data Integration Serviceがルック
アップ値をキャッシュするかどうか
を指定します。
ルックアップキャッシュを有効にす
ると、Data Integration Serviceは
ルックアップソースに対してクエリ
を一度実行し、値をキャッシュし、
キャッシュ内の値をルックアップし
ます。 ルックアップ値をキャッシ
ュに格納すると、パフォーマンスを
高めることができます。
キャッシュを無効にすると、行がト
ランスフォーメーションを通過する
たびに、Data Integration Service
はルックアップソースにSelect文を
発行してルックアップ値を求めま
す。
フラットファイルルックアップは常
にキャッシュされます。
ルックアップデータキャッシュのサ
イズ
Data Integration Serviceがメモリ
内のデータキャッシュに割り当てる
メモリサイズの最大値。 デフォル
トは[自動]です。
ルックアップインデックスキャッシ
ュのサイズ
Data Integration Serviceがメモリ
内のインデックスに割り当てるメモ
リサイズの最大値。 デフォルトは
[自動]です。
フラットファイル、参照テーブル、またはリレーショナルルックアップのランタイププロパティ
271
プロパティ
説明
ルックアップキャッシュの事前作成
Data Integration Serviceで、ルッ
クアップトランスフォーメーション
がデータを受け取る前に、ルックア
ップキャッシュを作成できるように
します。 Data Integration
Serviceは、複数のルックアップキ
ャッシュファイルを同時に作成して
パフォーマンスを高めることができ
ます。
以下のいずれかのオプションを設定
します。
- 自動。Data Integration Serviceで
値が決定されます。
- 常に許可。 Data Integration
Serviceで、ルックアップトランス
フォーメーションがデータを受け取
る前に、ルックアップキャッシュを
作成できるようにします。 Data
Integration Serviceは、複数のル
ックアップキャッシュファイルを同
時に作成してパフォーマンスを高め
ることができます。
- 常に不許可。Data Integration
Serviceは、ルックアップトランス
フォーメーションが最初の行を受け
取る前に、ルックアップキャッシュ
を作成できません。
ルックアップキャッシュディレクト
リ名
ルックアップソースをキャッシュす
るようにルックアップトランスフォ
ーメーションが設定されている場合
に、ルックアップキャッシュファイ
ルを作成するために使用されるディ
レクトリ。
デフォルトはCacheDirシステムパラ
メータです。
フラットファイルルックアップトランスフォ
ーメーションの詳細プロパティ
永続ルックアップキャッシュやトレースレベルなど、フラットファイルルックアップトラ
ンスフォーメーションの詳細プロパティを設定します。
272
第 21章: ルックアップトランスフォーメーション
以下の表に、フラットファイルルックアップトランスフォーメーションの詳細プロパティ
を示します。
プロパティ
説明
ルックアップキャッシュの永続性
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値の順序付けはデータベースの
デフォルト値によって異なります。
トレースレベル
ログに表示する詳細の程度を設定し
ます。
ソート済み入力
入力データがグループで事前にソー
トされていることを示します。
日時フォーマット
日時フォーマットおよびフィールド
幅を定義します。 ミリ秒、マイク
ロ秒、ナノ秒のフォーマットのフィ
ールド幅は、29になります。ポート
の日時フォーマットを選択しない場
合は、任意の日時フォーマットを入
力できます。
デフォルトは、「YYYY-MM-DD
HH24:MI:SS」です。日時フォーマッ
トを設定しても、ポートのサイズは
変わりません。このフィールドは読
み取り専用です。
フラットファイルルックアップトランスフォーメーションの詳細プロパティ
273
プロパティ
説明
1000ごとの区切り
値は「なし」です。このフィールド
は読み取り専用です。
小数点記号
値はピリオドです。このフィールド
は読み取り専用です。
参照テーブルルックアップまたはリレーショ
ナルルックアップのトランスフォーメーショ
ンの詳細プロパティ
詳細プロパティでリレーショナルデータベースへの接続と永続ルックアップキャッシュを
設定します。
以下の表に、参照テーブルルックアップおよびリレーショナルルックアップのトランスフ
ォーメーションの詳細プロパティを示します。
プロパティ
説明
ルックアップキャッシュの永続性
Data Integration Serviceが、2つ
以上のキャッシュファイルを含む永
続ルックアップキャッシュを使用す
るかどうかを示します。 ルックア
ップトランスフォーメーションが永
続ルックアップキャッシュを使用す
るように設定されていて、永続ルッ
クアップキャッシュが存在しない場
合、Data Integration Serviceはフ
ァイルを作成します。
トレースレベル
ログに含める詳細の程度を設定しま
す。
接続
リレーショナルルックアップソース
を含むリレーショナルデータベース
への接続。
参照テーブルのルックアップの場
合、このフィールドは読み取り専用
です。
274
第 21章: ルックアップトランスフォーメーション
プロパティ
説明
カスタムSQLクエリ
リレーショナルルックアップの場合
は、デフォルトのSQLクエリを上書
きします。
ソースフィルタ
リレーショナルルックアップの場合
は、Data Integration Serviceがク
エリを実行する行数が減少します。
論理データオブジェクトのルックアップトラ
ンスフォーメーションの詳細プロパティ
論理データオブジェクトのルックアップトランスフォーメーションの詳細プロパティを設
定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
再利用可能なルックアップトランスフォーメ
ーションの作成
フラットファイル、論理データオブジェクト、参照テーブル、またはリレーショナルデー
タオブジェクトをルックアップするルックアップトランスフォーメーションを作成しま
す。
1.
[Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。
2.
[ファイル] > [新規] > [トランスフォーメーション]をクリックします。
3.
ルックアップウィザードに移動します。
4.
[フラットファイルデータオブジェクトルックアップ]、[論理データオブジェクト
ルックアップ]、[参照テーブルルックアップ]、または[リレーショナルデータオ
ブジェクトルックアップ]を選択します。
5.
[次へ]をクリックします。
論理データオブジェクトのルックアップトランスフォーメーションの詳細プロパティ
275
[新しいルックアップトランスフォーメーション]ダイアログボックスが表示されま
す。
6.
Developerツール内の参照テーブルまたは物理データオブジェクトを選択します。
7.
トランスフォーメーションの名前を入力します。
8.
[複数の一致の検出時]で、ルックアップトランスフォーメーションがルックアップ
条件に一致する行を複数見つけたときにどの行を返すのかを設定します。
9.
[完了]をクリックします。
ルックアップトランスフォーメーションがエディタに表示されます。
10.
[概要]ビューの[ポート]セクションで、トランスフォーメーションに出力ポート
を追加します。
11.
[ルックアップ]ビューで、1つ以上のルックアップ条件を追加します。
12.
[詳細]ビューで、ルックアップの詳細プロパティを設定します。
ルックアップトランスフォーメーションをマッピングに追加する場合、[ランタイム]ビ
ューでルックアップのランタイムプロパティを設定することもできます。
再利用不可能なルックアップトランスフォー
メーションの作成
マッピングまたはマップレットで再利用不可能なルックアップトランスフォーメーション
を作成します。
1.
マッピングまたはマップレットで、トランスフォーメーションパレットからエディタ
にルックアップトランスフォーメーションをドラッグします。
[新規]ダイアログボックスが表示されます。
2.
[フラットファイルデータオブジェクトルックアップ]、[論理データオブジェクト
ルックアップ]、[参照テーブルルックアップ]、または[リレーショナルデータオ
ブジェクトルックアップ]を選択します。
3.
[次へ]をクリックします。
[新しいルックアップトランスフォーメーション]ダイアログボックスが表示されま
す。
4.
Developerツール内の参照テーブルまたは物理データオブジェクトを選択します。
5.
トランスフォーメーションの名前を入力します。
6.
[複数の一致の検出時]で、ルックアップトランスフォーメーションがルックアップ
条件に一致する行を複数見つけたときにどの行を返すのかを設定します。
7.
[完了]をクリックします。
ルックアップトランスフォーメーションがエディタに表示されます。
8.
エディタでルックアップトランスフォーメーションを選択します。
トランスフォーメーションの上にツールバーが表示されます。
276
第 21章: ルックアップトランスフォーメーション
9.
[ポート]タブ([プロパティ]ビュー内)で、出力ポートをトランスフォーメーシ
ョンに追加します。
10.
[ランタイム]タブ([プロパティ]ビュー内)で、ランタイムプロパティを設定し
ます。
11.
[ルックアップ]タブ([プロパティ]ビュー内)で、1つ以上のルックアップ条件を
追加します。
12.
[詳細]タブ([プロパティ]ビュー内)で、ルックアップの詳細プロパティを設定
します。
接続されていないルックアップトランスレー
ションの作成
式からルックアップを実行するときは、接続されていないルックアップトランスフォーメ
ーションを作成します。 再利用可能または再利用不可能な接続されていないルックアップ
トランスフォーメーションを作成できます。
接続されていないルックアップトランスフォーメーションを作成する前に、ルックアップ
ソースを作成します。 フラットファイルまたはリレーショナルデータベーステーブルを物
理データオブジェクトとしてインポートします。 または、ルックアップソースとして使用
する参照テーブルを作成します。
1.
[Object Explorer]ビューで、プロジェクトまたはフォルダーを選択します。
2.
[ファイル] > [新規] > [トランスフォーメーション]をクリックします。
3.
ルックアップウィザードに移動します。
4.
[フラットファイルデータオブジェクトルックアップ]、[参照テーブルルックアッ
プ]、または[リレーショナルデータオブジェクトルックアップ]を選択します。
5.
[次へ]をクリックします。
[新しいルックアップ]ダイアログボックスが表示されます。
6.
Developerツール内の参照テーブルまたは物理データオブジェクトを選択します。
7.
トランスフォーメーションの名前を入力します。
8.
[複数の一致の検出時]で、ルックアップトランスフォーメーションがルックアップ
条件に一致する行を複数見つけたときにどの行を返すのかを設定します。 接続されて
いないルックアップでは、[すべてを返す]は選択しないでください。
9.
[完了]をクリックします。
ルックアップトランスフォーメーションがエディタに表示されます。
10.
[概要]ビューの[ポート]セクションで、トランスフォーメーションに出力ポート
を追加します。
:LKP式の各引数について入力ポートを作成します。作成する各ルックアップ条件につ
いて入力ポートを作成します。 1つの入力ポートを複数の条件で使用できます。
11.
[概要]ビューの[ポート]セクションで、1つのポートを戻りポートとして設定しま
す。
接続されていないルックアップトランスレーションの作成
277
12.
[ルックアップ]ビューで、1つ以上のルックアップ条件を追加して、トランスフォー
メーションの入力値をルックアップソースまたはキャッシュの値と比較します。
条件がTrueの場合、ルックアップは戻りポートの値を返します。 ルックアップ条件が
falseであれば、ルックアップはNULLを返します。
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です。 [複数一致]で[最初の行を返す]を選択し
ます。
278
第 21章: ルックアップトランスフォーメーション
手順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値が含まれるかど
うかを確認してゼロを返すには、以下のルックアップ式を追加します。
接続されていないルックアップの例
279
IIF(ISNULL(:LKP.Sales_Tax_Lookup(County) * SalesAmt),0, SalesTax)
280
第 21章: ルックアップトランスフォーメーション
第 22 章
一致トランスフォーメーショ
ン
この章では、以下の項目について説明します。
¨ 一致トランスフォーメーションの概要, 281 ページ
¨ フィールド照合とIDマッチング, 282 ページ
¨ 一致分析のプロセスフロー, 282 ページ
¨ マッチ率の計算, 283 ページ
¨ 照合マッピングのパフォーマンス, 286 ページ
¨ 一致トランスフォーメーションのコンポーネント, 287 ページ
¨ フィールド一致, 289 ページ
¨ ID一致, 295 ページ
¨ 一致マプレット, 300 ページ
¨ 一致操作の設定, 302 ページ
一致トランスフォーメーションの概要
一致トランスフォーメーションは、入力レコードを互いに比較してレコード間の類似度を
示す数値スコアを生成するアクティブなトランスフォーメーションです。一致トランスフ
ォーメーションを使用して、データセット内または2つのデータセット間で重複レコードを
検索します。
一致トランスフォーメーションは、以下のデータプロジェクトで使用できます。
¨ Customer Relationship Managementプロジェクト。例えば、ある店舗がメールキャンペ
ーンを企画し、重複する顧客レコードの有無を顧客データベースで確認する必要がある
とき。
¨ 合併と買収。例えば、ある銀行が同じ地域内の別の銀行を買収し、2つの銀行に共通の
顧客がいるとき。
¨ 規制の準拠。例えば、すべてのデータシステムに重複レコードがないことを要求する、
政府や業界の規制下で事業が運営されているとき。
281
¨ 財務リスク管理。例えば、銀行が口座名義人間のリレーションを検索するとき。
一致トランスフォーメーションを設定する場合、データセットのカラムを選択し、カラム
の値を比較するストラテジを定義します。トランスフォーメーションはカラムの各値をカ
ラムの他の値ごとに比較し、マッチ率を比較ごとに返します。2つのデータセットを分析す
るようにトランスフォーメーションを設定する場合、トランスフォーメーションは選択さ
れた2つのカラム間で値を比較します。トランスフォーメーションには複数のストラテジを
定義でき、各ストラテジには異なるカラムを割り当てることができます。
単一のデータセットで一致トランスフォーメーションを使用すると、トランスフォーメー
ションはデータセット内のレコード間の類似度を計算します。2つのデータセットで一致ト
ランスフォーメーションを使用すると、トランスフォーメーションは2つのデータセット間
の類似度を計算し、データセット内のレコードは比較しません。
フィールド照合とIDマッチング
データカラムで Raw の値を分析するように一致トランスフォーメーションを設定できま
す。また、カラムの値の代替形式を推測するようにトランスフォーメーションを設定し、
その代替形式を一致分析に含めることができます。
Raw のデータ値を比較する場合は、フィールド照合を実行します。Raw のデータ値を持つ
推測代替を含める場合は、IDマッチングを実行します。"John Smith"と"Smith, J."のよう
に、データセット内の異なる形式で発生する名前の重複を検出するにはIDマッチング操作
を定義します。一致分析では、IDはレコード内のデータ値の集まりで、集合体として人物
または組織名を識別するために十分な情報を提供します。
注: IDマッチング操作は、さまざまなタイプのIDを定義するポピュレーションと呼ばれる
参照データファイルを読み取ります。これらのファイルは、Informaticaアプリケーション
と一緒にインストールされません。ポピュレーションデータファイルをダウンロードし、
Content Management Serviceがアクセス可能な場所にインストールする必要があります。
Informatica Administratorを使用してContent Management Service上の場所を設定しま
す。
一致分析のプロセスフロー
一致分析プロセスの複雑さは、データセットのサイズと構造、およびプロジェクトの目的
によって異なります。個別のフィールドとIDのどちらを選択するかどうかによっても異な
ります。
一致トランスフォーメーションを単独で使用するプロセス、またはいくつかのトランスフ
ォーメーションを使用するプロセスを定義できます。 プロセスのすべての側面に対応する
ために、1つ以上のマプレットまたはマッピングを作成できます。
一致トランスフォーメーションに一致マプレットを埋め込むこともできます。 一致マプレ
ットでは、一致トランスフォーメーションの代わりに比較トランスフォーメーションおよ
282
第 22章: 一致トランスフォーメーション
び加重平均トランスフォーメーションを使用します。 一致トランスフォーメーションにマ
プレットを埋め込む前に、そのマプレットを検証する必要があります。
プロセスには、以下の作業の一部またはすべてを含める必要があります。
¨ データセットをレコードのグループに整理します。これにより、大規模なデータセット
の処理時間が短縮されます。
これらのグループを定義するには、キージェネレータトランスフォーメーションを使用
します。キージェネレータでは、レコードごとにグループのキー値が作成されます。
データにシーケンスIDが存在しない場合は、キージェネレータトランスフォーメーショ
ンを使用して作成します。
¨ 比較するカラムを選択し、そのカラムに1つ以上の重複分析ストラテジを割り当てま
す。この手順は、一致トランスフォーメーションまたは比較トランスフォーメーション
で行うことができます。各一致操作のトランスフォーメーションを含むマッチングルー
ルを作成する場合は、比較トランスフォーメーションを使用します。1つのトランスフ
ォーメーションの一致操作を定義するには、一致トランスフォーメーションを使用しま
す。
フィールド照合では、各カラムを個別に選択します。IDマッチングでは、選択するID照
合ストラテジによって使用可能なカラムのペアが定義されます。
¨ 一致しきい値を設定し、照合ストラテジの結果のマッチ率を計算します。この手順は、
一致トランスフォーメーションまたは加重平均トランスフォーメーションで行うことが
できます。一致マプレットを作成する場合は、加重平均トランスフォーメーションを使
用します。
¨ トランスフォーメーションが一致分析の結果を作成するために使用する方法を決定しま
す。[照合出力]ビューの方法を選択します。
マッチ率の計算
マッチ率は、2つのカラムの値の類似度を示す数値です。アルゴリズムでは、0から1までの
小数値としてマッチ率を計算します。2つのカラムの値が同じ場合、アルゴリズムはスコア
に1を割り当てます。
分析用に複数のカラムペアを選択すると、トランスフォーメーションでは選択したカラム
のスコアに基づいて平均スコアを計算します。デフォルトでは、トランスフォーメーショ
ンは各カラムペアのスコアに等しい加重を割り当てます。トランスフォーメーションは、
データセットのカラムデータの相対的な重要度を推測しません。
トランスフォーメーションがマッチ率の計算に使用する加重値は編集可能です。より高い
または低い優先順位をデータセットのカラムに割り当てる場合に加重値を編集します。
また、トランスフォーメーションでカラムのNULL値が検索される場合も適用されるスコア
を設定できます。デフォルトでは、トランスフォーメーションはNULL値をデータエラーと
して扱い、NULLを含むすべてのペア値に低いマッチ率を割り当てます。
注: 選択するアルゴリズムによって、2つの値のマッチ率が決まります。アルゴリズムは2
つの値に単一のスコアを生成します。マッチ率は、照合出力または選択するスコアリング
方法のタイプに影響されません。
マッチ率の計算
283
加重スコア
照合分析用に複数のカラムを選択すると、カラムのスコアに基づいて、トランスフォーメ
ーションは各レコードの平均スコアを計算します。平均スコアには、各カラムの比較アル
ゴリズムに適用するすべての加重値が含まれます。
デフォルトでは、すべてのアルゴリズムは0.5の加重値を使用します。選択したカラムが重
複情報を含む可能性が高くなる場合は、この値を増やすことができます。選択したカラム
の重複した値がレコード間の正確な重複情報を示す可能性が低くなる場合は、加重値を減
らすことができます。一致トランスフォーメーションは、ペアのレコードごとに単一のマ
ッチ率として平均スコアを使用します。
NULLのマッチ率
デフォルトでは、一致トランスフォーメーションはNULL値をデータエラーとして扱いま
す。一致した値の一方または両方がNULLの場合、照合アルゴリズムは定義済みのマッチ率
を適用します。フィールド一致アルゴリズムがNULL値に適用するマッチ率は編集可能で
す。
NULLのマッチ率とフィールド一致アルゴリズム
フィールド一致アルゴリズムを設定する場合は、アルゴリズムがNULL値に適用するマッチ
率の値を確認してください。フィールド一致アルゴリズムで2つの値を比較して一方または
両方の値がNULLの場合、デフォルトのスコア0.5が適用されます。スコア0.5は、データ値
間の類似度が低いことを示します。
以下のガイドラインを使用して、NULLのマッチ率を確認します。
¨ アルゴリズムでプライマリキーまたは他の重要なデータを含むカラムを分析する場合、
デフォルトのスコアは編集できません。この場合、NULL値がデータエラーを示し、デフ
ォルトのスコアはデータにとって適切になります。
¨ アルゴリズムで必要に応じてデータを含めることが可能なカラムを分析する場合、NULL
のマッチ率の値を一致しきい値と同じ値に更新します。NULLのマッチ率を一致しきい値
に設定した場合、一致分析でのNULL値の影響をキャンセルします。
NULLのマッチ率とID照合アルゴリズム
ID照合アルゴリズムで2つの値を比較して一方または両方の値がNULLの場合、マッチ率に0
が適用されます。ID照合アルゴリズムがNULL値に適用するスコアは編集できません。
クラスタスコアのオプション
クラスタとはレコードの集まりで、各レコードには一致しきい値以上のスコアで一致す
る、少なくとも1つ以上の他のレコードが存在します。出力データに一致するレコードを同
時に表示するときは、[クラスタ出力]オプションを選択します。
フィールド一致分析とID照合分析で[クラスタ出力]オプションを選択できます。トラン
スフォーメーションは、2つのデータソースを読み取るフィールド一致分析とID照合分析す
べてに対して同様にクラスタを作成します。トランスフォーメーションでは、単一のデー
タソースを読み取るID照合分析に対して追加のオプションを用意しています。
[照合出力]タブで[クラスタ]オプションを選択します。
284
第 22章: 一致トランスフォーメーション
フィールド一致分析とデュアルソースのID照合分析
一致トランスフォーメーションでは、以下のルールを使用して、フィールド一致分析とデ
ュアルソースのID照合分析でクラスタを作成します。
¨ 2つのレコードのマッチ率が一致しきい値以上の場合は、一致トランスフォーメーショ
ンがクラスタにレコードを追加します。
¨ データセットのレコードがクラスタ内のレコードに一致する場合は、そのレコードがク
ラスタに追加されます。
¨ 1つのクラスタのあるレコードが別のクラスタのあるレコードに一致する場合、2つのク
ラスタはマージされます。
¨ クラスタの作成プロセスでは、すべてのレコードがクラスタに割り当てられるまで、マ
ッチ率の連続スイープが実行されます。
¨ レコードがデータセット内の他のどのレコードとも一致しない場合、クラスタが単一の
レコードから成ることがあります。
注: 2つのレコードがクラスタ内でリンクされていても、その2つのレコードがデータ内で
互いに最良の一致を表しているとは限りません。各レコードは、同一クラスタ内にさらに
類似したレコードがほかにある可能性があります。
シングルソースのID照合分析
シングルソースのID照合分析の出力オプションには、[クラスタ - 最良の一致]オプショ
ンがあります。このオプションを選択すると、一致トランスフォーメーションは、データ
セット内の各レコードと他のすべてのレコード間の最も高いマッチ率を検索します。
このトランスフォーメーションでは、次のルールを使用して最良の一致分析のクラスタを
作成します。
¨ トランスフォーメーションは、現在のレコードでマッチ率が最高のレコードを特定しま
す。マッチ率がしきい値を超える場合、トランスフォーメーションはそのレコードのペ
アをクラスタに追加します。
¨ データセット内のあるレコードがクラスタ内のあるレコードと最高のマッチ率になる場
合は、そのレコードがクラスタに追加されます。
¨ クラスタの作成プロセスでは、すべてのレコードがクラスタに割り当てられるまで、マ
ッチ率の連続スイープが実行されます。
¨ レコードがデータセット内の他のどのレコードとも一致しない場合、クラスタが単一の
レコードから成ることがあります。
レコードはデータセット内の複数のレコードとの最良の一致を表しているので、[クラス
タ - 最良の一致]オプションで2つ以上のレコードを含むクラスタを作成できます。
ドライバスコアとリンクスコア
一致トランスフォーメーションで[クラスタ出力]オプションを選択すると、リンクスコ
アとドライバスコアのデータを出力に追加できます。
リンクスコアとは、同一クラスタのメンバとして識別する2つのレコード間のスコアです。
レコード間のリンクによってクラスタの組成が決定されます。任意のレコードは、同一ク
ラスタ内の任意の他のレコードにリンクできます。
ドライバスコアは、クラスタ内で最高のシーケンスID値を持つレコードと同じクラスタ内
の他のレコードとの間のスコアです。ドライバスコアは、単一のレコードに対してクラス
マッチ率の計算
285
タ内のすべてのレコードを評価する手段の1つです。ドライバスコアを照合出力に追加する
と、すべてのクラスタが完了するまで一致トランスフォーメーションがドライバのスコア
を計算できないので、マッピングの実行は遅くなります。
注: クラスタ内のリンクスコアとドライバスコアは、レコードがトランスフォーメーショ
ンに入る順序に依存します。レコードがクラスタ内の単一レコードと一致することがある
ので、クラスタには一致しきい値に達しないドライバスコアのレコードのペアが含まれる
ことがあります。
照合マッピングのパフォーマンス
照合分析マッピングのパフォーマンスを決定するデータ要素をプレビューできます。[パ
フォーマンス照合分析]オプションを使用して、システムにマッピングを実行するリソー
スがあることを確認します。[クラスタ照合分析]オプションを使用して、マッピングで
データセットの類似度を正確に測定できることを確認します。
照合分析マッピングの実行には、マッピングで実行が必要な比較件数により、大量のシス
テムリソースと極めて長い時間を要することがあります。比較計算の回数はデータセット
内のレコード数に関連します。例えば、5,000件のデータ値を比較するマッピングでは1200
万回を超える計算を実行します。1,000,000件の値を比較するマッピングでは、ほぼ5,000
億回の計算を実行します。計算ごとに、データセットのレコードペア間のマッチ率が表示
されます。
フィールド一致マッピングに必要な処理時間とリソースを削減するには、データレコード
をグループに割り当てます。マッピングでは、各グループ内でのみ照合計算を実行しま
す。データセットに適切なグループキーを選択すると、マッチングの精度を損なわずにリ
ソース要件が削減されます。ID照合分析の前にレコードをグループ化する必要はありませ
ん。ID照合アルゴリズムは、一致トランスフォーメーションで公開されないグループキー
を使用します。
グループを作成する場合、グループが有効なサイズであることを確認する必要がありま
す。グループが小さすぎると、照合分析ではデータセットですべての重複データを検索で
きないことがあります。グループが大きすぎると、照合分析では偽の重複を返すことがあ
り、照合マッピングの実行時間が長くなります。大規模なデータセットでは、レコードが
平均10,000件のグループサイズを作成するグループキーを選択します。
注: 単一のデータソースを読み取るすべてのストラテジで、パフォーマンス照合分析およ
びクラスタ照合分析を実行できます。さらに、2つのデータソースを読み取るフィールド一
致ストラテジでパフォーマンス照合分析を実行できます。2つのデータソースを読み取るID
マッチングストラテジでは、パフォーマンス照合分析またはクラスタ照合分析を実行しま
せん。
パフォーマンス照合分析でのドリルダウン
照合分析データにドリルダウンして、一致しきい値を満たす、または超えるレコードペア
を表示できます。[詳細]ビューのレコードをダブルクリックし、[データビューア]を
使用して選択したレコードに一致するレコードを表示します。[データビューア]には各
ペアのデータが1行で表示されます。行にはペアの各レコードの行IDが含まれます。
286
第 22章: 一致トランスフォーメーション
クラスタ照合分析でのドリルダウン
クラスタ分析データにドリルダウンして、各クラスタのレコードを表示できます。[詳
細]ビューのクラスタをダブルクリックし、[データビューア]にデータを表示します。
[データビューア]には一度に1つのクラスタが表示されます。クラスタデータには、ドラ
イバスコア、リンクスコア、ドライバID、およびリンクIDなどの選択したスコアオプショ
ンが含まれます。
一致トランスフォーメーションロギング
一致トランスフォーメーションを使用するマッピングを実行する場合、Developerツールの
ログではマッピングで実行する比較計算の回数を追跡します。ログデータを表示するに
は、[データビューア]の[ログの表示]オプションを選択します。
マッピングでは、計算が100,000回ごとにログを更新します。
一致トランスフォーメーションのコンポーネ
ント
一致トランスフォーメーションのコンポーネントにはビューとポートがあります。 ビュー
とポートを設定して、一致操作を定義します。
一致トランスフォーメーションのビュー
一致操作を設定するには、一致トランスフォーメーションのビューを使用します。
一致操作の設定時には、以下のビューを設定できます。
一致タイプ
トランスフォーメーションが実行する重複分析のタイプを選択します。 1つまたは2つ
のデータセットのフィールド一致またはID一致を選択できます。
ストラテジ
一致させるデータカラムを選択し、カラムに適用する一致ストラテジを設定します。
照合出力
重複分析結果の形式を設定します。
パラメータ
トランスフォーメーションを含むマッピングを実行する場合に、Data Integration
Serviceで適用できるパラメータを割り当てます。
詳細
トランスフォーメーションがセッションログに書き込む詳細度を設定します。
ランタイム中にID一致操作が使用するプロセス数を設定します。
出力クラスタから正確な複製を含める、または除外するようにトランスフォーメーシ
ョンを設定します。
一致トランスフォーメーションのコンポーネント
287
一致トランスフォーメーションのポート
一致トランスフォーメーションには、一致操作に関連するデータの定義済み入出力ポート
が含まれています。
入力ポート
一致トランスフォーメーションの入力ポートは、トランスフォーメーションが一致操作に
必要とするデータを提供します。 一致トランスフォーメーションの作成後、以下の入力ポ
ートを設定できます。
SequenceId
ソースデータセット内の各レコードを一意に特定するIDを指定します。 データセット
に一意のIDが存在しない場合は、キージェネレータトランスフォーメーションを使用
して作成します。
GroupKey
一致トランスフォーメーションがレコードの処理に使用するグループキーを指定しま
す。 ID一致およびフィールド一致ではグループキーを使用できます。 グループキー
とシーケンスIDのフィールドは、必ず同じトランスフォーメーションから選択しま
す。
注: 一致速度を向上させるには、GroupKey入力ポートと、それに接続するGroupKey出
力ポートの両方に同じ[精度]を設定します。
出力ポート
一致トランスフォーメーションの出力ポートは、トランスフォーメーションが実行する重
複分析に関する情報を提供します。 一致トランスフォーメーションの作成後、以下の出力
ポートを設定できます。
ClusterId
レコードが属しているクラスタのID。 クラスタ出力オプションに使用されます。
グループキー
レコードのグループキー。
ClusterSize
レコードが属しているクラスタ内のレコード数。 他のレコードと一致しないレコード
のクラスタサイズは1です。 クラスタ出力に使用されます。
RowIdおよびRowId1
レコードの一意な行ID。 このIDは一致トランスフォーメーションによって作成されま
す。 このIDは、入力データ内の行番号と一致しない場合があります。
DriverId
クラスタ内のドライバレコードの行ID。 クラスタ出力オプションに使用されます。ド
ライバレコードは、シーケンスIDの値が最大のクラスタ内のレコードです。
DriverScore
レコードとそのクラスタ内のドライバレコード間の一致スコア。
288
第 22章: 一致トランスフォーメーション
LinkId
現在のレコードと一致し、現在のレコードをクラスタに追加したレコードの行ID。 ク
ラスタ出力オプションに使用されます。
LinkScore
クラスタの作成またはクラスタへのレコードの追加を行う2つのレコード間の一致スコ
ア。 クラスタ出力オプションに使用されます。
注: 一致プロセスは、定義したストラテジごとにスコアを1セット生成します。 ドライバ
スコアおよびリンクスコアの値は、異なるレコードペア間の類似度を表し、さまざまなタ
イプの情報を提供します。リンクスコアは、クラスタのコンテンツを定義します。リンク
スコアは、一致しきい値を超えている必要があります。ドライバスコアはリンクスコアよ
りも高い場合と低い場合があり、一致しきい値を下回る場合があります。
出力ポートと照合出力の選択
選択する照合出力設定によって、トランスフォーメーションの出力ポートが決まります。
クラスタ化された出力タイプのみを選択した場合、ClusterId、ClusterSize、DriverID、
およびDriverScoreのポートが表示されます。
トランスフォーメーションを設定する前に、必要なトランスフォーメーション出力のタイ
プを選択します。照合出力のタイプを変更する場合は、トランスフォーメーションで一致
結果の書き込みに使用するポートの数とタイプも変更します。照合出力のタイプを変更し
たら、変更後にトランスフォーメーションの出力ポート設定を確認します。マッピングで
トランスフォーメーションを使用する場合、マッピング時にダウンストリームのオブジェ
クトに出力ポートを再接続する必要が生じることがあります。
フィールド一致
2つ以上のレコード内の類似データまたは重複データを検索するには、フィールド一致を使
用します。
フィールド一致操作は、2つのデータフィールドの値を比較し、それらの類似性を計算しま
す。 フィールド一致に対して一致トランスフォーメーションを設定するときは、入力デー
タから2つ以上のカラムペアを選択します。
フィールド一致
289
フィールド照合アルゴリズム
一致トランスフォーメーションには、ペアのデータ値を比較する定義済みのアルゴリズム
が含まれます。
バイグラム
バイグラムアルゴリズムは、郵便アドレスが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になりま
す。
290
第 22章: 一致トランスフォーメーション
エディット距離
エディット距離アルゴリズムは、単語や短いテキスト文字列(名前など)を比較する場合
に使用します。
エディット距離アルゴリズムでは、文字列を別の文字列に変換するために文字の挿入、削
除、または置き換えが必要な最小限の「コスト」を計算します。
エディット距離の例
次の文字列について考えてみます。
¨ Levenston
¨ Levenshtein
強調表示された文字は、文字列をもう一方の文字列に変換するために処理が必要な部分を
示しています。
エディット距離アルゴリズムでは、変更されない文字の数(8)を長い方の文字列の文字数
(11)で割ります。 この例では、文字列の類似度は72.7%で、一致スコアは0.727になりま
す。
Jaro距離
2つの文字列を比較するときに文字列内の最初の文字の類似度を優先する場合は、Jaro距離
アルゴリズムを使用します。
Jaro距離の一致スコアには、両方の文字列の最初の4文字の一致度、および識別された文字
の転置の数が反映されます。 最初の4文字の一致の重要度に、[ペナルティ]プロパティ
に入力した値を使用して重みが設定されます。
Jaro距離のプロパティ
Jaro距離アルゴリズムを設定する場合は、次のプロパティが設定できます。
ペナルティ
比較する2つの文字列内の最初の4文字が同一でない場合の一致スコアのペナルティを
指定します。 最初の文字が一致しない場合は、ペナルティの値がそのまま減算されま
す。 それ以外の文字が異なる場合は、その位置に基づいてペナルティの端数が減算さ
れます。 デフォルトのペナルティ値は0.20です。
大文字小文字の区別
Jaro距離アルゴリズムで照合を行うときに大文字と小文字を区別するかどうかを指定
します。
Jaro距離の例
次の文字列について考えてみます。
¨ 391859
¨ 813995
[ペナルティ]を0.20(デフォルト値)にしてこれらの文字列を分析した場合、Jaro距離
アルゴリズムで返される一致スコアは0.513になります。文字列の類似度は51.3%となりま
す。
フィールド一致
291
ハミング距離の反転
ハミング距離反転アルゴリズムは、2つの文字列間で文字が異なる位置の割合を、文字列を
右から左に読み取りながら計算する場合に使用します。
ハミング距離アルゴリズムでは、2つのデータ文字列の一致スコアを、データ文字列間で文
字が異なる位置の数に基づいて計算します。 長さが異なる文字列の場合、長い方の文字列
にしかない各文字は文字列間の相違としてカウントされます。
ハミング距離の反転の例
次の文字列について考えてみましょう。この文字列は、ハミング反転アルゴリズムについ
て説明するために右から左に文字を配置しています。
¨ 1-999-9999
¨ 011-01-999-9991
強調表示された文字は、ハミング距離反転アルゴリズムで相違と見なされる位置を示して
います。
ハミングの反転の一致スコアを計算するには、一致する文字の数(9)を長い方の文字列の
文字数(15)で割ります。 この例では、一致スコアは0.6になり、文字列の類似度は60%と
なります。
フィールド一致ストラテジのプロパティ
[ストラテジ]タブでストラテジウィザードを開き、フィールド照合ストラテジごとにプ
ロパティを設定します。
フィールド一致ストラテジの設定時には、以下のプロパティを設定できます。
名前
名前でストラテジを特定します。
加重
レコードの全体スコアが計算される場合、マッチ率に割り当てられた相対優先順位を
指定します。デフォルトは0.5です。
1つのフィールドがNULL
ペアのデータ値の一方がNULLの場合、アルゴリズムでこのペアに適用されるマッチ率
を定義します。デフォルトは0.5です。
両方のフィールドがNULL
ペアのデータ値の両方の値がNULLの場合、アルゴリズムでこのペアに適用されるマッ
チ率を定義します。デフォルトは0.5です。
注: 一致したカラムの値の一方または両方がNULLの場合、照合アルゴリズムはマッチ率を
計算しません。アルゴリズムは、NULLの一致プロパティに定義されたスコアを適用しま
す。NULLの一致プロパティは取り消すことができません。
292
第 22章: 一致トランスフォーメーション
フィールド一致出力のプロパティ
フィールド照合操作の出力形式を定義するには、[照合出力]オプションを設定します。
[照合出力のタイプ]と[プロパティ]領域のオプションを設定します。
[照合出力のタイプ]オプション
以下のいずれかの照合出力タイプを選択します。
最良の一致(デュアルソース一致)
第二のデータセット内の最良の一致を表すレコードとペアになったマスターデー
タセット内のレコードを出力します。
クラスタ
クラスタ内のマッチングレコードを出力します。クラスタ内の各レコードは、一
致しきい値を満たすスコアの1つ以上の他のレコードと一致する必要があります。
一致ペア
一致しきい値を満たすマッチ率のレコードペアをすべて出力します。
[プロパティ]オプション
照合出力タイプの選択後、以下のプロパティを設定できます。
キャッシュディレクトリ
フィールド一致キャッシュを格納するディレクトリを指定します。 Data
Integration serviceにこのディレクトリへの書き込み権限がある必要がありま
す。 マッピングの実行前に、このディレクトリがディレクトリ構造に存在してい
る必要があります。
キャッシュサイズ
一致トランスフォーメーションが一致操作の処理に使用できるシステムメモリの
量をバイト単位で割り当てます。 一致トランスフォーメーションは、可能なかぎ
りシステムメモリを使用して処理を実行します。 システムメモリのキャッシュが
一杯になると、トランスフォーメーションは指定されたキャッシュディレクトリ
に書き込みます。
しきい値
一致トランスフォーメーションでレコードをクラスタに整理するために使用する
最小一致率を設定します。あるレコードがあるクラスタに入るためには、そのレ
コードがクラスタ内の少なくとも1つのレコードに、しきい値以上の一致スコアで
リンクしている必要があります。
スコアリング方法
トランスフォーメーション出力に表示される一致スコアタイプを決定します。 ク
ラスタ一致出力にのみ使用されます。 このプロパティのデフォルト設定は、[リ
ンクスコア]です。[ドライバスコア]または[両方]のいずれかを選択した場
合は、処理時間が大幅に増える可能性があります。
フィールド一致
293
デュアルソースのフィールド一致プロパティ
デュアルソースのフィールド一致操作では、[一致タイプ]ビューで[マスターデータセ
ット]プロパティを設定します。
2つのデータソースを使用するときは、一方のデータソースをマスタデータセットとして選
択する必要があります。 どちらのデータソースもマスタデータセットでない場合は、どち
らのデータソースをマスタとして選択してもかまいません。
フィールド一致の詳細プロパティ
Data Integration Serviceで一致トランスフォーメーションのデータがどのように処理さ
れるかを特定するためのプロパティを設定します。
[詳細]タブで、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
実行インスタンス数
トランスフォーメーションが実行時に使用するスレッド数を決定します。
実行インスタンスの数を、Data Integration ServiceがアクセスできるCPUの数以下に
設定します。設定した値は現在のトランスフォーメーションに適用されます。デフォ
ルト値は1です。
注: 一致トランスフォーメーションをPowerCenterにエクスポートすると、Developer
ツールはトランスフォーメーションを複数のトランスフォーメーションに展開しま
す。各トランスフォーメーションは異なるタスクを実行します。また、トランスフォ
ーメーションの数はDeveloperツールでの設定で決定されます。エクスポート時に、
Developerツールは、実行インスタンスごとに各トランスフォーメーションの追加イン
スタンスを作成します。例えば、実行インスタンスの数を1に設定して、展開プロセス
が4つのトランスフォーメーションをPowerCenterリポジトリに追加するとします。同
じトランスフォーメーションで実行インスタンスの数を2に設定すると、展開プロセス
は8つのトランスポーテーションのインスタンスをPowerCenterリポジトリに追加しま
す。
完全一致のフィルタ
同一レコードに対して一致トランスフォーメーションが一致分析を実行するかどうか
を決定します。クラスタ化された出力タイプを選択すると、このオプションは有効に
なります。[完全一致のフィルタ]オプションを選択した場合、トランスフォーメーシ
ョンは同一レコードをクラスタ出力に直接書き込みます。データセットに多くの同一
レコードが含まれているときに、このオプションを選択します。
注: このオプションを選択しても取り消しても、クラスタには同一のレコードデータ
が含まれます。しかし、クラスタ内のレコードのリンクスコアとドライバスコアは、
このオプションを選択したか取り消したかで異なる場合があります。
294
第 22章: 一致トランスフォーメーション
ID一致
複数のレコードで共有されるIDを検索するには、ID一致を使用します。
IDは、複数の値の組み合わせで個人または組織の識別に十分な情報を提供する、レコード
内のデータ値の集まりです。レコードの重複を示すID一致もあれば、 共有される家族IDや
共有される従業員IDなど、レコード間のつながりを示すID一致もあります。
ID一致に対して一致トランスフォーメーションを設定する場合、IDストラテジで入力ポー
トをすべてのプライマリ必須フィールドに接続する必要があります。ほとんどのIDストラ
テジにはプライマリ必須フィールドが含まれます。家族および個人IDストラテジには、セ
カンダリ必須フィールドも含まれます。入力ポートを少なくとも1つのセカンダリ必須フィ
ールドに接続する必要があります。
ID一致タイプのプロパティ
シングルソースまたはデュアルソースのIDマッチングを選択する場合は、マッチタイプの
プロパティを設定します。
[マッチタイプ]ビューで、以下のプロパティを設定できます。
ポピュレーション
ロケールおよび言語用にカスタマイズされたキー構築アルゴリズムを含む参照データ
ファイルを決定します。
キーレベル
ID一致アルゴリズムによって生成されるキーの数を決定します。デフォルトの設定は
[標準]です。 [限定]設定を選択すると、キーの数が減って精度が高くなります
が、処理時間は長くなります。 [拡張]設定を選択すると、キーの数が増えて精度は
低くなりますが、処理時間は短くなります。
キータイプ
キーフィールドに含まれるデータのカテゴリを表します。ID一致では、個人名、組
織、および住所のキーを生成できます。 [キーフィールド]プロパティに選択したカ
ラムを最もよく表すキータイプを選択します。
検索レベル
検索品質と検索速度のバランスを示します。検査速度は、返される一致数に反比例し
ます。 例えば、[高]オプションが返す一致は少なくなります。
キーフィールド
一致トランスフォーメーションでグループキーの生成に使用するカラムを指定しま
す。選択したカラムに[キータイプ]オプションで指定した種類のデータが含まれる
ことを確認してください。
インデックスディレクトリ
一致トランスフォーメーションがIDキーインデックスを作成するData Integration
Serviceマシン上のパスを指定します。Data Integration Serviceにこのパスへの書き
込み権限がある必要があります。
ID一致
295
キャッシュディレクトリ
ID照合分析中に作成された一時データを含むData Integration Serviceマシン上のデ
ィレクトリを指定します。Data Integration serviceにこのディレクトリへの書き込
み権限がある必要があります。
マスターデータセット
マスタデータを含むデータソースを指定します。デュアルソース一致で使用されま
す。
インデックスディレクトリとキャッシュディレクトリのプロパ
ティ
Content Management Serviceでは、インデックスディレクトリとキャッシュディレクトリ
のデフォルトの場所を指定します。Content Management Serviceでデフォルトの場所を更
新できます。必要に応じて、一致トランスフォーメーションでインデックスディレクトリ
またはキャッシュディレクトリを指定できます。
インデックスディレクトリまたはキャッシュディレクトリを指定する場合、Data
Integration Serviceのマシン上のローカルパスを入力します。パスは完全修飾パスでも相
対パスでもかまいません。相対パスを入力する場合は、パスをピリオドで始めます。相対
パスはサービスホストマシンのtomcat/binディレクトリに対する相対です。
注: 一致トランスフォーメーションでインデックスディレクトリまたはキャッシュディレ
クトリの場所を設定する場合、Data Integration Serviceは現在のトランスフォーメーシ
ョンのみから取得したデータ用に設定した場所を使用します。
インデックスディレクトリのプロパティ
インデックスディレクトリのプロパティは、そのインデックスディレクトリの親ディレク
トリへのパスを指定します。ID照合プロセスは、このパスにフォルダを作成してインデッ
クスファイルを書き込み、マッピングの完了時にフォルダを削除します。
デフォルトでは、一致トランスフォーメーションは次のパスにインデックスディレクトリ
を作成します。
C:\Informatica\9.5.1\tomcat\bin\identityIndex
キャッシュディレクトリのプロパティ
一致トランスフォーメーションでキャッシュディレクトリを指定するには、ディレクトリ
パスを識別するパラメータを作成し、[キャッシュディレクトリ]オプションに割り当て
ます。そのパラメータを割り当てる際、Data Integration Serviceでは、マッピング実行
時の現在のトランスフォーメーションデータ用のパラメータ設定を使用します。マッピン
グの実行前に、このキャッシュディレクトリがディレクトリ構造に存在している必要があ
ります。
デフォルトでは、一致トランスフォーメーションは次のパスにキャッシュディレクトリを
作成します。
C:\Informatica\9.5.1\tomcat\bin\identityCache
296
第 22章: 一致トランスフォーメーション
IDマッチングストラテジ
一致トランスフォーメーションには、データ値のペアを比較する定義済みのID一致ストラ
テジが含まれます。
以下の表に、各ID一致ストラテジの一致操作と必要な入力項目を示します。
ID一
致ス
トラ
テジ
一致操作
プライマリ必須入力
セカンダリ必須
入力
住所
住所を共有するレコー
ドを特定します。
住所
-
担当者
1つの組織の場所にい
る担当者を共有するレ
コードを特定します。
Person_Name
-
(1つ以上選
択)
Organization_Name
Address_Part1
法人
組織データを共有する
レコードを特定しま
す。 必要に応じて、住
所と電話番号のデータ
を分析するようにこの
ストラテジを設定しま
す。
Organization_Name
-
除算
特定の住所にある組織
のオフィスを共有する
レコードを特定しま
す。
Organization_Name
-
家族
Address_Part1
名前、住所、および電
話番号のデータを分析
することによって、あ
る家族のメンバーを特
定します。
Person_Name
Address_Part1
フィー
ルド
選択したカスタムフィ
ールドのデータを共有
するレコードを特定し
ます。
-
-
世帯
名前データと住所デー
タを分析することによ
って、ある世帯の構成
員を特定します。
Person_Name
-
Telephone
Number
Address_Part1
ID一致
297
ID一
致ス
トラ
テジ
一致操作
プライマリ必須入力
セカンダリ必須
入力
個人
名前、誕生日、および
IDデータを分析するこ
とによって、重複する
個人を特定します。
IDの例としては、社会
保障番号、口座番号、
車両ID番号などがあり
ます。
Person_Name
組織
組織データを共有する
レコードを特定しま
す。
Organization_Name
-
個人名
名前データを分析する
ことによって、重複す
る個人を特定します。
Person_Name
-
住居
ある住所の重複する個
人を特定します。 必要
に応じて、ID情報を分
析するようにこのスト
ラテジを設定します。
Person_Name
-
担当者
(広
域)
ある組織の担当者を共
有するレコードを特定
します。
Person_Name
世帯
(広
域)
同じ世帯に属する個人
を特定します。
Address_Part1
(1つ以上選
択)
Date
ID
Address_Part1
-
Organization_Name
-
ID一致ストラテジのプロパティ
各IDストラテジのプロパティを設定します。
ID一致ストラテジの設定時には、以下のストラテジプロパティを設定できます。
ポピュレーション
ID一致に適用するポピュレーションを決定します。 ポピュレーションには、特定のロ
ケールと言語のキー構築アルゴリズムが含まれます。
照合レベル
検索品質と検索速度のバランスを決定します。 検査速度は、返される一致数に反比例
します。 [ルーズ]設定が使用される検索が返す一致は少ないのに対して、[保守的]
設定が使用される検索が返す一致は多くなります。
298
第 22章: 一致トランスフォーメーション
ID一致出力のプロパティ
IDマッチング操作の出力形式を定義するには、[照合出力]オプションを設定します。
[照合出力のタイプ]と[プロパティ]領域のオプションを設定します。
[照合出力のタイプ]オプション
以下のいずれかの照合出力タイプを選択します。
最良の一致(デュアルソース一致)
第二のデータセット内の最良の一致を表すレコードとペアになったマスターデー
タセット内の各レコードを出力します。
クラスタ - 最良の一致(シングルソース一致)
同一データセット内で1つのレコードと他のレコード間の最良の一致を表すクラス
タを出力します。2つのレコードのマッチ率は、一致しきい値以上である必要があ
ります。あるレコードがデータセット内の他の複数のレコードの最良の一致を表
している場合、最良の一致クラスタには、3つ以上のレコードが含まれている場合
があります。
クラスタ - すべてに一致
クラスタ内のマッチングレコードを出力します。クラスタ内の各レコードは、一
致しきい値を満たすスコアの1つ以上の他のレコードと一致する必要があります。
一致ペア
一致しきい値を満たすマッチ率のレコードペアをすべて出力します。
[プロパティ]オプション
照合出力タイプの選択後、以下のプロパティを設定できます。
キャッシュディレクトリ
一致トランスフォーメーションが一時ファイルを書き込むディレクトリを決定し
ます。
キャッシュサイズ
一致トランスフォーメーションが一致操作の処理に使用できるシステムメモリの
量をバイト単位で割り当てます。 一致トランスフォーメーションは、可能なかぎ
りシステムメモリを使用して処理を実行します。 システムメモリのキャッシュが
一杯になると、トランスフォーメーションは指定されたキャッシュディレクトリ
に書き込みます。
しきい値
一致トランスフォーメーションでレコードをクラスタに整理するために使用する
最小一致率を設定します。あるレコードがあるクラスタに入るためには、そのレ
コードがクラスタ内の少なくとも1つのレコードに、しきい値以上の一致スコアで
リンクしている必要があります。
IDマッチングの詳細プロパティ
Data Integration Serviceで一致トランスフォーメーションのデータがどのように処理さ
れるかを特定するためのプロパティを設定します。
[詳細]タブで、以下のプロパティを設定します。
ID一致
299
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
実行インスタンス数
トランスフォーメーションが実行時に使用するスレッド数を決定します。
実行インスタンスの数を、Data Integration ServiceがアクセスできるCPUの数以下に
設定します。設定した値は現在のトランスフォーメーションに適用されます。デフォ
ルト値は1です。
注: 一致トランスフォーメーションをPowerCenterにエクスポートすると、Developer
ツールはトランスフォーメーションを複数のトランスフォーメーションに展開しま
す。各トランスフォーメーションは異なるタスクを実行します。また、トランスフォ
ーメーションの数はDeveloperツールでの設定で決定されます。エクスポート時に、
Developerツールは、実行インスタンスごとに各トランスフォーメーションの追加イン
スタンスを作成します。例えば、実行インスタンスの数を1に設定して、展開プロセス
が4つのトランスフォーメーションをPowerCenterリポジトリに追加するとします。同
じトランスフォーメーションで実行インスタンスの数を2に設定すると、展開プロセス
は8つのトランスポーテーションのインスタンスをPowerCenterリポジトリに追加しま
す。
完全一致のフィルタ
同一レコードに対して一致トランスフォーメーションが一致分析を実行するかどうか
を決定します。クラスタ化された出力タイプを選択すると、このオプションは有効に
なります。[完全一致のフィルタ]オプションを選択した場合、トランスフォーメーシ
ョンは同一レコードをクラスタ出力に直接書き込みます。データセットに多くの同一
レコードが含まれているときに、このオプションを選択します。
注: このオプションを選択しても取り消しても、クラスタには同一のレコードデータ
が含まれます。しかし、クラスタ内のレコードのリンクスコアとドライバスコアは、
このオプションを選択したか取り消したかで異なる場合があります。
一致マプレット
一致マプレットは、一致トランスフォーメーション内で作成して一致トランスフォーメー
ションに埋め込むことができるマプレットのタイプです。
一致マプレットを作成するには、一致トランスフォーメーションの設定を一致マプレット
として保存します。 一致マプレットを作成する場合は、一致トランスフォーメーションの
設定を比較トランスフォーメーションおよび加重平均トランスフォーメーションに変換し
ます。
一致マプレットの作成後、トランスフォーメーションを追加して一致プロセスをカスタマ
イズできます。 例えば、2つのストラテジのリンクスコアを評価する式トランスフォーメ
ーションを追加し、一番高いスコアを選択することができます。
300
第 22章: 一致トランスフォーメーション
一致トランスフォーメーションと違って一致マプレットはパッシブで、Analystツール内の
ルールとして使用できます。 Analystツールで一致マプレットを使用し、データプロファ
イリングプロセスの一部としてレコードを一致させます。
一致トランスフォーメーションは、一致トランスフォーメーション内から作成された一致
マプレットのみを読み取ることができます。
一致マプレットの作成
一致マプレットを作成して、複数の一致トランスフォーメーションおよびマッピング内で
一致操作を再利用します。
1.
エディタで一致トランスフォーメーションを開き、[ストラテジ]ビューを選択しま
す。
2.
[照合ルールを使用]を選択します。
3.
[名前]フィールドで、[新規作成]を選択します。
[新しいマプレット]ウィンドウが開きます。
4.
[新しいマプレット]ウィンドウで、マプレットの名前を入力し、マプレットを保存
する場所を選択します。
5.
必要に応じて[一致トランスフォーメーションのストラテジを再利用]を選択し、入
力、一致ストラテジ、および加重を現在の一致トランスフォーメーションから一致マ
プレットにコピーします。
注: この設定の使用して、一致トランスフォーメーションに現在定義されている一致
機能を複製する一致マプレットを短時間で作成することをお勧めします。
6.
[完了]をクリックします。
一致マプレットがエディタに表示されます。
7.
必要に応じて、一致マプレット内で比較トランスフォーメーションと加重平均トラン
スフォーメーションを追加および設定することによって、一致操作を作成します。
8.
[ファイル] > [保存]をクリックして、マッピングを保存します。
9.
マプレットを閉じ、一致トランスフォーメーションを含むエディタを選択します。 作
成したマプレットが[名前]フィールドに表示されていることを確認します。
10.
必要に応じて、[照合フィールド]ボタンをクリックしてマプレット内の照合フィー
ルドを設定します。
[照合ルールの設定]ウィンドウが開きます。
11.
[入力フィールド]および[使用可能な入力]カラム内のフィルードをダブルクリッ
クして、入力ポートを一致入力に割り当てます。
12.
[ファイル] > [保存]をクリックして、トランスフォーメーションを保存します。
一致マプレットの使用
以前に定義された一致マプレットを一致トランスフォーメーションで選択および設定でき
ます。
1.
エディタで一致トランスフォーメーションを開き、[ストラテジ]ビューを選択しま
す。
一致マプレット
301
2.
[照合ルールを使用]を選択します。
3.
[名前]フィールドで、[既存を使用]を選択します。
[照合ルールの設定]ウィンドウが開きます。
4.
[参照]をクリックして、リポジトリ内の一致マプレットを探します。
重要: 選択できるのは、一致トランスフォーメーションによって作成されたマプレッ
トのみです。
[照合マプレットの選択]ウィンドウが開きます。
5.
一致マプレットを選択し、[OK]をクリックします。
6.
[入力フィールド]および[使用可能な入力]カラム内のフィルードをダブルクリッ
クして、入力ポートを一致入力に割り当てます。
7.
[OK]をクリックします。
[照合ルールの設定]ウィンドウが閉じます。
8.
[ファイル] > [保存]をクリックして、一致トランスフォーメーションを保存しま
す。
一致操作の設定
一致操作を設定するには、ソースデータを一致トランスフォーメーションに接続し、トラ
ンスフォーメーションのビューでプロパティを編集します。
1.
一致トランスフォーメーションを作成し、ソースデータをトランスフォーメーション
に接続します。
2.
[一致タイプ]ビューを選択し、一致タイプを選択します。
3.
選択した一致プロセスのタイプのプロパティを設定します。
デュアルソース一致タイプを選択した場合は、[マスターデータセット]プロパティ
を設定します。
4.
[ストラテジ]ビューを選択し、[照合ストラテジの定義]を選択します。
5.
[新規]をクリックします。
新しい照合ストラテジウィザードが開きます。
6.
一致ストラテジを選択し、[次へ]をクリックします。
7.
必要に応じて、加重とNULL一致の設定を編集します。[次へ]をクリックします。
8.
[使用可能]カラムのセルをダブルクリックして、分析する入力ポートを選択しま
す。
[次へ]をクリックして別のストラテジを設定するか、[完了]をクリックしてウィ
ザードを終了します。
注: ストラテジの設定を編集するには、[ストラテジ]ビューでそのストラテジのセ
ル内の矢印をクリックします。
9.
[照合出力]ビューを選択します。
照合出力タイプを選択し、そのプロパティを設定します。
302
第 22章: 一致トランスフォーメーション
注: [ストラテジ]ビューで一致マプレットを選択または編集することによって、一致ス
トラテジを設定することもできます。 一致マプレットは、一致トランスフォーメーション
に埋め込むことができるマプレットのタイプです。
一致操作の設定
303
第 23 章
マージトランスフォーメーシ
ョン
この章では、以下の項目について説明します。
¨ マージトランスフォーメーションの概要, 304 ページ
¨ マージストラテジの設定, 304 ページ
¨ マージトランスフォーメーションの詳細プロパティ, 305 ページ
マージトランスフォーメーションの概要
マージトランスフォーメーションは、複数の入力カラムからデータ値を読み取り、1つの出
力カラムを作成するパッシブトランスフォーメーションです。
マージトランスフォーメーションを使用して、望ましい形式でデータを作成します。 例え
ば、Customer_FirstnameフィールドとCustomer_Surnameフィールドを結合して、
Customer_FullNameというフィールドを作成できます。
マージトランスフォーメーション内では、複数の統合ストラテジを作成できます。 マージ
トランスフォーメーションには、ストラテジの作成に使用するウィザードが用意されてい
ます。
マージストラテジの設定
マージストラテジを設定するには、マージトランスフォーメーションの[ストラテジ]ビ
ューで設定を編集します。
1.
[ストラテジ]ビューを選択します。
2.
[新規]をクリックします。
新しいストラテジ ウィザードが開きます。
3.
304
[入力]フィールドをクリックして、ストラテジの入力ポートを選択します。
4.
マージされた項目間に配置するマージ文字を定義するには、[選択]をクリックしま
す。 マージ文字を選択しなかった場合は、デフォルトでスペース文字が使用されま
す。
5.
必要に応じて、[マージされた出力に空の文字列を含める]を選択して、出力に空の
入力文字列を含めます。
6.
[完了]をクリックします。
マージトランスフォーメーションの詳細プロ
パティ
Data Integration Serviceでマージトランスフォーメーションのデータがどのように処理
されるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
マージトランスフォーメーションの詳細プロパティ
305
第 24 章
パーサートランスフォーメー
ション
この章では、以下の項目について説明します。
¨ パーサートランスフォーメーションの概要, 306 ページ
¨ パーサートランスフォーメーションのモード, 307 ページ
¨ パーサートランスフォーメーションを使用するとき, 307 ページ
¨ パーサートランスフォーメーションでの参照データの使用, 309 ページ
¨ トークン解析操作, 311 ページ
¨ トークン解析ポート, 312 ページ
¨ トークン解析のプロパティ, 313 ページ
¨ パターンベースの解析モード, 316 ページ
¨ トークン解析ストラテジの設定, 317 ページ
¨ パターン解析ストラテジの設定, 318 ページ
¨ パーサートランスフォーメーションの詳細プロパティ, 319 ページ
パーサートランスフォーメーションの概要
パーサートランスフォーメーションは、入力データ値を新しいポートに解析するパッシブ
なトランスフォーメーションです。 パーサートランスフォーメーションは、値に含まれる
情報のタイプと入力文字列内の値の位置に従って、新しいポートに値を書き込みます。
パーサートランスフォーメーションは、データセットの構造を変更するときに使用しま
す。 パーサートランスフォーメーションはデータセットにカラムを追加し、新しいカラム
にデータ値を書き込みます。 パーサートランスフォーメーションは、データカラムで単一
のカラムに複数の値が含まれ、カラムに含まれる情報のタイプに基づいて個々のカラムに
データ値を書き込むときに使用します。
パーサートランスフォーメーションは、データ値を定義された出力ポートに解析します。
パーサートランスフォーメーションは入力データ値を特定できるが、定義された出力ポー
トが使用できない場合、オーバーフローポートに書き込まれます。 パーサートランスフォ
306
ーメーションが入力データ値を特定できない場合は、未解析データポートに書き込まれま
す。
パーサートランスフォーメーションのモード
パーサートランスフォーメーションを作成するときは、トークン解析モードまたはパター
ンベースの解析モードのいずれかを選択します。
次のいずれかのモードを選択します。
¨ トークン解析モード: トークンセット、正規表現、確率モデル、参照テーブルなど、参
照データオブジェクト内の値に一致する入力値を解析するには、このモードを使用しま
す。 トランスフォーメーションでは、複数のトークン解析ストラテジを使用できま
す。
¨ パターンベースの解析モード: パターンセット内の値に一致する入力値を解析するに
は、このモードを使用します。
パーサートランスフォーメーションを使用す
るとき
パーサートランスフォーメーションは、カラム内のデータフィールドに複数のタイプの情
報が含まれ、フィールド値を新しいカラムに移動するときに使用します。 パーサートラン
スフォーメーションを使用すると、データセット内の情報のタイプごとに新しいカラムを
作成できます。
以下の例に、パーサートランスフォーメーションで実行できるいくつかのタイプの構造変
更を示します。
連絡先データの新しいカラムの作成
名前データを単一のカラムから複数のカラムに解析するデータ構造を作成することが
できます。 例えば、敬称、名前、ミドルネーム、姓などのカラムを作成できます。
入力ポートで人名の構造を表す確率モデルのあるパーサートランスフォーメーション
を設定します。 モデルを定義するには、入力ポートデータのサンプルを使用します。
確率モデルを入力ポートに適用し、名前の値を新しいカラムに書き込む、トークン解
析ストラテジを作成します。 パーサートランスフォーメーションは、入力文字列の各
値の位置と値が表す名前のタイプに基づいて、名前の値を新しいカラムに書き込みま
す。
注: パターンベースの解析ストラテジを使用して連絡先データを解析することもでき
ます。 パターンベースの解析ストラテジを設定するときは、入力ポートで名前の構造
を表すパターンを定義します。
パーサートランスフォーメーションのモード
307
住所カラムの作成
住所データの単一のカラムを配達可能な住所を示す複数のカラムに解析するデータ構
造を作成することができます。
郵便番号、州名、市区町村名などの認識可能な住所要素が含まれる参照テーブルのあ
るパーサートランスフォーメーションを設定します。 各住所要素を新しいポートに書
き込むトークン解析ストラテジを作成します。
町名と番地のデータは参照テーブルでキャプチャするには一般的すぎるため、参照テ
ーブルを使用して入力文字列から所在地住所データを解析することはできません。 た
だし、オーバーフローポートを使用してこのデータをキャプチャすることは可能で
す。 すべての市区町村、州、および郵便番号データを住所から解析すると、残りのデ
ータに町名と番地の情報が含まれます。
例えば、トークン解析ストラテジを使用して次の住所を住所要素に分割します。
123 MAIN ST NW STE 12 ANYTOWN NY 12345
解析ストラテジは、住所要素を次のカラムに書き込むことができます。
カラム名
データ
オーバーフロー
123 MAIN ST NW STE 12
City
ANYTOWN
State
NY
ZIP
12345
製品データカラムの作成
製品データの単一のカラムを製品在庫の詳細を示す複数のカラムに解析するデータ構
造を作成することができます。
寸法、色、重量などの在庫要素が含まれるトークンセットのあるトランスフォーメー
ションを設定します。 各在庫要素を新しいポートに書き込むトークン解析ストラテジ
を作成します。
例えば、トークン解析ストラテジを使用して次の塗料の説明を別個の在庫要素に分割
します。
500ML Red Matt Exterior
解析ストラテジは、住所要素を次のカラムに書き込むことができます。
308
カラム名
データ
サイズ
500ML
色
Red
第 24章: パーサートランスフォーメーション
カラム名
データ
スタイル
Matt
外装
Y
パーサートランスフォーメーションでの参照
データの使用
Informatica Developerは、パーサートランスフォーメーションで使用可能な複数の参照デ
ータオブジェクトとともにインストールされます。 Developerツールで参照データを作成
することもできます。
パーサートランスフォーメーションに参照データオブジェクトを追加すると、指定した新
しいカラムにオブジェクト内の値に一致する文字列が書き込まれます。
次の表に、使用できる参照データのタイプを示します。
参照データのタイプ
説明
パターンセット
文字列内の各値の相対的な位置に基
づいて、データ値を特定します。
確率モデル
トークン解析操作にあいまい一致機
能を追加します。 パーサートラン
スフォーメーションは、確率モデル
を使用して、文字列内の情報のタイ
プを推測することができます。 あ
いまい一致機能を有効にするには、
Developerツールで確率モデルをコ
ンパイルします。
参照テーブル
データベーステーブル内のエントリ
に一致する文字列を検索します。
正規表現
定義した条件に一致する文字列を特
定します。 正規表現を使用して、
大きな文字列内の文字列を検索する
ことができます。
トークンセット
文字列に含まれる情報のタイプに基
づいて、文字列を特定します。
Informaticaは、単語、電話番号、
郵便番号、製品コードの定義など、
トークンセットのさまざまなタイプ
のトークン定義とともにインストー
ルされます。
パーサートランスフォーメーションでの参照データの使用
309
パターンセット
パターンセットには、トークンラベル適用操作の出力のデータパターンを識別する式が含
まれます。 パターンセットを使用すると、トークン化されたデータの出力ポートを分析
し、一致する文字列を1つ以上の出力ポートに書き込むことができます。 パターンセット
は、パターン解析モードを使用するパーサートランスフォーメーションで使用します。
例えば、名前と頭文字を識別するパターンセットを使用するようにパーサートランスフォ
ーメーションを設定することができます。 このトランスフォーメーションでは、パターン
セットを使用して、トークンラベル適用モードのラベラトランスフォーメーションの出力
を分析します。 出力に含まれる名前と頭文字を別のポートに書き込むようにパーサートラ
ンスフォーメーションを設定できます。
確率モデル
確率モデルは、トークンに含まれている情報のタイプと入力文字列内のトークンの位置に
よってトークンを特定します。
確率モデルには次のカラムが含まれます。
¨ 入力ポートのデータを表す入力カラム。入力ポートのサンプルデータをカラムに入力し
ます。このモデルでは、解析操作やラベル適用操作でサンプルデータを参照データとし
て使用します。
¨ 各入力文字列の情報のタイプを特定する1つ以上のラベルカラム。
カラムをモデルに追加し、各文字列のトークンにラベルを割り当てます。ラベルカラム
を使用して、文字列内のトークンの正しい位置を示します。
パーサートランスフォーメーションの確率モデルを使用するとき、パーサーは、各入力値
を値に一致するラベルを基本にして各出力ポートに書き込みます。たとえば、パーサー
は、文字列「Franklin Delano Roosevelt」をFIRSTNAME、MIDDLENAMEおよびLASTNAMEに書
き込みます。
パーサートランスフォーメーションは、入力ポートのデータがモデルに一覧表示されてい
ない場合でも、入力ポートのデータ値とモデルのデータ値の間の一致を推測できます。 つ
まり、確率モデルでは、データセット内のトークンに対してラベル適用または解析を正し
く行うためにデータセット内のすべてのトークンを表示する必要はありません。
ラベラトランスフォーメーションは、確率的な論理またはあいまい論理を使用して、確率
モデル内のトークンに一致するトークンを特定します。 確率モデルをコンパイルするとき
は、あいまい論理のルールを更新します。
注: トークン解析操作に確率モデルを追加し、確率モデルのラベル設定を編集する場合
は、この操作を無効にします。 確率モデルのラベル設定を更新するときは、そのモデルが
使用される解析操作をすべて再作成します。
参照テーブル
参照テーブルは、少なくとも2つのカラムが含まれるデータベーステーブルです。 一方の
カラムにはデータ値の標準バージョンまたは必要なバージョンが含まれ、もう一方のカラ
ムにはデータ値の代替バージョンが含まれます。 参照テーブルをトランスフォーメーショ
ンに追加すると、テーブルに存在する値が入力ポートデータで検索されます。 作業するデ
ータプロジェクトに役立つデータを含むテーブルを作成できます。
310
第 24章: パーサートランスフォーメーション
正規表現
解析操作における正規表現とは、入力データ内の1つ以上の文字列を特定するために使用で
きる式です。 特定された文字列が1つ以上の出力ポートに書き込まれます。 正規表現は、
トークン解析モードを使用するパーサートランスフォーメーションで使用できます。
パーサートランスフォーメーションでは、正規表現を使用して入力データのパターンを一
致させ、一致するすべての文字列を1つ以上の出力に解析します。 例えば、正規表現を使
用して入力データに含まれるすべての電子メールアドレスを識別し、電子メールアドレス
の構成要素ごとに異なる出力に解析することができます。
トークンセット
トークンセットには、特定のトークンを識別する式が含まれます。 トークンセットは、ト
ークン解析モードを使用するパーサートランスフォーメーションで使用できます。
トークンセットを使用して、解析操作の一部として特定のトークンを特定します。 例え
ば、トークンセットを使用して、「AccountName@DomainName」形式が使用されるすべての
電子メールアドレスを解析することができます。
トークン解析操作
トークン解析モードでは、トークンセットのデータ、正規表現、確率モデル、または参照
テーブルのエントリに一致する文字列が解析されます。
トークン解析を実行するには、トランスフォーメーションの[ストラテジ]ビューでスト
ラテジを追加します。 ストラテジごとに1つ以上の操作を追加できます。 トランスフォー
メーションには、ストラテジの作成に使用するウィザードが用意されています。
トークン解析ストラテジには、以下のタイプの操作を追加できます。
トークンセットを使用した解析
組み込みまたはユーザー定義のトークンセットを使用して、入力データを解析しま
す。 トークンセット操作では、1つ以上の出力に書き込むカスタム正規表現を使用で
きます。
確率モデルを使用して、トークンを特定したり解析したりすることもできます。
参照テーブルを使用した解析
参照テーブルを使用して、入力データを解析します。
操作はストラテジに示された順序で実行されます。
トークン解析操作
311
トークン解析ポート
トークン解析ポートをデータに適した設定で構成します。
トークン解析モードのパーサートランスフォーメーションには、以下のポートタイプがあ
ります。
入力
パーサートランスフォーメーションに渡すデータが含まれます。 [ストラテジ]タブ
で指定された[結合文字の入力]を使用して、すべての入力ポートがマージされて1つ
のデータ文字列に結合されます。 入力の結合文字を指定しなかった場合は、デフォル
トでスペース文字が使用されます。
解析された出力ポート
正常に解析された文字列が含まれるユーザー定義の出力ポート。 複数の解析文字列で
同じ出力が使用されている場合は、[ストラテジ]タブで指定された[結合文字の出
力]を使用して、組み合わされたデータ文字列に出力がマージされます。 結合文字の
出力を指定しなかった場合は、デフォルトでスペース文字が使用されます。
オーバーフロー
トランスフォーメーションで定義された出力数に収まらない、正常に解析された文字
列が含まれます。 例えば、トランスフォーメーションに2つの「WORD」出力のみがあ
る場合、文字列「John James Smith」は「Smith」というオーバーフロー出力になりま
す。 追加するストラテジごとにオーバーフローポートが作成されます。
[詳細なオーバーフロー]オプションを選択すると、モデルにラベルごとのオーバー
フローポートが作成されます。
未解析
トランスフォーメーションで正常に解析できない文字列が含まれます。 追加するスト
ラテジごとに未解析ポートが作成されます。
確率的な一致の出力ポート
確率的な一致方法を使用するように解析ストラテジを設定すると、パーサートランスフォ
ーメーションはポートを追加して出力ポートごとにマッチ率を格納します。
以下の表に、ポートのタイプを示します。
ポートタイプ
確率的な一致で作成されるポート
解析された出力ポート
[ラベル名]出力
[ラベル名]スコア出力
オーバーフローデータポート
[オーバーフローデータ]出力
[[オーバーフローデータ]スコア出
力
未解析データポート
[未解析データ]出力
[未解析データ]スコア出力
312
第 24章: パーサートランスフォーメーション
トークン解析のプロパティ
トークン解析操作のプロパティは、パーサートランスフォーメーションの[ストラテジ]
ビューで設定します。
全般プロパティ
全般プロパティは、ストラテジで定義するすべてのトークン解析操作に適用されます。 ス
トラテジに名前を付けたり、入出力ポートを指定したり、ストラテジで確率的な一致方法
を有効にするかどうかを指定するには、全般プロパティを使用します。
以下の表に、全般プロパティを示します。
プロパティ
説明
名前
ストラテジの名前を入力します。
入力
ストラテジ操作で読み取ることがで
きる入力ポートを特定します。
出力
ストラテジ操作で書き込むことがで
きる出力ポートを特定します。
説明
ストラテジを説明します。このプロ
パティはオプションです。
確率的な一致方法を使用
ストラテジが確率モデルを使用して
トークンを識別することができるよ
うに指定します。
結合文字の入力
入力データポートの結合に使用され
る文字を指定します。 すべての入
力ポートがマージされて1つのデー
タ文字列に結合され、その文字列が
解析されます。
結合文字の出力
複数の解析操作で同じ出力が使用さ
れているときに出力データの値の結
合に使用される文字を指定します。
反転有効
右から左にデータを解析するように
ストラテジを設定します。このプロ
パティは、確率的な一致に対して無
効になっています。
オーバーフローの反転有効
右から左にオーバーフローデータを
解析するようにストラテジを設定し
ます。このプロパティは、確率的な
一致に対して無効になっています。
トークン解析のプロパティ
313
プロパティ
説明
詳細なオーバーフローが有効
解析操作ごとに一意のオーバーフロ
ーフィールドを作成します。
区切り文字
入力データを別々のトークンに区切
る区切り文字を指定します。 デフ
ォルトはスペースです。
確率モデルのプロパティ
トークン解析ストラテジを設定するときは、トークンセットの代わりに確率モデルを選択
できます。 するには、[トークンセットを使用した解析]操作を選択し、確率的な一致方
法を使用するオプションを選択します。
以下の表に、確率モデルのプロパティを示します。
プロパティ
説明
名前
操作の名前を入力します。
フィルタテキスト
入力する文字またはワイルドカード
を使用して、トークンセット、確率
モデル、または正規表現のリストを
フィルタリングします。
確率モデル
選択する確率モデルを特定します。
参照テーブルのプロパティ
参照テーブルプロパティは、参照テーブルを使用するためにラベル適用操作を設定すると
きに適用されます。
以下の表に、参照テーブルのプロパティを示します。
314
プロパティ
説明
名前
操作の名前を入力します。
参照テーブル
入力値の解析に使用する参照テーブ
ルを指定します。
大文字小文字の区別
入力文字列を参照テーブルのエント
リと照合するときに大文字と小文字
を区別するかどうかを指定します。
第 24章: パーサートランスフォーメーション
プロパティ
説明
有効な値で一致を置換
解析されたデータを参照テーブルの
[有効]カラムのデータに置き換え
ます。
出力
解析されたデータの出力ポートを指
定します。
トークンセットのプロパティ
トークンセットプロパティは、トークンセットを使用するように解析操作を設定するとき
に適用されます。
トークンセットを使用して入力を解析するには、[トークンセットを使用した解析]操作
を選択します。 確率的な一致方法を使用するには、このオプションの選択を取り消しま
す。
以下の表に、トークン設定プロパティを示します。
プロパティ
説明
名前
操作の名前を入力します。
トークンセット(単一出力のみ)
データの解析に使用されるトークン
セットを指定します。 データが単
一のポートに書き込まれます。
正規表現(単一出力または複数出
力)
データの解析に使用される正規表現
を指定します。 入力フィールドで
複数の文字列が検出された場合、デ
ータが複数のポートに書き込まれま
す。
出力
書き込まれる出力ポートを特定しま
す。
トークン解析のプロパティ
315
トークンセットまたは正規表現を選択すると、トークンセットまたは正規表現を追加、編
集、インポート、または削除できます。 トークンセット名のリストをフィルタリングする
こともできます。 以下の表に、これらのタスクの実行に使用するプロパティを示します。
プロパティ
説明
フィルタテキスト
入力する文字またはワイルドカード
を使用して、トークンセット、確率
モデル、または正規表現のリストを
フィルタリングします。
トークンセットの追加
カスタムトークンセットを定義する
場合に選択します。 単一の出力に
書き込むには、トークンセットを使
用します。
正規表現の追加
カスタム正規表現を定義する場合に
選択します。 1つ以上の出力に書き
込むには、正規表現を使用します。
編集
カスタムトークンセットの内容を編
集します。
インポート
コンテンツセットに格納されている
トークンセットの再利用不可能なコ
ピーを作成できます。 元のトーク
ンセットを変更しても、パーサート
ランスフォーメーションに格納した
コピーには反映されません。
削除
カスタムトークンセットを削除しま
す。
パターンベースの解析モード
パターンベースの解析モードでは、複数の文字列からなるパターンが解析されます。
次の方法でパターンベースの解析モードでパターンを定義します。
¨ 参照テーブルに定義されたパターンを使用して入力データを解析します。 パターン参
照テーブルは、トークンラべル適用モードを使用するラべラートランスフォーメーショ
ンのプロファイルされた出力から作成できます。
¨ 定義するパターンを使用して入力データを解析します。
¨ モデルリポジトリで設定された再利用可能なパターンからインポートしたパターンを使
用して、入力データを解析します。 再利用可能なパターンセットを変更しても、パー
サートランスフォーメーションに追加するデータには反映されません。
「+」と「*」のワイルドカードを使用して、パターンを定義することができます。 任意の
文字列に一致させるには「*」文字を、前にある文字列の1つ以上のインスタンスに一致さ
せるには「+」文字を使用します。 例えば、wordトークンの連続する複数のインスタンス
316
第 24章: パーサートランスフォーメーション
を検索するには「WORD+」を使用し、wordトークンとそれに続く任意のタイプの1つ以上の
トークンを検索するには「WORD *」を使用します。
パーサートランスフォーメーション内では、これらの方法の複数のインスタンスを使用で
きます。 各インスタンスは、[設定]ビューで示された順序で使用されます。
注: パターンベースの解析モードでは、トークンラベル適用モードが使用されるラべラー
トランスフォーメーションの出力が必要です。 パターンベースの解析モードを使用するパ
ーサートランスフォーメーションを作成する前に、ラべラートランスフォーメーションを
作成および設定します。
パターンベースの解析ポート
パターンベースの解析ポートをデータに適した設定で構成します。
パターンベースの解析モードが使用されるパーサートランスフォーメーションには、以下
のポートタイプがあります。
Label_Data
このポートを、トークンラべル適用モードを使用するラべラートランスフォーメーシ
ョンのLabeled_Outputポートに接続します。
Tokenized_Data
このポートを、トークンラべル適用モードを使用するラべラートランスフォーメーシ
ョンのTokenized_Dataポートに接続します。
Parse_Status
入力パターンに対して一致が見つかった場合、このポートは値Matchedを出力します。
一致が見つからなかった場合は、Unmatchedを出力します。
オーバーフロー
トランスフォーメーションで定義された出力数に収まらない、正常に解析された文字
列。 例えば、2つの「WORD」出力のみが定義されている場合、文字列「John James
Smith」はデフォルトで「Smith」というオーバーフロー出力になります。
Parsed
ユーザー定義のポート内の正常に解析された文字列。
トークン解析ストラテジの設定
トークン解析ストラテジを設定するには、トークン解析モードでパーサートランスフォー
メーションを開き、[ストラテジ]ビューを選択します。
1.
[ストラテジ]ビューを選択します。
2.
[新規]をクリックします。
新しいストラテジ ウィザードが開きます。
3.
[入力]フィールドをクリックして、ストラテジのポートを選択します。
4.
ストラテジのプロパティを設定し、[次へ]をクリックします。
トークン解析ストラテジの設定
317
5.
操作を選択し、[次へ]をクリックします。
6.
操作プロパティを設定し、正常に解析されたデータの出力ポートを選択します。
7.
必要に応じて、[次へ]をクリックして、その他の操作をストラテジに追加します。
8.
ストラテジにすべての操作を追加したら、[完了]をクリックします。
9.
必要に応じて、その他のストラテジをトランスフォーメーションに追加します。
10.
必要に応じて、ストラテジと操作が処理される順序を変更します。 ストラテジまたは
操作を選択し、[上に移動]または[下に移動]をクリックします。
パターン解析ストラテジの設定
パターン解析ストラテジを設定するには、パターン解析モードでパーサートランスフォー
メーションを開き、[パターン]ビューを選択します。
パターンを解析するようにパーサートランスフォーメーションを設定する前に、[パター
ン]ビューに必要な出力ポート名が表示されていることを確認します。 パーサートランス
フォーメーションは、選択された出力ポートにトークンを解析します。 必要に応じて、出
力ポートを追加作成します。
1.
[パターン]ビューを選択します。
2.
1つ以上のパターンをストラテジに追加します。 パターンは次の方法で追加できま
す。
¨ データ値を入力してパターンを作成します。 [新規]をクリックし、[新しいパ
ターン]を選択します。
[新しいパターン]を選択した場合は、[ここにパターンを入力]をクリックし、
1つ以上のトークンタイプを入力します。 入力するトークンは、入力データフィー
ルドのトークン構造と一致する必要があります。 入力ポートのトークン構造を示
すために必要なパターンを追加します。
¨ 参照テーブルからデータ値をインポートします。 [新規]をクリックし、[新し
い参照テーブル]を選択します。
If you select [新しい参照テーブル]を選択した場合は、参照テーブルのリポジ
トリを参照し、トークン構造のリストが含まれているカラムを選択します。
¨ パターンセットからデータ値をインポートします。 [インポート]をクリック
し、モデルリポジトリで再利用可能なパターンセットを選択します。
[インポート]を選択した場合は、リポジトリ内で定義されているコンテンツセッ
トを参照し、再利用可能なパターンセットを選択します。
注: [フィルタテキスト]フィールドを使用して、参照テーブルとパターンセットの
リストをフィルタリングします。
[パターン]カラムには、パターンセットと参照テーブルを一緒に指定できます。
3.
[パターン]カラムの各トークンを出力ポートに割り当てます。
¨ トークンを出力ポートに割り当てるには、ポートカラムをダブルクリックし、メニ
ューからトークン名を選択します。
318
第 24章: パーサートランスフォーメーション
¨ 複数のトークンを単一の出力に解析するには、ポートカラムをダブルクリックし、
[カスタム]を選択します。 トークンをポートに割り当て、使用する区切り文字
を選択します。
パターンの各行のトークンを1つ以上の出力ポートに割り当てます。
4.
トランスフォーメーションを保存します。
パーサートランスフォーメーションの詳細プ
ロパティ
Data Integration Serviceでパーサートランスフォーメーションのデータがどのように処
理されるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
パーサートランスフォーメーションの詳細プロパティ
319
第 25 章
ランクトランスフォーメーシ
ョン
この章では、以下の項目について説明します。
¨ ランクトランスフォーメーションの概要, 320 ページ
¨ ランクトランスフォーメーションのポート, 322 ページ
¨ グループの定義, 323 ページ
¨ ランクトランスフォーメーションの詳細プロパティ, 324 ページ
ランクトランスフォーメーションの概要
ランクトランスフォーメーションは、レコードを上限または下限に制限するアクティブな
トランスフォーメーションです。ランクトランスフォーメーションを使用して、ポートま
たはグループ内で最大または最小の数値を返すことができます。または、ランクトランス
フォーメーションを使用して、マッピングのソート順の最上位または最下位の文字列を返
します。
マッピング実行中に、Data Integration Serviceはランク計算を実行できるまで入力デー
タをキャッシュに格納します。
ランクトランスフォーメーションは、トランスフォーメーション関数MAXやMINとは異なり
ます。ランクトランスフォーメーションは、1つの値だけではなく、最上位または最下位の
値のグループを返します。たとえば、ランクトランスフォーメーションを使用して、指定
された区域内での上位10人の販売員を選択できます。あるいは財務レポートを生成する場
合に、ランクトランスフォーメーションを使用して、給与や経費の支出が最も少ない3つの
部門を調べることができます。SQL言語ではデータグループを取り扱う多くの関数が提供さ
れていますが、標準SQL関数を使用して行セット内の最上位または最下位の層を特定するこ
とは不可能です。
トランスフォーメーションには、同じ行セットを表すすべてのポートを接続します。ラン
クトランスフォーメーションは、トランスフォーメーションを設定するときに指定した基
準に基づいて、当該ランクに収まる行を通過させます。
ランクトランスフォーメーションはアクティブトランスフォーメーションであるため、通
過する行の数を変更してしまう可能性があります。ランクトランスフォーメーションに渡
320
すことができるのは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個の製品といったグル
ープ)。
ランクトランスフォーメーションの概要
321
ランクトランスフォーメーションのポート
ランクトランスフォーメーションには、マッピング内の別のトランスフォーメーションに
接続されている入力ポート、入出力ポート、または出力ポートが含まれています。ランク
トランスフォーメーションには、パススルーポート、変数ポート、およびグループ別ポー
トも含まれています。
ランクトランスフォーメーションには、以下のポートタイプがあります。
入力
アップストリームトランスフォーメーションからデータを受信します。 入力ポートを
入出力ポートとして指定することができます。トランスフォーメーションには少なく
とも1つの入力ポートが必要です。
出力
ダウンストリームトランスフォーメーションにデータを渡します。出力ポートを入出
力ポートとして指定することができます。トランスフォーメーションには少なくとも1
つの出力ポートが必要です。
パススルー
変更せずにそのままデータを渡します。
変数
ローカル変数に使用されます。変数ポートを使用して、式で使用する値または計算を
格納することができます。変数ポートは入力ポートまたは出力ポートであってはなり
ません。変数ポートはトランスフォーメーション内でデータを渡します。
Group By
グループの作成方法を示します。ポートは、任意の入力ポート、入出力ポート、出力
ポート、または変数ポートを設定できます。
ランクポート
ランクポートは、値をランク付けするカラムを指定します。
1つの入出力ポートまたは出力ポートをランクポートとして指定する必要があります。例え
ば、ランクトランスフォーメーションを作成し、売上の合計に基づいて上位5名の顧客をラ
ンク付けします。TOTAL_SALESポートには、各顧客の売上合計金額が含まれます。
TOTAL_SALES入出力ポートをランクポートとして指定します。
ランクポートはほかのトランスフォーメーションにリンクする必要があります。
ランクインデックス
Developerツールは、それぞれのランクトランスフォーメーションに対してRANKINDEXポー
トを作成します。Data Integration ServiceはRank Indexポートを使用して、グループ内
における各行のランキング位置を格納します。
たとえば、会社内で給料の高い50人の従業員を調べるために、ランクトランスフォーメー
ションを作成するとします。ランク付けの基準とする入出力ポートとしてSALARYカラムを
指定し、上位50位以外のすべての行をフィルタで除外するようにトランスフォーメーショ
ンを設定します。
322
第 25章: ランクトランスフォーメーション
ランクトランスフォーメーションは、最上位または最下位のランクに属する行をすべて識
別したあと、ランクインデックス値を割り当てます。給料を基準に上位50人の従業員を識
別する場合、最高額の給料が支払われている従業員に対し、ランクインデックスとして1が
与えられます。次に給料が多い従業員には、ランクインデックスとして2が与えられ、以下
同じようにランクインデックスが割り当てられます。たとえば目録内で値段の安い10個の
製品といった最下位ランクを求める場合、ランクトランスフォーメーションは最下位から
最上位の順にランクインデックスを割り当てます。したがって、最も値段の安い商品のラ
ンクインデックスには1が与えられます。
2つのランク値が一致すると、それらは同じランクインデックス内で同じ値を受け取り、ト
ランスフォーメーションはその次の値をスキップします。たとえば国内で最上位の5つの小
売り店を調べたときに2つの小売り店が同じ売り上げである場合、返されるデータは次のよ
うになります。
RANKINDEX
SALES
STORE
1
10000
Orange
1
10000
Brea
3
90000
Los Angeles
4
80000
Ventura
RANKINDEXは出力ポートのみです。ランクインデックスは、マッピング内の別のトランスフ
ォーメーションへ渡すか、直接ターゲットへ渡すことができます。
グループの定義
ランク付けされた行のグループを作成するようにランクトランスフォーメーションを設定
できます。
例えば製造業者別に最も高価な商品を10個選択したい場合は、まずそれぞれの製造業者に
ついてグループを定義します。ランクトランスフォーメーションを設定するときに、その
いずれか1つの入力ポート、入出力ポート、または出力ポートをGroup Byポートとして設定
することができます。グループポート内の一意の値それぞれに対して、トランスフォーメ
ーションは、ランク定義(最上位または最下位、および各ランク内の特定の順位)に該当
する行のグループを作成します。
ランクトランスフォーメーションは行の数を2つの方法で変更します。1つは、最上位また
は最下位のランクに収まる行を除いたすべての行をフィルタリングして除外することによ
り、トランスフォーメーションを通過する行の数を減らします。もう1つはグループを定義
することにより、各グループでランク付けされた行のセットを1つ作成します。
グループの定義
323
例えば、四半期ごとに上位5人の販売員をランク付けするランクトランスフォーメーション
を作成した場合、ランクインデックスは四半期ごとに販売員に1から5までの数字を付けま
す。
RANKINDEX
SALES_PERSON
SALES
QUARTER
1
Sam
10,000
1
2
Mary
9,000
1
3
Alice
8,000
1
4
Ron
7,000
1
5
Alex
6,000
1
ランクトランスフォーメーションの詳細プロ
パティ
Data Integration Serviceでランクトランスフォーメーションのデータがどのように処理
されるかを特定するためのプロパティを設定します。
[詳細]タブで、以下のプロパティを設定します。
上/下
カラムの最上位または最下位のどちらのランクを使用するかを指定します。
ランク数
最上位または最下位のランキングに含まれる行の数。
大文字小文字を区別した文字列比較
Data Integration Serviceで文字列をランク付けする際に大文字小文字を区別した文
字列比較が使用されるかどうかを指定します。Data Integration Serviceで文字列の
大文字小文字が無視されるようにするには、このオプションの選択を取り消します。
デフォルトでは、このオプションは選択されています。
キャッシュディレクトリ
Data Integration Serviceでのインデックスキャッシュファイルとデータキャッシュ
ファイルの作成先となるローカルディレクトリ。 このディレクトリが存在し、キャッ
シュファイルを格納するのに十分なディスク容量を備えていることを確認します。
デフォルトはCacheDirシステムパラメータです。
ランクのデータデータキャッシュサイズ
トランスフォーメーションのデータキャッシュサイズ。数値をバイト数で入力する
か、[自動]を選択してData Integration Serviceによってランタイムのキャッシュ
サイズが決定されるようにします。デフォルトは[自動]です。
324
第 25章: ランクトランスフォーメーション
ランクのインデックスキャッシュサイズ
トランスフォーメーションのインデックスキャッシュサイズ。数値をバイト数で入力
するか、[自動]を選択してData Integration Serviceによってランタイムのキャッ
シュサイズが決定されるようにします。デフォルトは[自動]です。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
ランクトランスフォーメーションの詳細プロパティ
325
第 26 章
ルータトランスフォーメーシ
ョン
この章では、以下の項目について説明します。
¨ ルータトランスフォーメーションの概要, 326 ページ
¨ グループに関する作業, 327 ページ
¨ ポートに関する作業, 329 ページ
¨ マッピング内のルータトランスフォーメーションの接続, 330 ページ
¨ ルータトランスフォーメーションの詳細プロパティ, 330 ページ
ルータトランスフォーメーションの概要
ルータトランスフォーメーションは、1つ以上のグループ条件に基づいてデータを複数のト
ランスフォーメーションにルーティングするアクティブなトランスフォーメーションで
す。
ルータトランスフォーメーションはフィルタトランスフォーメーションに似ており、両方
とも条件を使用してデータをテストします。ただし、フィルタトランスフォーメーション
は1つの条件についてデータをテストし、条件を満たさない他のデータ行は削除します。ル
ータトランスフォーメーションは1つ以上の条件についてデータをテストし、どの条件も満
たさないデータ行をデフォルト出力グループにルーティングできます。
複数の条件に基づいて同じ入力データをテストする必要がある場合、同じ作業を実行する
複数のフィルタトランスフォーメーションを作成する代わりに、マッピング内でルータト
ランスフォーメーションを使用します。ルータトランスフォーメーションの方が効率的で
す。例えば、3つの条件に基づいてデータをテストするために、3つのフィルタトランスフ
ォーメーションの代わりに1つのルータトランスフォーメーションを使用できます。マッピ
ング内でルータトランスフォーメーションを使用すると、Data Integration Serviceは入
力データを一度処理します。マッピング内で複数のフィルタトランスフォーメーションを
使用すると、Data Integration Serviceは各トランスフォーメーションについて入力デー
タを処理します。
ルータトランスフォーメーションは、入力および出力グループ、入力および出力ポート、
グループフィルタ条件、Developerツールで設定される詳細プロパティによって構成されて
います。
326
グループに関する作業
ルータトランスフォーメーションには、以下の種類のグループがあります。
¨ 入力
¨ 出力
入力グループ
ランクトランスフォーメーションには入力グループが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ツールは入力グループの入力ポートからプロパティ情報をコピーし、各出力グル
ープに対する一連の出力ポートを作成します。出力ポートやそのプロパティを変更または
削除することはできません。
グループに関する作業
327
グループフィルタ条件の使用
1つ以上のグループフィルタ条件に基づいてデータをテストできます。式のエディタを使用
して、[グループ]タブでグループフィルタ条件を作成します。
単一の値を返す任意の式を入力することができます。条件に定数を指定することもできま
す。フィルタ条件は、指定された条件を行が満たすかどうかに基づいて、トランスフォー
メーションを通過する行ごとにTRUEまたはFALSEを返します。ゼロ(0)はFALSEとみなされ
ます。ゼロ以外の値はTRUEとみなされます。Data Integration Serviceは、TRUEと評価さ
れたデータ行を、各ユーザー定義グループに関連付けられたそれぞれのトランスフォーメ
ーションまたはターゲットに渡します。
たとえば、9ヶ国の顧客について、その内の3ヶ国のデータに対して種々の計算を行うとし
ます。マッピング内でルータトランスフォーメーションを使用し、このデータをフィルタ
リングして3つの異なる式トランスフォーメーションに渡すことができます。
デフォルトグループにはグループフィルタ条件はありません。それでも、残りの6ヶ国のデ
ータに基づいて計算を行う式トランスフォーメーションを作成することができます。
3つの異なる国から得たデータに基づいて複数の計算を行うには、[グループ]タブでユー
ザー定義グループを3つ作成し、グループフィルタ条件を3つ指定します。
以下の表に、顧客データをフィルタリングするグループフィルタ条件を示します。
グループ名
グループフィルタ条件
フランス
customer_name=‘France’=TRUE
日本
customer_name=‘Japan’=TRUE
USA
customer_name=‘USA’=TRUE
Data Integration Serviceは、マッピング実行中に、各ユーザー定義グループ(Japan、
France、USAなど)に関連付けられた各トランスフォーメーションまたはターゲットに、
TRUEと評価されたデータ行を渡します。すべての条件がFALSEと評価された場合、Data
Integration Serviceは行をデフォルトグループに渡します。Data Integration Serviceは
他の6ヶ国のデータを、デフォルトグループに関連付けられたトランスフォーメーションま
たはターゲットに渡します。Data Integration Serviceでデフォルトグループの行をすべ
て削除する場合は、デフォルトグループをマッピング内のトランスフォーメーションまた
はターゲットに接続しないようにします。
ルータトランスフォーメーションは、条件を満たす各グループを通じてデータを渡しま
す。 データが3つの出力グループ条件を満たす場合、ルータトランスフォーメーションは3
つの出力グループを通じてデータを渡します。
例えば、ルータトランスフォーメーションで以下のグループ条件を設定したとします。
328
グループ名
グループフィルタ条件
出力グループ1
employee_salary > 1000
出力グループ2
employee_salary > 2000
第 26章: ルータトランスフォーメーション
ルータトランスフォーメーションが入力行のデータをemployee_salary=3000で処理する場
合、Output Group 1および2を通じてデータがルーティングされます。
グループの追加
グループを追加すると、Developerツールによってプロパティ情報が入力ポートから出力ポ
ートにコピーされます。
1.
[グループ]タブをクリックします。
2.
[新規]ボタンをクリックします。
3.
新しいグループの名前を、[グループ名]セクションに入力します。
4.
[グループフィルタ条件]フィールドをクリックして[式エディタ]を開きます。
5.
グループフィルタ条件を入力します。
6.
[検証]をクリックして条件の構文をチェックします。
7.
[OK]をクリックします。
ポートに関する作業
ルータトランスフォーメーションには、入力ポートと出力ポートがあります。入力ポート
は入力グループにあり、出力ポートは出力グループにあります。
入力ポートは、別のトランスフォーメーションからコピーして作成するか、または[ポー
ト]タブで手動で作成することができます。
Developerツールは、入力ポートから以下のプロパティをコピーすることによって出力ポー
トを作成します。
¨ ポート名
¨ データタイプ
¨ 精度
¨ スケール
¨ デフォルト値
入力ポートに変更を加えると、Developerツールは出力ポートを更新して変更を反映させま
す。出力ポートを編集または削除することはできません。
Developerツールは、入力ポート名に基づいて出力ポート名を作成します。Developerツー
ルは各入力ポートに対して、各出力グループ内に対応する出力ポートを作成します。
ポートに関する作業
329
マッピング内のルータトランスフォーメーシ
ョンの接続
トランスフォーメーションをマッピング内のルータトランスフォーメーションに接続する
場合、以下の規則に留意してください。
¨ 1つのグループは、1つのトランスフォーメーションまたはターゲットに接続することが
できます。
¨ グループ内の1つの出力ポートは、複数のトランスフォーメーションまたはターゲット
に接続することができます。
¨ 1つのグループ内の複数の出力ポートは、複数のトランスフォーメーションまたはター
ゲットに接続することができます。
¨ 複数のグループを1つのターゲットまたは1つの入力グループトランスフォーメーション
に接続することはできません。
¨ 各出力グループを異なる入力グループに接続する場合は、ジョイナトランスフォーメー
ションを除いて、1つのグループを複数の入力グループトランスフォーメーションに接
続することができます。
ルータトランスフォーメーションの詳細プロ
パティ
Data Integration Serviceでのルータトランスフォーメーションのデータの処理方法を指
定するには、詳細プロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
330
第 26章: ルータトランスフォーメーション
第 27 章
ソータートランスフォーメー
ション
この章では、以下の項目について説明します。
¨ ソータートランスフォーメーションの概要, 331 ページ
¨ ソータートランスフォーメーションの開発, 332 ページ
¨ ソータートランスフォーメーションの詳細プロパティ, 332 ページ
¨ ソータキャッシュサイズ, 333 ページ
¨ ソータートランスフォーメーションのポート, 334 ページ
¨ ソータートランスフォーメーションの作成, 334 ページ
¨ ソータートランスフォーメーションの例, 335 ページ
ソータートランスフォーメーションの概要
指定されたソートキーに従って昇順または降順にデータをソートするには、ソータートラ
ンスフォーメーションを使用します。 ソータートランスフォーメーションは、大文字小文
字を区別してソートするように設定したり、出力が重複しないように設定したりすること
ができます。 ソータートランスフォーメーションはアクティブなトランスフォーメーショ
ンです。
ソータートランスフォーメーションを作成する場合、ポートをソートキーとして指定し、
昇順または降順でソートを行うように各ソートキーポートを設定します。 ソートキーに複
数のポートを指定した場合、Data Integration Serviceは各ポートを順番にソートしま
す。
例えば、顧客売上の全体的な請求書を顧客データベースから作成する必要があるとしま
す。顧客売上テーブルのソータートランスフォーメーションを使用し、顧客番号に従って
データを降順にソートします。ソータートランスフォーメーションの結果をアグリゲータ
トランスフォーメーションに対する入力として使用します。 [ソート済み入力]オプショ
ンを使用して、アグリゲータトランスフォーメーションのパフォーマンスを向上させるこ
とができます。
331
以下の図はマッピングを示しています。
ソータートランスフォーメーションの開発
ソータートランスフォーメーションを開発するときは、ソートキーポート、重複しない出
力行、大文字小文字を区別するソート基準などの項目について検討する必要があります。
ソータートランスフォーメーションを開発するときは、以下の項目について検討してくだ
さい。
¨ ソートキーおよびソート方向として設定するポート。
¨ 大文字小文字を区別してソートするかどうか。
¨ NULL値をソートの優先順位として考慮するかどうか。
¨ 出力行を重複しないようにするかどうか。
¨ 設定するソーターキャッシュサイズ。
ソータートランスフォーメーションの詳細プ
ロパティ
ソータートランスフォーメーションの詳細プロパティで、追加のソート基準を指定するこ
とができます。 Data Integration Serviceは、プロパティをすべてのソートキーポートに
適用します。 また、ソータートランスフォーメーションのプロパティは、Data
Integration Serviceがデータのソート時に割り当てるシステムリソースも決定します。
以下に、ソータートランスフォーメーションの詳細プロパティを示します。
個別
出力行を重複しないものとして扱います。 出力行が重複しないようにソータートラン
スフォーメーションを設定した場合、Developerツールはすべてのポートをソートキー
の一部として設定します。 Data Integration Serviceは、ソート操作時に比較された
重複行を破棄します。
332
第 27章: ソータートランスフォーメーション
大文字小文字の区別
Data Integration Serviceがデータをソートする際に大文字と小文字を区別するかど
うかを決定します。 [大文字小文字の区別]プロパティを有効にすると、Data
Integration Serviceはソートの際に大文字を小文字よりも上位にソートします。
Developerツールでは[大文字小文字の区別]がデフォルトで設定されています。
NULLを下として扱う
NULL値を最下位にソートします。 Data Integration Serviceがソート操作を行う際
に、NULL値を他のすべての値より下位として処理するようにする場合は、このプロパ
ティを有効にします。
ソータキャッシュサイズ
ソート操作の実行に必要なメモリの最大量を決定します。 Data Integration Service
は、ソート操作を行う前に、すべての入力データをソータートランスフォーメーショ
ンに渡します。 [ソーターキャッシュサイズ]プロパティのデフォルト値は[自動]
です。 ソーターキャッシュには、数値を設定できます。
作業ディレクトリ
Data Integration Serviceは、作業ディレクトリを使用してデータのソート中に一時
ファイルを作成します。 Data Integration Serviceはデータをソートした後で、一時
ファイルを削除します。 Data Integration Serviceマシン上の任意のディレクトリを
作業ディレクトリとして指定できます。 デフォルトはTempDirシステムパラメータで
す。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
ソータキャッシュサイズ
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は最低で
ソータキャッシュサイズ
333
も入力されるデータの量の2倍のディスク領域を必要とします。 入力されるデータの量が
ソータキャッシュサイズよりはるかに大きい場合、Data Integration Serviceは作業ディ
レクトリで利用可能なディスク領域の2倍の量より多くの量を必要とする可能性がありま
す。
ソータートランスフォーメーションのポート
ソータートランスフォーメーションのすべてのポートで、データの入力、ソート、および
他のトランスフォーメーションへのデータの出力が可能です。
ソータートランスフォーメーションは、以下のポートタイプを備えています。
キー
ソートキーとは、ソート基準として使用する1つまたは複数のポートのことです。Data
Integration Serviceは、キーとして指定されたポートに従って、データをソートしま
す。 データをソートするキーポートの方向を昇順または降順に設定します。
Developerツールでは[方向]のデフォルト値は昇順に設定されています。
その他
ソートキーとして指定されていないポート。
ソータートランスフォーメーションの作成
再利用可能なソータートランスフォーメーションまたは再利用不可能なソータートランス
フォーメーションを作成できます。
再利用可能なソータートランスフォーメーションの作
成
複数のマッピングまたはマプレットで使用する、再利用可能なソータートランスフォーメ
ーションを作成します。
1.
[Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。
2.
[ファイル] > [新規] > [トランスフォーメーション]をクリックします。
[新規]ダイアログボックスが表示されます。
3.
ソータートランスフォーメーションを選択します。
4.
[次へ]をクリックします。
5.
トランスフォーメーションの名前を入力します。
6.
[完了]をクリックします。
トランスフォーメーションがエディタに表示されます。
7.
334
[新規]をクリックして、トランスフォーメーションにポートを追加します。
第 27章: ソータートランスフォーメーション
8.
ポートを編集して、名前、データ型、および精度を設定します。
9.
[キー]を選択して、ポートをソートキーとして指定します。
10.
[詳細]ビューをクリックし、トランスフォーメーションのプロパティを編集しま
す。
再利用不可能なソータートランスフォーメーションの
作成
マッピングまたはマプレットで再利用不可能なソータートランスフォーメーションを作成
します。
1.
マッピングまたはマプレットで、トランスフォーメーションパレットからエディタに
ソータートランスフォーメーションをドラッグします。
トランスフォーメーションがエディタに表示されます。
2.
[プロパティ]ビューで、トランスフォーメーションの名前と説明を編集します。
3.
[ポート]タブで、[新規]をクリックして、トランスフォーメーションにポートを
追加します。
4.
ポートを編集して、名前、データ型、および精度を設定します。
5.
[キー]を選択して、ポートをソートキーとして指定します。
6.
[詳細]タブをクリックし、トランスフォーメーションのプロパティを編集します。
ソータートランスフォーメーションの例
顧客からのすべての注文に関する情報を含むデータベーステーブルPRODUCT_ORDERSがあり
ます。
ORDER_ID
ITEM_ID
ITEM
QUANTITY
PRICE
43
123456
ItemA
3
3.04
41
456789
ItemB
2
12.02
43
000246
ItemC
6
34.55
45
000468
ItemD
5
0.56
41
123456
ItemA
4
3.04
45
123456
ItemA
5
3.04
45
456789
ItemB
3
12.02
PRODUCT_ORDERSでソータートランスフォーメーションを使用し、ORDER_IDをソートキー
に、方向を降順に指定します。
ソータートランスフォーメーションの例
335
データをソートした後、Data Integration Serviceはソータートランスフォーメーション
から以下の行を渡します。
ORDER_ID
ITEM_ID
ITEM
QUANTITY
PRICE
45
000468
ItemD
5
0.56
45
123456
ItemA
5
3.04
45
456789
ItemB
3
12.02
43
123456
ItemA
3
3.04
43
000246
ItemC
6
34.55
41
456789
ItemB
2
12.02
41
123456
ItemA
4
3.04
注文ごとの合計金額と数量を特定する必要があります。 ソータートランスフォーメーショ
ンの結果をアグリゲータトランスフォーメーションへの入力として使用できます。 パフォ
ーマンスを向上させるには、アグリゲータトランスフォーメーションでソート済み入力を
使用します。
[ソート済み入力]オプションを使用しない場合、Data Integration Serviceは読み込み
と並行して集計計算を実行します。 すべての集計計算が正確に実行されるように、Data
Integration Serviceはソース全体の読み込みが完了するまで各グループのデータを格納し
ておきます。 [ソート済み入力]オプションを使用する場合、前もってデータを正しくソ
ートしておかないと、予期しない結果が生じます。
アグリゲータトランスフォーメーションでポート別のORDER_IDグループがあり、ソート済
み入力オプションが選択されているとします。 ソータートランスフォーメーションからデ
ータを渡すと、アグリゲータトランスフォーメーションはORDER_IDをグループ化して、注
文ごとの合計金額を計算します。
336
ORDER_ID
SUM
45
54.06
43
216.42
41
36.2
第 27章: ソータートランスフォーメーション
第 28 章
SQLトランスフォーメーショ
ン
この章では、以下の項目について説明します。
¨ SQLトランスフォーメーションの概要, 337 ページ
¨ SQLトランスフォーメーションの詳細プロパティ, 338 ページ
¨ SQLトランスフォーメーションのポート, 339 ページ
¨ SQLトランスフォーメーションクエリ, 343 ページ
¨ 入力行と出力行のカーディナリティ, 344 ページ
¨ SQLトランスフォーメーションによるフィルタの最適化, 349 ページ
¨ SQLトランスフォーメーションの例, 351 ページ
SQLトランスフォーメーションの概要
SQLトランスフォーメーションは、マッピングの中間地点でSQLクエリを処理します。 デー
タベースに行を挿入したり、データベースの行を削除、更新、および取得したりできま
す。SQL DDL文を実行して、マッピングの中間地点でテーブルを作成したり、削除したりで
きます。
SQLトランスフォーメーションは、トランスフォーメーションのSQLエディタで定義したSQL
クエリを実行します。 SQLトランスフォーメーションはクエリを処理し、行を返し、デー
タベースエラーがあれば返します。 入力ポートの値をクエリ内のパラメータに渡すことが
できます。
SQLトランスフォーメーションはアクティブなトランスフォーメーションです。 入力行ご
とに複数の行をトランスフォーメーションで返すことができます。
SQLトランスフォーメーションを設定する場合は、以下のタスクを実行します。
1.
接続先のデータベースタイプなどのトランスフォーメーションプロパティを定義しま
す。
2.
ポートを定義します。
3.
SQLエディタでSQLクエリを作成します。
337
4.
マッピングにSQLトランスフォーメーションを設定し、アップストリームのポートに接
続します。
5.
データをプレビューして結果を確認します。
SQLトランスフォーメーションの詳細プロパ
ティ
SQLトランスフォーメーションのプロパティはいつでも変更できます。 デフォルトのデー
タベースタイプはOracleです。 接続する必要があるデータベースが別のデータベースタイ
プである場合は、トランスフォーメーションにポートを追加する前にデータベースタイプ
を変更します。
[詳細]タブで、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。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クエリから出力できる最大行数を定義します。
行が制限されないように設定するには、[最大出力行数]をゼロに設定します。
338
第 28章: SQLトランスフォーメーション
クエリの説明
トランスフォーメーションに定義したSQLクエリの説明です。
SQLモード
SQLクエリが例外スクリプトであるかどうかや、クエリがトランスフォーメーションに
定義されるかどうかを決定します。 [SQLモード]は[クエリ]です。 SQLトランス
フォーメーションは、SQLエディタで定義されたクエリを実行します。 読み取り専用
です。
SQLクエリ
SQLエディタで設定されたSQLクエリを表示します。
副次作用あり
SQLトランスフォーメーションが行を返す以外にいずれかの関数を実行することを示す
チェックボックス。 SQLクエリがデータベースを更新すると、SQLトランスフォーメー
ションに副次作用が生じます。 SQLクエリにCREATE、DROP、INSERT、UPDATE、
GRANT、REVOKEなどの文が含まれるときは、SQLクエリに副次作用が生じます。
SQLトランスフォーメーションが結果を返さないSELECT文のNULL行を返す場合は、SQL
トランスフォーメーションにも副次作用が生じます。 行には、パススルーポート値、
SQLエラー情報、またはNUMRowsAffectedフィールドが含まれます。
最適化にプッシュインまたは初期選択の最適化を可能にするには、[副次作用あり]
プロパティを無効にします。 デフォルトでは有効になっています。
データベース出力のみ返す
SQLトランスフォーメーションで、0個の結果を返すSELECT文の行、INSERT、UPDATE、
DELETE、COMMITなどの他の文の行、またはNULL行が生成されません。
最適化にプッシュインを有効にする
Data Integration Serviceが、SQLトランスフォーメーションにおけるSQLへのマッピ
ングでフィルタトランスフォーメーションからロジックをプッシュできるようにしま
す。
SQLトランスフォーメーションのポート
SQLトランスフォーメーションを作成すると、DeveloperツールはデフォルトでSQLErrorポ
ートを作成します。 [ポート]ビューで入力ポート、出力ポート、およびパススルーポー
トを追加します。
SQLトランスフォーメーションには、以下のタイプのポートがあります。
入力
SQLクエリで使用できるソースデータを受け取ります。
出力
SQL SELECTクエリからのデータベースデータを返します。
SQLトランスフォーメーションのポート
339
パススルー
トランスフォーメーションを介してソースデータをそのままの状態で渡す入出力ポー
トです。
SQLError
データベースからのSQLエラーを返します。 エラーが発生しなかった場合は、NULLを
返します。
NumRowsAffected
入力行のINSERT、DELETE、およびUPDATEクエリ文の影響を受けたデータベース行の合
計数を返します。 このポートは、出力行に統計の更新を含めることを選択したとき
に、Developerツールによって作成されます。
入力ポート
SQLトランスフォーメーションには、出力ポートに渡さないデータの入力ポートを作成でき
ます。 SQLクエリで入力ポートを参照し、また、ポート名をパラメータとしてクエリに含
めることができます。
入力ポートを追加するには、[ポート]ビューで[入力]をクリックします。 [新規]を
クリックします。
ポートを追加するときは、ポートのネイティブデータ型を入力します。 ネイティブデータ
型は、接続先しようとしているデータベースで有効なデータ型です。 ネイティブデータ型
を設定すると、トランスフォーメーションデータ型が表示されます。 行をSQLトランスフ
ォーメーションにドラッグすると、Developerツールは、接続しようとしているデータベー
スで有効なデータ型に基づいて、ネイティブデータ型を設定します。 クエリで使用するカ
ラムのデータ型がデータベース内のカラムと同じデータ型であることを確認します。
注: ポートに対して[出力にコピー]を選択すると、入力ポートはパススルーポートにな
ります。パススルーポートは、[入力]セクションおよび[出力]セクション([ポー
ト]ビュー内)に表示されます。
出力ポート
出力ポートは、SELECT文から値を返します。 SELECT文のカラムごとに出力ポートを作成し
ます。
出力ポートを設定するときは、そのポートのネイティブデータ型を選択します。 出力ポー
トのネイティブデータ型は、データベース内の対応するカラムのデータ型と同じである必
要があります。 ネイティブデータ型が設定されると、Developerツールはポートのトラン
スフォーメーションデータ型を定義します。
例えば、SQLトランスフォーメーションに、Oracleデータベースに対する以下のSQLクエリ
が含まれるとします。
SELECT FirstName, LastName, Age FROM EMPLOYEES
340
第 28章: SQLトランスフォーメーション
この場合、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クエリが行を返すかどうかにか
かわらず、パススルーポートにデータを返します。
入力行にSELECTクエリ文が含まれている場合、SQLトランスフォーメーションは、データベ
ースから返される行ごとに、パススルーポートにデータを返します。 クエリ結果に複数の
行が含まれている場合、SQLトランスフォーメーションは、各行についてパススルーデータ
の生成を繰り返します。
クエリによって行が返されなかった場合、SQLトランスフォーメーションは、出力カラム
に、NULL値を含むパススルーカラムデータを返します。たとえば、INSERT、UPDATE、およ
びDELETEの各文を含むクエリでは、行が返されません。クエリでエラーが発生した場合、
SQLトランスフォーメーションは、パススルーカラムデータ、SQLErrorメッセージ、および
NULL値を出力ポートに返します。
SELECTクエリからデータを返すようにパススルーポートを設定することはできません。
パススルーポートを作成するには、入力ポートを作成して[出力にコピー]を選択しま
す。 Developerツールによって出力ポートが作成され、ポート名に「_output」接尾語が追
加されます。 Developerツールがパススルーポートに対して作成する出力ポートを変更す
ることはできません。 「_output」接尾語が含まれる出力ポートを作成することはできま
せん。
SQLトランスフォーメーションのポート
341
SQLErrorポート
SQLErrorポートは、データベースからのSQLエラーを返します。
SQLクエリに構文エラーがある場合、SQLErrorポートにはデータベースからのエラーテキス
トが含まれます。たとえば、以下の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文が変更する行の合計が含まれます。
たとえば、クエリに以下の文が含まれているとします。
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になりま
す。
342
第 28章: SQLトランスフォーメーション
SQLトランスフォーメーションクエリ
データベースから行を取得したり、データベースを更新したりするには、SQLエディタで
SQLクエリを作成します。
クエリを作成するには、[SQL]ビューのSQLエディタでクエリ文を入力します。 SQLエデ
ィタには、クエリで参照できるトランスフォーメーションポートのリストが表示されま
す。ポート名をダブルクリックして、クエリパラメータとして追加できます。
SQLクエリを作成すると、クエリ内のポート名がSQLエディタによって検証されます。ま
た、文字列の置換に使用するポートが文字列データ型であるかどうかも確認されます。SQL
エディタでは、SQLクエリの構文は検証されません。
静的なSQLクエリを作成することができます。 クエリ文は変更されませんが、値を変更す
るパラメータを含めることができます。 Data Integration Serviceでは、入力行ごとにク
エリが実行されます。
SQLクエリの定義
入力行ごとに同じクエリ文を実行するSQLクエリを定義します。 クエリのカラムやテーブ
ルを、行内の入力ポートの値に基づいて変更できます。 WHERE句の値も、入力ポートの値
に基づいて変更できます。
入力行ごとのWHERE句のデータ値を変更するには、パラメータのバインドを設定します。
入力ポートの値に基づいてクエリのカラムを変更したり、テーブルを変更したりするに
は、文字列の置換を使用します。
パラメータのバインド
クエリ内のデータを変更するには、クエリパラメータを設定し、これらのクエリパラメー
タをトランスフォーメーションの入力ポートにバインドします。 パラメータを入力ポート
にバインドする場合、クエリ内のポート名を指定します。 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
Dept
100
Products
123
HR
130
Accounting
SQLトランスフォーメーションクエリ
343
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行が返されます。
クエリ文の処理
SELECTクエリが成功した場合、SQLトランスフォーメーションによって複数の行が取得
されることがあります。クエリに他の文が含まれる場合、Data Integration Service
は、SQLエラーまたは影響を受けた行の数が含まれる行を生成することがあります。
ポート設定
NumRowsAffected出力ポートには、1つの入力行のUPDATE、INSERT、またはDELETE文が
変更する行の数が含まれます。 SQLトランスフォーメーションは、クエリ内の文ごと
344
第 28章: SQLトランスフォーメーション
に影響を受けた行の数を返します。 SQLトランスフォーメーションにパススルーポー
トが設定されている場合、トランスフォーメーションは各ソース行に対して最低1回は
カラムデータを返します。
最大行数の設定
[最大出力行数]は、SQLトランスフォーメーションでSELECTクエリから返される行数
を制限します。
エラー行
Data Integration Serviceは、接続エラーまたは構文エラーを検出すると、行エラー
を返します。 SQLトランスフォーメーションには、エラーをSQLErrorポートに返しま
す。
SQLエラー時に続行
SQL文にエラーがあっても処理を継続するようにSQLトランスフォーメーションを設定
できます。 SQLトランスフォーメーションは、行エラーを生成しません。
クエリ文の処理
SQLクエリのタイプによって、SQLトランスフォーメーションで返される行数が決定しま
す。 SQLトランスフォーメーションは、ゼロ行、1行、または複数の行を返すことができま
す。 クエリにSELECT文が含まれる場合、SQLトランスフォーメーションによってデータベ
ースの各列が出力ポートに返されます。該当するすべての行がトランスフォーメーション
によって返されます。
以下の表に、クエリモードでエラーが発生しない場合に、さまざまなタイプのクエリ文に
ついてSQLトランスフォーメーションが生成する出力行を示します。
クエリー文
出力行
UPDATE、INSERT、DELETEのみ
クエリ内の文ごとに1行。
1つ以上のSELECT文
取得されたデータベース行の合計
数。
CREATE、DROP、TRUNCATEなどのDDL
クエリー
クエリ内の文ごとに1行。
入力行と出力行のカーディナリティ
345
ポート設定
[統計を出力として含める]を有効にすると、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値の行を削除するには、フィルタトランスフ
ォーメーション経由で出力行を渡します。
346
第 28章: SQLトランスフォーメーション
以下の表に、UPDATE、INSERT、またはDELETEのクエリ文について、SQLトランスフォーメー
ションが生成する行を示します。
設定されている
NumRowsAffectedポートまた
はパススルーポート
SQLError
出力される行
いずれのポートも設定されて
いません
いいえ
SQLErrorポートにNULLを含む1
行。
いずれのポートも設定されて
いません
はい
SQLErrorポートにエラーを含
む1行
どちらかが設定済み
いいえ
クエリ文ごとに、
NumRowsAffectedまたはパスス
ルーのカラムデータを含む1
行。
どちらかが設定済み
はい
SQLErrorポート、
NumRowsAffectedポート、また
はパススルーポートのデータ
にエラーを含む1行。
以下の表に、SELECT文についてSQLトランスフォーメーションが生成する出力行の数を示し
ます。
設定されている
NumRowsAffectedポ
ートまたはパススル
ーポート
SQLError
出力される行
いずれのポートも設
定されていません
いいえ
1つ以上の行。各SELECT文から返され
た行によって異なります。
いずれのポートも設
定されていません
はい
正常に終了した文の出力行の合計より
も大きい1行。最後の行には、
SQLErrorポートにエラーが含まれま
す。
入力行と出力行のカーディナリティ
347
設定されている
NumRowsAffectedポ
ートまたはパススル
ーポート
SQLError
出力される行
どちらかが設定済み
いいえ
1つ以上の行。各SELECT文で返された
行によって異なります。
- NumRowsAffectedが有効な場合、各行
には値0のNumRowsAffectedカラムが含
まれます。
- パススルーポートが設定されている場
合、各行にはパススルーカラムデータ
が含まれます。クエリによって複数の
行が返された場合、パススルーカラム
データは各行について重複して生成さ
れます。
どちらかが設定済み
はい
1つ以上の行。各SELECT文で返された
行によって異なります。最後の行に
は、SQLErrorポートのエラーが含まれ
ます。
- NumRowsAffectedが有効な場合、各行
には値0のNumRowsAffectedカラムが含
まれます。
- パススルーポートが設定されている場
合、各行にはパススルーカラムデータ
が含まれます。クエリによって複数の
行が返された場合、パススルーカラム
データは各行について重複して生成さ
れます。
以下の表に、CREATE、DROP、TRUNCATEなどのDDLクエリについて、SQLトランスフォーメー
ションが生成する出力行の数を示します。
348
設定されている
NumRowsAffectedポートまた
はパススルーポート
SQLError
出力される行
いずれのポートも設定されて
いません
いいえ
SQLErrorポートにNULLを含む1
行。
いずれのポートも設定されて
いません
はい
SQLErrorポートにエラーを含
む1行。
どちらかが設定済み
いいえ
値0のNumRowsAffectedカラム
およびパススルーカラムデー
タを含む1行
どちらかが設定済み
はい
SQLErrorポートにエラー、値0
のNumRowsAffectedカラム、お
よびパススルーカラムデータ
を含む1行
第 28章: SQLトランスフォーメーション
SQLエラー時に続行
クエリ文で発生するSQLエラーは無視することができます。 [行内のエラー時でも処理を
続行する]を有効にします。 Data Integration Serviceは、行の残りのSQL文の実行を続
行します。
Data Integration Serviceは行エラーを生成しません。 ただし、SQLErrorポートには、失
敗したSQL文とエラーメッセージが含まれます。
たとえば、クエリに以下の文があるとします。
DELETE FROM Persons WHERE FirstName = ‘Ed’;
INSERT INTO Persons (LastName, Address) VALUES ('Gein', '38 Beach Rd')
DELETE文が失敗した場合、SQLトランスフォーメーションによってデータベースからエラー
メッセージが返されます。Data Integration ServiceはINSERT文の処理を続行します。
データベースエラーをトラブルシューティングしたり、エラーをエラーを発生させたクエ
リ文に関連付けたりするには、[行内のエラー時でも処理を続行する] オプションを無効
にします。
SQLトランスフォーメーションによるフィル
タの最適化
フィルタ条件がパススルーポートのみを参照し、SQLトランスフォーメーションに副次作用
がない場合、Data Integration ServiceはSQLトランスフォーメーションにフィルタの最適
化を適用することができます。
SQLトランスフォーメーションには、次の状況で副次作用があります。
¨ SQLクエリがデータベースを更新する。 SQLクエリには、CREATE、DROP、INSERT、
UPDATE、GRANT、REVOKEなどの文が含まれます。
¨ SQLトランスフォーメーションが結果を返さないSELECT文に対してNULL行を返す。 行に
は、パススルーポート値、SQLエラー情報、またはNUMRowsAffectedフィールドが含まれ
ます。
Data Integration Serviceは、SQLトランスフォーメーションに初期選択の最適化と最適化
にプッシュインの方式を適用することができます。
SQLトランスフォーメーションを使用した初期選択の最
適化
フィルタ条件がパススルーポートのみを参照し、SQLトランスフォーメーションに副次作用
がない場合、Data Integration ServiceはSQLトランスフォーメーションを使用して初期選
択の最適化を実行することができます。
SQLトランスフォーメーションには、次の状況で副次作用があります。
¨ SQLクエリがデータベースを更新する。 SQLクエリには、CREATE、DROP、INSERT、
UPDATE、GRANT、REVOKEなどの文が含まれます。
SQLトランスフォーメーションによるフィルタの最適化
349
¨ SQLトランスフォーメーションが結果を返さないSELECT文に対してNULL行を返す。 行に
は、パススルーポート値、SQLエラー情報、またはNUMRowsAffectedフィールドが含まれ
ます。
SQLトランスフォーメーションによる初期選択の最適化の有効化
SQLトランスフォーメーションに副次作用がない場合は、SQLトランスフォーメーションで
初期選択の最適化を有効にします。
1.
SQLトランスフォーメーションの[詳細プロパティ]で、[データベース出力のみ返
す]オプションを有効にします。
2.
SQLトランスフォーメーションの[詳細プロパティ]で、[副次作用あり]をクリアし
ます。
3.
SQLトランスフォーメーションにNumAffectedRowsポートがある場合は、このポートを
削除します。
SQLトランスフォーメーションによるプッシュイン最適
化
最適化にプッシュインを有効にすると、SQLトランスフォーメーションにおけるクエリへの
マッピングで、Data Integration Serviceはフィルタトランスフォーメーションからフィ
ルタロジックをプッシュします。
SQLトランスフォーメーションで最適化にプッシュインを有効にする場合は、以下のルール
およびガイドラインに従います。
¨ トランスフォーメーションSQLクエリはSELECT文を含む必要があります。
¨ トランスフォーメーションSQLクエリは有効なサブクエリである必要があります。
¨ フィルタ条件は、[SQLエラー]フィールドまたは[NumRowsAffected]フィールドを参
照できません。
¨ 出力ポートの名前は、SQL SELECT文内のカラムの名前と一致している必要があります。
フィルタ条件内で出力ポートを参照すると、Data Integration Serviceは対応するポー
ト名をSQLクエリにプッシュします。クエリ内のカラムが出力ポート名と一致しない場
合は、SQLにエイリアスを追加できます。 次に例を示します。SELECT mycolname1 AS
portname1, mycolname2 AS portname2
¨ トランスフォーメーションには副次作用がありません。
SQLトランスフォーメーションによるプッシュイン最適化の例
SQLトランスフォーメーションは顧客ID別に注文を取得します。 SQLトランスフォーメーシ
ョンの後に出現するフィルタトランスフォーメーションは、注文数が1000を超えた行のみ
を返します。
Data Integration Serviceは、次のフィルタをSQLトランスフォーメーションのSELECT文に
プッシュします。
orderAmount > 1000
SQLクエリ内の各文は、フィルタが含まれるSELECT文の個々のサブクエリになります。
350
第 28章: SQLトランスフォーメーション
次のクエリ文は、元のクエリ文をSELECT文内のサブクエリとして示しています。
SELECT <customerID>, <orderAmount>, … FROM (original query statements) ALIAS WHERE <orderAmount>
> 1000
SQLクエリに複数の文がある場合、各文は個々のサブクエリに含まれます。 サブクエリの
構文は、WHERE句など、同じになります。
ポートcustomerIDおよびorderAmountは、SQLトランスフォーメーションの出力ポートの名
前です。サブクエリには、パススルーポート、SQLエラー、またはSQL統計ポートは含まれ
ません。 複数のフィルタをSQLトランスフォーメーションにプッシュする場合、WHERE句に
すべてのフィルタが含まれます。
SQLトランスフォーメーションによるプッシュイン最適化の有効
化
最適化にプッシュインを有効にするには、SQLトランスフォーメーションの[詳細プロパテ
ィ]タブでプロパティを設定します。
1.
[副次作用あり]をクリアします。
2.
[データベース出力のみ返す]を有効にします。
3.
[最大出力行数]をゼロに設定します。
4.
[最適化にプッシュイン]を有効にします。
SQLトランスフォーメーションの例
あなたはHypostores corporationの人事部の開発者です。 Hypostoresは、従業員の給与情
報を人事の従業員データとは別のデータベースで管理しています。 人事部では、複数の地
域をまたいで、従業員と給与を単一ビューで照会する必要があります。
あなたは、従業員の論理データオブジェクト内の従業員データと給与データを単一ビュー
に表示する、論理データオブジェクトマッピングを作成する必要があります。
従業員データソースを使用して論理データオブジェクトマッピングを作成します。 これ
に、給与データベースから給与及び入社日を取得するSQLトランスフォーメーションを追加
します。
論理データオブジェクトマッピング
論理データオブジェクトマッピングには、以下のオブジェクトが含まれます。
Employeeテーブル
Human Resourcesデータベース内の、従業員データの入力リレーショナルテーブル。
Salaryテーブル
従業員の給与および入社日が含まれる、Payrollデータベース内のテーブル。 データ
ベースはOracleデータベースです。
SQLトランスフォーメーションの例
351
SQLトランスフォーメーション
各従業員行に対して入社日と給与を取得するトランスフォーメーション。 このトラン
スフォーメーションはPayrollデータベースに接続され、データベース内のSalaryテー
ブルに対してSQLクエリを実行します。
論理データオブジェクト
従業員データと給与データが結合されたビューを含みます。 論理データオブジェクト
は、SQLトランスフォーメーションから出力を受け取ります。
SQLErrorsファイル
SQLErrorsファイルは、データベースのSQLエラーが含まれるフラットファイルです。
Data Integration Serviceは、入力行ごとに少なくとも1行をSQLErrorsファイルに書
き込みます。 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テーブルのサンプル行を示します。
352
EmpID
LastName
FirstName
DeptId
Phone
10
Smith
Martha
FIN
(415)
552-1623
11
Jones
Cynthia
ENG
(415)
552-1744
第 28章: SQLトランスフォーメーション
EmpID
LastName
FirstName
DeptId
Phone
12
Russell
Cissy
SLS
(415)
552-1656
13
Goyal
Girish
FIN
(415)
552-1656
SQLトランスフォーメーション
SQLトランスフォーメーションは、PayrollデータベースのSalaryテーブルから従業員の入
社日と給与を取得します。 SalaryテーブルはOracleデータベース内にあります。
SQLトランスフォーメーションを設定するには、以下の手順に従います。
1.
SQLトランスフォーメーションのプロパティを設定します。
2.
ポートを定義します。
3.
SQLクエリを作成します。
4.
SQLトランスフォーメーションのデータベース接続を設定します。
SQLトランスフォーメーションのプロパティを定義します。
[詳細プロパティ]ビューで、SQLトランスフォーメーションのプロパティを設定します。
以下のプロパティを設定します。
データベースタイプ
データベースタイプはOracleです。 ポートを定義するときに、Oracleに対して適用可
能なポートデータ型を選択できます。
行内のエラー時でも処理を続行する
無効にします。行でSQLエラーが発生した場合は、処理を停止します。
統計を出力として含める
無効にします。NumRowsAffected出力ポートを作成しないでください。
ポートの定義
Employeeソーステーブルのカラムごとに、入力ポートを定義します。 入力ポートをカラム
のパススルーポートに変更するには、[出力にコピー]を選択します。 [出力にコピー]
を選択すると、Developerツールはコピーするポートごとに対応する出力ポートを作成しま
す。
SQLトランスフォーメーションの例
353
以下の入力パススルーポートを作成します。
名前
タイプ
ネイティ
ブタイプ
精度
スケール
出力にコ
ピー
EmpID
decimal
number(p
,2)
4
0
x
LastName
string
varchar2
30
0
x
FirstNam
e
string
varchar2
20
0
x
DeptID
string
varchar2
4
0
x
Phone
string
varchar2
16
0
x
SQLトランスフォーメーションでの出力ポートを以下に挙げます。
名前
タイプ
ネイティブ
タイプ
精度
スケール
EmpID
decimal
number(p,s)
4
0
LastName
string
varchar2
30
0
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ポートの値を含むパラメータです。
354
第 28章: SQLトランスフォーメーション
データベース接続の定義
[ランタイム]ビューで、SQLトランスフォーメーションの接続先データベースのデータベ
ース接続オブジェクトを選択します。 Oracleデータベースの接続オブジェクトを選択しま
す。
出力
SQLErrorポートとEmpID_outputポートをSQLErrorsフラットファイルに接続します。 SQL
エラーが発生しなかった場合、SQLErrorポートにはNULL値が含まれます。
EmpID出力ポートと他の出力ポートを論理データオブジェクトに接続します。
SQLトランスフォーメーションは、Employeeテーブルのデータが含まれる行を返し、Salary
テーブルの入社日と給与を組み込みます。
以下の表に、論理データオブジェクトのいくつかの行を示します。
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
SQLトランスフォーメーションの例
355
第 29 章
標準化トランスフォーメーシ
ョン
この章では、以下の項目について説明します。
¨ 標準化トランスフォーメーションの概要, 356 ページ
¨ 標準化ストラテジ, 357 ページ
¨ 標準化のプロパティ, 357 ページ
¨ 標準化ストラテジの設定, 358 ページ
¨ 標準化トランスフォーメーションの詳細プロパティ, 359 ページ
標準化トランスフォーメーションの概要
標準化トランスフォーメーションは、入力文字列を調べ、それらの文字列の標準化された
バージョンを作成するパッシブなトランスフォーメーションです。
標準化トランスフォーメーションでは、入力文字列の標準化されたバージョンを含むカラ
ムを作成します。 それらのカラムを作成するときに、入力データに含まれる文字列を置き
換えたり削除したりできます。
例えば、標準化トランスフォーメーションを使用して、Street、St.、およびSTRという文
字列を含むアドレスデータのカラムを調べ、それらの文字列のすべての出現箇所をStとい
う文字列に置き換えることができます。
標準化トランスフォーメーションには、複数の標準化ストラテジを作成できます。 それぞ
れのストラテジに複数の標準化操作を含めることができます。 標準化トランスフォーメー
ションには、ストラテジを作成するためのウィザードが用意されています。
356
標準化ストラテジ
入力文字列の標準化されたバージョンを含むカラムを作成するには、標準化ストラテジを
使用します。
標準化ストラテジを設定するときは、操作を1つ以上追加し、 操作ごとに特定の標準化タ
スクを実装します。
標準化ストラテジには、以下のタイプの操作を追加できます。
参照テーブルの一致を有効な値で置換
参照テーブルの値に一致する文字列を、参照テーブルの"有効"値で置き換えます。
参照テーブルの一致をカスタム文字列で置換
参照テーブルの値に一致する文字列を、ユーザー定義の置き換え文字列で置き換えま
す。
参照テーブルの一致を削除
参照テーブルの値に一致する文字列を削除します。
カスタム文字列の置換
ユーザー定義の文字列を、ユーザー定義の置き換え文字列で置き換えます。
カスタム文字列の削除
ユーザー定義の文字列を削除します。
重要: 操作の順序は変更が可能です。 各操作で前の操作の結果を読み取るため、操作の
順序によってストラテジの出力が変わることがあります。
標準化のプロパティ
標準化のストラテジや操作のプロパティを設定するには、標準化トランスフォーメーショ
ンの[ストラテジ]ビューを選択します。
ストラテジのプロパティ
ストラテジのプロパティは、ストラテジ内のすべての操作に適用されます。 設定できるス
トラテジのプロパティを次に示します。
複数のスペースの削除
連続する複数のスペースを1つのスペースに置き換えます。
末尾および先頭のスペースの削除
データ文字列の先頭および末尾からスペースを削除します。
区切り文字
検索トークンを定義する区切り文字を指定します。 例えば、[セミコロン]を選択し
た場合、標準化トランスフォーメーションで文字列"oranges;apples;"を検索する
と、"oranges"と"apples"の各文字列が検出されます。 このトランスフォーメーショ
ンは、デフォルトでスペースによるデリミタを使用します。
標準化ストラテジ
357
操作のプロパティ
以下のタイプの標準化操作のプロパティを設定できます。
参照テーブル操作
参照テーブル操作のプロパティを次に示します。
¨ 参照テーブル。 データの標準化に使用する参照テーブルを指定します。 [参照]
をクリックして参照テーブルを選択します。
¨ 大文字小文字の区別。 入力文字列を参照テーブルのエントリと照合するときに大
文字と小文字を区別するかどうかを指定します。
¨ 置換後の文字列。 参照テーブルのエントリに一致する入力文字列を、指定したテ
キストに置き換えます。 置換操作にのみ適用されます。
¨ スコープ。 参照テーブルの値を含む入力文字列の部分を指定します。
カスタム文字列操作
カスタム文字列操作のプロパティを次に示します。
¨ トークンの照合。 入力データ内で検索する検索文字列を定義します。
¨ 置換後の文字列。 指定した検索文字列に一致する入力文字列を置き換えます。 置
換操作にのみ適用されます。
¨ スコープ。 検索する入力文字列の部分を指定します。
標準化ストラテジの設定
標準化ストラテジを設定するには、標準化トランスフォーメーションの[ストラテジ]ビ
ューで設定を編集します。
1.
[ストラテジ]ビューを選択します。
2.
[新規]をクリックします。
新しいストラテジ ウィザードが開きます。
3.
[入力]フィールドをクリックして、ストラテジのポートを選択します。
4.
ストラテジのプロパティを設定し、[次へ]をクリックします。
5.
操作を選択し、[次へ]をクリックします。
6.
操作のプロパティを設定します。
7.
必要に応じて、[次へ]をクリックして、その他の操作をストラテジに追加します。
8.
ストラテジにすべての操作を追加したら、[完了]をクリックします。
9.
必要に応じて、その他のストラテジをトランスフォーメーションに追加します。
10.
358
必要に応じて、ストラテジや操作を処理する順序を変更します。 ストラテジまたは操
作を選択し、[上に移動]または[下に移動]をクリックします。
第 29章: 標準化トランスフォーメーション
標準化トランスフォーメーションの詳細プロ
パティ
Data Integration Serviceで標準化トランスフォーメーションのデータがどのように処理
されるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
標準化トランスフォーメーションの詳細プロパティ
359
第 30 章
共有体トランスフォーメーシ
ョン
この章では、以下の項目について説明します。
¨ 共有体トランスフォーメーションの概要, 360 ページ
¨ グループおよびポート, 360 ページ
¨ 共有体トランスフォーメーションの詳細プロパティ, 361 ページ
¨ 共有体トランスフォーメーションの処理, 361 ページ
¨ 共有体トランスフォーメーションの作成, 362 ページ
共有体トランスフォーメーションの概要
共有体トランスフォーメーションを使用して、複数のパイプラインまたはパイプラインブ
ランチから、1つのパイプラインブランチにデータを統合します。
共有体トランスフォーメーションは、複数の入力グループと1つの出力グループを持つアク
ティブなトランスフォーメーションです。 一致するポートを持つソースを統合し、入力グ
ループと同じポート構造を持つ出力グループを通じてデータを渡します。 共有体トランス
フォーメーションは、Developerツールで重複行を削除せずに複数のソースのデータを統合
する場合に使用します。
たとえば、アメリカ銀行とカリフォルニア銀行のカスタマアカウントデータを組み合わせ
るとします。共有体トランスフォーメーションを含むマッピングを作成し、ソースオブジ
ェクトのデータをマージし、ターゲットオブジェクトに書き込みます。
グループおよびポート
共有体トランスフォーメーションには複数の入力グループと1つの出力グループがありま
す。入力グループは作成が可能で、いくつでも作成することができます。 出力グループ
360
は、Developerツールによって1つだけ作成されます。 出力グループを作成、編集、または
削除することはできません。 各グループには一致するポートが必要です。
ポートを作成するには、トランスフォーメーションからコピーするか手動で作成します。
ポートを作成すると、Developerツールにより、各入力グループに入力ポートが作成され、
出力グループに出力ポートが作成されます。 Developerツールでは、入力ポートと出力ポ
ートのそれぞれに対してユーザーが指定した出力ポート名が使用されます。 また、データ
型、精度、位取りなどのメタデータは、ポートごとに同じものが使用されます。
入力グループは、1つのパイプラインの異なるブランチ、あるいは異なるソースパイプライ
ンから接続することができます。 共有体トランスフォーメーションをマッピングに追加す
る際には、すべての入力グループで同じポートに接続していることを確認する必要があり
ます。1つの入力グループのポートは接続していても、別の入力グループの同じポートを接
続していない場合、Data Integration Serviceは未接続のポートにNULLを渡します。
共有体トランスフォーメーションの詳細プロ
パティ
Data Integration Serviceでの共有体トランスフォーメーションのログ詳細の表示方法を
指定できるプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
共有体トランスフォーメーションの処理
共有体トランスフォーメーションを使用して、複数のパイプラインまたはパイプラインブ
ランチから、1つのパイプラインブランチにデータを統合します。Data Integration
Serviceは、すべての入力グループを並列に処理します。 また、共有体トランスフォーメ
ーションに接続されたソースを読み込むと同時に、データブロックをトランスフォーメー
ションの入力グループに渡します。 共有体トランスフォーメーションは、Data
Integration Serviceからブロックを受け取る順番に基づいてデータブロックを処理しま
す。 入力グループの入力データはブロックされません。
共有体トランスフォーメーションの詳細プロパティ
361
共有体トランスフォーメーションの作成
共有体トランスフォーメーションは、再利用可能または再利用不可能なトランスフォーメ
ーションのどちらとしても作成できます。
再利用可能な共有体トランスフォーメーションの作成
複数のマッピングまたはマプレットで使用する場合は、再利用可能な共有体トランスフォ
ーメーションを作成します。
1.
[Object Explorer]ビューで、プロジェクトまたはフォルダを選択します。
2.
[ファイル] > [新規] > [トランスフォーメーション]をクリックします。
[新規]ダイアログボックスが表示されます。
3.
共有体トランスフォーメーションを選択します。
4.
[次へ]をクリックします。
5.
トランスフォーメーションの名前を入力します。
6.
[完了]をクリックします。
トランスフォーメーションがエディタに表示されます。
7.
[新規]ボタンをクリックして、トランスフォーメーションにポートを追加します。
8.
ポートを編集して、名前、データ型、および精度を設定します。
9.
[グループ]ビューを選択します。
10.
[新規]ボタンをクリックして、入力グループを追加します。
11.
[詳細]ビューをクリックし、トランスフォーメーションのプロパティを編集しま
す。
再利用不可能な共有体トランスフォーメーションの作
成
再利用不可能なトランスフォーメーションは、特定のマッピングまたはマプレットで作成
します。
1.
マッピングまたはマプレットで、トランスフォーメーションパレットからエディタに
共有体トランスフォーメーションをドラッグします。
トランスフォーメーションがエディタに表示されます。
2.
[全般]タブで、トランスフォーメーションの名前と説明を編集します。
3.
アップストリームトランスフォーメーションのポートをすべて選択し、共有体トラン
スフォーメーションにドラッグします。ドラッグしたポートが、共有体トランスフォ
ーメーションの入力グループおよび出力グループのポートとして表示されます。
4.
[プロパティ]ビューの[グループ]タブで[新規]をクリックして、入力グループ
を追加します。
既存の入力グループと同様のポートを含む入力グループがもう1つ表示されます。
5.
362
共有体トランスフォーメーションの出力グループのポートを選択し、マッピング内の
ダウンストリームトランスフォーメーションにドラッグします。
第 30章: 共有体トランスフォーメーション
第 31 章
アップデートストラテジトラ
ンスフォーメーション
この章では、以下の項目について説明します。
¨ アップデートストラテジトランスフォーメーションの概要, 363 ページ
¨ マッピング内の行のフラグ設定, 364 ページ
¨ 個々のターゲットに対する更新オプションの指定, 366 ページ
アップデートストラテジトランスフォーメー
ションの概要
アップデートストラテジトランスフォーメーションは、挿入、更新、または拒否のフラグ
を行に設定するアクティブなトランスフォーメーションです。アップデートストラテジト
ランスフォーメーションを使用して、適用する条件に基づいてターゲットの既存の行の変
更を制御します。
アップデートストラテジトランスフォーメーションはアクティブなトランスフォーメーシ
ョンであるため、通過する行の数を変更してしまう可能性があります。アップデートスト
ラテジトランスフォーメーションは、特定の条件を満たしているかどうかを確認するため
に各行をテストし、それに応じて行にフラグを設定します。アップデートストラテジトラ
ンスフォーメーションは、挿入、更新、または削除のフラグを設定する行を次のトランス
フォーメーションに渡します。拒否のフラグが設定された行を次のトランスフォーメーシ
ョンに渡すか、拒否のフラグが設定された行を削除するか、トランスフォーメーションを
設定できます。
例えば、アップデートストラテジトランスフォーメーションを用いて、全顧客の行に対し
て、メールアドレスが変更された際に更新フラグを設定したり、 全従業員の行に対して、
社員でなくなった者については拒否フラグを設定したりできます。
363
アップデートストラテジの設定
更新方式を定義するには、以下の手順を実行します。
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)
364
第 31章: アップデートストラテジトランスフォーメーション
アップデートストラテジトランスフォーメーションの
詳細プロパティ
Data Integration Serviceでのアップデートストラテジトランスフォーメーションのデー
タの処理方法を指定するには、詳細プロパティを設定します。
[詳細]タブで、アップデートストラテジトランスフォーメーションの以下の詳細プロパ
ティを定義できます。
拒否された行の転送
アップデートストラテジトランスフォーメーションが、拒否された行を次のトランス
フォーメーションに渡すか、拒否された行を削除するかを決定します。デフォルトで
は、Data Integration Serviceは拒否された行を次のトランスフォーメーションに転
送します。Data Integration Serviceは、行に拒否のフラグを設定し、拒否ファイル
に書き込みます。[拒否された行の転送]を選択しなかった場合、Data Integration
Serviceは拒否された行を削除してマッピングログファイルに書き込みます。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
アグリゲータトランスフォーメーションとアップデー
トストラテジトランスフォーメーション
同じパイプライン内でアグリゲータトランスフォーメーションとアップデートストラテジ
トランスフォーメーションを連結する場合はアグリゲータを配置してからアップデートス
トラテジトランスフォーメーションを配置します。この順番では、Data Integration
Serviceは集計計算を実行し、計算結果を含む行に、挿入、更新、削除、または拒否のフラ
グを設定します。
アグリゲータトランスフォーメーションの前にアップデートストラテジトランスフォーメ
ーションを配置する場合は、アグリゲータトランスフォーメーションが、異なる演算子を
フラグ付された行をどのように処理するかを考慮する必要があります。この順番では、
Data Integration Serviceは挿入、更新、削除、または拒否のフラグを行に設定してから
集計計算を実行します。行にどのようにフラグを設定するかによって、アグリゲータトラ
ンスフォーメーションが計算で使用する行の値をどのように扱うかが決まります。例え
ば、行に削除のフラグを設定した後で、その行を使用して合計を計算すると、Data
Integration Serviceはこの行の値を合計から除算します。行に拒否のフラグを設定した後
で、その行を使用して合計を計算すると、Data Integration Serviceはこの行の値を合計
には加えません。行に挿入または更新のフラグを設定した後で、その行を使用して合計を
計算すると、Data Integration Serviceはこの行の値を合計に加えます。
マッピング内の行のフラグ設定
365
個々のターゲットに対する更新オプションの
指定
アップデートストラテジトランスフォーメーションを使用して特定のデータベース操作の
行ごとにフラグを設定した後、マッピング内のターゲットごとに挿入、更新、および削除
オプションを定義します。挿入または削除のフラグが設定された行に対して、挿入または
削除を禁止できます。更新のフラグが設定されたすべての行に対して更新を処理するさま
ざまな方法を選択できます。
マッピング内のターゲットデータオブジェクトの詳細プロパティでアップデートストラテ
ジオプションを定義します。次のアップデートストラテジオプションを設定できます。
挿入
ターゲットに挿入するようにフラグが設定されたすべての行を挿入します。デフォル
トでは有効になっています。
削除
ターゲットから削除するようにフラグが設定されたすべての行を削除します。デフォ
ルトでは有効になっています。
アップデートストラテジ
既存の行のアップデートストラテジ。 次のいずれかのストラテジを選択します。
¨ [更新時に更新]。更新のフラグが設定されたすべての行を更新します。これがデ
フォルト値です。
¨ [挿入時に更新]。更新のフラグが設定されたすべての行を挿入します。
¨ [更新しない場合は挿入]。更新のフラグが設定されたすべての行がターゲット内
に存在している場合、これらの行を更新した後、挿入のマークが付いている残りの
行を挿入します。
テーブルの切り詰め
データをロードする前にターゲットを切り詰めます。デフォルトでは無効になってい
ます。
366
第 31章: アップデートストラテジトランスフォーメーション
第 32 章
Webサービスコンシューマト
ランスフォーメーション
この章では、以下の項目について説明します。
¨ Webサービスコンシューマトランスフォーメーションの概要, 367 ページ
¨ WSDLの選択, 370 ページ
¨ Webサービスコンシューマトランスフォーメーションのポート, 370 ページ
¨ Webサービスコンシューマトランスフォーメーションの入力マッピング, 372 ページ
¨ Webサービスコンシューマトランスフォーメーションの出力マッピング, 376 ページ
¨ Webサービスコンシューマトランスフォーメーションの詳細プロパティ, 379 ページ
¨ フィルタの最適化, 384 ページ
¨ Webサービスコンシューマトランスフォーメーションの作成, 387 ページ
¨ Webサービスコンシューマトランスフォーメーションの例, 388 ページ
Webサービスコンシューマトランスフォーメ
ーションの概要
Webサービスコンシューマトランスフォーメーションは、Webサービスクライアントとして
Webサービスに接続し、データへのアクセスまたはデータの変換を行います。
Webサービスは、SOAP、WSDL、XMLなどのオープンスタンダードを使用します。SOAPは、Web
サービス用の通信プロトコルです。Webサービスクライアントの要求およびWebサービスの
応答は、SOAPメッセージです。WSDLは、Webサービス操作のプロトコル、形式、およびシグ
ネチャを記述するXMLスキーマです。
Webサービス操作には、情報の要求、データ更新の要求、タスク実行の要求などがありま
す。例えば、getCustomerOrdersというWebサービス操作を実行するためのSOAPリクエスト
をWebサービスコンシューマトランスフォーメーションが送信するとします。トランスフォ
ーメーションは、リクエストで顧客IDを渡します。Webサービスは、顧客情報と注文情報を
取得し、その情報をSOAPレスポンスでトランスフォーメーションに返します。
367
Webサービスコンシューマトランスフォーメーションは、WSDL、Webサービス接続、または
エンドポイントURL入力ポートで定義されたエンドポイントURLを使用してWebサービスに接
続します。Webサービス接続でWebサービスのセキュリティを有効にします。
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
メッセージを処理できます。
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サービス開発者は、
368
第 32章: Webサービスコンシューマトランスフォーメーション
さまざまなツールキットを使用してWebサービスを作成できます。ツールキットによって、
サポートされるSOAPメッセージのエンコーディング方法が異なります。
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ヘッダー内のパスワ
ードを変更しません。
Webサービスコンシューマトランスフォーメーションの概要
369
¨ PasswordDigest: Data Integration Serviceはナンスとタイムスタンプをパスワー
ドに組み合わせます。Data Integration Serviceでは、そのパスワードにSHAハッ
シュを適用してbase64エンコーディングでエンコードし、エンコードしたパスワー
ドをSOAPヘッダー内で使用します。
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型のいずれかをとる必要があります。
370
第 32章: Webサービスコンシューマトランスフォーメーション
ルート入力グループにはパススルーポートを追加できます。パススルーポートは、データ
を変更せずにトランスフォーメーションを介してデータを渡します。パススルーポート
は、入力データ内に1回しか指定できません。パススルーポートは、任意の出力グループに
追加できます。出力ポートを入力ポートに関連付けます。SOAPリクエストを通じて渡した
入力値は、SOAPレスポンスからの出力行に繰り返し出現します。
さらに、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入力ポートで定義できます。トランスフォーメーション
Webサービスコンシューマトランスフォーメーションのポート
371
がURLをポートで動的に受信すると、Data Integration ServiceはWSDLファイルまたは
Webサービス接続で定義されているURLをオーバーライドします。
Webサービスコンシューマトランスフォーメーションには、Webサービス要求ごとにURL
ポート値を1個設定できます。 エンドポイントURLポートはルート入力グループに追加
します。
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レベルのノードが入力ポートにマップされます。また、マッピングを実行するためのポ
372
第 32章: Webサービスコンシューマトランスフォーメーション
ートが作成されます。階層の第1レベルに、複数出現子ノードを伴う複数出現親ノードが含
まれている場合には、Developerツールは階層の第1レベルをマップしません。
1つの文字列またはテキスト入力ポート内のXMLデータを、完全なSOAPリクエストメッセー
ジにマップすることができます。XMLデータを完全なSOAPリクエストメッセージにマップす
る場合、ポートを操作入力内のノードにマップすることはできません。
入力ポートと操作入力内のノードを結ぶ線を表示するように選択できます。
関連項目:
¨ 「WebサービスSOAPメッセージの生成の概要」
(ページ401)
入力ポートをノードにマップするためのルールとガイ
ドライン
入力ポートを操作入力階層内のノードにマップする場合には、以下のルールを確認しま
す。
¨ 階層内の1個のノードに対して、1個の入力ポートをマップできます。同じポートを階層
内の任意の数のキーにマップできます。
¨ 入力ポートとノードのデータ型には互換性が必要です。
¨ 1つの入力グループ内のノードを、操作入力内の複数の階層レベルにマップできます。
¨ 操作入力のキーに入力ポートをマップする必要があります。キーにマップするポートの
データ型は、string、integer、またはbigintであることが必要です。操作入力内の、
SOAPメッセージに含める階層レベルより上位にある全レベルのキーに、データをマップ
します。マップするレベルと、その上位にある全レベルの外部キーを含めます。
注: 操作入力階層の最下位レベルだけをマップする場合は、入力ポートをキーにマップ
する必要はありません。
¨ string型、bigint型、またはinteger型の複数の入力ポートを[操作入力]領域のキー
にマップして、複合キーを作成できます。複合キーの[場所]フィールドをクリックし
て、入力ポートの順序を変更したり、いずれかのポートを削除したりすることができま
す。
[ビューのカスタマイズ]のオプション
[操作入力]領域にキーを表示するように、操作入力階層を変更することができます。ノ
ードの順序を定義するグループ化構造を表示することもできます。
[ビューのカスタマイズ]ボタン([操作入力]領域内)をクリックします。以下のいず
れかのオプションを有効にします。
シーケンス、選択、およびすべて
要素定義が、シーケンス、選択、すべてのいずれかであるかどうかを示す線を表示し
ます。
全グループ内のすべてのノードをSOAPメッセージ内に含める必要があります。
シーケンスグループ内のノードは、WSDL内に定義された順序で並んでいる必要があり
ます。
Webサービスコンシューマトランスフォーメーションの入力マッピング
373
選択グループ内の少なくとも1つ以上のノードが、SOAPメッセージに指定されている必
要があります。
キー
[操作入力]領域にキーを表示します。 [操作入力]領域には、各グループ用のキー
が含まれています。 [ポート]領域内の入力ポートに、キーを追加できます。
操作入力への入力ポートのマッピング
操作入力マッピングを表示している場合は、入力グループの定義、入力ポートの定義、操
作入力ノードへの入力ポートのマッピングを行うことができます。
1.
Webサービスコンシューマトランスフォーメーションを開きます。
2.
トランスフォーメーション入力マッピングを表示するには、以下のいずれかの方法を
使用します。
¨ 再利用可能なトランスフォーメーションの場合は、[概要]ビューをクリックしま
す。入力マッピングの表示を選択します。
¨ 再利用不可能なトランスフォーメーションの場合は、[ポート]タブ([プロパテ
ィ]ビュー内)をクリックします。入力マッピングの表示を選択します。
374
3.
ルート入力グループのプライマリキーを定義します。
4.
次のいずれかの方法を使用して、入力グループまたは入力ポートを[ポート]領域に
追加します。
オプショ
ン
説明
ノードをドラッグす
る
[操作入力]領域のグループノードまたは子ノ
ードを、[ポート]領域の空のカラムにドラッ
グします。 グループノードの場合、Developer
ツールによってポートのないグループが追加さ
れます。
グループまたはポー
トを手動で追加する
グループを追加するには、[新規]ボタンの隣
の矢印をクリックし、[グループ]をクリック
します。 ポートを追加するには、[新規]ボ
タンの隣の矢印をクリックし、[フィールド]
をクリックします。
別のトランスフォー
メーションからポー
トをドラッグする
エディタ内で、別のトランスフォーメーション
からWebサービスコンシューマトランスフォー
メーションへ、ポートをドラッグします。
ポートをコピーする
別のトランスフォーメーションからポートを選
択し、[ポート]領域へコピーします。 ポー
トをコピーするには、キーボードショートカッ
トを使用するか、Developerツールの[コピ
ー]ボタンと[貼り付け]ボタンを使用しま
す。
第 32章: Webサービスコンシューマトランスフォーメーション
オプショ
ン
説明
[階層の第1レベル
のマップ]を選択す
る
[階層の第1レベルのマップ]を選択します。
Developerツールによって、操作入力の第1レベ
ル内のノードが、入力ポートおよび入力グルー
プにマップされます。また、マッピングを実行
するための入力ポートと入力グループが作成さ
れます。
5.
ポートを手動で作成するか、別のトランスフォーメーションからコピーした場合は、
[操作入力]領域の[場所]カラムをクリックし、リストからポートを選択します。
6.
以下のいずれかの方法を使用して、入力ポートを複合キーとしてマップします。
7.
オプション
説明
入力ポートをドラッグする
2つ以上の入力ポートを選択し、操作
入力階層内のキーにドラッグします。
[場所の選択]ダイアログボ
ックスから入力ポートを選択
する
操作入力階層でキーの[場所]カラム
をクリックし、入力ポートを選択しま
す。
以下のいずれかの方法を使用して、ノードの場所をクリアします。
オプション
説明
[クリア]をクリックす
る
[操作入力]領域でノードを1つ以上選択
し、[クリア]をクリックします。
ポートとノードを結ぶ線
を削除する
操作入力領域で入力ポートとノードを結
ぶ線を1本以上選択し、Deleteキーを押し
ます。
8.
関連付けられているWSDLデータオブジェクト内に、anyType要素、任意の要素、
anyAttribute属性、派生型の要素、または置き換えグループが含まれている場合は、
[操作入力]領域でオブジェクトを選択します。 ノードの[タイプ]カラムで[選
択]をクリックし、リストから1つ以上のタイプ、要素、または属性を選択します。
9.
文字列入力ポートまたはテキスト入力ポートから完全なSOAPリクエストにXMLデータを
マップするには、ポートを右クリックし、[XMLとしてマップ]を選択します。
Webサービスコンシューマトランスフォーメーションの入力マッピング
375
Webサービスコンシューマトランスフォーメー
ションの出力マッピング
トランスフォーメーションのポートを表示するときに、操作出力階層を確認するには出力
マッピングを表示します。出力マッピングを表示している場合は、出力グループの定義、
出力ポートの定義、出力ポートへの操作出力ノードのマップを行うことができます。
出力マッピングは以下の領域で構成されています。
操作出力
[操作出力]領域には、WebサービスからWebサービスコンシューマトランスフォーメ
ーションに返されるSOAPレスポンスメッセージ内のノードが表示されます。トランス
フォーメーションの作成に使用するWSDLデータオブジェクトにより、操作出力階層が
定義されます。
ポート
[ポート]領域では、トランスフォーメーションの出力グループと出力ポートを作成
します。
出力ポートを作成したら、[操作出力]領域から[ポート]領域のポートへ、ノードをマ
ップします。操作出力から出力ポートへノードをマップすると、[ポート]領域の[場
所]カラムにノードの場所が表示されます。
出力階層の第1レベルをマップするよう選択すると、Developerツールによって操作出力の
第1レベルのノードが出力ポートにマップされます。また、マッピングを実行するためのポ
ートが作成されます。階層の第1レベルに、複数出現子ノードを伴う複数出現親ノードが含
まれている場合には、Developerツールは階層の第1レベルをマップしません。
出力ポートを階層構造で表示するよう選択することもできます。各子グループは親グルー
プの下に表示されます。操作出力内のノードと出力ポートを結ぶ線を表示するように選択
できます。
関連付けられたWSDLデータオブジェクトがリポジトリから削除された場合、Developerツー
ルは操作ノードの場所を出力マッピングに保持します。出力マッピングを表示すると、
[ポート]領域の出力ポートの[場所]カラムに操作ノードの場所が表示されます。別の
WSDLをトランスフォーメーションに関連付けると、Developerツールはそれぞれの場所が有
効であるかどうかを調べます。場所が有効ではなくなっている場合は、Developerツールは
[ポート]領域で操作ノードの場所をクリアします。
関連項目:
¨ 「WebサービスSOAPメッセージの解析の概要」
(ページ392)
ノードを出力ポートにマップするためのルールとガイ
ドライン
操作出力階層内のノードを出力ポートにマップする際には、以下のルールを確認します。
¨ 操作出力ノードおよび出力ポートのデータ型には互換性が必要です。
¨ グループ内の複数の出力ポートにノードをマップすることはできません。
¨ パススルーポートを除く各出力ポートには、有効な場所を指定する必要があります。
376
第 32章: Webサービスコンシューマトランスフォーメーション
¨ 複数出現子ノードを空の出力ポートにドラッグした場合、グループを他の出力グループ
に関連付ける必要があります。関連付けるグループを選択すると、Developerツールに
より、グループ間を関連付けるキーが作成されます。
¨ 複数出現要素を、親要素が含まれているグループにドラッグする場合、含める子要素の
出現回数を設定することができます。 または、親グループを、トランスフォーメーシ
ョン出力内の複数出現子グループで置き替えることもできます。
SOAPメッセージをXMLとしてマップ
データを個別の出力ポートに返す代わりに、完全なSOAPメッセージをXMLとしてマップでき
ます。
SOAPメッセージをXMLとしてマップすると、Data Integration Serviceにより完全なSOAPメ
ッセージが1個のポートに返されます。出力ポートは作成しないでください。
完全なメッセージをマップするには、[操作出力]領域でルートグループを右クリックし
ます。[XMLとしてマップ]を選択します。
Developerツールにより、文字列出力ポートが作成されます。 精度は65535バイトです。
[ビューのカスタマイズ]のオプション
[操作出力]領域内にクッキーポート、パススルーポート、およびキーを表示するよう
に、操作出力階層を変更することができます。ノードの順序を定義するグループ化構造を
表示することもできます。
[ビューのカスタマイズ]ボタン([操作出力]領域内)をクリックします。以下のいず
れかのオプションを有効にします。
シーケンス、選択、およびすべて
要素定義が、シーケンス、選択、すべてのいずれかであるかどうかを示す線を表示し
ます。
全グループ内のすべてのノードをSOAPメッセージ内に含める必要があります。
シーケンスグループ内のノードは、WSDL内に定義された順序で並んでいる必要があり
ます。
選択グループ内の少なくとも1つ以上のノードが、SOAPメッセージに指定されている必
要があります。
キー
[操作出力]領域にキーを表示します。 [操作出力]領域には、各グループのキーが
含まれています。 [ポート]領域内の出力ポートに、キーを追加できます。
パススルーポート
[操作出力]領域には、パススルーポートが表示されます。 パススルーポートとは、
トランスフォーメーションを通じて、変更を加えずにデータを渡すポートのことで
す。 操作出力内のパススルーポートを、Webサービスコンシューマトランスフォーメ
ーションの任意の出力グループへ投影することができます。 パススルーポートはデー
タを1回だけ受け取るため、SOAPメッセージ内のルートレベルにあります。
Webサービスコンシューマトランスフォーメーションの出力マッピング
377
クッキーポート
クッキーポートを表示します。 クッキー認証を設定するときに、リモートWebサービ
スサーバーは、クッキーに基づいて、Webサービスコンシューマユーザーを追跡しま
す。 Webサービスクッキーを要求メッセージ内に投射する場合、Webサービスは応答メ
ッセージでクッキー値を返します。 操作出力内のクッキー値を、Webサービスコンシ
ューマトランスフォーメーション任意の出力グループへ投影することができます。
出力ポートへの操作出力のマッピング
操作出力マッピングを表示している場合は、出力グループの定義、出力ポートの定義、出
力ポートへの操作出力ノードのマッピングを行うことができます。
1.
Webサービスコンシューマトランスフォーメーションを開きます。
2.
トランスフォーメーション出力マッピングを表示するには、以下のいずれかの方法を
使用します。
¨ 再利用可能なトランスフォーメーションの場合は、[概要]ビューをクリックしま
す。出力マッピングの表示を選択します。
¨ 再利用不可能なトランスフォーメーションの場合は、[ポート]タブ([プロパテ
ィ]ビュー内)をクリックします。出力マッピングの表示を選択します。
3.
378
以下のいずれかの方法を使用して、出力グループまたは出力ポートを[ポート]領域
に追加します。
オプショ
ン
説明
ノードをドラッグす
る
[操作出力]領域のグループノードまたは子ノ
ードを、[ポート]領域の空のカラムにドラッ
グします。 グループノードの場合、Developer
ツールによってポートのないグループが追加さ
れます。
グループまたはポー
トを手動で追加する
グループを追加するには、[新規]ボタンの隣
の矢印をクリックし、[グループ]をクリック
します。 ポートを追加するには、[新規]ボ
タンの隣の矢印をクリックし、[フィールド]
をクリックします。
別のトランスフォー
メーションからポー
トをドラッグする
エディタ内で、別のトランスフォーメーション
からWebサービスコンシューマトランスフォー
メーションへ、ポートをドラッグします。
ポートをコピーする
別のトランスフォーメーションからポートを選
択し、[ポート]領域へコピーします。 ポー
トをコピーするには、キーボードショートカッ
トを使用するか、Developerツールの[コピ
ー]ボタンと[貼り付け]ボタンを使用しま
す。
第 32章: Webサービスコンシューマトランスフォーメーション
オプショ
ン
説明
[階層の第1レベル
のマップ]を選択す
る
[階層の第1レベルのマップ]を選択します。
Developerツールによって、操作出力の第1レベ
ル内のノードが、出力ポートおよび出力グルー
プにマップされます。また、マッピングを実行
するための出力ポートと出力グループが作成さ
れます。
4.
ポートを手動で作成するか、別のトランスフォーメーションからコピーした場合は、
[ポート]領域の[場所]カラムをクリックし、リストからノードを選択します。
5.
以下のいずれかの方法を使用して、ポートの場所をクリアします。
オプション
説明
[クリア]をクリックする
[ポート]領域でポートを1つ以上選択
し、[クリア]をクリックします。
ノードとポートを結ぶ線を
削除する
操作出力のノードと出力ポートを結ぶ線
を1本以上選択し、Deleteキーを押しま
す。
6.
関連付けられているWSDLデータオブジェクト内に、anyType要素、任意の要素、
anyAttribute属性、派生型の要素、または置き換えグループが含まれている場合、
[操作出力]領域でオブジェクトを選択します。 ノードの[タイプ]カラムで[選
択]をクリックし、リストから1つ以上のタイプ、要素、または属性を選択します。
7.
完全なSOAPレスポンスメッセージをXMLとしてマップするには、[操作出力]領域でル
ートグループを右クリックし、[XMLとしてマップ]を選択します。
Webサービスコンシューマトランスフォーメ
ーションの詳細プロパティ
Webサービスコンシューマトランスフォーメーションの詳細プロパティには、追跡レベル、
汎用フォールトポート、Webサービス接続、および同時Webサービス要求のメッセージが含
まれます。
[詳細]タブで、Webサービスコンシューマトランスフォーメーションの以下の詳細プロパ
ティを定義できます。
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
Webサービスコンシューマトランスフォーメーションの詳細プロパティ
379
SOAPアクション
WSDLに定義されているSOAPアクション値を、Webサービスコンシューマトランスフォー
メーションの定数値でオーバーライドします。
汎用SOAPフォールト処理を有効にする
WSDLで定義されていないフォールトメッセージを返します。 フォールトのコードとメ
ッセージを処理する出力ポートをGenericFault出力グループ内に作成します。
以下の表に、SOAP 1.1およびSOAP 1.2のフォールト出力ポートを示します。
フォールト出力
ポート (SOAP
1.1)
フォールト出力
ポート (SOAP
1.2)
説明
フォールトコー
ド
コード*
フォールトのIDコードを返しま
す。
フォールト文字
列
理由*
フォールトメッセージ内のエラ
ーの説明を返します。
フォールト詳細
明細
WebサービスプロバイダからWeb
サービスコンシューマトランス
フォーメーションへ、汎用フォ
ールトメッセージで渡されるカ
スタム情報を返します。
フォールトアク
タ
ロール
フォールト発生の原因となった
オブジェクトに関する情報を返
します。
-
ノード
フォールトが生成されたSOAPノ
ードのURIを返します。
*コード出力ポートと理由出力ポートは階層になっています。
注: コードフォールト出力ポートを展開して、SubCodeフォールト出力ポートを1つの
レベルに抽出することができます。
HTTPエラー処理を有効にする
WebサービスからHTTPエラーを返します。GenericFault出力グループ内にHTTPエラー
出力ポートを作成します。
フォールトをエラーとして扱う
フォールトメッセージをマッピングログに記録します。 フォルトが発生すると、Data
Integration Serviceによってマッピングのエラー数が1件加算されます。このプロパ
ティを無効にすると、初期選択の最適化および最適化にプッシュインを利用できるよ
うになります。デフォルトでは有効になっています。
接続
Webサービスに接続するWebサービス接続オブジェクトを特定します。Developerツー
ルでWebサービス接続を作成します。DeveloperツールまたはAdministratorツールで
Webサービス接続を編集します。Webサービス接続を設定するときは、エンドポイント
380
第 32章: 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レスポンスのデコードを有効にします。
XMLスキーマ検証
実行時にSOAPレスポンスメッセージを検証します。[無効なXMLでのエラー]または
[検証なし]を選択します。
ソート済み入力
入力データを必ずしもすべて処理しなくても、Data Integration Serviceが出力を生
成できるようにします。 入力データが操作入力階層内のキーを基準にしてソートされ
る場合に、ソート済み入力を有効にします。
最適化にプッシュイン
最適化にプッシュインを有効にします。 [最適化にプッシュイン]プロパティの[開
く]ボタンをクリックして、フィルタ値を受け取るフィルタポートを選択します。 フ
ィルタポートごとに、Webサービス応答にフィルタリングされたカラムを含める出力ポ
ートを選択します。
副次作用あり
Webサービスが行を返す以外にいずれかの関数を実行することを示すチェックボック
ス。 Webサービスが、行を返すことに加えて、オブジェクトを変更したり他のオブジ
ェクトまたは関数と対話したりすると、Webサービスコンシューマトランスフォーメー
ションに副次作用が生じます。 副次作用により、Webサービスで、データベースの変
更、合計の増加、例外の発生、電子メールへの書き込み、または他のWebサービスの呼
び出しが行われる場合があります。 最適化にプッシュインまたは初期選択の最適化を
可能にするには、[副次作用あり]プロパティを無効にします。 デフォルトでは有効
になっています。
並行処理の有効化
複数のWebサービス要求を同時に送信できるように、Webサービスに対して複数の同時
接続を作成するには、Webサービスコンシューマトランスフォーメーションを有効にし
Webサービスコンシューマトランスフォーメーションの詳細プロパティ
381
ます。 Webサービスコンシューマトランスフォーメーションを有効にして、Webサービ
スに対して複数の同時接続を作成するときには、合計メモリ消費量の制限と同時接続
制限を設定することができます。
以下の表に、オプションを示します。
オプション
説明
並行処理の有効化
Webサービスに対して複数の同時接続を作
成します。
同時接続制限
Webサービスの同時接続の数。 デフォルト
は20です。
並行処理の合計メモリ制限
(MB)
すべての同時接続の合計メモリ割り当ての
制限。 デフォルトは100 MBです。
Webサービスのエラー処理
Webサービスコンシューマトランスフォーメーションは、SOAPフォールトとHTTPエラーをマ
ッピング内のダウンストリームに渡すように設定できます。 フォールトが発生したとき
に、そのフォールトをエラー数に加算することができます。Webサービスのエラー処理は、
トランスフォーメーションの詳細プロパティで設定します。
Webサービスは、応答メッセージを返すか、またはフォールトを返します。 フォールトは
エラーの一種です。 Webサービスでは、発生するエラーに基づいて各種のフォールトを生
成できます。
Webサービスコンシューマトランスフォーメーションは、以下のタイプのフォールトを返す
ことができます。
SOAPフォールト
WSDLによって定義されたSOAPエラー。 フォールトをWebサービス応答メッセージに含
めて返す出力エラーポートを設定します。 SOAP 1.1バインディングの場合、Data
Integration Serviceは、フォールトのフォールトメッセージ、フォールトコード、フ
ォールト文字列、フォールトアクタ要素を返します。 SOAP 1.2バインディングの場
合、Data Integration Serviceは、フォールトのフォールトメッセージ、コード、理
由、ノード、ロール要素を返します。
汎用SOAPフォールト
Webサービスは実行時に汎用SOAPフォールトを生成します。 フォールト要素は、SOAP
1.1バインディングとSOAP 1.2バインディングで異なります。 WSDLは、汎用SOAPフォ
ールトを定義しません。 汎用SOAPフォールトには、認証エラーやSOAPリクエストエラ
ーなどがあります。
HTTPエラー
トランスフォーメーション内でHTTPエラー処理を有効にすると、Developerツールによ
ってHTTPフォールト出力ポートが追加されます。 Data Integration Serviceは、1個
の文字列ポート内のWebサービスからHTTPエラーを返します。 HTTPエラーには、エラ
ーコードとメッセージが含まれます。
382
第 32章: Webサービスコンシューマトランスフォーメーション
WebサービスからのSOAPレスポンスに無効なXMLデータが含まれていた場合、Webサービスコ
ンシューマトランスフォーメーションはエラーを返します。
SOAPフォールトをエラーとして扱うかどうか、設定することができます。 [フォールトを
エラーとして扱う]を有効にした場合にSOAPフォールトが発生すると、Data Integration
Serviceによってマッピングのエラー数が1件加算されます。 フォールトはメッセージログ
に記録されます。
メッセージの圧縮
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サービスコンシューマトランスフ
ォーメーションを有効にして、Webサービスに対して複数の同時接続を作成することができ
ます。
例えば、銀行情報を問い合わせているときに、複数の行が同時に送信される並行処理が有
効になるようにWebサービスコンシューマトランスフォーメーションを設定することができ
Webサービスコンシューマトランスフォーメーションの詳細プロパティ
383
ます。 入力行が20行ある場合は、処理を高速化するために20個の要求を同時に送信できま
す。
Webサービスコンシューマトランスフォーメーションで並行処理を有効にするときは、合計
メモリ消費量の制限を設定できます。
Webサービスコンシューマトランスフォーメーションで並行処理を有効にするときは、Web
サービスの同時接続の数を設定できます。
並行処理に関するルールとガイドライン
並行処理の使用中は以下のルールおよびガイドラインを使用します。
¨ 並行処理では、ソートされた入力がWebサービスに対する複数の同時接続としてサポー
トされます。 順序付けられた出力行はサポートされません。
¨ 並行処理はデータセットが100行を超える場合に使用します。
¨ Webサービスの同時接続の数が増えないようにすることをお勧めします。 Webサービス
の同時接続の数は、オペレーティングシステムによって使用されるソケットの数に関係
します。 ソケットの数が増えると費用がかかります。
¨ 並行処理機能の使用中は、最適なパフォーマンスのために、RAMが100 MB以上のマルチ
コアプロセッサを備えたシステムを使用します。
¨ 並行処理のメモリ制限は、Webサービスの起動中に並行処理のワークフローによって消
費されるメモリを表します。
¨ Webサービスコンシューマトランスフォーメーションで並行処理を有効にするときは、
メモリ消費量の制限を設定できます。 メモリ消費量はサーバーの物理RAMを超えないよ
うにしてください。
並行処理のベストプラクティス
並行処理使用時の最適なパフォーマンスを実現するために、次のベストプラクティスに従
ってください。
¨ 並行処理の合計メモリの制限と同時接続制限のデフォルト値の変更を避ける。
¨ 100行未満のデータセットに対する並行処理の使用を避ける。
¨ 並行処理使用時のマッピングでのパススルーポートを避ける。
フィルタの最適化
フィルタを最適化すると、マッピングを通過する行数が減り、パフォーマンスが向上しま
す。 Data Integration Serviceは、初期選択の最適化と最適化にプッシュインを適用する
ことができます。
Data Integration Serviceでフィルタ最適化方式が適用されると、マッピング内でフィル
タができるだけソースの近くに移動されます。 Data Integration Serviceがマッピング内
のトランスフォーメーションの前にフィルタを移動できない場合、フィルタロジックをト
ランスフォーメーションにプッシュできる可能性があります。
384
第 32章: Webサービスコンシューマトランスフォーメーション
Webサービスコンシューマトランスフォーメーションで
の初期選択の最適化の有効化
トランスフォーメーションに副次作用がなく、フォルトをエラーとして扱うこともない場
合は、Webサービスコンシューマトランスフォーメーションで初期選択の最適化を有効にし
ます。
1.
Webサービスコンシューマトランスフォーメーションの[詳細プロパティ]ビューを開
きます。
2.
[フォルトをエラーとして扱う]をクリアします。
3.
[副次作用あり]をクリアします。
Webサービスコンシューマトランスフォーメーションに
よるプッシュイン最適化
Webサービスコンシューマトランスフォーメーションは、最適化にプッシュインによって、
フィルタポートのフィルタ値を受け取ります。 フィルタポートは、最適化にプッシュイン
を設定するときにフィルタポートとして特定する接続されていない入力ポートです。 フィ
ルタポートには、エンドユーザーのクエリにフィルタが含まれていない場合にWebサービス
がすべての行を返すようにするデフォルト値があります。 フィルタポートはパススルーポ
ートではありません。
注: フィルタフィールドは、Webサービス要求のルートグループの一部である必要がありま
す。
フィルタフィールドをパススルーポートにすることはできません。 フィルタポートの設定
時、ポートのデフォルト値がフィルタ条件の値に変わるため、パススルー出力ポートの値
が変わります。 出力パススルーポートに基づくフィルタは、予期しない結果を返します。
Webサービスコンシューマトランスフォーメーションには複数の式をプッシュすることがで
きます。 各フィルタ条件は次の形式である必要があります。
<Field> = <Constant>
フィルタ条件はANDで結合する必要があります。 フィルタ条件をORで結合することはでき
ません。
Webサービスコンシューマトランスフォーメーションによるプッ
シュイン最適化の例
SQLデータサービスは、すべての顧客の注文を返すか、ユーザーから受け取るSQLクエリに
基づいて特定の顧客の注文を返します。
SQLデータサービスには、次のコンポーネントから構成される論理データオブジェクトが含
まれています。
顧客テーブル
顧客情報が含まれるOracleデータベーステーブル。
フィルタの最適化
385
Webサービスコンシューマトランスフォーメーション
Webサービスを呼び出して顧客の最新の注文を取得するトランスフォーメーション。
Webサービスコンシューマトランスフォーメーションには、customerIDとorderNumの
入力ポートがあります。 このトランスフォーメーションには、顧客テーブルから受け
取る顧客データが含まれるパススルーポートがあります。 orderNumポートはフィルタ
ポートで、接続されていません。 OrderNumには、デフォルト値"*"があります。 Web
サービスがWebサービス要求でこの値を受け取ると、すべての注文を返します。
注文仮想テーブル
Webサービスから顧客データと注文データを受け取る仮想テーブル。エンドユーザーは
このテーブルを参照します。 注文には、顧客カラム、orderIDカラム、および顧客デ
ータと注文データが含まれます。
エンドユーザーは次のSQLクエリをSQLデータサービスに渡します。
SELECT * from OrdersID where customer = 23 and orderID = 56
クエリはマッピングを最適化するために分割されます。 初期選択の最適化が使用され、フ
ィルタロジック、customer = 23が読み込まれた顧客テーブルに移動します。 最適化にプッ
シュインが使用され、フィルタロジック、orderID = 56がWebサービスコンシューマトランス
フォーメーションのフィルタポートにプッシュされます。 Webサービスコンシューマトラ
ンスフォーメーションでは、顧客23のordersID 56が取得されます。
Webサービスコンシューマトランスフォーメーションによるプッ
シュイン最適化の有効化
トランスフォーメーションに副次作用がなく、フォルトをエラーとして扱うこともない場
合は、Webサービスコンシューマトランスフォーメーションで最適化にプッシュインを有効
にします。
1.
Webサービスコンシューマトランスフォーメーションの[詳細プロパティ]ビューを開
きます。
2.
[フォルトをエラーとして扱う]をクリアします。
3.
[副次作用あり]をクリアします。
4.
[最適化にプッシュイン]プロパティの[開く]ボタンをクリックします。
5.
[最適化された入力]ダイアログボックスで、フィルタポート名を選択します。
複数のフィルタポートを選択できます。
6.
[出力]カラムをクリックします。
7.
フィルタポートごとに、Webサービス応答にフィルタリングされたカラムを含める出力
ポートを選択します。
8.
フィルタポートのデフォルト値を入力します。
注: Webサービスコンシューマポートは、フィルタポートではない限り、デフォルト値
を設定できません。
386
第 32章: Webサービスコンシューマトランスフォーメーション
Webサービスコンシューマトランスフォーメ
ーションの作成
再利用可能または再利用不可能なWebサービスコンシューマトランスフォーメーションを作
成できます。再利用可能なトランスフォーメーションは、複数のマッピングで使用できま
す。再利用不可能なトランスフォーメーションは、単一のマッピングで使用されます。
単一のWSDLオブジェクトからSOAP 1.1バインディングとSOAP 1.2バインディングのWebサー
ビスコンシューマトランスフォーメーションを作成することができます。
1.
トランスフォーメーションを作成するには、次のいずれかの方法を使用します。
オプ
ショ
ン
説明
再利用可能
Object Explorerビューで、プロジェクトまたはフ
ォルダーを選択します。[ファイル] > [新規]
> [トランスフォーメーション]をクリックしま
す。Webサービスコンシューマトランスフォーメー
ションを選択し、[次へ]をクリックします。
再利用不可
マッピングまたはマップレットで、トランスフォ
ーメーションパレットからエディタにWebサービス
コンシューマフォーメーションをドラッグしま
す。
[新しいWebサービスコンシューマトランスフォーメーション]ダイアログボックスが
表示されます。
2.
[参照]をクリックし、Webサービスの要求メッセージと応答メッセージを定義する
WSDLデータオブジェクトを選択します。
リポジトリ内にWSDLが存在しない場合、[新しいWebサービスコンシューマトランスフ
ォーメーション]ダイアログボックスからWSDLをインポートすることができます。
3.
[参照]をクリックし、WSDLから操作を選択します。
SOAP 1.1バインディングまたはSOAP 1.2バインディングのある操作を選択できます。
4.
[次へ]をクリックします。
[操作入力へのポートのマップ]画面が表示されます。[ポート]領域には、トラン
スフォーメーションの入力グループと入力ポートが表示されます。[操作入力]領域
には、要求メッセージ階層が表示されます。
5.
入力グループと入力ポートを定義し、操作入力ノードに入力ポートをマップします。
6.
[次へ]をクリックします。
[操作出力からポートをマップ]画面が表示されます。[操作出力]領域に、応答メ
ッセージ階層が表示されます。[ポート]領域に、トランスフォーメーションの出力
グループと出力ポートが表示されます。
7.
出力グループと出力ポートを定義し、出力ポートに操作出力ノードをマップします。
8.
[完了]をクリックします。
Webサービスコンシューマトランスフォーメーションの作成
387
9.
[詳細]ビューをクリックし、トランスフォーメーションプロパティとWebサービス接
続を設定します。
関連項目:
¨ 「操作入力への入力ポートのマッピング」
(ページ374)
¨ 「出力ポートへの操作出力のマッピング」
(ページ378)
¨ 「Webサービスコンシューマトランスフォーメーションの詳細プロパティ」
(ページ
379)
Webサービスコンシューマトランスフォーメ
ーションの例
例えば、RT100製品ラインの注文情報を営業部門へ公開する必要があるとします。 営業チ
ームでは、注文の概要と注文の詳細を日常的に照会する必要があります。
仮想テーブル内に毎日の注文情報を公開する論理データオブジェクトを作成します。 読み
取りマッピングには、最新のRT100の注文を返すWebサービスコンシューマトランスフォー
メーションが含まれます。 このWebサービスコンシューマトランスフォーメーションは、
RT100製品ラインに対する毎日の注文の概要と詳細をそれぞれ返すWebサービスを使用しま
す。
入力ファイル
入力ファイルは、製品ライン番号を含むフラットファイルです。
この入力ファイルを定義する物理データオブジェクトを作成します。 ファイルには
Product_Lineというフィールドが1個含まれます。 フィールド値はRT100です。 プロパテ
ィビューのランタイムビューで、物理データオブジェクトの場所を定義します。
論理データオブジェクトモデル
所属部門のビジネスアナリストは、注文の概要と注文の詳細のテーブル構造を説明する論
理データモデルを作成します。 この論理データモデルには、Order_Summaryと
Order_Detailの論理データオブジェクトが含まれます。
論理データモデルを定義するスキーマが、アナリストによってモデリングツールで作成さ
れます。 このスキーマから論理データモデルをインポートし、Order_Summaryと
Order_Detailの論理データオブジェクトを作成します。
388
第 32章: 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サービスコンシューマトランスフォーメーションの例
389
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
390
第 32章: 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サービスコンシューマトランスフォーメーションの例
391
第 33 章
WebサービスSOAPメッセージ
の解析
この章では、以下の項目について説明します。
¨ WebサービスSOAPメッセージの解析の概要, 392 ページ
¨ トランスフォーメーションのユーザーインタフェース, 393 ページ
¨ 複数出現出力設定, 394 ページ
¨ anyType要素の解析, 396 ページ
¨ 派生型の解析, 398 ページ
¨ QName要素の解析, 399 ページ
¨ 代替グループの解析, 399 ページ
¨ SOAPメッセージ内のXML構造の解析, 399 ページ
WebサービスSOAPメッセージの解析の概要
Data Integration Serviceは、WebサービストランスフォーメーションでSOAPメッセージを
解析するときに行データを生成します。
Webサービス入力トランスフォーメーションおよびWebサービスコンシューマトランスフォ
ーメーションは、SOAPメッセージの解析を行うWebサービストランスフォーメーションで
す。
SOAPメッセージを解析するようにトランスフォーメーションを設定するには、SOAPメッセ
ージ階層と同様の構造の出力ポートを作成します。 SOAPメッセージ階層内のノードを、作
成した出力ポートにマッピングします。
正規化した出力ポートのグループ、非正規化したグループ、ピボット化したポートのグル
ープを設定することができます。 SOAPメッセージに派生型、anyType要素、または代替グ
ループが含まれる場合は、SOAPメッセージインスタンス内に出現する可能性のある型に基
づいて別の出力グループを設定することもできます。
392
関連項目:
¨ 「Webサービスコンシューマトランスフォーメーションの出力マッピング」
(ページ376)
トランスフォーメーションのユーザーインタ
フェース
WebサービスコンシューマトランスフォーメーションおよびWebサービス入力トランスフォ
ーメーションでは、ユーザーインタフェースを介して、SOAPメッセージからトランスフォ
ーメーション出力ポートにデータをマップすることができます。
次の図に、WebサービスコンシューマトランスフォーメーションにおけるSOAP 1.1メッセー
ジノードと出力ポート間のマッピングを示します。
操作領域
操作領域にはSOAPメッセージ階層が含まれています。 階層構造内の階層レベルは、複合ノ
ードまたは複数出現ノードによって設定されます。 Developerツールは階層レベルにキー
を割り当て、そのキーによって階層レベル間の親子リレーションが設定されます。
前の図に示したSOAPメッセージ階層には、次の階層レベルが含まれます。
応答または要求
応答メッセージまたは要求メッセージのルートを表すレベル。
会社名
最上位レベルの要求データ。
部門
その会社内の複数出現の部門。
従業員
従業員は、部門内の複合要素です。
トランスフォーメーションのユーザーインタフェース
393
フォールトグループ
エラーメッセージを受信するフォールトメッセージグループ。
ポート領域
SOAPメッセージの階層レベルから出力ポートへ、データをマップすることができます。出
力ポート内の各グループは、プライマリ外部キーリレーションによって、別の出力グルー
プに関連付けられている場合もあります。
前の図に示したトランスフォーメーションには、SOAPメッセージ内のノードグループに対
応する出力ポートのグループがあります。
複数出現出力設定
入力トランスフォーメーションまたはWebサービスコンシューマトランスフォーメーション
から複数出現のデータが返される場合、出力ポートを別の構成で設定することもできま
す。
正規化した出力データ、ピボット化した出力データ、または非正規化した出力データを構
成することができます。
例えば、SOAPメッセージにDepartments(部門)とEmployees(従業員)という複合要素が
含まれているとします。 各部門には、複数の従業員が含まれています。 Departmentsは
Employeesの親です。
SOAPメッセージには、以下のような要素の階層が含まれます。
Departments
Department_ID
Department_Name
Employees
Employee_ID
Employee_Name
正規化したリレーショナル出力
正規化した出力データを作成する場合、それらのデータ値は出力グループ内で反復されま
せん。 SOAPメッセージ内の階層レベルと、出力ポートのグループとの間に、1対1リレーシ
ョンを作成します。
SOAPメッセージにDepartmentsという親階層レベルと、Employeesという子階層レベルが含
まれている場合に、以下のようなポートのグループを作成するとします。
Departments
Department_Key
Department_ID
Department_Name
Employees
Department_Key
Employee_ID
Employee_Name
394
第 33章: WebサービスSOAPメッセージの解析
Department_Keyは、Employees出力グループをDepartments出力グループに関連付ける生成
キーです。
生成キー
出力グループを作成すると、その出力グループと別の出力グループとが、Developerツール
の生成キーを使用して関連付けられます。 Developerツールは、親グループと子グループ
の両方にbigint値のキーを追加します。 生成キーのキー値は、実行時にData Integration
Serviceによって作成されます。
例
SOAP階層内に次のノードがあります。
Departments
Dept_Key
Dept_Num
Dept_Name
Employees
Dept_FK
Employee_Num
Employee_Name
Departmentsの出力ポートグループを作成する場合、Departmentsノードをポート領域の空
のフィールドにマップします。Developerツールによって、次の出力グループが作成されま
す。
Departments
Dept_Num
Dept_Name
Employeesノードをポート領域の空のフィールドにマップすると、Developerツールによっ
て、EmployeesグループをDepartmentsグループに関連付けるよう求めるメッセージが表示
されます。Employeesグループを複数のグループに対して関連付けることができます。
Developerツールによって、各グループにキーが追加されます。
Developerツールによって、以下のグループと生成キーが作成されます。
Departments
Key_Departments
Dept_Num
Dept_Name
Employees
Key_Departments
Employee_Num
Employee_Name
注: 生成キーにノードをマップする必要はありません。キー値は実行時にData
Integration Serviceによって作成されます。
Developerツールは、1個の出力グループ内の複数のレベルに対して生成キーを作成できま
す。 Employeesグループに、以下のようなポートが含まれるとします。
Employees
Key_Employees
Key_Departments
Key_Managers
Employee_Num
Employee_Name
複数出現出力設定
395
Key_DepartmentsおよびKey_Managersは、親グループをポイントする生成キーです。
Key_Employeesは、Employeesグループを示す生成キーです。 Key_Employeesは、子グルー
プがEmployeesグループに関連付けられている場合に表示されます。
非正規化したリレーショナル出力
リレーショナル出力を非正規化することができます。 出力データを非正規化すると、親グ
ループ内の要素の値が、個々の子要素に対して繰り返し出現するようになります。
出力データを非正規化するには、親階層レベルから出力ポートの子グループにノードをマ
ップします。
次の例に、Employees出力グループ内のDepartment_IDおよびDepartment_Nameを示しま
す。
Employees
Department_ID
Department_Name
Employee_ID
Employee_Name
Department_IDおよびDepartment_Nameは、部門内の全従業員に対して繰り返し表示されま
す。
Department_ID
100
100
100
Department_Name
経理
経理
経理
Employee_ID
56500
56501
56509
Employee_Name
Kathy Jones
Tom Lyons
Bob Smith
ピボット化したリレーショナル出力
出力グループに表示される複数出現要素の数を指定することができます。
複数出現要素をピボット化するには、出力ポートの親グループに複数出現子要素をマップ
します。Developerツールによって、親に含める子要素の数を指定するよう求めるメッセー
ジが表示されます。
次の例に、親グループ部門内の2つのEmployee_IDインスタンスを示します。
Departments
Department_ID
Department_Name
Employee_ID1
Employee_ID2
anyType要素の解析
anyType要素は、WSDLまたはスキーマで使用されているグローバル型すべてを表します。
ノードをDeveloperツール内のポートにマップする場合、SOAPメッセージ内にanyType要素
の代わりに出現するデータ型を選択します。SOAPメッセージ内のanyType要素は、複合型ま
396
第 33章: WebサービスSOAPメッセージの解析
たはxs:stringに置き換える必要があります。 選択したデータ型ごとに、ポートグループ
を作成します。
出力ポートにデータをマップする型を選択する必要があります。WSDLまたはスキーマにグ
ローバル型が含まれない場合は、DeveloperツールによりanyType要素がxs:stringに置き
換えられます。
操作領域内で要素型を選択するには、[タイプ]カラムでanyType要素の[選択]をクリッ
クします。 利用可能な複合型およびxs:stringのリストが表示されます。
anyType要素を派生型で置き換える場合、Data Integration Serviceは一度に1つの型に対
して要素を設定します。 SOAPメッセージは基本型と派生型のデータを同時に含むことはあ
りません。
派生型の例
WSDLにanyType要素が1つ含まれています。 この要素をAddressTypeとその派生型である
USAddressTypeに置き換えます。 SOAPメッセージ階層に以下のグループがあります。
Address:AddressType (base type)
Address: AddressType
Street
City
Address:USAddressType
Street
City
State
ZipCode
(derived type)
SOAPメッセージには以下のデータが含まれています。
<address xsi: type ="AddressType">
<street>1002 Mission St.</street>
<city>san jose</city>
</address>
<address xsi:type="USAddressType">
<street>234 Fremont Blvd</street>
<city>Fremont</city>
<zip>94556</zip>
<state>CA</state>
</address>
Data Integration Serviceはxsi: AddressTypeに対して以下の1行を返します。
Street
1002 Mission St.
City
San Jose
Data Integration Serviceは、派生型xsi: USAddressTypeに対して以下の1行を返します。
Street
234 Fremont Blvd.
City
Sunnyvale
状態
CA
郵便番号
94556
型がxsi: USAddressTypeである場合、Data Integration ServiceはAddressTypeに値を設
定しません。
anyType要素の解析
397
派生型の解析
派生型を含むSOAPメッセージを解析することができます。 SOAPメッセージからデータを受
け取るポートを定義する場合、SOAPメッセージ内に出現する可能性のある型を選択しま
す。 選択した型の要素によって、作成する必要のあるポートが決まります。
例えば、WSDLにAddressTypeおよびその派生型であるUSAddressTypeが含まれるとします。
Developerツールの操作領域で、以下のようなグループを作成できます。
Address
Address: AddressType
Street
City
Address:USAddressType
Street
City
State
ZipCode
SOAPメッセージに、以下のようなデータが含まれているとします。
<address>
<street>1002 Mission St.</street>
<city>san jose</city>
</address>
<address xsi:type="USAddressType">
<street>234 Fremont Blvd</street>
<city>Fremont</city>
<zip>94556</zip>
<state>CA</state>
</address>
<address xsi:type="USAddressType">
<street>100 Cardinal Way</street>
<city>Redwood City</city>
<zip>94536</zip>
<state>CA</state>
</address>
<address>
<street>100 El Camino Real</street>
<city>Sunnyvale</city>
</address>
基本型であるAddressに対して、Data Integration Serviceから以下の行が返されます。
Street
1002 Mission St.
234 Fremont Blvd
100 Cardinal Way
100 El Camino Real
City
San Jose
Sunnyvale
Redwood City
Sunnyvale
派生型であるUSAddressに対して、Data Integration Serviceから以下の行が返されます。
Street
234 Fremont Blvd.
100 Cardinal Way
398
City
Sunnyvale
Redwood City
第 33章: WebサービスSOAPメッセージの解析
状態
CA
CA
郵便番号
94556
94536
Data Integration Serviceは、すべての住所を基本型で返します。 Data Integration
Serviceは、米国式表記の住所データを派生型で返します。 派生型には、USAddressTypeが
基本型から継承したStreet要素とCity要素も含まれています。
QName要素の解析
Data Integration ServiceでSOAPメッセージのQName要素を解析すると、スキーマで定義さ
れている名前空間プレフィックスを使用するためにスキーマの名前空間に属するQName値が
更新されます。そうでない場合は、Data Integration Serviceにより要素の値は更新され
ません。
例えば、スキーマには名前空間"http://user/test"に対して定義されている名前空間プレフィ
ックスtnsがあるとします。SOAPメッセージには、同じ名前空間に対して定義されている名
前空間プレフィックスmytnsがあります。Data Integration ServiceがQname値
mytns:myelementを解析するとき、値はtns:myElementに変更されます。
Data Integration ServiceでSOAPメッセージのQName要素を生成するとき、要素の値は更新
されません。
代替グループの解析
代替グループは、ある要素を同じグループ内の別の要素に置き替えます。 代替グループ
は、派生型とほぼ同じですが、各要素定義に代替グループ名が含まれている点で異なりま
す。
代替グループ内の特定の型から要素を受け取る、出力ポートのグループを設定することが
できます。 代替グループ内の別の型から要素を受け取る、別の出力ポートグループを設定
することもできます。
SOAPメッセージ内のXML構造の解析
SOAPメッセージには、choice、list、unionなどの要素が含まれる場合があります。
Webサービストランスフォーメーションは、これらの構造を持つSOAPメッセージを解析でき
ますが、いくつかの制限を伴います。
choice要素
choice要素の子要素は、<choice>宣言内の要素のいずれかに限定されます。
以下に、従業員または契約社員のperson要素を示します。
<xs:element name="person">
<xs:complexType>
QName要素の解析
399
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="contractor" type="contractor"/>
</xs:choice>
</xs:complexType>
</xs:element>
choice要素のマッピングは、以下の方法で行うことができます。
¨ 出力グループ内の個々のchoice要素に対して出力ポートを作成します。 一部の要素で
は、出力行にNULL値が表示されることがあります。
¨ 各choice要素に対して出力グループを作成します。 上の例の場合、employeeグループ
とcontractorグループを作成します。 Data Integration Serviceは、SOAPメッセージ
内に表示される要素に基づいて行を生成します。
list要素
list要素は、"Monday Tuesday Wednesday"などのように、単純型の値が複数含まれている
XML要素です。
Data Integration Serviceは、listを文字列値として返すことができます。 SOAPメッセー
ジにリストが含まれている場合に、リストの項目を別々の出力行にマップすることはでき
ません。マッピング内でリスト内の要素を抽出する必要がある場合には、式フォーメーシ
ョンを設定することで、リスト内の要素を個別に取り出すことができます。
union要素
union要素は、複数の型の組み合わせから成る単純型です。
以下のテキストに、size_noとsize_stringという2つの単純型を組み合わせた、Size要素
を示します。
<xs:element name="Size">
<xs:simpleType>
<xs:union memberTypes="size_no size_string" />
</xs:simpleType>
</xs:element>
Size要素を出力ポートにマップするには、そのSize要素用のポートを1つ作成します。作成
したポートを文字列として設定します。 マッピング内に別のトランスフォーメーションを
設定し、データを別のデータ型に変換することができます。
400
第 33章: WebサービスSOAPメッセージの解析
第 34 章
WebサービスSOAPメッセージ
の生成
この章では、以下の項目について説明します。
¨ WebサービスSOAPメッセージの生成の概要, 401 ページ
¨ トランスフォーメーションのユーザーインタフェース, 402 ページ
¨ ポートと階層レベルのリレーション , 404 ページ
¨ キー, 405 ページ
¨ ポートのマップ, 406 ページ
¨ 複数出現ポートのピボット化 , 408 ページ
¨ 非正規化データのマップ, 409 ページ
¨ 派生型および要素の置き換え, 411 ページ
¨ SOAPメッセージ内のXML構造の生成, 413 ページ
WebサービスSOAPメッセージの生成の概要
Data Integration Serviceでは、SOAPメッセージを生成する際に、入力データのグループ
からXMLデータが生成されます。 Webサービスコンシューマトランスフォーメーション、
Webサービスの出力トランスフォーメーション、またはフォールトトランスフォーメーショ
ンを作成する場合は、SOAPメッセージ階層にマップする入力ポートを設定します。
SOAPメッセージを生成するようにトランスフォーメーションを設定するには、入力ポート
のグループを作成し、各グループをSOAPメッセージ階層内のグループにマップします。
SOAPメッセージの構造は、WSDLまたはスキーマで定義されます。
SOAPメッセージ内のデータのグループを、非正規化入力データから設定することができま
す。 また、複数出現入力データを、SOAPメッセージ内の複数出現ノードにピボット化する
こともできます。
データは、SOAPメッセージ内の派生型、anyType要素、または置き換えグループにマップで
きます。トランスフォーメーションを定義するときに、SOAPメッセージに出現可能な型を
選択する必要があります。 選択した型によって、作成が必要となる入力ポートが決まりま
す。
401
DeveloperツールでSOAPメッセージ階層を表示すると、階層にキーが含まれていることがわ
かります。 このキーは、SOAPメッセージには現れません。 Data Integration Serviceで
は、このキーを使用して、SOAPメッセージ内のグループ間に親子リレーションが定義され
ます。 キー値を設定するには、SOAPメッセージ内のキーに入力データをマップします。
関連項目:
¨ 「Webサービスコンシューマトランスフォーメーションの入力マッピング」
(ページ372)
トランスフォーメーションのユーザーインタ
フェース
Webサービスの出力トランスフォーメーション、フォールトトランスフォーメーション、お
よびWebサービスコンシューマトランスフォーメーションには、SOAPメッセージを設定する
ために使用できるユーザーインタフェースが含まれています。
SOAPメッセージを生成するようにトランスフォーメーションを設定するには、SOAPメッセ
ージ階層に似た構造内で入力ポートを作成します。 階層の構造は、WSDLまたはスキーマに
よって決まります。 各入力ポートをSOAPメッセージ内のノードにマッピングします。
以下の図は、Webサービスの出力トランスフォーメーションにおける入力ポートとSOAPメッ
セージノードの間のマッピングを示しています。
[入力ポート]領域
入力ポートのグループを[入力ポート]領域で作成します。 SOAPメッセージ階層内の各レ
ベルについて、マッピングが必要な入力ポートを組み込みます。
ResponseまたはRequest入力グループと、データを受け取る子グループを作成する必要があ
ります。
402
第 34章: WebサービスSOAPメッセージの生成
入力ポートグループを作成する際に、各親グループでプライマリキーを定義します。 各子
グループで外部キーを定義します。 外部キーによって、グループが親グループに関連付け
られます。
WSDLルートレベルでデータを渡すことがなければ、ResponseレベルまたはWSDLルートレベ
ルでキーを定義する必要はありません。 例えば、ルートレベルにHTTPヘッダーが含まれて
いる場合があります。
以下に示す顧客と注文のグループに似たポートのグループを作成するとします。
Response
Response_Key
Customer_Details_Root
Key_Cust_Det
FK_Response_Key
Customer
Customer_ID
FK_Cust_Det
Name
Address
Orders
Order_Num
FK_Cust_ID
Order_Items
Order_Num
Item
Count
Price
操作領域
[操作]領域には、WSDLまたはスキーマで定義されているSOAPメッセージ階層内の要素が
表示されます。 SOAPメッセージに、WSDLまたはスキーマの要素がすべて含まれているとは
限りません。 メッセージには、入力ポートからマップしたデータが含まれています。
複数出現ノードおよび複合ノードによって、SOAPメッセージ構造の階層レベルが定義され
ます。 Developerツールにより、これらのレベルにキーが追加されてレベル間の親子リレ
ーションが作成されます。 リーフレベルを除く階層内のすべてのレベルには、プライマリ
キーが設定されます。各子レベルには、親レベルへの外部キーが設定されます。 SOAPメッ
セージ階層に見られるキーは、SOAPメッセージインスタンスには現れません。 Data
Integration Serviceでは、SOAPメッセージ生成時にデータのレベルを関連付けるために、
キーの値が必要となります。
[場所]カラムには、グループ名およびSOAPメッセージ内の要素のデータを含んでいる入
力ポートが表示されます。 入力ポートをノードにマップするまで、[場所]カラムは空白
です。
前出の図では、SOAPメッセージに顧客詳細および注文の単一インスタンスが含まれていま
す。 Ordersグループには、Orderという複数出現要素が含まれています。 SOAPメッセージ
階層では、以下のレベルがキーで関連付けられています。
Response
GetCustomerDetailsResponse
GetCustomerDetailsResult
トランスフォーメーションのユーザーインタフェース
403
Orders
Order
Responseレベルは、レスポンスメッセージのルートを表します。 Data Integration
Serviceでは、SOAPメッセージにヘッダーを添付するためにこのレベルが必要となります。
GetCustomerDetailsResponseレベルは、メッセージのルートです。
ポートと階層レベルのリレーション
入力ポートをSOAPメッセージ階層にマップする場合は、入力グループとSOAPメッセージ階
層レベルの間のリレーションを維持します。例えば、Department(部門)とEmployee(従
業員)の2つのグループがあるとします。
Department入力グループは、以下の行を受け取ります。
Dept_num
101
102
名前
HR
Product
場所
New York
California
Employee入力グループは、以下の行を受け取ります。
Dept_num
101
101
102
102
Employee
Alice
Bob
Carol
Dave
Employeeグループの部門番号を、DepartmentグループとEmployeeグループの間にリレーシ
ョンを確立する外部キーとしてマップします。部門番号は、部門階層レベルに出現します
が、従業員レベルでは出現しません。
SOAPメッセージには、以下のXML構造が格納されます。
<department>
<dept_num>101</dept_num>
<name>HR</name>
<location>New York</location>
<employee>
<name>Alice</name>
</employee>
<employee>
<name>Bob</name>
</employee>
</department>
<department>
<dept_num>102</dept_num>
<name>Product</name>
<location>California</location>
<employee>
<name>Carol</name>
</employee>
404
第 34章: WebサービスSOAPメッセージの生成
<employee>
<name>Dave</name>
</employee>
</department>
キー
SOAPメッセージ階層にはキーが含まれています。 Data Integration Serviceでは、SOAPメ
ッセージ内でXML階層を構築するために、キー値が必要となります。
入力ポートデータを、SOAPメッセージ階層内のキーにマップする必要があります。データ
を提供する各レベルのキーに、データをマッピングします。 複数出現ノードがある場合
は、ノードを親に関連付ける必要があります。
SOAPメッセージ内では、キーが型のない状態で出現します。 キーにマッピングするポート
のデータ型は、string、integer、またはbigintであることが必要です。 親グループのプ
ライマリキーと各子グループの外部キーは、データ型、精度、および位取りが同じである
必要があります。生成されたキーをSOAPメッセージキーにマップできます。
ポートは、ノードおよび同じ階層レベルにあるキーにマップできます。例えば、
Employee_IDをSOAPメッセージ内のノードにマップし、さらにEmployeeレベルのキーにマ
ップします。
階層内の2つのグループノードに親子リレーションがある場合は、以下のタスクを実行しま
す。
¨ 親ノードグループのプライマリキーにポートをマップします。
¨ 子ノードグループの外部キーにポートをマップします。
プライマリキーを入力ポートにマップして、プライマリキーがNullである行またはプライ
マリキーが重複している行を削除することもできます。
同じキーに複数のポートをマップすることで、SOAPメッセージ内に複合キーを作成できま
す。複合キーは、データを非正規化し、かつ複数出現する値の組み合わせに対して一意の
キーを維持する必要がある場合に使用します。 string値、bigint値、またはinteger値を
含む複合キーを作成できます。
注: 操作マッピングに式トランスフォーメーションを組み込んで、キー値を生成すること
ができます。
複合キーの例
以下に示すポートのグループから、一意の事業部(Division)-部門(Department)キーを
設定します。
Company
Company_Num
Company_Name
Division
Company_Num
Divison_Num
Division_Name
キー
405
Department
Division_Num
Dept_Num
Dept_Name
Location
Dept_Numは事業部内では一意ですが、会社内の全事業部で一意ではありません。
事業部と部門の情報を含んだDepartmentグループを設定することができます。 事業部番号
と部門番号を複合キーの一部として設定します。
Department
Division_Num + Dept_Num (key)
Dept_Name
Location
ポートをマップした順序によって、キー値が決まります。
ポートのマップ
入力ポートを作成したら、各入力ポートをSOAPメッセージ階層にマップします。ポートの
場所は、[操作]領域でノードの横に表示されます。
ポートは以下のタイプのノードにマップできます。
アトミックノード
子がなく分割不可能な単純要素または属性。
複数出現アトミックノード
階層内の同じ場所で複数回出現する単純要素または属性。
複合ノード
他の要素を含んでいる要素。
親ノードに場所がない場合は、入力グループ名が親ノードの場所として受け取られます。
親ノードに場所がある場合は、階層レベル内の各ノードが同じ場所から出力場所を得る必
要があります。
入力グループ名を、階層レベルの親ノードにマップできます。Developerツールにより、階
層内の親ノードの場所フィールドが更新されます。 階層内でグループに属している子ノー
ドは更新されません。 入力ポートを子ノードにマップする場合は、各入力ポートが親ノー
ドと同じ場所であることが必要です。
入力グループを階層レベルにマッピングした後に、入力グループを変更することができま
す。 [クリア]をクリックするか、[ポート]領域と[操作]領域の間の線を削除するこ
とができます。 線を削除するには、線のポインタをドラッグして対象の線を選択します。
[削除]をクリックします。
406
第 34章: WebサービスSOAPメッセージの生成
ポートのマップ
ポートをSOAPメッセージ内のノードにマップする場合は、ポートをマップするノードのタ
イプによって、Developerツールでの結果が変わります。
以下の表に、[操作]領域で単一ポートを各種のターゲットノードにマップした場合の結
果を示します。
ターゲッ
トノード
結果
アトミッ
クノード
単一ポートをノードおよび場所を持たない親ノードにマップし
た場合、そのノードはポートの場所を受け取ります。親ノード
の場所には、単一ポートの入力グループの場所が入ります。 単
一ポートをノードおよび場所を持つ親ノードにマップした場合
は、親ノードの場所を変更し、同じレベルにある他の子ノード
の場所をクリアすることができます。階層レベルの場所は、ポ
ートのグループ名に変わります。
複数出現
アトミッ
クノード
またはそ
のノード
のプライ
マリキー
単一ポートを複数出現アトミックノードにマップした場合は、
Developerツールによってアトミックノードの場所が選択した
ポートのグループに設定されます。
複合ノー
ド
単一ポートを複合ノードにマップした場合は、Developerツー
ルによって複合ノードの場所がポートを含んでいるグループの
場所に設定されます。Developerツールから、ポートの割り当
て先となる単独出現アトミックノードを指定するように求めら
れます。
すべての単独出現アトミックノードに場所がある場合は、複合
ノードをマップできません。
グループのマップ
入力グループをSOAPメッセージ内のノードにマップする場合は、ポートをマップするノー
ドのタイプによって、Developerツールでの結果が変わります。
以下の表に、[操作]領域でグループをノードにマップした場合の結果を示します。
ターゲットノード
結果
アトミックノード
アトミックノードにグループをマップすることはでき
ません。
複数出現アトミッ
クノード
ノードとプライマリキーの場所を更新するために、入
力グループ内のポートを選択するように要求されま
す。
複数出現複合ノー
ド
Developerツールにより、複合ノードの場所がグルー
プの場所に設定されます。
ポートのマップ
407
複数のポートのマップ
複数のポートをSOAPメッセージ内のノードにマップする場合は、ポートをマップするノー
ドのタイプによって、Developerツールでの結果が変わります。同じグループからマッピン
グを行う場合は、複数のポートを同時にマップできます。
以下の表に、複数ポートをノードにマップした場合のノードの結果を示します。
ターゲッ
トノード
結果
単一のア
トミック
ノード
複数のポートを単一ノードにマップした場合は、[操作]領域
で複数の単一アトミックノードの場所を更新します。階層のレ
ベルに十分な数の更新対象ノードがない場合は、Developerツー
ルによって存在するノードにのみポートがマップされます。
複数出現
アトミッ
クノード
複数のポートを複数出現アトミックノードにマップする場合
は、ポートをそのノードの複数の出現箇所にピボット化しま
す。Developerツールにより、マップしたポートの数に基づいて
ノードのインスタンスが作成されます。投影したポートの数を
示すメッセージが表示されます。
複数出現
複合ノー
ド
複数のポートを複合ノードにマップする場合は、更新対象とな
る単独出現アトミックノードを選択する必要があります。ポー
トをそのノードの複数の出現箇所にピボット化します。
Developerツールにより、マップしたポートの数に基づいてノー
ドのインスタンスが作成されます。
複数出現ポートのピボット化
複数の入力ポートを、SOAPメッセージ内の複数出現ノードにマップできます。Developerツ
ールにより、入力データがSOAPメッセージ内の複数のノードにピボット化されます。
ピボット化する要素の数を変更するには、[マップオプション]ダイアログボックスで
[既存のピボット化のオーバーライド]を選択します。
ピボット化されたポートインスタンスの1つを[ポート]領域から削除すると、Developer
ツールによってすべてのインスタンスが[操作]領域から削除されます。
ピボット化の例
入力グループに以下の行があるとします。
Num
101
102
名前
HR
製品
場所
New York
California
emp_name1
Alice
Carol
emp_name2
Tom
Tim
emp_name3
Bob
Dave
各行には、部門番号と3人の従業員名が含まれています。
Employeeは、SOAPメッセージ階層内の複数出現ノードです。 Employeeのすべてのインスタ
ンスを、入力行からSOAPメッセージ階層にマップできます。 Employeeのすべての出現箇所
408
第 34章: WebサービスSOAPメッセージの生成
を選択します。 [マップ]をクリックします。[マップオプション]ダイアログボックス
で、一覧からノードを選択するように求められます。
Developerツールにより、SOAPメッセージ階層でEmployeeノードが複数のnameノードを含
むように変更されます。
Department
num
name
location
Employee
(unbounded)
emp_name1
emp_name2
emp_name3
SOAPメッセージから以下の階層が返されます。
<department>
<num>101</num>
<name>HR</name>
<location>New York</location>
<employee>
<emp_name>Alice</name>
</employee>
<employee>
<emp_name>Tom</name>
</employee>
<employee>
<emp_name>Bob</name>
</employee>
</department>
<department>
<num>102</num>
<name>Product</name>
<location>California</location>
<employee>
<emp_name>Carol</name>
</employee>
<employee>
<emp_name>Tim</name>
</employee>
<employee>
<emp_name>Dave</name>
</employee>
</department>
非正規化データのマップ
非正規化データをマップし、SOAPメッセージ内の正規化ノードに渡すことができます。
非正規化データをマップする場合は、1つの入力グループからSOAPメッセージ階層内の複数
のノードにデータを渡します。SOAPメッセージ内に、以下のタイプのリレーションに似た
グループリレーションを作成することができます。
線形ノードリレーション
ノードAはノードBの親であり、ノードBはノードCの親であり、ノードCはノードDの親
です。
非正規化データのマップ
409
階層ノードリレーション
ノードAはノードBの親であり、ノードCの親でもあります。ノードBとノードCの間に関
連はありません。
以下の表に、事業部と部門の非正規化データを含んでいる入力行を示します。
Division
01
01
01
01
02
Dept_Num
100
100
101
101
102
Dept_Name
経理
経理
Engineering
Engineering
Facilities
Phone
3580
3580
3582
3582
3583
Employee_Num
2110
2113
2114
2115
2116
Employee_Name
Amir
Robert
Stan
Jim
Jose
入力データには、一意の従業員番号および名前が含まれています。 事業所データと部門デ
ータは、同じ部門および事業部に所属する従業員ごとに繰り返されます。
線形グループリレーション
ポートを設定する際に、Division、Department、およびEmployeeに別々のグループを設定
できます。 DivisionはDepartmentの親であり、DepartmentはEmployeeの親です。 以下の
線形構造でグループを設定できます。
Division
Division_Key
Division_Num
Division Name
Department
Department_Key
Division_FKey
Dept_Num
Dept_Name
Phone
Employee
Department_Fkey
Employee_Num
Employee_Name
SOAPメッセージにはDivisionおよびDepartmentの一意のインスタンスが含まれますが、
Division_NumとDept_Numは入力データ内で繰り返し出現します。 Division_Numを
Divisionグループのプライマリキーとして定義します。 Dept_NumをDepartmentグループの
プライマリキーとして定義します。
階層グループリレーション
Division親グループおよびDepartmentとEmployeeの各子グループで構成されるグループ階
層を作成することができます。 DepartmentとEmployeeの間には、プライマリキーと外部キ
ーのリレーションがありません。 DepartmentとEmployeeは、Divisionの子です。 これら
のグループは、以下の構造で設定することができます。
Division
Division_Key
Division_Num
Division_Name
Department
Division_FKey
Dept_Num
410
第 34章: WebサービスSOAPメッセージの生成
Dept_Name
Employee
Division_FKey
Employee_Num
Employee_Name
派生型および要素の置き換え
入力ポートは、SOAPメッセージ内の派生複合型、anyType要素、および置き換えグループに
マップできます。SOAPメッセージには、基本型および派生型の要素を組み込むことができ
ます。
型リレーションでは、基本型は別の型の派生元となる型です。 派生型は、基本型から要素
を継承します。 拡張複合型は基本型から要素を継承する派生型であり、追加の要素を含ん
でいます。限定複合型は、基本型からの要素の一部を制限している派生型です。
派生型の生成
WSDLまたはスキーマに派生型が含まれている場合は、SOAPメッセージに追加する型を選択
する必要があります。
例えば、WSDLで基本型AddressTypeが定義されているとします。 このWSDLには、
AddressTypesから派生したUSAddressTypeとUKAddressTypeも含まれています。
各型には以下の要素が含まれています。
¨ AddressType:street、city
¨ USAddressType(AddressTypeを拡張したもの):state、zipCode
¨ UKAddressType(AddressTypeを拡張したもの):postalCode、country
[操作]領域でUSAddressTypeを選択すると、DeveloperツールによってUSAddressType要
素のグループがSOAPメッセージ内に作成されます。 このグループには、基本の住所から
streetとcityが取り込まれ、USAddressのstateとzipCodeが取り込まれます。 基本型を拡
張した派生型には、必ず基本型の要素が含まれます。
選択可能なすべての派生型をSOAPメッセージ用に選択すると、Developerツールによって以
下のようなグループがSOAP階層内に作成されます。
Address
Address: Address
Street
City
Address:USAddressType
Street
City
State
ZipCode
Address: UKAddressType
Street
City
派生型および要素の置き換え
411
PostalCode
Country
Address、USAddress、およびUKAddress用に入力ポートグループを定義する必要がありま
す。
anyType要素および属性の生成
スキーマ要素および属性のなかには、SOAPメッセージに対してAny型のデータを許可するも
のがあります。
anyType要素は、グローバルに認識されるすべての型を表す選択肢です。 ポートをSOAPメ
ッセージのanyType要素にマップする前に、利用可能な複合型またはxs:stringを選択しま
す。WSDLまたはスキーマに複合型が含まれない場合は、DeveloperツールによりanyType要
素型がxs:stringに置き換えられます。
操作領域内で要素型を選択するには、[タイプ]カラムでanyType要素の[選択]をクリッ
クします。 利用可能な複合型およびxs:stringのリストが表示されます。
以下の要素および属性は、Any型のデータを許可します。
anyType要素
要素を関連するXMLファイル内の任意のデータ型にすることができます。
anySimpleType要素
要素を関連するXMLファイル内の任意のsimpleTypeにすることができます。
ANY内容要素
要素をスキーマで定義されている任意のグローバル要素にすることができます。
anyAttribute属性
要素をスキーマで定義されている任意の属性にすることができます。
置き換えグループの生成
置き換えグループを使用して、SOAPメッセージ内のある要素を別の要素に置き換えること
ができます。 置き換えグループは派生型とほぼ同じように機能しますが、要素定義に置き
換えグループ名が組み込まれる点が異なります。
例えば、基本型Addressおよび派生型USAddressとUKAddressがあるとします。
xs:element name="Address" type="xs:string"/>
<xs:element name="USAddress" substitutionGroup="Address"/>
<xs:element name="UKAddress" substitutionGroup="Address"/>
SOAPメッセージ階層を設定する際に、SOAPメッセージ内でAddressに置き換わる要素を選択
することができます。
412
第 34章: WebサービスSOAPメッセージの生成
SOAPメッセージ内のXML構造の生成
WSDLまたはスキーマには、choice要素、list要素、またはunion要素が含まれている場合が
あります。 Webサービスのトランスフォーメーションで、これらの要素を含んだSOAPメッ
セージを生成することができます。
choice要素
choice要素の子要素は、<choice>宣言内の要素のいずれかに限定されます。
choice要素を含んでいるSOAPメッセージにポートをマップするには、choice構造のすべて
の要素が含まれている入力グループを1つ作成します。例えば、品目の説明が寸法または重
量であるとします。
item: description, choice {dimension, weight}
説明が寸法である場合、その説明は、長さ、幅、高さで構成される複合型です。
説明が重量である場合、その説明は単純な文字列型です。
この入力データのカラムと行は以下のとおりです。
description
box
coffee
length
20cm
NULL
width
18cm
NULL
height
15cm
NULL
weight
NULL
500g
SOAPメッセージには、寸法または重量の説明が入ったItemグループが含まれています。
Item
Description
Dimension
Length
Width
Height
Weight
入力データがNULL値であると、XML出力の要素が欠落します。
SOAPメッセージには以下のデータが含まれています。
<item>
<desc>box</desc>
<dimension>
<length>20cm</length>
<width>18cm</width>
<height>15cm</height>
</dimension>
</item>
<item>
<desc>coffee</desc>
<weight>500g</weight>
</item>
SOAPメッセージ内のXML構造の生成
413
list要素
listは、同じ要素または属性に複数の単純型値を入れることのできるXML要素です。 Data
Integration Serviceでは、入力データ内のlistが統合された一連のデータとして表されて
いる場合に、listを処理できます。
list内の各項目が個別の要素である場合(ClassDates1、ClassDates2、ClassDates3な
ど)、Data Integration Serviceではそれらの項目をlistとして処理できません。 SOAPメ
ッセージでlistを返す必要がある場合は、式トランスフォーメーションを使用してこれら
の項目を文字列へと統合できます。
以下の入力行には、曜日で構成されるClassDatesというlist要素が含まれています。
CourseID
Math 1
History 1
Name
Beginning Algebra
World History
ClassDates
Mon Wed Fri
Tue Thu
Data Integration Serviceでは、以下のXML構造のSOAPメッセージが返されます。
<class>
<courseId>Math 1</courseId>
<name>Beginning Algebra</name>
<classDates>Mon Wed Fri</classDates>
</class>
<class>
<courseId>History 1</courseId>
<name>World History</name>
<classDates>Tue Thu</classDates>
</class>
union要素
union要素は、複数の型の組み合わせから成る単純型です。 SOAPメッセージにunion要素が
含まれている場合は、文字列のデータを含んだ単一の入力ポートをマップする必要があり
ます。
例えば、SOAPメッセージにsizeという要素が含まれているとします。 sizeは、整数と文字
列のunionです。
<xs:element name="size">
<xs:simpleType>
<xs:union memberTypes="size_no size_string" />
</xs:simpleType>
</xs:element>
入力行には、説明とサイズが指定された品目が含まれています。 品目には、42などの数値
のサイズが指定されている場合があります。 あるいは、large、medium、smallなどの文字
列値のサイズが指定されている場合もあります。
以下の表に、数値のサイズと文字列のサイズが含まれている入力行を示します。
Desc
shoes
shirt
414
Size
42
large
第 34章: WebサービスSOAPメッセージの生成
品目サイズに対して1つのポートを作成します。 ポートを文字列としてマップします。
SOAPメッセージには以下の要素が格納されます。
<item>
<desc>shoes</desc>
<size>42</size>
</item>
<item>
<desc>shirt</desc>
<size>large</size>
</item>
SOAPメッセージ内のXML構造の生成
415
第 35 章
加重平均トランスフォーメー
ション
この章では、以下の項目について説明します。
¨ 加重平均トランスフォーメーションの概要, 416 ページ
¨ 加重平均トランスフォーメーションの構成, 416 ページ
¨ 加重マッチ率の例, 417 ページ
¨ 加重平均トランスフォーメーションの詳細プロパティ, 417 ページ
加重平均トランスフォーメーションの概要
加重平均トランスフォーメーションはパッシブトランスフォーメーションであり、複数の
一致操作からの一致スコアを読み取って、単一の一致スコアを生成します。
加重平均トランスフォーメーションに投入する各スコアに対し、数値の加重を適用するこ
とができます。加重はゼロから1の間の値です。各入力スコアに適用される加重を編集する
ことで、出力スコアへの影響度を増やしたり減らしたりすることができます。 重複分析で
各データカラムの相対的な重要度を反映した加重を適用します。
比較トランスフォーメーションをマッピングまたはマプレットに追加する際は、加重平均
トランスフォーメーションを使用します。
注: 加重を一致トランスフォーメーションで割り当てることもできます。 一致ストラテジ
の設定や1つのトランスフォーメーションでの加重の割り当てには、一致トランスフォーメ
ーションを使用します。 一致トランスフォーメーションに一致マプレットを組み込むこと
ができます。
加重平均トランスフォーメーションの構成
加重平均トランスフォーメーションを使用し、マッピングが一連の一致分析操作で生成す
る、全般的なマッチ率を調整できます。各入力ポートの相対加重を編集し、ソースデータ
416
セットに定義したデータ比較の優先順位を反映します。加重平均トランスフォーメーショ
ンの各入力ポートは、比較トランスフォーメーションストラテジからのマッチ率出力を表
しています。
以下の手順は、比較トランスフォーメーションを使用するマップレットまたはマッピング
で再利用不可能な加重平均トランスフォーメーションを構成する処理を説明しています。
1.
一致分析マップレットまたはマッピングを開き、比較トランスフォーメーションの加
重平均トランスフォーメーションダウンストリームを追加します。
2.
比較トランスフォーメーションからのスコア出力を加重平均トランスフォーメーショ
ン入力ポートに接続します。
マップレットやマッピングにあるその他の比較トランスフォーメーションに対して、
この手順を繰り返します。
3.
加重平均トランスフォーメーションで[ポート]タブを選択します。
4.
各入力の[加重]フィールドをダブルクリックし、0.001から1の間で加重値を入力しま
す。 加重値は、トランスフォーメーションにおけるその他の入力と比較した場合の、
入力スコアの相対的な重要性を反映したものである必要があります。
5.
マップレットまたはマッピングを保存します。
加重マッチ率の例
一致分析マッピングを作成し、顧客データベースで重複する顧客名の数を決定します。2つ
の比較トランスフォーメーションを追加し、データセットの[郵便番号]カラムおよび[姓]
カラムのマッチ率を生成します。
多くのレコードには一致する郵便番号がありますが、一致する姓のあるレコードの数はそ
れよりもかなり少なくなります。これらのマッチ率の平均を算出するときは、より一意性
の高い一致の重要性を強調する必要があります。
姓のマッチ率の重要性を強調するには、[姓]マッチ率に対してより高い加重を適用しま
す。
例えば、姓スコア入力の[加重]値を0.8に設定し、郵便番号スコア入力の[加重]値を0.4
に設定します。
加重平均トランスフォーメーションの詳細プ
ロパティ
Data Integration Serviceで加重平均トランスフォーメーションのデータがどのように処
理されるかを特定するためのプロパティを設定します。
ログに表示するトレースレベルを設定できます。
[詳細]タブでは、以下のプロパティを設定します。
加重マッチ率の例
417
トレースレベル
このトランスフォーメーションのログに表示される情報の詳細度。Terse、Normal、
Verbose Initialization、Verbose dataから選択できます。デフォルトは[Normal]
です。
418
第 35章: 加重平均トランスフォーメーション
付録 A
トランスフォーメーションの
区切り文字
¨ トランスフォーメーションの区切り文字の概要, 419 ページ
トランスフォーメーションの区切り文字の概
要
トランスフォーメーションの区切り文字は、データ文字列間の区切りを示します。
次の表に、データ文字列の解析や書き込みを行う際にトランスフォーメーションで使用す
る区切り文字を示します。
区切り文字の名称
区切り文字記号
アットマーク
@
カンマ
,
ダッシュ
-
二重引用符
"
スラッシュ
/
ピリオド
.
シャープ
#
パイプ
|
セミコロン
;
単一引用符
'
419
420
区切り文字の名称
区切り文字記号
スペース
[Spaceキー]
タブ
[Tabキー]
下線
_
付録 A: トランスフォーメーションの区切り文字
索引
A
G
anyAttribute属性
Webサービスコンシューマトランスフォーメーション
372, 376
anyType
ポートのマップ 412
anyType要素
Webサービスコンシューマトランスフォーメーション
372, 376
解析 397
any要素
Webサービスコンシューマトランスフォーメーション
372, 376
APIメソッド
Javaトランスフォーメーション 202
generateRowメソッド
Javaトランスフォーメーション
getBytesメソッド
Javaトランスフォーメーション
getDoubleメソッド
Javaトランスフォーメーション
getInRowTypeメソッド
Javaトランスフォーメーション
getIntメソッド
Javaトランスフォーメーション
getLongメソッド
Javaトランスフォーメーション
getMetadaメソッド
Javaトランスフォーメーション
getResultDataTypeメソッド
Javaトランスフォーメーション
getResultMetadataメソッド
Javaトランスフォーメーション
getStringBufferメソッド
Javaトランスフォーメーション
gzip
SOAPメッセージの圧縮 383
C
choice要素
SOAPメッセージの解析 399
Webサービスコンシューマトランスフォーメーションの
表示 373, 377
説明 413
D
Data Integration Service)
再起動モード 210
defineJExpression
Java式のAPIメソッド 222
defineJExpressionメソッド
Javaトランスフォーメーション 203
E
EDataTypeクラス
Java式 221
F
failSessionメソッド
Javaトランスフォーメーション 204
205
225
225
205
225
225
206
226
226
226
H
HTTPエラー出力
Webサービスコンシューマトランスフォーメーションの
有効化 379
HTTPヘッダー
Webサービスコンシューマトランスフォーメーションへ
の追加 371
I
IDマッチング
一致トランスフォーメーション 282
incrementErrorCountメソッド
Javaトランスフォーメーション 207
Informatica Data Director for Data Quality
不良レコードの例外 71
invokeJExpression
APIメソッド 218
invokeJExpressionメソッド
Javaトランスフォーメーション 207
isNullメソッド
Javaトランスフォーメーション 209
421
isResultNullメソッド
Javaトランスフォーメーション 227
J
Javaコード
Javaトランスフォーメーション 186
エラーの検出 200
Javaコードのコンパイル
[コード全体]タブ 194
Javaコードスニペット
Javaトランスフォーメーション用に作成 188
Javaコードの生成
Java式 217
Java式
EDataTypeクラス 221
invokeJExpression APIメソッド 218
Javaコードの生成 217
Javaトランスフォーメーション 214
JExpressionクラス 223, 224
JExprParaMetadataクラス 222
[関数の定義]ダイアログボックスで作成 217
関数の設定 216
高度なインタフェース 220
高度なインタフェースを使用した呼び出し 220
高度なインタフェースの例 223
作成 216
生成 216
設定 216
単純なインタフェース 218
単純なインタフェースの例 219
単純なインタフェースを使用した呼び出し 218
呼び出し 207
呼び出しに関するルールおよびガイドライン 207
ルールおよびガイドライン 218, 221
Java式のAPIメソッド
defineJExpression 222
getBytes 225
getDouble 225
getInt 225
getLong 225
getResultDataType 226
getResultMetadata 226
getStringBuffer 226
isResultNull 227
呼び出し 227
Javaトランスフォーメーション
APIメソッド 202
defineJExpressionメソッド 203
failSessionメソッド 204
generateRowメソッド 205
getInRowTypeメソッド 205
getMetadataメソッド 206
incrementErrorCountメソッド 207
invokeJExpressionメソッド 207
isNullメソッド 209
Javaコード 186
Javaコードスニペットの作成 188
Javaプリミティブデータ型 180
logErrorメソッド 209
logInfoメソッド 210
NULL値の設定 211
NULL値のチェック 209
422
索引
resetNotificationメソッド 210
setNullメソッド 211
storeMetadataメソッド 212
アクティブ 180
[インポート]タブ 190, 192
[関数]タブ 194
高精度処理 183
[コード全体]タブ 194
コンパイル 199
コンパイルエラー 200
コンパイルエラーの原因の特定 201
[最後]タブ 193
再利用可能 179
再利用不可 180
作成 198
詳細プロパティ 183
ステートレス 183
設計 182
データ型変換 180
デフォルトのポート値 183
トラブルシューティング 200
トランスフォーメーション範囲 183
ナノ秒処理 183
入力行タイプの取得 205
入力ポート 183
出力ポート 183
[入力時]タブ 192
パッシブ 180
非ユーザーコードのエラー 201
[ヘルパ]タブ 190, 192
変数のリセット 210
ポートの作成 182
マッピングの失敗 204
マッピングレベルのクラスパス 186
メタデータの格納 212
メタデータの取得 206
ユーザーコードのエラー 201
ログ 209, 210
概要 178
Javaパッケージ
インポート 190
Javaプリミティブデータ型
Javaトランスフォーメーション 180
JDK
Javaトランスフォーメーション 178
JExpressionクラス
Java式 223, 224
JExprParaMetadataクラス
Java式 222
JRE
Javaトランスフォーメーション 178
L
logErrorメソッド
Javaトランスフォーメーション 209
logInfoメソッド
Javaトランスフォーメーション 210
N
NULL値
Javaトランスフォーメーションの設定 211
Javaトランスフォーメーションでのチェック 209
NumRowsAffected
出力される行 346
Q
Qname要素
SOAPメッセージの解析 399
R
resetNotificationメソッド
Javaトランスフォーメーション 210
S
setNullメソッド
Javaトランスフォーメーション 211
SIN番号
再現可能なデータマスキング 143
社会保険番号のマスキング 142
SOAPアクション
Webサービスコンシューマトランスフォーメーションの
オーバーライド 379
SOAPアクションのオーバーライド
Webサービスコンシューマトランスフォーメーション
379
SOAP圧縮
Webサービスコンシューマトランスフォーメーション
383
SOAP階層
入力ポートへのリレーション 404
SOAPメッセージ
anyType要素の解析 397
choice要素の解析 399
choice要素のまっぴんぐ 413
union要素へのポートのマップ 414
概要 368
keys 405
代替グループの解析 399
ピボット化するデータ 408
複数出現ノードのマップ 394
複数の入力ポートをマップ 408
ポートのマップ 406
リストの要素の解析 400
リストの要素のマップ 414
SOAPメッセージ解析
Qname要素 399
union要素 400
正規化した出力 394
説明 392
派生型 398
非正規化した出力 396
ピボット化した出力 396
SQLErrorポート
SQLトランスフォーメーション 342
SQLエラー時に続行
SQLトランスフォーメーション 344, 349
SQLクエリ
SQLトランスフォーメーション 343
SQLトランスフォーメーション
SQLErrorポート 342
SQLエラー時に続行 349
影響を受けた行の数 342
概要 337
クエリの定義 343
クエリ文 354
クエリ文字列の置換 344
出力行の数 346
出力行の制限 346
出力ポートの定義 340
[詳細プロパティ]ビュー 338
初期選択の最適化 349
データベース接続の定義 355
入力行と出力行のカーディナリティ 344
入力ポートの説明 340
パススルーポート 341
パラメータのバインド 343
プッシュイン最適化 350
ポート 339
example 351
最適化にプッシュインのプロパティ 351
SQL入力ポート
SQLトランスフォーメーション 340
storeMetadaメソッド
Javaトランスフォーメーション 212
U
union要素
SOAPメッセージの解析 400
説明 414
W
Webサービス
anyTypeへのポートのマップ 412
代替グループ 412
派生型 411
Webサービスコンシューマトランスフォーメーション
HTTPエラー出力の有効化 379
HTTPヘッダーの追加 371
SOAP圧縮 383
SOAPメッセージ 368
エラー処理 382
エンドポイントURL 371
概要 367
キーの表示 373, 377
クッキー認証 371
作成 387
出力マッピング 376
詳細プロパティ 379
セキュリティ 369
操作 369
同時Webサービス要求のメッセージ 379
動的WebサービスURL 371
動的なWS-Security名 371
トランスポートレイヤセキュリティ 369
索引
423
入力マッピング 372
汎用フォールト出力の有効化 379
フィルタの最適化 385
プッシュイン最適化 385
汎用SOAPフォールト 382
マッピング出力ノード 376
マッピング入力ポート 372
最適化にプッシュインの有効化 386
初期選択の最適化 385
Webサービス接続
概要 379
Webサービストランスフォーメーション
[場所]カラム 403
WS-Securityユーザー名
動的ポート 371
WSDLファイル
サービス要素 368
操作の要素 368
バインディング要素 368
ポート要素 368
あ
アクティブトランスフォーメーション
Java 178
説明 2
アクティブなトランスフォーメーション
Java 180
Rank 320
アグリゲータトランスフォーメーション
Group Byポート 56
アップデートストラテジの組み合わせ 365
開発 53
概要 52
再利用可能なオブジェクトの作成 60
再利用不可能なオブジェクトの作成 60
集計関数 55
集計キャッシュ 55
集計式 55
詳細プロパティ 54
ソート済み入力 58
データのソート 59
トラブルシューティング 61
ネストされた集計関数 56
非集計式 58
ヒント 61
ポート 53
アップデートストラテジトランスフォーメーション
アグリゲータの組み合わせ 365
概要 363
拒否された行の転送 365
作成 364
式 364
詳細プロパティ 365
設定手順 364
い
依存カラム
データマスキング 131
依存マスキング
説明 131
424
索引
一意の出力
データマスキングトランスフォーメーション 129
一致ストラテジ
重複レコードの例外トランスフォーメーション 167
一致トランスフォーメーション
IDマッチング 282
サンプル一致ストラテジ 167
フィールド照合 282
概要 281
インスタンス変数
Javaトランスフォーメーション 190
え
影響を受けた行の数
SQLトランスフォーメーション 342
エディタのビュー
再利用可能なJavaトランスフォーメーション 179
再利用不可能なJavaトランスフォーメーション 180
エラー
Javaトランスフォーメーションにおけるしきい値の増加
207
エラー数
Javaトランスフォーメーションでの増分 207
エンドポイントURL
Webサービスコンシューマトランスフォーメーション
371
か
開始桁
社会保険番号 143
下限しきい値
構成 74, 160
[関数]タブ
Javaトランスフォーメーション 194
関連付けトランスフォーメーション
概要 63
き
keys
SOAPメッセージ階層 405
キージェネレータトランスフォーメーション
概要 242
キーマスキング
数値 125
数値のマスキング 126
説明 125
日時の値のマスキング 126
文字列値のマスキング 125
却下されたレコード
不良レコードの例外トランスフォーメーション 73
キャッシュ
ルックアップトランスフォーメーション 269
キャッシュサイズ
データマスキングトランスフォーメーション 146
キャッシュディレクトリ
データマスキングトランスフォーメーション 146
キャッシュファイルサイズ
重複レコードの例外トランスフォーメーション 165
キャッシュファイルディレクトリ
重複レコードの例外トランスフォーメーション 165
行
更新のフラグ設定 364
共有ストレージテーブル
データマスキングトランスフォーメーション 146
共有体トランスフォーメーション
概要 360
拒否された行の転送
オプション 365
構成 365
拒否ファイル
アップデートストラテジ 365
く
クッキー認証
Webサービスコンシューマトランスフォーメーション
371
クラスタ
重複レコードの例外トランスフォーメーション 160
クラスタデータ
出力グループ 164
クラスパス
マッピングプロパティ 186
グループ
ユーザー定義 327
ルータトランスフォーメーション 327
ルータトランスフォーメーションへの追加 329
グループフィルタ条件
ルータトランスフォーメーション 328
け
結果文字列の置換文字
データマスキングトランスフォーメーション 136
結合条件
概要 230
検索
Javaコードのエラー 200
こ
高精度処理
Javaトランスフォーメーション 183
高度なインタフェース
EDataTypeクラス 221
Java式 220
Java式の呼び出し 220
JExpressionクラス 223, 224
JExprParaMetadataクラス 222
例 223
考慮事項
Javaトランスフォーメーション 182
[コード全体]タブ
Javaコンパイルエラー 200
Javaトランスフォーメーション 194
コードスニペット
Javaトランスフォーメーション用に作成 188
コンパイル
Javaトランスフォーメーション 199
コンパイルエラー
Javaトランスフォーメーションのソースの識別 201
さ
サービス
WSDLファイル要素 368
[最後]タブ
Javaトランスフォーメーション 193
最大出力行数
SQLトランスフォーメーション 344, 346
再利用可能なトランスフォーメーション
説明 6
編集 7
作成
Javaトランスフォーメーション 198
し
式
Javaトランスフォーメーション 214
検査 10
コメントの追加 10
トランスフォーメーション内 7
入力 9
ポートへの追加 10
式エディタ
式の検証 10
説明 9
式トランスフォーメーション
開発 174
概要 173
詳細プロパティ 174
ポート 174
式マスキング
再現可能なマスキング 123
再現可能なマスキングの例 124
説明 123
ルールおよびガイドライン 125
自動統合
重複レコードの例外トランスフォーメーション 160
社会保障番号
再現可能なデータマスキング 142
地域コードマスキング 142
出力グループ
不良レコードの例外トランスフォーメーション 68
出力ポート
Javaトランスフォーメーション 182, 183
出力マッピング
Webサービスコンシューマトランスフォーメーション
376
手動統合
重複レコードの例外トランスフォーメーション 160
ジョイナトランスフォーメーション
同じソースからのデータの結合 237
概要 228
完全外部結合 234
結合タイプ 231
条件 230
条件タイプ 231
詳細条件タイプ 231
詳細プロパティ 229
索引
425
ソースパイプラインのブロック 239
ソート順の設定 235
ソート済み 239
ソート済み入力 234
単純条件タイプ 231
ノーマルジョイン 232
パフォーマンス 240
ポート 229
マスタ外部結合 233
マスタ行のキャッシュ 240
未ソート 239
明細外部結合 233
ルールおよびガイドライン 241
条件
ジョイナトランスフォーメーション 230
ルータトランスフォーメーション 328
上限しきい値
構成 74, 160
条件タイプ
ジョイナトランスフォーメーションの詳細 231
ジョイナトランスフォーメーションの単純 231
詳細条件タイプ
ジョイナトランスフォーメーション 231
詳細プロパティ
Javaトランスフォーメーション 183
SQLトランスフォーメーション 338
Webサービスコンシューマトランスフォーメーション
379
重複レコードの例外トランスフォーメーション 165
不良レコードの例外トランスフォーメーション 77
初期選択の最適化
SQLトランスフォーメーション 349
Webサービスコンシューマトランスフォーメーション
385
接続
Webサービス 379
接続されたルックアップ
概要 266
説明 265
接続されていないルックアップ
説明 265
概要 266
[設定]ビュー
重複レコードの例外トランスフォーメーション 160
不良レコードの例外トランスフォーメーション 74
不良レコードの例外トランスフォーメーションの例 80
そ
操作
WSDLファイル要素 368
[操作出力]領域
Webサービスコンシューマトランスフォーメーションの
カスタマイズ 377
[操作入力]領域
Webサービスコンシューマトランスフォーメーションの
カスタマイズ 373
操作領域
Webサービストランスフォーメーション 403
ソータートランスフォーメーション
概要 331
ソース文字列の文字
データマスキングトランスフォーメーション 135
ソートプロパティ
重複レコードの例外トランスフォーメーション 165
た
す
数値
キーマスキング 126
ランダムマスキング 122
ステートレス
Javaトランスフォーメーション 183
ストレージの暗号化
データマスキングトランスフォーメーション 146
ストレージのコミット間隔
データマスキングトランスフォーメーション 146
ストレージの暗号化キー
データマスキングトランスフォーメーション 146
すべてのグループ
Webサービスコンシューマトランスフォーメーションの
表示 373, 377
せ
生成キー
Webサービス出力グループ 395
静的コード
Javaトランスフォーメーション 190
静的変数
Javaトランスフォーメーション 190
設計
Javaトランスフォーメーション 182
426
索引
代替グループ
SOAPメッセージの解析 399
Webサービス 412
Webサービスコンシューマトランスフォーメーション
372, 376
単純条件タイプ
ジョイナトランスフォーメーション 231
単純なインタフェース
Java式 218
JavaトランスフォーメーションAPIメソッド 218
例 219
ち
置換マスキング
説明 127
マスキングプロパティ 128
重複レコードテーブル
生成 162
重複レコードの例外トランスフォーメーション
概要 158
クラスタ 160
クラスタ出力の例 170
構成 171
構成設定の例 168
サンプル出力 169
自動統合 160
出力グループ 164
詳細プロパティ 165
[設定]ビュー 160
重複レコードテーブルの生成 162
標準出力グループ 164
ポート 162
マッピングの例 166
例 166
レコードのソート 165
て
ディクショナリ
再現可能な式マスキング 123
置換データマスキング 127
ディクショナリ情報
データマスキングトランスフォーメーション 129
ディシジョントランスフォーメーション
品質の問題のサンプルストラテジ 71
概要 151
データ型
Javaトランスフォーメーション 180
データマスキングトランスフォーメーション
IPアドレスのマスキング 141
URLのマスキング 142
依存データマスキング 131
一意の出力 146
格納テーブル 124, 128
キャッシュサイズ 146
キャッシュディレクトリ 146
共有ストレージテーブル 146
クレジットカードのマスキング 139
再現可能なSIN番号 143
再現可能なSSN 142
再現可能な式マスキング 123
式マスキング 123
式マスキングのガイドライン 125
社会保障番号のマスキング 141, 146
ストレージのコミット間隔 146
セッションプロパティ 146
説明 120
ソース文字列の文字 135
置換マスキング 127
置換マスキングのディクショナリ 127
置換マスキングプロパティ 128, 129
ディクショナリ名の式マスキング 123
データマスキングトランスフォーメーション 146
デフォルト値ファイル 143
電話番号のマスキング 141
特殊マスク形式 138
範囲 137
日付値のマスキング 137
ブラー 137
マスキング方法 121
マスク形式 134
ランダムマスキング 121
社会保険番号のマスキング 142
電子メールアドレスのマスキング 139
デフォルトグループ
ルータトランスフォーメーション 327
デフォルト値
データマスキング 143
と
同時Webサービス要求のメッセージ
Webサービスコンシューマトランスフォーメーションの
有効化 379
動的URL
Webサービスコンシューマトランスフォーメーション
371
トラブルシューティング
Javaトランスフォーメーション 200
トランスフォーメーション
Java 178
アクティブ 2
概要 1
再利用可能 6
再利用可能なトランスフォーメーションの編集 7
式 7
式の検証 10
接続された 2
接続されていない 2
パッシブ 2
開発 6
作成 10
トランスフォーメーション範囲
Javaトランスフォーメーション 183
トランスポートレイヤセキュリティ
Webサービスコンシューマトランスフォーメーション
369
な
ナノ秒処理
Javaトランスフォーメーション 183
に
日時の値
データマスキング 126
入力行
行タイプの取得 205
入力ポート
Javaトランスフォーメーション 182, 183
[入力ポート]領域
SOAPメッセージの生成 402
入力マッピング
Webサービスコンシューマトランスフォーメーション
372
[入力時]タブ
Javaトランスフォーメーション 192
は
パーサトランスフォーメーション
概要 306
バインディング
WSDLファイル要素 368
[場所]カラム
Webサービストランスフォーメーション 403
パススルーポート
SQLトランスフォーメーション 341
索引
427
派生型
SOAPメッセージの解析 398
Webサービス 411
派生型要素
Webサービスコンシューマトランスフォーメーション
372, 376
パッシブトランスフォーメーション
Java 178, 180
説明 2
パラメータのバインド
SQLトランスフォーメーション 343
範囲
数値のマスキング 137
汎用フォールト出力
Webサービスコンシューマトランスフォーメーションの
有効化 379
ひ
非正規化した出力
SOAPメッセージ解析 396
非正規化した入力
Webサービスポート 409
日付の値
ランダムデータマスキング 122
ピボット化した出力
SOAPメッセージ解析 396
ピボット化したデータ
SOAPメッセージ 408
非ユーザーコードのエラー
Javaトランスフォーメーション 201
ヒューマンタスク
不良レコードの例外による 71
標準出力グループ
重複レコードの例外トランスフォーメーション 164
標準出力ポート
説明 73
品質の問題
ポートの割り当て先 76
品質の問題ポート
説明 73
ふ
フィールド照合
一致トランスフォーメーション 282
フィルタトランスフォーメーション
NULL値を含む行 176
概要 175
詳細プロパティ 176
パフォーマンスのヒント 177
フィルタ条件 176
フィルタポート
Webサービスコンシューマトランスフォーメーション
385
フォールトをエラーとして扱う
Webサービスコンシューマトランスフォーメーションの
有効化 379
複合キー
Webサービスコンシューマトランスフォーメーション
372
428
索引
副次作用
SQLトランスフォーメーション 349
Webサービスコンシューマトランスフォーメーション
385
プッシュイン最適化
SQLトランスフォーメーション 350
SQLトランスフォーメーションでの有効化 351
Webサービスコンシューマトランスフォーメーション
385
ブラー
数値 137
日付の値 138
不良レコードの例外トランスフォーメーション
概要 67
構成 77
出力グループ 68
出力ポート 73
出力例 81
詳細プロパティ 77
正常レコードの出力例 83
[設定]ビュー 74
入力ポート 73
品質の問題 71
不良レコードの出力例 81
プロセスフロー 69
ポートグループ 72
マッピング 70
マプレットの例 78
問題の出力例 82
例 78
不良レコードテーブルの生成
不良レコードの例外トランスフォーメーション 75
へ
変数
Javaトランスフォーメーション 190
ほ
ポート
Javaトランスフォーメーション 182
SOAPメッセージへのマップ 406
重複レコードの例外トランスフォーメーション 162
非正規化したWebサービストランスフォーメーション
409
不良レコードの例外トランスフォーメーション 72
ルータトランスフォーメーション 329
ポートの割り当て
品質の問題 76
[ポート]ビュー
SQLトランスフォーメーション出力 340
ポート値
Javaトランスフォーメーション 183
汎用SOAPフォールト
Webサービスコンシューマトランスフォーメーション
382
ま
ら
マージトランスフォーメーション
概要 304
マスキング方法
データマスキング 121
マスキングルール
結果文字列の置換文字 136
ソース文字列の文字 135
特殊マスク形式 138
範囲 137
ブラー 137
マスク形式 134
マスク形式
特殊マスク形式 138
文字列値のマスキング 134
マッピング
行に対する更新のフラグ設定 364
ルータトランスフォーメーションの使用 330
マッピングの失敗
Javaトランスフォーメーション 204
ラベラトランスフォーメーション
概要 247
ランク付け
データグループ 323
文字列値 321
ランクトランスフォーメーション
RANKINDEXポート 322
オプション 321
グループの定義 323
詳細プロパティ 324
ポート 322
ランクポート 322
概要 320
[ランタイム]ビュー
SQLトランスフォーメーション 355
ランダムマスキング
数値 121
日付値のマスキング 122
文字列値のマスキング 122
め
り
メソッド
JavaトランスフォーメーションAPI 202
リストの要素
SOAPメッセージの解析 400
説明 414
も
文字列
ランク付け 321
文字列値
カスタムデータマスキング 122
キーデータマスキング 125
文字列の置換
SQLトランスフォーメーション 344
問題テーブル
生成 75
[問題の割り当て]ビュー
不良レコードの例外トランスフォーメーション 76
ゆ
ユーザーコードのエラー
Javaトランスフォーメーション 201
ユーザー定義グループ
ルータトランスフォーメーション 327
ユーザー定義メソッド
Javaトランスフォーメーション 190
よ
要素
共用体 414
呼び出し
Java式のAPIメソッド 227
る
ルータトランスフォーメーション
概要 326
グループ 327
グループフィルタ条件 328
詳細プロパティ 330
ポート 329
マッピングでの接続 330
例 328
ルックアップキャッシュ
概要 269
ルックアップ条件
データマスキングトランスフォーメーション 129
ルックアップトランスフォーメーション
キャッシュ 269
再利用可能なオブジェクトの作成 275
再利用不可能なオブジェクトの作成 276
接続 265, 266
フラットファイルルックアップの詳細プロパティ 273
未接続 265, 266
ランタイムプロパティ 271
リレーショナルルックアップの詳細プロパティ 274
ルックアップ条件 267
ルックアップ条件のルールおよびガイドライン 268
論理データオブジェクトルックアップの詳細プロパティ
275
開発 267
概要 264
参照テーブルルックアップの詳細プロパティ 274
接続されていないルックアップの作成 277
索引
429
れ
ろ
例外トランスフォーメーション
[問題の割り当て]ビュー 76
ログ
Javaトランスフォーメーション 209, 210
430
索引
Fly UP