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 на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Администрирование Greenplum » Управление статистикой и автоматическое обновление: ANALYZE, STATISTICS, автообновление

Управление статистикой и автоматическое обновление: ANALYZE, STATISTICS, автообновление

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

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

  • Понимание того, как собираются и кэшируются статистические данные на уровне сегментов и мастера.
  • Как использовать ANALYZE и управление параметрами STATISTICS для повышения точности оценок.
  • Как работать с автообновлением статистики: режимы, триггеры изменений и лучшие практики.
  • Как интегрировать управление статистикой в операционные процессы и мониторинг производительности.

     

Архитектура статистики Greenplum

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

Основные элементы архитектуры статистики:

  • per-segment статистика: каждый сегмент собирает локальные статистические данные по своим таблицам и колонкам. Это включает распределение по значениям, гистограммы и базовые показатели, такие как NDV (число различных значений) и корреляцию между колонками.
  • глобальные оценки: в рамках планирования используется агрегированная информация, отражающая распределение по всем сегментам. Глобальные оценки позволяют планировать операции соединения, агрегации и саму схему выполнения запросов в распределённой среде.
  • системные таблицы и каталоги: статистика хранится в системных объектах и доступна через соответствующие представления и функции. Это обеспечивает согласованность планирования между координационным узлом и сегментами.

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

 

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

  • статистика по столбцам: среднее, дисперсия, распределение значений, частотности наиболее частых значений (MCV) и гистограммы. Эти данные определяют селективность условий фильтрации и выбор стратегий доступа к данным.
  • корреляции между столбцами: позволяют планировщику оценивать взаимосвязи между фильтрами и предполагать размер промежуточных результатов.
  • распределение значений и NDV: особенно критично для операторов соединения, группировки и агрегации, где размер промежуточных наборов существенно влияет на этапы выполнения.

Эти данные не только влияют на выбор индексов и методов сканирования, но и на распределение нагрузки между сегментами и порядок выполнения операций в плане. В Greenplum корректная интеграция статистики с учётом распределения данных позволяет минимизировать перерасход сетевых ресурсов и повысить параллелизм.

 

Что меняется в контексте анализa

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

 

Управление статистикой: ANALYZE и SET STATISTICS

ANALYZE - это основной механизм обновления статистики. В Greenplum он применяется к отдельной таблице или к набору колонок и выполняется на сегментах, после чего данные применяются планировщиком. Эффективность ANALYZE зависит от объёма данных, частоты изменений и параметров выборки. Важно помнить, что точность статистики растёт пропорционально качеству выборки и соответствию текущей нагрузке.

  • Анализ на уровне таблицы: наиболее распространённый сценарий. Для больших таблиц целесообразно запускать ANALYZE по разделам данных (части таблицы, если поддерживается) или в периоды минимальной активности.
  • Анализ по колонкам: конъюнктуры запросов порой требуют повышенной точности по отдельным столбцам, например для фильтров по диапазонам дат или идентификаторам клиентов. В таком случае можно указать конкретные колонки в ANALYZE.
  • Настройка STATISTICS: параметр STATISTICS управляет количеством статистических образцов, используемых для вычисления распределения значений. Увеличение числа образцов даёт более точную гистограмму и MCVs, но увеличивает нагрузку на процесс анализа.

Рекомендуемые практики:

  • Запускать ANALYZE после крупных загрузок или массовых изменений данных, особенно в таблицах с высокой селективностью.
  • Включать анализ по критичным столбцам, участвующим в фильтрах и join-условиях, чтобы минимизировать несоответствия между оценками и фактическим ходом выполнения.
  • Использовать настройку STATISTICS для чувствительных к распределению столбцов с большим количеством уникальных значений или резкими перепадами распределения.

Примеры команд (без демонстрационного кода, но с понятной формулировкой):

  • Анализировать всю таблицу:

    ANALYZE public.orders;
  • Анализировать только определённые колонки:

    ANALYZE public.sales (order_date, customer_id, amount);
  • Увеличение числа образцов для конкретного столбца:

    ALTER TABLE public.orders ALTER COLUMN customer_id SET STATISTICS 300;
  • Сбросить настройку статистик на значение по умолчанию:

    ALTER TABLE public.orders ALTER COLUMN customer_id RESET STATISTICS;

В контексте Greenplum важно помнить: после выполнения ANALYZE статистика сохраняется в системных каталогах и становится доступной планировщику, однако её обновление может потребовать времени в зависимости от размера данных и загрузки кластера. В больших кластерах предпочтительно использовать параллельную реализацию ANALYZE, чтобы минимизировать влияние на выполнение текущих запросов.

 

Настройки STATISTICS и влияние на качество планирования

  • STATISTICS target: параметр, влияющий на количество образцов, используемых при вычислении статистики по колонке. Более высокое значение даёт точнееую гистограмму и более надёжную оценку селективности, но требует больше ресурсов во время анализа.
  • Cross-column statistics: наличие и качество пересечённых статистик между колонками позволят планировщику точнее оценивать сложные фильтры и соединения, особенно если данные распределены нестационарно.
  • Частичные анализы: для очень больших таблиц целесообразно применять анализ частями, чтобы снизить влияние на производительность системы во время анализа, сохраняя способность планировщика опираться на актуальные данные.

     

Автообновление статистики: принципы и настройка

Автообновление статистики призвано поддерживать актуальность статистических данных без ручного вмешательства. В Greenplum реализуются подходы, аналогичные автоанализу в рамках управляемых процессов хранения данных, но с учётом распределённой архитектуры. Механизм автообновления может работать по нескольким сценариям:

  • Триггеры изменений данных: после существенных изменений в таблице система автоматически инициирует анализ только той части, где данные поменялись, с последующей перерасчётной выборкой по соответствующим колонкам.
  • Регулируемые пороги: порог изменений в объёме данных или порог статистического сдвига по колонкам запускает автообновление. Это позволяет избегать частых перерасчётов на стабильно изменяющихся данных.
  • Режимы автообновления: выделяют режимы активации автообновления, например постоянно включённый (on) и пакетный режим, при котором обновления запускаются в заданные интервалы времени или в периоды минимальной нагрузки.
  • Роли и ответственность: внедрение автообновления требует согласованности между командами эксплуатации и аналитики. В рамках процессов CI/CD и еженедельных maintenance-window должны быть предусмотрены правила для перезапуска статистик после крупных изменений.

Практические подходы:

  • Включение автoобновления для критических наборов таблиц: таблицы с высокой долей критичных фильтров и частыми запросами.
  • Контроль минимального объёма изменений: автообновление активируется только при достижении определённого процента изменений по данным таблицы или после обновления конкретных колонок.
  • Гибкость режимов: возможность временно отключать автообновление во время пиковых изменений и встраивать обновления в maintenance window.

Типовые конфигурации (псевдокод конфигурационных настроек):

  • Включение автообновления:

    SET gp_autostats_mode = 'on';
  • Ограничение частоты запусков автообновления:

    SET gp_autostats_threshold = 0.25; -- порог изменений в доле данных
  • Включение автообновления для отдельных схем:

    ALTER TABLE public.sales SET (autostats = on);

    Важно: конкретные названия параметров и их значения зависят от версии Greenplum. В рамках проекта следует опираться на документацию соответствующей версии и регламентировать параметры через централизованное управление конфигурациями.

     

Мониторинг и диагностика статистики

Эффективное управление статистикой невозможно без надлежащего мониторинга. Важно не только запускать ANALYZE и настраивать автообновление, но и регулярно проверять соответствие между ожидаемой и фактической производительностью запросов. Основные направления мониторинга:

  • Валидация планов: использование EXPLAIN и EXPLAIN ANALYZE для сравнения оценок статистики и реального выполнения. Обращайте внимание на расхождения между estimated_rows и actual_rows, а также на количество сканируемых строк в разных этапах плана.
  • Контекстная проверка статистик: мониторинг изменений в distribution stats, NDV и корреляции между столбцами. В случае резкого изменения соответствующих параметров планировщик может выбирать другой план или перестраивать стратегию выполнения.
  • Контроль задержек обновления: отслеживание задержек между изменениями данных и обновлением статистики, чтобы минимизировать риск устаревших оценок.
  • Инструменты и представления: использование системных представлений и инструментов мониторинга для оценки активности ANALYZE и автообновления и вычисляемых метрик, таких как частота исполнения ANALYZE, среднее время обновления и влияние на производительность.

Практический подход:

  • Регулярно сверяйте план с фактическим маршрутом выполнения, особенно после крупных загрузок или изменений данных.
  • Включайте автоматические проверки в процесс CI/CD, чтобы выявлять несоответствия между статистикой и тестовыми нагрузками.
  • Введение регламентов на периодическую переоценку стратегий обслуживания статистики в зависимости от изменений в бизнес-логике и характере запросов.

     

Встраивание статистики в эксплуатационные процессы

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

  • Регламентированные окна обслуживания: планируйте регулярные обновления статистики, особенно после крупных загрузок, изменений схемы или перераспределения данных.
  • Автоматизация в ETL и пайплайнах аналитики: включайте ANALYZE сразу после завершения загрузок и перед запуском критичных аналитических пайплайнов. Это обеспечивает актуальность статистики на момент запуска сложных планов.
  • Контроль версий и аудита: фиксируйте версии статистик для важных таблиц, чтобы можно было сравнить планировочные решения между версиями статистики и откатиться к предыдущему состоянию при необходимости.
  • Взаимодействие с BI и аналитикой: согласуйте частоту обновления статистики и требования к точности в рамках SLA по аналитическим запросам.

     

Примеры сценариев внедрения

  • Сценарий 1: частые загрузки продажной информации и осторожная настройка ANALYZE

    • После каждых загрузок выполняется ANALYZE на целевых таблицах, особенно на колонках, вовлечённых в фильтры и соединения.
    • Для крупных таблиц анализ выполняется по частям; статистика по критичным колонкам увеличивается через STATISTICS.
    • Автообновление включено для наиболее изменяемых таблиц, с порогами изменений, не вызывающими перегрузку кластера.
  • Сценарий 2: крупная миграция схемы и перераспределение данных

    • До миграции проводится ANALYZE на новой структуре, затем после миграции - повторно, чтобы учесть перераспределение.
    • Проверяются такие метрики, как различие между планируемыми и фактическими количеством строк на этапах выполнения.
  • Сценарий 3: интеграция в CI/CD

    • В пайплайны тестирования включён этап проверки статистик: выполняются тестовые запросы с EXPLAIN ANALYZE, сравниваются оценки с реальными выполнениями.
    • При попадании в порог ошибок - проводится анализ и обновление статистики до повторного прогонки тестов.

       

Key takeaways

  • Статистика критически влияет на качество планирования в Greenplum; грамотное управление statics повышает предсказуемость производительности.
  • ANALYZE и настройка STATISTICS - базовый набор инструментов для точного отражения текущего состояния данных.
  • Автообновление статистики снижает риски устаревших оценок, но требует аккуратной настройки порогов и режимов.
  • Разумное распределение ANALYZE по сегментам и целевые колонные анализы помогают удержать баланс между точностью и нагрузкой на систему.
  • Мониторинг планов и фактического исполнения - залог выявления несоответствий и оперативной коррекции стратегии статистики.
  • Встраивание процессов обновления статистики в эксплуатационные пайплайны и CI/CD обеспечивает устойчивость к изменению рабочих нагрузок.
  • Взаимодействие разных команд (эксплуатация, BI, аналитика) критично для эффективного управления статистикой и соответствия SLA.

     

FAQ

  1. Что именно делает ANALYZE в Greenplum, и зачем он нужен?
  • ANALYZE собирает статистические данные по таблице или её частям, обновляя распределение значений по колонкам, частоты наиболее часто встречающихся значений и другие параметры. Эти данные используются планировщиком для оценок и выбора наиболее эффективного плана выполнения. Без актуальной статистики план может выбирать узкопрофильные стратегии, приводящие к перерасходу ресурсов и менее предсказуемой производительности.

 

  1. Какие типы статистики доступны и как они влияют на планирование?
  • Основные типы статистик - по столбцам: распределение значений, MCV, NDV и гистограммы; корреляции между столбцами; распределение по сегментам влияет на выбор стратегий сканирования и операций соединения. В Greenplum точность этих данных напрямую влияет на селективность фильтров и размер промежуточных наборов.

 

  1. Что такое STATISTICS target и как его подобрать?
  • STATISTICS target управляет количеством образцов, используемых для вычисления статистики по колонке. Более высокий target даёт более точную гистограмму и лучшее представление распределения, но требует больше ресурсов во время анализа. Рекомендация - начать с базового значения и повышать его для колонок, которые участвуют в часто повторяющихся фильтрах и сложных соединениях.

 

  1. Как работает автообновление статистики и какие режимы существуют?
  • Автообновление призвано поддерживать статистику актуальной между ручными запусками. Режимы обычно включают автономный режим (on) и пакетные/периодические обновления; пороги изменений по данным или колонкам могут активировать обновления. Внедрение автообновления требует координации между эксплуатацией и аналитикой и согласования SLA по времени обновления статистик.

 

  1. Как избежать перегрузки кластера при обновлении статистики?
  • Разделяйте обновления на части для больших таблиц; используйте частичные ANALYZE и планируйте обновления на окна минимальной нагрузки. Включение анализа только по критичным столбцам может снизить накладные расходы, сохранив точность там, где это наиболее важно.

 

  1. Как проверить качество статистики на практике?
  • Используйте EXPLAIN и EXPLAIN ANALYZE для сравнения оценок с фактическим ходом выполнения. Анализируйте расхождения между estimated_rows и actual_rows, особенно на этапах соединений и агрегаций. Мониторинг изменений в планах после обновления статистики помогает понять, насколько актуальны данные.

 

  1. Какие сигналы говорят о проблемах со статистикой?
  • Частые изменения в плане после загрузок данных; резкие повышения/падения производительности без видимой причины; расхождения между ожидаемыми и фактическими временами выполнения; увеличение числа возвращаемых строк, которых не ожидалось по фильтрам.

 

  1. Как внедрить управление статистикой в процессы эксплуатации и BI?
  • ВключайтеANALYZE в этапы ETL и в maintenance window; синхронизируйте расписания обновления статистик с крупными аналитическими пайплайнами; документируйте параметры STATISTICS и режимы автообновления для прозрачности и аудита.

 

  1. Что делать после крупной миграции или перераспределения данных?
  • Выполните ANALYZE на новой структуре; после перераспределения данных - повторно проанализируйте соответствующие таблицы и колонки, особенно те, которые подпадают под новые схемы и распределения. Это обеспечит корректность глобальных оценок планировщика.

 

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

 

← Предыдущая статья
Тюнинг выполнения запросов: планы, распределение, движение, фильтрация и ускорители
Следующая статья →
Управление ресурсами и очередями: Workload Management, Resource Queues, профили

 

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

Решения

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

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

  • В «Пивоваренной компании «Балтика» аналитическая платформа Loginom применяется для моделирования процессов или построения отчетов, в том числе для формирования рекомендаций по корректировке плана промоактивностей.
     
  • ООО «Модум-Транс» — независимый оператор грузовых железнодорожных перевозок, лидирующий по количеству инновационного парка на сети РЖД.

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

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