Dataiku DSSのコンセプトと機能についてまとめてみた

# はじめに
Dataiku DSSのチュートリアルやユースケースについていくつか記事を上げていますが、操作方法以前にDataiku DSSのコンセプトや機能について知っておいた方が良いと思ったのでまとめることにしました。
基本的には[ここ](https://academy.dataiku.com/latest/concepts/index.html)の内容を日本語に訳したものになります。

# データスタック(Data Stack)
Dataiku DSSは、データスタックを支えるオンプレミス/クラウドのソフトウェア製品です。SaaSとは違うようです。
「[データスタック](https://medium.com/@foundinblank/whats-a-data-stack-7c96f7a15fe8)」とはデータを活用できるようにするまでの過程のことで、データの発展、本番環境、および開発環境のすべてにわたってDataiku DSSは活躍ことができます。

# インスタンス(Instances)
Dataiku DSSインスタンスは、特定の環境のニーズに対応するための設備です。

- 「デザインノード」インスタンスは、開発環境で、ダッシュボードやレポート、レポート作成に使うデータ、モデルなどを出力するパイプラインを作成します。

- 「オートメーションノード」インスタンスは、「デザインノード」から本番環境へのパイプラインとして、企業データを最終出力に変換します。

- 「APIノード」インスタンスは、「オートメーションノード」から出力されたモデルをリアルタイムのスコアリングで使用できるようにします。

デザインノードとオートメーションノードのパイプラインは「プロジェクト」として整理されており、Dataiku DSSインスタンスにログインした後、メインページからアクセスできます。

# プロジェクト(Projects)
Dataiku DSSプロジェクトは、特定のアクティビティに関する作業すべてを含むコンテナです。プロジェクトのホームはコマンドセンターとして機能し、プロジェクトの全体的なステータスを確認したり、最近のアクティビティを表示したり、コメント、タグ、To Doリストを通して共同作業をしたりできます。
![Home.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/442306/1ce4012a-ea6a-7ea6-842a-3ee69e0c8b20.png)
## フロー、データセット、レシピ(Flow, Datasets, and Recipes)
「データセット」は、表形式で見るデータあり、元のデータの記憶方式に関係なく同じ方法でデータにアクセスしたり、可視化したり、書き込んだりすることができます。ファイルシステム、SQLデータベース、Hadoopなど様々なシステムや、CSV、JSON、Excelなど様々なファイル形式に対応しています。
![explore.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/442306/9e37be1e-bd1d-726a-49a3-4c866b49c1af.png)
「レシピ」は、1つ以上の入力データセットに対して実行するアクションであり、結果として1つ以上のデータセットを出力します。データセットの加工、結合、グループ化など様々なレシピが存在します。また、レシピは「ビジュアルレシピ」と「コードレシピ」に分けられます。

- 「ビジュアルレシピ」は、事前に用意された多数の操作を通じて、入力データセットをすばやく、インタラクティブに変換できます。
- 「コードレシピ」は、ビジュアルレシピ機能では足りない部分を、SQL、Python、Rなどを使用して制御できます。

Dataiku DSSを使用すると、プログラミングの初心者と上級者が、ビジュアルレシピとコードレシピによって、同じプロジェクトでシームレスに共同作業することができます。

データセット（またはモデル）は、その元となるレシピの入力と出力によって定義されます。 「フロー」は、データセットとそれを生成するために使用されるレシピとの関係を視覚的に表現したものです。
![workflow_overview.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/442306/582f6940-c735-8478-8a4b-39c172e5f525.png)

また、これらの依存関係を記録することによって、Dataiku DSSがデータセットの（再）構築時に起動するデータプロセスの数を最小限に抑えるのに役立ちます。


## ラボ - ビジュアル分析(Lab - Visual Analysis)
ビジュアル分析ラボでは、コードフリーの環境でデータの実験が可能です。主に以下の2つのことができます。

- 組み込みのグラフやデータ加工（クリーニング、フィルタリングなど）を使用してインタラクティブな分析の実行ができます。 これらのステップは、レシピとしてフローに展開することもできます。

- 教師あり、または教師なしの機械学習アルゴリズムを使用して、知見を得たり、予測モデルを構築したりできます。これらのモデルはフローに展開することができます。
![model_training.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/442306/9b5afc13-f159-9328-6cd5-19fd1c9f4e9b.png)


## ラボ - コード(Lab - Code)
コードラボでは、SQL DBやHive、Impalaの操作を、Jupyterノートブック(Python/R)またはSQLノートブックでデータの実験をすることができます。これらのノートブックでインタラクティブな分析を実行し、コードレシピとしてフローに展開することができます。
![notebook.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/442306/51b4dede-14f8-52b7-dc3d-73fcbcb222e0.png)
コードラボを使用して、R ShinyやPython Bokeh、JavaScriptでインタラクティブなウェブアプリを作成することもできます。テンプレートやサンプルが存在するので簡単に作成を始められます。 Webアプリはダッシュボードで共有することができます。
さらにコードラボでは、テキストやコード、グラフを組み合わせたRマークダウンレポートを、PythonとRを使用して作成する機能も存在します。これらのレポートは、ダッシュボードや印刷可能な形式で共有できます。



## ジョブ、シナリオ、モニタリング(Jobs, Scenarios, and Monitoring)
「ジョブ」は、データセットを構築するときに同時に作成されます。すべてのログを確認することができるので、動作に失敗した時に潜在的なエラーをデバッグすることができます。

「シナリオ」は、タスクを自動化するのに役立ちます。たとえば、モデルを毎日更新して、常に最新の予測スコアを取得したいときに使用します。前に実行されたシナリオとその結果に関するレポートは、「モニタリング」で確認できます。

## Wiki
Wikiは広く使用されているツールであり、チームメンバーでプロジェクトやプロジェクトのグループの記事を作成および編集できます。 すべてのDataiku DSSプロジェクトはwikiに対応しています。

## ダッシュボード、インサイト(Dashboad, Insights)
「インサイト」はグラフやデータセット、ウェブアプリ、レポートなどのDataiku DSSのオブジェクトのことで、インサイトを整理、共有、提供するためのコミュニケーションツールが「ダッシュボード」です。