Dav*_*542 2 sql google-bigquery
让我们假设我在BigQuery中有一个1TB数据集,我希望能够在柱状视图中查看数据,限制为1000个结果.以下是我可能会使用的一些查询:
1. SELECT * FROM mytable LIMIT 1000
2. SELECT first_name, last_name FROM mytable LIMIT 1000
3. SELECT last_name, first_name FROM mytable LIMIT 1000
4. SELECT * FROM mytable ORDER BY first_name LIMIT 1000
Run Code Online (Sandbox Code Playgroud)
如果我运行这四个查询,我将被收取〜$ 20($ 5/tb,pretend *= first_name,last_name).这似乎是一个非常高的数量来收集数据 - 有没有另一种方法来查询这些数据,以查看有限的数据视图,如上所述?
这似乎是一个非常高的数量,只需要采样数据 - 还有另一种方法
如果您的数据是动态的,意思是每天更新或以其他方式更新 - 您可以使用 表装饰器
例如
SELECT * FROM mytable@-3600000--1800000 LIMIT 1000
Run Code Online (Sandbox Code Playgroud)
将只查询在过去一小时内插入的数据,从而降低了很多成本!!
另一种选择是使用Day分区表,因此您只能查询特定日期的数据
有没有办法导出数据的子集而不是进行查询?
是.您可以使用Tabledata.list API列出原始表中的逐页数据,并使用您需要的任何采样逻辑插入到新的[samples]表中.注意:这个API是免费的,因为它本身并不使用BigQuery查询引擎,而是从底层存储中读取!所以你可以合理地狂野:o)
当然,您需要在您选择的客户端中实现此功能.