宽表的定义与作用

从字面意义上讲就是字段比较多的数据库表。通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。由于把不同的内容都放在同一张表存储,宽表已经不符合三范式的模型设计规范,随之带来的主要坏处就是数据的大量冗余,与之相对应的好处就是查询性能的提高与便捷。宽表的设计广泛应用于数据挖掘模型训练前的数据准备,通过把相关字段放在同一张表中,可以大大提高数据挖掘模型训练过程中迭代计算时的效率问题。(一句话,空间换时间,便于训练迭代、减少表关联数量,修改少量数据时不需要该多张表)。

DataEase的关联数据集

DataEase(https://dataease.io/),是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便的与他人分享。

DataEase的关联数据集如下图所示,采用多数据集间关联关系的构建以及通过对数据集字段的选择展示组合完成,更易理解,使用方便。在DataEase中宽表的处理主要就是利用关联数据集创建和生成。

基础数据说明

为了展示方便,预先准备了表和测试数据(所有数据为通过函数伪造生成,如果类似,纯属巧合)文章末尾提供demo数据导入sql文件。ER图如下:

具体表的内容说明如下:

学生表student,包含10000条数据。

学院表faculty,包含5条数据。

专业表major,包含21条数据。

课程表,包含2个基础课程数据。

成绩表,包含每个学生的每个课程分数。

生成宽表

此宽表主要需要将上述五张表中的数据进行整合,需要在一张表表包含以下信息:学生、年龄、入学时间、电话、院系、专业、课程、成绩等信息。

第一步:接入数据源

将原生数据导入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

利用DataEase的关联数据集制作宽表相关推荐

  1. 数据库制作宽表的方法

    INNER JOIN:如果表中有至少一个匹配,则返回行 LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行 FULL JOIN ...

  2. python长表转换宽表_pandas使用之宽表变窄表的实现

    我就废话不多说了,还是直接看代码吧! import pandas as pd # 伪造一些数据 fake_data = {'subject':['math', 'english'], 'A': [88 ...

  3. 利用 Python / R 对数据集进行「长」「宽」转换

    晚上在微信群看到有人提问: 这其实是数据处理中经常遇到的数据集「长」「宽」格式转换问题.看起来似乎挺难,有很多细节要考虑.实际上这个问题也的确不简单,如果从零开始码要花不少精力,效果还不好保证. 但是 ...

  4. 【视频特辑】数据分析师必备,快速制作一张强大好用的大宽表

    简介:随着企业数字化进程的逐步推进,在日常经营过程当中会沉淀下越来越多的数据信息. 每当想做数据分析的时候,就会发现想要的指标分散在不同的数据源.数据集.数据表当中. Quick BI的数据关联功能, ...

  5. python制作训练集_利用Tensorflow简单实现VGGNet,从数据集制作到训练完成测试

    VGGNet_TF 利用Tensorflow简单实现VGGNet,从数据集制作到训练完成测试 参考:<Tensorflow实战><Tensorflow 实战Google深度学习框架& ...

  6. 室外管线lisp_利用Autocad lisp进行地下管线成果表制作方法的研究

    利用 Autocad lisp 进行地下管线成果表制作方法的研究 吕豆豆 ; 王卫 ; 骆华春 [期刊名称] <科技信息> [年 ( 卷 ), 期] 2014(000)012 [摘要] 地 ...

  7. 【实时数仓】DWM层订单宽表之需求分析、订单和订单明细关联源码

    文章目录 一 DWM层-订单宽表 1 需求分析与思路 2 订单和订单明细关联代码实现 (1)从Kafka的dwd层接收订单和订单明细数据 a 创建订单实体类 b 创建订单明细实体类 c 在dwm包下创 ...

  8. 利用Realsense D435和Mocap制作TUM数据集

    利用Realsense D435和Mocap制作TUM数据集 开门见山 步骤 开门见山 步骤 如果有Mocap,根据mocap系统指示获取Groundtruth,我实验室的mocap为optitrac ...

  9. 手把手教你利用Word制作成绩表(超详细)

    在Office办公软件中,Excel无疑是最适合拿来做表格的,但如果表格不大,或者因为上司的硬性规定等原因,我们有些时候也是要拿Word来做表格的.其实在Word中做表格也并不是一件非常困难的事,而且 ...

  10. 维度表和事实表以及明细表和宽表和窄表的区别

    简单解释: 事实表就是交易表. 维度表就是基础表. 二者的区别: 维度表的冗余很大,主要是因为维度一般不大(相对于事实表来说的),而维度表的冗余可以使事实表节省很多空间. 事实表一般都很大,如果以普通 ...

最新文章

  1. 2021年春季学期-信号与系统-第十一次作业参考答案-第六小题
  2. pinpoint 安装部署
  3. VTK:Picking之CellPicking
  4. TYVJ P1062 合并傻子 Label:环状dp
  5. redis入门笔记(1)
  6. 采用oracle过程发邮件
  7. 使用Mockito对类成员变量进行Mock
  8. 程序设计与算法----递归之放苹果问题
  9. selenium autoit java_selenium借助AutoIt识别上传文件Java篇
  10. 004商城项目:ssm框架的整合之后的调试
  11. OpenJudge 2990:符号三角形 解析报告
  12. 内存延续分派治理方法
  13. Linux系统之下的基本gdb调试
  14. 计算机一级msoffice考试选择题题库,计算机一级《MS Office》考前选择题题库与答案...
  15. 如何把map的value转为list_Java 8 将Map转换为List
  16. 3dmax java,基于Java 3D与3DS MAX的虚拟校园设计
  17. Python这些操作,逆天且实用
  18. js 解二元一次方程组(消元法)
  19. PS 2019 Mac版 自学入门系列(十二)—— 应用滤镜
  20. 如何用C#制作 微信个人机器人

热门文章

  1. Centos Piranha安装过程
  2. mysql http_put_洪永佳 - SegmentFault 思否
  3. 笔记本电脑计计算机硬盘分区,笔记本电脑如何分区,小编教你笔记本电脑如何分区...
  4. 64位处理器_计算机基础:处理器
  5. 移动数据安全防护措施有哪些
  6. 手机离线地图——基于OruxMaps离线高清卫星地图制作发
  7. Java-通过IP地址获得域名和主机名
  8. Nginx代理高德API
  9. KubernetsPod分析
  10. 万物皆可DAO?一文带你全方位解读DAO类型