在 Dataflow 中创建新的 BigQuery 数据集

Creating new BigQuery datasets in Dataflow

如何在 Dataflow 中创建新的 BigQuery 数据集来保存我的数据?

我希望使用数据流程序中的版本标签对数据集名称进行版本控制。

我正在使用 python API 并尝试使用 BigQuery 客户端在 beam.io.BigQuerySink 之外执行此操作,但是当 运行 时出现以下错误gcp 上的流程:ImportError: No module named cloud 指的是 bigquery 导入 from google.cloud import bigquery.

执行此操作的最佳方法是什么?

您在 接收器之外使用 BigQuery 客户端是正确的。它应该看起来像这样:

[..]
from google.cloud import bigquery
client = bigquery.Client(project='PROJECT_ID')
dataset = client.dataset(DATASET_NAME)
dataset.create()
[..] 

您必须记住,尽管当您在本地 运行 您的管道时这可能有效,但是当您在 GCP 上远程 运行 它时在工作池中启动的 VM 将没有与本地机器相同的依赖关系。

因此,您需要按照概述的步骤远程安装依赖项 here:

  1. 找出您的计算机上安装了哪些软件包。 运行 以下命令:pip freeze > requirements.txt。这将创建一个 requirements.txt 文件,其中列出已安装在您计算机上的所有软件包,无论它们来自何处(即从何处安装)。
  2. 在 requirements.txt 文件中,仅保留从 PyPI 安装并在工作流源中使用的包。删除其余与您的代码无关的包。
  3. 运行 您的管道具有以下命令行选项:--requirements_file requirements.txt。这会将 requirements.txt 文件暂存到您定义的暂存位置。