【问题标题】:Simple way to select a few rows of data from table in BigQuery?从 BigQuery 的表中选择几行数据的简单方法?
【发布时间】:2021-05-31 12:21:57
【问题描述】:

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

SELECT TOP 5 * FROM TABLE 

这是我在尝试学习新表格和获取有关数据的更多信息时养成的习惯。从表中选择几行是否有另一种选择?以下选择所有查询有效,但效率极低,并且对于大型表需要很长时间才能运行:

SELECT * FROM TABLE 

【问题讨论】:

标签: sql google-bigquery


【解决方案1】:

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

SELECT t.*
FROM TABLE t
LIMIT 5;

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

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

【讨论】:

    【解决方案2】:

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

    查询示例:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多