如何使用google cloud bigquery进行集成测试

Xel*_*eli 8 java continuous-integration integration-testing google-bigquery

我们正在处理从apache hbase迁移到bigquery的过程.

目前我们有端到端测试(使用黄瓜),它与运行hbase的docker容器一起使用.

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

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

dse*_*sto 8

目前没有任何类型的 BigQuery 本地模拟器或类似的东西。正如您分享的有关可用 GCP 模拟器的链接所指出的,还有一些其他产品具有这样的功能,但 BigQuery 没有的原因可能是它的真正潜力只有在其真正的基础设施中工作时才能看到,另外事实上,根据您的使用情况,使用 BigQuery 的成本可能相对较低,而且您有一个免费套餐可以开始使用。

让我总结一些对您有用的关于 BigQuery 定价的信息:

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

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

  • Google 现已正式接受模拟器的功能请求 (https://issuetracker.google.com/savedsearches/559654)。他们建议人们在该列表中加注星标,以便他们可以在接受的功能请求中对其进行排名。 (6认同)
  • 是否有任何可以直接与 BigQuery 配合使用的集成测试工具?一些非常简单的事情 - 运行这几个 SQL 查询并将结果与​​包含预期结果的表进行比较。 (5认同)

Bou*_*ONE 7

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

您可以通过 3 种方式向其中注入数据:

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

希望这有帮助。