Обидно, когда не получается вместе использовать два таких достойных продукта
Суть проблемы: При выгрузке данных из 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}}}\']"
Что делать? Разработчики помогите пофиксить баги и сделать продукт лучше?