Apache Beam 批量到 BigQuery,中间文件,它们是不是仅以 JSON 格式生成

Posted

技术标签:

【中文标题】Apache Beam 批量到 BigQuery,中间文件,它们是不是仅以 JSON 格式生成【英文标题】:Apache Beam to BigQuery in batch, intermediary files, are they only generated in JSONApache Beam 批量到 BigQuery,中间文件,它们是否仅以 JSON 格式生成 【发布时间】:2017-09-08 16:05:36 【问题描述】:

我正在读取 CSV 文件,在通过云 Dataflow 中的梁 (2.1.0) 将它们写入 BigQuery 之前对其进行转换。 GCS 中为 Bq 加载作业生成的中间文件是 JSON 文件。有没有办法在 CSV 而不是 JSON 中生成它们,这将消耗更少的空间和 IO。如果有办法改变为什么默认是 JSON 而不是 CSV 最好的问候,

【问题讨论】:

【参考方案1】:

CSV 不支持架构中的嵌套或重复数据,这就是 Beam 不将其用于 BigQuery 导入的原因。 JSON 和 Avro 格式支持它,将实现更改为使用 Avro 可能是个好主意(我们已经使用 Avro 从 BigQuery 导出数据)。随时通过https://issues.apache.org/jira/browse/BEAM 提交 JIRA。

【讨论】:

感谢@jkff 的反馈。我按照你的建议创建了 BEAM-2879,希望我在创建它时没有违反任何规则:) @jkff 我目前正在努力将数据从 BigQueryIO.read(...).fromQuery 导出到 Avro 文件。你有提示吗,怎么做?

以上是关于Apache Beam 批量到 BigQuery,中间文件,它们是不是仅以 JSON 格式生成的主要内容,如果未能解决你的问题,请参考以下文章

使用 Apache Beam 的 Dataflow 批量加载的性能问题

使用 Apache Beam 的 Dataflow 批量加载的性能问题

Apache Beam 数据流 BigQuery

结合 BigQuery 和 Pub/Sub Apache Beam

Apache-beam Bigquery .fromQuery ClassCastException

使用 apache beam 中的 beam.io.gcp.bigquery.WriteToBigQuery 模块写入日期分区的 Bigquery 表