我有一个从PubSub主题读取事件数据的数据流管道。当收到消息时,我执行一个转换步骤,将事件数据与我想要的BigQuery模式相匹配。但是,如果创建的输入不符合模式,则会遇到问题。显然,它被无限重试着写到BigQuery:
Count: 76 RuntimeError: Could not successfully insert rows to BigQuery table
目前,我正在进行大量手动检查,以确保输入是否符合模式,但是,在没有考虑到的情况下,我会积累RuntimeErrors。有没有一种方法可以尝试写到BigQuery,如果这样做失败了,用原始的输入做其他的事情?或者,是否有
我正在开发一个python程序,以像Google模板一样使用。
我正在做的是用BigQuery从PubSub编写数据:
pipeline_options.view_as(StandardOptions).streaming = True
p = beam.Pipeline(options=pipeline_options)
(p
# This is the source of the pipeline.
| 'Read from PubSub' >> beam.io.ReadFromPubSub('projects/.
我有一个要求,我需要创建一个数据流作业,该作业将通过过滤将作为json数据一部分的属性的消息,将数据从Google PubSub主题传输到BigQuery表。使用谷歌提供的模板,我可以使用谷歌提供的"PubSub to BigQuery“模板,但这不允许对数据进行过滤。
有办法定制模板"PubSub到Bigquery“吗?如果是的话,任何关于如何做到这一点的链接或示例都会有帮助。
我有一个数据流管道,它从PubSub Lite读取消息,并将数据流式传输到BigQuery表中。该表按天进行分区。使用以下命令查询表时:
SELECT * FROM `my-project.my-dataset.my-table` WHERE DATE(timestamp) = "2021-10-14"
BigQuery UI告诉我This query will process 1.9 GB when run。但是,当实际运行查询时,我没有得到任何结果。我的管道已经运行了整整一周,在过去的两天里我得到了同样的结果。然而,对于2021-10-11和之前的几天,我看到了实际的结果。
我正在尝试使用谷歌提供的模板PubSub to BigQuery设置一个数据流作业。然而,我在启动时得到了这个错误:
Message: The resource 'projects/my-project/global/networks/default' was not found
我认为谷歌提供的模板是硬编码的,可以使用default网络。如果我在自动模式下创建default网络,该错误就会消失。但我们不能在生产中使用default网络。
文档提到了一个network参数。我尝试从GCP console UI添加一个名为network的附加参数,传入我们的自定义网络名称。但是我
我们有一个从pub/sub读取并写入bigquery的流管道。在不添加窗口函数的情况下,它无法工作,因为默认的全局窗口只触发一次,并且不知道何时重新触发。没有GroupBy或组合。
我们试图添加一个带有触发器的波束窗口,但有一些问题。如果我们使用globalWindow,它运行非常慢,有时会出现空指针异常。如果我们使用一个固定的窗口,它是快速的,但它似乎不承认酒吧/子信息有时。
我们真正想要的是一条从pub/sub读取的管道,不管它能得到多少,它都会得到一批,写到bigquery,一旦写好了所有的东西,并且确认了pubsub消息,就会重新触发read- from -pubsub。这个是可能的吗
我需要从Pubsub_v1模块导入google.cloud和bigquery。我已经安装了它,pip冻结显示如下:
gapic-google-cloud-pubsub-v1==0.15.4
google-cloud-bigquery==0.26.0
google-cloud-pubsub==0.27.0
proto-google-cloud-pubsub-v1==0.15.4
在我的python脚本中,我导入模块如下:
import os
from google.cloud import pubsub_v1
import time
import json
from google.clo
对于我们的近实时分析,数据将被传输到pubsub中,Apache波束数据流管道将先写入bigquery进行处理,然后再从bigquery读取数据集,然后将聚合结果存储在Hbase中,用于OLAP多维数据集计算。
下面是用于从bigquery获取记录的示例ParDo函数
String eventInsertedQuery="Select count(*) as usercount from <tablename> where <condition>";
BigQuery bigquery = BigQueryOptions.getDefaultInstan