ClientIP String,
...
...
OriginResponseDurationMs Int64
)
ENGINE = S3('https://storage.yandexcloud.net/bucket/{20220621..20221231}/*', 'AWS_ID', 'AWS_KEY', 'JSONEachRow', 'gzip')
SETTINGS date_time_input_format='best_effort';
В s3 расположены веб-логи.
Пытаюсь делать select * from cf_edge_logs
Получаю:
DB::Exception: inflateReset failed: data error: While executing S3. (ZLIB_INFLATE_FAILED)
Если ограничить limit'ом, то работает корректно.
Кто-нибудь сталкивался, как побороть?
Нашел тикет https://github.com/ClickHouse/ClickHouse/issues/412 , но решения что-то не нашел.
уверены что у вас там в бакете только gzip данные лежат?
Тут - https://storage.yandexcloud.net/bucket/{20220621..20221231}/* да. Туда Cloudflare логи пишет в *.gz. Папка пока что одна только, но планируется больше(по дням).
а в чем смысл select * from cf_edge_logs ? хочется куда то вне clickhouse данные слить? или у вас INSERT INTO ... SELECT * FROM ?
Да, из клика данные идут в инструмент визуализации данных, yandex DataLens. Я, пока что, сомневаюсь в работоспобности данной схемы, пробую только. Только SELECT Datalens -> CH -> S3
мне кажется DataLens напрямую из s3 в целом может прочитать... clickhouse нужен только если захочется аггрегировать на его стороне но тогда надо данные туда тащить а не в S3 хранить не в MergeTree
В самом datalens в подключениях s3 отсутствует. И доке datalens, на данный момент, только через ClickHouse. https://cloud.yandex.ru/docs/tutorials/datalens/storage-logs-analysis Немного подумаю, как быть дальше) Спасибо за ответ👍
Вы были правы. Cloudflare кладет один .txt файл. В таблице поправил *.gz - заработало Спасибо еще раз.
Обсуждают сегодня