---
title: "CSVファイルを比較する方法、またはCSVファイルとデータベースのテーブルを比較する方法"
date: "2022-05-04"
categories: 
  - "data-integration"
  - "database"
  - "tools"
tags: 
  - "compare-csv"
  - "compare-data"
  - "diff-merge-tool"
  - "diffdog"
  - "diffdog-server"
description: CSVファイルを他のCSVファイルやデータベースのテーブルと比較することは、よくある要件です。DiffDogがどのようにしてこれを簡単にするのか、ご説明します。

---
Status: #blog

Tags:  #compare-csv #compare-data #diff-merge-tool #diffdog #diffdog-server

Categories: [data-integration](/blog/ja/category/data-integration.md) | [database + sql](/blog/ja/category/database-sql.md) 
# CSVファイルを比較する方法、またはCSVファイルとデータベースのテーブルを比較する方法

CSVファイルは、構造化されたデータを汎用的な形式で記録するための、迅速かつ便利な方法です。CSVファイルは非常に簡単に作成できるため、非常に大きなCSVファイルでも、類似した複数のバージョンが急速に増殖することがあります。そのため、目的のバージョンを見つけるために、CSVファイルを比較する必要が生じることがよくあります。ETL（Extract, Transform, Load）のシナリオでは、データアナリストが、検証のため、またはデータを更新するために、CSVファイルとデータベースのテーブルを比較したい場合があります。

Altova社のDiffDogは、XMLに対応した独自の差分比較・マージツールであり、CSV形式をネイティブなファイル形式としてサポートしており、比較に使用できます [データを比較し、必要な部分を選択的に統合する](https://www.altova.com/ja/diffdog) CSV形式のファイルを別のCSV形式のファイルに変換したり、CSVファイルとデータベースのテーブル間でデータを移行したりすることができます。具体的な例を見てみましょう。

![](/blog/images/107839721_700px.jpg)

<!--more-->

CSVファイルは構造化されたデータを含むため、DiffDogの「データベースデータ比較」機能を使用してCSVファイルの比較を行うことができます。これは、ファイルメニューまたはツールアイコンから起動できます。起動すると、新しい比較ウィンドウが開かれ、ユーザーは比較対象となる左側と右側のファイルをそれぞれ選択します。

[![他の構造化データと同様に、CSVファイルを比較することができます](/blog/images/open-compare-csv.png)](open-compare-csv.png)

DiffDogでは、カンマ、タブ、またはセミコロンを区切り文字として使用したCSVファイルを比較できます。また、ヘッダー行の有無に関わらず、さまざまな形式のファイルを比較することも可能です。

以下のスクリーンショットでは、ユーザーが左側と右側の比較ファイルを選択し、最上位レベルでファイルをマッピングしてすべての列を比較しています。比較を実行するには、ツールバーの右上に表示されている緑色の「比較」アイコンをクリックします。

[![2つのCSVファイルが同一であるか、異なるかを簡単に識別できます。](/blog/images/compare-csv-result.png)](compare-csv-result.png)

各ファイルについて、オブジェクト名と接続リンクにある「≠」マークの近くに、行数を記載しています。これらのCSVファイルは行数が同じですが、内容は一致していません。列名は、それぞれのオブジェクト名の下にリスト表示されています。特定の列の比較を行いたくない場合は、該当する接続を個別に選択解除することができます。

次に、CSVファイル間の具体的な違いを確認したいと思います。不一致を示す線をクリックすると、詳細な結果を表示するオプションを含むメニューが表示されます。

[![CSVファイルを比較し、詳細な結果を表示します](/blog/images/open-detailed-results.png)](open-detailed-results.png)

結果ウィンドウには、両方のファイルの詳細な情報が表示されます。

[![CSVファイル比較結果の詳細表示](/blog/images/csv-compare-results-1.png)](csv-compare-results-1.png)

画面上部のナビゲーションツールバーを使用すると、ファイル間の最初の違いをすばやく特定できます。たとえば、顧客番号544に関する注文が誤って入力されており、別の地域や担当者に再分類する必要があるかもしれません。

このウィンドウ内で、右クリックメニューを使用して、CSVファイル間の個別の差異を選択し、それらを統合することができます

[![CSVファイルを比較し、差異を統合します](/blog/images/detailed-csv-compare-results-1.png)](detailed-csv-compare-results-1.png)

変更点（どちらの方向からの変更でも）を統合し、既存のCSVファイルを更新するか、新しいファイル名で新しいファイルとして保存することで、結果を保存できます。

### CSVファイルとデータベーステーブルの比較

CSVファイルとデータベースの比較を行うには、接続ウィザードを使用して、比較対象となるデータベースを左右どちらかのデータソースとして指定するだけです。以下に示された図では、左側に元のCSVファイル、右側にSQLiteデータベースが表示されています。

[![CSVファイルとデータベースのテーブルを比較する](/blog/images/csv-to-database-comparison.png)](csv-to-database-comparison.png)

この例では、CSVファイルとデータベーステーブルの内容が一致しています。もし差異がある場合、上記で説明したCSV同士の比較・マージ機能は、CSVとデータベースの比較にも適用できます。データベーステーブルへの変更は、結果ウィンドウから直接、瞬時にデータベースに反映させることができます。

サポートされているデータベースは以下の通りです：

• ファイアバード

• IBM DB2 for iSeries®

• IBM DB2®

• Informix®

• MariaDB

• Microsoft Access™

• Microsoft® Azure SQLデータベースサービス

• Microsoft® SQL Server®

• MySQL®

• Oracle®

• PostgreSQL

• Progress OpenEdge 製品に関する情報

• SQLite (SQLiteデータベース)

• Sybase® ASE (データベースシステム)

• テラデータ (Teradata)

### DiffDogサーバーを使って、CSVファイルの比較を自動化します

あなたは～することができます [差分レポートの自動生成](https://www.altova.com/ja/diffdog-server) DiffDog Serverを使用すると、CSVファイル同士の比較や、CSVファイルからデータベースへのデータ移行の比較を行うことができます。DiffDog Serverは、ネットワーク内のいずれかのマシンにインストールすると、サービスとして動作します。比較を実行するには、DiffDog Serverをコマンドラインインターフェースから、または実行可能なスクリプトを通じて呼び出すことができます。

もし、同じデータ比較を頻繁に行う必要がある場合は、DiffDogで一度設定を行い、その設定をデータベースデータ比較ファイル（.dbdif）として保存できます。このファイルは、DiffDog Serverによって自動的に実行することができます。

DiffDog Serverは、Windows、Windows Server、Linux、およびmacOSの各プラットフォームで利用可能です。

[無料トライアル版をダウンロードして、DiffDogがCSVファイルの比較をどれほど簡単にできるか、ご自身で体験してみてください](https://www.altova.com/ja/diffdog/download)
