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 на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по Data Governance, Data Quality, MDM, Data Lineage » Проверка схемы данных с помощью GX

Проверка схемы данных с помощью GX

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

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

Great Expectations (GX) предоставляет ожидания, ориентированные на схему, которые позволяют определить и обеспечить структурную целостность наборов данных. Вы можете генерировать некоторые из этих ожиданий автоматически (особенно, при добавлении нового актива данных в GX Cloud). Эти инструменты позволяют организовать надежную проверку схем в пайплайнах, помогая выявлять и устранять проблемы, связанные со схемами, до того, как они распространятся по всей экосистеме данных. Из этой статьи Вы узнаете о том, как использовать эти ожидания для эффективной проверки схемы в рабочих процессах, связанных с данными.

 

Необходимые условия

Эта статья предполагает владение базовыми компонентами и рабочими процессами GX.

 

Предварительный обзор данных

Ниже приведен образец набора данных, на который ссылаются примеры и пояснения, описанные в этой статье:

type

sender_acc

ount_number

recipien

t_fullname

transfe

r_amount

transf

er_date

domestic

244084670977

Jaxson Duke

9143.40

2024-05-01 01:12

domestic

954005011218

Nelson O’Connell

3285.21

2024-05-01 05:08

 

Этот набор данных отражает финансовые переводы, зарегистрированные банковскими учреждениями. Его поля включают в себя тип счета, счет отправителя, имя отправителя, сумму и дату перевода.

 

 

Ключевые ожидания касательно схемы

У GX есть коллекция ожиданий для проверки схем, каждую из которых можно добавить непосредственно из пользовательского интерфейса GX Cloud или с помощью библиотеки GX Core Python. Некоторые из них могут генерироваться при добавлении нового актива данных с помощью GX Cloud автоматически.

Ожидания схемы обеспечивают основные решения по проведению проверки данных.

 

Ожидания на уровне столбца

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

 

Expect Column Values To Be Of Type

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

Пример: Работа с данными, передаваемыми в форматах, не содержащих схем (например, CSV), где при появлении новых значений может произойти явное изменение типа данных.

 

gxe.ExpectColumnValuesToBeOfType(column="transfer_amount", type_="DOUBLE_PRECISION")

 

 

 

Expect Column Values To Be In Type List

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

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

gxe.ExpectColumnValuesToBeInTypeList(column="type", type_list=["INTEGER", "STRING"])

 

Подсказка GX касательно ожиданий на уровне столбцов

Объедините ExpectColumnValuesToBeInTypeList с протоколированием для того, чтобы отслеживать, какие типы встречаются чаще всего ( в конечном итоге это поможет Вам при стандартизации).

 

Ожидания на уровне таблиц

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

 

Expect Column To Exist

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

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

gxe.ExpectColumnToExist(column="sender_account_number")

 

Expect Table Column Count To Equal

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

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

gxe.ExpectTableColumnCountToEqual(value=5)

 

Expect Table Columns To Match Ordered List

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

Пример: Особенно актуально при решение таких задач, как изменение порядка вычисления количества столбцов при сериализации.

gxe.ExpectTableColumnsToMatchOrderedList(
    column_list=[
        "sender_account_number",
        "recipient_account_number",
        "transfer_amount",
        "transfer_date",
    ]
)

 

Expect Table Columns To Match Set

Проверяет набор данных на предмет содержания определенных столбцов без учета их порядка. Данное ожидание гарантирует гибкость в тех случаях, когда наличие столбцов более важно, чем их порядок.

Пример: применимо для наборов данных, которые могут подвергнуться переупорядочиванию в процессе предварительной обработки.

gxe.ExpectTableColumnsToMatchSet(
    column_set=[
        "sender_account_number",
        "recipient_account_number",
        "transfer_amount",
        "transfer_date",
    ],
    exact_match=False,
)

 

Автоматизация данного правила

Когда Вы создаете новый актив данных с помощью GX Cloud, Вы можете выбрать автоматическую генерацию данного ожидания для того, чтобы проверить, что столбцы не отклоняются от первоначального набора (с течением времени).

 

Expect Table Column Count To Be Between

Гарантирует, что количество столбцов находится в заданном диапазоне, обеспечивая гибкость для наборов данных, которые могут расширяться или сжиматься в границах, известных заранее.

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

gxe.ExpectTableColumnCountToBeBetween(min_value=6, max_value=8)

 

Подсказки GX для ожиданий на уровне таблиц:

  • Внедрите ExpectColumnToExist уже на самых ранних этапах пайплайна для того, чтобы как можно быстрее обнаружить отсутствующие столбцы и свести к минимуму количество ошибок и возможных переделок на последующих этапах;
  • Периодически пересматривайте и обновляйте ExpectTableColumnCountToEqual вместе с любыми изменениями схемы, особенно при появлении новых нормативных требований;
  • Используйте ExpectTableColumnsToMatchOrderedList вместо ExpectTableColumnsToMatchSet в случае, когда порядок столбцов имеет большое значение (например, в сценариях, напрямую ссылающихся на позиции столбцов).
  • При интеграции наборов данных из разных источников, где порядок столбцов может отличаться, но важна согласованность имеющихся данных, выбирайте ExpectTableColumnsToMatchSet;
  • Регулярно пересматривайте допустимый диапазон в ExpectTableColumnCountToBeBetween по мере изменения набора данных, обеспечивая его соответствие требованиям Вашего бизнеса и предвосхищая возможное расширение в будущем.

 

Примеры

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

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

 

Согласованность схемы с течением времени

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

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

import pandas as pd

import great_expectations as gx
import great_expectations.expectations as gxe

# Create Data Context.
context = gx.get_context()

# Create Data Source and Data Asset.
# CONNECTION_STRING contains the connection string for the Postgres database.
datasource = context.data_sources.add_postgres(
    "postgres database", connection_string=CONNECTION_STRING
)

data_asset = datasource.add_table_asset(name="data asset", table_name="transfers")

# Create Expectation Suite and add Expectations.
suite = context.suites.add(gx.ExpectationSuite(name="schema expectations"))

suite.add_expectation(
    gxe.ExpectTableColumnsToMatchSet(
        column_set=[
            "type",
            "sender_account_number",
            "recipient_fullname",
            "transfer_amount",
            "transfer_date",
        ],
        exact_match=False,
    )
)
suite.add_expectation(gxe.ExpectTableColumnCountToEqual(value=5))

# Create Batch Definition.
batch_definition = data_asset.add_batch_definition_whole_table("batch definition")
batch = batch_definition.get_batch()

# Validate Batch.
validation_definition = context.validation_definitions.add(
    gx.ValidationDefinition(
        name="validation definition",
        data=batch_definition,
        suite=suite,
    )
)

# Define Checkpoint, run it, and capture result.
checkpoint = context.checkpoints.add(
    gx.Checkpoint(name="checkpoint", validation_definitions=[validation_definition])
)

checkpoint_result_1 = checkpoint.run()

# Add a column to alter the table schema.
# update_table_schema() updates the underlying transfers table.
add_column_to_transfers_table()

# Rerun the Checkpoint and capture result.
checkpoint_result_2 = checkpoint.run()

# Format results.
results = []

for checkpoint_result in [checkpoint_result_1, checkpoint_result_2]:
    run_result = checkpoint_result.run_results[
        list(checkpoint_result.run_results.keys())[0]
    ]

    results.append(
        {
            "timestamp": run_result["meta"]["run_id"].run_time.strftime(
                "%Y-%m-%d %H:%M:%S"
            ),
            "success": run_result["success"],
            "evaluated_expectations": run_result["statistics"][
                "evaluated_expectations"
            ],
            "successful_expectations": run_result["statistics"][
                "successful_expectations"
            ],
            "unsuccessful_expectations": run_result["statistics"][
                "unsuccessful_expectations"
            ],
        }
    )

pd.DataFrame(results)

 

Результат:

timestamp

success

evaluat

ed expectations

successf

ul expectations

unsuccessf

ul expectations

timestamp of first Validation

True

2

2

0

timestamp of second Validation

False

2

1

1

 

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

 

Строгая и облегченная проверка схемы

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

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

import great_expectations as gx
import great_expectations.expectations as gxe

context = gx.get_context()

# Create Data Source, Data Asset, and Batch Definition.
# CONNECTION_STRING contains the connection string for the Postgres database.
datasource = context.data_sources.add_postgres(
    "postgres database", connection_string=CONNECTION_STRING
)

data_asset = datasource.add_table_asset(name="data asset", table_name="transfers")

batch_definition = data_asset.add_batch_definition_whole_table("batch definition")

batch = batch_definition.get_batch()

# Create Expectation Suite with strict type and column Expectations. Validate data.
strict_suite = context.suites.add(gx.ExpectationSuite(name="strict checks"))

strict_suite.add_expectation(
    gxe.ExpectTableColumnsToMatchOrderedList(
        column_list=[
            "type",
            "sender_account_number",
            "recipient_fullname",
            "transfer_amount",
            "transfer_date",
        ]
    )
)

strict_suite.add_expectation(
    gxe.ExpectColumnValuesToBeOfType(column="transfer_amount", type_="DOUBLE PRECISION")
)

strict_results = batch.validate(strict_suite)

# Create Expectation Suite with relaxed type and column Expectations. Validate data.
relaxed_suite = context.suites.add(gx.ExpectationSuite(name="relaxed checks"))

relaxed_suite.add_expectation(
    gxe.ExpectTableColumnsToMatchSet(
        column_set=[
            "type",
            "sender_account_number",
            "transfer_amount",
            "transfer_date",
        ],
        exact_match=False,
    )
)

relaxed_suite.add_expectation(
    gxe.ExpectColumnValuesToBeInTypeList(
        column="transfer_amount", type_list=["DOUBLE PRECISION", "STRING"]
    )
)

relaxed_results = batch.validate(relaxed_suite)

print(f"Strict validation passes: {strict_results['success']}")
print(f"Relaxed validation passes: {relaxed_results['success']}")

 

Результат:

Strict validation passes: True
Relaxed validation passes: True

 

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

Наиболее распространенные ошибки, допускаемые в процессе проверки схем

  • Несоответствующие типы данных: несоответствие типов данных возникает в случае, когда данные поступают из разных источников или когда определения схем обновляются без полной проверки. Подобные несоответствия могут приводить к ошибкам в обработке информации, что делает результаты анализа ненадежными. В этом случае Вам помоет регулярный мониторинг точек ввода данных и строгое соблюдение согласованности типов с помощью системы проверки данных (смотрите ExpectColumnValuesToBeOfType и ExpectColumnValuesToBeInTypeList);
  • Развитие схемы: Изменение требований бизнеса часто приводит к необходимости изменения схем данных, что при ненадлежащем управлении может привести к серьезным сбоям в работе системы. Изменения схем могут нарушать пайплайны и приводить к проблемам совместимости данных. Внедрение структурированного процесса версионирования схем и поддержания обратной совместимости поможет сделать эти изменения менее критическими. Периодически пересматривайте и обновляйте свою схему данных (ExpectTableColumnCountToEqual и ExpectTableColumnsToMatchOrderedList).
  • Использование только лишь проверки схемы: Один из самых распространенных подводных камней в данном случае - это чрезмерная зависимость от проверки схемы как единственного механизма обеспечения качества данных. Хотя проверка схемы и обеспечивает структурную целостность, она все же не учитывает семантическую корректность данных. Для того, чтобы добиться действительно высокого качества данных, сочетайте проверку схемы с семантическими проверками на уровне полей, например, с проверкой диапазонов значений, шаблонов и связей между полями. Начните с реализации ожиданий на уровне столбцов и ожиданий на уровне таблиц;
  • Ведение журнала и мониторинг: Даже самая идеальная настройка проверки может дать сбой без надлежащего протоколирования и мониторинга процессов. Незафиксированные сбои в проверке схем могут незаметно распространяться по всему пайплайну, что может привести к более серьезным последствиям. Детальное протоколирование и мониторинг в режиме реального времени необходимы для создания аудиторского отчета и оперативного обнаружения и разрешения проблем, связанных с  проверкой схем. Регулярно проверяйте и корректируйте свои схемы с помощью ожидания ExpectTableColumnCountToBeBetween.

 

Дальнейшие шаги

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

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

 

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

← Предыдущая статья
Работа с полями с отсутствующими значениями с использованием GX
Следующая статья →
Проверка уникальности данных с помощью GX
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

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

loading...

Решения

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

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

  • Группа компаний «Невский кондитер» основана в 1996 году в Санкт-Петербурге и на сегодняшний день является одним из крупнейших производителей кондитерских изделий в России.

     

  • АО «НСПК» - оператор национальной системы платежных карт, который предоставляет операционные услуги и услуги платежного клиринга операторам платежных систем, в том числе Банку России и кредитным организациям. В задачи АО «НСПК» входит обеспечение бесперебойного доступа к переводам денежных средств в Российской Федерации с использованием платежных инструментов.  Также компания является оператором национальной платёжной системы «Мир» и операционным и платёжным клиринговым центром Системы быстрых платежей (СБП).

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