Chevron Left

查看所有社区故事

解决脏数据难题的三种方法

2025年1月23日

作者

Kyle Napierkowski

Kaleidoscope Data

photo of Kyle Napierkowski

Kyle是 Kaleidoscope Data 的管理合伙人,这是一家数据咨询公司,也是 Metabase 专家,帮助拥有 50-150 名员工的初创公司和中小企业将其业务提升到新的规模。 了解更多关于他们的 AI 产品规范化工具如何帮助提高您的数据质量。

在一个数据驱动的世界里,干净的数据对于做出明智的决策至关重要。然而,处理脏数据是一个常见的挑战——它可能导致错误的分析和糟糕的决策。在本文中,我们将介绍三种清理脏数据的方法,将您的脏数据集转化为您可以信赖的数据。

如何清理数据

让我们探索将脏数据处理成干净数据的不同方法,从使用 Metabase 中的工具到设置完整的数据管道,甚至使用 AI。

使用 Metabase 中的模型清理数据

在 Metabase 中清理数据的简单方法是使用模型。这些是 Metabase 中的关键元素,可让您根据特定条件定义和清理数据。

模型可以在 SQL 中构建,也可以使用查询构建器构建,允许您直接在 Metabase 中清理和结构化数据。它们非常适用于中小型数据集,尤其是在您需要快速解决方案的情况下。

为什么要在Metabase中使用模型?

在 Metabase 中实施数据清理程序的最佳方法之一是开发一个模型,该模型根据特定条件表示数据。模型是 Metabase 中的基本构建块。它们可以比作派生表或专门的已保存问题,作为新分析的起点。模型可以基于 SQL 或查询构建器问题构建,允许包含自定义和计算列。

  • 易于使用:无需高级技术技能即可直接在平台中清理数据。
  • 赋能您的团队:业务团队可以清理和调整数据,而无需总是依赖数据团队。

缺点

  • 不适用于大型数据集:模型可能难以处理更复杂或大型的数据集。

示例

让我们考虑一个在线商店销售交易的示例数据集。原始数据可能如下所示:

A sample of uncleaned dataset

在此数据集中,存在需要解决的几个问题。为了解决这些问题,您可以在 Metabase 中实现模式或函数

  1. 产品名称不一致:使用正则表达式提取通过删除品牌名称并仅保留产品型号来标准化产品名称。示例模式:REGEXEXTRACT([Product], '^(?:Apple|Nike|Dell|Adidas) (.*)$')

  2. 缺少付款方式信息:实现一个函数,检查缺少的付款方式值并用默认值或占位符替换它们。示例函数COALESCE([PaymentMethod], '未提供')

清理后的数据集应如下所示:

The cleaned dataset

在转换管道中清理数据

如果您正在处理大型或复杂的数据集,数据转换管道可以提供帮助。此过程允许您提前清理数据,因此无需额外工作即可进行分析。

通过编写 SQL 查询来自动化此过程,您可以确保数据在进入分析平台之前是干净的。

想了解更多?:ETL、ELT和反向ETL

为什么使用数据转换管道?

  • 可扩展:适用于大型、复杂的数据集。
  • 节省时间:自动化清理过程,减少手动工作。

解决根本问题:它从源头清理数据,因此您不仅是应用快速修复。

缺点

需要技术技能:构建和维护管道可能需要更多的专业知识和资源。

转换管道示例

这是一个客户订单的示例数据集。

A sample of uncleaned dataset

在此示例中,有几个问题需要清理

  1. CustomerName字段中的格式不一致(例如,下划线而不是空格)

  2. CustomerName字段中缺少数据(NULL值)

  3. 第5行Email字段中的分隔符不正确(逗号而不是句点)

  4. 第5行PurchaseDate字段中的日期格式不一致

您可以使用SQL清理数据。下面是一个如何操作的示例

-- Create a temporary table with cleaned data
CREATE TEMPORARY TABLE cleaned_orders AS
SELECT
  OrderID,
  -- Replace underscores with spaces and handle NULL values in the CustomerName field
  COALESCE(NULLIF(REPLACE(CustomerName, '_', ' '), ''), 'Unknown') AS CleanedCustomerName,
  -- Replace comma with period in the Email field
  REPLACE(Email, ',', '.') AS CleanedEmail,
  ProductID,
  -- Standardize the date format in the PurchaseDate field
  STR_TO_DATE(PurchaseDate, '%Y-%m-%d') AS CleanedPurchaseDate
FROM
  raw_orders;

清理后的数据集将如下所示:

The cleaned dataset

使用AI清理数据

人工智能正在改变我们处理数据清理的方式。先进的算法和机器学习技术,特别是OpenAI的ChatGPT模型等大型语言模型,可以自动化数据清理过程。

为什么要使用AI进行数据清理?

  • 自动化:AI自动化清理过程,减少人为错误。
  • 处理大型数据集:随着数据的增长快速扩展。
  • 随时间改进:AI在处理更多信息时,清理数据的能力会变得更好。

缺点

  • 初始投资:设置AI驱动的解决方案可能需要更多的前期工作。
  • 仍需人工监督:尽管AI可以进行大量清理,但通常需要人工审查结果。

AI使用示例

人工智能可以执行的一个更复杂的数据清理示例是识别和解决跨多个数据源的服装产品属性不一致问题。这通常涉及理解颜色、尺寸和款式等不同属性之间的上下文、语义和关系。

示例数据集

A sample of uncleaned dataset

在这个示例数据集中,来自三个不同数据源的产品属性不一致,需要为在线服装店进行标准化。由于术语、顺序和属性结构的不同,传统清理可能难以有效识别和解决这些不一致问题。

然而,AI 驱动的解决方案可以分析不同属性之间的上下文、语义和关系,并将它们映射到一组标准化的属性。例如,AI 可以识别“女士连衣裙,蓝色,M 码”、“女款,连衣裙,M,蓝色”和“连衣裙,中码,女款,颜色:蓝色”都指的是相同的产品属性,并将它们映射到单一的标准化格式,例如“性别:女,类别:连衣裙,颜色:蓝色,尺寸:中码”。

清理后的数据集将如下所示:

The cleaned dataset

现在我们可以将产品属性拆分成单独的列,以便更轻松地进行分析。

The cleaned dataset

您应该采用哪种方法?

最适合您业务的数据清理方法取决于各种因素,例如数据的类型和质量、数据集的大小和复杂性、可用资源以及特定的业务目标。在选择一种方法集成到您的技术堆栈之前,测试和评估不同的清理方法至关重要。通常,公司会同时使用上述多种方法。检查数据源是否与您的首选方法兼容,并确保您拥有有效执行所选解决方案所需的资源。

作者

Kyle Napierkowski

Kaleidoscope Data

photo of Kyle Napierkowski

Kyle是 Kaleidoscope Data 的管理合伙人,这是一家数据咨询公司,也是 Metabase 专家,帮助拥有 50-150 名员工的初创公司和中小企业将其业务提升到新的规模。 了解更多关于他们的 AI 产品规范化工具如何帮助提高您的数据质量。

您可能也喜欢

预测下一次点击

Ukrit Wattanavaekin

Metabase

利用数据提供可信的指标

Frédéric Vion

Subclic

您可能也喜欢

预测下一次点击

Ukrit Wattanavaekin

Metabase

利用数据提供可信的指标

Frédéric Vion

Subclic

© . This site is unofficial and not affiliated with Metabase, Inc.