查看 Hadoop 文件格式的许可证合规性

您可以使用 EXTERNAL_TABLE_DETAILS 系统表来收集有关基于 Hadoop 文件格式的所有表的信息。此信息可以帮助您了解基于 ORC 和 Parquet 的数据使用了许可证数据限额中的多少数据量。

Vertica 在查询时计算此表中的值,因此,为避免出现性能问题,请将您的查询限制为按 table_schema、table_name 或 source_format 进行筛选。在谓词中只能使这三列,但可以使用所有常用的谓词运算符。

=> SELECT * FROM EXTERNAL_TABLE_DETAILS
    WHERE source_format = 'PARQUET' OR source_format = 'ORC';
-[ RECORD 1 ]---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
schema_oid            | 45035996273704978
table_schema          | public
table_oid             | 45035996273760390
table_name            | ORC_demo
source_format         | ORC
total_file_count      | 5
total_file_size_bytes | 789
source_statement      | COPY FROM 'ORC_demo/*' ORC
file_access_error     |
-[ RECORD 2 ]---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
schema_oid            | 45035196277204374
table_schema          | public
table_oid             | 45035996274460352
table_name            | Parquet_demo
source_format         | PARQUET
total_file_count      | 3
total_file_size_bytes | 498
source_statement      | COPY FROM 'Parquet_demo/*' PARQUET
file_access_error     |

在计算外部表的大小时,Vertica 会计算在 COPY FROM 子句所指定的位置找到的所有数据。例如,如果您有一个包含 ORC 和分隔文件的目录,并且您使用“COPY FROM *”(而不是“COPY FROM *.orc”)定义外部表,则此表包括分隔文件的大小。(在查询此外部表时,可能也会遇到错误。)当您查询此表时,Vertica 不会验证您的表定义;它只是使用路径来查找要报告的文件。

还可以使用 AUDIT 函数来查找特定表或架构的大小。在 ORC 或 PARQUET 外部表上使用 AUDIT 函数时,将忽略容错度和置信水平参数。相反,AUDIT 总是返回磁盘上 ORC 或 Parquet 文件的大小。

=> select AUDIT('customers_orc');
   AUDIT
-----------
 619080883
(1 row)