【问题标题】:Guidance howto load streaming xml into BigQuery指导如何将流式 xml 加载到 BigQuery
【发布时间】:2020-06-29 09:29:00
【问题描述】:

如果有人可以在这里提供帮助,我们将不胜感激,我们刚刚开始研究 GCP,需要一种强大且简单的模式来将 Cloud Pub/Sub 上发布的 xml 格式数据的事务数据加载到日期分区的 BigQuery 表中以供使用在由 AirFlow 编排的复杂下游批处理中。

以前有人做过吗?

为了允许在摄取方面发生架构漂移,一种选择是将 xml 转换为 json 并将 json 存储为顶部带有 BQ 视图的字符串,使用 json 函数提取字段以进行下游处理,有什么优点/缺点这种方法?

在我们的案例中,一个优点是 xml 中有很多(300 多个)字段,但最初只使用了一个子集,但随着时间的推移,我们需要能够快速“打开”新字段。

也许更进一步,将原始 xml 存储在 BQ 中,然后使用 BQ sql + UDF 转换为 json?

非常感谢任何提示,谢谢!

/马蒂亚斯

【问题讨论】:

  • 这可能会有所帮助,尽管我建议在使用 Cloud Dataflow 时使用 Java 而不是 Python:medium.com/@lakshmanok/…。 “也许更进一步,将原始 xml 存储在 BQ 中,然后使用 BQ sql + UDF 转换为 json?” 我也是这么想的,我想问 Lak(作者)这是否可以接受他认为的方法。

标签: xml google-bigquery


【解决方案1】:

您可以使用 Google Cloud Dataflow 以 XML 格式读取每个 Pub/Sub 消息并对其进行解析,例如 JSON 格式或 Python dict 格式,BigQuery 可以理解的某些格式。

您可以在此处找到读取 XML 文件、将其解析为字典然后将其写入 BigQuery 表 [1] 的示例。哟只需要修改代码以从 Pub/Sub 读取,然后像在 [1] 中所做的那样将每个消息解析为字典或 JSON,在这里您可以找到有关如何读取 PubSub 消息的示例,将其解析为BigQuery 可以理解和写入的格式 [2]。

[1]https://medium.com/google-cloud/how-to-load-xml-data-into-bigquery-using-python-dataflow-fd1580e4af48

[2]Dataflow Streaming using Python SDK: Transform for PubSub Messages to BigQuery Output

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 2019-02-17
    相关资源
    最近更新 更多