Проблема с загрузкой атрибутов с отметкой времени и временем в Hana (ошибка при загрузке атрибута)

Я пытаюсь выполнить простую операцию select * для таблиц хранилища столбцов в базе данных HANA. Я заметил, что выбор * для некоторых таблиц в базе данных приводит к следующей ошибке:

column store error: search table error: [6923] Attribute load failed.SAP DBTech JDBC: [2048]:

Некоторые таблицы хранилища столбцов не загружаются из-за этой ошибки.

Я перезапустил экземпляр базы данных для выделенной мне учетной записи cal.sap.com, но это не решило проблему. Затем я приостановил экземпляр и повторно активировал его. Однако это привело к той же проблеме с другими таблицами в базе данных, которые раньше правильно выбирались, т.е. я смог прочитать их данные. Я заметил, что это происходит, когда таблица имеет один или несколько столбцов типа ‘TIME’ /’TIMESTAMP’ в HANA, которые обычно хранят значения меток времени в формате часы:минуты:секунды:миллисекунды. Это непоследовательное поведение, так как я могу все время выполнять операцию select * для этих таблиц, за исключением нескольких случаев, когда select * терпит неудачу и возникает эта проблема. Я удаляю содержимое таблицы, а затем снова загружаю его с теми же данными, а затем загрузка таблицы (выбор значений из таблицы) работает нормально. Пробовал выгружать таблицу из памяти и снова загружать, но это не помогает решить проблему.

ОБНОВЛЕНИЕ: Содержимое файла трассировки после возникновения этой ошибки:

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)

person Shubha Lakshmi    schedule 21.06.2017    source источник


Ответы (1)


Чтобы узнать реальную причину проблемы с загрузкой столбца, вам нужно будет проверить файл трассировки indexserver. Однако я предполагаю, что в этот момент вы столкнулись с ситуацией нехватки памяти при попытке загрузить столбец.


С выдержкой из файла трассировки, добавленной к вопросу, ситуация выглядит следующим образом:

  • во время части «оптимизации сжатия» «дельта-слияния» для вашей таблицы "HAULMAX_UAT_SHIPMENT"."Shipment". На этом этапе все столбцы таблицы загружаются в память, чтобы определить оптимальный метод сжатия для каждого столбца. Поскольку сортировка данных в столбце влияет не только на то, какой метод сжатия наиболее эффективен для этого столбца, но и на то, как должны быть отсортированы все остальные столбцы, это довольно сложная проблема, которую здесь пытается решить «оптимизация сжатия».
    Во всяком случае, это причина того, что все столбцы загружаются без каких-либо действий со стороны пользователя.

  • остановка/перезапуск экземпляра здесь не поможет, так как оптимизация сжатия будет запущена снова при следующем дельта-слиянии.

  • здесь слишком мало данных, чтобы определить, является ли это ошибкой HANA или, например. повреждение данных в одном из столбцов ("PickupTime" или "ActualTime").

Поэтому я рекомендую открыть инцидент поддержки SAP, чтобы исследовать и решить эту конкретную проблему.

Между тем оптимизации сжатия можно избежать, отключив автоматизм для этой конкретной таблицы:

 ALTER TABLE "HAULMAX_UAT_SHIPMENT"."Shipment" WITH PARAMETERS ('AUTO_OPTIMIZE_COMPRESSION' = 'OFF');

Кроме того, было бы неплохо запустить проверку согласованности в базе данных, чтобы увидеть, есть ли какие-либо другие затронутые таблицы.

person Lars Br.    schedule 22.06.2017
comment
Похоже, это не проблема памяти из-за предварительного расследования следов. Более того, в рассматриваемой таблице едва ли 1-2 строки. Проблема связана с загрузкой атрибутов времени/временной метки. Их загрузка приводит к ошибке Attribute Load Failed для этого конкретного столбца, причиной которой являются недопустимые значения даты/времени, даже если значения действительны или в них нет данных. - person Shubha Lakshmi; 22.06.2017
comment
Хорошо, тогда я предлагаю провести дополнительное расследование - из имеющейся информации сделать вывод не о чем. - person Lars Br.; 22.06.2017
comment
похоже, что сжатие/распаковка значений даты и времени для оптимизации хранилища столбцов не работает, как видно из трассировок. Это ошибка в Хане? - person Shubha Lakshmi; 27.06.2017
comment
Спасибо.. Возникнет инцидент с SAP.. Кроме того, я не слишком уверен в повреждении данных, поскольку эта проблема возникала несколько раз без каких-либо данных в указанной таблице.. Поскольку это предоставленная нам пробная лицензия экземпляра Hana (это HANA1SPS12). ), который также используется несколькими тестовыми пользователями , поэтому возможно, что использование надлежащего экземпляра БД последней рабочей версии, выделенного только нам, может решить эту проблему. - person Shubha Lakshmi; 28.06.2017
comment
Сделал проверку на соответствие каталогу, которая ничего не обнаружила. Выполнил проверку согласованности в указанной таблице с помощью следующей команды: CALL CHECK_TABLE_CONSISTENCY('CHECK','HAULMAX_UAT_SHIPMENT','"Shipment"') Которая показала обсуждаемые выше столбцы с кодом ошибки 5199 и сообщением об ошибке «Не удается проверить основной словарь». - person Shubha Lakshmi; 28.06.2017
comment
Проверка непротиворечивости каталога не должна сообщать об ошибках для этой проблемы — она проверяет записи в каталоге базы данных, в то время как текущая ошибка, вероятно, связана с фактической физической структурой хранения, лежащей в основе таблицы. Поскольку согласованность таблиц сообщила о проблеме со словарями столбцов, я хотел бы получить последнюю безошибочную резервную копию и восстановить ее... - person Lars Br.; 28.06.2017
comment
Хотя программные ошибки могут привести к согласованности, они чаще вызваны другими факторами (переключение битов, ошибки контроллера, неисправные элементы ОЗУ, диски и т. д.). Переход на автономный экземпляр или более новую версию HANA, скорее всего, не решит проблему. Пробный экземпляр, который вы используете, подходит в этом отношении так же, как и любой другой экземпляр HANA. - person Lars Br.; 28.06.2017