Обидно, когда не получается вместе использовать два таких достойных продукта
Суть проблемы:
При выгрузке данных из Metrica Logs API, генерируются TSV файлы которые потом не распознаются парсером Clickhouse для TabSeparatedWithNames формата
и соответвенно не могут напрямую быть загружены в локальный Clickhouse
вот основные ошибки
— одинарные ковычки, которые обрамляют строки в комплексных типах Array (String)
эскейпятся через \
пример это поля ym:s:goalsDateTime и ym:s:goalsOrder
чтобы обойти это в «официальном загрузчике» стоит вот такой костыль
https://github.com/yndx-metrika/logs_api_integration/blob/master/logs_api.py#L170
это делает загрузчик дико неэффективным по памяти (надо взять все данные и пройтись по ним заменой строк) и не позволяет грузить через него действительно большие объемы данных
— комплексные поля типа ym:s:goalsCurrency — тип в Clickhouse Array (String), наоборот записываются без квотирования даже в одинарные ковычки, в результате вместо ['',''] получается [,]…
— самое фиговое случается для поля ym:s:params сначала в нем добавляется экранирование через \, а потом, поскольку в значении поля встречаются двойные кавычки, добавляется их экранирование через задваивание, на выходе вместо Array (String) получается вот такая ерунда
"[\'{""__ym"":{""ads"":{""w"":{""t"":0,""l"":0,""w"":1366,""h"":656},""p"":""w"":1349,""h"":3965},""a""[],""full"":1}}}\']"
Что делать? Разработчики помогите пофиксить баги и сделать продукт лучше?