与标题相同,Dataflow可以使用临时创建的VM实例而不使用临时创建的VM实例吗?
答案 0 :(得分:0)
向OP询问请求的原因后,将其作为答复,然后提供以下可能的答案:
Dataflow的强大功能是在处理数据管道时实现高度的并行性。原始请求的背景是,“某事”在以本地运行程序运行时有效,但在使用Dataflow作为运行程序时却无法正常运行。然后,这似乎导致OP认为“我们将只使用本地运行器运行Dataflow”。我认为这不是一个好主意。一个使用localrunner进行开发和单元测试。本地跑步者不提供任何形式的水平缩放……实际上只能在一台机器上运行。
当一个人在分布式Dataflow上运行管道作业时,它会根据需要创建任意数量的工作程序,以在多个计算机之间合理地分配作业。如果作业随后希望生成结果作为文件输出...,那么问题将变为“该数据将写入哪里?”。答案不能是相对于运行Dataflow作业的本地文件,因为根据定义,该作业是在多台计算机上运行的,并且没有将一台计算机作为“输出”的概念。要解决此问题,应将数据输出到Google云端存储,这是所有计算机可见的公共存储区域。 OP提出的相关问题描述了将数据写入GCS而不是本地文件(在本地运行程序中发现)的潜在问题,但我相信 是要解决的问题(即,如何编写)正确地集中化GCS存储),而不是尝试使用单个VM。数据流对数据流处理引擎(工作人员)的性质提供零控制。它们在逻辑上是短暂的,并且“在那里”可以处理Dataflow工作。