Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4380
0
Помогите пожалуйста решить задачи
24th November, 23:53
6084
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Какова наилучшая стратегия сохранения больших наборов данных?
Я веду проект, где мы будем записывать данные метрик. Я хотел бы сохранить данные в течение многих лет. Тем не менее, я также хотел бы, чтобы основная таблица не раздувалась с данными, которые, хотя и необходимы для долгосрочного тренда, не требуются для краткосрочной отчетности.
Какова наилучшая стратегия для решения этой ситуации? Просто архивировать старые данные в другую таблицу? Или "roll it up" через некоторую консолидацию самих данных (а затем сохранить его в другую таблицу)? Или что-то совсем другое?
Дополнительная информация: мы используем SQL Server 2005.
Мы используем оба метода в моей работе, но немного отличаемся, мы сохраняем все данные о продажах в первичной таблице в течение 30 дней, затем ночью (часть ночных заданий) продажи дней сворачиваются в сводки (n кол-во x проданных сегодня продуктов ect) в отдельной таблице для целей отчетности, а продажи за 30 дней архивируются в другую базу данных, затем раз в год (мы переходим на налоговые годы) запускается новая архивная база данных. не совсем идеально, но..
таким образом, мы быстро получаем сводные данные, сохраняем все текущие данные о продажах под рукой и имеем неограниченное пространство для подробных архивных данных. мы попытались сохранить все это в одной базе данных (в разных таблицах), но размер файла базы данных (interbase) станет настолько большим, что он будет перетаскивать систему вниз.
единственная реальная проблема, с которой мы сталкиваемся, - это доступ к подробным данным, которые охватывают несколько баз данных, поскольку подключение и отключение происходит медленно, и анализ должен выполняться в коде, а не в sql
Если вы используете SQL server 2005, это может быть хорошим кандидатом для использования секционированных таблиц .
@Jason-я не вижу, как сохранение данных в простых текстовых файлах позволит вам легко выполнять долгосрочный анализ трендов на данных.
@Jason-я думаю, что моя точка зрения заключается в том, что если какой-либо специальный анализ (т. е. тренд) должен быть выполнен на данных бизнес-людьми, свертывание или архивирование данных в текстовые файлы действительно не решает никаких проблем. Конечно, написание кода для использования текстового файла легко на многих языках, но эта проблема была решена. Кроме того, я бы сказал, что сегодняшние RDBMS являются чрезвычайно прочными при правильной настройке и обслуживании. Если бы это было не так, зачем вам запускать бизнес поверх одного (не говоря уже об архивировании данных)? Я просто не вижу смысла архивировать в обычный текстовый файл из-за утверждения, что долговечность текстовых файлов превосходит долговечность баз данных.
В зависимости от ограничений, таких как бюджет и т. д., Это звучит как идеальный кандидат для приложения хранилища данных. Это, как правило, вводит новый сервер для использования в качестве хранилища данных. SQL Server 2005 поддерживает многие из этих действий из коробки, кроме того, вы можете использовать дополнительные службы сервера SQL (например, службы Analysis Services, Reporting Services), чтобы обеспечить дополнительную ценность для ваших пользователей. (см. http://www.microsoft.com/technet/prodtechnol/sql/2005/dwsqlsy.mspx )
Любой из этих вариантов превосходен, но это действительно зависит от проблемной области. Для таких вещей, как остатки денежных средств или статистические данные, я думаю, что свертывание записей и их консолидация-лучший способ, затем вы можете переместить свернутые записи в параллельную архивную таблицу, используя их таким образом, чтобы вы могли "unroll" при необходимости. Это позволяет сохранить первичную таблицу данных чистой и быстрой, но позволяет сохранить дополнительные данные для аудита или что-то еще. Ключевой вопрос заключается в том, как вы реализуете процесс "roll-up". Либо автоматически, через триггер или процесс на стороне сервера, либо с помощью вмешательства пользователя на уровне приложения?