Google bigquery 从ValueProvider读取的数据流BigQuery:';StaticValueProvider';对象没有属性';projectd';

Google bigquery 从ValueProvider读取的数据流BigQuery:';StaticValueProvider';对象没有属性';projectd';,google-bigquery,google-cloud-dataflow,apache-beam,Google Bigquery,Google Cloud Dataflow,Apache Beam,我正在使用ApacheBeam的Python SDK。我试图通过ValueProvider从BigQuery中读取数据(因为声明允许这样做) 期权声明如下: class CPipelineOptions(PipelineOptions): @classmethod def _add_argparse_args(cls, parser): parser.add_value_provider_argument( "--bq_sour

我正在使用ApacheBeam的Python SDK。我试图通过ValueProvider从BigQuery中读取数据(因为声明允许这样做)

期权声明如下:

class CPipelineOptions(PipelineOptions):

    @classmethod
    def _add_argparse_args(cls, parser):
        parser.add_value_provider_argument(
            "--bq_source_table",
            help="The BigQuery source table name..\n"
                 '"<project>:<dataset>.<table>".'
        )
类CPipelineOptions(管道选项):
@类方法
def_add_argparse_args(cls,解析器):
parser.add_value_provider_参数(
“--bq_源_表”,
help=“BigQuery源表名称..\n”
'":.".'
)
执行管道会产生以下错误:

AttributeError:“StaticValueProvider”对象没有属性“projectId”[运行“从BigQuery读取/Read/SDFBoundedSourceReader/ParDo(SDFBoundedSourceDoFn)/SplitAndSizeRestriction”时]

对如何解决这个问题有什么建议吗?我不想使用Flex模板



编辑:值得一提的是,
query
param确实支持
ValueProvider
。这可能是一个bug吗?

我不完全理解这些限制,所以我在下面发布了一些有用的文档链接

谷歌云可能会有所帮助


本文介绍了在Python中使用ValueProvider对象的建议解决方法。

我唯一的建议是使用Flex模板。

我知道ValueProvider是如何工作的。BigQuery源转换似乎不支持它们,而文档表明它支持。我目前通过向BigQuery连接器提供源查询值提供程序来解决这个问题。仍然奇怪的是,连接器不接受源表名的ValueProvider。
class CPipelineOptions(PipelineOptions):

    @classmethod
    def _add_argparse_args(cls, parser):
        parser.add_value_provider_argument(
            "--bq_source_table",
            help="The BigQuery source table name..\n"
                 '"<project>:<dataset>.<table>".'
        )