数据流 bigquery 单元测试
Posted
技术标签:
【中文标题】数据流 bigquery 单元测试【英文标题】:dataflow bigquery unit tests 【发布时间】:2017-04-29 05:45:26 【问题描述】:我有一个数据流管道,它从 GCS 中的文件中读取数据,对其进行转换并将结果放入 BQ。 我创建了检查预期 TableRows 是否在 PCollection 中的测试,但是 如何根据我提供的 db 架构验证将写入 BQ 的数据是否正确?
tableRowPCollection.apply(BigQueryIO.Write.named("Write to table").to(options.getTableName())
.withCreateDisposition(CREATE_IF_NEEDED).withSchema(someSchema).
withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_TRUNCATE));
【问题讨论】:
【参考方案1】:我假设您想验证BigQueryIO
本身不会损坏您的PCollection
中的数据?
我认为没有什么好的方法可以做到这一点——当然,除了实际运行管道,然后读回数据并验证它(你可以使用BigQueryIO.Read
来读回数据和一些PAssert
来验证它) - 但我假设您正在寻找更轻量级的东西。
不过,您也可以看看 BigQueryIO
本身是如何测试的,例如this test。重要的方法是 withTestServices
(BigQueryIO.Read
和 BigQueryIO.Write
都有) - 但是,它是包本地实现细节,不打算供管道编写者使用。
【讨论】:
以上是关于数据流 bigquery 单元测试的主要内容,如果未能解决你的问题,请参考以下文章