gpt4 book ai didi

google-cloud-storage - 写入云存储作为云数据流中的副作用

转载 作者:行者123 更新时间:2023-12-01 04:34:41 25 4
gpt4 key购买 nike

我有一个云数据流作业,它为应用引擎应用程序执行大量处理。在管道的一个阶段,我按特定键进行分组,对于与该键匹配的每条记录,我想将文件写入 Cloud Storage(使用该键作为文件名的一部分)。

我事先不知道会有多少这样的记录。所以这种使用模式不符合标准的云数据流数据接收器模式(输出阶段的分片决定了 # 输出文件,我无法控制每个分片的输出文件名)。

我正在考虑将直接写入 Cloud Storage 作为 ParDo 函数的副作用,但有以下疑问:

  1. 是否允许写入云存储作为副作用?
  2. 如果我是从数据流管道外部编写的,似乎我应该为 JSON 云存储 API 使用 Java 客户端。但这涉及通过 OAUTH 进行身份验证以执行任何工作:这似乎不适合已经作为数据流管道的一部分在 GCE 机器上运行的工作:这行得通吗?

非常感谢收到的任何建议。

最佳答案

回答你问题的第一部分:

虽然没有什么可以直接阻止您在我们的管道代码中执行副作用(例如写入 Cloud Storage),但通常这是一个非常糟糕的主意。您应该考虑这样一个事实,即您的代码不是在单台机器上以单线程方式运行的。您需要处理几个问题:

  1. 多个作者可以同时写作。你需要找到一种方法来避免作者之间的冲突。由于 Cloud Storage 不支持直接附加到对象,您可能需要使用 Composite objects技术。
  2. worker 可以被中止,例如如果基础架构出现暂时性故障或问题,这意味着您需要能够处理中断/不完整的写入问题。
  3. Worker 可以重新启动(在它们被中止之后)。这将导致副作用代码再次运行。因此,您需要能够以一种或另一种方式处理输出中的重复条目。

关于google-cloud-storage - 写入云存储作为云数据流中的副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30698364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com