当前位置: 首页 > 知识库问答 >
问题:

在用python编码的Apache-Beam管道中提供BigQuery凭据

茅和玉
2023-03-14

我正在尝试使用云数据流运行器从我的beam管道中的bigquery读取数据。我想提供访问项目的凭据。

我见过Java中的例子,但没有Python中的例子。

options = PipelineOptions(flags=argv)
google_cloud_options = options.view_as(GoogleCloudOptions)
google_cloud_options.project = 'project_name'
google_cloud_options.job_name = 'job_name'
google_cloud_options.staging_location = 'gs://bucket'
google_cloud_options.temp_location = 'gs://bucket'
options.view_as(StandardOptions).runner = 'DataflowRunner'

with beam.Pipeline(options=options) as pipeline:
    query = open('query.sql', 'r')
    bq_source = beam.io.BigQuerySource(query=query.read(), use_standard_sql=True)
    main_table = \
        pipeline \
        | 'ReadAccountViewAll' >> beam.io.Read(bq_source) \

有什么想法吗?

共有1个答案

莘翰采
2023-03-14

这里提到的推荐方法是--service_account_email。不建议下载密钥并将其存储在本地或GCE上。

 类似资料:
  • 我们正在通过气流使用阿帕奇光束。默认的GCS帐户是用环境变量google_application_credentials设置的。我们不想改变环境变量,因为它可能会影响当时正在运行的其他进程。我找不到以编程方式更改谷歌云数据流服务帐户的方法。我们以以下方式创建管道:p=beam.pipeline(argv=self.conf)

  • 这个问题看起来像是这个问题的重复。 我得到以下错误消息(在python sdk服务中): 我不知道日志记录或工件endpoint(等等)是什么通过检查源代码,似乎endpoint已经被硬编码到localhost中。

  • 我正在尝试建立一个Apache Beam管道,该管道使用Apache Beam读取Kafka并写入BigQuery。我使用这里的逻辑筛选出一些坐标:https://www.talend.com/blog/2018/08/07/development-data-processing-job-using-apache-beam-streaming-pipeline/TLDR:主题中的消息的格式为id,

  • 我有一个管道可以解析AVRO文件中的记录。 我需要将传入的记录分成500个项目的块,以便调用一个同时接受多个输入的API。 有没有办法用PythonSDK做到这一点?