MapForce はデータベース変換のための強力なサポートを搭載した データマッピングと統合 ツールです。データベースデータ、XML、JSON、CSV および他のフラットファイル、 EDI、Excel (OOXML)、Protobuf、XBRL、Web サービス、および他のデータベースフォーマットの組み合わせを変換することができます。
デザイン ウィンドウ内でデータベース構造をロードした際、MapForce は自動的にデータベース スキーマを読み取り、利用可能なデータベース テーブルやビューを選択後、テーブル間のリレーションシップを認識することができます。
データベース マッピングのために必要なコンテンツ モデルすべてをロードしたら、ソースとターゲット構造間に接続線をドラッグすることでマッピングを完成させます。
サポートされるデータベース:
MapForce では、すべてのメジャーなリレーショナル データベースがサポートされており、データベースソース データ、データ処理関数とフィルター、その他の各種データ構造間に対して、グラフィカルなデータベース マッピング デザインを作成することが可能になります。
多くのデータベース マッピングでは、Boolean 条件や SQL、SQL/XML ステートメントをベースにしたソースとターゲット間のデータ操作が要求されます。更に論理的な比較や数学的な計算、文字列処理、データベース内にある特定の値をチェックしたり、データに対して何らかの処理を加える必要が生じることもあります。上のスクリーンショットでは、データ処理関数がソースとターゲット データモデル間を繋ぐライン上にあるボックスとして表示されています。
データ処理関数を使うことで、現実社会で必要とされる変換処理に対応した高度なデータベース マッピングを簡単に行うことができます。例えば、XML または EDI 要素から与えられた条件に従って、データベースの行を抽出するデータベース マッピングを作成することができます。
データ マッピングが定義されると、内蔵の MapForce エンジンにより、1 クリックでマッピングの結果の閲覧と保存を行うことができます。
データベースから XML へのマッピングでは XML 出力ドキュメントが生成され、データベースからフラット ファイルへのマッピングでは CSV や固定長テキスト ファイルが、データベースから EDI へのマッピングでは EDIFACT、X12、または HL7 メッセージが、そしてデータベースから Excel へのマッピングでは Office Open XML (OOXML) マークアップが生成され、XBRL に対するマッピングでは、XBRL 会計報告が生成されます。
データベースへのマッピングでは、(SELECT、INSERT、UPDATE、DELETE ステートメントなどを使用した) SQL スクリプト形式の出力により、MapForce 内部にてターゲット データベースに対するスクリプトを実行する前に編集を行うこともできます。
データベース出力トレースによりマッピングが実行されると、マッピングプロジェクトによりデータベースに加えられた全ての変更を簡単にログすることができます。
トレースがオンに切り替えられると、自動化された方法で後に分析し処理することができるように、データベース挿入、または、更新アクション、または、エラーなどが XML ファイル内にログされます。
データベーストレースはデータベースコンポーネント、テーブル、ストアドプロシージャ、データベースフィールドレベルで有効化することができます。全てのメッセージ、エラーのみのトレース、または、完全にトレースを無効化することもできます。
希望するトレースレベルを選択すると、マッピングプロジェクト内で影響を受けるデータベースコンポーネントがログ構造を表示する XML ツリーで拡張されます。XML 以外の書式でのログファイルを希望する場合、(例えば、テキストファイル、または、他のデータベースなど) MapForce によりサポートされる他のデータ書式でマップすることができます。
出力ボタンをクリックしてマッピングの結果をプレビューする際に、開発者はマッピングが実行される際にトレースログのサンプルを確認することができます。
MapForce はエラーがスローされ、任意でマッピングの残りを継続する場合、データベース変換の影響を受ける個所をロールバックするためのデータベース トランザクション ハンドリングを提供します。
特定のデータベースの制約が無効なデータの挿入、または、更新を回避する場合など、残りのデータベースマッピングの実行の継続を回避しないエラーが発生する場合があります。
データベーストランザクションの有効化の扱いにはエラーの場合ロールバックされるトランザクション内のデータベースコンポーネントによる全ての変更が含まれます。また、残りのマッピングを継続、または、マッピングの更なる実行を停止することを選択できます。データベースコンポーネントレベル、および、テーブルアクションレベルでのトランザクションを有効化することができます。
これはマッピングデザイナーが有効なデータを受信し、無効なデータを無視する場合に役に立ちます。
データベースのマッピングならびに統合機能を補完するため、データベース クエリ タブが MapForce には含まれており、データベースへの問い合わせを直接行うことができます。以下のデータベースのための特化したサポートを使用して、データベース クエリ タブを使ってデータベースへ接続すると、ブラウザーペインに階層構造でそのテーブルが表示されます。
SQL タブでは既存の SQL ファイルを開くか、ドラッグ アンド ドロップや自動補完機能を使用しながら SQL ステートメントを作成することで、SQL や SQL/XML ステートメントの表示、編集、実行を行うことができます。
SQL スクリプトを実行し、その結果をテーブル形式により表示、更に取得したデータと SQL スクリプトの両方を、別々のファイルに保存することができます。
MapForce データベース キー設定により、主キーや外部キー値をどのようにデータマッピングのターゲットであるデータベースに追加するのかカスタマイズすることができます。MapForce から値を指定することもできますし、データベース システムが持つデフォルト値を使用することもできます。
主キーや外部キーリレーションシップがデータベース テーブル内で明示的に定義されていないような状況の場合、MapForce を使って、ソース データに影響を与えること無くこれらのリレーションシップを定義することができます。
データベースへのマッピングを行う場合、データベース テーブル アクションを選択することで、データベースへデータの書き込みがどのように行われるかを制御することができます。この機能により、高度なデータ管理タスクの自動化を柔軟に行うことが可能になります。
直感的なデータベース テーブル アクションダイアログボックスにより、選択されたテーブル内にあるカラムを選択し、データベースにて実行されるアクション (INSERT、UPDATE、DELETE) を定義することができます。
この機能により XML、データベース、 EDI、 XBRL、フラットファイル、Excel、JSON、JSON5、Web サービスやその他のデータベースデータに応じたデータベース行の操作性にて、今までに類を見ないほどの柔軟性が実現しました。
MapForce ではストアド プロシージャを 入力コンポーネント (得られる結果を使用) または出力コンポーネント (データベース内へのデータ挿入や更新) として使用することができるほか、関数呼び出しとしてストアド プロシージャを挿入することで、入力データを受け取り、ストアド プロシージャを実行した後で出力データをその他のコンポーネントへマッピングすることができます。
SQL Server 内のストアド プロシージャで XML ファイルを作成するマッピングがこのスクリーンショットで表示されています。ストアド プロシージャを使用することで、入力パラメーター により指定された従業員 ID (EmployeeID) に対応した管理者のデータがテーブルにて返されます。この例で使用されている従業員 ID は 67 という定数ですが、
パラメーターは計算された値やデータベースから取得されたデータ要素の値といった、別の形式でも与えることができます。
MapForce ではコンテキスト メニューからストアド プロシージャを実行したり、マッピングに使用するデータ構造を取得することができます。マッピングを実行することで XML 出力が得られます。
MapForce を使うことでリレーショナル データベース フィールドに保管されているデータベース XML へ接続することもできます (現在のところ SQL Server と IBM DB2 のみでサポート)。必要な操作はデータベースに登録された XML スキーマかローカルのファイル システムにある XML スキーマをフィールドに割り当てるだけで、データベース フィールドのサブツリーとしてスキーマが表示されます。
SQL クエリはデータベース内部で処理されるため、複雑なデータ マッピングタスクには必ずしも十分とは言えません。MapForce では SQL-WHERE/ORDER コンポーネントにより、入力データベースに対して更なる処理が必要な場合や、マッピング内にあるその他のデータや条件がデータ行の並び替えに影響を与える場合に、データの並び替えを行うことができます。
データベーステーブルアクションダイアログは NULL 値の比較をサポートします。NULL を考慮した比較の機能は、 null 値を含むデータベースをより良く処理する方法を提供します。MapForce ユーザーは、マッピングに含まれるデータベースの型に適用することのできるデータ比較を NULL の値を考慮しつつデータベースマッピングを構成することができます。
右に示されるマッピングは、ターゲットテーブルを重複するエントリを挿入すること無しに更新することが目的です。両方のテーブルは、電子メールフィールドに NULL の値を許可しており、 NULL 電子メールフィールドを持つ一致する名前エントリはが各テーブルに存在することができます。
ターゲットのデータベーステーブルの横のアクションアイコンをクリックすると、データベースアクションダイアログが開かれます。データベースのルールでは、等価として扱われない場合でも、電子メールフィールドの横の NULL 等価チェックボックスにより、MapForce はソースとターゲット内の NULL 値をデータマッピングの目的のために等価として扱うことができます。
MapForce では、 XML スキーマ、または、 DTD コンテンツモデルをベースにした データベースマッピングがサポートされています。XML から/へデータベースマッピングを作成するには、XML スキーマとデータベースを MapForce にドロップしドラッグし、 XML ノードとデータベースオブジェクト間に接続線をドラッグします。
XML インスタンスドキュメントに関連付けられているスキーマが無い場合、XML インスタンスドキュメントから XML スキーマを MapForce により生成することができます。
新しい要素または属性が XML スキーマで定義されていない場合でも、XML スキーマデザイン内の <xs:any> 要素と <xs:anyAttribute> により新しい要素または属性が XML インスタンスドキュメント内の対応する場所に置くことができます。この機能は XML ワイルドカードとして知られており、広範囲のビジネスの業界基準をサポートし、多種の XML スキーマをカスタマイズできるため人気のあるメカニズムです。
MapForce は XML または他の出力フォーマットでの出力のマッピングでの <xs:any> と <xs:anyAttribute> をサポートします。XML マッピング入力コンポーネント内の <xs:any> または <xs:anyAttribute> はワイルドカード選択ダイアログを開きます。
<xs:any> 要素および <xs:anyAttribute>は XML スキーマデザインによく使用されていて、 MapForce でのサポートはユーザーからの頻繁なリクエストを受けてきました。
MapForce は、JSON (JavaScript Object Notation) モデルをベースにしたデータベースマッピングの定義および実行をサポートします。JSON インスタンスまたは JSON スキーマ ファイルをデータ ベースマッピングのソースまたはターゲット コンポーネントとして追加することができます。MapForce は JSON Draft 04 スキーマをベースにした JSON ファイルの読み込みおよび書き込みができます。
下で示されているように、 JSON コンポーネントは適切な要素構文と明確に指定されたデータ型と共に表示されます。
MapForce 関数ライブラリのデータ処理関数は、他のコンポーネントの使用と同様 JSON データを変換する際に適用されます。
JSON または JSON5 ファイルをデータベースマッピングに追加する際、MapForce は自動的にスキーマまたはインスタンス ファイルを検知します。JSON または JSON5インスタンスファイルには、 MapForce よりスキーマを参照するか、または自動的に生成するかを促します。MapForce は JSON または JSON5 スキーマをコンポーネントの構造を構築する際に使用します。
MapForce Serverr には、 MapForce のために開発された内蔵のデータ変換エンジンが含まれます。このエンジンはサーバー環境で作動するために大幅に拡張されています。MapForce Server は 以下のすべての組み合わせのデータ変換を MapForce 内で定義されたデータマッピングをベースに実行します 。(XML、データベース、EDI、 XBRL、フラットファイル、Excel、JSON およびまたは MapForce Server 実行ファイルに保存された前処理済みかつ最適化された データマッピングを使用した Web サービス)。MapForce Server の並列処理、マルチスレッド、バルク SQL マージ、クロスプラットフォームへのサポートなどの機能によりデータ変換を次のレベルに押し上げます。
早いパフォーマンスと大半のデータベースマッピングのメモリの占有領域の制限を可能にします。MapForce Server は FlowForce Server の管理下、またはコマンドラインまたは、プログラム面で API からの実行によるスタンドアロン構成により作動します。
MapForce マッピングのデザインとテストが完了した後、MapForce Server により繰り返し行われるデータ変換処理を自動化することができるようになります。
MapForce はデータマッピングを前処理、最適化した後 MapForce Server のコマンドライン実行によりMapForce Server 実行ファイルに保存され FlowForce Server ジョブとしてアップロードされます。
MapForce Server が FlowForce Server の管理下で作動すると、データマッピングは、ジョブの一部として定義されたトリガーとして FlowForce Server のジョブステップとして実行されます。。例えば、新規 XBRL インスタンスドキュメントがディレクトリに追加されると、 RaptorXML+XBRL Server を使用して最初に検証し、 XBRL から特定のデータを抽出し、データベースに挿入するなどの複数のステップの FlowForce Server ジョブがトリガーされます。
各行に個々の入力ステートメントを使用する通常の方法に対してバルク挿入は単一の SQL ステートメントにより大量のデータをデータベース テーブルに挿入するオペレーションです。データ ベースエンジンのオーバー ヘッドの処理が大幅に減らされるので、パフォーマンスはより速くなりました。MapForce Server での例を用いたバルク挿入のテストは個々の挿入ステートメントの10倍の速度で行うことを証明しました。
バルク挿入は複数のユーザーがいる環境でとても有利です。1人のユーザーが発する一連の挿入コマンドは同じテーブルを選択リクエストする別のユーザにより中断されることがあります。挿入は中断の後継続されます。このようなシチュエーションでは選択オペレーションは未完全または無効なデータを作成する場合があります。