オンプレミス版 Dataiku DSS を構築してみた

この記事は [TDCソフト株式会社 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/tdc) に参加しています。

https://qiita.com/advent-calendar/2022/tdc

## 概要
データアナリティクスプラットフォームである Dataiku にはオンプレミスで利用可能な無料版の Dataiku DSS が用意されています。  
触ってみたかったので Amazon EC2 を使って構築してみました。  

* [Dataiku](https://www.dataiku.com/ja/)
* [Dataiku 各種プラン比較](https://www.dataiku.com/ja/%E8%A3%BD%E5%93%81/%E5%90%84%E7%A8%AE%E3%83%97%E3%83%A9%E3%83%B3%E3%81%A8%E6%A9%9F%E8%83%BD/)

## 手順
以降の手順は次の資料に（そこそこ）従って作業しました。  
* [Install Dataiku DSS on Linux](https://www.dataiku.com/ja/%E8%A3%BD%E5%93%81/%E5%A7%8B%E3%82%81%E3%82%8B/linux/)
* [Custom Dataiku install on Linux](https://doc.dataiku.com/dss/latest/installation/custom/index.html)

### 1. Amazon EC2 インスタンスを作成する  
今回は関連パッケージなどを確認しつつ構築したかったのでマーケットプレイスを使わず手動で構築しました。  

必要なスペックは [Requirements](https://doc.dataiku.com/dss/latest/installation/custom/requirements.html) に記載のとおりです。
下記のとおり最小限のメモリで構築しましたが、構築後にクイックスタートを試してみた限りではスペックに問題はありませんでした。  
マシンスペックさえ許せばノート PC にもインストールできそうです。  
実案件では扱うデータのサイズに合わせて大きさを調整する必要があるのでしょう。

* インスタンスタイプ: t3.xlarge
    * vCPU: 4
    * Mem: 16GB
    * Arch: x64
* OS: Amazon Linux 2

Dataiku DSS は Web ブラウザでアクセスして使用します。  
後ほどインストール時にポート番号を指定しますが、ここで予め決めておいて Security group にて Inbound を許可しておくと行き来しなくて済みます。  
[Install Dataiku DSS on Linux](https://www.dataiku.com/ja/%E8%A3%BD%E5%93%81/%E5%A7%8B%E3%82%81%E3%82%8B/linux/) に従って作業をすると 11000 番ポートを使用します。

### 2. EC2 インスタンスに SSH する
ここからの作業は EC2 インスタンス上の作業です。  
公式ドキュメントが大変優秀だったので Linux を使い慣れている方であれば特に苦戦することはありません。 

### 3. パッケージをダウンロードし解凍する
パッケージをダウンロードします。
```shell
$ wget https://cdn.downloads.dataiku.com/public/dss/11.0.2/dataiku-dss-11.0.2.tar.gz
$ tar xzf dataiku-dss-11.0.2.tar.gz
```

### 4. SOURCE_DIR と DATA_DIR を環境変数化する
後々何度か出てくるので環境変数化してしまいます。  
※下記のコマンドは作業中のディレクトリで構築する想定になっています。
```shell
$ export SOURCE_DIR=$(pwd)/dataiku-dss-11.0.2
$ export DATA_DIR=$(pwd)/data
$ export PORT=11000
```

### 5. インストールを実行する
インストール用 shell スクリプトを実行します。  
この時点では依存関係のあるパッケージをインストールしていないのでインストールに失敗します。  
```shell
$ ${SOURCE_DIR}/installer.sh -d ${DATA_DIR} -p ${PORT}
～～～略～～～
*** Error: package git not found
*** Error: package nginx not found
*** Error: package ncurses-compat-libs not found
*** Error: package java-1.8.0-openjdk not found
*** Error: package compat-gcc-48-libgfortran not found
～～～略～～～
$
```

### 6. 必要なパッケージをインストールする
エラーメッセージに必要なパッケージが書いてあったのでそれに従ってインストールします。  
nginx は Extras Library にあります。
```shell
$ sudo yum install git ncurses-compat-libs java-1.8.0-openjdk compat-gcc-48-libgfortran
$ sudo amazon-linux-extras install nginx1
```

### 7. 再度インストールを実行する
必要なパッケージをインストールしたので今度は無事インストールできます。  
インストールが成功すると、Dataiku DSS の起動コマンドなどが表示されます。
```shell
$ ${SOURCE_DIR}/installer.sh -d ${DATA_DIR} -p ${PORT}
～～～略～～～
***************************************************************
* Installation complete (DSS node type: design)
* Next, start DSS using:
*         '${DATA_DIR}/bin/dss start'
* Dataiku DSS will be accessible on http://<SERVER ADDRESS>:${PORT}
*
* You can configure Dataiku DSS to start automatically at server boot with:
*    sudo -i "${SOURCE_DIR}/scripts/install/install-boot.sh" ${DATA_DIR} ${USER}
***************************************************************
$
```

### 8. Dataiku DSS を起動する
バックエンドのサービスがいくつか立ち上がるのを少し待ちます。  
問題なく起動すればプロンプトが返ってきます。  
残念ながら（？）エラーが発生しなかったため、ここでどのようなエラーメッセージが返ってくるか確認できませんでした。
```shell
$ ${DATA_DIR}/bin/dss start
Waiting for DSS supervisor to start ...
backend                          STARTING
ipython                          STARTING
nginx                            STARTING
DSS started, pid=5358
Waiting for DSS backend to start .........
$
```

### 9. インスタンス起動時に Dataiku DSS を自動的に起動するようにする
インスタンスの起動時に自動起動するようにしておかないと後で面倒なので自動化します。  
```shell
$ sudo -i ${SOURCE_DIR}/scripts/install/install-boot.sh ${DATA_DIR} ${USER}
```

### 10. Dataiku DSS に接続する
Web ブラウザで Dataiku DSS にアクセスします。  
初回起動時はカッコイイ画面が表示されます。  
無償版のまま設定を進めるときは NO を選択します。  

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3004015/54bfc5c9-7f9a-cc6c-1d00-b7d5973247dd.png)

設定を進めると初期 ID とパスワードが表示されます。  
安定の admin / admin ですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3004015/4b527e2a-550b-95e0-5e8e-d3a2ad912234.png)

### 11. パスワードを変更する
パスワードがそのままなのは良くないので変えておきます。  
**右上の丸いアイコン** → **歯車のアイコン** と進み、**My Account** タブで変更できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3004015/624f4162-d2c6-e388-4c73-1cbede90c1b9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3004015/7d2965a5-f9fb-6c2d-8ca9-3236bfd3af81.png)

## 終わりに
以上で構築は完了です。  
普通こういう作業をしていくとうまくいかないポイントがどこかにあります。  
その都度あれこれ調査が必要になるものですが、今回は全くそういうことがありませんでした（わざわざ記事にする意味……）。  

あとは [Dataiku Academy](https://academy.dataiku.com/page/ja) を使って学習を進めるなり、とにかく触り倒していくだけです。  
他のデータアナリティクスツールとどんな違いがあるのか、触ってみるのが楽しみです。

## 参考
ここまでのリンクの再掲です。

* [Dataiku](https://www.dataiku.com/ja/)
* [Dataiku 各種プラン比較](https://www.dataiku.com/ja/%E8%A3%BD%E5%93%81/%E5%90%84%E7%A8%AE%E3%83%97%E3%83%A9%E3%83%B3%E3%81%A8%E6%A9%9F%E8%83%BD/)
* [Install Dataiku DSS on Linux](https://www.dataiku.com/ja/%E8%A3%BD%E5%93%81/%E5%A7%8B%E3%82%81%E3%82%8B/linux/)
* [Custom Dataiku install on Linux](https://doc.dataiku.com/dss/latest/installation/custom/index.html)
* [Dataiku Academy](https://academy.dataiku.com/page/ja)