MapForceは、データ統合およびETLツールであり、データベース変換において強力な機能を提供します。 データベースデータとXML、JSON、PDF、CSVなどのフラットファイル、EDI、Excel、protobuf、XBRL、Webサービス、Shopify/GraphQL、さらには他のデータベース形式など、あらゆる組み合わせでの変換が可能です。
デザインウィンドウにデータベース構造を読み込むと、MapForceは自動的にデータベースのスキーマを解釈し、利用可能なデータベースのテーブルやビューを選択できるようにし、テーブル間の関係を認識します。その後、データベースの構造を視覚的に確認することができます。
データベースのマッピングに必要なコンテンツモデルをすべて読み込んだら、ソースとターゲットの構造を結ぶ線をドラッグして接続するだけで、マッピングを完了できます。
サポートされています。 関係性の データベース:
サポートされています。 NoSQL データベース:
MapForceは、主要なリレーショナルデータベースだけでなく、一般的なNoSQLデータベースもサポートしており、データベースのソースデータ、データ処理機能やフィルター、そして様々な種類のデータ構造間のグラフィカルなデータマッピング設計を可能にします。これにより、一般的なデータベース移行シナリオに対応できます。例えば、.. MySQLからPostgreSQLへの移行。また、その他にも、1対多の関係や、データ変換を連続的に行うなど、数えきれないほどの可能性が存在します。
MapForceには、SQLデータベースやNoSQLデータベースへのデータ書き込みを可能にする、強力なETLツールが搭載されています。これには、XML、JSON、Shopify/GraphQLなどのデータ形式をデータベースに変換するだけでなく、企業の合併・買収やシステム移行後などに、ある種類のデータベースから別の種類のデータベースへデータを変換することも含まれます。
多くのデータベース変換では、ソースとターゲットのデータ間で、ブール条件やSQL、SQL/XMLステートメントに基づいてデータの操作が必要になります。論理的な比較、数学的な計算、文字列操作、特定の値を備えたデータベースデータの確認など、さまざまな処理が必要になる場合があります。上記のスクリーンショットでは、データ処理機能が、ソースデータモデルとターゲットデータモデルを結ぶ線の中にあるボックスとして表示されています。
データ処理機能を使用することで、様々な実用的なデータ変換ニーズに対応し、データベースのマッピングをリアルタイムで高度に実行できます。例えば、XMLやEDIメッセージを使用して、XMLまたはEDIの要素に含まれるフィルタ条件に基づいて、データベースのレコードを抽出するようなマッピングを構築することができます。
マッピングが定義されると、内蔵されたMapForceエンジンにより、ワンクリックで結果を確認し、保存することができます。
データベースとXMLのマッピングは、XML形式の出力ドキュメントを生成します。データベースとプレーンテキストファイルのマッピングは、CSV形式または固定長テキストファイルで出力されます。データベースとEDIのマッピングは、EDIFACT、X12、またはHL7形式のメッセージを生成できます。データベースと.. Excel Office Open XML (OOXML) のマークアップを生成し、XBRLへの対応を行うことで、XBRL形式の財務報告書を作成できます。
データベースへのマッピング処理は、SQLスクリプト(例えば、SELECT、INSERT、UPDATE、DELETE文)や、NoSQLスクリプトの形式で結果を出力し、これらのスクリプトをMapForce内で直接、対象のデータベースに対して実行することができます。
加えて、瞬時に変化させることができるだけでなく、 高性能なETL(抽出、変換、ロード)ツール。 これは、MapForce Serverを通じて利用可能です。
データベース出力の追跡機能を使用すると、マッピングやETLプロジェクトがデータベースに対して行ったすべての変更を、処理実行時に簡単に記録することができます。
トレース機能が有効になっている場合、データベースへの挿入や更新といった操作、またはエラーが発生すると、それらの情報がXMLファイルに記録されます。後でこのファイルを分析したり、自動的に処理したりすることができます。
データベースの追跡機能は、データベース全体、テーブル、ストアドプロシージャ、またはデータベースの特定のフィールドのレベルで有効にすることができます。 すべてのメッセージを追跡するか、エラーのみを追跡するか、または追跡機能を完全に無効にすることも可能です。
希望するトレースレベルを選択すると、マッピングプロジェクト内の該当するデータベースコンポーネントに、ログ構造を示すXMLツリーが追加されます。もしログファイルをXML以外の形式で保存したい場合は、MapForceがサポートする他のデータ形式(例えば、テキストファイルや別のデータベースなど)にデータをマッピングすることができます。
マッピングの結果をプレビューするために「出力」ボタンをクリックすると、開発者は、マッピングが実行された際にトレースログがどのような形式になるかの例を確認することができます。
MapForceは、データベース変換中にエラーが発生した場合、影響を受けたデータベースの一部をロールバックする機能を提供します。また、必要に応じて、残りのマッピング処理を続行することも可能です。
データベースのマッピング処理中に、エラーが発生することがあります。しかし、そのエラーがデータベース全体の処理を停止させるものではなく、例えば、特定のデータベースの制約によって、ETLプロセスが不正なデータを挿入または更新できない場合に、そのようなエラーが発生することがあります。
データベースのトランザクション処理を有効にすると、データベースコンポーネントが行うすべての変更がトランザクション内に包含され、エラーが発生した場合はロールバックされます。また、エラー発生時に、マッピング処理の残りの部分を続行するか、それともマッピング処理の実行を停止するかを選択できます。トランザクションは、データベースコンポーネントレベルと、テーブル操作レベルの両方で有効にすることができます。
これは、マッピング設計者が、有効な入力データを確実に取得し、同時に無効なデータは無視したい場合に非常に役立ちます。
SQLを使用するユーザー向けに、MapForceにはデータベースへの直接的なクエリを実行するための「データベースクエリ」タブが用意されています。このタブを使用してデータベースに接続すると、MapForceはブラウザウィンドウ内に、そのデータベースのテーブルを階層構造のツリー形式で表示します。
その後、SQLエディタのタブを使用して、既存のSQLファイルを開くか、ドラッグ&ドロップや自動補完機能を使ってSQL文を新規作成し、SQLまたはSQL/XMLの文を表示、編集、実行することができます。
SQLスクリプトを実行し、その結果をテーブル形式で表示することができます。また、取得したデータとSQLスクリプトをそれぞれ個別のファイルに保存することも可能です。
MapForceのデータベースキー設定では、データマッピングの対象となるデータベースに、主キーおよび外部キーの値がどのように追加されるかをカスタマイズできます。キーの値は、MapForce内で直接入力することも、データベースシステムに自動的に値を生成させることも可能です。
データベースのテーブルで、主キーや外部キーの関係が明示的に定義されていない場合でも、MapForceを使用することで、元のデータに影響を与えることなく、これらの関係を直接定義することができます。
データベースにデータをマッピングする際、MapForceでは、データベースのテーブルに対する操作を選択することで、データがデータベースにどのように書き込まれるかを制御できます。これにより、最も高度なデータ管理タスクを自動化するための柔軟性が得られます。
使いやすい「データベーステーブル操作」ダイアログボックスを使用すると、選択したテーブル内の列を定義し、データベースで実行する操作(挿入、更新、削除)を決定することができます。
これにより、MapForceを通じて、XML、データベース、EDI、XBRL、テキストファイル、Excel、JSON、JSON5、Webサービス、またはその他のデータベースデータに対して、データベースのレコードを前例のない柔軟性で操作することが可能になります。
MapForceは、ストアドプロシージャを、入力コンポーネント(結果を提供するプロシージャ)または出力コンポーネント(データを挿入または更新するプロシージャ)として強力にサポートしています。また、ストアドプロシージャを関数のように呼び出すことも可能です。これにより、ユーザーは入力データを指定し、ストアドプロシージャを実行し、その出力データを他のコンポーネントに読み込んでマッピングすることができます。
このスクリーンショットは、SQL Serverにおけるストアドプロシージャが、XMLファイルを生成するためにどのように使用されているかを示しています。このプロシージャは、入力パラメータとして指定された従業員ID(この例では定数67)の上位にある組織構造におけるすべてのマネージャーの情報を表形式で返します。
そのパラメータは、計算によって得られた値として、あるいはデータベース内の別の場所から取得したデータ要素として提供することも可能です。
MapForceは、コンテキストメニューを提供し、ユーザーはこれを利用して保存されたプロシージャを実行し、マッピングに使用するデータ構造を表示することができます。 図示されたマッピングを実行すると、XML形式の出力が生成されます。
MapForceでは、リレーショナルデータベースのフィールドに格納されているXMLデータを接続し、マッピングすることも可能です(現時点ではSQL ServerおよびIBM DB2に対応)。 データベースに登録されているXMLスキーマ、またはローカルファイルシステムにあるXMLスキーマを、該当のフィールドに割り当てるだけで、MapForceはそのスキーマをデータベースフィールドのサブツリーとして表示し、マッピング作業を支援します。
データベース内で実行されるSQLクエリだけでは、複雑なデータマッピング作業を常に十分に行えるとは限りません。MapForceは、SQL-WHERE/ORDERコンポーネントを通じて、データベースからの入力データに対して追加の処理が必要な場合、またはマッピングにおける他のデータや条件がデータの並び順に影響を与える場合に、データベースのソート機能を強化します。
データベーステーブル操作ダイアログでは、NULL値の比較がサポートされています。NULL値を考慮した比較機能は、NULL値を含むデータベースを扱う際に、より適切な方法を提供します。MapForceのユーザーは、データベースのマッピング設定を調整することで、マッピングに関わるデータベースの種類に応じたルールに基づいて、NULL値を考慮したデータ比較を行うことができます。
右側に表示されているデータマッピングは、重複したデータを挿入することなく、対象テーブルを更新することを目的としています。両方のテーブルは、メールアドレスのフィールドがNULL値を許容するように定義されているため、各テーブルに、名前が一致するもののメールアドレスがNULLであるレコードが存在する可能性があります。
「アクション」アイコンをクリックすると、対象のデータベーステーブルに対して「データベースアクション」ダイアログが開きます。メールアドレスのフィールドにある「NULLと等しい」チェックボックスをオンにすると、MapForceはデータマッピングの際に、ソースとターゲットのNULL値を等しいものとして扱います。ただし、これはデータベースのルールでは等しくないと見なされる場合でも適用されます。
MapForceは、XMLスキーマまたはDTDに基づいて、データベースとXML間のマッピングをサポートします。データベースとXML間のマッピングを開発するには、XMLスキーマとデータベースをMapForceに読み込み、XMLのノードとデータベースのオブジェクトの間を結ぶ線を引き込むだけで完了します。
XMLインスタンスドキュメントに関連付けられたスキーマがない場合、MapForceは、そのXMLインスタンスドキュメントからXMLスキーマを自動的に生成します。
XMLスキーマの設計において、`<xs:any>`要素と`<xs:anyAttribute>`を使用することで、XMLスキーマに定義されていない新しい要素や属性を、対応する場所に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形式のデータやスキーマファイルを、ソースまたはターゲットのデータとして追加することができます。MapForceは、JSON Draft 04スキーマに基づいて、JSONファイルの読み書きを行います。
以下に示すように、JSONの構成要素は、適切な要素構文で表示され、それぞれのデータ型が明確に示されています。
MapForceの関数ライブラリに含まれるデータ処理機能は、他のコンポーネントと同様に、JSONデータの変換にも適用できます。
データベースのマッピングにJSONまたはJSON5ファイルを追加すると、MapForceは自動的にそれがスキーマファイルなのか、インスタンスファイルなのかを検出します。JSONまたはJSON5のインスタンスファイルの場合、MapForceはスキーマを選択するか、自動的に生成するかどうかを尋ねてきます。MapForceは、JSONまたはJSON5のスキーマを使用して、コンポーネントの構造を構築します。
Altova MapForce Server この製品には、MapForce用に開発された組み込みデータ変換エンジンが含まれており、サーバー環境での動作を大幅に強化しています。MapForce Serverは、以下の機能を提供します。 データ変換処理 XML、PDF、データベース、EDI、XBRL、テキストファイル、Excel、JSON、および/またはWebサービスなど、あらゆる種類のデータ形式に対して、実行ファイルに格納された、事前に処理・最適化されたデータマッピングを利用して処理を行うことができます。 MapForceで定義されたデータマッピング。MapForce Serverは、サーバー機能(並列処理、マルチスレッド、バルクSQL挿入、クロスプラットフォーム対応など)を備え、データETLをさらに高度なレベルに引き上げます。
前処理を行うことで、ほとんどのデータ変換処理において、処理速度の向上とメモリ使用量の削減を実現できます。MapForce Serverは、FlowForce Serverによって管理され、スタンドアロン環境でコマンドラインから実行することも、APIを通じてプログラム的に実行することも可能です。
MapForceでデータマッピングを設計・テストした後、MapForce Serverによって実行することで、繰り返し行われるデータ変換を自動化し、ビジネスプロセスを効率化することができます。
MapForceは、データマッピングを事前に処理し、最適化します。そして、それらをMapForce Serverのコマンドライン実行用のファイルに保存し、MapForce Serverによって実行できるようにします。また、これらのマッピング情報をFlowForce Serverのジョブで使用するためにアップロードすることも可能です。
MapForce ServerがFlowForce Serverによって管理されている場合、データマッピングとETLプロセスは、FlowForce Serverのジョブの一部として定義されたトリガーに基づいて、FlowForce Serverのジョブステップとして実行されます。例えば、新しいXBRLインスタンスドキュメントが特定のディレクトリに配置されると、それがトリガーとなり、複数のステップからなるFlowForce Serverのジョブが開始されます。このジョブは、まずRaptorXML+XBRL Serverを使用してファイルを検証し、次にMapForce Serverを実行してXBRLから特定のデータを抽出し、データベースに挿入します。
バルクインサートは、特定のデータベースで利用可能な機能で、通常は各行に対して個別のINSERT文を使用する方法とは異なり、大量のデータを単一のSQL文でデータベーステーブルに挿入することができます。データベースエンジンによる処理負荷が大幅に削減されるため、パフォーマンスが大幅に向上します。MapForce Serverのテストにおいて、バルクインサートは個別のINSERT文と比較して、10倍以上の速度で処理できることが確認されています。
バルク挿入は、マルチユーザー環境でも利点があります。あるユーザーがデータベースに送信した一連の挿入コマンドが、別のユーザーが同じテーブルに対してSELECTリクエストを送信することで中断される可能性があります。その場合、挿入処理が再開されると、データが不完全または無効になる可能性があります。








