Bigquery中的WRITE_TRUNCATE。

问题描述 投票:0回答:1

我想在Bigquery中使用以下方法截断表的内容 write_truncate但它没有发生,相反,它的工作方式就像 write_append. 它在追加数据,但没有截断表。

谁能帮忙解决一下这个问题。

我的代码

        with beam.Pipeline(options=Pipeline options()) as p:
           read=(p|"Read BQ">>beam.io.Read(beam.io.BigQuerySource(
    query='select empid from'\'`PRoject_Id.data_set.emp_details`',
use_standard_sql=True))|"process">>beam.Map(lambda ele:{'EMPID':ele['EMPID']})|
        "Write">>beam.io.WriteToBigQuery(
    'PROJECT_ID:data_set.emp_out',
    schema='EMPID:STRING',
    write_disposition=beam.io.BigQueryDisposition.WRITE_TRUNCATE,
create_dispositiom=beam.io.BigQueryDisposition.CREATE_IF_NEDED))
        if __name__="__main__":
          run().wait_until_finish()
google-bigquery google-cloud-dataflow apache-beam
1个回答
0
投票

在流式管道的情况下,WRITE_TRUNCATE是不支持的,如文档中所述 此处.

For streaming pipelines WriteTruncate can not be used.

你可以将你的管道转换为批处理,并使用WRITE_TRUNCATE选项。要将写转换为批处理,你可以设置 method 参数为 FILE_LOADS. 默认情况下,该参数设置为 STREAMING_INSERTS.

© www.soinside.com 2019 - 2024. All rights reserved.