0

我们面临着 Imapla 列命名约定的问题,这对我们来说似乎不清楚。

CDH imapala 文档 ( http://www.cloudera.com/documentation/archive/impala/2-x/2-0-x/topics/impala_identifiers.html ) 第三个要点说:标识符必须以字母字符开头. 其余部分可以包含字母数字字符和下划线的任意组合。用反引号引用标识符对名称中允许的字符没有影响。

现在,由于与上游 SAP 系统的依赖关系,我们不得不将一个以 (0) 零开头的列名命名为数字。在从表 impala 定义和提取记录时,不会显示任何语义错误。通过 SDA(智能数据访问)将 Imapala 与 SAP HANA 连接时,该特定列的提取失败,该列以前导零 (0) 开头,其余以字母开头的列则正常。错误显示为“... ^ Encountered: DECIMAL LITERAL”

我要分。

  1. 如果文档说,标识符不能以字母表以外的任何内容开头,那么 imapla 查询如何运行没有任何问题。
  2. 为什么只有在从 SAP HANA 中提取错误时才会引发错误。

任何见解都将是非常可观的。

4

1 回答 1

0

好的,我只能在这里说一下 SAP HANA 方面,所以你必须以某种方式检查 Impala 方面。通过 SDA 访问外部表时收到的错误消息通常来自第 3 方客户端软件,在本例中是用于连接 Impala 的 ODBC 驱动程序。因此,SAP HANA 尝试通过 Impala ODBC 驱动程序访问表,该驱动程序返回错误消息。

假设在这种情况下,Impala 的对象名称检查是在客户端中实现的。不确定您在 Impala 中用于运行查询的方式是否也使用驱动程序。

但即使 Impala 对表命名有限制,我也不明白为什么这会迫使您以这种方式命名 SAP HANA 中的表。如果上游数据访问需要前导 0,只需在表格顶部创建一个视图,您就可以开始了。

于 2016-02-05T11:27:10.803 回答