随着数据分析的不断积累与深入,如何高效处理和分析大规模数据,成为了分析师需要学习与掌握的技能。
那么,哪些算是大规模数据?比如,IMDb Movie 与 TV 主题数据集。
IMDb 数据集的意义不仅在于体量(超过 1GB),还因为它包含丰富的多维度影视信息,如影视标题、演员、类型和制作公司等,是一个复杂却极具价值的练习数据集。
因此,它连续两年成为 Tableau 社区的热点话题。不仅被指定为 Tableau Iron Viz 学生版竞赛数据源,还将登上 TC25 大会的 Iron Viz 决赛舞台,为全球数据分析爱好者提供展示能力的机会。
但随之而来的问题是,如何利用强大的工具进行高效处理、压缩冗余数据,同时确保数据分析的性能?
今天,就让我们通过 Tableau 社区成员 David Kelly 的实践分享,了解如何利用 Tableau 完成从数据模型设计到数据处理、清洗、优化的过程,并将 IMDb “Movies” 数据从 1.09GB 成功压缩到 219MB,从而为想要练手的数据粉提供更多解决思路。
初面挑战:从数据冗余到高效压缩
“Data+Movies” 是 2023 年 Tableau 与 IMDb 联合发起的一项可视化挑战,其数据复杂性在于多维度的数据结构和显著冗余的数据。每一部电影都涉及演员、类型、制作公司等多方面信息,并且数据的时间跨度很大。

在仔细探索上图所示的入门仪表板后,David 发现这些信息经常存储在同一表格中,导致数据内容重复和文件过大。归根结底,是数据库设计的问题使得数据处理效率低下。但同时,这也成为了优化的切入点。
为此,David 制定了一个计划,想要通过四个步骤来处理这份数据:
确定重复数据
构建规范的数据模型
从 Tableau 入门仪表板中提取数据
将其导入 Tableau Prep
梳理模型蓝图,重塑数据结构
首先,David 列出了每一个数据元素,并对其进行评估。然后,通过设计一个更标准的模型来应对挑战。他将数据归纳为以下几类:
核心主表:如 Title.csv,存储电影的基本信息(如标题、年份、简介等)。
独立维度表:如 Genre.csv(电影类型)、Person.csv(演员和导演)和 ProductionCompany.csv(制作公司)。
关联表:如 TitleGenreLookup.csv,用于记录电影与类型、演员之间的多对多关系。
这种设计避免了重复信息堆叠,提高了数据管理和查询的灵活性。优势在于每个表格专注于展示一个维度,降低了数据冗余,同时增强了数据模型的可扩展性。

在提取数据时,通过解压 “Data+Movies”入门仪表板(.twbx) ,David 找到了以 Hyper 格式存储的数据源。虽然文件大小有 2.5GB,比原始文件(1.09GB)看似更大,但它实际上已经被压缩了 2.5 倍,这为后续的数据清洗和分析打下了基础。
动手实践:Prep 全流程数据处理
经过 14 个数据准备流程的试错与迭代,David 最终在 Tableau Prep 中建立了一个完整的工作流程,从数据清洗、转换到最终输出,每一步都精确展示了工具的强大功能。

接下来,我们逐一结构这个过程。
01 数据清洗与聚合:剔除重复数据
聚合操作是数据清洗的关键步骤之一。
在初始模型设计中,David 确定了需要优化的数据维度,包括标题、人物、类型和制作公司。然后,通过 Tableau Prep 的聚合与清理步骤,处理了数据中的空值和重复项。
下图展示了对 ProductionCompany(制作公司)字段的清洗过程:
空值被替换为“Missing Information”;
使用公式对字段内容进行格式化处理;
最终,通过过滤和移除无用字段,完成了字段的标准化操作。

02 拆分与转置:处理多值字段
对于原始数据中的多值字段(如电影类型和演员信息),David 使用了“拆分”和“转置”操作,将宽表结构转化为更高效的长表格式。这种转换方式不仅简化了数据结构,还确保了每个维度数据的完整性和独立性,使每种类型都可用于后续可视化分析。

上图展示了 David 对字段的转置处理:
将嵌套的数组字段(如包含多个电影类型的字段)拆分为单独的列;
使用“转置”步骤将拆分后的字段转化为多行,每行仅记录一个类型。这种方法有效避免了筛选和查询时可能遗漏数据的风险;
清理冗余字段,确保数据的简洁性和一致性。
03 创建唯一标识:构建表之间的关系
在数据库中,主键是数据集内自然出现的唯一标识符(ID)。IMDb “Movies” 数据集有两个字段具备唯一的 ID:Person 和 Title。为了让拆分后的数据表能够有效关联,David 为每个表生成了唯一 ID,通过这些 ID 在表与表之间建立了准确的映射关系。

上图展示了 ProductionCompany ID 的生成过程。这些 ID 没有实际业务意义,仅用于表与表之间关系的管理和查询。
在 Tableau Prep 中创建计算,通过公式为每个制作公司生成唯一的数字 ID。其中,ROW_NUMBER() 可创建一个整数值,以便公司列表按字母顺序排列。
将字段重命名为 PK.ProductionCompanyID,明确其作为标识符的作用。
04 数据整合与模型优化
在数据处理的最后阶段,David 通过 Tableau Prep 的工作流整合功能,将清洗后的各个维度表格组合为完整的数据模型。这一过程包含:
根据之前生成的唯一标识,在核心主表与独立维度表之间建立多对多关联(如 Title.csv 与 Genre.csv 的关系);
验证表间关系的准确性,确保引用字段没有空值或重复项;
将最终数据模型输出到 Tableau Desktop,以便后续可视化和分析。

在整个整合过程中,Tableau Prep 提供了清晰的可视化流程,便于随时检查和调整操作逻辑,确保每一步都符合预期。
05 数据模型的最终形态
最后,David 将 Prep 清洗后的数据导出,并在 Desktop 中构建了一个以 Title.csv 为主表的关系模型。
主表记录主要信息:Title.csv 包含电影的基础信息(如标题、年份)。
维度表独立存储属性:每个维度表(如 Genre.csv)独立存储对应的属性信息。
关联表连接数据:如 TitleGenreLookup.csv 表,用于多对多高效关联不同维度。

如此,就可以在 Tableau 中直接调用数据,并通过数据源管理界面轻松调整关联关系。
通过这一系列操作,David 成功将数据集从 1.09GB 压缩到 219MB,并显著提高了数据的可用性和分析性能。总的来看,这个实践案例不仅展示了如何处理复杂的 IMDb 数据,还为其他业务场景提供了借鉴意义。
如果你正在寻找一种工具,以高效处理大规模数据集并实现清洗、建模和优化,那么 Tableau Prep 是一个不错的选择。点击此处,免费试用 Tableau 吧!
400 998 0226
Tableau
Tableau
Minitab

Alteryx











Neo4j











Talend


















IM
华为云
腾讯云
IT/安全
