5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

INTECAdvent Calendar 2020

Day 10

Dataiku DSSとpostgreSQLの接続

Last updated at Posted at 2020-12-16

実務でデータ分析していると、どうしもデータベースを使いたくなる時がでてきます。
ということで今回は、Dataiku DSSとpostgreSQLの連携について書きます。
こちらのチュートリアルを参考にやりました。

Dataiku DSSは様々なデータストレージと連携することができ、020/12月時点で10種類のストレージをフルサポートしているようです。サポートしているストレージに関する詳細はこちらをご参照ください。

#環境
Ubuntu 18.04.4 LTS
postgreSQL 13.1
Dataiku ver 8.0.2

#postgreSQLインストール
公式のダウンロードサイトからインストール。

#postgreSQLのpostgresユーザーのパスワード設定(必要に応じて)
最初、パスワード認証がうまくいかなかったので、力業でなんとかしました。
もっとスマートなやり方がきっとある、そんな気はしています。

まず、パスワード系の設定ファイルpg_hba.confを探します。

sudo find / -name pg_hba.conf

で、pg_hba.confの場所がわかるので、pg_hba.confの最初の行のpeerをtrustに書き換えて以下のようにします。(sudo vi)

host    all         all         127.0.0.1/32          trust

設定再読み込み。

sudo /etc/init.d/postgresql reload

これでpostgresユーザーでパスワード無しで入れるようになりますので、ここでパスワードを設定。

psql -U postgres
postgres=# \password

設定後、pg_hba.confの最初の行をtrustからmd5に変更して、postgresqlの設定を読み込みます(reload)。

#postgreSQLの初期設定
今回扱う内容に応じて、テーブルやロールを作ります。
CSVからデータを読み込みたいので、あらかじめ以下ののCSVを/home/dataiku/以下におきます。
https://downloads.dataiku.com/public/website-additional-assets/data/orders.csv

初期設定は大まかに以下のようなことをしました。

  • dku_tshirt_adminユーザーを作成
  • データベースとしてdkuを作成し、スキーマとしてdku_tshirtを作成
  • ordersテーブルを作成し、orders.csvからファイルを読み込む
psql -U postgres  
postgres=# CREATE DATABASE dku; -- dkuデータベース作成
postgres=# \c dku
dku=# CREATE SCHEMA dku_tshirt; -- dku_tshirtスキーマ作成
dku=# CREATE USER dku_tshirt_admin WITH PASSWORD 'password'; -- dku_tshirt_adminユーザー作成
dku=# GRANT ALL PRIVILEGES ON SCHEMA dku_tshirt TO dku_tshirt_admin; -- dku_tshirt_adminユーザーのdku_tshirtスキーマへの権限設定
dku=# \connect - dku_tshirt_admin -- dku_tshirt_adminにユーザー変更
dku=# CREATE TABLE dku_tshirt.orders( 
dku(# "order_date" DATE
dku(# ,"pages_visited" INT
dku(# ,"order_id" VARCHAR
dku(# ,"customer_id" VARCHAR
dku(# ,"tshirt_category" VARCHAR
dku(# ,"tshirt_price" FLOAT
dku(# ,"tshirt_quantity" INT
dku(# ); -- 空のordersテーブルを作成
dku=# \q

一度シェルに戻り、orders.csvファイルをordersテーブルへインポートします。

$ psql -U dku_tshirt_admin -c "copy dku_tshirt.orders from stdin ENCODING 'utf8' CSV HEADER DELIMITER E',';" dku < /home/dataiku/orders.csv

Dataiku DSSとpostgreSQLの接続

Administrator権限を持ったユーザーで作業します。
[Applications]->[Administration]で、設定画面を表示します。
image.png

[Connections]クリックで接続設定画面になりますので、[+NEW CONNECTION]をクリック。
image.png

PostgreSQLをクリックします。
image.png

設定画面が出てきますので、以下のように入力して[TEST]をクリック。
これにより、接続がうまくいくか確認することができます。以下の画像のように「Connection OK」と出たら[CREATE]をクリック。
image.png

これで、Dataiku DSSからpostgreSQL内のデータを呼び出す準備ができました。

postgreSQL上のテーブルを、Dataiku DSSのデータセットとしてインポート

実際にプロジェクトからPostgreSQL上のデータにアクセスしてみます。
PostgreSQL上のテーブルを、Dataiku DSSのデータセットとしてインポートすることでPostgreSQL上のデータにアクセスできます。

SQL connectionという名前のプロジェクトを作成し、[+IMPORT YOUR FIRST DATASET]をクリック。
image.png

New dataset画面で[PostgreSQL]をクリック。
image.png

Connectionとして、先ほど設定したPostgreSQL_tshirtが選択できるようになっています。以下のように入力して[TEST TABLE]をクリックして読み込めそうか確認。postgreSQL側で権限がないとうまくいかないのでご注意ください。
image.png

Previewが出ればOK。
右上に[CREATE]をクリックします。
image.png

データが読み込めています。
image.png

フロー画面からもordersデータセットを確認することができます。
image.png

これで、Dataiku DSSとpostgreSQLの基本的な設定ができました。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?