文章预览
点击下方 卡片 ,关注“ 小白玩转Python ”公众号 介绍 作为数据工程师,我们经常面临这样的情况:我们必须从运营数据库中获取一个特别大的数据集,对其进行一些转换,然后将其写回分析数据库或云对象存储(例如S3桶)。 如果数据集太大无法装入内存,但同时使用分布式计算不值得或不可行,该怎么办呢? 在这种情况下,我们需要找到一种方法,在不影响数据团队其他同事(例如通过使用Airflow实例中可用内存的大部分)的情况下完成工作。 这就是Python生成器可能会派上用场的时候,通过避免内存峰值来高效地从数据库获取数据。 事实上,在本教程中,我们将通过旋转运行三个服务(PostgresDB、Jupyter Notebook和MinIO)的Docker容器来模拟一个真实的端到端数据工作流程,探讨在数据工程师中使用生成器的两个实际用例。 Python中使用生成器的优点
………………………………