Edge2AI之使用 Cloudera Data Viz 创建仪表板

2022-04-27 16:57:52 浏览数 (1)

在本次实验中,您将创建一个简单的交互式实时仪表板,以可视化存储在 Kudu 中的传感器数据。

您将使用的数据是在之前的实验中收集和处理的传感器数据(参见下面的准备工作)。

准备

本次实验以Edge和Nifi实验中开发的内容为基础。

实验总结

  • 实验 1 – 部署并导航到 Cloudera Data Visualization
  • 实验 2 - 创建新的数据连接
  • 实验 3 - 探索数据
  • 实验 4 - 创建仪表板
  • 实验 5 - 添加图表

实验 1 – 部署并导航到 Cloudera Data Visualization

本实验向您展示如何部署和导航到 Cloudera 数据可视化 (DataViz) 页面。

如果您参加了指导实验,您可能已经获得了 DataViz 页面的链接。如果是这种情况,请随时跳到下一个实验。

部署Cloudera Data Visualization

本实验介绍如何部署Cloudera Data Visualization,如果已经部署完成,则跳过。

将Cloudera Data Visualization引擎添加到CDSW
  1. 转到 Cloudera Data Science Workbench Web 应用程序并以站点管理员身份登录。
  2. 在左侧边栏上,单击Site Administration。

您将看到一系列选项卡,其中包含您可以作为站点管理员执行的所有任务。

  1. 单击Runtime/Engine选项卡。
  1. 提供出现在引擎列表中的数据可视化引擎的名称以及指向 Cloudera Docker 存储库中 docker 映像的完整链接。

使用以下引擎:

代码语言:javascript复制
docker.repository.cloudera.com/cloudera/cdv/cdswdataviz:6.3.7-b38
  1. 单击添加。
添加Data Visualization到CDSW项目中
  1. 在左侧边栏上,单击Projects。
  1. 单击要在其中添加客户引擎的项目。因为不需要已有的脚本,可以选择空白项目。
  1. 从左侧边栏中 打开项目设置,然后单击引擎选项卡。Project Settings→Runtime/Engine,选择Legacy Engine
  1. 从下拉菜单中选择数据可视化图像。
  1. 单击保存引擎设置。
在CDSW中创建Data Visualization Application
  1. 转到项目的概述页面。
  2. 在左侧边栏上,单击应用程序。
  3. 单击新建应用程序。
  1. 为您的新应用程序提供以下详细信息:
  • 名称 - 输入应用程序的名称。
  • 子域 - 输入将用于构建 Web 应用程序 URL 的子域。确保它包含 URL 友好字符。
  • 描述 - 输入应用程序的描述。
  • 脚本 - 选择启动脚本的路径:/opt/vizapps/tools/arcviz/startup_app.py
  • 引擎内核 - 选择此应用程序所需的内核,选择Python 3。
  1. 单击创建应用程序。

几分钟后,您应该会在应用程序页面上看到应用程序状态更改正在运行 正在运行的应用程序现在拥有一个托管的、功能齐全的数据可视化平台。

您可以从应用程序页面上的操作 下拉菜单中停止、重新启动或 删除CDSW 应用程序。

如果要对现有应用程序进行更改,请单击 应用程序名称下的概览。然后转到“ 设置”选项卡进行任何更改并更新应用程序。

打开 CDP Data Visualization并登录

可以通过 Cloudera Data Science Workbench (CDSW) 访问 CDP 数据可视化。如果您不知道如何到达,请按照以下导航步骤操作:

  • 在 Cloudera Manager 中,单击集群 > Cloudera Data Science Workbench
  1. 在 CDSW 页面上,单击CDSW Web UI链接。
  2. 登录到 CDSW。
  3. 在 CDSW 页面上,单击Application,然后单击先前为实验设置的“Viz Server Application”。
  • 点击link登录到 Cloudera Viz Server Application。登录后,您应该会看到应用程序主页:
  • 切换用户到vizapps_admin(系统管理员用户)

目前登录进去的是用户admin是普通用户,没有添加数据源的权限,我们先切换到系统管理员用户vizapps_admin,然后给admin用户赋权限,这样就可以是有admin用户做后续的操作了。

先Logout当前用户admin

使用vizapps_admin/vizapps_admin用户登陆Data Visualization应用

进入系统后进入设置页面,选择Site Settings

进入Users & Group菜单,可以看到之前的用户admin是普通用户

点击编辑按钮,将Permissions改成Admin User,然后保存

然后退出,再使用用户admin登陆(通过CDSW Application)

实验 2 - 创建新连接

Kudu 是纯粹的存储引擎,不提供查询的 SQL 接口。对 Kudu 的 SQL 访问是通过 Impala 引擎完成的,您将在本次实验中使用该引擎。您将设置与 Impala 引擎的新连接以用于仪表板查询。

  1. 选择Data选项卡并单击NEW CONNECTION
  1. 在表单顶部,设置以下属性:
代码语言:javascript复制
Connection type: Impala
Connection name: Local Impala

注意:Connection type不是CDW Impala。

  1. Basic选项卡中设置以下内容:
代码语言:javascript复制
Hostname: <CLUSTER_HOSTNAME> (something like: cdp.x.x.x.x.nip.io)
Port #:   21050
Username: [leave blank]
Password: [leave blank]
  1. 在“Advanced”选项卡中设置以下内容:
代码语言:javascript复制
Connection mode:     Binary
Socket type:         Normal
Authentication mode: NoSasl
  1. 单击TEST以测试连接。

您应该看到“Connection Verified”,如下所示。

  1. 点击连接

实验 3 - 探索数据

Cloudera Data Visualization 提供了一个 Data Explorer 工具,使您能够探索、转换和创建数据视图以满足您的需求。在本实验中,您将查看 Kudu 中可用的数据并为仪表板准备这些数据。

  1. 选择新创建的Local Impala连接,您可以在左侧窗格中看到它。
  1. 选择Connection Explorer选项卡,然后选择Default数据库,最后选择Sensor表。将加载带有示例数据的预览。

您可以在数据示例中看到该sensor_ts列包含以微秒为单位的时间戳。对于您的仪表板,您需要将这些值转换为秒。在接下来的步骤中,您将创建一个新数据集并进行必要的数据调整。

  1. 单击Sensor表旁边的New dataset选项。将数据集命名为“Sensor Data”

将创建一个新数据集并在“数据集”选项卡下显示:

  1. 单击数据集将其打开并选择“Fields选项卡。您会注意到 DataViz 没有自动检测数据集的任何维度。

由于该sensor_ts列是数字类型,而不是日期/时间,它由#字段名称旁边的图标指示,因此它被归类为Measures而不是Dimensions。您将在接下来的步骤中修复。

  1. 您需要将数字字段从微秒转换为秒,并将其转换为TIMESTAMP数据类型。为此,请单击EDIT FIELDS按钮。
  1. 在Measures列表中,找到sensor_ts字段,打开其下拉菜单并单击Clone。Copy of sensor_ts将出现一个新的Measures。
  1. 打开此新度量的下拉菜单,然后选择Edit field
  1. 在Edit Field Parameters窗口中,更改以下内容:
  2. 在Basic Settings选项卡中:
代码语言:javascript复制
Display Name: sensor_timestamp
Category:     Dimension
  1. 在Expression选项卡中,输入以下表达式:
代码语言:javascript复制
microseconds_add(to_timestamp(cast([sensor_ts]/1000000 as bigint)), [sensor_ts] % 1000000)
  1. 通过单击VALIDATE EXPRESSION来验证表达式。
  2. 单击应用以保存更改
  1. 您会注意到类别 ( Dim)、数据类型(日历图标)和字段名称已更新。不过,该字段仍显示在“Measures类别中。

这只是刷新问题。单击顶部的REFRESH按钮,您应该会看到sensor_timestamp “跳转”到Dimensions类别的字段。

  1. 该sensor_id字段也是一个维度,需要移动到正确的类别。
  2. 为此,请在“Measures类别下找到该字段sensor_id,然后单击图标将其切换为。再次单击REFRESH按钮,您应该会看到数据集的以下结构:
  1. 单击绿色的保存按钮保存更改。

您刚刚创建了一个数据集来为您的仪表板提供数据,并对您的数据源进行了必要的调整。在下一个实验中,您将使用它创建仪表板。

实验 4 - 创建仪表板

您现在已经准备好开始构建仪表板了。让我们直接进入它:

  1. 在您的数据集页面上,单击NEW DASHBOARD按钮。
  1. 由于我们从数据集页面开始创建仪表板,您是否会注意到默认情况下已创建仪表板,并带有显示数据集所有字段的“table visual”。
  1. 单击表格视觉对象以确保它被选中(当它被选中时,您会在视觉对象周围看到一个蓝色边框)。选择表格视觉对象后,单击右侧的“Build”选项卡。
  2. 单击“Measures输入框以将其选中。然后单击字段sensor_0和sensor_1从“Measures列表中单击。这些字段将添加到“Measures输入框中。
  1. 默认情况下,这些度量使用sum()聚合函数来添加。通过选择每个新添加的度量并选择Aggregates > Average将其更改为avg()。确保对这两个Measures都这样做
  1. 单击“Dimensions”输入框将其选中。然后从Dimension列表中单击字段sensor_timestamp和sensor_id。这些字段将被添加到Dimensions输入框中。
  1. 选中Measures输入框中sensor_timestamp的字段,然后选择Order 和Top K > Descending。这将按降序显示表格中的值,最新的传感器读数位于顶部。
  1. 单击Refresh Visual以使用最新更改更新视觉。
  1. 最后,选择屏幕右侧的Settings选项卡并将Auto-refresh period(秒)的值更改为5。
  1. 单击仪表板顶部的Save按钮以保存更改,然后单击View进入查看/发布模式。这就是您的仪表板消费者将看到的:传感器读数通过流式管道进入,显示在实时仪表板中,自动更新。

实验 5 - 添加图表

仪表板通常是图形和图表的同义词。Cloudera Data Visualization 附带了无数图表类型来帮助可视化您的数据。在本实验中,您将向仪表板添加一个简单的条形图,使其更有趣。

  1. 在上面的查看模式仪表板上,单击EDIT按钮返回编辑模式。
  2. 单击右侧的“Visuals”选项卡。确保选择Local Impala连接和Sensor Data数据集,然后单击NEW VISUAL按钮。
  1. Visuals选项卡上,选择Scatter视觉类型:
  1. 根据您在上一个实验中学到的知识,输入以下属性:
代码语言:javascript复制
X Axis:  sensor_id
Y Axis:  avg(sensor_0)
Colors:  sensor_id
Size:    avg(sensor_0)
Filters: sensor_timestamp
  1. 单击sensor_timestamp过滤器将其选中,然后单击[] Enter/Edit Expression
  1. 在“输入/编辑表达式”窗口中输入以下表达式,以将图表中显示的数据限制为接收到的数据的最后一分钟。这将在 1 分钟的滚动窗口上创建图表。
代码语言:javascript复制
[sensor_timestamp] > seconds_sub(now(), 60)
  1. 验证表达式并单击Apply。
  1. 单击右侧选项卡上的Visual > Style,然后在Colors部分中选择一个彩色调色板。
  1. 单击右侧选项卡上的VISUAL > Settings ,然后在Axes部分中将Y Axis Scale设置为:log10
  1. 展开Marks部分并将Legend Style设置为None。
  1. 单击

仪表板设计器顶部的按钮以排列仪表板中的视觉效果。拖动图表中的两个视觉对象以根据需要定位它们。完成后,单击APPLY LAYOUT

  1. 单击Save按钮将更改保存到仪表板,然后单击View以切换到查看模式并检查您的实时仪表板的运行情况:

0 人点赞