Apache Beam +大查询表读取

时间:2019-08-17 13:55:38

标签: python google-cloud-platform google-bigquery apache-beam python-bigquery

我在项目的大型查询中有数据集: 项目:project-x 表:table01 数据集:dataset01

我想从Apache Beam连接到它,并读取一个column-column01的值,例如...

这就是我所拥有的:

import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions
import os

os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="Z:\DEV\CREDENTIALS\cred.json"

QUERY="""
    SELECT column01 from project-x:table01.dataset01
    """
options = {'project': 'project-x',
'runner': 'DirectRunner',
'region': 'EU'
}
pipeline_options = beam.pipeline.PipelineOptions(flags=[], **options)
pipeline=beam.Pipeline(options=pipeline_options)   
BQ_source = beam.io.BigQuerySource(query = QUERY)
BQ_data = pipeline | beam.io.Read(BQ_source)

所以执行后我什么也没得到...。我认为这是一些基本问题,但我才刚刚开始,很想看到一些结果。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

有1个错误,我有1个建议 错误:起始格式为project:dataset。表为旧版SQL。

建议:首选标准SQL,因为它能够使用所有新的bigquery功能! From Format是`project.dataset.table` 需要反引号。然后在Beam中设置legacy = off选项。

相关问题