Оптимизация инсертов в ClickHouse через Kafka Sink-коннекторы

Меня зовут Артем Москальков, я — ведущий инженер данных в Магнит OMNI. В статье я расскажу о том, как мы оптимизировали производительность кластера в ClickHouse. Частые мелкие вставки данных через Kafka Sink-коннектор серьёзно замедляли работу ClickHouse из-за огромного числа отдельных запросов. Путём настройки параметров потребителя Kafka и включения объединения партиций удалось сгруппировать записи в крупные блоки, что резко снизило нагрузку на базу и многократно увеличило её пропускную способность.

https://habr.com/ru/companies/magnit/articles/926834/

#kafka #инсерт #оптимизация_запросов #clickhouse #коннекторы #insert #etl #etlпроцессы #dwh #elt

Оптимизация инсертов в ClickHouse через Kafka Sink-коннекторы

Меня зовут Артем Москальков, я — ведущий инженер данных в Магнит OMNI. В статье я расскажу о том, как мы оптимизировали производительность кластера в ClickHouse. Частые мелкие вставки данных...

Хабр

Загадка от Жака Фреско: как построить свой Rate Limiter и не утонуть в море компромиссов

Построить Rate Limiter — легко. Сделать его быстрым, отказоустойчивым и работающим в нескольких дата-центрах — сложнее. Делюсь опытом реализации нашего облачного Rate Limiter в DDoS-Guard: принцип работы, анализ правил и реальные примеры из практики.

https://habr.com/ru/companies/ddosguard/articles/908662/

#ratelimit #rate_limiting #ratelimiter #rate_limiter #ddosguard #оптимизация_запросов #429_request #облачные_решения #redis #consul

Загадка от Жака Фреско: как построить свой Rate Limiter и не утонуть в море компромиссов

В DDoS-Guard мы ежедневно защищаем клиентские сервисы от самых разных атак. Одним из ключевых инструментов защиты становится Rate Limiter — система, которая ограничивает количество запросов от одного...

Хабр

У нас есть ERP! Разве этого недостаточно для автоматизации бизнес-процессов?

Если задать вопрос искусственному интеллекту “зачем нужна ERP-система” мы получим следующий ответ: «ERP‑система нужна для упрощения, автоматизации и эффективного управления бизнес‑процессами в организации. Она собирает важные данные в одном месте, чтобы их анализировать и решать задачи бизнеса.» В ERP-системах также есть специальные модули для управления складскими запасами, производством, закупками, финансами, продажами и другими аспектами деятельности компании. Каждый модуль необходимо адаптировать под конкретные потребности предприятия, поэтому ERP-проекты не заканчиваются годами, а бюджет растёт на глазах. Обновлять такую систему практически невозможно, поскольку она сильно изменена под задачи бизнеса. А есть ли смысл внедрять все эти модули или проще воспользоваться специализированными решениями? Наша команда часто работает с заказчиками, которые находятся в начале пути внедрения ERP-системы, и еще чаще — с теми, кто занимается этим уже много лет. Представители первой группы заказчиков полны энтузиазма, они говорят рекламными слоганами интеграторов ERP-систем, рассказывают о быстрых сроках внедрения и широких возможностях системы, которые закроют все их задачи. А что говорят опытные пользователи ERP? Часто они жалуются на то, что функциональность системы недостаточна для решения поставленных задач, в системе хаос, много ошибок из-за ручного ввода данных в систему. Система не подходит для оперативного планирования производства, поскольку перестройка плана занимает часы, и когда план построен, он автоматически становится актуальным и т.д.. Самое главное, что говорят опытные пользователи, — если бы можно было начать проект заново, они бы выбрали максимально коробочное решение и использовали систему как инструмент учета и источника данных для других систем в ИТ-инфраструктуре компании.

https://habr.com/ru/articles/924156/

#aps #автоматизация_бизнеспроцессов #автоматизация_предприятий #планирование_ресурсов #планирование_цикла_разработки #производство #оптимизация_производительности #оптимизация_рабочего_времени #оптимизация_запросов #закупки

У нас есть ERP! Разве этого недостаточно для автоматизации бизнес-процессов?

Если задать вопрос искусственному интеллекту “зачем нужна ERP-система” мы получим следующий ответ:   «ERP‑система нужна для упрощения, автоматизации и эффективного управления...

Хабр

Плохие JOIN’ы: приемы, которые (нечаянно) кладут прод

Привет, Хабр! В этой статье разбираем один из самых коварных способов убить базу — плохие JOIN 'ы. Казалось бы, простое дело: связать пару таблиц — и вперёд. Но если в ON засунуть LOWER(email) , забыть про индексы или перепутать LEFT JOIN с INNER — сервер мигом начнет дышать на ладан.

https://habr.com/ru/companies/otus/articles/920004/

#sql #JOIN #оптимизация_запросов #postgresql #Проблемы_производительности #Индексы #Full_Scan

Плохие JOIN’ы: приемы, которые (нечаянно) кладут прод

Привет, Хабр! Сегодня разбираем один из самых коварных способов убить базу — плохие JOIN 'ы. Казалось бы, простое дело: связать пару таблиц — и вперёд. Но если в ON засунуть...

Хабр

Анализ плана выполнения запроса с оконной функцией в SQL Server (+бонус)

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

https://habr.com/ru/articles/918210/

#tsql #ms_sql_server #план_выполнения_запросов #оптимизация_запросов

Анализ плана выполнения запроса с оконной функцией в SQL Server (+бонус)

Добрый день! Предлагаю рассмотреть план выполнения следующего простого запроса: select code, model, avg(price) over (partition by model) avgp from pc (В данной статье используется таблица из базы...

Хабр

Оптимизация запросов в Django. Подробное руководство

Привет, хабр! В данной статье хочу рассказать больше чем обычно про оптимизацию запросов к базе данных в Django . Расскажу о том, как не только запрашивать, но и создавать или обновлять записи в базе. В статье будет много примеров, генерируемый SQL , типы данных, индексы и выводы планировщика запросов. Данная статья подходит для как для начинающих, так и достаточно опытных разработчиков на django, а также для всех, кто еще не интересовался, что происходит под капотом ORM .

https://habr.com/ru/articles/917710/

#django #postgresql #postgres #sql #python #запрос_данных #оптимизация #оптимизация_запросов #базы_данных #программирование

Оптимизация запросов в Django. Подробное руководство

Привет, хабр! В данной статье хочу больше, чем обычно рассказать, про оптимизацию запросов к базе данных в Django . Расскажу о том, как правильно не только запрашивать, но и создавать или обновлять...

Хабр

Правильный порядок колонок в B-tree индексах PostgreSQL или правило ESR

Когда в проекте используется составной B-tree индекс, важно не просто "создать индекс", а сделать это правильно — иначе запросы могут не только не ускориться, но и начать работать медленнее. Возникает логичный вопрос: как выбрать порядок колонок, чтобы индекс действительно работал эффективно? Брутфорсом? По интуиции? По селективности? В этой статье я расскажу, как подходить к построению составных индексов в PostgreSQL, на что реально влияет порядок колонок. Также разберём простое правило ESR, которое помогает упростить выбор и получать стабильный прирост производительности на всех стендах.

https://habr.com/ru/articles/911688/

#postgresql #Btree #составной_индекс #многоколонковый_индекс #ESR_правило #оптимизация_запросов #селективность #план_выполнения #explain_analyze #индексный_скан

Правильный порядок колонок в B-tree индексах PostgreSQL или правило ESR

Когда в проекте используется составной B-tree индекс, важно не просто "создать индекс", а сделать это правильно — иначе запросы могут не только не ускориться, но и начать работать медленнее. Возникает...

Хабр

SQL и нейросети: изучаем логику моделей через анализ и визуализацию весов

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

https://habr.com/ru/companies/netologyru/articles/891690/

#sql #машинное_обучение #machine_learning #ml #оптимизация_запросов #sql_запросы #нейросети #визуализация_данных #сравнение_моделей #базы_данных

SQL и нейросети: изучаем логику моделей через анализ и визуализацию весов

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

Хабр

Bloom-фильтры в Postgres: скрытый инструмент для оптимизации запросов

В мире разработки и работы с базами данных Bloom-фильтры – это мощный, но малоизвестный инструмент, который может значительно ускорить выполнение запросов и снизить нагрузку на систему. Однако, несмотря на их потенциал, многие разработчики даже не знают, что Postgres поддерживает Bloom-фильтры "из коробки" (функциональность Bloom-фильтров доступна сразу после установки Postgres, при включении соответствующего расширения) через расширение bloom. Bloom-фильтры особенно полезны в ситуациях, когда нужно быстро проверить, принадлежит ли элемент к множеству, или когда требуется оптимизировать запросы с несколькими условиями. Например, они могут ускорить JOIN-запросы, поиск по нескольким столбцам или агрегатные функции. В этой статье мы разберем, что такое Bloom-фильтры, как они работают в Postgres, и в каких случаях их использование может быть полезным. Мы также рассмотрим практические примеры и покажем, как Bloom-фильтры могут помочь в оптимизации запросов.

https://habr.com/ru/companies/ppr/articles/890184/

#postgres #sql #оптимизация_запросов #bloom_filter #оптимизация_запросов_к_базам_данных

Bloom-фильтры в Postgres: скрытый инструмент для оптимизации запросов

Введение В мире разработки и работы с базами данных Bloom-фильтры – это мощный, но малоизвестный инструмент, который может значительно ускорить выполнение запросов и снизить нагрузку на систему....

Хабр

PostgreSQL Connection Pooling: Наш опыт и с чем его едят

Как обеспечить высокую производительность PostgreSQL и эффективно управлять соединениями? В этой статье мы разберёмся, как правильно настроить пул соединений, какие преимущества он даёт и как избежать распространённых ошибок. Делимся нашим опытом перехода с MongoDB на PostgreSQL и работы с пулом в Go с использованием pgx.

https://habr.com/ru/companies/hikasami/articles/884820/

#postgresql #golang #hikasami #базы_данных #оптимизация_запросов #производительность

PostgreSQL Connection Pooling: Наш опыт и с чем его едят

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

Хабр