- はじめに
- 覚えてほしいこと
- やりたいこと
- 事前準備
- Workflow
- Step1 - Microsoft Access Connectorの使い方
- Step2 - DB Table Selectorの使い方
- Step4 - DB Readerの使い方
- ちょっと一言
- おわりに
- 参考リンク
はじめに
さて、前回お見せしたデータベースノードをAccessを例に使用して解説していきたいと思います。データベースノードをご存じない方は一度前回の記事を読んでから読み進めてください。
今回のテーマ ~MS Access Connector・DB Table Selector・DB Reader~
SQLサーバーにつなぐ手順を説明するのも大変なので、ここでは一番身近なデータベースであろう、MS Accessを使用してDatabaseからKNIMEのTableにダウンロードするという一番重要な部分を扱いたいと思います。
Databaseのダウンロード部分はどのDatabaseでも同じ内容なので、MS Accessの部分を自分の好きなCloudにNodeを置き換えて試してみてください。なお、MS Accessの場合Driverを追加インストールして設定する必要はありませんが、通常他のDatabaseだと、別途DriverをインストールしてPreferenceで追加設定が必要になります。気が向いたら解説していきたいと思います。
一気に3つのNode説明してしまいますが、どれもほとんど設定は必要ありません。
workflowは下記からダウンロードできます。
MS Accessを読み込む - Microsoft Access Connector – KNIME Hub
覚えてほしいこと
Step1: 接続 Connector
Step2: 抽出 DB Table Selector
Step4: 書き出し DB Reader
やりたいこと
データベース(Access)にあるデータを読み込んで、KNIMEで使う
事前準備
さて、事前準備としてAccessを用意します。本ブログで繰り返し使ってきた、社員表・勤怠表のデータをAccessに保存しておきます。
Workflow
今回は3つのNodeを一気に解説するので、先にWorkflowをお見せします。前回の記事で触れたようにDB Nodeを使うときは4つのStep(接続、抽出、変換、書き込み)がありました。
今回は、データの処理を行わずにデータベース(Access)にあるデータをそのままKNIMEにダウンロードするので、Step3変換は省略します。
Step1の接続では、データベースに接続するためのConnectorを使用します。
Step2の抽出では、データベースにある1つのテーブルを選択します。
Step4の書き込みでは、テーブルをKNIMEにダウンロードします。
Step1 - Microsoft Access Connectorの使い方
MS Accessと接続するために使用します。テーブルまでは指定しません。
Confirm
Outputは、データベースのType、データベースのURL(今回はFile Path),
使用中のDriverが確認できます。
Configure
Step1 - Connection Settings ファイルパスの指定
必要なのはこのステップだけです!Accessのファイルパスを指定しましょう。
その他のOptionはちょっと一言で軽く解説したいと思います。
今回は相対パスを使用しています。相対パスってなんだ?って方は、下記の記事をご覧ください。
Step2 - DB Table Selectorの使い方
データベースの中から1つのテーブルを指定します。今回は、社員表を選択したいと思います。
Confirm
現在選択中のテーブルを確認することができます。この時点では、KNIMEに取り込んでいるわけではないです。Outputを確認したいときは、Cache no. of rowsを押せばその分の行数サンプルで確認することができます。
Configure
Configureは、取り込みたいテーブル指定するだけです。Slecet a tableを使用すれば、テーブルを一覧から選択できます。
Step4 - DB Readerの使い方
今までKNIMEに取り込んでいなかったデータを、KNIME上にダウンロードします。これにより、初級編・中級編で扱ってきたようなPortになるので、Excelを取り込んだ場合と同じように扱うことができます。
データベースのデータ量が多い場合には、先にDB Nodeでデータを絞ってから、DB Readerを使用することをお勧めします。
Confirm
今までと同じようにKNIMEのテーブルで見えます。今まではデータを保持しているのはデータベースの方でしたが、これを実行することによりデータがKNIME(PC)にダウンロードされます。なので、Cache no. of rowsはありません。また、IDが勝手に振られます。
Configure
特に設定はいりません!
ちょっと一言
Microsoft Access Connector - その他のOption
必要Stepは一つだけでしたが、ほかにもいくつかOptionがあったのでここで軽く解説したいと思います。
Connection settings - Configuration ドライバの設定
ドライバを選択します。今回は自動的に選択されていましたし、その他のDriverは出てきませんでしたが、もし自分の使いたいドライバではなかった場合は、ここから選択します。選択肢にもない!という場合はPreference("KNIME -> Databases")から追加で設定する必要があります。
参考リンク:KNIME Database Extension Guide
JDBC Parameters - ドライバの詳細設定
JDBCドライバのパラメータを設定することができます。例えば、パスワードが必要な場合、ここから指定します。
また、データサイズが大きいデータベースを使用する場合、"memory" の項目を"false"にするといいそうです。
参考リンク:
UCanAccess-A Pure Java JDBC Driver for Access
Advanced - 接続の詳細設定
より詳細な接続設定が可能です。通常使わないと思います。タイムアウトの時間、データベースの再接続のOptionなどなどです。
Input type mapping / output type mapping - データ型のマッピング
ここではデータ型のマッピングを行えます。Accessでのデータ型、KNIMEでのデータ型はそれぞれ表現が少しだけ違うと思うので、そこの調整です。
DB Table Selector - その他のOption
Custom Query - SQL文でテーブル・コラムを指定する
Custom Queryを使用すれば、SQL文でテーブルを指定することができます。
また、テーブルだけでなく、SQL文を使用できるのでコラムを指定することもできます。
左のDatabase Metadata Browserから、テーブル・フィールドを参照することができ、SQL StatementからSQL文を指定できます。
また、Evaluateを押せば、Previewを行うことができるのでSQL文があっているかどうかも確認できます。
おわりに
今回はデータベースの例として、Accessを使用して基本Nodeを解説しました。他の種類のデータベース に接続するときもConnectorを変えれば同様にデータを取り込むことができます。
なお、Accessですが基本KNIMEも同じことができます。AccessをInputファイルにするよりは、ブラックボックスになりがちなAccessごと、ロジックを見える化できるKNIMEに置き換えてしまった方が、圧倒的にいいと思います。
ブラックボックスAccess toolが多いという部署の方々にぜひ導入を進めていただきたいです。ではまた!
余談
今回紹介するのは、「ラストベガス」です。しょうもなさそうな映画だなと思いながら見始めたのですが、全然そんなことない、かなり深い映画でした!
いわゆる、腐れ縁というやつかもしれませんが、ずっと大切にしたいなと思える作品でした。
参考リンク
- KNIME公式Node Pit(英語):
Microsoft Access Connector — NodePit
- KNIME Example Workflow(英語):
Microsoft Access Connector – KNIME Hub