RDBからデータを抽出してみた ~菊ちゃんのASTERIA Warp体験記~

こんにちは。インフォテリアのキクチです。

いよいよ日差しが強くなり夏の気配をびんびん感じますが、みなさんお元気でいらっしゃいますか。そろそろネクタイがうっとうしい季節になってきましたね。

ぼくはといえばセミナー講師として忙しい日々を送らせていただいています。最近の体験セミナーは毎回満員御礼!6月以降は開催回数を増やして、一人でも多くの皆さんにASTERIA Warpを知っていただけるように頑張っていきたいと思いますので、ぜひ、一度お越しください!

 

「RDB」とつないでみた

さて、今回の体験記は前回に引き続きRDBとの連携です。

前回、RDBとの接続から簡単なデータの取得を行いましたが、業務で使う上では取得するデータを制限する必要がありますよね。

そんなSQLへの抽出条件を、ASTERIA Warpではどのように付与するのか。簡単な条件から体験してみましたので、どうぞご覧ください。

「RDB」への抽出条件付与

さて、RDBへの抽出条件付与ということで、きっとSQLビルダーで行うんだろうなぁ~という予想のもと、前回作成したフローを利用して試してみました。

RDBからCSV出力を行なうまでのフロー

「SQLビルダー」の設定画面

SQLビルダー画面を開いてみると、こんな感じ。

前回設定されたSQLが復元されているSQLBuilder

前回設定されたSQLがしっかりと復元されています。

それでは「JOB」フィールドに条件をつけてみたいと思います。何の条件もつけない状態だと…

何も条件を設定しない場合、14件が抽出されたSQLBuilder内でのテスト

データは14件取得されました。ここに条件をつけることできちんとデータの絞込みを行えるのか、確認していきたいと思います!

RDBGetコンポーネントのリファレンスを参照すると、条件付与の方法も記載されていました。

「SQLビルダー」条件付与の方法
「フローサービスマニュアル」_「コンポーネント」_「データベース」_「RDBGet」_「■SQLビルダーの使い方」_「●レコードの抽出(WHERE)」をご参照ください。

「JOB」フィールドを選択して右クリックすると…

コンテキストメニュー「条件の追加」

条件の追加メニューが表示されました。これを選択すると、「条件の編集」画面が立ち上がってきます。

ここに「JOB」フィールドに対する条件値を入力してあげるようです。

条件編集画面

条件式はコンボボックスで選択可能ですね、

条件式をプルダウン選択

「JOB」フィールドが「ANALYST」のデータに絞り込んでみます。

「JOB」フィールドが「ANALYST」のデータに絞込

条件値を入力すると、下の条件文も同時に生成されますね。「OK」ボタンで設定を完了すると…

SQL文のWHERE句が自動生成

SQLにも条件文が追加され、画面上のフィールド欄からも条件が付与されたことが読み取れます。

SELECTテストを実行すると、

2件に絞り込まれましたSELECTテスト

「JOB」フィールドが「ANALYST」のデータ、2件に絞り込まれました!

ちなみに、条件の付与はSQLビルダー右側のソートタブからも行えるようです。こちらだと論理演算子も指定できるので複数の条件を付与する際に役立ちそうですね。

同様の手順をSQLBuilderのソートタブから設定した場合

「SQLビルダー」もっと便利な機能

な~んだ、条件つけるのも簡単じゃ~ん、と思ったそこのアナタ。SQLビルダーにはもっと便利な機能があるんですよ☆
…ぼくはいつも通りH師匠に教えていただいたのですが…

Hさん「あ、今回はSQLビルダーやるんだ」
キクチ「はい!簡単に条件つけられちゃうんで、すごく楽チンですよね。」
Hさん「じゃあさ、パラメータ渡してデータ抽出できるのも知ってる?」
キクチ「パラ…メータ…?」
Hさん「そう、パラメータ。 例えばさ、リクエスト投げた人のIDに関連するデータを見たいとか、今日の日付のデータだけを見たいとか、動的に条件を変えられるんだよね。」
キクチ「え、それすごい便利じゃないですか! しかも実業務でよくありそうなパターン!」
Hさん「そうだね。ちょっとその辺も試してみたら?」

…と、いうことでパラメータの渡し方も調べてみました。
以下の状況を想定してパラメータの渡し方を試してみます。

  1. CSVファイルに記載されている社員番号を読み取る
  2. 記載された社員番号が「MGR」フィールドに一致する社員情報を出力する
    (記載された社員番号の部下の社員を抽出する)

社員番号が記載されたファイルはこんな感じにしました。7698という番号の社員を上司に持つ社員を抜き出します。

パラメータファイル内に記述されたパラメータ「7698」

フローはこんな感じになりました。

社員番号情報を取得、SQLパラメータにマッピング、社員番号をキーにデータ取得、ファイル保存

とてもシンプルなフローになりましたね。あとは細かくSQLビルダーの設定を行っていきます。

まずはEMPテーブルから取得したいフィールドの一覧にチェックを入れると…

EMPテーブルから取得したいフィールドの一覧

あとは条件文をつけてあげるのですが、今回はファイルから取得した社員番号をWHERE句に埋め込むので、まずはパラメータを設定してあげます。

パラメータタブで任意のパラメータ名と型などを指定してあげます。今回は「社員番号」というパラメータを設定しました。

パラメータタブで「社員番号」パラメータを設定

すると、「条件の編集」画面でパラメータを使えるようになります。

「パラメータとの比較」モードに切り替えることで、設定したパラメータ「社員番号」を条件文に埋め込むことが出来るんですね。

「条件の編集」画面で「パラメータとの比較」モードに切り替え

作成された条件文には「?社員番号?」という見慣れない文字列が埋め込まれています。

この「?社員番号?」が予約語となってSQLの実行時にファイルから取得された社員番号「7698」に置き換わるんですね。

WHERE MGR = ?社員番号?

さあ、あとは「社員番号」というパラメータにファイルから取得してきた社員番号情報をセットしてあげます。

最初に配置したMapperコンポーネントでファイルから取得した社員番号をSQLパラメーター「社員番号」にマッピングしてあげます。

取得した社員番号をパラメータ「社員番号」にセット

これで実行してみるとファイルには…

「MGR」フィールドが「7698」に絞られたデータが出力

「MGR」フィールドが「7698」に絞られたデータが出力されています!

最後に

いかがでしたでしょうか。
条件の付与はもちろん、動的に条件を変えたい場合も簡単に設定できてしまいますね。
今回はここまでにしたいと思います。

次回は、データの取得のみならず、RDBの更新にチャレンジしていきます!
お楽しみに!



クラウド版

使い方いろいろ!
手ぶら de ASTERIA Warp
体験 5日間

サーバー準備の手間なくデータ連携ツール「ASTERIA Warp」の
全ての機能を5日間お試しいただけます。

今すぐ体験してみる 書籍の詳細についてはこちらをご覧ください。
基礎と実践 使い方マニュアル
著者:菊地 雄大

著者:
菊地 雄大

ASTERIA Warpのプリセールスエンジニア&体験セミナー講師。関係各所から舞い込んでくるASTERIA Warpに関するご依頼になんとか応えながら日々鍛えてもらっています!

「ASTERIA Warp、データ分析、クラウド、業務効率化、最新技術」人気!ホワイトペーパーダウンロード受付中!今すぐチェック
ASTERIA Warpと色々つないでみた特集!記事はこちら>

ASTERIA Warp 関連サイトのご紹介

X ASTERIA Warp Developer Network(ADN)サイト

技術情報をお探しの方

ASTERIA Warp Developer Network
(ADN)サイト

ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。

X ASTERIA Warpユーザーグループ(AUG)

ASTERIA Warpデベロッパーの方

ASTERIA Warp オンラインコミュニティ
ADN slack

ASTERIA Warpデベロッパー同士をつなげ、技術情報の共有やちょっとしたASTERIA Warpの疑問解決の場とすることを目的としたコミュニティです。

X ASTERIA Warpユーザーサイト

ASTERIA Warpユーザーの方

ASTERIA Warpユーザーサイト
Login

製品更新版や評価版のダウンロード、各種ドキュメントのご提供、また 技術的なお問合せもこちらで受付ています。

X ASTERIA Warpパートナーサイト

ASTERIA Warpパートナーの方

ASTERIA Warpパートナーサイト
Login

パートナーライセンスの発行や各種ドキュメントのご提供をしています。

ページ先頭へ