Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
2 / 2 / 1
Регистрация: 27.08.2016
Сообщений: 37
1
PostgreSQL

Обработка большого объёма данных (10гб)

29.11.2017, 18:55. Показов 1064. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Прошу прощения, если пишу не туда или не нашёл ответа через поиск.
Суть вопроса. Пришел ко мне заказчик со следующей задачей: Нужно хранить и обрабатывать данные множества параметров технологического оборудования. Пускай это будут условные давление и температура. В качестве БД предполагается использовать PostgreSQL (требование заказчика). Проблема заключается в том, что из этой базы данных нужно делать выборку например 10гб данных за год или несколько лет, строить по ним графики и экспортирвать по ним отчёты. Естественно работать это у пользователей должно быстро, а рабочие станции персонала не должны обладать 32гб ОЗУ. Раньше с такими объёмами данных не работал. Подскажите пожалуйста, в какую сторону копать.

Добавлено через 13 минут
Первое что приходит в голову - это мощный сервер(или кластер) для обработки всего этого и ASP.NET. Соответственно работать пользователи будут в браузере. Однако нутром чувствую, что не всё так просто.

Добавлено через 2 часа 17 минут
Хотя GUI можно сообразить и на PHP или посмотреть в сторону готовых веб-инструментов
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2017, 18:55
Ответы с готовыми решениями:

Вставка большого объема информации в базу данных MySQL
Добрый день!!! Друзья помогите разобраться, я написал программу сам, но не очень разбираюсь и не...

Сохранение большого объема данных в БД, используя Entity Framework
Доброго времени суток, подскажите как записать большой объем(10000*24) данных в бд, с наименьшими...

Какой лучший способ хранения большого объема данных?
Доброй ночи :) Требуется простой совет, каким образом лучше всего хранить большой объем данных? ...

Обработка большого объема данных
Добрый ночи ребята помогите с одной проблемой. У на старом сайте одного проекта есть база в...

11
3462 / 2473 / 695
Регистрация: 02.08.2011
Сообщений: 6,704
29.11.2017, 19:02 2
Цитата Сообщение от Phenman Посмотреть сообщение
например 10гб данных за год
Ну все 10 гб за раз ни один пользователь не сможет обработать физически, общий подход к такого рода задачам - вывод данных постранично, либо какие-то агрегированные отчеты.
Даже если каким-то образом вам действительно понадобится все 10Гб информации (что есть полный бред)- такое будет возможно только на 64x системах, поскольку в 32x системах пользовательская часть любого процесса имеет объем всего 2Гб.
Вообщем, не заморачивайте себе голову этим вопросом и пишите сайт с Postgres на бэкэнде. Видимо, вы просто не подкованы технически, а многие клиенты по большей части сами не до конца понимают, что им нужно.
1
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
30.11.2017, 12:55 3
Ух ты.
Ну хорошо, возьмем 2 поля, каждое будем хранить со знаком, итого - 16 байт на 1 запись.
Представим, что нужно 10 Гб, значит таких записей должно быть 10 000 000 000 / 16 = 625 млн штук
Прикинем, что это за 2 года, в которых 365* 2 = 730 дней.
Итого, в одном дне будет 856 тыс записей, или 594 записи в минуту, грубо 10 записей в секунду.
И с такой точностью нужно выводить графики????
Если общий график за год, то думаю что 1 точка в час - это даже больше, чем нужно.
Что-то не сходится в задаче

П.С. И это без учета того, что 10 гб - это больше, чем я написал, так что будет около 12-14 записей в сек.
0
2 / 2 / 1
Регистрация: 27.08.2016
Сообщений: 37
01.12.2017, 10:09  [ТС] 4
спасибо за ответы. Дело в том что цифра в 10гб взялась не из воздуха, а из уст заказчика. По графикам согласен - делать выборку за 2 года и брать записи за каждую секунду не имеет смысла с точки зрения сценария использования. Если человек берёт такой промежуток времени, то врядли ему интересно знать что там происходило ежесекундно. Однако в случае с генерацией некого отчёта, то там может быть табличка в которой например 15 столбцов с различными параметрами и всё это за прошедший год (бумажная бюрократия уничтожит лес - 100%).
Сейчас у них система работает на оракловской базе, а доступ пользователей осуществляется через клиентское ПО по сети. То есть это требование про 10гб у них взялось явно не с пустого места, раз это не новая для них история.
Собственно есть 3 причины по которым они хотят сделать модернизацию:
1) оракл выставил некислый счёт и они хотят перейти на постгри
2) нынешняя архитектура системы в принципе не позволяет работать с такими большими объёмами информации
3) как вчера оказалось работать они хотят не только на десктопах, но и на планшетах
Я согласен, что к сценариям использования есть большие вопросы и это ещё предстоит досконально выяснить. Сейчас надо выделить некое концептуальное решение, развернуть его на своём ноутбуке и показать как это работает.

То есть в целом моя идея верная? Из готового пока что наткнулся на вот такой инструмент PostgreeSQL PHP Generator
0
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
01.12.2017, 11:37 5
Phenman, тут просится клиент-серверная архитектура (не важно, на базе веба или десктопа), база обложенная индексами по самое небалуйся и, возможно, разделение базы на несколько: основная и архивные за года.

Больше сказать нечего без конкретики.

Добавлено через 1 минуту
Цитата Сообщение от Phenman Посмотреть сообщение
Хотя GUI можно сообразить и на PHP
А что, если веб - то только PHP? В .NET для этого вообще ничего не предусмотрено?
1
2 / 2 / 1
Регистрация: 27.08.2016
Сообщений: 37
01.12.2017, 13:30  [ТС] 6
Цитата Сообщение от Usaga Посмотреть сообщение
база обложенная индексами по самое небалуйся и, возможно, разделение базы на несколько: основная и архивные за года.
спасибо за идею
Цитата Сообщение от Usaga Посмотреть сообщение
А что, если веб - то только PHP? В .NET для этого вообще ничего не предусмотрено?
конечно предусмотрено. Вопрос только что выгоднее.

Добавлено через 4 минуты
Цитата Сообщение от IamRain Посмотреть сообщение
вы просто не подкованы технически
иначе бы не задавал здесь глупых вопросов
0
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
01.12.2017, 13:31 7
Phenman, выгоднее использовать .NET, так как на нём можно и обычный сервер создать и веб-приложение и клиентов декстопных.
0
2 / 2 / 1
Регистрация: 27.08.2016
Сообщений: 37
01.12.2017, 13:40  [ТС] 8
Цитата Сообщение от Usaga Посмотреть сообщение
Phenman, выгоднее использовать .NET, так как на нём можно и обычный сервер создать и веб-приложение и клиентов декстопных.
в глобальном смысле вы совершенно правы, однако пока не известны подробности насчёт сценариев и условий использования системы, а от этой информации зависит всё. Так что пока важно определиться с общей концепцией и показать её заказчику. Без этого доступа к дальнейшей информации, увы, нет. Идиотизм конечно, но ничего не поделаешь.
0
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
01.12.2017, 13:54 9
Цитата Сообщение от Phenman Посмотреть сообщение
однако пока не известны подробности насчёт сценариев и условий использования системы, а от этой информации зависит всё.
От этой информации зависит ничего (с моей точки зрения). Если заказчик возжелает веб-приложение - ASP.NET MVC, если десктопное - WinForms\WPF, клиент для мобилок - Xamarin. Т.е. C# тут везде уместен, куда не плюнь.
0
2 / 2 / 1
Регистрация: 27.08.2016
Сообщений: 37
01.12.2017, 13:59  [ТС] 10
Цитата Сообщение от Usaga Посмотреть сообщение
От этой информации зависит ничего (с моей точки зрения). Если заказчик возжелает веб-приложение - ASP.NET MVC, если десктопное - WinForms\WPF, клиент для мобилок - Xamarin. Т.е. C# тут везде уместен, куда не плюнь.
если рассматривать с точки зрения что надо чем-то занять .NET разработчика (а точнее группу разработчиков), то да. В противном же случае пока что не вижу острой необходимомсти в десктопном WPF клиенте и мобильном Xamarin клиенте. Я к тому что зачем увеличивать себестоимость решения, если по итогу исходя из всех условий может хватить веб-клиента
0
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
01.12.2017, 14:03 11
Phenman, я это к тому, что что-бы не выбрал заказчик - всё можно написать на .NET.

Это к вопросу:
Вопрос только что выгоднее.
0
471 / 234 / 73
Регистрация: 25.05.2012
Сообщений: 1,054
Записей в блоге: 1
01.12.2017, 14:53 12
Phenman,

Не по теме:

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

0
01.12.2017, 14:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2017, 14:53
Помогаю со студенческими работами здесь

Обработка большого объема данных (теги сайта)
Есть сайт, у него таблица tags 207,168 штук MyISAM utf8_general_ci 16 МБ весом =) ...

Обработка большого объема без нагрузки
Добрый ночи ребята помогите с одной проблемой. У на старом сайте одного проекта есть база в...

Хранение большого объема данных
Здравствуйте, задумались делать парсинг. Ищем цены и статусы товаров и что нибудь еще. Хранить...

Чтение большого объема данных
Доброго времени суток. У меня есть файлик (.тхт), в нем очень много числовых значений, которые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru