BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по ClickHouse » Энциклопедия ClickHouse » ddl clickhouse: управление DDL в ClickHouse

ddl clickhouse: управление DDL в ClickHouse

 

Краткое введение

Эффективное управление схемой данных - ключ к устойчивой аналитике в быстро изменяющихся условиях бизнеса. В рамках курса по ClickHouse тема ddl clickhouse охватывает принципы, методы и практические подходы к определению, изменению и миграции схемы данных в распределённых OLAP-системах. Правильное применение DDL-операций влияет на доступность, производительность и согласованность данных во всей архитектуре: от ingestion-пайплайнов до бизнес-отчетов и моделей машинного обучения. Эта глава закладывает базу для безопасных, воспроизводимых и контролируемых изменений схемы в рамках кластерной архитектуры.

 

Введение

DDL - это совокупность инструкций, которые создают, изменяют или удаляют объекты базы данных и их схемы. В ClickHouse DDL-операции отличаются от типичных DDL в реляционных СУБД по характеру изменений и зачастую требуют учёта архитектуры MergeTree- и Distributed-таблиц, репликации, координации между нодами и фонами мутаций. В современных аналитических системах миграции схемы происходят не только «во время развёртывания» проекта, но и как часть постоянного эволюционного цикла: добавление новых столбцов под новые источники данных, изменение типов, перенастройка сортировки и компрессии, оптимизация хранения и обновление условий выборки.

 

Основные понятия и терминология

  • DDL (Data Definition Language) - набор команд, которые изменяют структуру базы данных.
  • DML (Data Manipulation Language) - команды для работы с данными ( insert, update, delete ), которые в ClickHouse нередко реализуются через мутации или GET-операции.
  • ENGINE - механизм хранения и обработки данных в ClickHouse (MergeTree, ReplacingMergeTree, SummingMergeTree, ReplicatedMergeTree, и т. д.).
  • ORDER BY и PRIMARY KEY - ключевые поля для сортировки и эффективной фильтрации.
  • MUTATIONS - механизм асинхронной модификации данных внутри таблицы без полной перезаписи.
  • Replicated и Distributed - паттерны для кластерной архитектуры: репликация состояния и распределённая обработка запросов.
  • Keeper / ClickHouse Keeper - координационный сервис, замещающий часть функций ZooKeeper в кластерах ClickHouse.

     

Теоретические основы и терминология

  • В ClickHouse DDL-операции в большинстве случаев затрагивают только метаданные или требуют частичной переработки данных. Это отличие от классических RDBMS, где DDL часто приводит к блокировкам и долгим транзакциям.
  • В кластере DDL-операции координируются через сервисы координации (ZooKeeper ранее, сейчас ClickHouse Keeper в рамках некоторых сборок), что обеспечивает консистентность изменений по всем нодам.
  • Добавление столбца в ClickHouse в большинстве случаев является метаданной операцией, которая не требует перерасчёта существующих данных. Однако изменение типа столбца, удаление столбца и другие радикальные изменения могут потребовать мутации или переприсваивания данных.
  • Миграции схемы должны быть детерминированы, воспроизводимы и прозрачны для командной эксплуатации: схемы версионируются, изменения документируются, а процедура развёртывания - автоматизирована.
  • В сложных сценариях рекомендуется применение миграций в несколько этапов: резервное копирование состояния, создание новой таблицы со схемой-мишенью, миграция данных, верификация, переключение на новую схему и удаление старой таблицы.

     

Методологии и подходы

  • Версионность схемы и миграции
    • Введение версий схемы (v1, v2, v3) и хранение маппинга версий в продуманной стратегии миграций.
    • Принцип backward-compatible изменений: добавление новых столбцов с дефолтными значениями, поддержка старых запросов, избегание немедленного удаления важных столбцов.
    • Документирование каждой миграции: описание цели, влияния на данные и тесты приемки.
  • Архитектурные подходы к миграциям
    • Рефакторинг через создающуюся новая таблицу и копирование данных (постепенная миграция).
    • Использование MUTATIONS для некоторых изменений, когда это приемлемо с точки зрения задержки и консистентности.
    • Принцип минимального времени простоя: безболезненная замена таблиц, использование Distributed-таблиц для прозрачной маршрутизации запросов.
  • Инструменты миграций
    • Open-source инструменты: Liquibase, Flyway, dbt (для моделирования и миграций в аналитических пайплайнах), интеграция с ClickHouse через JDBC/ODBC и SQL-скрипты.
    • Инструменты оркестрации: Apache Airflow, Dagster, Prefect - для запуска миграций в рамках ETL/ELT-пайплайнов.
    • Российские и локальные решения: внедрение миграций через собственные CI/CD пайплайны и деплой в рамках Яндекс/Кластерных сред с использованием ClickHouse Keeper и Kubernetes.
  • Практические принципы проектирования
    • Минимизация рисков при изменении схемы: минимальные изменения в существующих запросах, поддержка старых путей доступа, тестирование на копии данных.
    • Верификация изменений: таргетированное тестирование запросов, проверка системных метрик (мутирования, задержки, частота ошибок).
    • План восстановления: стратегия восстановления схемы, бэкапы и регламент удаления старых данных.

       

Архитектура и технологическая реализация

 

Архитектура кластера и DDL

  • Реплицированные таблицы (ReplicatedMergeTree) и координация через Keeper/ClickHouse Keeper обеспечивают консистентность DDL на большом кластере.
  • Distributed-таблицы позволяют централизовать доступ к данным и быстро перенаправлять запросы по узлам кластера в зависимости от загрузки и локализации данных.
  • Архитектура пайплайнов ingestion и агрегации должна учитывать DDL-изменения в схемах: если вводится новый столбец, есть вероятность того, что downstream системы (BI, дата-лейеры) требуют обновления моделей, SQL-запросов и ETL-логики.
  • Механизм MUTATIONS (для некоторых операций) позволяет изменять данные без полной переработки всего набора. Это полезно для редких изменений, но может создать задержки до завершения миграции.

     

Техничeская реализация DDL

  • Пример создания таблицы MergeTree с порядком сортировки:

    
    CREATE TABLE IF NOT EXISTS default.events
    (
        event_time DateTime,
        user_id UInt64,
        action String,
        country_code String DEFAULT '',
        metadata String
    )
    ENGINE = MergeTree()
    ORDER BY (event_time, user_id);
    
  • Создание таблицы-реплики в кластере:

    
    CREATE TABLE IF NOT EXISTS default.events_replica
    (
        event_time DateTime,
        user_id UInt64,
        action String,
        country_code String DEFAULT ''
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/{database}.{table}', '{replica}')
    ORDER BY (event_time);
    
  • Создание распределённой таблицы поверх реплицируемой:

    
    CREATE TABLE IF NOT EXISTS default.events_dist
    (
        event_time DateTime,
        user_id UInt64,
        action String,
        country_code String DEFAULT ''
    )
    ENGINE = Distributed('cluster_name', 'default', 'events_replica', rand());
    
  • Добавление нового столбца (metadata-only, если добавление в конец таблицы):

    
    ALTER TABLE default.events ADD COLUMN ip_address Nullable(String) DEFAULT NULL;
    
  • Изменение типа столбца и перерасчёт данных (мутирование данных требуется)

    
    ALTER TABLE default.events MODIFY COLUMN country_code LowCardinality(Nullable(String));
    
  • Удаление столбца:

    
    ALTER TABLE default.events DROP COLUMN ip_address;
    
  • Добавление индекса/партирования (если поддерживается версии) и настройка компрессий:

    
    ALTER TABLE default.events ADD INDEX idx_country_code TYPE minmax GRANULARITY 4;
    
  • Обновление конфигурации таблицы для оптимизации MergeTree (пользовательские настройки):

    
    ALTER TABLE default.events MODIFY SETTING max_rows_to_group_by = 100000;
    
  • Изменение структуры кластера без downtime:

    
    ALTER TABLE default.events DETACH PARTITION '202401';
    ALTER TABLE default.events ATTACH PARTITION '202401';
    

    Пример миграции через создание новой таблицы и копирование

  1. Создать копию таблицы со схемой-мишенью:

    
    CREATE TABLE default.events_v2
    (
      event_time DateTime,
      user_id UInt64,
      action String,
      country_code String DEFAULT ''
    ) 
    ENGINE = MergeTree()
    ORDER BY (event_time, user_id);
    
  2. Перенести данные пакетами:

    
    ## INSERT INTO default.events_v2
    SELECT event_time, user_id, action, country_code
    FROM default.events
    WHERE event_time >= '2024-01-01';
    
  3. Переключить запросы на новую таблицу:

    
    RENAME TABLE default.events TO events_old, default.events_v2 TO events;
    
  4. Удалить старую таблицу после верификации:

    
    DROP TABLE default.events_old;
    
  5. При необходимости вернуть старую схему - можно быстро вернуть реплику через переключение имени таблиц, если был заранее предусмотрен.

     

Механики обеспечения консистентности

  • Atomicity в ClickHouse достигается на уровне отдельных операций DDL. В кластерах необходимо учитывать согласование между нодами: DDL-операции проходят через координацию Keeper/ClickHouse Keeper, чтобы изменения применялись последовательно на всех узлах.

  • Мутации и их мониторинг:

    
    SELECT mutation_id, table, create_time, is_done
    ## FROM system.mutations
    WHERE table = 'events' AND database = 'default';
    
  • Проблемы, которые могут возникнуть:

    • Неполное обновление схемы на отдельных нодах из-за сбоев в координации.
    • Просадки в потоках мутаций при больших объемах данных.
    • Неправильная совместимость типов между версиями клиентов и серверов.
  • Рекомендации:

    • Всегда тестируйте DDL в стейдж-среде с копиями реальных данных.
    • Применяйте миграции в окнах низкой загрузки.
    • Используйте CI/CD для автоматизации миграций и отката.

       

Архитектурные паттерны миграций

  • Паттерн «мостик» (Bridge)
    • Создать новую таблицу-мишень и временно перенаправлять клиенты на неё через Distributed таблицы.
  • Паттерн «копирование и переключение» (Copy-and-switch)
    • Создать копию, наполнить её данными, проверить, затем переключить запросы и удалить старую таблицу.
  • Паттерн «mutations по частям» (Partial mutations)
    • Применение MUTATIONS для накладных изменений без полного переписывания данных, если это возможно и безопасно.

       

Организационные и процессные аспекты

  • Политика версий схемы
    • Все изменения схемы должны иметь номер версии, владельца и план тестирования.
    • Включать в описание переходных правил совместимости для существующих клиентов и отчётов.
  • Планирование миграций
    • Регламентировать миграции в каналы CI/CD, включая тесты на копии данных и регрессия на которых задаются контрольные метрики.
    • Включать меры безопасности: бэкапы перед миграцией, журналирование, мониторинг задержек.
  • Взаимодействие команд
    • BI/АНАЛИТИКА: оповещение об изменении схемы, обновление SQL-образцов и моделей.
    • Инженеры данных: изменение пайплайнов и тестов.
    • Эксплуатация: контроль за производительностью и доступностью кластера во время миграции.
  • Роли и ответственность
    • Data Architect: проектирование схем и миграционной стратегии.
    • DBA/Platform Engineer: реализация миграций, мониторинг, откат.
    • Data Engineer: обновление ETL-пайплайнов и моделей.

       

Риски, ограничения и типовые ошибки

  • Риск простой остановки сервисов при тяжелых DDL-операциях без подготовки.
  • Неправильная совместимость типов между версиями клиентов и серверов.
  • Игнорирование влияния DDL на downstream-подсистемы: BI-дашборды, модели машинного обучения, витрины данных.
  • Ошибки при удалении столбцов: данные остаются в памяти и занимают место, что может привести к неожиданной загрузке.
  • Неправильная координация DDL в кластере и несогласованные изменения.

     

Типовые ошибки и их предотвращение:

  • Преждевременное удаление столбцов без анализа зависимостей: проведите аудит запросов и моделей.
  • Несогласованные миграции между репликами: используйте синхронное ожидание завершения DDL на всех узлах перед переключением.
  • Неполное тестирование миграций: обеспечьте тестовую среду с мок-данными и регрессионные тесты на итоговую схему.

     

Рекомендации по практической реализации

  • Планируйте миграции в несколько стадий: подготовка, миграция, верификация, переключение, удаление старой схемы.
  • Используйте мониторы и телеметрию: system.mutations, смены состояний, задержки.
  • Применяйте совместимость на уровне данных и запросов: добавление столбцов с дефолтными значениями, поддержку старых клиентов без изменений.
  • Автоматизируйте миграции через CI/CD, интегрируйте с оркестраторами (Airflow, Dagster).
  • Примеры открытых инструментов и российских решений:
    • Open-source: ClickHouse Keeper, Liquibase, Flyway, dbt, Apache Airflow.
    • Российские и локальные решения: Яндекс.Облако Managed ClickHouse, использование Keeper в Zoom-ерами, региональные CI/CD практики и инфраструктура на базе Kubernetes для развёртывания ClickHouse и миграций.

       

ddl clickhouse

Данный раздел акцентирует внимание на том, как формально оформлять и реализовывать DDL-операции в ClickHouse в условиях кластера и высокой нагрузки. В нём закрепляются принципы безопасной миграции схемы, последовательности действий и тестирования, чтобы изменения были воспроизводимыми и устойчивыми к сбоям.

 

Технические детали реализации (алгоритмы, схемы, протоколы, интеграции)

  • Алгоритм безопасной миграции через копирование
    1. Создать новую таблицу-мишень с желаемой схемой.
    2. Прэрегистрация: запустить миграцию данных пакетами, с проверкой целостности.
    3. Верифицировать данные: сравнить подсчёты и выборки между старой и новой схемой.
    4. Переключение: изменить Distributed-таблицу так, чтобы она указывала на новую таблицу.
    5. Удаление старой таблицы после подтверждения.
  • Алгоритм изменений типа столбца
    • Для простых изменений типа столбца (например, расширение размера) можно использовать ALTER TABLE MODIFY COLUMN, когда это допускается движком.
    • Для сложных изменений типа, переформатирования данных, используйте мутации или перенесение в новую таблицу.
  • Протоколы координации
    • Использование ClickHouse Keeper для координации DDL-операций в кластере. Это обеспечивает согласованность и предотвращает гонки на разных нодах.
    • Механизмы блокировок на метаданные во время DDL-операций.
  • Интеграции и пайплайны
    • CI/CD для DDL-скриптов с автоматизированным тестированием и rollback-планом.
    • Интеграции с инструментами оркестрации (Airflow, Dagster) для запуска миграций параллельно с ingestion-пайплайнами.
    • Интеграции с dbt/категорийными моделями и BI-слоями, чтобы синхронизировать SQL-шаблоны и представления.

       

Риски, ограничения и типовые ошибки (расширенный раздел)

  • Влияние на производительность во время миграций: DDL-операции могут потребовать перерасчёта индексов, перестройки частей таблиц и долгой синхронизации.
  • Ограничения DDL в ClickHouse в отношении некоторых типов изменений и сложных операций: не все операции можно выполнять мгновенно, особенно в больших кластерах.
  • Взаимодействие с репликами и зоопарковая координация: возможны конфликты, если миграция запускается на одной ноде без синхронизации на остальные.
  • Риск потери данных при некорректной миграции: необходимы бэкапы и тестирование на copy-представлениях.
  • Ограничения в версиях клиентов/серверов и совместимость: старайтесь поддерживать минимальные требования и фиксировать несовместимости.
  • Риски от несвоевременной миграции: старые пайплайны могут начать возвращать запросы на устаревшую схему.

     

Заключение

DDL-операции в ClickHouse - критическая часть жизненного цикла аналитической инфраструктуры. Правильная организация миграций, версионирование схемы, контроль изменений и автоматизация процессов - это основа для устойчивой и масштабируемой аналитики. Совокупность теоретических знаний и практических техник позволяет дизайнерам архитектуры расставлять акценты на отказоустойчивости, низкой задержке запросов и прозрачности изменений. Важную роль здесь играют координационные сервисы, такие как ClickHouse Keeper, а также современные подходы к миграциям, которые учитывают уникальные особенности OLAP-архитектур и объем данных.

 

FAQ (Вопрос-Ответ)

  1. Что такое DDL в ClickHouse и чем он отличается от других СУБД?
  • DDL в ClickHouse включает создание, изменение и удаление таблиц и индексов, однако для устойчивого обслуживания кластера важнее координация изменений между нодами, возможность применения изменений без блокировки запросов и использование механизмов Mutations для частичных переработок. В отличие от некоторых РСУБД, DDL в ClickHouse часто опирается на координator-зависимые процессы и асинхронность, когда применяемые изменения распределяются между нодами.
  1. Как безопасно выполнять миграции схемы в кластере?
  • Планируйте миграцию в несколько фаз: подготовку, создание новой таблицы с желаемой схемой, миграцию данных пакетами, верификацию целостности, переключение Distributed-таблицы на новую схему и очистку старой таблицы. Используйте тестовую среду, бэкапы и мониторинг system.mutations для контроля процесса.
  1. Какие инструменты можно использовать для миграций в ClickHouse?
  • Open-source: Liquibase, Flyway, dbt (адаптеры/плагины), Apache Airflow для оркестрации миграций. Российские решения: управление миграциями через собственные CI/CD и использование Яндекс.Облако Managed ClickHouse, а также Keeper/ClickHouse Keeper для координации кластеров.
  1. Какие типичные операции DDL встречаются часто и как их реализовать?
  • CREATE TABLE, ALTER TABLE ADD COLUMN, ALTER TABLE MODIFY COLUMN, ALTER TABLE DROP COLUMN, создание DISTRIBUTED и Replicated таблиц, MUTATIONS для изменений в данных. Примеры приведены выше. Вопросы к реализации: как избежать блокировок и как тестировать миграции на копии данных.
  1. Что такое MUTATIONS и когда их использовать?
  • MUTATIONS в ClickHouse позволяют обновлять данные внутри таблицы без полной переработки структуры. Они полезны для редактирования значений в существующих строк, но могут потребовать времени и ресурсов, особенно на больших объёмах. Используйте MUTATIONS для небольших изменений или когда требуется массовое обновление данных без изменения метаданных таблицы.
  1. Как исключить риск несогласованных изменений в кластере?
  • Обязательно применяйте DDL через централизованный координатор (Keeper/ClickHouse Keeper) и держите журнал изменений. Применяйте миграции по расписанию и тестируйте на стейдж-среде. Включайте мониторинг mutation-queue и задержек.
  1. Как интегрировать миграции с BI-слоем и моделями данных?
  • Обновляйте свой SQL-шаблоны, представления и документацию после миграций. Поддерживайте обратную совместимость, чтобы существующие отчёты и дашборды продолжали работать. Включайте тесты регрессии для BI-запросов, а также тестовые кейсы для моделей данных и ETL-процессов.
  1. Какие российские практики и продукты могут помочь в реализации ddl в ClickHouse?
  • Яндекс.Облако предлагает Managed ClickHouse для упрощения развёртывания и координации кластера. В рамках проекта используются Keeper-координация и реплицируемые таблицы, что поддерживает безопасные DDL-операции в большом кластере. Также применяются локальные CI/CD пайплайны и архитектуры на базе Kubernetes для автоматизации миграций. Это обеспечивает более предсказуемые и безопасные изменения.
  1. Как мониторить процесс DDL в ClickHouse?
  • Проверяйте system.mutations для статуса и прогресса мутации, используйте system.tables для информации о текущем состоянии таблиц, следите за задержками репликации и нагрузкой на ноды. Логи и телеметрия должны фиксировать точные временные рамки выполнения миграций.
  1. Как выбрать стратегию миграции в зависимости от задачи?
  • Для простых изменений обычно достаточно metadata-only изменений (добавление столбца). Для более сложных изменений, таких как изменение типа столбца, добавление индексов или крупных переработок данных, применяйте копирование- и-переключение паттерны, чтобы минимизировать downtime и обеспечить верификацию на промежуточном этапе.

     

Примеры open-source и российских продуктов

  • Open-source:
    • ClickHouse Keeper (координация кластера)
    • Liquibase / Flyway (модульный подход к миграциям через SQL-скрипты)
    • dbt (моделирование и миграции аналитических данных)
    • Apache Airflow (оркестрация миграций и пайплайнов)
  • Российские/локальные:
    • Яндекс.Облако Managed ClickHouse (управляемый сервис)
    • Keeper в составе экосистемы ClickHouse (координация DDL)
    • Региональные DevOps-практики, CI/CD и Kubernetes-решения, адаптированные под российскую инфраструктуру и требования к безопасности

       

Примеры кода и конфигураций

  • Пример базовой таблицы MergeTree:

    
    CREATE TABLE IF NOT EXISTS default.events
    (
        event_time DateTime,
        user_id UInt64,
        action String,
        country_code String DEFAULT ''
    )
    ENGINE = MergeTree()
    ORDER BY (event_time, user_id);
    
  • Реплицируемая таблица:

    
    CREATE TABLE IF NOT EXISTS default.events_replica
    (
        event_time DateTime,
        user_id UInt64,
        action String,
        country_code String DEFAULT ''
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/{database}.{table}', '{replica}')
    ORDER BY (event_time);
    
  • Распределённая таблица поверх реплицируемой:

    
    CREATE TABLE IF NOT EXISTS default.events_dist
    (
        event_time DateTime,
        user_id UInt64,
        action String,
        country_code String DEFAULT ''
    )
    ENGINE = Distributed('cluster_name', 'default', 'events_replica', rand());
    
  • Добавление столбца:

    
    ALTER TABLE default.events ADD COLUMN ip_address Nullable(String) DEFAULT NULL;
    
  • Изменение типа столбца:

    
    ALTER TABLE default.events MODIFY COLUMN country_code LowCardinality(Nullable(String));
    
  • Удаление столбца:

    
    ALTER TABLE default.events DROP COLUMN ip_address;
    
  • Мониторинг мутаций:

    
    SELECT mutation_id, table, create_time, is_done
    ## FROM system.mutations
    WHERE database = 'default' AND table = 'events';
    

    Заключение

    Эффективное владение ddl clickhouse - это сочетание теоретической основы, управляемых процессов миграций и практических техник для безопасного развёртывания изменений в крупных кластерах. Правильная стратегия DDL обеспечивает стойкость аналитической инфраструктуры, снижает риск простоев и позволяет бизнесу быстро адаптироваться к изменениям требований. В рамках курса вы сможете применять описанные принципы на реальных кейсах, используя открытые и российские инструменты и решения для организации миграций, координации кластера и контроля изменений.

← Предыдущая статья
clickhouse timezone
Следующая статья →
clickhouse plugin

 

Узнать стоимость решенияЗапросить видео презентацию

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • СберКорус (Группа компаний Сбербанка) – это ИТ‑компания, ИТ‑интегратор, SaaS-провайдер. Является разработчиком цифровых сервисов и услуг для автоматизации широкого диапазона бизнес-процессов юридических лиц. В 2004 году компания стала первым в России оператором электронного документооборота, а в 2012 году вошла в экосистему Сбера. 

  • ПАО АНК «Башнефть» — российская вертикально-интегрированная нефтяная компания, с 2016 года входит в ПАО НК «Роснефть». Главный офис расположен в городе Уфе (Башкортостан). Добыча углеводородов – более 21 млн тонн нефти в год. Объем переработки – более 18 млн тонн нефти в год. Число сотрудников – более 33 тыс. человек.

  • В «Пивоваренной компании «Балтика» аналитическая платформа Loginom применяется для моделирования процессов или построения отчетов, в том числе для формирования рекомендаций по корректировке плана промоактивностей.
     
  • Банк "Санкт-Петербург" - это универсальный коммерческий банк, предоставляющий полный спектр финансовых услуг для частных и корпоративных клиентов. Банк основан в 1990 году и имеет генеральную лицензию Банка России на осуществление банковских операций. Сеть банка включает более 170 офисов и отделений, а также свыше 1000 банкоматов и терминалов в Санкт-Петербурге, Москве и других регионах.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.