Виды преобразования информации

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

ОперацияЧто меняетсяОбратимостьПример
кодированиеформа представленияобычно даUTF-8, Base64
сериализацияобъект превращается в формат передачида при известной схемеобъект → JSON
сжатиеобъём представлениябез потерь или с потерямиZIP, JPEG
шифрованиедоступность содержания без ключада с ключомciphertext
хешированиеданные превращаются в отпечатокнетконтроль целостности
фильтрацияудаляется часть записей или полейнет без оригиналатолько активные записи
агрегациядетали сворачиваются в показателинетсумма по дню
нормализациязначения приводятся к общей формезависит от правилчасовые пояса → UTC
обогащениедобавляется контекстисходная часть сохраняетсяидентификатор → атрибуты
визуализацияданные превращаются в образдетали часто теряютсявременной ряд → график

Информационные потери

Преобразование без потерь позволяет восстановить исходные данные. При преобразовании с потерями несколько исходов отображаются в один результат:

12:01:03 -> 12:00
12:14:59 -> 12:00

После округления до часа исходную секунду восстановить нельзя.

Контракт преобразования

Перед реализацией фиксирую:

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

Порядок важен. «Отфильтровать, затем агрегировать» и «агрегировать, затем отфильтровать» могут дать разные ответы.

Самопроверка

  • Почему Base64 не обеспечивает конфиденциальность?
  • Когда нормализация становится преобразованием с потерями?
  • Какие свойства нужны повторно запускаемой ETL-операции?