点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我在datahub中有一个用例,需要将数据发布到HANA中。 我正在使用HANA Client运算符。 Hana实例在AWS上运行,并且我可以通过创建连接对象(可以从元数据浏览器中查看我的架构中的表)来连接到HANA。
从python运算符的输出中,我得到了一个字符串,它是来自其他系统的2个表的并集数据。 我正在将字符串转换为消息。 然后,将此消息输出发送到hana客户端操作员的data(message)端口。 而且,在hana客户操作员配置中,我已经定义了表名,该表名用于加载数据。
运行此图时,出现一条错误消息-" com.sap.hana.client2 process = saphanaclient1:无法准备批量插入语句:SQL错误257-sql语法错误:"-"附近的语法不正确: 第1行col 59"
尝试将消息输出提供给hana客户端操作员的sql(message)端口,但出现相同的错误。
如果您可以在此提供一些有关我所缺少的内容的指导,那将非常好。 下面是错误屏幕截图-
干杯
森
capture.jpg (57.9 kB)
大家好,
最后我明白了。 :)
因此,在我的HANA表中,列名包含"-",这就是问题所在。 我创建了另一个表,从所有列中删除了所有"-",它确实起作用.. !!
感谢安德烈亚斯的帮助.. !!
干杯
森
好的,森! 很高兴知道是什么原因导致了
嗨,森,
很难说。 我想知道图形是否达到了在HANA客户端收到消息的时间点,因为错误显示"错误构建图形"。 所以我相信,它甚至可能更早崩溃。
我建议执行以下步骤:
a)将跟踪级别提高到info或debug
b)再试一次。 查看pod日志,看看这是否有助于缩小根本原因
(也可以在此处上传日志)
干杯
Thorsten
嗨Prodyot, 我通过将数据帧转换为csv字符串将数据从Python运算符加载到HANA。 如果我没记错的话,该字符串将直接进入HANA客户端的数据端口,而无需进行进一步的转换
output = df_data.to_csv(sep =";",index = False)
api.send("输出",输出)
然后可以按以下方式配置HANA客户端
输入格式:CSV
CSV字段分隔符:;
CSV标头:忽略
当前您的管道中可能存在不匹配,即,将标头传递给HANA客户端而不忽略它,可能会导致这种错误。
< br>问候,安德烈亚斯(Andreas)
感谢您的回应,安德烈亚斯(Andreas)和索尔斯滕(Thorsten)。
我尝试了相同的方法。 但是得到这个错误为-
错误构建图:进程初始化期间出错:component = com.sap.hana.client2进程= saphanaclient1:无法准备批量插入语句:SQL错误257-sql语法错误:"-"附近的语法错误:第1行 col 64(在pos 64处)
而且,hana客户端本身抛出了错误。 我尝试了一个简单的图形,正在从hana中读取表,并希望将相同的内容推入另一个表中。
使用hana表使用者运算符来读取hana表。 然后使用flowagent csv生产者运算符将其转换为字符串。 将此字符串输出放入sap hana客户端运算符。 这是screesshots-
因此,似乎必须为此批量插入语句错误使用某些内容。 不确定是否相同。 请提出建议。
干杯
Sen
你好,森, 可能发生的情况是,您传递给HANA客户端的CSV在第一行中包含列名称/标题。 如果HANA客户端尝试将列名称写入表中,则可能会出现此类错误。 默认情况下,HANA客户端假定CSV中的第一行已经是需要写入表中的数据。 因此,如果CSV包含列标题,请将HANA客户端的" CSV标题"配置设置为"忽略"。
CSV标题设置的不同选项在此处https://help.sap.com/viewer/4e46a41a609447418edade2ddc8d2442/e86e9f3e9e3e0f3e0e3e
非常感谢Andreas的回复。
下面是屏幕截图,显示了数据是如何从flowagent csv生产者运算符的outContent(string)端口获得的。 我正在接受此输入并连接到hana客户操作员的data(message)端口。 然后,按照您所说的那样检查所有属性,例如忽略标题,选择表等。一件事是init语句和prepared语句属性为空。 我需要在那放东西吗?
从错误语句(无法准备批量插入语句)中,看起来hana客户端操作员无法接受此多行数据,并且我应该以某种方式将该数据作为每行数据的单独插入语句发送?
感谢您的帮助。
一周热门 更多>