我需要查询公共项目提供的数据集。我创建了自己的项目并将其数据集添加到我的项目中。有一个名为domain_public
的表。当我对此表进行查询时,出现此错误:
Query Failed
Error: Not found: Dataset my-project-name:domain_public was not found in location US
Job ID: my-project-name:US.bquijob_xxxx
我来自美国以外的国家。问题是什么以及如何解决?
编辑1:
我将处理位置更改为asia-northeast1
(我在新加坡),但是存在相同的错误:
Error: Not found: Dataset censys-my-projectname:domain_public was not found in location asia-northeast1
以下是我的项目和公共项目censys-io
的视图:
请告知。
编辑2: 我以前输入的查询基于censys tutorial:
#standardsql
SELECT domain, alexa_rank
FROM domain_public.current
WHERE p443.https.tls.cipher_suite = 'some_cipher_suite_goes_here';
当我将FROM
子句更改为:
FROM `censys-io.domain_public.current`
最后一行:
WHERE p443.https.tls.cipher_suite.name = 'some_cipher_suite_goes_here';
有效。我是否应该理解我应该始终包括projectname.dataset.table
(如果我使用正确的术语)并指出Censys的错字?还是这个特殊情况由于某种原因?
答案 0 :(得分:2)
在Web UI中-单击显示选项按钮,然后为“处理位置”选择您的位置!
指定查询执行的位置。在特定位置运行的查询只能引用该位置的数据。对于美国/欧盟中的数据,您可以选择“未指定”以在数据所在的位置运行查询。对于其他位置的数据,必须显式指定查询位置。
更新
如上所述-Queries that run in a specific location may only reference data in that location
假设censys-io.domain_public
数据集的数据在美国-您需要为处理位置指定美国
答案 1 :(得分:2)
该问题原来是由于constexpr static T args[] = {list...};
子句中的表名错误引起的。
正确的FROM
子句应为:
FROM
我正在输入:
FROM `censys-io.domain_public.current`
因此项目名称在FROM domain_public.current
中是必需的,而``由于项目名称中的FROM
是必需的。
答案 2 :(得分:1)
BigQuery找不到您的数据
确保您的FROM
位置包含3个部分
bigquery-public-data
)hacker_news
)stories
)喜欢
`bigquery-public-data.hacker_news.stories`
*注意反引号
错误
SELECT *
FROM `stories`
错误
SELECT *
FROM `hacker_news.stories`
正确
这在BigQuery中有效,请尝试一下
SELECT *
FROM `bigquery-public-data.hacker_news.stories`
答案 3 :(得分:0)
确保您的 FROM 位置包含@stevec 提到的 3 个部分
但就我而言,我在 Google 脚本编辑器中使用 LegacySql,因此在这种情况下,您需要将其声明为 false
,例如:
var projectId = 'xxxxxxx';
var request = {
query: 'select * from project.database.table',
useLegacySql: false
};
var queryResults = BigQuery.Jobs.query(request, projectId);
答案 4 :(得分:0)
检查表名或视图名的大小写[大写或小写]和拼写。 从表定义中复制它,您的问题将得到解决。
我使用的是 FPL009_Year_Categorization 而不是 FPL009_Year_categorization
将 c 用作 C 并收到错误“在位置 asia-south1 中未找到”
我用精确的大小写复制,问题已解决。