Module 01 · What is Data Engineering?什么是数据工程?
A Day in the Life of a Data Engineer数据工程实战案例:社交媒体情绪分析
嗨,我是 Sarah Flinch。我是一家生产护发产品的跨国公司的数据工程师。我们的产品以科学研究和严格测试为后盾,并以在过去几十年中彻底改变了护发领域而闻名。
业务需求与数据目标
作为一个公司,我们一直投资于能够帮助我们与客户和目标人群保持联系的技术和实践。
- 当前任务: 我们公司正处于向市场推出一款新洗发水的最后阶段。
- 背景认知: 在当今时代,产品在社交媒体上被谈论的方式直接影响着销量和品牌认知。
- 业务团队目标: 因此,业务团队在产品尚未推出之前,就着手思考如何从产品推出的第一天起就了解客户情绪是完全合理的。
- 监控范围: 他们希望密切关注所有社交媒体,并了解 Twitter、Facebook、Instagram 等在线社区、电子商务平台和博主对他们产品(包括正面反馈、负面评论、建议,甚至与他们目前最爱产品的比较)的评价。
从原型到现实:数据工程师的介入
- 数据科学家的原型: 我们的数据科学家团队利用情绪分析算法和虚拟数据创建了一个仪表板原型以服务于此目标。
- 该仪表板以图表形式展示了不同客户情绪的得分,按社交媒体来源和消费者群体进行绘制。
- 业务采纳: 这个想法立刻获得成功,并得到了业务团队的实施批准。
- 数据工程的使命: 这就是我们数据工程师团队介入的地方——将这个原型变为现实。
Sarah 的数据工程任务流程
1. 采集数据:从分散源头到临时存储
我的第一个任务是将业务团队确定的所有社交媒体网站和在线来源的数据拉取到组织的环境中。
- 社交媒体: 我首先使用 API 将带有我们产品标签的 Tweets 和帖子拉取到临时存储中。
- 电商与博客: 接着,我转向电子商务门户和产品评论博客,收集我们产品特定的数据,并将其也移动到临时存储中——这项活动被称为网络爬虫 (Web Scraping)。
- 数据混杂: Tweets、帖子、评论、文章,甚至表情包(memes)——格式和结构相当混杂。
2. 数据检查与准备
一旦我拥有了所有需要的数据,我对其进行了检查,以评估在数据加载到数据库之前需要执行的转换 (Transformations)。
- 处理方案: 我们决定创建一个 Python 程序来处理数据并将其加载到数据库中。
- 清洗与转换: 我清理了数据,并将其转换为将存储在数据库中的格式。
- (正是这个数据库为仪表板提供数据,以显示报告。)
3. 初步成果展示
现在是向数据科学家展示成果的时候了。结果完全符合他们的期望——这是一项做得很好的工作!
从手动到自动化:构建数据管道

然而,工作并未就此结束。
- 低效的解决方案: 每次业务用户需要查看最新统计数据时,他们都必须向我们提出请求来拉取更新后的数据。这将是一种低效的解决方案。
- 理想状态: 理想情况下,他们应该能够实时了解客户情绪和品牌认知。
- 下一步行动: 因此,我们的下一步行动是构建一个数据管道,以持续不断地提取 (Extract)、转换 (Transform) 和加载 (Load) 数据。
- 最终效果: 一旦这个流程就绪,业务团队每次登录仪表板时都将能够看到实时的预测。