Школа Больших Данных
566 subscribers
117 photos
711 links
Канал Школы Больших Данных https://www.bigdataschool.ru/ - обучение технологиям Big Data: разработка приложений и администрирование кластеров Hadoop, Kafka, Spark, NoSQL, Python, ML и DS.
Тел: +7 (495) 41-41-121
Контакты: @Bigdataschool_msk @olga_burykh
Download Telegram
#ClickHouse #статьи
Какие бывают словари и как создать свой словарь

ClickHouse имеет встроенные (внутренние) словари.
Например, полностью управляемый сервис ClickHouse на платформе Яндекса (Managed Service for ClickHouse) содержит встроенный словарь-геобазу и набор функций для работы с ним, позволяющие получить имя региона на нужном языке по его идентификатору, а также узнать id города, области, округа, страны или континента по идентификатору региона.

Также можно проверить, входит ли один регион в другой и получить цепочку родительских регионов.

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

Помимо встроенных словарей, можно подключать собственные словари из различных источников данных, загрузив xml-файл, HTTP-ресурс или другую СУБД.

Также можно создать словарь, используя DDL-запросы. Конфигурация внешних словарей может находиться в одном или нескольких xml-файлах. Путь к конфигурации указывается в параметре dictionaries config. Загружать словарь можно при старте сервера или при первом использовании, в зависимости от настройки dictionaries lazy load.

Например, следующий xml-файл описывает данные словаря в CSV-файле под названием ext-dict-example.
Его можно использовать для оптимизации запросов к базе данных, например, для замены кодов состояний на их строковые представления без необходимости делать дополнительные запросы к основным таблицам.
Смотрим пример по ссылке.

@BigDataSchool_ru
https://bigdataschool.ru/blog/news/clickhouse/clickhouse-dictionaries.html
#ClickHouse #статьи
ClickHouse для анализа временных рядов

ClickHouse является колоночной СУБД для аналитической обработки огромных объемов данных в реальном времени. Это обеспечивается архитектурными решениями, включая приблизительные вычисления, разреженную индексацию и использование первичного ключа в качестве ключа сортировки по умолчанию.

Изначально ClickHouse создавался именно для сквозной аналитики больших данных, исследования метрик и выгрузки отчетов по сотням атрибутов с учетом времени событий. Благодаря поддержке типов DateTime и DateTime64, эта колоночная СУБД отлично подходит для хранения данных временных рядов, т.е. тех, которые изменяются со временем. Например, курсы валют, перемещение транспорта, статистика событий пользовательского поведения, изменение системных метрик.

При этом ClickHouse позиционируется как универсальная OLAP-СУБД для больших данных в реальном времени, а не как специализированная база данных временных рядов типа InfluxDB, Kdb+, Prometheus, Graphite, Apache Druid, QuestDB, OpenTSDB, GridDB и прочие аналоги. Хотя аналитические нагрузки похожи на временные ряды из-за привязки ко времени событий, ClickHouse ориентирован на работу с потоковыми событиями, такими как обработка данных рекламных сетей или онлайн-игры.

В ClickHouse есть специальные кодеки, которые позволяют эффективно работать с данными временных рядов: стандартные алгоритмы DoubleDelta, Gorilla а также T64. На практике запросы к временным рядам часто затрагивают только недавние данные, в пределах недели. Чтобы ускорить выполнение таких запросов в ClickHouse можно использовать быстрые SSD-диски для хранения свежих данных, к которым часто идут запросы. А исторические данные перемещать в архив — на более медленные, но емкие HDD-диски. Для этого следует настроить время жизни данных в таблицах (TTL, Time To Live). Также можно использовать материализованные представления, подробнее о которых мы расскажем в следующий раз.

Из-за ориентации на чтение транзакционные операции в Clickhouse выполняются не очень быстро. А при небольших объемах данных могут вообще оказаться намного медленнее, чем в специализированных time-series решениях, таких как TimescaleDB — расширение PostgreSQL для работы с временными рядами.

Как работает TimescaleDB, рассмотрим далее.

@BigDataSchool_ru
https://bigdataschool.ru/blog/news/greenplum/time-series-data-processing-in-clickhouse-and-greenplum-postgresql.html
#ClickHouse #статьи
Шардирование в ClickHouse

Именно хранилище данных всегда является узким местом любой системы. Поэтому именно его надо расширить для повышения производительности.

Это можно сделать с помощью шардирования – горизонтального масштабирования за счет физического разделения данных на разные фрагменты (шарды, shards), которые располагаются на разных машинах. При этом создается большая распределенная distributed-таблица, которая маршрутизирует запросы к таблицам по шардам, обращаться к данным в которых можно также и напрямую.

В колоночной СУБД ClickHouse шардирование позволяет распределить фрагменты данных из одной базы по разным узлам кластера, увеличивая пропускную способность и снижая задержку обработки данных. Шард ClickHouse – это группа копий данных (реплик) для обеспечения отказоустойчивости СУБД, он состоит из одного или нескольких хостов-реплик. Поскольку шарды содержат разные части данных, для получения всех данных, нужно обращаться ко всем шардам. Для обеспечения надежности и повышения доступности данные реплицируются, т.е. дублируются по репликам. Запрос на запись или чтение в шард может быть отправлен на любую его реплику.

Поскольку в Clickhouse, в отличие от Greenplum, нецентрализованная архитектура, SQL-запрос выполняется параллельно, т.е. одновременно на всех сегментах. Например, при вставке с помощью INSERT-запроса данные асинхронно копируются с реплики, на которой он выполнен. А вот запрос на выборку с оператором SELECT отправляет подзапросы на все шарды кластера, независимо от распределения данных. Агрегатные же запросы к шардированным таблицам с оператором GROUP BY в ClickHouse выполняются так: сперва происходит агрегация на отдельных узлах и эти результаты  передаются узлу-инициатору запроса для общей сборки.
Для этого используется специальный табличный движок Distributed, который не обеспечивает хранение данных, а маршрутизирует запросы на шардированные таблицы с последующей обработкой результатов.

Записывать данные в шарды можно двумя способами:
✔️через distributed-таблицу по ключу шардирования, основанном на хэш-функции конкретного поля, диапазоне значений или вычисляемом динамически, в зависимости от нагрузки;
✔️непосредственное обращение к шардированным таблицам, чтобы потом считывать данные через distributed-таблицу.

Далее читайте: Особенности работы с Distributed-движком

@BigDataSchool_ru
https://bigdataschool.ru/blog/news/clickhouse/clickhouse-sharding.html
#Clickhouse
🔥Релиз 24.4: что нового в самой популярной колоночной СУБД
30 апреля 2024 года опубликован очередной выпуск ClickHouse, который включает 13 новых функций, 16 улучшений производительности и 65 исправлений ошибок. Наиболее интересными новинками этого выпуска можно назвать следующие:
💥теперь можно зараз удалить несколько таблиц со всем их содержимым, используя инструкцию DROP TABLE и перечислив имена удаляемых таблиц через запятую
💥стала доступной выгрузка первичного ключа, чтобы освободить память для первичного ключа таблицы. Это полезно при редком ее использовании. Первичный ключ этой таблицы будет загружен по требованию при следующем запросе к ней
💥в табличный движок MergeTree добавлены новые виртуальные столбцы для работы с блоками данных
💥теперь можно выдавать пользователям разрешения на табличные движки
💥 внешнее соединение можно преобразовать во внутреннее
💥 добавлена поддержка рекурсивных CTE
💥 расширен перечень интеграций ClickHouse с внешними системами

Подробнее про все эти обновления читайте в нашей статье.
#clickhouse #кликхаус #кэш
Кэширование в ClickHouse

Чем кэширование в OLAP-системах отличается от OLTP и как устроен кэш запросов ClickHouse: принципы работы, конфигурационные настройки и примеры использования SELECT-оператора.

⬆️Особенности кэширования в ClickHouse
Кэширование является одним из методов повышения производительности, который сокращает время на получение результатов вычислений за счет их хранения в области быстрого доступа. Обычно кэшируются результаты вычислений, которые были выполнены недавно и/или запрашиваются часто. ClickHouse поддерживает кэширование запросов, используя разные типы кэшей, в зависимости от табличных движков. Например, mark_cache – это кэш меток, используемых табличными движками семейства MergeTree, а uncompressed_cache — кэш несжатых данных этих же движков. Есть еще DNS-кеш, кэш регулярных выражений, скомпилированных выражений, схем формата Avro, словарей, выходной схемы данных, файловой системы на S3, Azure, локальных и других дисках. Также есть страничный кэш операционной системы, который используется косвенно, для файлов с актуальными данными.
Полная статья: https://bigdataschool.ru/blog/news/clickhouse/clickhouse-query-cache.html
Курс: https://bigdataschool.ru/courses/clickhouse
Наш сайт: https://bigdataschool.ru/
#ClickHouse #СУБД #Greenplum
🛠️Управление ресурсами и планирование рабочей нагрузки в ClickHouse

Как эффективно распределять и использовать ресурсы ClickHouse, зачем ограничивать возможности пользователей с помощью квот и классифицировать рабочие нагрузки.

Управление ресурсами в
ClickHouse
Благодаря своей децентрализованной архитектуре ClickHouse, когда один экземпляр включает несколько серверов, к которым напрямую приходят запросы пользователей, эта колоночная СУБД работает очень быстро. Для репликации данных и выполнения распределённых SQL-запросов в ClickHouse используется сервис синхронизации метаданных ClickHouse Keeper, аналогичный по функция Apache Zookeeper, но написанный на C++. Данные в ClickHouse располагаются на разных сегментах, называемых шардами (shard). Полная статья: https://bigdataschool.ru/blog/news/clickhouse/clickhouse-resources-and-workload-management.html
Курс: https://bigdataschool.ru/courses/clickhouse
Наш сайт: https://bigdataschool.ru
#ClickHouse #СУБД #шарды
Оптимизация производительности
ClickHouse: ребалансировка шардов и профилирование запросов

Как равномерно распределить по шардам ClickHouse уже существующие данные, зачем профилировать запросы, какие профилировщики поддерживает эта колоночная СУБД и каким образом их использовать.

Ребалансировка шардов в ClickHouse

Какой бы быстрой не была база данных, ее работу всегда хочется ускорить еще больше. Одним из популярных способов ускорения распределенной СУБД является шардирование—горизонтальное масштабирование за счет физического разделения данных на разные сегменты(шарды, shards)
Полная статья: https://bigdataschool.ru/blog/news/clickhouse/clickhouse-performance-optimizing-with-shards-rebalancing-and-profilers.html
Курс:
https://bigdataschool.ru/courses/clickhouse
Наш сайт:
https://bigdataschool.ru
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО УЦ Коммерсант
#ClickHouse #ApacheKafka #СУБД
Задержка интеграции ClickHouse с Apache Kafka и как ее снизить

От чего зависит задержка передачи данных из Apache Kafka в ClickHouse, как ее определить и ускорить интеграцию брокера сообщений с колоночной СУБД: настройки и лучшие практики.

Интеграция ClickHouse с Kafka
Чтобы связать ClickHouse с внешними системами, в этой колоночной СУБД есть специальные механизмы – интеграционные движки таблиц.
Полная статья: https://bigdataschool.ru/blog/news/clickhouse/from-kafka-to-clickhouse-integration-latency.html
Курсы:
https://bigdataschool.ru/courses/clickhouse https://bigdataschool.ru/courses/apache-kafka-developers
Наш сайт:
https://bigdataschool.ru
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ClickHouse #Хештаблица
Индексы в ClickHouse

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

Тонкости индексации в ClickHouse
Индексация считается одним из наиболее известных способов повышения производительности базы данных. Индекс определяет соответствие значения ключа записи (одного или нескольких атрибутов таблицы) и ее местоположения. Для хранения индексов обычно используются такие структуры данных, как деревья и хэш-таблицы.
Полная статья: https://bigdataschool.ru/blog/news/clickhouse/indexes-in-clickhouse.html
Курс:
https://bigdataschool.ru/courses/clickhouse
Наш сайт:
https://bigdataschool.ru
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ClickHouse #AirFlow #интеграция
Интеграция
ClickHouse с Apache AirFlow

Чем полезна интеграция ClickHouse с Apache Airflow и как ее реализовать: операторы в пакете провайдера и плагине на основе Python-драйвера. Принципы работы и примеры использования.

2 способа интеграции ClickHouse с AirFlow
Продолжая разговор про интеграцию ClickHouse с другими системами, сегодня рассмотрим, как связать эту колоночную СУБД с мощным ETL-движком Apache AirFlow. Полная статья: https://bigdataschool.ru/blog/news/airflow/clickhouse-airflow-integration.html
Курсы:
https://bigdataschool.ru/courses/clickhouse
https://bigdataschool.ru/courses/data-flow-with-apache-airflow
https://bigdataschool.ru/courses/airflow-on-yandex-managed-service
Наш сайт:
https://bigdataschool.ru/
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#FINAL #ClickHouse #SQL
Модификатор FINAL в
ClickHouse: как не выстрелить себе в ногу?

Что такое модификатор FINAL в SELECT-запросе ClickHouse, с какими табличными движками он работает, почему снижает производительность и как этого избежать. Тонкости потокового выполнения SQL-запросов в колоночной СУБД.

Зачем в SELECT-запросе ClickHouse нужен модификатор FINAL?
Хотя SQL-запросы в ClickHouse имеют типовую структуру, их реализация зависит от используемого движка таблиц. Например, запрос на выборку SELECT, который выполняет получение данных, выглядит так (в квадратных скобках показаны опциональные ключевые слова):
Полная статья: https://bigdataschool.ru/blog/news/clickhouse/clickhouse-final-in-select-query.html
Курс:
https://bigdataschool.ru/courses/clickhouse
Наш сайт:
https://bigdataschool.ru
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ClickHouse #ApacheNiFi #СУБД
Интеграция ClickHouse с Apache NiFi

Как прочитать данные из ClickHouse в Apache NiFi или загрузить их в таблицу колоночной СУБД: настройки подключения, использование процессоров и тонкости потоковой интеграции.
Подключение к ClickHouse из Apache NiFi
Как и интеграция ClickHouse с Apache AirFlow, связь этой колоночной СУБД с приложением NiFi реализуется с помощью решения сообщества, средствами самого NiFi.
Полная статья: https://bigdataschool.ru/blog/news/clickhouse/clickhouse-nifi-integration.html
Курсы:
https://bigdataschool.ru/courses/clickhouse https://bigdataschool.ru/courses/nifi3
Наш сайт:
https://bigdataschool.ru
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ClickHouse #ACID #MergeTree
Транзакции в ClickHouse

Почему в ClickHouse нет полноценных транзакций, но введена экспериментальная поддержка ACID для операций вставки в таблицы движка MergeTree, как это реализуется и чем синхронная вставка отличается от асинхронной.

Особенности операций вставки в
ClickHouse
В ClickHouse нет полноценных транзакций, поскольку это колоночное хранилище в первую очередь ориентировано на чтение большого объема данных, потоковую запись и приблизительные вычисления. Это надо учитывать при выполнении DML-запросов.
Статья
Курс: CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ClickHouse #GROUPBY #лайфхаки
Тонкости агрегации в ClickHouse: как избежать OOM-ошибки с GROUP BY?

Как работают агрегатные функции в ClickHouse, почему SQL-запросы с GROUP BY потребляют много памяти и что поможет сделать их быстрее и эффективнее: лайфхаки многопоточной агрегации в колоночной базе данных.

Особенности выполнения оператора GROUP BY в
ClickHouse
Агрегатные функции позволяют вычислить экстремум (минимум/максимум), среднее значение, количество, сумму или другое результирующее значение в группе. Статья
Курс CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Clickhouse #релиз #24.6
Оптимальная сортировка таблиц
Clickhouse: улучшения ORDER BY в релизе 24.6

Зачем в ClickHouse 24.6 добавлена настройка optimize_row_order для оптимизации порядка строк MergeTree-таблиц, как она работает и где ее применять.

Как связаны индексация и сортировка таблиц в ClickHouse
Даже не будучи классической реляционной СУБД, ClickHouse поддерживает индексацию, насколько это возможно в его колоночной природе, индексируя первичным ключом целую группу строк (гранулу) в таблице из частей данных, отсортированных по первичному ключу. Подробнее об этом мы писали здесь. Физический порядок строк на диске в таблицах основного движка MergeTree определяется их ключом сортировки, указанном в операторе ORDER BY.
Статья
Курс: CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Clickhouse #дедупликация #24.7
Clickhouse 24.7: главные новинки свежего релиза

Новая логика дедупликации данных, ограничения работы с матпредставлениями, дополнительные SQL-функции и улучшения производительности ClickHouse 24.7: краткий обзор ключевых особенностей июльского выпуска.

Несовместимые изменения и новые фичи
30 июля 2024 года вышел очередной релиз ClickHouse, в котором довольно много изменений, несовместимых с прошлыми версиями. В частности, в реплицированных базах данных теперь нельзя создать материализованное представление с табличным движком ReplicatedMergeTree с заполнением данных при его создании.
Статья
Курс: CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#UDF #ApacheSpark #Greenplum #ClickHouse #ksqlDB #FlinkSQL
UDF во фреймворках Big Data: благо или необходимое зло?


Почему пользовательские функции лучше применять как можно реже, каковы их возможности и ограничения: краткий обзор особенностей разработки и эксплуатации UDF в Apache Spark SQL, ksqlDB, Flink SQL, Greenplum и ClickHouse.

Чем полезны и опасны пользовательские функции в обработке больших данных?
Пользовательские функции (User-Defined Functions, UDF) позволяют разработчику расширить возможности фреймворка, реализовав собственные функции для обработки данных. Большинство современных фреймворков это позволяют.
Статья
Курсы:
DEVKI CORS FLINK CLICH GPDE
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Clickhouse #СУБД #24.8 #LTS 
Clickhouse 24.8: обзор очередного релиза

Разработчики ClickHouse с завидной регулярностью радуют новыми релизами. Не прошло и месяца, как опубликован очередной выпуск этой колоночной СУБД, версия 24.8 LTS от 20 августа 2024. О ее главных новинках читайте далее.

Несовместимые изменения
Начнем с самых важных и несовместимых изменений. В релизе ClickHouse 24.8 LTS для clickhouse-client и clickhouse-local теперь по умолчанию используется режим нескольких запросов. Ранее использовался режим одного запроса, поэтому пользователям приходилось вручную добавлять к SELECT-запросу опцию –multiquery или -n. Статья
Курсы:
CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Clickhouse #MLзадач #FeatureStore #архитектура #принципы
5 причин использовать Clickhouse для ML-задач
Что такое хранилище признаков, зачем это нужно в машинном обучении, каковы его главные компоненты и как использовать ClickHouse в качестве Feature Store для ML-задач.

Хранилище признаков для машинного обучения: архитектура и принципы работы Feature Store
Будучи колоночной базой данных, ClickHouse отлично подходит на роль хранилища фичей (Feature Store) для задач машинного обучения. Фичей или признаком называется некоторое свойство сущности, которое влияет на точность прогноза модели машинного обучения. Сущность — это набор признаков, а также класс или метка, представляющие реальное понятие. Например, банковская транзакция может считаться сущностью.
Статья
Курс:
CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Chdb #Clickhouse #СУБД
Зачем вам Chdb или как работать с Clickhouse без развертывания сервера СУБД

Что такое Chdb, зачем нужна эта библиотека и как ее использовать в коде Python-приложения для анализа больших данных в ClickHouse без разворачивания полноценного сервера этой колоночной СУБД.

Как и зачем работать с ClickHouse без сервера СУБД
ClickHouse является мощным инструментом аналитики больших данных, который требует соответствующей инфраструктуры. Однако, иногда нужно работать с данными в ClickHouse без разворачивания полноценного сервера этой колоночной СУБД. Например, чтобы выполнить локальные аналитические задачи в рамках разработки, тестирования или отладки приложения.
Статья
Курсы:
CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Двухзвенная #архитектура #Clickhouse #СУБД
Двухзвенная архитектура: одностраничные веб-приложения с Clickhouse

Как реализовать систему с двухзвенной архитектурой на ClickHouse и браузере. Возможности колоночной СУБД для создания одностраничных веб-приложений.

Возможности ClickHouse для одностраничных веб-приложений
Хотя трехзвенная архитектура (клиент -> бэк-> база данных) уже давно стала стандартом де-факто в разработке веб-приложений, двухзвенная архитектура, когда бизнес-логика переносится в базу данных, до сих пор встречается. Сюда же относятся одностраничные приложения, которые динамически обновляют контент на одной веб-странице без полной ее перезагрузки, обрабатывая всю визуализацию на стороне клиента, а сложную логику – на стороне самой базы данных.
Статья
Курс:
CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"