Добавить строки или заменить набор: что произойдёт с готовой выгрузкой

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

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

Файл уже получен, но решение ещё не принято

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

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

Добавление сохраняет прежние строки

При добавлении существующие записи остаются, а к ним поступают строки нового набора. Такое назначение режима описано в справочнике способов сохранения Spark 4.0.1. Однако само добавление не сообщает системе, что поступившие продажи действительно новые. Проверка повторов и смысла файла — отдельная часть договорённости.

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

Замена требует точно назвать границу

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

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

Название режима не обещает безопасного переключения

В руководстве Spark 4.0.1 по сохранению отдельно указано: описанные общие режимы не обеспечивают атомарность и блокировку; при замене старые данные могут удаляться до записи новых. Атомарность означает завершение изменения как единого целого. Эти свойства нельзя предполагать только из слова «замена».

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

Перед сохранением согласуйте смысл поставки

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

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

Сформулируйте правило до выбора инструмента

Полезное учебное упражнение — описать словами, какие строки останутся после добавления, замены и повторного получения файла. Затем отметить, каких сведений не хватает для решения. Так работа начинается с последствий для данных. Если хотите изучать такие задачи системно, посмотрите программу Data Engineer для начинающих и сопоставьте темы с вашим опытом.

Data Engineer для начинающих
Курс
Доступ сразу
Data Engineer для начинающих

Освойте Data Engineering с нуля: научитесь собирать, хранить и обрабатывать данные. Практика на каждом этапе — опыт не нужен.

С нуля до junior
Теория и практика
Диплом по окончании
12 990
₽/мес
УЗНАТЬ ПОДРОБНЕЕ

Источники

Читайте также

Обучить команду или нанять специалиста по данным: как выбрать
61

Обучить команду или нанять специалиста по данным: как выбрать

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

Вертикальное и горизонтальное масштабирование данных: в чём разница

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

Журнал изменений данных: как выяснить, кто и когда изменил набор

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

Занятия проходят
в Нова Дата СДО

Вебинары, практика и общение с преподавателем — в одном окне браузера.

Посмотреть интерфейс платформы
Календарь обучения в Нова Дата СДО
Курсы студента в Нова Дата СДО
Редактор кода для практики в Нова Дата СДО
Вебинары и расписание Ваши курсы Код в браузере
Нова Дата СДО — в реестре российского ПОРеестровая запись № 34931
Заявка отправлена
Отправим вам подборку курсов в течение 5 минут. С вами также свяжется наш специалист и даст карьерную консультацию.
Персональный промокод
На курс «Инженер по парсингу данных»
Введите код при оплате, чтобы применить скидку к программе.