繁体   English   中英

select 从 BigQuery 中的表中获取几行数据的简单方法?

[英]Simple way to select a few rows of data from table in BigQuery?

我正在从 SQL 服务器过渡到 BigQuery,并注意到 BigQuery 中的 TOP function 只允许在查询中聚合。 因此下面的代码将不起作用:

SELECT TOP 5 * FROM TABLE 

这是我在尝试学习新表格和获取有关数据的更多信息时养成的习惯。 除了从表中选择几行之外,还有另一种选择吗? 以下 select 所有查询都有效,但效率低得令人难以置信,并且需要很长时间才能运行大型表:

SELECT * FROM TABLE 

在 BigQuery 中,您可以使用LIMIT ,如下所示:

SELECT t.*
FROM TABLE t
LIMIT 5;

但我提醒你要非常小心。 BigQuery 按表中访问的数收费,而不是按行数收费。 因此,在一个大表中,这样的查询可能非常昂贵。

您还可以 go 进入 BigQuery GUI,导航到表格,然后单击“预览”。 预览功能是免费的。

正如 Gordon Linoff 所提到的,在 BigQuery 中使用 LIMIT 语句在与大表一起使用时可能会非常昂贵。 为了使探索性查询更具成本效益,BigQuery 现在支持TABLESAMPLE 运算符,另请参阅使用表采样 抽样会返回各种记录,同时避免与扫描和处理整个表相关的成本。

查询示例:

SELECT * FROM dataset.my_table TABLESAMPLE SYSTEM (2 PERCENT)

如果您正在查询表视图或TABLESAMPLE SYSTEM由于其他原因不工作,您可以使用例如[...] WHERE RAND() < 0.05来随机选择 5% 的结果。 确保将其放在 WHERE 语句中查询的末尾。

如果您不是表的所有者,这也适用于表视图。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM