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 » clickhouse nullable

clickhouse nullable

 

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

nullable-тип в ClickHouse играет ключевую роль в моделировании реальных данных: многие измерения и факты содержат отсутствующие значения или неопределенность. Правильное проектирование и грамотное использование типа Nullable позволяют сохранить полноту аналитики без компромиссов в точности расчетов и производительности. Эта глава объединяет теорию, практику и архитектурно-инженерные решения, чтобы аналитик, архитектор и ИТ-директор могли формировать устойчивые схемы данных и эффективные запросы в условиях большой вариативности данных.

 

Введение

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

Цель главы - рассмотреть не только «что» означает Nullable, но и «почему» именно такой подход применяется в современных дата-архитектурах: от схем проектирования и загрузки данных до оптимизации запросов и мониторинга качества данных. Мы затронем практики моделирования, интеграции и эксплуатации, приведем примеры из open-source проектов и российских реализаций, а также предложим чек-листы по типовым ошибкам и вопросам консолидации данных с нулем.

 

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

  • Nullable(T) - обертка над базовым типом T, позволяющая хранить значения типа T или значение NULL. В ClickHouse это означает, что колонка может содержать либо конкретное значение, либо «пустоту».
  • NULL в ClickHouse - специальное состояние значения, которое указывает на отсутствие данных. В некоторых контекстах NULL трактуется как неизвестность, а не как пустое значение.
  • NullMap (Null bitmap) - внутренняя структура хранения, которая кодирует для каждой строки, является ли значение NULL. Это разделение данных и индикатора NULL позволяет эффективно сжимать и обрабатывать столбцы Nullable.
  • isNull(col) / isNotNull(col) - функции для проверки принадлежности значения к NULL или не NULL.
  • coalesce(x, y, z, ...) / ifNull(x, default) - механизмы заполнения недостающих значений значениями по умолчанию или соседними столбцами.
  • assumeNotNull(x) - функция, которая позволяет "снять" Nullable-обертку предположительно безопасного значения, при этом если значение на самом деле NULL, возвращается ошибка. Полезна в контекстах, где гарантия не-null должна быть обеспечена бизнес-логикой.
  • NULL-safe сравнения - в ClickHouse для сравнения с NULL используются стандартные операторы IS NULL / IS NOT NULL и функции коалесцирования; сложные NULL-условия лучше реализовывать через коалесценцию или фильтрацию в подзапросах.
  • Влияние Nullable на хранение и план выполнения - добавление Nullable увеличивает объем Метаданных и стороны запроса: учтение NULLMap влияет на фильтрацию, агрегации и сортировку, что требует внимательного тестирования.

Пример базовой таблицы с Nullable колонками:


CREATE TABLE analytics.events
(
    event_id UInt64,
    user_id Nullable(UInt64),
    city Nullable(String),
    amount Nullable(Float64)
) ENGINE = MergeTree()
ORDER BY (event_id);

Ключевые моменты:

  • Численные поля часто делают Nullable, если данные могут отсутствовать.
  • Строковые поля, такие как city, тоже часто Nullable в сырых источниках.
  • В аналитических запросах NULL нуждается в особом подходе, иначе агрегаты могут исказить результаты.

     

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

  • Моделирование нулевых значений:
    • Использовать Nullable там, где отсутствие значения имеет смысл в аналитической задаче (например, неизвестный город, отсутствующая сумма).
    • Применять дефолтные значения там, где отсутствие значения не несет смысла для анализа (например, default='unknown' в строковых полях может ускорить обработку и упростить группировку).
  • Выбор между Nullable и дефолтами в контексте аналитики:
    • Если важно сохранить различие между “нулевым” значением и “неизвестно”, используйте Nullable и обрабатывайте через isNull/coalesce.
    • Для частых агрегаций и фильтраций лучше избегать NULL, переводя значение в не-nullовую форму до агрегаций.
  • Нормализация/денормализация:
    • Возможна денормализация, когда для частых NULL-полей создаются вспомогательные булевы флаги (is_city_null, has_amount), что упрощает фильтрацию и ускоряет сортировку/агрегацию.
  • ETL и загрузка данных:
    • При конвертации данных из источников, где NULL обозначается определенными маркерами (например, пустая строка, нулевое значение, специальный код), выполняется явная трансформация в NULL или соответствующее дефолтное значение.
    • Входная валидация должна фиксировать пропуски как NULL, чтобы аналитик видел истинную полноту данных.
  • Управление схемой:
    • ALTER TABLE MODIFY COLUMN позволяет менять тип или nullable-состояние. Важно проверить последствия копирования данных и обновления индексов.
    • При эволюции схемы планируйте миграцию так, чтобы не прерывать аналитические пайплайны; применяйте параллельные миграции и тестовые окружения.
  • Управление качеством данных:
    • Регулярная проверка распределения NULL по полям, настройка порогов QA и алертинг по аномалиям.
    • Использование материалов и представлений, которые учитывают NULL-значения (например, MV для подсчета доли NULL по признаку).

Совет по проектированию: не перегружайте схему слишком большим количеством Nullable-колонок в ключевых частях таблиц MergeTree. Первичные ключи и ORDER BY должны минимально зависеть от потенциально NULL-полей; вместо этого используйте вспомогательные фильтры и предикаты.

 

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

  • Архитектурная роль Nullable:
    • В ClickHouse Nullable реализуется как обертка над базовым типом T, где данные и ихNULL-состояние кодируются отдельно. Это позволяет эффективнее хранить большое число строк с пустыми значениями.
    • Внутреннее представление включает NullMap - битовую карту, которая указывает наNULL для каждой строки, отделяя чистые данные от признаков отсутствия значения.
  • Хранение и компрессия:
    • Nullable-колонки допускают более эффективную компрессию, когда значения часто повторяются, но NULL-значения встречаются часто. Наличие NullMap упрощает пропуск пустых значений при сжатии.
    • В распределенных конфигурациях (Distributed) и в репликах NullMap синхронизирован между узлами, что обеспечивает консистентность статистик и запросов.
  • Инструменты реализации:
    • Основной стек: ClickHouse на базе MergeTree-семейства, поддержка Nullable-колонок во всех текущих версиях.
    • Сопутствующие проекты: ClickHouse Keeper - замена Zookeeper для оркестрации координации кластера; ClickHouse Operator - Kubernetes-оператор для разворачивания и управления кластерами ClickHouse в облаках и локально.
    • Управляемые решения: Яндекс.Облако и другие российские провайдеры предлагают управляемые кластеры ClickHouse, включая поддержку Nullable, с учётом локальных требований к безопасности и SLA.
  • Примеры архитектурных решений:
    • Централизованный аналитический слой, где все фактовые таблицы используют Nullable для полей измерений, а дименси-таблицы держат отдельные не-nullable ключи.
    • Комбинация: факт+измерение, где факт содержит Nullable(Float64) или Nullable(Int64), а размерности - обычные типы или Nullable/String, в зависимости от источника данных.
    • В реальных сценариях часто применяют денормализацию фактов: наличие флага has_null_indication (булево), а сами значения NULL не хранятся напрямую в агрегируемых полях, что ускоряет запросы.

Пример архитектурного паттерна (упрощенный):

  • Источник данных (пакетная загрузка или поток) -> Cleansing/Transformation -> Таблицы MergeTree с Nullable полями -> МВ/запросы BI -> Панель аналитики.

Технические детали реализации (пример):

  • Интеграция с внешними системами:

    • API источников данных, которые возвращают NULL-значения, требуют прямой передачи их в Nullable столбцы без арифметической замены.
    • В потоковых конвейерах (Kafka, Debezium) следует аккуратно конфигурировать обработку NULL-подов и корректно маппировать их на Nullable.
  • Примеры запросов:

    • Подсчет количества NULL в столбце:
      SELECT count() - countNotNull(user_id) AS nulls_in_user_id FROM analytics.events;
    • Замещение NULL значением по умолчанию:
      SELECT city, coalesce(city, 'unknown') AS city_filled FROM analytics.events;
    • Проверка на NULL внутри фильтра:
      SELECT * FROM analytics.events WHERE amount IS NULL;
    • Поиск и обработка NULL в агрегациях:
      SELECT city, AVG(coalesce(amount, 0)) AS avg_amount FROM analytics.events GROUP BY city;
  • Совместная работа Nullable с агрегатами:

    • Функции агрегирования в CH либо игнорируют NULL, либо возвращают NULL, в зависимости от конкретной функции. Например, AVG NULL-значений игнорирует как пропуски и рассчитывает среднее по неNULL значениям.
    • COUNT(col) считает только не NULL значения, тогда как COUNT(*) учитывает все строки.
  • Тонкости в распределенных окружениях:

    • При использовании Distributed таблиц следует учитывать, что количество NULL-значений может различаться между фрагментами. В этом случае полезно мониторить распределение NULL и стараться избегать “склеивания” неравномерной загрузки по узлам.
    • Миграции типов и изменения дефиниций Nullable колонок должны сопровождаться тестами на корректность агрегаций и фильтров.

       

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

  • Политика обработки NULL в данных:
    • Определение корпоративной политики: какие поля допускают NULL, каковы правила заполнения пропусков, какие дефолты допустимы.
    • Ввод в процесс разработки и эксплуатации тактик контроля качества, включая регулярные проверки распределения NULL и уведомления об аномалиях.
  • Эволюция схемы:
    • Добавление Nullable к колонке, модификация ее типа требует контроля над миграциями и совместимости с ETL-пайплайнами.
    • Включение backward-compatibility тестирования и отката миграций при необходимости.
  • Мониторинг и операционные аспекты:
    • Мониторинг процента NULL значений по каждому критическому полю.
    • Аналитика по производительности запросов, связанных с NULL: сколько времени занимает обработка колонки с большим количеством NULL по сравнению с аналогичной колонкой non-null.
  • Прозрачность и документация:
    • Чёткие руководства для аналитиков и инженеров по тому, как работать с NULL в конкретных наборах данных.
    • Документация по стандартам именования структур Nullable и соглашениям при использовании coalesce/ifNull.

       

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

  • Внутренняя реализация Nullable в ClickHouse:
    • Значения базового типа T хранятся в одном массиве, а NullMap - во второй структуре, которая помечает, какие элементы являются NULL.
    • При вставке значения NULL сохраняются как значимые нулевые данные и соответствующий бит в NullMap устанавливается в 1.
    • При чтении агрегатные функции учитывают NullMap, корректно пропуская NULL и учитывая отсутствие данных, когда этого требует функция.
  • Применение в распределённой архитектуре:
    • Распределенная таблица видит множество локальных фрагментов, где NullMap суммируется в итоговой операции. Итоговая агрегация должна корректно учитывать возможные различия в нулевых распределениях.
  • Интеграции и совместимость:
    • В интеграциях с BI/Visualization инструментами поддержка Nullable важна, чтобы визуализации корректно отображали пропуски и не искажали агрегаты.
    • В сервисных API важно сохранять типизацию Nullable, чтобы не терять информацию о пропусках между слоями источников и аналитики.

       

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

  • Риски и ограничения:
    • Неправильное использование Nullable в ключах и сортировке может приводить к неэффективной выборке и смещению планов выполнения.
    • Частые NULL в больших таблицах могут снижать эффект компрессии и увеличивать объем метаданных, что требует мониторинга и настройки окружения.
    • Обращение к NULL-значениям без явной обработки через isNull/coalesce может привести к некорректным расчетам и дубликатным результатам.
  • Типовые ошибки:
    • Использование Nullable в первичных ключах или в-partition key без должного контроля.
    • Игнорирование NULL в вычислениях: недооценка влияния NULL на агрегации и распределение.
    • Неправильная миграция схемы: изменение Nullable без проверки целостности данных и тестирования внедрения.
  • Рекомендации по снижению рисков:
    • Вводить обязательную проверку качества данных на этапе загрузки, включая долю NULL по каждому критически важному полю.
    • Использовать коалесценцию (coalesce или ifNull) перед агрегатными операциями для стабильных результатов.
    • Учитывать влияние на производительность - тестировать изменение схемы на стейкхолдерах и в стейкхолдер-инфраструктуре.

       

Примеры реальных стеков и практик

  • Open-source проекты и экосистема:
    • ClickHouse - основной движок, поддерживающий Nullable столбцы во всех современных версиях.
    • ClickHouse Keeper - замена Zookeeper для управления константами и координацией кластера.
    • ClickHouse Operator - Kubernetes-оператор для развертывания Кластера ClickHouse и упрощения миграций.
  • Российские продукты и практики:
    • Яндекс.Облако предлагает управляемый ClickHouse, включая поддержку Nullable, соответствующий требованиям приватности и локализации данных.
    • Большие российские организации, внедрившие ClickHouse для аналитики и мониторинга, успешно применяют паттерны с Nullable для учета пропусков и отсутствующих измерений.
    • В рамках экосистемы открытых проектов расширяются возможности интеграции с российскими инструментами визуализации и BI, обеспечивая корректное отображение пропусков и устойчивые вычисления.

       

Заключение

Nullable-слой в ClickHouse - это не просто техническая деталь, а фундаментальная часть дизайна современных аналитических систем. Правильное использование clickhouse nullable позволяет сохранять целостность данных, минимизировать потери информации и обеспечивать корректные вычисления в условиях неопределенности. Важно помнить, что NULL - это не просто отсутствие значения, это самостоятельный концепт, который требует грамотной обработки на уровне архитектуры, ETL и запросов. В практике это означает выбор между Nullable и дефолтами, продуманное моделирование, мониторинг качества данных и тесную интеграцию между слоями источников, обработки и аналитики.

 

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

  1. Что такое clickhouse nullable и зачем он нужен?
  • Clickhouse nullable - это возможность хранить значения определенного типа T в виде Nullable(T), то есть значения типа T или NULL. Он нужен, когда данные не всегда заполнены и нужно сохранять информацию об отсутствии значения без потери точности анализа.
  1. Какие лучшие практики при проектировании схем с Nullable?
  • Размещать Nullable там, где пропуски естественны; избегать использования в ключах; применять дефолты или coalesce для агрегаций; планировать миграции схем с тестированием на типичные запросы.
  1. Какие функции особенно полезны при работе с NULL?
  • isNull, isNotNull, coalesce, ifNull, assumeNotNull - они позволяют управлять значениями NULL до выполнения агрегаций.
  1. Как оптимизировать запросы с большим количеством NULL?
  • Применять коалесценцию до агрегаций, выбирать подходящие скейлы и индексы, использовать фильтры на НЕ NULL перед тяжелыми операциями, внедрять MV для вычисления специфических NULL-вычислений.
  1. Какие есть риски при использовании Nullable?
  • Увеличение количества NullMap, рост расхода памяти и метаданных; потенциал для медленного выполнения запросов для сильно NULL-овых столбцов; необходимость корректных фильтров и тестирования.
  1. Как добавить Nullable в существующую таблицу?
  • С помощью ALTER TABLE MODIFY COLUMN city Nullable(String); затем проверить данные и обновить схему во всех пайплайнах.
  1. Как работать с NULL в распределенных системах ClickHouse?
  • Учитывать возможные различия в распределении NULL по частям данных; тестировать агрегации и фильтры на каждом фрагменте, а также мониторить консистентность статистик.
  1. Что делать с PRIMARY KEY и Nullable?
  • Обычно избегать использования Nullable в ключах; если нужно обработать пропуски в ключах, сделать отдельную колонку без NULL и использовать ее для сортировки/фильтрации.
  1. Какие есть примеры реальных реализаций и инструментов?
  • Примеры открытых проектов: ClickHouse Keeper, ClickHouse Operator; российских реализаций и услуг: управляемые кластеры ClickHouse в Яндекс.Облаке, крупные организации, использующие ClickHouse для аналитики и мониторинга.
  1. Какие паттерны применяются для обработки NULL в BI?
  • Применение коалесценции и условий IS NULL в отчетах; создание вычисляемых полей для явного отображения пропусков; использование Materialized View для пред-агрегаций, показывающих долю NULL по измерениям.

Примеры кода и архитектурных решений из практики:

  • Демонстрационная схема DDL с Nullable:

    
    CREATE TABLE sales.fact_sales
    (
        sale_id UInt64,
        product_id Nullable(UInt64),
        region Nullable(String),
        revenue Nullable(Float64)
    ) ENGINE = MergeTree()
    ORDER BY (sale_id);
    
  • Пример выражения для заполнения пропусков:

    
    SELECT sale_id, coalesce(product_id, 0) AS product_id_filled
    FROM sales.fact_sales
    WHERE revenue > 100;
    
  • Пример использования isNull:

    
    SELECT countIf(isNull(region)) AS null_regions
    FROM sales.fact_sales;
    
  • ALTER для изменения поля на Nullable:

    
    ALTER TABLE sales.fact_sales MODIFY COLUMN region Nullable(String);
    
  • Пример использования assumeNotNull (с осторожностью):

    
    SELECT assumeNotNull(user_id) AS uid
    FROM analytics.events
    WHERE isNotNull(user_id)
    LIMIT 100;
    
  • Пример паттерна с MV:

    
    CREATE MATERIALIZED VIEW analytics.mv_null_fractions TO analytics.kpi_null_fractions AS
    SELECT region, countIf(isNull(revenue)) AS null_revenue_count, count(*) AS total
    FROM analytics.fact_sales
    GROUP BY region;
    

    Эта глава задает прочные принципы работы с nullable-полями в ClickHouse, дает понятные архитектурные и инженерные рамки, а также иллюстрирует конкретные механизмы реализации и практики эксплуатации. Реальные технологические решения, включая open-source и российские продукты, демонстрируют применимость концепций в современных сценариях, где точность и производительность аналитики зависят от грамотного управления пропусками и неопределенностью значений данных.

← Предыдущая статья
clickhouse build
Следующая статья →
clickhouse bytes - эффективная работа с байтовыми представлениями в ClickHouse

 

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

Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

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

Клиенты
  • ООО "Уральская транспортная компания" — это транспортно-логистическая компания, специализирующаяся на железнодорожных перевозках грузов, создана в 2009 году.

  • Авиакомпания NordStar (АО «АК «НордСтар») – работает под данным брендом с 2008 г. и сейчас входит в топ-15 крупнейших российских авиакомпаний (данные Росавиации) с пассажирооборотом более 1 млн человек в год. АО «АК «НордСтар» выполняет и внутренние, и внешние рейсы, а ее основные хабы - Домодедово, Пулково и Емельяново. С 2021 года компания является базовым перевозчиком аэропорта Норильск.

  • ПАО «Транснефть» – крупнейшая российская нефтепроводная компания. «Транснефть» обеспечивает транспортировку более 85% добываемых в России нефти и нефтепродуктов.

  • С объединением компании Savencia Fromage & Dairy и молочного комбината в г.Белебей, одного из лидеров по производству твердых сычужных сыров в России, Savencia выходит на российский рынок не только как импортер, но и как производитель молочной продукции.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • 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 и политикой конфиденциальности.