【发布时间】:2016-11-19 02:50:29
【问题描述】:
我从这个question 知道可以进行随机抽样RAND。
SELECT * FROM [table] WHERE RAND() < percentage
但这需要全表扫描并产生同等成本。我想知道是否有更有效的方法?
我正在尝试使用tabledata.list API,但是当index 非常大(即> 10000000)时得到java.net.SocketTimeoutException: Read timed out。这个操作不是 O(1) 吗?
bigquery
.tabledata()
.list(tableRef.getProjectId, tableRef.getDatasetId, tableRef.getTableId)
.setStartIndex(index)
.setMaxResults(1L)
.execute()
【问题讨论】:
标签: google-bigquery