在Dataflow中创建新的BigQuery数据集

时间:2017-03-13 14:56:26

标签: python google-bigquery google-cloud-dataflow

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

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

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

最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

您使用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文件暂存到您定义的暂存位置。