Что означает «Массаж данных»? - PullRequest
21 голосов
/ 23 февраля 2009

Я читаю и избегаю внутреннего хранилища, если моему приложению не нужно обрабатывать данные перед отправкой в ​​SQL. Что такое массаж данных?

Ответы [ 4 ]

21 голосов
/ 23 февраля 2009

Манипулировать, обрабатывать, изменять, пересчитывать. Короче говоря, если вы просто перемещаете данные в необработанном виде, нет необходимости использовать internalStore, но если вы что-то делаете с ним до хранения, то вам может потребоваться internalStore.

16 голосов
/ 23 февраля 2009

Иногда весь процесс перемещения данных называется «ETL», что означает «Извлечение, преобразование, загрузка». Массаж данных - это «преобразование», но оно подразумевает специальные исправления, которые вы должны сделать, чтобы сгладить проблемы, с которыми вы столкнулись (как массаж делает ваши мышцы), а не преобразования между известными форматами.

Считает, что вы могли бы сделать, чтобы "массажировать" данные:

  • Изменение форматов с исходной системы на ожидаемую целевую систему, например, изменить формат даты с д / м / г на м / д / г.
  • заменить отсутствующие значения значениями по умолчанию, например, Поставьте «0», если количество не указано.
  • Отфильтровывать записи, которые не нужны в целевой системе.
  • Проверка достоверности записей и игнорирование или создание отчетов о строках, которые могут вызвать ошибку, если вы попытаетесь вставить их.
  • Нормализовать данные для удаления вариаций, которые должны быть одинаковыми, например, заменить верхний регистр на нижний регистр, заменить «01» на «1».
4 голосов
/ 23 февраля 2009

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

2 голосов
/ 21 июля 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...