dataflow bigquery单元测试

时间:2017-04-29 05:45:27

标签: google-bigquery integration-testing google-cloud-dataflow endly

我有一个数据流管道,它从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 个答案:

答案 0 :(得分:0)

我假设您要验证BigQueryIO本身是否不会损坏PCollection中的数据?

我不认为有一个很好的方法可以做到这一点 - 当然,除了当然正在运行管道,然后读取数据并验证它(你可以使用BigQueryIO.Read来阅读数据返回以及一些PAssert来验证它 - 但我假设你正在寻找更轻量级的东西。

但是,您还可以查看BigQueryIO本身的测试方式,例如: this test。重要的方法是withTestServicesBigQueryIO.ReadBigQueryIO.Write都有) - 但是,它是一个包本地实现细节,并不打算由管道编写者使用。