【问题标题】:What is Hive Tablename maximum character limit?什么是 Hive 表名最大字符限制?
【发布时间】:2019-01-06 20:21:39
【问题描述】:

找不到关于 Hive 表的最大字符限制的合适规范。

我正在开发一个涉及 hive 表的 ETL 过程,这些表具有指定的命名约定,格式为 _,并且提供的表名远远大于 30 字节(pl/sql 的正常限制),直接谷歌搜索让我得到列名限制,但没有关于表名的信息。

【问题讨论】:

  • 吹毛求疵:PL/SQL 不限制表名,因为 PL/SQL 只是一种语言。 Oracle RDBMS 将表名限制为 30 个单字节字符(1980 年代遗留下来的)。

标签: hive bigdata hql etl


【解决方案1】:

Apache Hive 是开源的。 在 Veritas 源代码中

以分支 2.1 为例,Javadoc 和“Metastore API”的 Java 源代码——以及Thrift message format——将表名作为通用字符串进行管理。没有具体限制。

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

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

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

【讨论】:

    【解决方案2】:

    注意,在较新的 hive 版本中,hive 表名似乎大于 128 字符。请参阅此链接: http://community.cloudera.com/t5/Batch-SQL-Apache-Hive/Hive-naming-limits/m-p/80155#M2886

    【讨论】:

      【解决方案3】:
      • 表名是 256 个字符
      • 列名称为 767 个字符

      Information Source

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-07
        • 1970-01-01
        • 2014-02-27
        • 2012-06-13
        • 1970-01-01
        • 1970-01-01
        • 2015-10-25
        • 1970-01-01
        相关资源
        最近更新 更多