Python 已将自己塑造成一种用于数据密集型工作的语言。我们到处都能看到它,只是因为它在 Python 中的原型制作速度非常快,而且人们因其简单的语法而喜欢它,这股浪潮也登陆了数据行业。数据工程师和数据科学家也开始在他们的数据密集型工作中使用它。在这个故事中,我们将使用 Python 构建一个非常简单且高度可扩展的数据流管道。
数据流是传输连续数据流的过程。
现在我们知道,在管道的一侧,我们将有一些或至少一个数据生产者持续生成数据,而在另一侧,我们将有一些或至少一个数据消费者持续使用这些数据。
首先是设计一个可扩展且灵活的架构来证明该声明的合理性。我们将使用Redis作为数据管道,为了这个故事,我们将使用一个非常简单的数据抓取微服务,使用Scrapy作为数据生产者和一个单独的微服务作为数据消费者。
我们首先需要构建一个带有激活虚拟环境的简单 Python 项目。对于这个具体的故事,我们将使用 Scrapy 的官方教程。我们需要运行下面给出的命令来创建一个空的 Scrapy 项目。
scrapy startproject producer
这将创建一个目录结构,如下图所示