【问题标题】:How to parse big XML in google cloud function efficiently?如何有效地解析谷歌云功能中的大 XML?
【发布时间】:2021-11-27 06:59:13
【问题描述】:

我必须在 Google Cloud Function 中从数百 MB 大小的 XML 文件中提取数据,我想知道是否有任何最佳做法?

因为我习惯了 nodejs,所以我一直在寻找一些流行的库,比如 fast-xml-parser,但是如果你只想要来自巨大 xml 的特定数据,这似乎很麻烦。我也不确定当 XML 太大时是否存在任何性能问题。总的来说,这并不是从巨大的 XML 中解析和提取数据的最佳解决方案。

然后我想知道是否可以将BigQuery 用于此任务,我简单地将 xml 转换为 json 并将其放入数据集中,然后我可以使用查询来检索我想要的数据。

另一个解决方案可能是使用 python 来完成这项工作,因为它在parsing 中很好,并且可以从 XML 中提取数据,所以即使我没有使用 python 的经验,我想知道这条路径是否仍然可以 最好的解决方案?

如果上述任何内容没有意义,或者如果一种解决方案比另一种更可取,或者如果有人可以分享任何见解,我将不胜感激!

【问题讨论】:

    标签: node.js google-bigquery google-cloud-functions xml-parsing


    【解决方案1】:

    我建议您查看article,其中讨论了如何使用 Python Dataflow 将 XML 数据加载到 BigQuery 中。我认为这种方法可能适用于您的情况。

    基本上他们的建议是:

    • 使用包xmltodict将xml解析成Python字典。
    • 在 BigQuery 中指定输出表的架构。
    • 使用 Beam pipeline 获取 XML 文件并使用它来填充 BigQuery 表。

    【讨论】:

    • 谢谢,我想知道这是否也适用于 nodejs 并且无需先定义模式。基本上只需将所有内容都转换为 json 并将其放入 BIgQuery 并从那里找出其余部分
    • 我很高兴这个答案很有帮助。如果您能接受,我将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 2017-11-14
    • 2022-12-17
    • 1970-01-01
    • 2019-03-16
    • 2018-12-11
    • 2020-10-14
    • 2017-11-10
    • 2019-05-14
    相关资源
    最近更新 更多