运行Bigtable模拟器时BigtableConfiguration v BigtableOptions

时间:2017-01-28 08:22:30

标签: java scala hbase bigtable google-cloud-bigtable

我有一些工作代码。它使用BigtableConfiguration对象返回以获取与Bigtable的连接,如下所示:

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

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

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

为了利用基于模拟器env var的自动配置,您需要使用另一个名为BigtableOptions的配置类,如下所示:

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

此类有the logic来检测模拟器。但是,我无法将其传递给现有的BigtableConfiguration.connect()方法。

所以我对如何在现有代码中使用这个新的BigtableOptions类感到困惑。我可以沿着使用BigtableSession对象的路线前进,但这意味着重写。

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

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果设置了环境变量,Cloud Bigtable 0.9.4客户端应该只使用模拟器。有关实现的详细信息,请参阅BigtableOptions源代码中的here

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