Google Spanner:JDBC连接字符串?

时间:2017-02-17 00:45:50

标签: google-cloud-platform google-cloud-spanner

虽然Spanner看起来令人兴奋,但Simba JDBC驱动程序的文档(包含在下面的链接:https://cloud.google.com/spanner/docs/partners/drivers)相对稀疏,特别是与Simba JDBC BigQuery驱动程序的文档({{3})相比时})。

特别是,文档只提到了一个连接字符串:

jdbc:cloudspanner://localhost;Project=simba-cloudspanner- jdbc;Instance=test-instance;Database=example-db

...没有关于如何指定服务帐户及其p12凭据或许多Google Cloud服务使用的JSON文件路径的信息。

任何人都可以共享JDBC连接字符串或其他已成功用于连接服务的设置详细信息吗?例如,我尝试过设置环境变量GOOGLE_APPLICATION_CREDENTIALS并以与上面相同的样式提供JDBC字符串,但无济于事。

理想情况下,我想使用实例ID,项目名称,数据库名称,服务帐户电子邮件和p12文件的组合,但我可以使用其他身份验证选项。

编辑:尝试GOOGLE_APPLICATION_CREDENTIALS策略时,我生成了此日志文件,以防它可能有任何帮助https://cloud.google.com/bigquery/partners/simba-drivers/

2 个答案:

答案 0 :(得分:3)

仔细检查我的工作,看起来我 am 实际上能够连接上面的连接字符串并设置环境变量GOOGLE_APPLICATION_CREDENTIALS。理想的是有一些其他的选项和文档仍然有点参差(没有提到环境变量),所以更多的信息可能是理想的。

这是一个半可行的解决方案。它受到以下事实的影响:在同一过程中,您不能与不同的服务帐户建立多个连接。

编辑2:这似乎不起作用。当指向JSON文件时,我收到有关未指定实例的错误。

编辑:看起来与最新版本的Spanner驱动程序一样,有一种方法可以做到这一点。

最新版本的驱动程序(1.0.4.1005)似乎支持可选的JDBC参数PvtKeyPath,它接受​​私钥的路径,而不必设置GOOGLE_APPLICATION_CREDENTIALS变量。值得一看。

附带的PDF文档:

PvtKeyPath

因此,您将拥有以下网址:jdbc:cloudspanner://;Project=...;PvtKeyPath=/path/to/credentials.json

答案 1 :(得分:0)

由于Google提供的JDBC驱动程序受到严格限制(不支持DML和DDL状态),我编写了自己的JDBC驱动程序。该驱动程序旨在与支持JPA / Hibernate的应用程序一起使用。可以在此处找到驱动程序:https://github.com/olavloite/spanner-jdbc

此驱动程序支持与Google提供的驱动程序相同的URL,包括PvtKeyPath属性。它仍然是BETA,但我已经将它用于我自己的应用程序之一。