Google cloud platform PubSub到BigQuery-Python中的数据流/梁模板?

Google cloud platform PubSub到BigQuery-Python中的数据流/梁模板?,google-cloud-platform,google-bigquery,google-cloud-dataflow,apache-beam,google-cloud-pubsub,Google Cloud Platform,Google Bigquery,Google Cloud Dataflow,Apache Beam,Google Cloud Pubsub,是否有任何Python模板/脚本(现有或路线图)供Dataflow/Beam从PubSub读取并写入BigQuery? 根据报告,只有一个 谢谢 你可以在这里找到一个例子: apachebeam流媒体管道示例 它读JSON编码的 来自发布/订阅的消息,转换消息数据,并写入 将结果发送到BigQuery 下面是另一个示例,演示如何在Bigquery中将来自pubsub的无效消息处理到另一个表中: 类解析消息(beam.DoFn): 输出错误标记='ERROR' def流程(自身、线路): """

是否有任何Python模板/脚本(现有或路线图)供Dataflow/Beam从PubSub读取并写入BigQuery? 根据报告,只有一个


谢谢

你可以在这里找到一个例子:

apachebeam流媒体管道示例

它读JSON编码的 来自发布/订阅的消息,转换消息数据,并写入 将结果发送到BigQuery

下面是另一个示例,演示如何在Bigquery中将来自pubsub的无效消息处理到另一个表中:

类解析消息(beam.DoFn): 输出错误标记='ERROR' def流程(自身、线路): """ 从json消息中提取字段 :参数行:pubsub消息 :返回:有两个输出: -主:解析数据 -错误:错误消息 """ 尝试: parsed_row=35;将json消息解析到相应的bgiquery表模式 产量数据行 除异常作为错误外: error_row=35;在此处构建错误模式 产生pvalue.TaggedOutput(self.OUTPUT\u ERROR\u标记,ERROR\u行) def运行(选项、输入订阅、输出表、输出错误表): """ 建造和运行管道 :参数选项:管道选项 :param input_subscription:input PubSub subscription :param output_table:output BigQuery表的id :param output_error_table:错误消息的输出BigQuery表的id """ 使用beam.Pipeline(选项=选项)作为管道: #从PubSub阅读 行,错误\u行=\ (管道|“从PubSub读取”>>beam.io.ReadFromPubSub(订阅=输入订阅) #将来自PubSub的消息适配到BQ表 |'解析JSON消息'>>beam.ParDo(ParseMessage())。带有_输出(ParseMessage.OUTPUT_ERROR_标记, 主(行) ) _=(行|“写入BigQuery” >>beam.io.WriteToBigQuery(输出表, create\u disposition=beam.io.BigQueryDisposition.create\u NEVER, write_disposition=beam.io.BigQueryDisposition.write_APPEND, 插入\u retry\u strategy=RetryStrategy.retry\u ON\u TRANSIENT\u错误 ) ) _=(错误_行|“将错误写入BigQuery” >>beam.io.WriteToBigQuery(输出错误表, create\u disposition=beam.io.BigQueryDisposition.create\u NEVER, write_disposition=beam.io.BigQueryDisposition.write_APPEND, 插入\u retry\u strategy=RetryStrategy.retry\u ON\u TRANSIENT\u错误 ) ) 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': parser=argparse.ArgumentParser() parser.add_参数( '--input_subscription',required=True, help='Input PubSub表单订阅“/subscriptions/”) parser.add_参数( '--output_table',required=True, help='Output BigQuery表,用于指定为:PROJECT:DATASET.table或DATASET.table'的结果。') parser.add_参数( '--output_error_table',required=True, help='Output BigQuery表以查找指定为:PROJECT:DATASET.table或DATASET.table'的错误。') 已知参数,管道参数=解析器。解析已知参数() 管道选项=管道选项(管道参数) 管道选项。查看为(设置选项)。保存主会话=真 运行(管道参数选项、已知参数输入参数订阅、已知参数输出参数表、已知参数输出参数错误参数表)
非常感谢!因为你添加了细节。。我想问一下,是否有一种内置的方式允许模式演变(例如,与insert\u retry\u策略相结合)?迄今为止发现的例子似乎相当手工,但可能也过时了。很高兴就此提出一个新问题。请告诉我。谢谢@py-r对此我不确定,但根据我所看到的,您需要使用自定义逻辑(类似于每种模式的差异表目的地?)。如果没有关于这个的内容,那么我想你可以把它作为另一个问题来问,也许有人已经实现了它。