---
title: データマッピングプロジェクトによって行われた変更を記録するためのデータベース追跡機能
date: 2019-05-01
categories:
  - data-integration
  - database
  - database-mapping
  - database-tracing
tags:
  - data-integration
  - data-mapping
  - database-mapping
  - database-tracing
  - mapforce
description: Altova MapForceは、主要なリレーショナルデータベースに対応しており、データマッピングプロジェクトによって行われた変更を記録するためのデータベース追跡機能を提供します。
---
Status: #blog

Tags:  #data-integration #data-mapping #database-mapping #database-tracing #mapforce

Categories: [data-integration](/blog/ja/category/data-integration.md) | [database + sql](/blog/ja/category/database-sql.md) | [data-integration](/blog/ja/category/data-integration.md) | [database-tracing](/blog/ja/category/database-tracing.md)
# データマッピングプロジェクトによって行われた変更を記録するためのデータベース追跡機能

データベース管理者やその他のデータ専門家は、特に自動スクリプトやその他の操作によって更新が行われる場合、重要なデータベースの変更履歴を記録しておきたいと考えることがよくあります。データベースの追跡機能を使用することで、管理者は重要な変更や異常を追跡し、エラーからの復旧を支援できます。Altova MapForceは、データマッピングプロジェクトがデータベースに対して実行される際に加えられた変更を記録するために、[主要なリレーショナルデータベースすべて](https://www.altova.com/ja/mapforce#db_mapping)に対応したデータベース追跡機能を備えています。

トレース機能が有効になっている場合、データベースへの挿入や更新といった操作、またはエラーなどが、XMLファイルに記録されます。後でこのファイルを分析したり、自動的に処理したりすることができます。

データベースの追跡機能は、データベース全体、テーブル、ストアドプロシージャ、またはデータベースの特定のフィールドのレベルで有効にすることができます。 すべてのメッセージを追跡するか、エラーのみを追跡するか、または追跡機能を完全に無効にすることも可能です。

![](/blog/images/container_ship2.jpg)

MapForceは、ターゲットデータベースへのマッピング実行中に発生するエラーを追跡するだけでなく、エラーが発生した場合に、影響を受けたデータベースデータの該当部分をロールバックするデータベーストランザクション処理もサポートしています。その後、必要に応じて、残りのマッピング処理を続行することができます。

<!--more-->

データベースのトランザクション処理を有効にすると、データベースコンポーネントが行うすべての変更がトランザクション内に包含され、エラーが発生した場合はロールバックされます。また、エラー発生時に、マッピング処理の残りの部分を続行するか、それともマッピング処理の実行を停止するかを選択できます。トランザクションは、データベースコンポーネントレベルと、テーブル操作レベルの両方で有効にすることができます。

データベースの追跡の例を見てみましょう。

MapForceのサンプルフォルダには、「Altova_Hierarchical_DB」という名前のマッピングが含まれており、これはXMLドキュメントから階層構造を持つデータを抽出し、それをデータベースのテーブルに格納するためのものです。

[![XMLファイルからデータベースへのデータマッピング。](/blog/images/data-mapping-1.png)](data-mapping-1.png)

データベースの上部にある青いバーを右クリックすると、プロパティダイアログが開きます。このダイアログには、トレース機能を有効にするオプションと、トレースログファイルの指定が含まれています。トレース機能は、無効にすることも、エラーのみを記録するように設定することも、すべての操作を記録するように設定することも可能です。また、このダイアログで、データベースのトレースログファイルの名前と保存場所を指定できます。

[![データベースのトレースレベル](/blog/images/database-tracing-levels.png)](database-tracing-levels.png)

マッピングを実行するには、マッピング領域の下にある「出力」ボタンをクリックします。すると、2つのファイルが生成されます。

まず、以下にSQLスクリプトのプレビューが表示されています。データベースは、メニューの「出力」から「SQLスクリプトの実行」オプションが選択されるまで変更されません。2番目のファイルは、XMLトレースログのプレビューです。

[![データマッピングSQLスクリプトのプレビュー](/blog/images/data-mapping-SQL-script.png)](data-mapping-SQL-script.png)

[![データベースのトレースログファイルのプレビュー](/blog/images/tracelog-preview.png)](tracelog-preview.png)

追跡ログは、上記2行目と3行目に記載されているように、スクリプトの実際の実行結果に基づいて、後ほど更新されます。

### データベースの追跡機能のカスタマイズ

場合によっては、特定の操作のみを追跡したいことがあります。MapForceでは、テーブル、フィールド、またはストアドプロシージャのレベルで、追跡機能をカスタマイズできます。ここでは示されているマッピングにおいて、例えば、エラーをすべて追跡し、さらに、Personテーブルに追加されたすべての氏名（名と姓）の記録を生成したい場合があります。

これを行うには、まずデータベースの最上位レベルのトレースを「エラー」に設定します。次に、Personテーブルのトレースを「常に」に設定し、表示または非表示にするフィールドを選択します

[![データベースの追跡に使用する項目を選択する](/blog/images/database-trace-fields.png)](database-trace-fields.png)

SQLスクリプトを実行すると、プレビューウィンドウに各SQLコマンドの結果が表示されます。以下に示すスクリーンショットでは、強調したい名前を太字で示しています。

![](/blog/images/SQL-execution-result.png)

追跡ログには、Personテーブルに追加されたすべての名前がリスト形式で記録されています

![](/blog/images/tracelog-result.png)

データベースのマッピングに追加された追跡機能は、MapForce Serverによって自動モードでマッピングが実行される場合や、FlowForce Serverの制御下で実行される場合にも適用されます。さらに、FlowForce Serverのジョブを利用することで、出力ログのXMLファイルを自動的に処理し、カスタマイズされたレポートを作成することも可能です。

今回の例の結果をさらに検証するために、DatabaseSpyという専用ツールを使ってデータベースを開くことができます [マルチデータベースのクエリ、設計、およびデータベース比較ツール](https://www.altova.com/ja/databasespy), そして、テーブルの内容を直接確認することができます

[![データマッピングの実行後のデータベーステーブルの内容](/blog/images/final-table-contents.png)](final-table-contents.png)

今後の記事では、データベースのトランザクション処理について詳しく解説し、エラーが発生した場合に、影響を受けたデータベースデータの部分をロールバックする方法を紹介します。それまでの間、この例を参考にしたり、ご自身のデータベースに合わせてデータマッピングを試したりして、データベースの追跡機能を試してみてください。そのために、[MapForceの無料トライアル版をダウンロード](https://www.altova.com/ja/download)してください。
