レベル: 中級 Bryan Patterson, DB2 Data Server Solution Architect, IBM Dexiong Terry Zhang, Software Engineer (Co-op), IBM
2009年 01月 15日 この 10 年の間、ビジネス間メッセージや内部ビジネス・モデリングに XML データを使用する企業が飛躍的に増えてきたことから、XML データでの管理およびレポート作成の必要が生じてきました。そんななか、企業内の XML データを保管し、管理するリポジトリーとして、DB2® pureXML™ がますます使われるようになっています。DB2® pureXML™ では XML データの構造およびコンテンツを維持しながらも、個々の要素と属性に直接アクセスすることができます。この記事では IBM の汎用ビジネス・インテリジェンス・ツールである DataQuant を利用して、DB2 pureXML に保管された XML データを基にレポートを作成する方法を説明します。さらにビジネスの内情把握と分析のために、DataQuant を利用して、DB2 に保管された XML データにアクセスし、レポートやチャート、ダッシュボードなどで個々のデータ要素を使えるようにする手順を説明します。
XML の普及
W3C (World Wide Web Consortium) 標準の 1 つである XML (Extensible Markup Language) は、文書のコンテンツと論理構造を記述するデータ・マークアップ言語を定義するために、1998年に初めて提案されました。XML 文書は、例えば <phone>123-456-7890</phone> といったように、データの値とそのデータを記述する「タグ」(マークアップ) で構成されます。XML を使用することで、ビジネスでは多種多様なデータのフォーマットを指定することができ、そのフォーマットはアプリケーションがどのプラットフォーム上で実行されているとしても、簡単にインポートして処理することができます。企業や政府機関では、電子フォーム (W3C 標準の XForms はその一例です) のデータを取り込み、ビジネスをモデル化する内部データ・フォーマットとして XML の普及が進んでいます。
さらに、企業間や企業内でのデータ交換とデータ処理を簡易化することを目的に、さまざまな XML ベースの業界標準が開発され、共通フォーマットが提供されてきました。それぞれの業界での標準の例を挙げると、保険業界の ACORD (Association of Cooperative Operations Research)、金融業界の FIXML (Financial Information eXchange Markup Language)、医療業界の HL7 (Health Level 7)、政府機関を対象とした NIEM (National Information Exchange Model)、小売業界の ARTS (Association for Retail Technology Standards)、請求書などのビジネス文書向けの UBL (Universal Business Language)、納税申告用の MeF (Modernized e-File) などがあります。
当初、ほとんどのビジネスでは XML を情報交換フォーマットとしてのみ扱っていました。つまり、データを送信するために XML を構成し、受信時に分解して必要なデータを抽出するという使い方です。しかし時間が経つにつれて XML の使用頻度が増え、サイズも大きく複雑になってきたことから、ビジネス運営において重要性の高いコンポーネントとなってきました。その結果、今では多くのビジネスで XML を処理および分析するのに備えてそのままの形で保管するようになっています。そして XML データが極めて重要な価値を持つようになったことにより、このような企業ではリレーショナル・データベースに XML データを保管して、データの管理、アクセスの制御、バックアップおよびリカバリー・プロセスの管理を行うようになってきており、また業務処理とレポート作成のためにアプリケーションが連携できるようにしています。次のセクションでは、XML データの管理方法の選択肢について簡単に検討します。
XML データの管理
歴史的に言って、ビジネスで XML を処理して保管しようとするときの選択肢は限られていました。選択肢としては、XML コンテンツ全体をシリアライズして (つまり、膨大な 1 つのストリングにして) ファイル・システムまたはデータベースのラージ・オブジェクト (CLOB または BLOB) 列に保管するか、あるいは XML を構文解析し、特定の要素だけを抽出して残りを破棄し、抽出した項目をリレーショナル表の列に保管するかのいずれかでした。前者は規制要件を満たすものの、目的のコンテンツにたどりつくには、アプリケーションはデータにアクセスするたびに文書全体を転送して構文解析しなければならないため、かなり非効率的です。一方、後者は破棄されたコンテンツが失われるだけでなく、元の XML 文書のコンテキストが失われることにもなります。どちらの方法も非効率的で、絶えず XML 文書を転送し、処理し、組み立てたり分解したりしなければならないことから、実行時に著しいアプリケーション・オーバーヘッドが生じることになります。
DB2 9 に pureXML が導入されたことにより、XML の保管方法に新しい選択肢が登場しました。ほとんどのアプリケーションにとって、この選択肢には他の方法に勝るメリットがあります。DB2 9 pureXML は、アプリケーションの操作によって XML を挿入または取得しなくても、XML をそのままの階層型フォーマットで保管することを可能にします。XML 文書のサブセットは、それが個々の要素や属性であっても、照会して取得することができます。さらに、XML を効率的に管理することにより、手間のかかる文書の分解プロセスと再構成プロセスが不要になると同時に、処理する際にも XML コンテンツの価値を生かすことができます。データベース内の XML を管理する方法および XML にクエリーを実行する方法が異なることによるパフォーマンスの違いについては、この記事の「参考文献」セクションに記載した「DB2 9 の pureXML と、CLOB あるいはシュレッドによる XML ストレージとのパフォーマンス比較」を参照してください。
DB2 pureXML の概要
DB2 pureXML は、XML とリレーショナル・データの両方を認識するハイブリッド・データベース内に XML 階層データをネイティブに保管する機能をもたらします。XML をネイティブに保管するとは、XML データをそのままの形で保管し、しかもデータベースが各文書内部の階層構造と個々の要素および属性を完全に把握するということです。pureXML により、ビジネスではデータベース表に保管された既存のデータだけでなく、XML データに対しても保管、制御、照会、更新を効率的に行えるようになります。
DB2 pureXML では、XML データは従来のリレーショナル列で構成された表の中に共存可能な XML 型の列として表されます。DB2 は従来のリレーショナル列と XML 列のデータ全体にわたり、その共通サービス (最適化、索引付け、並行性制御、ユーティリティーなど) を拡張しています。また、DB2 は業界標準の SQL または XQuery 言語で作成されたクエリーだけでなく、SQL と XQuery 式の両方 (別名、SQL/XML) が含まれる「ハイブリッド」クエリーによる XML データへのアクセスおよび XML データの操作もサポートします。図 1 に、このハイブリッド・データベース機能を示します。pureXML を備えた DB2 9 では、XML をリレーショナル列に分解されるラージ・オブジェクトに保管する機能、そして XML をXML としてネイティブに保管する機能を提供します。カスタマーは、柔軟性に優れ、アプリケーションのオーバーヘッドが少ない pureXML のネイティブ XML 保管オプションを次第に選択するようになっています。この記事では、DB2 の XML 列にネイティブに保管された XML データでレポートを作成する機能に目を向けます。
図 1. リレーショナル・データと XML データのサポートが組み込まれた DB2 アーキテクチャー
DB2 pureXML は、XML データを動的に (個々の文字や数値データ要素のみを処理するアプリケーション用の) 従来の SQL データ型の列 (リレーショナル・データ列など) からなる結果セットに変換する機能も提供します。このような変換を行うのに最も簡単な方法は、XMLTABLE という SQL 関数を使うことです。XMLTABLE は、リレーショナル形式 (つまり表形式) で XML データを取得する方法を簡潔に記述する関数で、以下で説明するように DataQuant などのレポート作成ツールが直接 DB2 pureXML データを操作するための手段の 1 つです。XMLTABLE を含め、DB2 pureXML についての詳細は、この記事の終わりにある「参考文献」セクションを参照してください。
注: pureXML は、DB2 9 for Linux®, UNIX®, and Windows® および DB2 9 for z/OS® で使用することができます。DataQuant はこの両方の DB2 システムをサポートしますが、この記事での例では DB2 for Linux, UNIX, and Windows を使用します。
IBM DataQuant の概要
DataQuant は IBM の汎用ビジネス・インテリジェンス (BI) ツールです。Eclipse オープン開発プラットフォームをベースに作成された DataQuant は、IBM System Z™、Linux、Microsoft® Windows、IBM AIX®、Solaris をはじめ、さまざまなシステムで使用することができます。DataQuant では、レポート、グラフ、ダッシュボード、そして対話型データ視覚化ソリューションを作成およびデプロイメントするための機能を提供しており、あらゆる IBM DB2 プラットフォーム向けのクエリー、レポート、ダッシュボード・ソリューションの作成をサポートします。Windows 版 QMF (Query Management Facility) または QMF Distributed Edition を使い慣れている方には、DataQuant for Multiplatforms が後継製品となります。z/OS プラットフォームでは、DataQuant を単独でデプロイすることも、QMF の拡張機能としてデプロイすることもできます。後者の場合、クエリーやフォームなどのオブジェクトを連携して作成および共有することもできます。
DataQuant には、強力ながらも使いやすい包括的な BI 機能が用意されています。最も一般的な BI タスクを行える DataQuant のこの機能には、柔軟なセキュリティー・インフラストラクチャーに加え、リソース管理、使用率の監査などの機能が統合されており、カスタマーにメリットがもたらされます。また、DataQuant ベースの BI ソリューションは、データ・レポート作成のニーズにその規模を問わず対応可能で、ユーザーがインターフェースとオブジェクトを自分用にカスタマイズすることもできます。
DataQuant についての詳細は、「参考文献」セクションに記載した DataQuant の Web サイトを参照してください。
DataQuant は、以下のコンポーネントから構成されます。
- DataQuant for Workstation: Linux、Solaris、Windows 上で稼働する Eclipse をベースとしたクロスプラットフォームのワークステーション・アプリケーションです。「リッチ・クライアント」と呼ばれます。
- DataQuant for WebSphere: アプリケーション・サーバーをベースとしたソリューションで、広範なエンタープライズ・デプロイメントに対応した「シン・クライアント」ブラウザー・ベースのデプロイメント・モデルです。
図 2 は、上記の DataQuant コンポーネントをデプロイするための基本アーキテクチャーです。この図には、アプリケーション・サーバーがホストする「リッチ・クライアント」もしくは「シン・クライアント」として DataQuant をデプロイする方法、あるいはその両方の組み合わせでデプロイする方法が示されています。この記事ではリッチ・クライアントのインストールを使用しますが、どちらのクライアント構成からでもレポートを作成することはできます。
図 2. DataQuant のアーキテクチャー
サンプル・データベース
この記事では、業界で使用されている複雑な XML データに対して、DataQuant の XML レポート作成機能が使えることを示すため、法人税申告情報のサンプルが含まれるデータベースを使用します。このサンプルでベースとしているのは、U.S. Government Tax1120 eFile XML フォーマットです (このフォーマットは現在、MeF (Modernized eFile) と呼ばれています)。IBM では、DB2 pureXML と業界フォーマットのデータを使ってみるための、無料でダウンロードできるパッケージを、Tax1120 バンドルをはじめとしていくつも用意しています。これらのバンドルには、テスト用データベースの作成とサンプル・データの挿入を行うスクリプトに加え、テスト用データベースに対して実行するサンプル・クエリーが含まれています。この記事では、Tax1120 バンドルで使われているデータベース構造をサンプル・データベースとして使用するので、このバンドルをダウンロードした環境をレポート作成の実行対象として使用することができます (バンドルをダウンロードするには、この記事の「参考文献」を参照してください)。
データを取り込んで特定の XML フォーマットでサブミットする手段としては、Tax1120 MeF フォーマットなどの電子フォームを使用することができます。図 3 に、Lotus Forms で作成され、Tax1120 XML フォーマットを生成する納税申告書 1120 のサンプル電子フォームを示します。このフォームによって生成される XML 文書が、この記事で作成するレポートのデータ・ソースとなります。
図 3. Tax1120 申告用のサンプル電子フォーム
この記事では、リレーショナル・データと XML データの両方が保管された表から、XML データを基にレポートを作成する方法を説明します。表 1 に、この TAX1120TABLE という名前の表の構造を記載します。
表 1. TAX1120TABLE の構造
| ID | COMMENT | DATA |
|---|
| INTEGER | VARCHAR | XML |
Tax1120 バンドルを使用している場合、バンドルのユーザー・ガイドに従いさえすれば、データベースを作成してデータを挿入することができます。Tax1120 バンドルを使わずに自分で表を作成するのであれば、以下のステートメントを使用して TAX1120TABLE を作成した後、記事の「ダウンロード」セクションに用意されたサンプル・データを、このデータに添付の指示に従ってデータベースにインポートしてください。
CREATE TABLE TAX1120TABLE (
ID INTEGER PRIMARY KEY NOT NULL,
COMMENT VARCHAR(500)
DATA XML) |
「ID」は汎用キー列ですが、レポートを作成する際には使用されません。「DATA」は、TAX1120 XML データ・インスタンスを保管する列です。この表での「DATA」列は、XML 型として定義されていることに注意してください。これにより、DB2 は入力 XML データをそのネイティブ階層フォーマットで保管するようになります。
XML データは何重にもネストされることがよくあるので、かなり大きなデータにもなり得ます。この記事で Tax1120 フォーマットをベースに生成するレポートは、このフォーマットの XML 構造と、サンプル・データベースに保管された文書のコンテンツに特有のものです。XML やデータベースのエキスパートでなくても XML でのレポート作成方法は理解できますが、レポートを作成するために必要なデータ項目 (要素または属性) を選択するには、レポートの作成対象である XML 文書の構造 (階層) を理解していなければなりません。
DB 2 に付属の管理ツールである DB2 Control Center 文書ビューアーを使用して、サンプル Tax1120 文書に含まれる XML コンテンツの一部を表示したのが図 4 (ソース・ビュー) と図 5 (ツリー・ビュー) です。一部には、ツリー・ビューのほうがわかりやすいというユーザーもいます (Eclipse ベースのデータベース開発環境である IBM Data Studio では、ソース・ベースおよびツリー・ベースの両方のフォーマットで DB2 pureXML データを検査することもできます)。
図 4. DB2 Control Center のソース・ビューに表示されたサンプル Tax1120 データ
図 5. DB2 Control Center のツリー・ビューに表示されたサンプル Tax1120 データ
XML データに基づくレポート作成
レポート作成機能と (リレーショナル・データベースと連動する DataQuant などの) BI ツールは、単純な数値やテキスト・ストリングが含まれる個々の列と連動するように設計されています。XML 列のデータにアクセスできるツールもなかにはありますが、複雑な XML をレポートに適した構造にフォーマットする機能を備えたツールはほとんどありません。これらのツールでレポートを作成したり、分析したりするのに適した XML にするには、XML 文書全体から関連データを抜き出すための中間ステップが必要となります。
DB2 pureXML が、XML データを DataQuant でのレポート作成に適した数値またはテキスト・ストリングにフォーマットして提供する方法は、2 つあります。その 1 つは、XML をレポートに必要なデータの形に動的に変換する SQL/XML ステートメントを実行して、レポートに必要なデータ結果を提供するという方法です。もう 1 つの方法では、まずレポートの作成に必要な XML 文書のデータが含まれる列で構成されるリレーショナル・ビューを作成します。そして、このビューに対して SQL ステートメントを実行することによって、レポートのコンテンツを生成します。この方法では、リレーショナル表に作用する DataQuant の機能すべてを、ビュー内のデータにアクセスするために使用することができます。
XML データが含まれるリレーショナル・ビューに対して SQL を実行してレポートを生成する場合も、SQL/XML クエリーによって動的に返された結果セットからレポートを生成する場合も、DataQuant でのステップはほとんど同じです。この後のセクションで、これらのステップについて説明します。
SQL/XML クエリーによって返された結果セットを使用してレポートを作成する場合
SQL クエリーを使用して従来のリレーショナル列からレポート・データを生成する場合と同様に、DataQuant でレポートを生成するためのデータは、SQL/XML クエリーによって直接生成することができます。この方法は基本的に、XML 文書内でレポートに使用できる特定の要素と属性を SQL/XML クエリーで識別して、目的の結果を生み出すという動的な方法です。臨機応変な SQL/XML クエリーを使用することによって、レポートを作成するためのデータを XML 文書から柔軟に選択することができます。
XML データのリレーショナル・ビューを使用してレポートを作成する場合
前述したように、DB2 には XML 列に保管された階層データのリレーショナル表現を作成する機能があります。レポートを作成する 2 つ目の方法では、このリレーショナル表現の作成機能を拡張し、リレーショナル表現をベースにビューを作成します。そのために管理者は、ビューを定義するための SQL/XML クエリーを作成することになります。このクエリーは、XML 文書からレポートの作成に必要なすべてのデータを抽出するクエリーで、1 つ以上の特定の XML 要素または属性ノードの値を、同じ数のリレーショナル・データ型の列にマッピングします (図 6 を参照)。SQL/XML クエリーによってマッピングするには、それぞれのリレーショナル・データ値を返す XML データの部分 (通常は、特定の XML テキスト・ノード) を特定するために、XPath 式を使用します。XML を目的のリレーショナル値にマッピングする一連の XPath 式は、SQL の標準 XMLTABLE 関数を使用すると簡単に作成することができます。そこで、XMLTABLE 関数を使用して XML からリレーショナル列を作成するビューを定義します。
図 6. XML データからリレーショナル列へのマッピング
SQL/XML、XPath 式、あるいは XMLTable についての詳細を学ぶには、「参考文献」セクションに記載されている DB2 pureXML の情報を参照してください。
レポート作成方法の比較
XML 列のデータを基にレポートを作成する 2 つの方法を比較した図を図 7 に示します。
図 7. XML データを基にレポートを作成する 2 つの方法
1 番目の方法は前述の通り、XML 文書に直接クエリーを実行して、レポートに必要な要素と属性の値を選択します。これは基本的に動的な方法で、これによって得られる結果はビューを使用した場合と同じです。SQL/XML を使用する方法では、ビュー・オブジェクトによるシステムのオーバーヘッドがありません。さらに、XML 文書からレポート作成用のデータを柔軟に選択することができますが、そのためにはレポートを作成するユーザーが、臨機応変に SQL/XML クエリーを作成できる必要があります。
2 番目の方法では、レポート作成に必要なクエリーを単純化するために、XML 文書から抽出した重要なデータ要素と属性が含まれるビューを生成し (2a)、それから従来の SQL ステートメントをビューに適用して結果を生成します (2b)。このビューは管理者が作成できるため、DataQuant レポートのユーザーはベースとなる XML を理解している必要も、SQL/XML や XPath のステートメントに慣れている必要もありません。ユーザーはまた、単純な SQL ステートメントを使用してレポートに含める列を選択することも、(リレーショナル表に対して実行するように) ビューに対してビジュアル・ビルダー・ユーティリティーを使用してレポートに含める列データを視覚的に選択することもできます。ビューを使用したこの方法での欠点の 1 つは、レポート・ビルダーが前もって、使用可能にする XML 要素と属性を明確にしておかなければ、データベース管理者が適切なビューを生成できないことです。そのため、ビューの定義に変更を加えるには、ある程度の計画と時間がかかることになります。もう 1 つの欠点として考えられるのは、SQL/XML クエリーを作成する場合は、XML データ文書で索引を直接利用するように作成することができますが、ビューを対象に作成する SQL クエリーについては、システムによって間接的に索引と突き合わせが行われなければならないという点です。ただし、DB2 9 for z/OS では、ビューを対象に作成された SQL クエリーでも、ベースとなる XML で XML 索引を利用することができます。この機能は、パフォーマンスの向上に役立ちます。
DB2 ビューの作成
以下に記載するステートメントは、この後のレポート作成のセクションで使用する TAX1120VIEW を作成します。TAX1120VIEW はリレーショナル・ビューで、Tax1120 XML データから選択された情報が含まれます。TAX1120VIEW ビューの列がそれぞれに表すのは、雇用者 ID、会社名、総所得額、総課税額です。これらの列は、前述の XMLTABLE 関数によって生成されます。このビューを作成するには、以下のステートメントを DB2 コマンド行やその他のクエリー・ツールで実行してください。
CREATE VIEW TAX1120VIEW AS
SELECT T.EIN AS "EIN",
T.COMPANYNAME AS "Company Name",
T.TOTALINCOME AS "Total Income",
T.TOTALTAX AS "Total Tax"
FROM TAX1120TABLE, XMLTABLE(XMLNAMESPACES(DEFAULT 'http://www.irs.gov/efile'),
'$d/Return' PASSING DATA AS "d"
COLUMNS EIN VARCHAR(20) PATH 'ReturnHeader/Filer/EIN',
COMPANYNAME VARCHAR(100) PATH
'ReturnHeader/Filer/Name/BusinessNameLine1',
TOTALINCOME DOUBLE PATH 'ReturnData/IRS1120/TotalIncome',
TOTALTAX DOUBLE PATH 'ReturnData/IRS1120/TotalTax'
) AS T |
表 2 に、上記ステートメントによって生成されるビューの構成を記載します。
表 2. TAX1120VIEW の構成
| EIN | COMPANYNAME | TOTALINCOME | TOTALTAX |
|---|
| VARCHAR | VARCHAR | DOUBLE | DOUBLE |
レポートの作成を開始するには、あらかじめ管理者が DataQuant にレポート作成環境をセットアップする必要があります。この作業には、リポジトリー・ストレージとデータベース接続情報の識別も含まれます。次のセクションで、これらのセットアップ手順について説明します。
DataQuant レポート作成環境のセットアップ
DataQuant をインストールした後、DataQuant ユーザーがデータベースのデータからレポートを作成できるようにするには、ユーザー (この場合は管理者) はデータ・ソースへのアクセスを提供し、レポート作成用のワークスペース環境を作成する必要があります。データ・ソースのセットアップは 1 度限りのプロセスで、このプロセスではオブジェクトを保持するリポジトリー、セキュリティー・モデル、データ・ソースのユーザーなどを作成します。データ・ソースへのアクセスを提供するには、以下のステップが必要です。
- リポジトリー・ストレージを作成します。DataQuant ユーザー・リポジトリーを保持するストレージを定義し、名前を付けます。
- リポジトリー・ストレージ内にリポジトリーを作成します。
- データ・ソースを作成します。各リポジトリーとの接続を定義します。
- 接続を作成します。リポジトリー内にデータ・ソース情報を構成します。
上記の 4 つのセットアップ・ステップについて、以降のセクションでサンプル・データベースを用いて説明します。各データベース・ユーザーはすでに JDBC ドライバーを利用できるという前提なので、JDBC ドライバーを利用するための構成のステップは省いていますが、この構成が済んでいない場合には、DataQuant ガイドの手順に従ってください。この例では、Windows にインストールした DataQuant for Workstation を同じシステム上の DB2 9 データベースに接続して使用しています。これとは異なる構成を使用している場合、ステップは多少異なる可能性があります。それでは、DataQuant を起動してステップ 1 に進んでください。
ステップ 1: リポジトリー・ストレージを作成する
- メニュー・バーで Window > Open Perspective > Administrator の順に選択して Administrator パースペクティブを開きます。
- Repositories ビューを右クリックして、New > Repository Storage の順に選択します。
- Database-based Repository Storage (データベース・ベース・リポジトリー・ストレージ) を選択し、Next をクリックします。
- JDBC driver フィールドで DB2 JDBC Universal Driver を選択します。JDBC URL フィールドに、この例で使用する「jdbc:db2://localhost:50000/TAX1120」を入力します。ユーザー名とパスワードのフィールドに、ご使用の DB2 ユーザー ID とパスワードを入力します。入力し終わったら、Next をクリックします。
- Create or upgrade repository storage tables (リポジトリー・ストレージ表を作成またはアップグレード) を選択して、Next をクリックします。もう一度 Next をクリックし、それから Finish をクリックします。
図 8. 新規リポジトリー・ストレージの作成
ステップ 2: リポジトリーを作成する
- Repositories ビューでリポジトリー・ストレージを右クリックし、New > New Repository の順に選択します。
- リポジトリーに名前を付けます。この例では、「Tax1120Repository」という名前にします。名前を入力したら、Finish をクリックします。
ステップ 3: データ・ソースを作成する
- Repositories ビューでリポジトリーを右クリックし、New > Relational Data Source の順に選択します。
- データ・ソースに名前を付けます。この例では、「Tax1120DataSource」という名前にします。JDBC driver フィールドで DB2 JDBC Universal Driver を選択します。JDBC URL、ユーザー名、パスワードのフィールドに入力し、Next をクリックします。もう一度 Next をクリックし、それから Finish をクリックします。
図 9. 新規データ・ソースの作成
ステップ 4: 接続を作成する
- Window > Show View > Other の順に選択して Repository Connections ビューを開きます。
- Repository Connections ビュー内を右クリックして、New > Repository Connection の順に選択します。
- Database-based repository (データベース・ベース・リポジトリー) を選択します。
- 接続に名前を付けます。この例では、「Tax1120Connection」という名前にします。JDBC driver フィールドで DB2 JDBC Universal Driver を選択します。JDBC URL、ユーザー名、パスワードのフィールドに入力し、Repository name フィールドの更新ボタンをクリックしてリポジトリーを選択します。Unprotected を選択し、Finish をクリックします。
図 10. 新規リポジトリー接続の作成
接続が作成されると、図 11 に示すように、Administrator ビューに新規に作成したリポジトリーと接続が表示されます。
図 11. DataQuant の Administrator ビュー
管理セットアップはこれで完了です。次のステップに進んで、いよいよデータにアクセスしてレポートを作成します。
レポートの作成
DataQuant でのレポート作成プロセスは、以下の 2 つの主要なステップで構成されます。
- クエリーの作成: レポートのデータ・コンテンツ候補を生成するためのクエリーを識別します。
- このセクションでは図 7 に示した両方の方法によるクエリーを説明するので、2 つの方法を簡単に比較することができます。
- レポートの作成: レポートのレイアウトを作成します。
以下のステップに従って、DataQuant でレポートを作成してください。
ステップ 1: データ候補を生成するためのクエリーを作成する
- メニューから Window > Open Perspective > User の順に選択して User パースペクティブに切り替えます。Workspaces ビュー内を右クリックして New > Query の順に選択します。
- クエリーに名前を付けます。この例ではクエリー名として「Query1」と入力し、前に作成したデータ・ソース (例えば、Tax1120DataSource) を選択します。そして、Finish をクリックします。
- レポート用のクエリーを作成します (以下では、前述の 2 つのオプションそれぞれの場合について説明します)。
-
XML 文書で直接レポートを作成するには、以下の SQL/XML クエリー・ステートメントを入力します (または「DB2 の作成」セクションに記載した、XMLTABLE を使用している SELECT の部分を入力します)。
SELECT XMLCAST(XMLQUERY('declare default element
namespace "http://www.irs.gov/efile";
$d/Return/ReturnHeader/Filer/EIN/text()'
PASSING DATA AS "d") AS VARCHAR(20)) AS "EIN",
XMLCAST(XMLQUERY('declare default element
namespace "http://www.irs.gov/efile";
$d/Return/ReturnHeader/Filer/Name/BusinessNameLine1/text()'
PASSING DATA AS "d") AS VARCHAR(100)) AS "Company Name",
XMLCAST(XMLQUERY('declare default element
namespace "http://www.irs.gov/efile";
$d/Return/ReturnData/IRS1120/TotalIncome/text()'
PASSING DATA AS "d") AS DOUBLE) AS "Total Income",
XMLCAST(XMLQUERY('declare default element
namespace "http://www.irs.gov/efile";
$d/Return/ReturnData/IRS1120/TotalTax/text()'
PASSING DATA AS "d") AS DOUBLE) AS "Total Tax"
FROM TAX1120TABLE |
上記のクエリー・ステートメントは TAX1120VIEW ビューに含まれる情報と同じ情報を返しますが、ビューを定義する代わりにデータを動的に生成しており、XMLTABLE を使用してビューを定義するクエリーの代わりの方法となります。どちらの方法でも結果は同じですが、ご覧のように上記のクエリーのほうが、構成するのも解釈するのも多少複雑です。そのため、データを動的に生成するか、ビューを使用するかに関わらず、大抵は XMLTABLE を使用して XML からリレーショナル列のデータを構成する方法が推奨されます。この例では、どちらのクエリーを使用しても構いません。XMLCAST は XML データをリレーショナル・データ型に変換する SQL/XML 関数です。詳細は、「参考文献」セクションを参照してください。
-
前に作成した XML のリレーショナル・ビューに基づいてレポートを作成するには、以下のクエリー・ステートメントを入力します。
SELECT * FROM TAX1120VIEW |
上記を見るとわかるように、TAX1120VIEW の定義には、レポートの作成に使用するまさにその XML 文書のデータが含まれているため、あとはごく単純なレポート生成クエリーが必要なだけです。ビューから列のサブセットのみを選択するとしても、単純な SQL クエリーになります。さらに、DataQuant ビジュアル・ビルダー機能を使用すれば、エンドユーザーはデータの詳細を知らなくても、ビュー・ソースからレポートを作成することができます。ビジュアル・ビルダーを使用するには、以下のステップを実行してください。
- Query1 ウィンドウ下部にある Prompted タグをクリックします。
- クエリーにソース表を追加するために Add Table をクリックします。
- Add From List... をクリックします。
- 「表所有者」名 (このビューを作成した DB2 ユーザーの名前) を入力してから、Refresh List をクリックします。
- TAX1120VIEW を選択し、Add をクリックしてビューをクエリーに追加します。そして、Close をクリックします。
- デフォルトでは、選択された表/ビュー内のすべての列が選択されます。特定の列をクエリーに追加するには、Add Column をクリックします。また、Change Column または Delete Column をクリックして、クエリー内の列を変更、削除することもできます。
図 12. 表/ビューに対するクエリー・ステートメントの視覚的作成
図 12 に示すように、上記のステップでは、SELECT * FROM TAX1120VIEW と同じ結果を生成するクエリー・ステートメントを視覚的に作成します。この方法を使えば、SQL 言語の正確な知識がないエンドユーザーでもレポートを作成することができます。
- 「Query1」を保存します。メニュー・バーから Query > Run の順に選択するか、またはツール・バーの Run アイコンをクリックしてクエリーを実行します。クエリーの実行が完了すると、結果が表示されます (図 13 を参照)。
図 13. サンプル・クエリーの結果セット
ステップ 2: クエリーの結果からレポートを作成する
レポート用のクエリーの結果を作成するためにビューを使用したか、あるいは XML データから直接作成したかに関わらず、レポートを作成するには以下のステップを実行します。
- メニュー・バーから Results > Display Report... の順に選択します。
- Create a new report (新規レポートの作成) を選択して、Next をクリックします。
- 「Create a visual report (ビジュアル・レポートの作成)」以下ですでに選択状態になっているオプション、Generated based on current query (現行クエリーをベースに生成) は変更せずに、Finish をクリックします。この他のレポート作成オプションとして、DataQuant には標準レポートと BIRT レポートの 2 つがありますが、この記事では説明しません。
- レポートを調整するには、ウィンドウ下部にある Design タブをクリックして Design ビューに切り替えます (図 14 を参照)。
図 14. 生成されたレポートの Design ビュー
- Design ビューでは、レポート・オブジェクトのサイズと位置やレポート・データのフォーマットなど、レポートのビジュアル・プロパティーを調整することができます。例えば、総所得額を小数点以下 2 桁まで表示するには、「Detail1」セクションの「Total Income」列の下にあるセルを選択状態にして、Properties ビューの「Text」フィールドを =formatNum("0.00",[Total Income]) に変更します。
- ウィンドウ下部のタブを使用して Preview ビューに戻り、レポートを表示します (図 15 を参照)。このレポートを Report1 という名前で保存して閉じてください。
図 15. 完成後のレポートの Preview ビュー
DataQuant で XML データを基にレポートを作成するための作業は、これですべてです。次のセクションではデータを表示するためのもう 1 つの選択肢、Visual Dashboard を取り上げます。
Visual Designer での Visual Dashboard の生成
Visual Dashboard は一種のビジュアル・プロジェクトであり、インタラクティブなデータや永続データをさまざまなユーザーに表示します。Visual Dashboard では、種類の異なる複数のデータ・ソースからデータを同時に描画し、各種のグラフ、チャート、グラフィカル・ウィジェットを使ってデータを表示することが可能です。そしてコンテンツ開発者は、複数のユーザーが Web ブラウザーまたは DataQuant for Workstation のシン・クライアント・バージョンを使って表示できる Visual Dashboard を作成することができます。
Tax 1120 XML データで Visual Dashboard を作成する方法は、以下のとおりです。
- Window > Open Perspective > Visual Designer の順に選択して Visual Designer パースペクティブを開きます。
- Window > Show View > Other... の順に選択して Palette ビューを開き、このビューで General > Palette の順に選択します。
- Project Explorer ビューで、Visual Dashboards プロジェクトを右クリックして New Visual Dashboard... を選択します。
- レポートに名前を付けます。この例では、「Dashboard1」という名前にします。名前を入力したら、Finish をクリックします。
- Project Explorer ビューで、Visual Dashboards プロジェクトを右クリックして *Dashboard1 > Connections の順に選択し、Insert Connection... を選択します。
- Data Sources > Tax1120DataSource の順に選択し、接続に名前を付けます。この例では、「Connection1」という名前にします。名前を入力したら、Finish をクリックします。
- Project Explorer ビューで、Visual Dashboards プロジェクトを右クリックして *Dashboard1 > Queries の順に選択し、Insert Query... を選択します。
- Attach an existing query (既存のクエリーを追加) オプションにチェック・マークを付けて、Select Query From Repository (リポジトリーからクエリーを選択) シンボルをクリックします。Open from Repository を選択してから Next をクリックし、次に Workspaces > Default > Query1 の順に選択して Finish をクリックします。クエリーに名前を付けます。この例では、「Query1」という名前にします。名前を入力したら、Finish をクリックします。
- Palette ビューで BarChart を選択し、*Report2.MainPage ウィンドウの Detail1 セクションをクリックしてチャートを作成します。
- Query1 を選択し、Next をクリックします。Fields to be displayed エリアに「Total Income」フィールドと「Total Tax」フィールドを追加し、Next をクリックします。Include a label ボックスにチェック・マークを付けて、Label フィールドのドロップダウン・メニューから「Company Name」を選択します。Display the value of each bar チェック・ボックスのチェック・マークを外してから、Finish をクリックします。
- 必要に応じてチャートのサイズ、位置、プロパティーを調整します。Runtime タブをクリックしてダッシュボードを表示します (図 16 を参照)。ダッシュボードを Dashboard1 という名前で保存して閉じます。
図 16. Visual Dashboard の Runtime ビュー
まとめ
DB2 pureXML は XML データを保管して管理するためのリポジトリーとして成長を続けています。この記事では、DataQuant を使用して DB2 pureXML データからレポートを作成する 2 つの方法について説明し、その手順を説明しました。1 番目の方法では、SQL/XML クエリーを XML で直接実行して DataQuant レポートに入力するデータを生成します。2 番目の方法は 2 ステップのプロセスからなり、最初に XML データのリレーショナル・ビューを作成してから、次に単純な SQL クエリーを構成して (または DataQuant のウィザードを使用して) リレーショナル・ビューからレポートを生成します。この記事ではまた、DataQuant で XML データを動的に表示する Visual Dashboard を作成する方法についても説明しました。DataQuant または DB2 pureXML についての詳細を学ぶには、「参考文献」セクションに記載した資料を調べてください。
謝辞
この記事の作成に情報提供またはレビューで協力してくれた Isayas Sium 氏、Cindy Saracco 氏、Jason Cu 氏、Blanca Borden 氏、Mary Desisto 氏、Kate Riley Tennant 氏に感謝いたします。
ダウンロード | 内容 | ファイル名 | サイズ | ダウンロード形式 |
|---|
| Sample data files | sampledata.zip | 24.7KB | HTTP |
|---|
More downloads
参考文献 学ぶために
製品や技術を入手するために
議論するために
著者について  | 
|  | Bryan Patterson は、IBM Silicon Valley Laboratory に勤務するシニア・ソリューション・アーキテクトで、データベース管理を専門としています。ソフトウェア業界での経験は、開発、品質保証、製品計画での管理職を含め、20 年以上に及びます。 |
 | 
|  | Dexiong Terry Zhang は、IBM Silicon Valley Lab のソフトウェア・エンジニア (Co-op) です。San Jose State University をコンピューター・サイエンスの学位を取得して卒業しました。2008年に DB2 pureXML Enablement チームに加わり、各種プロジェクトでの pureXML ソリューション統合に取り組んでいます。 |
記事の評価
|