cpimportを使用したロードでCSVデータとテーブルの列でマッピングを行うことが可能です。

【使用用途】
・テーブルの列とCSVデータの順番が違う。
・CSVデータがテーブルの列より少ない。
・CSVデータがテーブルの列より多い。


cpimportでのデータマッピング手順

1.colxmlコマンドでデータベーススキーマのXMLジョブファイルを作成
2.XMLジョブファイルのデータマッピング方法を修正
3.修正したXMLジョブファイルを使用してロード


使用例

maping

テーブル定義

ロードするテーブル(tbl1)の定義は以下になります。
※スキーマ名はinfdbです


CSVデータ

ロードするCSVデータ(tbl1.tbl)は以下になります。
※データの区切りは”|”です


colxmlコマンドでデータベーススキーマのXMLジョブファイルを作成

下記コマンドで、XMLジョブファイル出力先にJob_< ジョブ番号 > .xmlジョブファイルが作成されます
【構文】
/usr/local/Calpont/bin/colxml -t < テーブル名 > -j < 任意のジョブ番号 > -p < XMLジョブファイルの出力先 > < スキーマ名 >

【実行例】
/usr/local/Calpont/bin/colxml -t tbl1 -j 123 -p /root/work infdb

※colxmlコマンドの詳細については「InfiniDB管理者ガイド」を参照してください


XMLジョブファイルのデータマッピング方法を修正

【修正前】Job_123.xmlジョブファイル



【修正後】Job_123.xmlジョブファイル
各列のマッピングを修正します
ロードしないCSVデータには”IgnoreField/”を指定
ロードしない列には”DefaultColumn”を指定


修正したXMLジョブファイルを使用してロード

cpimportコマンドで修正したXMLジョブファイルを読み込みロードする
【構文】
/usr/local/Calpont/bin/cpimport -j < ジョブ番号 > -p < XMLジョブファイルのディレクトリ > -f < データファイルのディレクトリ >

【実行例】
/usr/local/Calpont/bin/cpimport -j 123 -p /root/work -f /root/work

※cpimportコマンドの詳細については「InfiniDB管理者ガイド」を参照してください


ロード後の検索結果

指定したマッピングでロードされていることが確認できます。