當前位置:
首頁 > 最新 > 協作式數據科學平台 Dataiku DSS 基本概念介紹

協作式數據科學平台 Dataiku DSS 基本概念介紹

引言

這一篇我們主要研究一下 Dataiku DSS 的主要概念,核心的概念主要包括:連接(Connection)、數據集(DataSet)、處理方法(Recipe)、模型(Model)、工作流(Flow)、Notebook、分析(Analyses)、Dashboard、任務(Task)、項目(Project)。

1.連接(Connection)

連接可以看作是Dataiku DSS一個最基礎的概念,數據集就是在連接上創建的。使用Dataiku DSS的第一步也是定義數據連接。連接可以看做是為了連接一個資料庫配置的JDBC對象,也可以為了連接伺服器上的一個文件夾設置的配置項、或者是為了連接一個HDFS中的目錄配置的一些參數,還可以是連接S3的配置。Dataiku DSS支持的連接類型非常全面,可以查看官方文檔。

如下圖是一個 MySQL 連接的配置頁面。

創建完一個連接後,可以通過測試功能來測試連接是否正確。當然還有很多連接額外的參數,例如許可權、數據寫入當前連接的規則等。關於許可權和高級規則後邊有空繼續研究。

2.數據集(DataSet)

數據集是創建在連接(connection)上的對象,數據集中的數據可以看作是連接(connection)數據中的子集。如果連接代表了一個 MySQL 資料庫,那麼數據集通常是這個資料庫中的一個表。如果連接是一個 HDFS 配置,那麼數據集可能是一個子目錄或者文件。

通常來說,Dataiku DSS 的數據集和資料庫中的表是一個概念,數據集中的記錄擁有一樣的 schema。除了 connection 中創建數據集以外,Dataiku 提供了對當前項目內部指標和統計信息創建數據集的能力,可以方便地將系統內的統計信息創建成一個數據集,分析當前系統的使用情況。

同時,Dataiku 提供了創建目錄的功能,可以在系統中或連接的 HDFS 中創建一個目錄,然後用目錄中的內容來創建數據集。這時候創建的目錄就像是一個連接(connection)的功能。

如果說連接(connection)是一個基礎對象的話,那數據集(DataSet)絕對是一個最為核心的對象。整個 Dataiku DSS 的所有工作基本上都圍繞 Dataiku 來展開。

Dataiku DSS 會在創建數據集的過程中自動識別數據集的欄位(schema)信息,包括名稱、存儲類型等(CSV 類型的數據集自動生成欄位名稱或者選取某一行)。數據集欄位中,有一個非常獨特並且重要的屬性叫 meaning,我們可以把它叫做欄位的業務類型,與欄位存儲類型相區別。業務名稱其實是系統定義了一些的規則,系統根據規則來識別列的 meaning,比如郵件地址、經緯度、日期等。

下圖是數據集的 meaning 類型:

3.處理方法(Recipe)

Recipe 這個詞翻譯成中文是「菜譜」、「處方」的意思,在 Dataiku 中可以看作是數據處理的一個或者一組步驟,數據的轉換、group by、join、distinct、一段 SQL 代碼、Python 代碼都可以看做是一個 Recipe。

Dataiku 的 Recipe 主要分為可視化 Recipe(Visual Recipes,如可視化的數據準備、join 等)、代碼 Recipe(Code Recipes,如 Python、R、SQL 等),插件 Recipe(Plugin Recipes,如 Twitter Tools)和其他 Recipe(導出、預測、聚類等)。

每個 Recipe 都有輸出數據集和輸入數據集。由於 Recipe 輸入和輸出都是數據集,並且提供了各種類型的 Recipe,所以業務人員不用再關注輸入輸出的詳細配置,只需要按照自己熟悉的語言或者操作快速完成數據處理,方便用戶處理數據。

同時,可視化的 Recipe 在執行的過程中可以選擇不同的執行引擎(如 Dataiku 內置的引擎,Spark、Hive 等),也方便了使用可視化 Recipe 的用戶,不用太關注底層的實現技術。

下圖,數據集可用的 Recipe:

4.模型(Model)

Dataiku 中的模型跟機器學習的模型是一個概念,或者更為抽象一些。用戶通過選擇數據集、選擇演算法、配置參數就可以自動訓練一個模型。在模型的訓練過程中用戶可以選擇不同的引擎(Python、MLLib、H2O、Vertica),同時 Dataiku 提供了一些模型訓練的模板,可以幫助數據分析師快速的訓練出一個模型。

同樣,對於一個已經訓練好的模型,可以在 Dataiku 中發布成一個預測的 API 服務,方便外部系統的調用。關於 API 後續可以繼續討論。

模型快速創建頁面:

模型演算法選擇界面:

5.數據流(Flow)

Flow 暫稱為數據流吧。Flow 的概念可以看做是系統記錄的用戶在一個項目中對上面這些對象(數據集、處理方法、模型)折騰(操作)的邏輯,系統通過記錄各種可視化的操作,為用戶呈現出了一個操作的數據流圖,就是一個 Flow 了。項目的 Flow 由若干個有向無環圖和零散的數據集組成,Flow 基本上成了大部分操作的快捷入口,所以 Flow 成了一個非常重要的展示方式,頁面位置也緊隨項目概覽首頁。

項目內的 Flow:

後續的一些概念相對以上幾個比較獨立,下節繼續分享:Notebook、分析(Analyses)、Dashboard、任務(Task)、項目(Project)。

6.Notebook

Notebook 由於功能的靈活性,最近幾年頗受數據分析師和科學家青睞,基於網頁版的 Notebook 繼承了 Shell 腳本和網頁應用的優點,用戶可以通過可視化的方式快速的預覽、評估數據探索結果,並進行快速的修正和迭代探索過程,最終導出探索過程文件。

比較有代表性的 Notebook 目前有 Jupyter 和 Zeppelin。Dataiku 中的 Notebook 主要包括了 SQL、HIVE、Impala、Python、R、Scala(Spark),其中 Python、R、Scala 主要是集成了 Jupyter 的能力。

創建 MySQL Notebook 的時候需要選中一個連接(connection),後續的 Notebook 中的代碼都是基於選中的這個連接中的表和數據集。創建 Python、R、Scala 類型的 Notebook 時,用戶可以選擇默認的模板,Notebook 模板裡面人性化的提供了導入相關包的代碼,以及將數據集轉化為 Dataframe 的能力。用戶只需要修改數據集的名稱,就可以像使用原生 Notebook 一樣使用 Dataiku 的 Notebook。

Dataiku 中 Notebook 可以轉化為一個 Recipe,這樣更方便用戶探索數據並且將探索過程生成到 Flow 中,方便後續生產化的調用。

7.分析(Analyses

Dataiku 中的分析有點大雜燴的感覺,分析(Analyses)面向的主要問題是:既然對一個數據集分析要進行數據清洗、做圖表、模型探索,那不如直接把這些東西放一起好了。

所以 Dataiku 的分析中包括了數據探索、同時可以添加數據處理步驟並發布成 Recipe、做 chart、建立模型。所以分析(Analyses)可以看成是面向某一個數據集的所有分析過程的一個快捷入口。

8.Dashboard

Dataiku 中的 Dashboard 類似於我們經常用的 PPT,可以多個頁面組成,每個頁面是一個 slide。可以將項目中的內容添加到 Dashboard 中的 slide 中。可以添加的內容包括:DataSet(數據集)、Chart(圖表)、comment(評論)、Notebook、Metrics(項目中的一些統計指標信息)、Saved Model Report、Managed Folder、WebAPP、Report、Project Activity(項目中的活動信息)、Scenario(調度)、MACRO、static insight、TEXT、image、webcontent。

整個 Dashboard 包含的內容可以說是五花八門了,能放進來的東西差不多都放進來了。在一個 slide 中可以添加多個對象,同時一個對象可以佔用多個柵格,用戶可以拖動操作來調整對象佔用柵格的大小。設計好的 Dashboard 可以設置為公開狀態,方便其他用戶的查看。

Dashboard 中可以添加的內容:

9.任務(Job)

Job 的概念在項目中與數據集(DataSet)和 Recipe 相關。Dataiku 為了快速地探索數據,很多數據探索過程都是通過可視化界面在抽樣數據上運行的,並沒有在全量數據上運行,也就是說 Recipe 的輸出數據集並沒有生成數據,因此 Job 就是解決探索過程之後全量數據運行生成輸出數據集的問題。在配置完一個 Recipe 以後,就可以點擊運行按鈕,這時候系統會提交一個 Job,在全量數據上運行這個 recipe,生成輸出數據集。

執行某一個具體的 Job 時,Dataiku DSS 提供了切換引擎和執行方式的選項。可選的引擎包括:DSS 默認引擎、Spark、資料庫引擎、HIVE、Impala,執行的方式包括:只執行當前 Recipe、執行當前 Recipe 依賴的所有數據集等。

10.scenario

scenario 在 dataiku 中可以看做是一個調度的配置和執行器。可以在項目中創建一個 scenario,在 scenario 中設置調度的運行方式(自動、手動),觸發方式(時間觸發、數據集變動觸發等)、告警方式(郵件、即時通訊工具等)以及調度的內容和順序(系統內叫 step)。

step 的內容主要包括:數據集構建、模型訓練、項目一致性監測、清空緩存、DashBoards 內容的重新構建、自定義代碼的執行、變數的定義和運行,其他(調度另外一個 scenario、發送信息等)。scenario 中可以調度的任務也是非常的豐富了。

11.項目(project)

項目的的概念,跟我們日常中工作中提到的項目基本上是一個概念,是一種 Dataiku DSS 內的資源組織方式。項目裡面包括了參與人、數據集、根據數據創建出來的一切其他對象(模型、Recipe 等)。以上的這些對象除了 connection 以外都會隸屬於某一個項目。

項目中也提供了 API 服務的能力,用戶可以將項目中的模型、Python、R 代碼、數據集查詢、SQL 查詢發布成一個 API,供外部調用。項目中的參與用戶可以對項目中數據集等對象進行評論,同時支持了@ 的功能,方便項目內用戶的協作。同時項目支持了版本的概念,可以查看每次變動和變動之間的差異。

12.Catalog

Dataiku DSS 中所有資源的搜索和查看模塊。在這個模塊下,所有 Dataiku DSS 創建的主要對象都可以被檢索,而且可以通過每種對象的不同屬性進行多維篩選,方便了用戶查找所需內容。可供搜索和查看的內容包括了數據集、Recipe、Analysis、Insight、Notebook、Dashboard、Report、Project、WebAPP、Comment、managed folder、saved model。

13.其他

除了以上這些概念之外,Dataiku 為所有可以編輯的這些對象提供標籤和描述的能力,同時為部分對象提供了評論的能力,用戶可以對這些對象添加標籤、描述和評論方便檢索和數據探索過程中知識的沉澱。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 TalkingData數據學堂 的精彩文章:

南京大學成立人工智慧學院

TAG:TalkingData數據學堂 |