Рубрика «clickhouse»

Я автор aiochlite — асинхронного клиента ClickHouse на aiohttp. Клиент читает результаты запросов в бинарном формате RowBinaryWithNamesAndTypes. Сам RowBinary-декодер написан на Python без собственного модуля расширения; единственная обязательная зависимость библиотеки — aiohttp.

В таком декодере каждое числовое поле читалось отдельным вызовом. Функция, выбранная по типу колонки, звала метод reader, тот — struct.unpack_fromЧитать полностью »

«Мы стояли на плоскости» (БГ)

«Кто на ком стоял?» (МБ)

Аннотация

Предлагаемый текст представляет опыт ознакомления автора с тестом SSB в свете обычных прикладных вопросов BI‑проекта умеренного размаха. Автор пытается бросить пытливый взгляд на спектр перспективных возможностей, обеспечиваемых доступностью и масштабируемостью теста SSB.

Ключевые слова

SSB, Postgres, ClickHouse, Sizing, MDX, Flat, Star, BI, DWH, КХД

Введение

Читать полностью »

Все началось с просьбы сделать отчеты в реальном времени. На первый взгляд задача выглядела простой, но довольно быстро выяснилось, что существующая архитектура для этого не подходит.

Проект был разбит на множество микросервисов, каждый из которых хранил данные в собственной PostgreSQL-базе. Чтобы строить сквозные отчеты, информацию нужно было где-то объединять.

Читать полностью »

Введение

В одной телеком‑компании, где я работал, возникла проблема класса «тихих» деградаций: абоненты массово жаловались, что при отличном уровне сигнала невозможно совершить или принять голосовой вызов.

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

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

Читать полностью »

Когда инженер слышит «нам нужно хранилище данных», задача редко звучит однозначно. Кто‑то задыхается на боевой OLTP‑базе под аналитической нагрузкой. Кто‑то впервые строит BI и не понимает, с какого края подходить. У кого‑то накопились данные из десятка систем‑источников, и существующих средств уже не хватает.

У всех «хранилище». А правильный технический ответ зависит от условий задачи.

Читать полностью »

CPU 80%, память на пределе, диск нагружен. Запросы тормозят. Расчёты не завершаются. Сервер на грани. Что же делать?

Расскажу как начинаю диагностику и как найти запрос, который создаёт нагрузку.

CPU 80%. Как найти проблемный запрос в ClickHouse? - 1

Шаг 1. Что висит прямо сейчас

Если нода прямо сейчас перегружена, начинаем с system.processesЧитать полностью »

К написанию данной статьи меня подтолкнула другая статья:
«Не только sum() и uniq(): малоизвестные и очень полезные функции ClickHouse»
и вопрос автора: «В комментариях расскажите, какие „непопулярные“ функции кликхаус упростили вам жизнь.»
Недолго думая, я ответил: cityHash64().

Читать полностью »

Привет!

Меня зовут Натаров Иван. Я занимаюсь вопросами обработки, анализа и визуализации данных.

ClickHouse сегодня стал стандартом де-факто для аналитических задач, но часто начинающие специалисты тратят слишком много времени на погружение в технологию. Документация зачастую дает либо слишком поверхностное объяснение, либо уходит в технические детали, которые сложны для восприятия новичками.

В этой статье мы разберем фундамент ClickHouse - движок MergeTreeЧитать полностью »

В этой статье мы поговорим о том, как реализовать поведение атомарной вставки в ClickHouse. Рассмотрим несколько вариантов, подсветим их сильные и слабые стороны, а также, когда каждый из них применять.

Задача

Мы хотим добиться, чтобы не было случаев, когда мы начали вставку, а пользователь прочитал данные до её завершения и получил неактуальный (неполный) набор данных.

Неатомарная вставка = риск чтения некорректного набора данных.

Сценарии, когда такое может произойти:

  1. Удалили партицию и хотели начать вставлять данные взамен удалённой, но пользователь обратился к этому интервалу.

  2. Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js