提问者:小点点

GCP数据流数据到BigQuery RAW表,触发转换/插入数据集市表


我正在使用Dataflow(apache光束)将数据从PubSub流式传输到BigQuery。当我使用BigQuery流式插入时,没有审计日志可以用来触发额外的转换和插入数据集市表中的最终目的地。可以使用什么方法来连续转换和插入原始数据-


共2个答案

匿名用户

解决方案1:

您可以应用具有完整流式管道的设计:

TOPIC RAW -> Dataflow job Sink RAW data to Bigquery (RAW table)
          -> Dataflow job applying transformations and sink data to the Datamart

在这种情况下,有2个订阅者是2个数据流作业

每个Dataflow作业都将具有明确的责任,并应用预期的业务转换和接收器。

解决方案2:

您还可以使用Cloud RunCloud Function对带有Eventark的BigQuery事件执行操作

如果您真的想在插入第一个表后同步数据,此解决方案很有趣。

示例:

gcloud eventarc triggers create ${SERVICE}-trigger \
  --location ${REGION} --service-account ${SVC_ACCOUNT} \
  --destination-run-service ${SERVICE}  \
  --event-filters type=google.cloud.audit.log.v1.written \
  --event-filters methodName=google.cloud.bigquery.v2.JobService.InsertJob \
  --event-filters serviceName=bigquery.googleapis.com

匿名用户

首先,如果您正在考虑转换bigquery中的数据,我认为您可以删除数据流组件,因为您可以直接从pub/sub插入bigquery。

https://cloud.google.com/pubsub/docs/bigquery

其次,您有两个转换数据的选项:

  • 计划查询
  • 视图

根据转换的复杂性,您可以依靠视图来提供原始数据的精选视图,并立即访问新数据。

这种情况的通常方法是利用这两种机制,以便:

  • 视图允许使用新数据,但会带来性能损失(转换会即时执行)
  • 计划查询定期合并数据,以执行转换并存储最终数据。

因此,您可以将合并数据与新数据联合起来以构建视图并执行计划查询以转换和存储合并数据集中的原始数据。

这种方法将消费者与底层混合模型隔离开来。