如何与谷歌云bigquery进行集成测试

我们正在从apache hbase迁移到bigquery。

目前,我们有端到端测试(使用黄瓜),这些测试与运行hbase的docker容器一起工作。

似乎没有任何bigquery docker容器或模拟器(https://cloud.google.com/sdk/gcloud/reference/beta/emulators/)

我们如何能够为使用 bigquery 的应用程序创建端到端测试?


答案 1

目前没有任何BigQuery本地模拟器或类似的东西。正如您分享的有关可用GCP模拟器的链接所指出的那样,还有其他一些产品具有这样的功能,但BigQuery没有此功能的原因可能是,只有在其实际基础架构中工作时才能看到它的真正潜力,再加上使用BigQuery的成本可能相对较低,具体取决于您对它的使用, 此外,您还有一个免费套餐可以开始使用。

让我总结一下有关BigQuery定价的一些信息,这些信息可能对您有用:

  • 定价文档中总结了 BigQuery 存储和运营成本。
  • BigQuery提供了一些免费的操作
  • 有一个存储免费层,其中包含10GB的免费存储空间。考虑到BQ旨在处理大量数据,它可能不是很多,但它可以成为进行一些测试的良好起点。
  • 还有一个“操作”免费层,其中第一个 TB 的已处理数据(每月)是免费的。
  • 您可以使用可用的指标设置警报,以便通过 Stackdriver 监视使用情况。

无论如何,如果您仍然认为直接使用BigQuery不是您的最佳选择,可以随时通过在BigQuery的公共问题跟踪器中创建功能请求来将您的请求转发给工程团队,尽管工程团队将决定是否(以及何时)实现这样的功能, 考虑到BigQuery的复杂性,以及其性能已针对在当前架构中的工作进行了优化,因此更加考虑。


答案 2

这是一篇老文章,但是如果你可以使用Python,并且你计划测试你的SQL并根据输入断言你的结果,我会建议bq-test-kit。这个框架允许你在Python中与BigQuery进行交互,并使测试可靠。

您有3种方法可以将数据注入其中:

  • 创建能够隔离其名称的数据集和表,从而拥有自己的命名空间
  • 依赖临时表,其中数据与数据文本一起插入
  • 数据文本合并到查询中

希望这有帮助。


推荐