Google Dataprep 副本从一个项目流向另一个项目

Posted

技术标签:

【中文标题】Google Dataprep 副本从一个项目流向另一个项目【英文标题】:Google Dataprep copy flows from one project to another 【发布时间】:2019-08-01 12:19:43 【问题描述】:

我有两个 Google 项目:devprod。我还从位于这些项目中的不同存储桶中导入数据:dev-bucketprod-bucket

dev 环境中进行并测试更改后,如何将更改顺利应用(部署/复制)到prod

我现在要做的是从dev 导出流,然后将其重新导入prod。但是,每次我需要在 `prod 流程中手动执行以下操作:

更改在流中用作输入的数据集 为正确的 BigQuery 数据集(dev-dataset-bigqueryprod-dataset-bigquery)替换手动和预定目标

如何才能更顺畅?

【问题讨论】:

不确定这是否真的可行,因为 Dataprep 没有公开的 API,这意味着您可以通过 UI 执行的操作无法通过脚本完成。另外,恕我直言,除非我测试过它在开发中运行良好,否则我不想将我的开发同步到产品。 是的,当然,这是我的观点。在开发中对其进行了测试后,我如何才能简单地将更改部署到产品中?也许同步不是正确的词。 也许大三角帆可以帮助你:spinnaker.io。在我们公司,我们还使用 CICD 来保持 QA 环境(而非开发环境)与产品同步。 链接:***.com/q/50620872/320399 【参考方案1】:

如果您想在 Google Cloud Storage (GCS) 存储桶 dev-bucketprod-bucket 之间复制数据,Google 提供了具有此功能的存储传输服务。 https://cloud.google.com/storage-transfer/docs/create-manage-transfer-console 您可以手动触发将数据从一个存储桶复制到另一个存储桶,也可以让它按计划运行。

对于第二部分,听起来dev-dataset-bigqueryprod-dataset-bigquery 都是从GCS 中的文件加载的?如果是这种情况,BigQuery Transfer Service 可能会派上用场。 https://cloud.google.com/bigquery/docs/cloud-storage-transfer您可以手动触发传输作业,也可以让它按计划运行。

正如其他人在 cmets 中所说,如果您需要在启动从 dev 到 prod 的传输之前验证数据,则 Spinnaker 等 CI 系统可能会有所帮助。如果验证可以自动化,Apache Airflow 等系统(如果您需要托管版本,则在 Cloud Composer 上运行)提供比传输服务更大的灵活性。

【讨论】:

这与在不同项目之间复制文件没有太大关系。正如您在某些链接(不仅仅是传输)中指出的那样,您可以使用 gcloud utils 。在这里,我们谈论的是 Dataprep 中的流。他们打算如何管理不同的项目(dev/staging/prod)?

以上是关于Google Dataprep 副本从一个项目流向另一个项目的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 表的架构与配方不匹配

导出的数据流模板参数未知

如何从Google表格电子表格中删除绑定脚本?

使用 Dataprep 仅写入日期分区表中的日期分区

将Big Query中的数据自动导入Google表格?

将数据集参数添加到列中,以便稍后通过 DataPrep 在 BigQuery 中使用它们