我正在尝试为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驱动程序时如何选择日语位置?
答案 0 :(得分:0)
不幸的是,Simba JDBC驱动程序尚不支持此功能,因此您将无法以这种方式使用它。
如果可能,您可以切换到使用BigQuery API并设置字段jobReference.location
。使用查询作业配置将其设置为所需的处理位置。 注意:此标记为Experimental
,请注意。
https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.query