如何计算配置单元中一条记录的大小?

Posted

技术标签:

【中文标题】如何计算配置单元中一条记录的大小?【英文标题】:How to calculate size of the one record in hive? 【发布时间】:2021-05-27 15:20:38 【问题描述】:

我需要了解我的表将使用多少内存。我知道记录的算术平均值。我知道有哪些类型的记录。但我不明白如何计算记录的平均/最大大小。如果我得到每列记录的平均/最大大小,这是否可以计算出来?

【问题讨论】:

【参考方案1】:

获取每列的平均/最大大小

您还可以分析表并获取列的统计信息。

分析表:

ANALYZE TABLE tablename COMPUTE STATISTICS FOR COLUMNS;

使用 DESCRIBE FORMATTED:

desc formatted  tablename  column_name

它将打印这些数字:

data_type, min, max, num_nulls, distinct_count, avg_col_len, max_col_len, num_trues, num_falses

不幸的是,它一次只适用于单个列,您需要重复描述命令来获取所有列的统计信息。

【讨论】:

【参考方案2】:

我可以给你一个蜂巢表中每一行的平均值。可以计算每行的最大/最小大小,但这有点困难。 您可以使用 - 以 KB 为单位的总大小/表格计数来计算平均大小。

show tblproperties   tab ("totalSize")  ; --result is 1117098374
select 1117098374/(1024*count(*)) row_sz_kb from tab ;

要计算单个行的大小,您需要求和-space consumed by data type of each column * length of the data in the column.

这并不容易,因为不同数据类型占用的空间可能很棘手。 但我在我的系统中看到,如果你在一列中存储 100 个,在同一列中存储 999 个,它们所消耗的空间会有所不同。 您可以按照下面的链接查看每种数据类型消耗的字节数,但我会对它们持保留态度并验证自己。 http://hadooptutorial.info/hive-data-types-examples/

【讨论】:

以上是关于如何计算配置单元中一条记录的大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift中一次只选择两个UITableview单元格

如何识别线性布局中一系列表格单元格的视图ID

如何删除配置单元表记录?

使用下一条记录的数据更新 SQL Server 单元格数据

计算机概论

使用命令“插入覆盖目录”使用配置单元导出数据时如何打印输出文件大小