如何自动运行 Google Dataprep 作业?

stk*_*flw 3 google-cloud-platform google-cloud-dataprep

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

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

Hug*_*ues 6

有几种方法可以做到这一点。您可能最终会结合参数化调度功能来运行每次都会选择新文件的调度作业。

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

导入目录

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

导入目录

您现在可以安排作业,创建输出目标,您应该一切都准备好了。

使用日期时间参数

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

地面站用户界面

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

日期时间参数

这应该选择前一天的文件:

参数化预览

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

使用变量

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

文件夹名称变量

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

POST /v4/jobGroups

{
  "wrangledDataset": {
    "id": datasetId
  },
  "runParameters": {
    "overrides": {
      "data": [
        {
          "key": "folder-name",
          "value": "new folder name"
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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