PostgreSQLをWindowsにインストールしてDataSpider でテーブル読み取りをしてみる

## はじめに
こんにちは！すぎもんです:grinning:

オープンソースのリレーショナルデータベースであるPostgreSQL。ライセンスコストがかからないので、業務外で色々と自分の好きに触ってみたい！という方はもちろんのこと、商用利用にも耐えうる豊富な機能を持っています。AWSやAzureなどのクラウドベンダーもPostgreSQLを活用した比較的安価なサービスを提供しています。

## 今回やること
今回は、PostgreSQLのインストールから初期の基本的な設定をしてみます。
とりあえず自分の個人環境を作ってみたい、という方の参考になればと思います。また、DataSpiderを使って、PostgreSQLのテーブルを参照してみる基本的な接続もしてみます。

## PostgreSQLの設定
##### PostgreSQLのインストール
[PostgreSQLの公式ページ](https://www.postgresql.org/download/)から、ご自身の環境に応じたインストールファイルをダウンロードしてください。

PostgreSQLの操作には、psqlというコマンドツール型のインターフェイスがあります。
GUIでの操作がしたい場合は、pgAdminというツールをインストールします。

:::note warn
インストールファイルを実行しただけでは、下記の通り、psqlは使えません。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/bebd2ec1-e8f4-4df0-c074-c37994ecf668.png)
インストール先となる端末の「システム詳細の設定」から「システム環境変数」を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b8213374-6d19-45a7-1222-b6ef9d6f280a.png)
「システム環境変数」の「Path」を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/91b8e5cd-3743-5604-d70b-cf6dd491f20e.png)
環境変数「Path」にPostgresをインストールしたディレクトリを設定します。
私は「`C:\Program Files\PostgreSQL\9.5\bin`」を設定しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/1b63f340-1a10-ddd9-639b-f25c8bcad2b6.png)
システム環境変数を更新したので、OSの再起動をしましょう。コマンドプロンプトから、psqlコマンドの実行が正常にできていれば、インストールは無事完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/dbc9d493-c064-eac2-2083-b7209942ac94.png)
これでPostgreSQL操作は、psqlコマンドを使ってできるようになりました。

##### PostgreSQLの起動
「サービス」を開き、「postgresql」のサービスが起動していることを確認します。
「状態」が「実行中」になっているか確認しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/23212e63-619b-a110-8a5a-f4faca6bed05.png)
もし「実行中」と表示されていない場合は、「postgreSQL」にカーソルを合わせて、右クリック「開始」を押下してください。

##### psqlコマンドを使う
PostgreSQL では、テーブルを作成したり、データを取得したり、データベースへの操作をする場合に、psql というコマンドツールがあります。

::: note info
Windows環境から利用するにはPowerShellか、コマンドプロンプトを使います。
:::

データベースへの「接続」のため、下記コマンドを実行します。
`psql -h ホスト名 -p ポート番号 -U ロール名 -d データベース名`

::: note warn
●ホスト名　　　　：　PostgreSQL が起動しているホスト名または IP アドレス
●ポート番号　　　：　省略可（デフォルト"5432"以外の場合は設定）
●ロール名　　　　：　-U postgres（省略するとOSのユーザー名）
●データベース名　：　省略可（自動生成されたpostgresデータベースに接続）
:::
locahost の場合はホスト名、ポート番号、データベース名を省略できるので、`psql -U postgres`でOKです。postgreSQLが正しくインストールされていて、環境変数の設定もOKであれば、psqlコマンドが使えます。

:::note warn
GUIベースでPostgreSQLを操作したい場合は、pgAdminというGUIツールをインストールしましょう。
:::

尚、今回はデータベース内にテスト用のテーブルやデータを事前に作成しています。

## DataSpiderの設定

次は、PostgreSQLにDataSpiderで接続してみましょう。

DataSpiderのStudioに任意のユーザーでログインします。
（DataSpiderのインストール等は省略。[こちら](https://www.hulft.com/help/ja-jp/DataSpider/dss44/manual/DSS44_InstallGuide_ja.html)をご参考にしてください。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/f2f7d0b4-2563-6011-314e-a192284cd93b.png)

##### 接続先（グローバルリソース）の設定
DataSpider Studioは、皆さんお馴染みのWindowsライクなUIでメニューが並んでいます。そこから「コントロールパネル」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/a031166e-da60-750c-3d09-01857432a3a5.png)
「コントロールパネル」の「グローバルリソースの設定」を選択し、PostgreSQLへの接続情報を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/397a06a6-32b8-2c43-3f1a-cbd81660fbad.png)
「新しいグローバルリソースの作成」を押下して、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/6df89f5e-dd0f-8f43-ad59-2be45d824281.png)
PostgreSQLへの接続情報を、下記の通り設定します。
　ホスト名　　　　：　`localhost`
　ポート番号　　　：　`5432`
　データベース名　：　`XXXXX`
　ユーザー名　　　：　`postgres`
　パスワード　　　：　`********`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/c72973c2-f7fb-8dc2-2a6e-e037d9a987ca.png)
「接続テスト」を押下して、DataSpiderとPostgreSQLの接続テストをします。
下記の通り、接続成功画面が出れば接続確認はOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/c807d9b7-9165-a301-0e68-3c49354359a2.png)

##### テーブル読み取りのスクリプト作成
次に、PostgreSQLのテーブルをDataSpiderから参照してみます。

DataSpiderのスクリプトを作成して、PostgreSQLのテーブル読み取りをしてみましょう。
※尚、今回は別途データベース上にテストデータが用意されていることを前提とします。

まずは、「新規プロジェクト」を押下して、任意のプロジェクトを作成します。
プロジェクトは、作成されたスクリプトを管理するために作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/510eff5d-f607-2959-1b9f-0345f1d95a3b.png)
任意の「プロジェクト名」と、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e724b854-0e34-f30d-6ae0-8f1954137b0e.png)
任意の「スクリプト名」を付けて、完了を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/80d021c9-b91a-9c70-71ab-20f80388e442.png)

DataSpiderのデザイナー画面が開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/44df6017-cee7-8a9d-1035-f339c6175845.png)
デザイナの右側に「ツールパレット」があり、様々なロジックアイコンや他サービスを使うための設定アイコンが用意されています。今回は、「ツールパレット」-「データベース」-「PostgreSQL」内の「テーブル読み取り」アイコンを使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/db4c62a6-13aa-12ef-673c-bc180937c46c.png)
「テーブル読み取り」アイコンを、デザイナ中央部分にドラッグ＆ドロップすると、下記の通り、設定画面が出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/dbcf38c3-b842-63de-8f6f-392ea659105f.png)
「接続先」は、冒頭で「グローバルリソース設定」で作成した”接続先”を選択します。

すぐ下の右部分に「テーブルブラウザの起動」というリンクがあるので、そこを押下すると、テーブルブラウザが起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4ac572de-9651-ff8b-391a-2c41372bdb21.png)
PostgreSQLに存在するテーブル一覧が表示されるので、読み取りたいテーブルをクリックしてみてください。今回は、`products`というテーブルを参照してみます。

:::note info
DataSpiderの設定画面内で、PostgreSQL内のテーブル参照が可能です。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4a02fa9b-e373-553c-aae0-910f79adce63.png)

::: note info 
「DB読み取り」処理の前後処理のロジック検討の際に、実際のデータの型やサイズなどを確認した上で、ロジックを検討することが可能です。
:::

テーブルブラウザの「このテーブルを選択」で対象のテーブルを選択すると、自動でスキーマ定義が設定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/fe8c8bbf-7f35-fa89-6e52-a07dc80c1a9e.png)
右下の「抽出テスト」を押下すると、対象テーブルの件数確認もできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b2e95c1e-6776-dcc3-2a9a-dfef2f1054ad.png)

デザイナ上の完成スクリプトはこのようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/6dcf4aa8-d4ca-3a33-f3c9-eef6c43d51fa.png)
DataSpiderからデータベースのテーブル読み取りは、アイコン１つの設定で実装可能です。

## 最後に
今回は、PostgreSQLを使うための初期インストールとDataSpiderから接続してテーブル参照してみる、という基本的な部分をやってみました。PostgreSQLを一つの例として、DataSpiderからデータベースに接続する<strong>「容易性」</strong>を実感頂けたかと思います。

PostgreSQLを触ってみようと思っていた方や、DataSpider を触り始めて、これから何かデータベースに接続してみよう、という方のご参考になればと思います。

本記事では、取り掛かり部分のみのご紹介です。PostgreSQLを始め、期間限定で無料提供しているサービスは世の中にたくさんあります。是非ご自身のPCに気になるサービスやツールをインストールして、私も少しずつではありますが、一緒に色々とやってみましょう。

このブログでは、今後も様々なTopics記事や接続検証等、皆さんの参考になるような記事を投稿していきたいと思います！お読みいただきありがとうございました。それでは、また！