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

如何为Google BigQuery JDBC驱动程序指定区域位置?,jdbc,google-bigquery,Jdbc,Google Bigquery,我试图在亚洲东北1(日本)位置指定一个位置,以便在该位置查询数据集时使用。对于区域位置,查询时必须指定位置: 如果数据位于美国或欧盟多地区以外的位置,则在执行加载数据、查询数据和导出数据等操作时,必须指定位置 我已尝试将查询字符串子名称设置为: //https://www.googleapis.com/bigquery/v2;ProjectId=mybqproject;OAuthType=3;Location=asia-northeast1 它在Clojure中,所以这里的全部内容都是针对上下

我试图在
亚洲东北1
(日本)位置指定一个位置,以便在该位置查询数据集时使用。对于区域位置,查询时必须指定位置:

如果数据位于美国或欧盟多地区以外的位置,则在执行加载数据、查询数据和导出数据等操作时,必须指定位置

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

//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"
},
当我没有显式设置日本位置时,我在BigQuerySQL控制台中也会遇到这个错误。这表示没有为此表搜索日本位置


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

很遗憾,SIMBA JDBC驱动程序还不支持此功能,因此您将无法以这种方式使用它

(未列出处理位置)

如果可能,您可以切换到使用BigQuery API并设置字段
jobReference.location
。使用查询作业配置将其设置为所需的处理位置注意:这被标记为
实验性
,因此要小心


谢谢,我认为在JDBC驱动程序中设置该属性不起作用(还没有?)。是的,我认为Simba驱动程序还不支持它。我会更新我的答案。