- はじめに
- 覚えてほしいこと
- 無料 ETL Tool としてのKNIME
- DB Node 2つのPortの違い
- DB NodeのWorkflow手順
- DB NodeのConfirm - Output画面の違い
- おわりに
- 参考リンク
はじめに
さて、KNIME中級編をだらだら続けるのはやめて、KNIME上級編に移りたいと思います。以前にも説明しましたが、こちらの初級・中級・上級の区切りは日々の業務での使う頻度別に私基準で分類しております。
上級編第一回目は、Database Nodeの紹介です。今回はコラムチックな内容です。
※公式のKNIME Learning pathでは、この内容は初級編に分類されています。
以前まで触れてきた内容は、個人PCのKNIMEの中にTableとしてデータを保持して処理していたものでした。
しかし、もっと巨大なデータサイズになったりすると、Cloud(SQL Server, AWS, Azure etc)上でSQL文*1等を使って先に必要な情報を絞った後にPCに取り込まないと、データ量が大きすぎて処理が追いつかないことがあります。
また、元々データソースがCloud(SQL Server, AWS, Azure etc)上にある場合、KNIMEとCloudを直接繋ぎして、直接データをダウンロードしたいというNeedsもあるかもしれません。
でもだからと言って、いきなりプログラミング言語のSQL文を覚えてくださいって難しいですよね。もちろん、Amazonなどの会社では全社員使えるように教育しているほど必須言語ですが。それくらい、データベースを全社員が扱えることがデジタル化を進めたい会社にとって重要なスキルになっているんだと思います。
そんな時、KNIMEでは通常Nodeとは別にDatabase Nodeというデータベース操作用のNodeを用意しています。このNodeにより、SQL文を書かずとも、Cloud上のデータを直接操作してからダウンロードという作業が可能になります。
今まで、初級編・中級編を通して、このデータベースの操作についてExcelからのランクアップとして学んできました。実はこの知識はデータベースの操作の概念と全く同じなんです。
つまり、初級編・中級編を習得した人は、すでにSQL文を使える人と同じ実力を持っていると言えるんです。
DB Nodeって上級編だし難しそう、、と思っているあなた、大丈夫です。
ちょっとやってみたら気付きます。え、全く同じじゃん。って。
今回のテーマ ~ DB Node データベースノード ~
今回は各Nodeの説明は行わず、DB Nodeの種類について解説していきたいと思います。
覚えてほしいこと
KNIMEの真の実力はDB Nodeから ~ETL Tool~
データベースを全社員が使える企業は強い!
無料 ETL Tool としてのKNIME
みなさん、ETL toolというのは聞いたことがあるでしょうか。以前ちょっとだけお話しました。
ETLツールとは、Extract(抽出)、Transform(変換)、Load(書き込み)の略で、データベースを操作するツールのことです。
先ほど説明しましたが、今まではCloud上のデータベースからデータをダウンロードするときに、プログラミング言語であるSQL文を使用してデータを抽出しなければならなかったものを、SQL文を使用せずとも簡単にデータをダウンロード、操作、再アップロードという作業ができるので、様々な人にデータへのアクセスを可能にします。企業がデジタル化を進める上では必須ですね。
下記のブログの説明が分かりやすかったので引用させていただきます。
ETLとは、企業内にある様々なシステムの「システム間データ連携」を効率的に構築するためのツールで、主に販売管理システムや在庫管理システムなどの基幹系システムとデータウェアハウスの連携に多く使われています。「ETLツール」と呼ばれることもあります。
また、ETLとはExtract(抽出)、Transform(変換)、Load(書き込み)の略で、主に「データ抽出機能」「データ変換機能」「データ書き込み機能」という3つの機能を備えています。ほとんどのETLでこれらの機能は「GUI」として提供されているため、ユーザーはノンプログラミングでシステム間データ連携を構築することができます。(※必要に応じてETL内でロジックをコーディングすることもできます)
主に以下の用途に使われています。
- システム間データ連携の開発
- 新システムへのデータ移行
- 分析用Excelのアウトプットなど
様々なデータを分析し経営活動に活用することが当たり前となった現代では、ビジネス側から求められるデータ提供要件も日々変わります。ビジネス要件の変化に素早く対応するためにETLをぜひ活用して下さい。
【SEが教える】どこよりも詳しいETLの全知識とおすすめ製品
残念ながらKNIMEはおススメとしてこちらのブログに掲載されていませんでしたが、KNIMEもこのETLツールの一つです。
DB Node 2つのPortの違い
前置きが長くなってしまいましたが、ここからKNIMEのデータベースNodeについて概要を解説していきたいと思います。
まず、DB NodeのInput/Output Portには、赤色(Red) と暗赤色 (Dark Red)の2つのポート(Port)があります。ポート(Port)とは、線が繋がっている部分です。今までは黒い矢印でした。
赤色(Red)のポート - DB connection port
まず、赤色(個人的には赤にはあまり見えないですが、、)のポートは、DB connection portと言って、データベース自体の情報が含まれています。
情報としては、テーブル一覧と、各テーブルのコラム名・データ型までの細かさです。そのほかにも、ドライバの情報、JDBCプロパティなど、概要情報も含まれています。
暗赤色 (Dark Red)のポート - DB Data port
暗赤色(茶色に見えなくもない。)のポートには、赤色よりも一歩踏み込んだ、テーブルの中身の情報まで含んでいます。
その他には、赤色のポートの情報、SQL文が含まれています。
DB NodeのWorkflow手順
DB Nodeを使う際は、大まかな流れがあります。接続、抽出、変換、書き込みです。
KNIMEのテーブルの形に見えることを抽出と呼ぶのであれば、一連の流れで抽出といったほうがいいかもしれませんね。
Workflowは下記からダウンロードできます。
データベースノード - DB Node – KNIME Hub
Step1 - 接続 DB Connector
まずはDatabaseと接続するStepです。これが最も難関な部分です。
よく設定ミスによるエラーで止まります。多くはドライバをKNIMEに設定してあげる必要があります。解決できないエラーが発生した場合は、どなたかITに詳しい人にHelpをもらったほうがいいと思います。
KNIMEにはたくさんのConnectorが標準で用意されており、足りなければExtensionからダウンロードすることも可能です。具体的なドライバの設定等はデータベースによるので省略します。KNIMEの公式ガイドKNIME Database Extension Guideにかなり詳細に記述されています。気が向いたら解説したいと思います。
KNIMEのサイトによると、下記のDatabaseは専用のNodeが用意されているようです。専用Nodeがあると比較的簡単に接続設定が可能です。ない場合は、DB Connector NodeとPreferenceの追加設定から接続する必要があります。
- Amazon Redshift(Extensionから追加Downloadが必要)
- Amazon Athena(Extensionから追加Downloadが必要)
- Google BigQuery
- H2
- Microsoft Access
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- SQLite
- Vertica
Step2 - 抽出 Extract - Table Selector
データベースには通常沢山のTableが保存されています。Table Selectorを使用することで、その中の一つのTableを選択してデータを操作する過程に移ることができます。
このTable Selectorから、ポートが赤色から暗赤色に変わります。
SQLでいう、Select の部分ですね。
Step3 - 変換 - Transform - Manipulation
データベースの情報を絞り込む・加工するメインの部分です。みなさん、上のスクリーンショット見て少し思うことありませんか?
はい、これ初級編・中級編で扱ったものと全く同じなんです。操作感もほとんど変わりがないです。
本来であれば、これらの操作をしたい場合難しいSQL文を書かないといけないのですが、KNIMEを使うことで難しいSQL文を使うことなく大きなデータを処理することができます。
Step4 - 書き込み Load
最後の部分は、スクリーンショットからは書き込みという感じがしないですが、データベースに処理結果を戻す作業、もしくはデータベースのデータをKNIMEにダウンロードする部分です。
DB Readerによって、ポートが暗赤色のDBポートから、以前と同じ黒い矢印の通常ポートに戻ったと思います。ここからは、初級編・中級編で扱った内容と同じですよね。Excelのデータとくっつけてもいいですし、好きに調理していきましょう。
DBにデータを戻すNodeもちゃんとあります。
DB NodeのConfirm - Output画面の違い
DB Nodeのもう一つの特徴として、Confirmの部分、Output画面が通常のNodeと少し違うので解説します。
Table Preview - Tableの内容確認
DB Nodeは、膨大なデータ量を想定しているので、通常のNodeのように全Outputを見せるのではなく、何行分表示するといった制限を設けて表示するようになっています。これにより、PCへの負荷を軽減します。
Spec - コラムの概要
通常のNodeでは、Specはデータタイプのほかに最大値や値の例などが表示されていたと思います。DB NodeではDBとKNIMEのデータタイプの違いについて特に記述されています。
DB Query - SQL文
これがETLツールの特徴ですね。KNIMEのNodeを組み合わせることで、KNIMEが勝手にSQL文を書いてくれます。こんなSQL文自力で書くの大変ですよね。
DB Session - データベース接続情報
最後にDB Sessionというタブです。ここには、現在接続されているDatabaseの情報が記述されます。
おわりに
かなり長くなってしまいましたが、いかがだったでしょうか。KNIMEの強みが少しでも伝わったのであれば幸いです。
コメント等いただけると非常に嬉しいです!ではまた!
余談
データベーススペシャリスト試験を受ける予定だったのにもかかわらず、行けずに自己嫌悪に陥っている今日この頃です。今日ご紹介するのは、「あと1センチの恋」です。言わずと知れたラブストーリーの映画。すれ違いすれ違い、最終的にというありがちな展開ですが、 ほっこりできます。
参考リンク
- SQLとは?:
- KNIME公式(英語):
KNIME Database Extension Guide
- ETLツールとは?:
【SEが教える】どこよりも詳しいETLの全知識とおすすめ製品