在DataEase开源数据可视化平台中关联数据集制作宽表
编者注:本文为稀土掘金博主plateauandsp的原创文章。
原文链接:
https://juejin.cn/post/7078555707561213989
大宽表是数据挖掘模型训练中经常需要使用到的手段之一。出于工作中对数据挖掘以及宽表制作的需求,我近期从网上了解到一个方便好用、号称“人人可用”的数据可视化工具——DataEase,从而在DataEase中采用模拟数据生成宽表,看看是否能够满足需求。本文详细介绍一下我的操作思路和步骤。
宽表的定义与作用
从字面意义上讲,宽表就是字段比较多的数据库表,通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。由于把不同的内容都放在同一张表存储,宽表已经不符合三范式的模型设计规范。随之带来的主要坏处就是数据的大量冗余,与之相对应的好处就是查询的便捷与性能的提升。
宽表的设计广泛应用于数据挖掘模型训练前的数据准备。通过把相关字段放在同一张表中,可以大大提高数据挖掘模型训练过程中迭代计算时的效率。也就是说,用空间换时间,便于训练迭代、减少表关联数量,修改少量数据时就不需要改多张表。
DataEase的关联数据集
DataEase(https://dataease.io)是开源的数据可视化分析工具,可以帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便地与他人分享。
DataEase关联数据集的步骤如下图所示。采用多数据集间关联关系的构建,以及通过对数据集字段的选择展示组合完成,更易理解,也更加方便使用。在DataEase中,对于宽表的操作主要就是利用关联数据集来创建和生成。
基础数据说明
为了方便展示,我预先准备了所需的表和测试数据。使用的所有数据均通过函数伪造生成,如果类似,纯属巧合。文章末尾会提供Demo数据,需要的话可以将它们导入SQL文件练习操作。
ER图(Entity Relationship Diagram,即实体-联系图,一般用来描述现实世界的概念模型)如下:
]
具体表的内容说明
■ 学生表:student,包含10000条数据。
■ 学院表:faculty,包含5条数据。
■ 专业表:major,包含21条数据。
■ 课程表:course,包含2个基础课程数据。
■ 成绩表:scores,包含每个学生的每个课程分数。
生成宽表
此宽表的生成需要将上述五张表中的数据进行整合,且需要在一张表中包含以下信息:学生、年龄、入学时间、电话、院系、专业、课程、成绩等。
第一步:接入数据源。将原生数据导入MySQL数据库中(demo.sql),在DataEase数据源中接入MySQL数据源,如下图所示:
第二步:在数据集中创建名为“考试成绩”的独立目录。用于存放数据集。
第三步:创建数据库数据集,将五张表全部导入。可以采用直连或者抽取的方式,本次我采用的是直连方式。
第四步:创建关联数据集。将数据库数据集中的五张表以学生表开始,采用右连接的方式一一关联。
① 创建关联数据集
② 选择学生表
③ 关联成绩表
④ 设置学生表和成绩表关联关系
⑤ 设置成绩表和课程表的关联关系
⑥ 依此类推,可以设置课程表和专业表的关联关系,以及专业表和学院表的关联关系。
最终得到我们需要的宽表如下:
关于表连接的说明
Join(连接)是SQL的一种语法,可以通过不同的运算方式将多张表中的数据集中在同一张表里。在DataEase中支持以下几种连接:
■ Left Join (左连接,左外连接):返回包括左表中的所有记录和右表中连接字段相等的记录。
SQL语法:
select a.name,b.job from A a left join B b on a.id=b.A_id
■ Right Join (右连接,右外连接):返回包括右表中的所有记录和左表中连接字段相等的记录。
SQL语法:
select a.name,b.job from A a right join B b on a.id=b.A_id
■ Inner Join (等值连接又称内连接):只返回两个表中连接字段相等的行。
SQL语法:
select a.name,b.job from A a inner join B b on a.id=b.A_id
在仪表板中使用
宽表完成后,可以在DataEase的仪表板中进行使用。
附件
本文用到的测试数据SQL:
链接:https://pan.baidu.com/s/1XaBbGSOoN9qVioiRzKmAFw
提取码:wlwn
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
即学即会 Serverless | 如何解决 Serverless 应用开发部署的难题?
本文节选自《Serverless 开发速查手册》,关注Serverless 公众回复 手册 即可获得下载链接 作者 | 江昱(阿里云 Serverless 产品经理) 破局:工具链体系匮乏之困 在前篇《即学即会 Serverless | 初识Serverless》一文中,我们提到 Serverless 正在改变未来软件开发的模式和流程,并被预测将引领云计算的下一个十年,但尽管如此,开发者在选择使用 Serverless 时仍有诸多担忧,这其中最受关注的无疑就是工具链体系的匮乏。 所谓工具链的匮乏:一方面表现在市面上工具链不完善,这导致开发和部署难度大,进而增加成本;另一方面表现在,缺乏相关的工具链在体验层将 Serverless 体验进一步规范,优质工具链的匮乏导致本来就担心被厂商绑定的 Serverless 开发者变得更难与厂商解绑。 2020 年 10 月,中国信息通信研究院发布国内首个《云原生用户调查报告》明确指出在使用 Serverless 架构之前,49% 的用户考虑部署成本,26% 的用户考虑厂商绑定情况,24% 的用户考虑相关工具及完善程度,这些数据背后透露的实际上是:开...
- 下一篇
Apache APISIX 2.13.0 发布
距离 Apache APISIX 上一次发布 LTS 版本已经过去了大半年的时间,今天,Apache APISIX 社区带来了一个全新的 LTS 版本——2.13.0。该 LTS 版本不仅性能更加稳定,而且支持了更多的可观测性、服务发现插件和更完善的多语言开发体系。 如果你在追求整体稳定性的同时,也想尝试一下新功能,不妨考虑将现有的 Apache APISIX 升级到 2.13.0。后续社区也会在 2.13.0 版本的基础上发布一系列 patch 版本。 功能更新 新变化:不再默认暴露 API 在 2.13.0 之前的版本中,我们允许插件注册可供客户端调用的 API。例如,jwt-auth 插件会注册一个 JWT 签名的接口,客户端可以访问该接口,以生成用于校验的签名。但这个设计有一个潜在的缺陷——由于暴露出来的是接口而不是路由,因此无法像对待路由一样为其加强安全防护。虽然现有的机制允许用户通过编写对应的 plugin interceptor 来拦截接口访问,但这种方式仍然存在安全隐患。 所以从 2.13.0 版本开始,我们决定做出重大变更,不再默认暴露 API**。**如果用户需要暴...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS6,CentOS7官方镜像安装Oracle11G
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19