RDBに接続してみた:はじめの一歩 ~菊ちゃんのASTERIA Warp体験記~

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

新年度が始まりましたね。みなさんの周りで変化はありましたか?
私にはなんと後輩が入ってきました!

同じくASTERIA Warpのプリセールスを行っているんですが、「分からないことは何でもキクチに聞け」とのHさんのお達しがありましたので、私も四苦八苦しながらいろいろ教えています。

今年度も皆さんにASTERIA Warpを愛していただけるようインフォテリア一同頑張っていきますので、どうぞご期待ください!!

このASTERIA Warp体験記もその一翼を担えればいいなと思いながら、コツコツ続けていきたいと思います。

「RDB」とつないでみた

さて、今まではファイルの連携をメインに行ってきましたが、今回はRDBとの連携です。RDBとの連携は業務上の必須要件といっても過言ではないと思います。

今日はそんなRDBとの連携を接続定義(コネクション)の作成から体験しましたので、どうぞご覧ください!

「RDB」とまずは接続してみた

と、いうことでRDBとの連携を行ってみたいと思いますが、何はともあれ、RDBとの接続を行わないことには何も出来ません。

ちなみに、今回接続を行うRDBはOracle 11.2.0.2.0です。
簡単なEMPテーブルなどがセットされています。

RDBとの接続を行うには、コネクションを作成する必要がある、ということは知っていました。
知っていましたが、どうやって作ればいいのかが分からなかったので、マニュアルに頼ってみます。

「コネクション」とは
「フローサービスマニュアル」_「フローの設計」_「フローの構成要素」_「コネクション」をご参照ください。
フローの中で使用するデータベース、インターネットプロトコルなどの接続情報のことです。
接続のためのサーバーアドレス、ポート番号、ユーザー名、パスワードなどの情報に対してコネクション名をつけて定義することを接続設定といい、定義しておくによって簡単にコンポーネントから接続情報を参照できます。
コンポーネントによっては、コネクションの接続情報を使用せずに、コンポーネントプロパティに直接定義を指定して接続することもできます。

とのこと。
管理コンソール、フローデザイナーから作成できるみたいです。

「コネクション」を作成

今回は管理コンソールからコネクションを作成してみます。使用するメニューは「設定」の「コネクション」メニューです。

分かりやすく、「新規」のメニューがありますので進めてみます。

メニュー「設定」-「コネクション」

すると、RDBとの接続情報の入力画面が立ち上がってきます。そこに必要な情報を入力します。

「接続名」は任意の名前を設定します。
「データベースタイプ」は違いがよく分からなかったので、管理コンソールのヘルプを例に「Oracle(Thin)」を選択しました。

すると、その他の項目には自動的にフォーマットが設定されるので、それを編集してあげればいいようです。

RDBとの接続情報入力画面

「URL」の項目はRDBが導入されている環境に合わせて入力する内容が変わりますね。

あとは、データベースユーザーとパスワードを入力して…

RDBのユーザーとパスワード情報を入力

作成できました!

作成されたRDB接続設定

「コネクション」の接続テスト

作成したら、実際に接続できるのか試したくなりますよね。

管理コンソール/デザイナーではもちろん接続テストまで出来るんです。

メニュー内にある「テスト」ボタン

で、実際に試してみると…

エラーメッセージ「No suitable driver found for jdbc:oracle:thin:@localhost:1521:XE」

なんと…失敗してしまいました…

「エラーメッセージ」が出た

エラーメッセージは
「No suitable driver found for jdbc:oracle:thin:@localhost:1521:XE」
「使えるJDBCドライバが見つかりません」というところでしょうか。

…ん?JDBCドライバ?
なにか設定が必要なのでしょうか…?

サポートのEさんに聞いてみました。

キクチ「こんなエラーメッセージが出たんですけど、どうすればいいんですかね…?」
Eさん「あ、ASTERIA Warpインストールしてから、JDBCドライバってダウンロードした?」
キクチ「いえ、してないです。自分でダウンロードが必要なんですか?」
Eさん「そうだね。ASTERIA的には何のRDBに接続するのか、インストールしたときにはわからないから、自分でダウンロードしてあげる必要があるよ。」
キクチ「なるほど!落としてきたドライバはどこに配置してあげればいいんですかね?」
Eさん「その辺はマニュアルに記載があるから調べてみて!」

なんと…マニュアルにはしっかり記載がされているんですね…
教えてもらった箇所を参照してみます。

「RDB」について
「フローサービスマニュアル」_「詳細なトピック」_「フローの構成要素」_「コネクションプロパティ」_「RDB」をご参照ください。
フローサービスから各種データベースへの接続を行うためには、JDBCドライバーを使用します。どのタイプのJDBCドライバーが供給されているかはデータベースの種類によって異なります。フローからデータベースへ接続するためには、以下の手順を行います。
1.使用するデータベースのJDBCドライバーを入手します。
2.入手したJDBCドライバーのファイルを[DATA_DIR]/system/lib/drivers下に置きます。
3.フローサービスを再起動します。
4.フローデザイナーまたは管理コンソールから接続設定を定義して接続テストを行います。

しっかり、1行目に記載がありましたね。
「使用するデータベースのJDBCドライバーを入手します。」
やはり、マニュアルはちゃんと確認してから始めなきゃダメですね。

「JDBCドライバ」の入手

と、いうことで今回接続を行うOracleのJDBCドライバの入手です。

ダウンロードしたJDBCドライバを[Install_DIR]/jre/lib/extに配置します。

JDBCドライバを[Install_DIR]/jre/lib/extに配置

フローサービスを再起動して…

フローサービスの再起動

再度接続テストを行ってみます。
今度は成功しました!

接続テストに成功

「RDBGetコンポーネント」を配置

と、いうことでASTERIA WarpとRDBとの接続が完了したので、DBの中身が参照できるか確認してみましょう。

デザイナー上にRDBからのデータの取得を行う「RDBGetコンポーネント」を配置し…

デザイナー上に「RDBGetコンポーネント」を配置

「コネクション名」プロパティに作成したコネクション
「Oracle_11g」
を指定します。

「コネクション名」プロパティはコンボボックスで指定できるので、選択するだけでどのRDBに接続を行うかを指定できますね。

RDBGetのプロパティ

「SQLビルダー」を選択

「コネクション名」プロパティが設定された状態で「RDBGetコンポーネント」の右クリックメニュー「SQLビルダー」を選択するとSQLの構築を画面を用いて行えます。

※SQLビルダーの起動は、RDBGetコンポーネントのダブルクリックでも行えるみたいです!

RDBGetコンポーネントのコンテキストメニュー「SQLビルダー」をクリックして起動

左側にオブジェクトの一覧が表示されています。

左側にオブジェクトの一覧が表示されている「SQLビルダー」の画面

sqlplusから確認した内容と比較してみると、全てのオブジェクトが表示されているのが確認できますね。

sqlplusでオブジェクトを表示

SQLビルダーの使い方については「RDBGetコンポーネント」のリファレンスに記載があったので確認してみます。

「RDBGetコンポーネント」SQLビルダーの使い方
「フローサービスマニュアル」_「データベース」_「RDBGet」をご参照ください。
SQLビルダーは、SQL文を自動生成する専用ツールです。SQLビルダーを使うと、簡単な操作で以下のようなことができます。…略

ふむふむ…基本的にはマウス操作のみでSQL文の構築ができてしまうみたいですね。

データを取得したいオブジェクトを選択・ドラックアンドドロップしてあげると、フィールドの一覧が確認できて…

SQLBuilder内で「テーブル」選択

あとはデータを取得したいフィールドにチェックを入れてあげれば、どんどんSQLが構築されるんですね!

SQLBuilder内で表示するフィールドを選択

なるほど。とても楽チンですね。フィールドの一覧を確認しながら選択できるので、間違った項目を選択することもなさそうです。

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

フィールド名のスペルを間違えてRDBに怒られることもなくなるなぁ~なんてニヤニヤしていたらHさんがもうひとつ便利な機能を教えてくれました。

Hさん「どうしたの?なんかニヤニヤしてるけど…具合でも悪いの?」
キクチ「…え。ぼくニヤニヤしてました?(汗)いや、SQLビルダー使えばSQLの構築がすごく楽チンになるなぁと思ったら…ニヤニヤしてました…」
Hさん「あぁ、確かにスペルミスとかでテストやり直すのはすごく手間かかるもんね。」
キクチ「そうですよね!エビデンスとかも全部取り直しのときもありますし…まぁ最初からちゃんと確認してテストしろって話かも知れないですけど…」
Hさん「SQLビルダーだとフィールド名とかまでDBから勝手に取ってきてくれるからね、楽チンだね。でもテストだったらもうひとつ便利な機能があるの知ってる?」
キクチ「え。どんな機能ですか?」
Hさん「SELECTテスト。作ったSQLで狙ったデータが取得できるかSQLビルダーでそのまま確認ができるよ。もし違ってたらSQL変更してまたすぐ確認できるし。」
キクチ「え。データの確認まで出来るってことですか?てことは、ちゃんとデータが取得出来てるかいちいちフローを動かさなくてもいいってことですよね。」
Hさん「そうだね。開発してるときにデータの取得確認までは行えるから、データ変換がおかしいときとかでも問題の切り分けが簡単だと思うよ。」

なんと、このまま取得するデータの確認まで出来るみたいです。
SQLビルダー下部の「SELECTテスト」ボタンを押下してみます。すると…

SQLBuilder内の「SELECTテスト」ボタン

結果表が表示されました!

「SELECTテスト」ボタンを押した結果

これならSQLが苦手な人でも、確認しながら設定していくことが出来ますね。

では、SQLの構築も行えたので、そのままCSVファイルに出力してみたいと思います。
フローの全体図はこんな感じ。

フロー全体図

何の変換もかけず、単純にCSVに出力しています。

変換もかけず、そのままCSV出力

実行してみると…

SELECTテストで確認したデータがCSVとして出力

先ほどSELECTテストで確認したデータがしっかりCSVとして出力されています!

簡単にRDBからのデータの引き出しが出来てしまいました。

手組みのプログラムだったら、RDBとの接続やデータの取得などテスト項目はとても増えてしまいますが、ASTERIAだとフローの開発時点で細かいテストは終わっている状態になるので、連携の流れをどうするか、どんなデータ変換をかけるのか、といった項目に時間をかけることが出来ますね!

最後に

と、いうことで今回はここまでにしたいと思います。
RDBとの接続、データの取得までの手順を理解していただけたでしょうか。

次回は、SQLへの抽出条件の設定に挑戦してみたいと思います!どうぞお楽しみに!



クラウド版

使い方いろいろ!
手ぶら 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

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

ページ先頭へ