Delta是否与python合并? mergeDeltaTable.py

2020-09-16 03:45发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

我们有许多从未合并的小表,这些小表主要位于Delta商店中。 根据SAP的支持,如果将它们强制合并,它将改善存储和性能。

可以使用HANA Studio逐一完成。

SAP还提供了python脚本 mergeDeltaTable.py ,可通过一个命令自动强制合并多个表 。 不幸的是,它以语法错误结尾。

还有其他人在使用它,并且可以建议我们做错了什么吗?

最诚挚的问候

亨宁

adm @ 。 :/usr/sap/ /HDB /exe/python_support> python mergeDeltaTable.py --user = --password = --address =SAP 。 .de --port = [139741556451136,0.001] >>开始mergeDeltaTable(在2018年7月13日星期五14:04:24)[139741556451136,0.001]参数:(' ',)[139741556451136,0.001]键:{'address':'sap 。 .de','password':' ', '港口': ' ','用户':' '} [139741556451136,0.191]信息:配置文件/hana/shared/ /exe/linuxx86_64/HDB_1.00.122.04.1478575636_3308086/testscripts/config/testConfig.ini找不到,回退到autoconfigTraceback(最近一次通话):[139741556451136,0.191]文件"/img/hana/shared/ /exe/linuxx86_64/HDB_1.00.122.04.14.1575575636_3308086/python_support/testbase.py",运行中的第720行[139741556451136,0.192] ret = self.runHandler(* rest,** self.extractInheritedArgs(keys))[139741556451136, 0.192]文件" 在runHandler [139741556451136,0.192]中的 mergeDeltaTable.py ",行35 [139741556451136,0.192] self.openConnection(user,password ,地址,端口,自动提交,跟踪级别,远程模式)[139741556451136,0.192]文件"/img/hana/shared/ /exe/linuxx86_64/HDB_1.00.122.04.14.1575575636_3308086/python_support/testbase.py",行1772,位于openConnection [139741556451136,0.192] self.connection = dbapi.connect(地址,端口,用户,密码,自动提交)[139741556451136, 0.192]档案"/img/hana/shared/ /exe/linuxx86_64/HDB_1.00.122.04.1478575636_3308086/python_support/hdbcli/dbapi.py",第82行,位于__init__ [139741556451136,0.192] self .__ connection = pyhdbcli.connect("%s:%d"%(地址, 端口)," HDB",用户,密码,自我。__properties)[139741556451136,0.192] TypeError:%d格式:必须为数字,而不是str 。[139741556451136,0.192] <<在0.191秒后 adm @ 结束mergeDeltaTable,rc = 1(RC_GENERAL_EXCEPTION)。< 域>:/usr/sap//HDB /exe/python_support>其中python/usr/sap//HDB /exe/Python/bin/python adm @ < 主机名>。<域>:/usr/sap//HDB /exe/python_support> python Python 2.7.10(sap:7,Dec 16 2015,14:23:27)[GCC 4.8.3 在Linux2上键入" help"," copyright"," credits"或" license",以获取更多信息。 >>> exit() adm @ <主机名>。<域>:/usr/sap//HDB /exe/python_support>

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

我们有许多从未合并的小表,这些小表主要位于Delta商店中。 根据SAP的支持,如果将它们强制合并,它将改善存储和性能。

可以使用HANA Studio逐一完成。

SAP还提供了python脚本 mergeDeltaTable.py ,可通过一个命令自动强制合并多个表 。 不幸的是,它以语法错误结尾。

还有其他人在使用它,并且可以建议我们做错了什么吗?

最诚挚的问候

亨宁

adm @ 。 :/usr/sap/ /HDB /exe/python_support> python mergeDeltaTable.py --user = --password = --address =SAP 。 .de --port = [139741556451136,0.001] >>开始mergeDeltaTable(在2018年7月13日星期五14:04:24)[139741556451136,0.001]参数:(' ',)[139741556451136,0.001]键:{'address':'sap 。 .de','password':' ', '港口': ' ','用户':' '} [139741556451136,0.191]信息:配置文件/hana/shared/ /exe/linuxx86_64/HDB_1.00.122.04.1478575636_3308086/testscripts/config/testConfig.ini找不到,回退到autoconfigTraceback(最近一次通话):[139741556451136,0.191]文件"/img/hana/shared/ /exe/linuxx86_64/HDB_1.00.122.04.14.1575575636_3308086/python_support/testbase.py",运行中的第720行[139741556451136,0.192] ret = self.runHandler(* rest,** self.extractInheritedArgs(keys))[139741556451136, 0.192]文件" 在runHandler [139741556451136,0.192]中的 mergeDeltaTable.py ",行35 [139741556451136,0.192] self.openConnection(user,password ,地址,端口,自动提交,跟踪级别,远程模式)[139741556451136,0.192]文件"/img/hana/shared/ /exe/linuxx86_64/HDB_1.00.122.04.14.1575575636_3308086/python_support/testbase.py",行1772,位于openConnection [139741556451136,0.192] self.connection = dbapi.connect(地址,端口,用户,密码,自动提交)[139741556451136, 0.192]档案"/img/hana/shared/ /exe/linuxx86_64/HDB_1.00.122.04.1478575636_3308086/python_support/hdbcli/dbapi.py",第82行,位于__init__ [139741556451136,0.192] self .__ connection = pyhdbcli.connect("%s:%d"%(地址, 端口)," HDB",用户,密码,自我。__properties)[139741556451136,0.192] TypeError:%d格式:必须为数字,而不是str 。[139741556451136,0.192] <<在0.191秒后 adm @ 结束mergeDeltaTable,rc = 1(RC_GENERAL_EXCEPTION)。< 域>:/usr/sap//HDB /exe/python_support>其中python/usr/sap//HDB /exe/Python/bin/python adm @ < 主机名>。<域>:/usr/sap//HDB /exe/python_support> python Python 2.7.10(sap:7,Dec 16 2015,14:23:27)[GCC 4.8.3 在Linux2上键入" help"," copyright"," credits"或" license",以获取更多信息。 >>> exit() adm @ <主机名>。<域>:/usr/sap//HDB /exe/python_support>

付费偷看设置
发送
3条回答
宇峰Kouji
1楼-- · 2020-09-16 04:11

看起来您提供主机名和端口的方式不正确。 检查--port参数确实只是一个数字(没有非数字字符)。

悻福寶寶
2楼-- · 2020-09-16 03:53

我已经使用了脚本(实际上是 mergeAllDeltaTables.py )很久以前(而且以后从未如此),我现在又尝试了一下,只能使其与SYSTEM用户一起使用:

 python mergeAllDeltaTables.py --user = SYSTEM --password = <密码> --address = localhost --nameSpace =  

由于它不是官方功能的一部分,因此我不确定是否会通过支持事件来支持它。 我还是建议打开一个(如果尚未完成)。

除此脚本外,为尚未合并的所有表生成MERGE DELTA OF 命令相对容易:

选择
 '" ||模式名称||'"的合并增量。" ||表名称||'"强制重建;'
 来自m_cs_tables
 其中last_merge_time为null并已加载!='NO'; 

这将为从未执行任何合并操作的所有当前加载的表生成命令。

对于其他条件,例如 增量存储中记录数量过多的表或当前未加载的表,则需要更改选择条件。

宇峰
3楼-- · 2020-09-16 04:00

尊敬的Lars,

您是否在系统上尝试过脚本?

我试图通过将第24行添加为" port = int(port)"来修复脚本,以强制转换为整数。 现在我得到了另一个错误。

我的计划不是调试和修复脚本,而是了解它是否对交付的任何人都有效。

最诚挚的问候

亨宁

---

adm @ 。 :/usr/sap/ /home> python mergeDeltaTable_test.py --user = --password = --address = --port =

[140209680496448,0.001] >>开始mergeDeltaTable_test(于2018年7月16日星期一08:02:57)

[140209680496448,0.001]参数:('',)

[140209680496448,0.001]键:{'地址':'<主机别名>','密码':'<密码>','端口':'<端口>','用户':'<管理员 -User>'}

回溯(最近通话最近一次):

runHandler的文件" mergeDeltaTable_test.py "

self.executeSQLStatement('MERGE DELTA OF"'+ index [0] +'"。"'+ index [1] +'"')

文件"/img/usr/sap/ /HDB01/exe/python_support/ testbase.py ",行1785,在executeSQLStatement中

ret = cursor.execute(statement)

文件"/img/usr/sap/ /HDB01/exe/python_support/hdbcli/ 在执行中 dbapi.py ",行351

ret = self .__ execute(operation)

文件"/img/usr/sap/ /HDB01/exe/python_support/hdbcli/ __execute中的 dbapi.py ",第245行

ret = self .__ cursor.execute(操作,参数=参数,iscall = iscall,scrollable = self._scrollable)

错误:(259,"无效的表名::第1行第25行(在pos 24处")))

[140209680496448,0.127]信息:找不到配置文件/usr/sap//HDB01/exe/testscripts/config/testConfig.ini,在处理表SYSTEM。

时会自动配置

[140209680496448,0.135] <<在0.134秒后结束mergeDeltaTable_test,rc = 0(RC_TEST_OK)

adm @ <主机名>。<域>:/usr/sap//home>

一周热门 更多>