如何解决为Azure Databricks设置Azure SQL外部元存储—无效的列名称“ IS_REWRITE_ENABLED”
我正在尝试为Azure Databricks建立一个外部Hive元存储。 Metastore使用Azure SQL,Hive版本是1.2.1(包括在Azure HdInsight 3.6中)。
我已遵循Azure文档中“ External Apache Hive metastore”页面上的设置说明。
我可以看到元存储中的所有数据库和表,但是如果查看特定的表,则会得到以下内容。
Caused by: javax.jdo.JDOException: Exception thrown when executing query : SELECT DISTINCT 'org.apache.hadoop.hive.metastore.model.MTable' AS NUCLEUS_TYPE,A0.CREATE_TIME,A0.LAST_ACCESS_TIME,A0.OWNER,A0.RETENTION,A0.IS_REWRITE_ENABLED,A0.TBL_NAME,A0.TBL_TYPE,A0.TBL_ID FROM TBLS A0 LEFT OUTER JOIN DBS B0 ON A0.DB_ID = B0.DB_ID WHERE A0.TBL_NAME = ? AND B0."NAME" = ?
NestedThrowables:
com.microsoft.sqlserver.jdbc.SQLServerException: Invalid column name 'IS_REWRITE_ENABLED'.
我原本希望看到与基础存储有关的错误,但这似乎是元存储的问题。
有人知道怎么了吗?
解决方法
错误消息似乎表明在别名为 A0 的表 TBLS 中不存在IS_REWRITE_ENABLED列。
查看derby db的配置单元模式的脚本,它可以帮助指导您查看相关列是否存在。
如果您具有对Azure SQL数据库的管理员访问权限,则可以更改表并添加列:
ALTER TABLE TBLS
ADD IS_REWRITE_ENABLED char(1) NOT NULL DEFAULT 'N';
我不认为这是实际的解决方法,但确实可以解决该错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。