★★★:よくある

本記事ではDr.Sum DataLoaderで差分更新でデータをインポートする機能(アップデートローダー機能)について紹介します!
頻繁に最新のデータが見たいけど、データ量が多くて毎回全件洗い替えすると大変!といった場合に便利な機能です。

Dr.Sum DataLoaderとは?

Dr.Sum のオプション製品の一つで、データのインポート処理を効率的に行うためのツールです。※ オプション製品のため標準機能では利用できません。

Dr.Sum DataLoaderには大きく分けて以下の2つの機能があります。

・アップデートローダー機能
インポート元の指定したキー項目を参照し、指定したキー項目のデータがあれば更新し、無ければ追加する機能です。
インポート元はCSVやExcel、もしくはJDBC・ODBCで接続可能なデータベースであればOKです。

・同期機能
Dr.Sumと接続しているデータベースで行われた追加・更新・削除の操作を、Dr.Sum側のテーブルにも同期する機能です。
ただし、接続元のデータベースはOracle、SQL Server、DB2の3つに限られます。

キー項目ってなに?

キー項目とは、「値が分かればテーブルの行を一意に決定できる」項目です。
一般的に「主キー」や「プライマリキー」とも呼ばれており、下記の条件を満たす項目を指します。
①値を持っていること(NOT NULL制約)
②重複がないこと(UNIQUE制約)

下の例でいうと、「社員コード」がキー項目として設定できます。その他の項目は、空欄があったり重複データがあるためキー項目には設定できません。
また、社員コード=0003で探すと「東京支店、第一営業部の高宮ゆり」が一意に見つかります。

アップデートローダー機能について

アップデートローダー機能とは「インポート元の指定したキー項目を参照し、データがあれば同じ行の他項目を更新、データが無ければ行を追加する機能」です。
全件洗い替えだと件数分の挿入処理が行われるため時間がかかりがちです。

アップデートローダー機能による差分更新を利用すれば、最小限の処理で更新・追加が可能です。

日中に最新のデータを高頻度で見たい場合などに便利な機能です。

アップデートローダー機能の使い方

NOT NULL・UNIQUE制約を設定する

アップデートローダー機能は、キー項目の有無によって更新するか追加するか判断をします。
そのため、インポート先のテーブルのどの項目がキー項目か指定する必要があります。

キー項目の設定方法は以下です。
・Dr.SumのEnterprise Managerの画面から、対象のテーブルの上で右クリック→[プロパティ]

・キー項目となる項目(例では「顧客コード」)に[NOT NULL]及び[UNIQUE]を設定します。

改めてのご説明になりますが、NOT NULLはキー項目に空のデータは存在してはいけないという制約、UNIQUEはキー項目に重複したデータはあってはいけないという制約です。
当然ですがこれらの制約に反したデータがある場合はエラーが出てしまいます。

[キーが重複したらアップデート]にチェック&キー項目となる項目名を指定

次にインポート時に[キーが重複したらアップデート]にチェックを入れます。
最後に[キーとなる項目]にテーブルのキー項目を指定します。(例では「顧客コード」)

[キーが重複したらアップデート]は通常グレーアウトして選択できませんが、Dr.Sum DataLoaderがあれば利用できるようになります。

コマンドでインポート

コマンドでインポートする際は、コマンドの引数「import_mode」に[3]を設定することでアップデートローダー機能でのインポートが可能です。
コマンドでインポートについては下記の記事やマニュアルが参考になります。

参考:【自動で取り込み】データベースにCSVデータをインポートしよう~CSV自動編~
参考:テーブルにデータをインポートする

まとめ

今回はDr.Sum DataLoaderのアップデートローダー機能について紹介しました。
日中に最新のデータを高頻度で見たい場合に便利です。ぜひ使ってみてください!