审核数据库大小

您可以一直使用 Vertica 软件,直到列式数据达到许可证协议允许的最大原始数据大小。Vertica 会定期对列式数据大小运行审核,以确认您的数据库是否符合此协议。还可以使用两个函数运行自己的数据库大小审核:

  • AUDIT:估算数据库、架构或表的原始数据大小。

  • AUDIT_FLEX:估算数据库、架构或投影中的一个或多个 Flex 表的大小。

以下两个示例审核数据库和一个架构:

=> SELECT AUDIT('', 'database');
  AUDIT
----------
 76376696
(1 row)
=> SELECT AUDIT('online_sales', 'schema');
  AUDIT
----------
 35716504
(1 row)

原始数据大小

AUDITAUDIT_FLEX 使用统计抽样来估算表中所存储数据(即数据库中存储的未压缩数据)的原始数据大小。对于大部分数据类型,Vertica 在评估原始数据大小时,会假定数据是以文本格式从数据库中导出来的,而不是以压缩数据形式。有关详细信息,请参阅评估数据类型占用空间

通过使用统计抽样,审核功能会将它对数据库性能的影响降至最低。准确度和性能影响之间只能在一个很小的误差范围内进行权衡。数据库大小报告中包含误差范围,所以您可以对估算的准确性进行评估。

还会审核基于 ORC 和 Parquet 的外部表中的数据,无论它们是存储在本地 Vertica 群集的文件系统中,还是存储在远程 S3 或 Hadoop 群集中。AUDIT 始终使用底层数据文件的文件大小作为表中的数据量。例如,假定您有一个基于存储在 HDFS 中的 1GB ORC 文件的外部表,对该表进行审核后,报告该表的大小为 1GB。

未经审核的数据

出现在多个投影中的表数据只计数一次。审核也不包括以下数据:

  • 临时表数据。

  • SET USING 列中的数据。

  • 可通过外部表定义访问的非列式数据。ORC 和 Parquet 等列式格式的数据计入总数。

  • 已删除但尚未清除的数据。

  • 存储在系统和工作表中的数据,例如,监控表、 数据收集器表以及 Database Designer 表。

  • 分隔符。

评估数据类型占用空间

Vertica 按如下方式评估不同数据类型的占用空间:

  • 使用 UTF-8 编码的字符串和二进制类型(CHAR、VARCHAR、BINARY、VARBINARY)按实际字节数进行计数。

  • 数值数据类型按它们打印时的内容进行求值。每个位数计作一个字节,小数点、符号或科学记数法也是如此。例如,-123.456 按八个字节(六个数字加一个小数点和一个减号)计数。

  • 日期/时间数据类型按它们转换为文本后的内容(包括任何连字符、空格和冒号)进行求值。例如,vsql 将时间戳值 2011-07-04 12:00:00 打印为 19 个字符或 19 个字节。

  • 复杂类型的求值结果等于其各个组成部分的大小之和。数组计数为所有元素的总大小,ROW 计数为所有字段的总大小。

控制审核准确度

AUDIT 可以指定审核的容错度和置信度,默认情况下分别设置为 5% 和 99%。例如,可以通过将容错度和置信水平分别设置为 0% 和 100% 来获得高水平的审核准确度。与使用统计抽样估算原始数据大小不同,Vertica 将所有经过审核的数据转储为原始格式计算其大小。

以下示例以 25% 的容错度审核数据库:

=> SELECT AUDIT('', 25);
  AUDIT
----------
 75797126
(1 row)

以下示例以 25% 的容错度和 90% 的置信水平审核数据库:

=> SELECT AUDIT('',25,90);
  AUDIT
----------
 76402672
(1 row)