我想知道在bigquery中将search_path设置为架构的等效语句。
在Redshift中,我们使用set search_path设置为schema_name; 在SQL Server中,我们使用语句USE Schema_name;
有人能让我知道在bigquery中怎么做
我在文档中找不到很多东西。
答案 0 :(得分:2)
很显然,USE语句没有直接的等效项!
同时,在Jobs.insert API中–用户可以设置一个可选的defaultDataset属性,以指定用于查询中不合格表名的默认数据集。
注意:在上面的示例中,projectId是可选的,因此仍然不涵盖不合格的数据集名称的行为
您可以检查此属性是否在首选客户端库中实现
从用户界面开始-在BigQuery用户界面中(无论是经典的还是新的),此功能看起来都未实现/未使用–而是当前项目用于限定不合格的dataset.table引用,但无法设置要解析的默认数据集不合格的表引用,而是“在请求中未设置默认数据集时缺少数据集。”出现错误消息
因此,正如您所看到的,当功能可用时–客户端可以使用/实现它或忽略它
作为示例-Goliath(BigQuery Explorer,Bigtens工具的Potens.io套件的一部分)根据当前项目和活动数据集设置默认数据集。
例如,在以下屏幕快照中-航班数据集处于活动状态,因此消息“ 未找到:在美国位置未找到表cloud-training-demos:demos.xxx “
如果将活动数据集更改为 demos ,则会显示以下消息:“ 未找到:在美国位置未找到表cloud-training-demos:demos.xxx “
答案 1 :(得分:1)
使用BigQuery时不支持SQL关键字USE
,支持的SQL查询语法包含在本文档中[1]。
也是此处支持的旧式语法[2]。
由于查询BigQuery数据集需要引用与该数据集关联的项目,因此不使用项目名称就无法直接引用该数据集,因此BigQuery中没有等效于USE [schema]
的项目。通过其中一个客户端库查询数据集需要使用[project_name]。[dataset]。[table]表示法。
[1] https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#using-clause [2] https://cloud.google.com/bigquery/docs/reference/legacy-sql#functions