如何解决Hive Metastore 服务将外部表创建为托管表
我使用带有 lib hive-metastore-client 的 Hive Metastore 独立服务器(因此我在没有 HiverServer 的 Thrift 服务器中执行命令)。
当我执行命令以创建一个 tableType 等于 EXTERNAL_TABLE
的表时,服务器错误地将表创建为 MANAGED_TABLE
(issue)。
我发现我们可以通过执行更改表设置参数 EXTERNAL=TRUE
或使用 thrift 客户端在表对象参数中添加 {"EXTERNAL": "TRUE"} 来解决此问题。
示例:
table = Table(
table_name="orders",db_name="store",owner="owner name",storage_descriptor=storage_descriptor,partition_keys=partition_keys,tableType = "EXTERNAL_TABLE",# this should be enough
parameters = {"EXTERNAL": "TRUE"} # but we need to also set this parameter
)
hive_metastore_client.create_external_table(table)
我想知道是否有人知道这个问题的根本原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。