Hive 表名的最大字符限制是多少?

What is Hive Tablename maximum character limit?

无法找到关于 Hive Table 最大字符限制的 suitable 规范。

我正在开发涉及配置单元 table 的 ETL 过程,这些过程指定了格式为 _ 的命名约定,并且提供的 table 名称相当大超过 30 字节(pl/sql 的正常限制),直接 google 搜索让我得到列名限制但没有关于 tablename.

的信息

Apache Hive 是开源的。 源代码 Veritas.

以分支 2.1 为例,Javadoc and the Java source for "Metastore API" -- as well as the Thrift message format -- 管理 table 名称作为通用字符串。没有具体限制。

但是 Metastore 服务使用 RDBMS 作为后端,你可以看到标准 MySQL schema 定义了

CREATE TABLE IF NOT EXISTS `TBLS` (
...
 `TBL_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
...

请注意,此 128 个字符的拉丁字母限制是设置 Hive 时的默认值。之后一个简单的 ALTER TABLE 命令就足以在数据库级别更改该限制,而无需重新编译任何内容。

注意配置单元 table 名称在较新的配置单元版本中似乎大于 128 个字符。看到这个 link: http://community.cloudera.com/t5/Batch-SQL-Apache-Hive/Hive-naming-limits/m-p/80155#M2886

  • Table名字是256个字符
  • 列名称为 767 个字符

Information Source