Google bigquery BigQuery:获取表中每一行的大小

Google bigquery BigQuery:获取表中每一行的大小,google-bigquery,Google Bigquery,在BigQuery中,对于查询,我得到以下错误消息: 无法查询大于100MB限制的行 我理解这一限制,但是,我想对此进行更多的调试,并搜索大于100MB的行 是否有人知道BigQuery中是否存在一个函数,或者是否有其他方法来获取表中每一行的大小?我认为没有现成的方法,例如BQ解决方案中的函数 我经常做的和帮助的是使用数据集的_TABLES __)元数据表,以便估计表的每行平均大小 因此,我的查询如下所示 选择 表1-1, 大小\字节/行\计数/1000000作为行\大小-平均行大小(MB) 从

在BigQuery中,对于查询,我得到以下错误消息:

无法查询大于100MB限制的行

我理解这一限制,但是,我想对此进行更多的调试,并搜索大于100MB的行


是否有人知道BigQuery中是否存在一个函数,或者是否有其他方法来获取表中每一行的大小?

我认为没有现成的方法,例如BQ解决方案中的函数

我经常做的和帮助的是使用数据集的_TABLES __)元数据表,以便估计表的每行平均大小

因此,我的查询如下所示

选择 表1-1, 大小\字节/行\计数/1000000作为行\大小-平均行大小(MB) 从“my_数据集.my_表.u表”__`
我不认为在BQ解决方案中有现成的功能

我经常做的和帮助的是使用数据集的_TABLES __)元数据表,以便估计表的每行平均大小

因此,我的查询如下所示

选择 表1-1, 大小\字节/行\计数/1000000作为行\大小-平均行大小(MB) 从“my_数据集.my_表.u表”__`
行的大小由相应值的数据类型定义。您可以使用函数添加静态列(如数值)和动态大小数据(如字符串)的大小

在列的子集上执行此操作我假设当行由于连接而变大时会出现错误,然后您可以找到异常大的行并相应地处理它们

数据类型大小

任何数据类型的空值都计算为0字节

重复列存储为数组,并根据值的数量计算大小。例如,重复数组并包含4个条目的整数列INT64计算为32字节4个条目x 8字节

资料来源:

类似问题:

范例

当您有2个字符串列、1个数字列和1个日期时间列时的示例:

SELECT 2 + BYTE_LENGTH(string_column1) 
       + 2 + BYTE_LENGTH(string_column2) 
       + 16 -- NUMERIC -> 16 Bytes
       + 8 -- DATETIME -> 8 Bytes
       AS ROW_SIZE
       FROM `project-name.dataset-name.table-name`

来源:

行的大小由相应值的数据类型定义。您可以使用函数添加静态列(如数值)和动态大小数据(如字符串)的大小

在列的子集上执行此操作我假设当行由于连接而变大时会出现错误,然后您可以找到异常大的行并相应地处理它们

数据类型大小

任何数据类型的空值都计算为0字节

重复列存储为数组,并根据值的数量计算大小。例如,重复数组并包含4个条目的整数列INT64计算为32字节4个条目x 8字节

资料来源:

类似问题:

范例

当您有2个字符串列、1个数字列和1个日期时间列时的示例:

SELECT 2 + BYTE_LENGTH(string_column1) 
       + 2 + BYTE_LENGTH(string_column2) 
       + 16 -- NUMERIC -> 16 Bytes
       + 8 -- DATETIME -> 8 Bytes
       AS ROW_SIZE
       FROM `project-name.dataset-name.table-name`

来源:

谢谢您的输入。然而,平均行大小并不是我在这里想要的,因为我对行大小方面的异常值感兴趣。谢谢您的输入。然而,平均行大小并不是我在这里想要的,因为我对行大小方面的异常值感兴趣。太好了,非常感谢!实际上,我使用的ARRAY_AGG函数将许多行合并在一起,超过了行限制。@Chris Hi,我只想再次检查我的计算是否正确。我正在Python cloud.google.com/bigquery/docs/samples/中使用流式插入…。如果我插入这个json对象:data={'event':'signup','email':'abc@email.com'}. 要计算大小,我是否应该将json对象字符串化并将字符串长度乘以2个字节,如下所示:lenjson.dumpsdata*2字节=总大小?太好了,非常感谢!实际上,我使用的ARRAY_AGG函数将许多行合并在一起,超过了行限制。@Chris Hi,我只想再次检查我的计算是否正确。我正在Python cloud.google.com/bigquery/docs/samples/中使用流式插入…。如果我插入这个json对象:data={'event':'signup','email':'abc@email.com'}. 要计算大小,我是否应该字符串化json对象并将字符串长度乘以2个字节,如下所示:lenjson.dumpsdata*2字节=总大小?