デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - データベース(MS Access)を読み込む - Microsoft Access Connector・DB Table Selector・DB Reader

f:id:makkynm:20210710105000p:plain

 

はじめに

 さて、前回お見せしたデータベースノードをAccessを例に使用して解説していきたいと思います。データベースノードをご存じない方は一度前回の記事を読んでから読み進めてください。

degitalization.hatenablog.jp

 

 

 

 

 今回のテーマ ~MS Access Connector・DB Table Selector・DB Reader~

f:id:makkynm:20201031163626p:plain

今回のテーマ - Accessからデータを取得する

 

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で使う

f:id:makkynm:20201031190404p:plain

やりたいこと

 

事前準備

さて、事前準備としてAccessを用意します。本ブログで繰り返し使ってきた、社員表・勤怠表のデータをAccessに保存しておきます。

f:id:makkynm:20201031190631p:plain

事前準備 - Access 社員表

f:id:makkynm:20201031190653p:plain

事前準備 - Access 勤怠表

 

Workflow

今回は3つのNodeを一気に解説するので、先にWorkflowをお見せします。前回の記事で触れたようにDB Nodeを使うときは4つのStep(接続、抽出、変換、書き込み)がありました。

今回は、データの処理を行わずにデータベース(Access)にあるデータをそのままKNIMEにダウンロードするので、Step3変換は省略します。

Step1の接続では、データベースに接続するためのConnectorを使用します。

Step2の抽出では、データベースにある1つのテーブルを選択します。

Step4の書き込みでは、テーブルをKNIMEにダウンロードします。

f:id:makkynm:20201031163626p:plain

Workflow - データベース(Access)を取り込む

 

Step1 - Microsoft Access Connectorの使い方

MS Accessと接続するために使用します。テーブルまでは指定しません。

Confirm

Outputは、データベースのType、データベースのURL(今回はFile Path),

使用中のDriverが確認できます。

f:id:makkynm:20201031191548p:plain

Confirm - MS Access Connector

Configure

 Step1 - Connection Settings ファイルパスの指定

必要なのはこのステップだけです!Accessのファイルパスを指定しましょう。

その他のOptionはちょっと一言で軽く解説したいと思います。

f:id:makkynm:20201031191844p:plain

Configure - Step1 ファイルの指定

今回は相対パスを使用しています。相対パスってなんだ?って方は、下記の記事をご覧ください。

degitalization.hatenablog.jp

 

Step2 - DB Table Selectorの使い方

データベースの中から1つのテーブルを指定します。今回は、社員表を選択したいと思います。

Confirm

現在選択中のテーブルを確認することができます。この時点では、KNIMEに取り込んでいるわけではないです。Outputを確認したいときは、Cache no. of rowsを押せばその分の行数サンプルで確認することができます。

f:id:makkynm:20201031194015p:plain

Confirm - DB Table Selector

Configure

Configureは、取り込みたいテーブル指定するだけです。Slecet a tableを使用すれば、テーブルを一覧から選択できます。

f:id:makkynm:20201031194406p:plain

Configure - DB Table Selector

 

Step4 - DB Readerの使い方

今までKNIMEに取り込んでいなかったデータを、KNIME上にダウンロードします。これにより、初級編・中級編で扱ってきたようなPortになるので、Excelを取り込んだ場合と同じように扱うことができます。

データベースのデータ量が多い場合には、先にDB Nodeでデータを絞ってから、DB Readerを使用することをお勧めします。

Confirm

今までと同じようにKNIMEのテーブルで見えます。今まではデータを保持しているのはデータベースの方でしたが、これを実行することによりデータがKNIME(PC)にダウンロードされます。なので、Cache no. of rowsはありません。また、IDが勝手に振られます。

f:id:makkynm:20201031195822p:plain

Confirm - DB Reader

 

Configure

特に設定はいりません!

f:id:makkynm:20201031195634p:plain

Configure - DB Reader

 

 ちょっと一言

 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文があっているかどうかも確認できます。

f:id:makkynm:20201031195112p:plain

Configure - DB Table Selector Custom Query

 

おわりに

今回はデータベースの例として、Accessを使用して基本Nodeを解説しました。他の種類のデータベース に接続するときもConnectorを変えれば同様にデータを取り込むことができます。

なお、Accessですが基本KNIMEも同じことができます。AccessをInputファイルにするよりは、ブラックボックスになりがちなAccessごと、ロジックを見える化できるKNIMEに置き換えてしまった方が、圧倒的にいいと思います。

ブラックボックスAccess toolが多いという部署の方々にぜひ導入を進めていただきたいです。ではまた!

 

 

 

余談 

今回紹介するのは、「ラストベガス」です。しょうもなさそうな映画だなと思いながら見始めたのですが、全然そんなことない、かなり深い映画でした!

いわゆる、腐れ縁というやつかもしれませんが、ずっと大切にしたいなと思える作品でした。 

ラストベガス(字幕版)

ラストベガス(字幕版)

  • 発売日: 2014/11/21
  • メディア: Prime Video
 
ラストベガス(吹替版)

ラストベガス(吹替版)

  • 発売日: 2014/11/21
  • メディア: Prime Video
 

 

www.youtube.com

 

参考リンク