如何自动 运行 Google Dataprep 作业?

How do I run Google Dataprep jobs automatically?

有没有办法触发 Google Dataprep 流过 API?

我每天需要运行喜欢30个不同的流量。源数据集每天都在变化,结果必须附加到 Google BigQuery table。有没有办法使这个过程自动化?源文件是 .xls 文件。我可以将它们上传到云存储并编写一个云函数,将其上传到 Dataprep 需要的任何地方。问题是似乎无法替换 Dataprep 流程中的源数据集。如果是这样,那么预定 运行s 和新作业 运行 API 有什么意义?

你问的是两个不同的问题。

如何通过 API 触发作业:https://cloud.google.com/dataprep/docs/html/API-JobGroups-Create-v4_145281446

如何有效地动态替换数据集:https://cloud.google.com/dataprep/docs/html/Overview-of-Parameterization_118228665

有几种方法可以做到这一点。您可能最终会将 parameterization and the scheduling 功能组合到 运行 每次都会选择新文件的计划作业。

根据您的用例,您可以做:

正在导入目录

如果您设置的目录只包含一个 excel 文件(见下图),您可以使用 将该目录用作输入数据集。 每次您 运行 作业时,该目录中的文件都会被处理。

您现在可以安排作业,创建输出目标,您应该已经准备就绪。

使用日期时间参数

假设您每天添加一个文件名中包含日期的新文件。例如在云存储中,它看起来像这样:

您可以使用 Dataprep 文件浏览器中的 Parameterize 按钮并设置以下参数:

这应该是 select 前一天的文件:

您可以让他们导入数据集并安排流程。如果您每天安排运行,它每次都会选择新文件。

使用变量

或者,您可以在数据集的文件路径中定义一个变量。

然后您可以使用 JobGroup API 覆盖该变量。

POST /v4/jobGroups

{
  "wrangledDataset": {
    "id": datasetId
  },
  "runParameters": {
    "overrides": {
      "data": [
        {
          "key": "folder-name",
          "value": "new folder name"
        }
      ]
    }
  }
}

请注意,要使其正常工作,您的文件需要具有相同的结构。有关详细信息,请参阅 https://cloud.google.com/dataprep/docs/html/Create-Dataset-with-Parameters_118228628#structuring-your-data

也应该可以使用通配符参数作为第一种方法的替代方法。