掺杂分析:为什么要注意Apache Zeppelin

迟早,每个人都会进行数据分析。 在没有此功能的大型多人游戏(以及单人游戏)中,无处可走。 有多少用户喜欢新模式; 货币化的弱点在哪里; 在哪里观看游戏设计师以增加玩家的参与度; 一百万多-一切都算在内。 所有这些都会影响开发人员随后做出的决策。

但是他们以不同的方式实施分析:有人购买第三方解决方案(简单但不灵活),有人为自己编写(冗长而昂贵),而有人只是考虑程序员的几个基本指标而不会打扰。

因此,我将讨论一种对每个人都有用的工具。 那些刚开始构建分析的人将能够从头开始“从膝盖”创建一个系统,拥有现成解决方案的公司将能够“提升”他们的方法。

这是关于Apache Zeppelin的 。 这是一个多功能的交互式外壳,使您可以查询各种数据源,处理和可视化结果。

Jupyter Notebook是一个非常接近的类似产品,但是Zeppelin在使用数据库方面有些调整。 它使用“解释器”的概念-为语言和/或数据库提供后端的插件。

Zeppelin和Jupyter一样,对于用户而言,它看起来像一组笔记本文件,由在其中编写和执行请求的段落组成。 使用内置的可视化工具,带有一组查询的笔记本电脑可以轻松地转变为功能完善的数据仪表板。



我们不会故意解决安装和配置问题-在网站和网络上的文档中都可以找到有关不同数据库的若干教程。 本文的目的是讨论该问题的用户方面,该工具的有趣应用程序(包括最不明显的应用程序)以及分析人员可以从中获得的好处,无论他们已经使用了哪种解决方案。

举例来说,我将告诉您为什么我们在Pixonic中使用它(公司已经拥有自己的生产分析系统时就是这种情况)。

所以,让我们按顺序进行。

齐柏林飞艇


组合不同的数据源-在一个仪表板中
-它的主要优势之一。 作为标准程序集的一部分,其中包括一组令人印象深刻的解释器(用于NoSQL和关系数据库)。

实际上,这给出了以下内容:

  1. 拥有现有数据库和分析系统的大多数公司都可以“开箱即用”使用它(只要适用于开源产品,呵呵)。 具有更多外来数据库的爱好者可以自己编写解释器,因为产品网站上有一篇文章
  2. 如果需要的话,小公司可以专门从数据库和Zeppelin作为界面来构建其分析系统。
  3. 正如与同事交流的经验所表明的那样,对于许多人来说,数据可以从不同的源中聚集而来,并存储在不同的数据库中(le-e-gashi!),某人可以使用其他第三方分析服务。 相应地,分析人员有时要在自己之间“结交朋友”。 Zeppelin允许您在一个笔记本中为每个段落使用自己的解释器,这将使您可以将查询结果显示在一个地方。



Zeppelin + Python / R


Zeppelin不仅是用于各种数据库的Web界面,而且还可以充当用于以编程语言执行脚本的交互式外壳。 它包括R和Python的解释器,因此它很可能是通常的RStudio和Jupyter的替代品。 是的,它提供的功能比专用的IDE少(例如,没有自动替换),但这由优势所弥补,我们将在下面讨论。

与同一个Python配合使用时,Zeppelin的功能提高了很多倍:在这里,您可以通过API从第三方服务获取数据(参见上一段落),并具有处理常规数据库查询之外的数据以及自动执行这些过程的能力。 齐柏林飞艇支持无需任何手势就可以逐个更新仪表板(再次,快速查看同事的决定表明,这项看似微不足道的任务有时必须以非常狡猾的方式解决)。 好吧,最甜蜜的是:它具有内置的版本控制系统-基本,但足以应付大多数分析任务。

我们公司积极使用Python和AppMetr(内部分析系统)进行复杂的数据处理。 因此,尝试Zeppelin的想法是专门针对我们的脚本出现的-我们认为这有可能简化许多与例程相关的例程,例如使结果可视化。

一键可视化世界上的一切


Zeppelin可以按照摘要图的原理,以几个基本的可视化器的形式显示在段落中显示的数据:在界面中,选择将在其上构建轴以及如何汇总显示值的字段。 生成的图表是可单击的,并易于查看不同部分的数据。

这种看似适度的功能可以覆盖分析人员可视化结果的95%的任务。 您可以停止无休止地将下载无休止地导出到Excel,仅用于图形显示,甚至忘记了matplotlib,bokeh和ggplot2之类的令人恐惧的单词-脚本的结果也只需单击几下即可变成图形。

但是,对于更复杂的可视化,可以再次记住图形库的名称-Zeppelin已与最受欢迎的Python和R图形库进行了内置集成:



协作和界面配置


Zeppelin可以在本地工作,并且可以简单地用作分析工具,但是如果将其部署在服务器上,则可以根据需要通过LDAP和访问设置将其转变为具有LDAP授权的公司分析服务。 根据分析的需要,它可以充当一组用于项目指标的仪表板,以及脚本和下载的常规存储库,或例如供分析师协作的空间。 一个不错的好处:无需在Confluence中交换任何文件或启动新的坞站-您只需将链接拖放到仪表板即可。

在这方面,自定义界面的灵活性以及生成用于输入值的简单表格的能力起着重要的作用。 当然,分析人员对SQL查询和R代码感到安心,但这会使未准备好的用户陷入僵局。 因此,在Zeppelin仪表板中,您可以隐藏代码(例如,这对于Jupyter来说是个问题),创建用于输入日期和其他更改参数的字段,以及为客户提供一种简洁易懂的表格。

在我们公司中,许多流程都与分析相关联,因此,不同部门会定期需要进行一些特定的卸载,例如,根据最新数据重新计算资产负债表。 已经为此类事情编写了很长时间的脚本,但是其他人必须运行它们。 您是否曾经尝试教20位游戏设计师使用Jupyter? 结果,我们通过将脚本移动到Zeppelin来优雅地解决了这个问题,例如,DG只需单击一个按钮就可以获取所需的数据。 还是没有一个:



目前非常重要的是,所有接口的准备和配置都完全由分析人员自己进行,而无需程序员(或上帝禁止的UX沟渠)。

并行过程的好处


Zeppelin在多个过程中工作,从中获得有趣的好处-它允许您为每个笔记本电脑和每个用户运行一个单独的Python实例。 因此,没有棘手的设置,您就可以并行运行多个庞大的处理脚本-只需在不同的笔记本电脑上进行操作即可,无需等待完成就可以继续工作。 这在本地副本的情况下也适用,并且在服务器上进行部署时,通常可以从本地计算机中提取部分计算,然后在服务器上执行。



将段落嵌入网站



如果您已将Zeppelin部署到服务器,则可以获取任何段落的链接(带有查询结果或图形),并将其作为iframe发布在网站上(这非常简单,该网站有一个教程)。 实际上,分析师很少需要在外部资源上发布一些结果,但是将可视化工具添加到内部服务(在同一Confluence中)可能非常方便。 因此,您可以创建在文本中直接包含交互形式和可视化工具的报表。

自我描述的报告


Markdown支持使您除了图形和表格外,还可以将带有格式化文本的段落添加到仪表板。 因此,您可以制作带有描述的可视报告,用户可以立即查看有关某个问题的数据,可以在图表上查看所有数据,还可以阅读分析人员对结果的解释。 与Jupyter也提供降价支持不同,Zeppelin可以制作交互式表格并更快地可视化结果,并且结果更准确,最终用户可以访问,这很重要。

因此,它是分析师通常研究的一种快速而清晰的选择。 通常,分析师的工作结构如下:赋予分析师研究游戏某些方面的任务。 他们准备数据,检验假设,可视化支持结果,例如使用图表并撰写报告(例如,合计)。 这是一个正确而艰苦的过程。 在我们的案例中,您可以在不浪费时间的情况下,用这些非常简单的卸载和脚本来绘制笔记本电脑的轮廓,立即用图形说明结果,并在下几段中描述您的结论:



当然,齐柏林飞艇有一些问题值得指责,它仍然不能一直稳定运行(它仍然是开源),Web界面占用了大量RAM,有人可能缺少成熟的IDE的功能。 但是,已经有很多有趣的用户案例可以使用它-因为它绝对值得分析人员关注( 当然,社区越大,将来它就会变得越好 )。

对于小型公司,它可以成为主要工具,因为它允许您在数据库上添加完整的分析系统。 对于拥有现有分析工具包的大型公司而言,这是一个有用的补充,不会替代主系统,但会提供一些有用的优势。

Source: https://habr.com/ru/post/zh-CN414921/


All Articles