Пожизненное предложение Boardmix - от ₽8000
Экономия до 80% - специальное предложение на новую версию
Смотреть планы
activity banner
logo logo
Продукт
Mackenzie Carter
Mackenzie Carter

Опубликовано 19.10.2026, обновлено 19.10.2026

Шаблон маппинга данных описывает, как каждое поле источника превращается в поле целевой системы: откуда берётся значение, какое преобразование разрешено и что делать, если значение нельзя использовать. Стрелка от «Идентификатор клиента» к «ID» — только начало. Её недостаточно для реализации и проверки импорта.

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

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

Что должно быть в описании соответствий полей

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

Схема фиксирует договорённость о переносе данных. Сама миграция на ней не выполняется. Скрипт импорта или интеграционный инструмент должен реализовать правила и сформировать принятые и отложенные записи.

Различайте три связанных документа:

  • ER-диаграмма описывает сущности, атрибуты и связи в модели данных.
  • Диаграмма потоков данных показывает движение данных между процессами, хранилищами и внешними участниками.
  • Маппинг «источник — приёмник» определяет, что происходит с отдельными полями при переносе.

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

Пример: пять полей при импорте клиентов

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

Поле исходного CSVЦелевое поле и типЗначение
source_refcustomer_id — текстСтабильный идентификатор клиента
company_labeldisplay_name — текстНазвание организации, которое видят пользователи
countrycountry_code — текстКод из допустимого списка стран целевой системы
joinedjoined_date — датаДата регистрации клиента без времени
stateaccount_status — текстПризнак активной или неактивной учётной записи

В этом примере все пять целевых полей обязательны. Система принимает только коды стран GB, JP и ES, а также статусы active и inactive. Это намеренно короткие учебные списки, а не рекомендация ограничить реальную клиентскую базу тремя странами.

Идентификатор остаётся текстом, даже если состоит только из цифр. Преобразование «0017» в число 17 изменило бы идентификатор. Тип данных определяет смысл, а не только внешний вид значения.

Опишите преобразование и ошибку для каждого поля

СоответствиеПреобразованиеОтложить строку, если…
source_ref → customer_idУбрать пробелы по краям; сохранить остальные символы, включая ведущие нули.Результат пуст или встречается во входном файле более одного раза.
company_label → display_nameУбрать пробелы по краям; сохранить внутренние пробелы, написание и диакритические знаки.Результат пуст.
country → country_codeПосле удаления пробелов по краям заменить United Kingdom → GB, Japan → JP, Spain → ES.Значения нет в этом точном списке соответствий.
joined → joined_dateПосле удаления пробелов принять существующую календарную дату в формате YYYY-MM-DD.Дата отсутствует, неоднозначна, невозможна или записана в другом формате.
state → account_statusПосле удаления пробелов заменить A → active, I → inactive.Код отсутствует или отличается от A и I.

В этом примере неизвестные значения не исправляются автоматически. Строка со строчной «a» откладывается, поскольку спецификация источника допускает только прописные A и I. Если команда хочет не учитывать регистр, нужно явно изменить правило и добавить соответствующий тест. Удобная настройка инструмента не должна сама определять эту политику.

Аналогично нельзя угадывать значение «03/09/26» по региональным настройкам компьютера, с которого запускается импорт. Эта запись может означать разные даты. Попросите владельца источника предоставить согласованный формат либо зафиксируйте известный формат источника до преобразования.

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

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

Проследите одну запись от входа до результата

Вот полная исходная запись. Кавычки помогают увидеть пробелы по краям; сами кавычки не входят в хранимые значения.

  • source_ref: « 0017 »
  • company_label: «Orion Studio »
  • country: «United Kingdom»
  • joined: «2026-09-03»
  • state: «A»

Если ни у одной другой строки после удаления внешних пробелов не получается идентификатор 0017, принятая целевая запись будет такой:

  • customer_id: «0017»
  • display_name: «Orion Studio»
  • country_code: «GB»
  • joined_date: 2026-09-03
  • account_status: «active»

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

Предусмотрите отложенные записи

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

Проблема на входеОжидаемое действиеКод причины
joined содержит «2026-02-30»Отложить строку; не переносить дату на март.INVALID_JOINED_DATE
country содержит «UK»Отложить строку: такого значения нет в исходном списке примера.UNMAPPED_COUNTRY
state пустОтложить строку; не считать учётную запись активной автоматически.MISSING_STATUS
Две строки дают customer_id «0017» после удаления пробеловОтложить обе, пока владелец источника не разберётся с дубликатом.DUPLICATE_CUSTOMER_ID

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

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

Карточка маппинга для каждого поля

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

  • Идентификатор: M-03
  • Источник: customer_export.country, текст
  • Приёмник: customer.country_code, обязательное текстовое поле
  • Смысл: классификация страны, принятая в целевой системе
  • Правило: убрать внешние пробелы; применить соответствия United Kingdom/GB, Japan/JP и Spain/ES
  • Пустое или неизвестное значение: отложить всю исходную строку
  • Пример: « Japan » становится «JP»; «JPN» откладывается
  • К кому обращаться: к ответственному за значения стран в источнике

Если преобразование зависит от нескольких полей, перечислите их на одной карточке. Поле full_name, составленное из given_name и family_name, — не два независимых прямых соответствия. Вместе задайте порядок частей, разделители и поведение при отсутствии одной из частей. Для поиска значения в другой таблице укажите ключ и действия при нуле или нескольких совпадениях.

Разберите с командой успешный и ошибочный набор

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

Попросите владельца источника объяснить значения, а владельца целевой системы — её требования. Затем проведите примеры через каждое правило. Если один участник ожидает принятия «UK», а другой — откладывания строки, согласуйте справочник до запуска импорта.

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

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

Присоединяйтесь к Boardmix для совместной работы с вашей командой
Попробуйте Boardmix онлайн Скачать на рабочий стол
Наверх
twitter
                        share
facebook
                        share