如何在sql中生成超大数组

如何在sql中生成超大数组,sql,google-bigquery,Sql,Google Bigquery,尝试使用以下命令生成大型数组时 GENERATE_ARRAY(1467331200, 1530403201, 15) 我得到以下错误: google.api_core.exceptions.BadRequest: 400 GENERATE_ARRAY(1467331200, 1530403201, 15) produced too many elements 是否有方法生成所述大小的数组?结果元素的数量限制为1048575 Test: bq query --dry_run --nouse_l

尝试使用以下命令生成大型数组时

GENERATE_ARRAY(1467331200, 1530403201, 15)
我得到以下错误:

google.api_core.exceptions.BadRequest: 400 GENERATE_ARRAY(1467331200, 1530403201, 15) produced too many elements

是否有方法生成所述大小的数组?

结果元素的数量限制为1048575

Test: bq query --dry_run --nouse_legacy_sq "[replace query below]"
Query: select GENERATE_ARRAY(1, 1048575) as test_array;
Output: Query successfully validated. Assuming the tables are not modified, running this query will process 0 bytes of data.

Query: select GENERATE_ARRAY(1, 1048576) as test_arr;
Output: GENERATE_ARRAY(1, 1048576, 1) produced too many elements
在中没有提到此限制,因此我建议您要么在页面上发送文档反馈,要么提交功能请求以增加限制,或者在可能的情况下删除限制

可能的解决方法是对阵列进行加密。
示例:
SELECT ARRAY\u CONCAT(GENERATE\u ARRAY(11048575)、GENERATE\u ARRAY(11048575))…

结果元素的数量限制为1048575

Test: bq query --dry_run --nouse_legacy_sq "[replace query below]"
Query: select GENERATE_ARRAY(1, 1048575) as test_array;
Output: Query successfully validated. Assuming the tables are not modified, running this query will process 0 bytes of data.

Query: select GENERATE_ARRAY(1, 1048576) as test_arr;
Output: GENERATE_ARRAY(1, 1048576, 1) produced too many elements
在中没有提到此限制,因此我建议您要么在页面上发送文档反馈,要么提交功能请求以增加限制,或者在可能的情况下删除限制

可能的解决方法是对阵列进行加密。
示例:
SELECT ARRAY\u CONCAT(GENERATE\u ARRAY(11048575)、GENERATE\u ARRAY(11048575))…

作为一个提示,阵列的大小有100MB的限制。对
GENERATE_ARRAY
生成的元素数量的限制主要是为了防止意外写入CPU占用量很大的查询。作为提示,数组的大小有100MB的限制。对
GENERATE_ARRAY
生成的元素数量的限制主要是为了防止意外写入CPU占用很大的查询。