运行 Bigtable 模拟器时的 BigtableConfiguration v BigtableOptions

BigtableConfiguration v BigtableOptions when running Bigtable emulator

我有一些工作代码。它使用 BigtableConfiguration 到 return 的对象来连接到 Bigtable,如下所示:

var connection = BigtableConfiguration.connect("myProject", "myCluster")

连接 returned 的类型为 com.google.cloud.bigtable.hbase.Connection

我知道现在有一个本地使用的 Bigtable 模拟器,我希望在我的测试中使用它。所以我试图了解如何利用它。

似乎为了利用基于模拟器环境变量的自动配置,您需要使用另一个名为 BigtableOptions 的配置类型 class,如下所示:

  val options = new BigtableOptions.Builder()
    .setProjectId("myProject")
    .setInstanceId("myCluster")
    .setUserAgent("whatever")
    .build()

这个class有the logic检测模拟器。但是,我无法将它传递给我现有的 BigtableConfiguration.connect() 方法。

所以我很困惑如何将这个新的 BigtableOptions class 与我现有的代码一起使用。我可以沿着使用 BigtableSession 对象的路线前进,但这意味着重写。

如果设置了 env var,我想利用模拟器承诺的自动配置,但现在我正在考虑放弃它以支持像 这样的答案。

提前致谢!

如果设置了环境变量,Cloud Bigtable 0.9.4 客户端应该只与模拟器一起工作。有关实施细节,请参阅 BigtableOptions 源代码中的 here

如果这对您不起作用,请继续讨论 github issue