在 Hana 中加载时间戳和时间值属性时出现问题(属性加载失败错误)
Issue in loading Timestamp and Time valued attributes in Hana (Attribute Load Failed Error)
我正在尝试对 HANA
数据库中的列存储 table 执行简单的 select * 操作。我观察到在数据库中的某些 table 上执行 select * 会导致以下错误:
column store error: search table error: [6923] Attribute load failed.SAP DBTech JDBC: [2048]:
某些列存储 table 由于此错误而未加载。
我为分配给我的 cal.sap.com 帐户重新启动了数据库实例,但没有解决问题。然后我暂停了实例并重新激活它,但是它导致了与数据库中其他 tables 相同的问题,这些 selects 在之前正确地得到 selected,即我能够读取他们的数据。
我注意到当 table 在 HANA
中有一个或多个类型为 ‘TIME’ /’TIMESTAMP’
的列时,它通常会以 小时:分钟:秒:毫秒 [=] 存储时间戳值24=]
格式 。这是不一致的行为,因为我可以一直对这些 table 执行 select * 操作,除了 select * 失败且此问题突然出现的少数情况。我删除了 table 内容,然后使用相同的数据再次加载它们,然后 table 加载(selecting 来自 table 的值)工作正常。我尝试从内存中卸载 table 并重新加载它,但它无助于解决问题。
更新:发生此错误后跟踪文件内容:
ste::Exception type AttributeStoreFile error '1090922094766': attribute value is not a date or wrong syntax message additionalInfo $ADDINFO$
exception throw location:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='PickupTime' (228)
exception 6923:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='ActualDelTime' (212)
(6923)' (table=HAULMAX_UAT_SHIPMENT:Shipment (t 1337), passport=)
[4810]{-1}[202/-1] 2017-06-27 10:48:52.458400 e optimize_compres OptimizeCompressionData.cpp(00857) : return value: false, error: exception 6923:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='PickupTime' (228)
exception 6923:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='ActualDelTime' (212)
(6923) (table=HAULMAX_UAT_SHIPMENT:Shipment (t 1337), passport=)
[4810]{-1}[200/16652466] 2017-06-27 10:48:52.459866 e Mergedog Mergedog.cpp(01338) : Optimize compression failed: {IndexName: HAULMAX_UAT_SHIPMENT:Shipment, Trigger: 7, ReclaimDelta: false, DeltaMerge: false, OptimizeCompression: true, MainSize: 1119210}, error: exception 6923:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='PickupTime' (228)
exception 6923:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='ActualDelTime' (212)
(6923)
要了解列加载问题的真正原因,您必须检查索引服务器跟踪文件。
但是,我的猜测是,此时您在尝试加载列时遇到内存不足的情况。
将跟踪文件摘录添加到问题中,出现如下情况:
在 "delta merge" 的 "compression optimisation" 部分为您 table "HAULMAX_UAT_SHIPMENT"."Shipment"
。在此步骤中,table 的 所有 列被加载到内存中以确定每列的最佳压缩技术。
由于列中数据的排序不仅会影响对该列最有效的压缩技术,还会影响所有其他列的排序方式,因此 "compression optimisation" 试图在此解决一个相当复杂的问题。
无论如何,这就是加载所有列而用户端没有任何操作的原因。
stopping/re-starting实例在这里无济于事,因为压缩优化将在下一次增量合并时再次触发。
这里可用的数据太少,无法确定这是 HANA 错误还是例如其中一列("PickupTime"
或 "ActualTime"
)中的数据损坏。
因此,我建议打开一个 SAP 支持事件来调查和解决这个具体问题。
同时,可以通过禁用此特定 table 的自动操作来避免压缩优化:
ALTER TABLE "HAULMAX_UAT_SHIPMENT"."Shipment" WITH PARAMETERS ('AUTO_OPTIMIZE_COMPRESSION' = 'OFF');
此外,最好 运行 对数据库进行一致性检查,看看是否有任何其他受影响的 table。
我正在尝试对 HANA
数据库中的列存储 table 执行简单的 select * 操作。我观察到在数据库中的某些 table 上执行 select * 会导致以下错误:
column store error: search table error: [6923] Attribute load failed.SAP DBTech JDBC: [2048]:
某些列存储 table 由于此错误而未加载。
我为分配给我的 cal.sap.com 帐户重新启动了数据库实例,但没有解决问题。然后我暂停了实例并重新激活它,但是它导致了与数据库中其他 tables 相同的问题,这些 selects 在之前正确地得到 selected,即我能够读取他们的数据。
我注意到当 table 在 HANA
中有一个或多个类型为 ‘TIME’ /’TIMESTAMP’
的列时,它通常会以 小时:分钟:秒:毫秒 [=] 存储时间戳值24=]
格式 。这是不一致的行为,因为我可以一直对这些 table 执行 select * 操作,除了 select * 失败且此问题突然出现的少数情况。我删除了 table 内容,然后使用相同的数据再次加载它们,然后 table 加载(selecting 来自 table 的值)工作正常。我尝试从内存中卸载 table 并重新加载它,但它无助于解决问题。
更新:发生此错误后跟踪文件内容:
ste::Exception type AttributeStoreFile error '1090922094766': attribute value is not a date or wrong syntax message additionalInfo $ADDINFO$
exception throw location:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='PickupTime' (228)
exception 6923:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='ActualDelTime' (212)
(6923)' (table=HAULMAX_UAT_SHIPMENT:Shipment (t 1337), passport=)
[4810]{-1}[202/-1] 2017-06-27 10:48:52.458400 e optimize_compres OptimizeCompressionData.cpp(00857) : return value: false, error: exception 6923:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='PickupTime' (228)
exception 6923:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='ActualDelTime' (212)
(6923) (table=HAULMAX_UAT_SHIPMENT:Shipment (t 1337), passport=)
[4810]{-1}[200/16652466] 2017-06-27 10:48:52.459866 e Mergedog Mergedog.cpp(01338) : Optimize compression failed: {IndexName: HAULMAX_UAT_SHIPMENT:Shipment, Trigger: 7, ReclaimDelta: false, DeltaMerge: false, OptimizeCompression: true, MainSize: 1119210}, error: exception 6923:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='PickupTime' (228)
exception 6923:
CS/OptimizeCompression/Helper.cpp:431
Attribute load failed; $message$=Attribute load failed;index=HAULMAX_UAT_SHIPMENT:Shipmenten,attribute='ActualDelTime' (212)
(6923)
要了解列加载问题的真正原因,您必须检查索引服务器跟踪文件。 但是,我的猜测是,此时您在尝试加载列时遇到内存不足的情况。
将跟踪文件摘录添加到问题中,出现如下情况:
在 "delta merge" 的 "compression optimisation" 部分为您 table
"HAULMAX_UAT_SHIPMENT"."Shipment"
。在此步骤中,table 的 所有 列被加载到内存中以确定每列的最佳压缩技术。 由于列中数据的排序不仅会影响对该列最有效的压缩技术,还会影响所有其他列的排序方式,因此 "compression optimisation" 试图在此解决一个相当复杂的问题。
无论如何,这就是加载所有列而用户端没有任何操作的原因。stopping/re-starting实例在这里无济于事,因为压缩优化将在下一次增量合并时再次触发。
这里可用的数据太少,无法确定这是 HANA 错误还是例如其中一列(
"PickupTime"
或"ActualTime"
)中的数据损坏。
因此,我建议打开一个 SAP 支持事件来调查和解决这个具体问题。
同时,可以通过禁用此特定 table 的自动操作来避免压缩优化:
ALTER TABLE "HAULMAX_UAT_SHIPMENT"."Shipment" WITH PARAMETERS ('AUTO_OPTIMIZE_COMPRESSION' = 'OFF');
此外,最好 运行 对数据库进行一致性检查,看看是否有任何其他受影响的 table。