【问题标题】:Change file metadata using Apache Beam on a cloud database?在云数据库上使用 Apache Beam 更改文件元数据?
【发布时间】:2018-10-24 21:37:53
【问题描述】:

您可以使用 Apache Beam 更改云数据库上的文件元数据吗?据我了解,Beam 用于为 Google Dataflow 设置数据流管道。但是,如果您在 CSV 文件中进行了必要的更改,而无需设置和运行全新的管道,是否可以使用 Beam 来更改元数据?如果可以,你是怎么做的?

【问题讨论】:

    标签: java python google-cloud-platform apache-beam database-metadata


    【解决方案1】:

    您可以编写 Cloud Dataflow 代码来处理此问题,但我不会。一个简单的 GCE 实例会更容易开发和运行作业。更好的选择可能是 UDF(见下文)。

    对于何时适合使用 Cloud Dataflow,有一些准则:

    1. 您的数据不是表格的,您不能使用 SQL 进行分析。
    2. 大部分作业是并行的 - 换句话说,您可以在不同的机器上处理不同的数据子集。
    3. 您的逻辑涉及自定义函数、迭代等...
    4. 工作的分布因数据子集而异。

    由于您的任务涉及修改数据库,我假设一个 SQL 数据库,编写 UDF 来处理和修改数据库会更容易和更快。

    【讨论】:

    • 谢谢约翰。我会进一步调查。
    【解决方案2】:

    首先,Apache Beam 目前还不支持架构更新。有一段时间有feature request但没有消息

    另一种选择是更改使用 Apache Beam 管道编写的当前数据流,以将您的表迁移到另一个(更正架构)表。不幸的是,如果您有大量数据,并且如果您需要经常更改表模式(重命名列、重命名表名、更改数据类型等),这不是可扩展的。

    我的建议是发出 SQL 查询来更新您的表架构。您可以使用执行ALTER TABLE 语句的guide 编写一个bash 脚本。

    【讨论】:

      猜你喜欢
      • 2021-06-10
      • 2021-05-16
      • 1970-01-01
      • 2018-06-07
      • 1970-01-01
      • 2018-12-27
      • 2022-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多