【问题标题】:Can Google Cloud Dataprep monitor a GCS path for new files?Google Cloud Dataprep 可以监控新文件的 GCS 路径吗?
【发布时间】:2017-11-29 06:03:21
【问题描述】:

Google Cloud Dataprep 看起来很棒,我们已经使用它手动导入静态数据集,但是我想多次执行它,以便它可以使用上传到 GCS 路径的新文件。我可以看到您可以为 Dataprep 设置计划,但在导入设置中的任何地方我都看不到它将如何处理新文件。

这可能吗?似乎是一个明显的需求 - 希望我错过了一些明显的东西。

【问题讨论】:

    标签: google-cloud-platform gcp google-cloud-dataprep


    【解决方案1】:

    对此的进一步更新。由于我在 2018 年 1 月 23 日提出的问题 new release of Dataprep 包括独立于 Dataprep 重新运行数据流作业的能力。

    当您执行 Dataprep 作业时,它会生成一个 Dataflow 模板,您可以使用该模板在未来手动触发作业,并允许传入某些参数。

    能够在新文件上触发的步骤(请注意这是测试版,因此 Google 可能会更改确切的流程):

    1. 创建您的流程并运行您的相关流程/配方。手动迭代/重复,直到你有你想要的食谱。当您运行愉快时,再次运行该作业(应该是附加数据而不是替换的作业,因为您可能想要附加新内容)。取消选中“配置文件结果”(新功能)以减少开销可能是个好主意,因为这将是一项可重复的工作。
    2. 完成后,转到作业详细信息页面并单击导出结果按钮,您应该会在此处看到指向 Dataflow 模板的链接。复制文本。请注意,Dataflow 模板路径仅适用于在 2018 年 1 月 23 日发布之后执行的作业,因为它是一项新功能。
    3. 然后您可以通过转到 DataFlow 并选择 CREATE JOB FROM TEMPLATE、选择 Custom 模板并粘贴到您的模板路径中来了解如何触发数据流作业。在那里您将看到您可以提供的参数,例如您的 GCS 输入路径
    4. 编写一个由 GCS 写入触发的 Google Cloud 函数,并使用事件的详细信息按照上述步骤 (3) 使用您的文件路径执行模板。

    【讨论】:

    • 我要补充一点,2019 年 3 月 20 日的更新通过引入 $filepath 元数据参考进一步改进了这一点——这意味着如果您的文件或目录中包含有意义的日期或其他关键数据,您可以选择删除与特定条件不匹配的行,并仅导入数据的子集。 (见cloud.google.com/dataprep/docs/html/…
    【解决方案2】:

    您可以通过在数据集期间单击文件夹左侧的 + 图标将 GCS 路径添加为数据集(参见屏幕截图)。当您为使用此数据集的流程设置计划作业时,该目录中的所有文件(包括新文件)将在每次计划作业运行时被拾取。

    【讨论】:

    • 谢谢@Lars。您知道避免重复数据并将新文件中的数据附加到 BigQuery 表的一般方法是什么吗?移动/删除已处理的文件,或者您是否需要在每次运行时执行“去重转换”步骤(只会随着时间的推移变得更大)?
    • 将处理后的文件移动到不同的目录是一种方法。然后,您可以将作业设置为附加到 BQ 表。
    • 不幸的是,并非所有这些都可以在 Dataprep 本身内发生……有点限制。我想你可以在某个地方写一些其他的 cron 任务来使用gsutil 在设定的时间清除相关文件夹,但假设一切顺利。我想这些都只是测试产品的迹象。
    猜你喜欢
    • 2022-10-02
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多