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