DataSpider Studio Left-Right-Joinマージを行う
スクリプトでSQLの結果を「マージ」でマージしてデータ変換してCSV書き込みをしてみます。
ツールパレットの「データベース」-「PostgreSQL」に「テーブル読み取り」アイコンがあります。
ツールパレットの「変換」-「基本」に「マージ」アイコンがあります。
ツールパレットの「ファイル」-「CSV」に「CSVファイル書き込み」アイコンがあります。
スクリプト
スクリプトは以下の通りです。
テーブル読み取り処理
myname,mymovie,myhobbyテーブルを用意します。
create table public.myname ( id integer , bango integer , name character varying(10) );
create table public.mymovie ( id integer , bango integer , name character varying(10) );
create table public.myhobby ( id integer , bango integer , name character varying(10) );
mynameの設定です。PostgreSQLの設定などは「接続先」であらかじめ設定しておく必要があります。
id | bango | name |
---|---|---|
1 | 1 | takahashi |
mymovieの設定です。
id | bango | name |
---|---|---|
1 | 1 | ドラえもん |
2 | 1 | しまじろう |
3 | 3 | ポケモン |
myhobbyの設定です。
id | bango | name |
---|---|---|
1 | 1 | テニス |
2 | 1 | 野球 |
3 | 3 | サッカー |
4 | 4 | BBQ |
マージ
マージする際に、テーブルの順序に意味があります。1番目のテーブルをメインとします。
入力データごとのキー値を比較し、1番目の入力データのキーに2番目以降のキーがすべてマッチした場合、列に追加する形でデータを出力し、1つでもマッチしなかった場合は1番目の入力データのみ出力します。
テーブル順序は以下のように変更することができます。今回はmynameを一番にします。
ロジック
3つのテーブルを検索して、その結果を「Left-Right-Joinマージ」してCSVの各々の列に出力します。
CSVファイル書き込み処理
book_name,movie_name,hobby_nameの3列を用意します。
テスト
F5でスクリプト実行します。
出力されたCSVです。
参考サイト
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント