BigQuery 错误消息帮助,我是初学者。表名缺少数据集??我可以尝试啥来解决这个问题?
Posted
技术标签:
【中文标题】BigQuery 错误消息帮助,我是初学者。表名缺少数据集??我可以尝试啥来解决这个问题?【英文标题】:BigQuery error message help, I'm a beginner. Table name missing dataset?? What can I try to remedy this?BigQuery 错误消息帮助,我是初学者。表名缺少数据集??我可以尝试什么来解决这个问题? 【发布时间】:2021-11-29 20:56:45 【问题描述】:运行查询时出错 表名“部门”缺少数据集,而请求中未设置默认数据集。
我的表被完全命名为“部门”,就像这里看到的那样。我检查了它,并让其他几个人查看我的拼写以确保它是正确的。我们的眼睛工作,它实际上是正确的。那么故障是什么?有没有其他人遇到过这个?我正在为 Google 数据分析课程学习 Big Query。
我尝试了很多变体的查询,使用了反引号、引号、括号,我重新排列了顺序,用几种方法重写了它,但我什么也没得到。
我完全按照他们所说的那样上传了我的数据集,位置为 US,自动架构,正确的表名。不知道还能做什么。
这里有几个屏幕截图供参考。 enter image description here
【问题讨论】:
为了安全起见 - 只需使用完全限定名称 - 如project.dataset.table
括在反引号中
【参考方案1】:
我正在做同样的课程,我遇到了这个确切的错误。需要注意的一点是,您不能混合和匹配表引用样式,这意味着如果您包含 BigQuery 倾向于在至少一个位置自动填充反引号的完整路径,那么您需要在任何地方使用该样式。这包括 SELECT 子句中的所有列名以及 FROM 和 JOIN 子句中的表名。如果您在部分代码中尝试过反引号,但不是在所有地方都尝试过,这或许可以解释为什么它没有运行。
SELECT
`esoteric-cider-333608.employee_data.employees`.name AS employee_name,
`esoteric-cider-333608.employee_data.employees`.role AS employee_role,
`esoteric-cider-333608.employee_data.departments`.name AS department_name
FROM
`esoteric-cider-333608.employee_data.employees`
INNER JOIN
`esoteric-cider-333608.employee_data.departments`
ON
`esoteric-cider-333608.employee_data.employees`.department_id = `esoteric-cider-333608.employee_data.departments`.department_id;
这样做的更好方法是为表名设置别名。您可以通过使用 AS 关键字在 SELECT 子句中为列名起别名来执行此操作。现在,您可以在整个语句中以简写形式引用该表,BigQuery 将为“部门”表提供准确的定义。
SELECT
employees.name AS employee_name,
employees.role AS employee_role,
departments.name AS department_name
FROM
`esoteric-cider-333608.employee_data.employees` AS employees
INNER JOIN
`esoteric-cider-333608.employee_data.departments` AS departments
ON
employees.department_id = departments.department_id;
有关别名的更多信息,请访问https://www.w3schools.com/sql/sql_alias.asp。
【讨论】:
以上是关于BigQuery 错误消息帮助,我是初学者。表名缺少数据集??我可以尝试啥来解决这个问题?的主要内容,如果未能解决你的问题,请参考以下文章