Coursera 笔记

Module 04 · Data literacy for Data Science (Optional)

Viewpoints: Working with Varied Data Sources and Types处理多样化数据源与格式的挑战

Coursera ↗

数据专业人员必须具备灵活性和持续学习的能力,才能应对不断变化的数据环境。

1. 关系数据库与挑战 (SQL)

关系数据库(如 SQL Server, Oracle, DB2)因其灵活性和经受住时间考验的能力而仍然被广泛使用。专业人员倾向于使用 SQL 的强大功能进行数据迁移、结构化和安全管理。

  • 挑战:
    • 跨平台/版本迁移: 从一个供应商的数据库迁移到另一个(例如 DB2 到 SQL Server)可能很困难,因为它们对导入和导出数据的要求不同。
    • 版本控制: 所需功能可能只存在于新版本中,或在旧版本中的工作方式不同,这要求专业人员保持对新版本的开放性。
    • 读写密集型应用: 关系数据库难以应对物联网(IoT)或社交媒体等写入密集型应用。其底层 B 树数据结构由于随机读写的性质,在处理海量写入时会变慢。

2. NoSQL 的崛起:应对非结构化数据

随着非结构化数据(如日志、文档、XML、JSON)的出现,关系数据库的“万能药”声誉受到了挑战。

  • Google BigTable 的影响: Google 在 2006 年发布的 Google BigTable 白皮书引发了一场架构革命,催生了 Cassandra 和 HBase 等流行的数据库,它们旨在解决关系数据库的不足。
  • 适用场景: NoSQL 数据库成为解决重写入(heavy write intensive)应用(如传感器数据、社交媒体数据)的首选方案。

3. 数据格式的演变与挑战

数据工程师需要处理各种标准格式(如 CSV, JSON, XML)和专有格式,以及静止数据(data at rest)和流式数据(streaming data)。

  • Log Data (日志数据): 极具挑战性,因为它本质上是非结构化的,可能需要编写自定义工具来解析数据。
  • XML (可扩展标记语言): 曾因 SOAP 协议而流行,但因其需要起始和结束标签,导致内存占用多且资源密集,逐渐被取代。
  • JSON (JavaScript Object Notation): 通过使用键值对结构,放弃了结束标签,节省了资源,现已成为 RESTful API 的标准。
  • 新型格式: 如 Apache Avro,因其高效的数据存储方式而日益普及。

4. 真实数据清洗的挑战

数据本身的性质常常是最大的挑战。

  • 多字符问题: 在将数据从一个数据库导出到另一个数据库时,通常需要使用分隔符(如逗号)来分隔字段。
  • 分隔符冲突: 当数据本身包含分隔符(例如,数据中包含逗号)时,这会使分离字段变得困难。
  • 极端情况: 在一个特定案例中,由于各种特殊字符都被包含在数据中,必须对不同的表使用不同的分隔符,这凸显了数据清洗工作的复杂性。

应对策略

数据工程师必须:

  • 对新想法和新技术(如 NoSQL 解决方案)保持开放态度。
  • 不断学习和掌握新技能,以应对不同的数据集、数据格式和数据源的要求。
  • 专注于寻找能够满足性能要求且持续稳定运行的解决方案。