如何为Google BigQuery JDBC驱动程序指定区域位置?

时间:2018-07-02 23:03:41

标签: jdbc google-bigquery

我正在尝试为SIMBA BigQuery JDBC driver指定一个asia-northeast1(日本)位置,以便在该位置查询数据集时使用。对于区域位置,您必须在查询时指定位置:

  

如果数据位于美国或欧盟多区域之外的其他位置,则在执行诸如加载数据,查询数据和导出数据之类的操作时,必须指定位置。 Specifying your location

我尝试将查询字符串子名称设置为:

//https://www.googleapis.com/bigquery/v2;ProjectId=mybqproject;OAuthType=3;Location=asia-northeast1

它在Clojure中,因此整个内容都在上下文中使用,但是相同的原理应适用于任何JDBC连接。

(clojure.java.jdbc/get-connection
   {:classname   "com.simba.googlebigquery.jdbc42.Driver"
    :subprotocol "bigquery"
    ;; OAuthType=3 means use Application Default Credentials
    :subname     "//https://www.googleapis.com/bigquery/v2;ProjectId=mybqproject;OAuthType=3"})

好像没有拾取Location属性(我只是在这里猜测使用Location,我在文档中什么都看不到)。我能够成功连接并查询美国多区域中的数据集,因此配置属性正确,但日语属性不正确。当我尝试查询日本的数据集时,出现此错误:

CompilerException java.sql.SQLException: [Simba][BigQueryJDBCDriver](100032) Error executing query job. Message: 404 Not Found
{
  "code" : 404,
  "errors" : [ {
    "domain" : "global",
    "message" : "Not found: Dataset mybqproject:mybqtable",
    "reason" : "notFound"
  } ],
  "message" : "Not found: Dataset mybqproject:mybqtable"
},

当我未明确设置日本位置时,我也在BigQuery SQL控制台中收到此错误。这表明未在日语位置搜索此表。

使用Google BigQuery SIMBA JDBC驱动程序时如何选择日语位置?

1 个答案:

答案 0 :(得分:0)

不幸的是,Simba JDBC驱动程序尚不支持此功能,因此您将无法以这种方式使用它。

https://www.simba.com/products/BigQuery/doc/JDBC_InstallGuide/content/jdbc/bq/options/intro-general.htm(未列出处理位置)

如果可能,您可以切换到使用BigQuery API并设置字段jobReference.location。使用查询作业配置将其设置为所需的处理位置。 注意:此标记为Experimental,请注意。

https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.query

enter image description here