错误:未找到:在美国位置未找到数据集 my-project-name:domain_public

use*_*654 14 google-bigquery

我需要查询公共项目提供的数据集。我创建了自己的项目并将他们的数据集添加到我的项目中。有一个名为:的表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
Run Code Online (Sandbox Code Playgroud)

我来自非美国国家。请问这是什么问题以及如何解决?

编辑 1: 我将处理位置更改为asia-northeast1(我在新加坡)但同样的错误:

Error: Not found: Dataset censys-my-projectname:domain_public was not found in location asia-northeast1 
Run Code Online (Sandbox Code Playgroud)

这是我的项目和公共项目的视图censys-io

在此处输入图片说明

请指教。

编辑 2: 我用来键入的查询基于 censys教程是:

#standardsql
SELECT domain, alexa_rank
FROM domain_public.current
WHERE p443.https.tls.cipher_suite = 'some_cipher_suite_goes_here';
Run Code Online (Sandbox Code Playgroud)

当我将FROM条款更改为:

FROM `censys-io.domain_public.current`
Run Code Online (Sandbox Code Playgroud)

最后一行:

WHERE p443.https.tls.cipher_suite.name = 'some_cipher_suite_goes_here';
Run Code Online (Sandbox Code Playgroud)

有效。我是否应该理解我应该始终包括projectname.dataset.table(如果我使用正确的术语)并指出 Censys 的错字?或者出于某种原因,这是这个项目的特例吗?

use*_*745 13

BigQuery 找不到您的数据

如何修复

确保您的FROM位置包含 3 个部分

  1. 一个项目(例如bigquery-public-data
  2. 一个数据库(例如hacker_news
  3. 一张桌子(例如stories

像这样

`bigquery-public-data.hacker_news.stories`
Run Code Online (Sandbox Code Playgroud)

*注意反引号

例子

错误的

SELECT *
FROM `stories`
Run Code Online (Sandbox Code Playgroud)

错误的

SELECT *
FROM `hacker_news.stories` 
Run Code Online (Sandbox Code Playgroud)

正确的

SELECT *
FROM `bigquery-public-data.hacker_news.stories` 
Run Code Online (Sandbox Code Playgroud)

  • 这并不能解决我的问题,如果您单击查询表,UI 会自动填写您在“正确”下发布的查询,但它仍然失败,在美国找不到 (5认同)

Mik*_*ant 5

在 Web UI 中 - 单击Show Options按钮,然后为“处理位置”选择您的位置!

指定执行查询的位置。在特定位置运行的查询可能仅引用该位置中的数据。对于美国/欧盟的数据,您可以选择“未指定”以在数据所在的位置运行查询。对于其他位置的数据,您必须明确指定查询位置。


更新

正如上面所说—— Queries that run in a specific location may only reference data in that location

假设censys-io.domain_public数据集的数据在美国 - 您需要为处理位置指定美国

  • @user5783745 - 原始答案是所谓的经典 UI。您很可能会查看新的 UI - BigQuery 控制台 - 在此新 UI 中,您应该单击“更多...”按钮,然后单击“查询设置”。在打开的面板中,您将能够找到与位置相关的设置 (2认同)

use*_*654 4

结果发现问题是由于FROM子句中的表名错误造成的。正确的FROM条款应该是:

FROM `censys-io.domain_public.current`
Run Code Online (Sandbox Code Playgroud)

当我打字时:

FROM domain_public.current
Run Code Online (Sandbox Code Playgroud)

因此,项目名称是必需的,并且FROM`` 是必需的,因为-在项目名称中。