首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

协作式数据科学平台 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 为所有可以编辑的这些对象提供标签和描述的能力,同时为部分对象提供了评论的能力,用户可以对这些对象添加标签、描述和评论方便检索和数据探索过程中知识的沉淀。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180410G1H7A000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券