投稿

ラベル(データスパイダー)が付いた投稿を表示しています

Translate

DataSpiderでお手軽に配列でマッチングするみたいな事をする方法

イメージ
データスパイダーで気軽に配列通しのマッチングを行う方法 DataSpiderで配列のようなマッチングを気軽に行う方法 Excelで、店マスターや、商品マスターシートのような物があって、データにある商品コードや、店コード等から、商品名や、店名を取得したい事がある場合、DataSpiderでFor分を使ってマッチングをさせると、とてつもなく処理に長い時間がかかってしまう。 直ぐに思いつくのが、配列変数のようなものに値を一度セットしてしまい、処理を高速にしたいと思いがちだが..... DataSpiderの変数には、配列変数というような物が無い為、配列のような物に値を保持したいと思うと、標準の機能だと、下記のようになる。 DataSpiderで、配列チックな変数に値を保持したいと思うと、変数を必要分だけ複数用意して、変数代入コンポーネント内で、値をセットするような事になる。 でも、この方法だと、保持が必要なデータの数が確定していないと、必要な数の変数が特定出来ないし、そもそも、変数を沢山準備するだけでも大変だ。 この方法で、変数に値を設定し、配列通しで値をマッチングするような事をしようとすると、とても途方もない作業になるし、データスパイダーは、For-Loopを使用してIF分で、変数代入や、マッピングコンポーネントを切り替えるみたいにすると、とても処理が遅くなってしまう為、データ量が多いときは実用的で無くなり、とても大変だ。 そのような場合、次に紹介する方法を使用すると、高速且つ、変数の数を気にせずに、配列通しのマッチングが可能だ。 配列に格納したようなマッチングを高速に行いたい場合のデザイン方法 データ上の商品コードなどを高速に置換する方法は、ForコンポーネントとIFコンポーネントを組み合わせて使用するのではなく、マッパー(Mapping)コンポーネント内で、CSVファイルによる置換コンポーネントを使用すれば良い。 この方法だと、DataSpiderでは驚く程変換処理が早い。 今回は、データスパイダーで、SQL等データベース上での容易なマッチングが行えない環境下で、高速にマッチング処理を行う方法についての紹介でした。