У меня есть лямбда, которая принимает данные json из балансировщика нагрузки, а затем записывает каждую отдельную запись json с PUT в поток кинезиса.Поток кинезиса является источником пожарного рукава кинесиса, который помещает GZIP в ведро S3 с префиксом «raw».Пример записи JSON:
{"level":"INFO","hash":"3c351293-11e3-4e32-baa2-
bf810ed44466","source":"FE","hat_name":"2249444f-c3f4-4e3d-8572-
c38c3dab4848","event_type":"MELT_DOWN","payload":{"checking": "true"}}
Я создал рентгеновскую трассировку в производящей лямбде, поэтому у меня есть представление о том, сколько запросов PUT (то есть каждой отдельной записи JSON).За период времени, в течение которого у меня был включен этот прием, я отправил около 18 000 записей в поток kinesis.Когда я запустил сканер в таблице с префиксом «raw» (я использовал настройки по умолчанию, но отметил в разделе «Вывод сканеров» «Обновить все новые и существующие разделы с метаданными из таблицы.», Чтобы избежать HIVE_PARTITION_SCHEMA_MISMATCH. Искатель работает и успешнообнаруживает схему и выглядит следующим образом:
column . data type
level . string
hash string
source . string
hat_name string
event_type string
payload string . <--- (only nested json field that has lots of possible internal structure)
parition_0 string
partition_1 string
partition_2 string
partition_3 string
Как только таблица создана, я замечаю, что существует только около 4000 записей, и она должна иметь примерно в 4 раза больше количества записей. Позже я снова запускаю сканери я заметил в журналах, что одна строка говорит:
ИНФОРМАЦИЯ: Некоторые файлы не соответствуют обнаруженной схеме. Удалите или исключите следующие файлы из искателя
Я исследовал некоторые исключенные файлыу большинства из них были действительные данные JSON, однако один или два файла имели усеченную запись json в конце файла, например, так:
{"level":"INFO","hash":"3c351293-11e3-4e32-baa2-
bf810ed44466","source":"FE","hat_name":"2249444f-c3f4-4e3d-8572-
c38c3dab4848","event_type":"MELT_DOWN","payload":{"checking":
"true"}}{"level":"INFO","hash":"3c351293-11e3-4e32-baa2-
bf810ed44466","source":"FE","hat_name":"2249444f-c3f4-4e3d-8572-
c38c3dab4848","event_type":"MELT_DOWN","payl
Что нужно сделать в связке, чтобы иметь все записизагружен в таблицу, у меня должно быть около 18000, а не 4200? Я думаю, что одна проблема заключается в схеме можетне совпадает с некоторыми записями?Но я утверждаю в кинезис-производителе, что это действительный json Strucutre с соответствующими полями верхнего уровня.Вторая проблема, которую я вижу, это файл с усеченной записью json?Я предполагаю, что это может быть проблемой с пакетным запуском файлов?Любая помощь приветствуется.
Примечание. Я пытался вручную создать таблицу json, определяющую все поля верхнего уровня, и у меня все еще остается та же проблема. Он находит только около 4200 записей при запросе в Афине.