Вопрос

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

Теперь я могу добавить поле, скажем is_deleted , которое будет отслеживать, был ли этот продукт удален, и, таким образом, по-прежнему сохранять все мои ссылки, но со временем у меня может появиться много мертвых данных.(данные, к которым больше никогда не будет доступа).Как с этим справиться - это не мой вопрос.

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

Это было полезно?

Решение

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

Как упоминает Коистья Навин, перемещение данных в хранилище данных в определенный момент также возможно, но это во многом зависит от того, насколько велики ваши "старые" данные и как долго вам нужно сохранять их легкодоступными для доступа.

Другие советы

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

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

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

Ссылка: Хранилище данных в Википедии

Я всегда исходил из того, что ищет правящий орган.Пример Налоговое управление США хочет, чтобы вы хранили 7-летнюю историю или по соображениям безопасности мы храним информацию журнала за 3 года и т.д.Итак, я думаю, вы могли бы сделать 2 вещи, определить, какова продолжительность жизни ваших данных, я бы сказал, 3 лет было бы достаточно, а затем вы могли бы добавить флаг is_deleted вместе с датой, чтобы вы могли пометить некоторые данные для удаления раньше, чем позже.

Да, все данные имеют срок службы.И да, это зависит от типа данных, которыми вы располагаете.

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

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

Наш особый вкус варьируется.У нас есть некоторые данные (подавляющее большинство), которые устаревают через 3 месяца (жесткий лимит продуктов), но могут быть восстановлены в любой более поздний срок.

У нас есть другие данные, которые фактически бессмертны.

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

Сколько стоит "много мертвых данных"?

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

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

Кроме того, спросите себя, в чем заключается выгода от удаления старых данных.Является ли единственным преимуществом более аккуратная база данных?Если так, я бы не стал этого делать.Собираетесь ли вы увидеть увеличение производительности в 10 раз?Если так, я бы сделал это.Однако это действительно сложный вопрос, и нам сложно располагать всей информацией, необходимой для того, чтобы дать вам хороший совет.

У меня есть несколько проектов, где заказчику нужны все исторические данные (за 19 лет).Довольно большая часть действительно старых данных искажена, и импортировать их в новую систему будет сущим кошмаром.Мы убедили их, что им не понадобятся записи, датируемые более чем 10 годами, но, как вы сказали, все зависит от типа данных, которые вы предоставляете.

Кстати, хранение данных сейчас чрезвычайно дешево, и если это не влияет на производительность вашего приложения, я бы просто оставил его там, где оно есть.

[...] но, конечно, все данные имеют какой-то срок службы?

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

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

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

Но они будут, когда они выполнят эти отчеты, тогда они получат доступ к этим данным.

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

uh...at риск oversimplifying...it похоже, что использование DateDeleted вместо a bit решит вашу проблему с тем, как долго хранить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top