powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Подойдет ли мне Java
23 сообщений из 23, страница 1 из 1
Подойдет ли мне Java
    #38467945
darlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток, никак не могу определиться c выбором между изучением C# или Java. Цель у меня работать c COM (Component Object Model) под большой нагрузкой, а именно собирать данные с производственные точек контроля с помощью OPC сервера и класть в hadoop. hadoop написан на java, а c# хорошо работает с COM, вроде как...Что можете мне подсказать, как java работает с COM под большие нагрузки? Не охота строить зоопарк, да изучать два языка...
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468081
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darlovЧто можете мне подсказать, как java работает с COM...? JACOB - Java COM Bridge darlovпод большие нагрузкиНе пробовал.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468159
Anatoly D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
darlov,

а зачем Вам hadoop? Расскажите про объём данных, хотяб приблизительно и их целевое использование.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468267
darlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly D, Происходит ежесекундный опрос датчиков, их сейчас около 1000, скорей всего будет больше, я планирую сохранять сырые данные в hadoop, это порядка 3 600 000 значений в час, после агрегировать в Posgresql.
Это на данный момент 1000 знач/сек, а если больше, получается значительная нагрузка, с которой СУБД явно не справится.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468379
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3 600 000 значений и в оперативной памяти запросто уместится
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468399
Anatoly D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
darlov,

можно же написать модуль опроса на C#, который будет сырые данные аггрегировать ( не понимаю, что Вы имеете ввиду под аггрегацией) и слать уже в центральный модуль на сохранение. Или у Вас какая-то более серьёзная обработка намечается?
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468400
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если там сплошная винда и COM, то лучше взять C#.

Почти все варианты для Java так или иначе работают через лишнюю прослойку в виде JNI
http://stackoverflow.com/questions/11570753/java-opc-client-application

Ещё вариант из Википедии
авторOPC UA (Unified Architecture) — последняя по времени выпуска спецификация, которая основана не на технологии Microsoft COM, что предоставляет кросс-платформенную совместимость.
Т.е. есть существуют протоколы обмена данными и без COM
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468438
SkyNIN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем понятно почему выбран Hadoop.

По задаче получается что нужно персистентное хранилище выдерживающее массированный прием простых данных.

В мире джава это Apache Cassandra. Hadoop штука несколько не про то. Он нужен когда нам и обработку данных нужно масштабировать.

Но. Работа с COM из Java может принести немало головной боли. Более надежно, найти такую БД которая удовлетворяет предстоящим нагрузкам, но имеет универсальный протокол обмена с внешним миром, обычно нечто поверх http. Чтобы не думать, на чем она написана, хоть на Erlang,е

И. базы типа MariaDB(есть еще скоростные клоны MySQL) - хорошо тюнятся на запись. может, для вашей задачи не понадобится связываться с кластерными технологиями.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468523
darlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hadoop я планирую для хранения первоначальных данных, пускай будет с дискретностью секунда, потом планирую из первоначальных данных делать агрегацию по минутам, часам и дням, но уже сохранять в Postgresql.
3 600 000 значений это же только за час накопится, а если учесть месяц то получается 2,5 миллиарда, а год, а если тегов не 1000, а 3000... Читал я про MariaDB, Mysql они очень медлительные при больших объемах данных когда таблица измеряется в миллиардах записей. Возможно я и заблуждаюсь...
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468563
SkyNIN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
darlov, очень мало технических подробностей, чтобы что-то конкретное посоветовать

насчет медлительности - ... MyISAM ... Using multiple key caches was the good solution at that time and we could get over 200K of inserts/sec. High Rate insertion with MySQL and Innodb

darlov3 600 000 значений это же только за час накопится
эти цифра ни о чем не говорят. 3 600 000 значений размером во сколько байт? уже как-то понятней будет.

При "работе с датчиками" обычно не интересует эта цифра. а вот пиковое количество сохранений в секунду - да. которое можно обойти самим сборщиком, который формирует пакеты для bulk операций, а уж потом шлет. но - что в вашем случае лучше - неизвестно.

Про кластерные технологии упомянул, потому что если нет опыта работы с ними - запросто можно получить работу медленнее чем на обычном MySQL. В отличие от реляционных БД - там каждая настраивается по своему, имеет свои фичи и хитрости, и т.д. Если нет цели изучить для карьерного роста, а сугубо прагматичная - реализовать задачу с минимальными усилиями, то

1. Java вам не нужна. С# - сам напросился.
2. смотреть в сторону реляционных БД, методов их разгона и паттернов на массированную запись.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468627
darlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каждое значение весит по 4 байта,
SkyNIN, да я читал что hadoop далеко не простая штука. В другой ветки форума мне утверждали, что в реляционной БД тяжело хранить такой объем и советовали hadoop. Для меня идеально конечно все хранить в реляционной, но боюсь в будущем переписывать все под что то другое.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468633
Anatoly D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
darlov,

а ТЗ можете выложить сюда?
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468688
SkyNIN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
darlov, мир биллионговых систем годами как-то обходился без Hadoop'а.

4 байта это - не объем, при 1000 в сек.

darlovДля меня идеально конечно все хранить в реляционной
вот и попробуйте вначале хранить там :) см выше - поспрашивайте как оптимизируется запись в биллинге.

darlovно боюсь в будущем переписывать все под что то другое.
набросайте DAO слой, чтобы остальная часть и не знала где оно хранится

Задачи нужно решать по мере поступления, с небольшим заделом на будущее. Врядли в обозримом будущем вашей системе придется обрабатывать данных в 100 раз больше чем сейчас.

darlovв реляционной БД тяжело хранить такой объем
если не ошибся с арифметикой:
4000*60*60*24*365 / 1024 / 1024 / 1024 = 117 Гб в год чистых данных. это не объем для современных реляционных БД. Тем более то с этими данными работа будет осуществляться один раз - выбрать в агрегирующую систему. наверняка нужны будут идентификаторы датчиков. и очень может быть, что через месяцок разрешено будет удалять исходные данные, или "сворачивать".

На какой рост объема вы рассчитываете в будущем - в 10, 100, ..., 1 000 000 раз?

и не забывайте о важной вещи - класстерные БД тогда хороши, когда есть более 3ех физических нодов, с большим объемом ОЗУ на каждом.
Если железо слабое, то реляционные то оптимизированы на работу с размерами данных многократно превышающими размер ОЗУ на единичном ноде.
Я к тому, что злую штуку может сыграть и этот фактор, развернете вы Hadoop, а ему то развернуться и мощь показать не будет на чем.

Очень часто забывают учесть эти факторы
освоение любой технологии требует времени, а применение - изменения окружения: технического, а то и бизнесового.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468834
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
откройте для себя vertica
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468844
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если у вас данные аналоговые (грубо говоря - например данные с 1000 термометров) - вам ни хадуп ни кассандра не нужны. И всякие *sql вам не нужны тоже. Вам нужен rrdtool или его аналоги.
rrdtool и все его аналоги хороши, если данные с 1 датчика приходят раз в несколько секунд и реже, т.к. у всех этих баз дискретность 1 сек и более. На жабе тоже есть JRobin напрмиер. Впринципе и дискретные данные можно считать часным случаем аналоговых при желании...

Если у вас данные приходят чаще чем раз в секунду, то такой базы вы вряд ли найдете. Я когда-то искал - не нашел, на базе sql все тормозило и жрало память. В итоге сделал самописную, специально заточеную по такие данные, но зато работала она значительно лучше. Для каждого датчика буфер на определенное время, по заполнении он ставится в очередь на запись.
Для аналогичного решения на базе mysql понадобились бы, наверное, десятки мощных серверов.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468952
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да можно вообще в csv или просто бинарные файлы писать, с определенной фрагментацией в определенное дерево папок, типа ГГ/ММ/ДД/ЧЧ, сопсно. Потом гонять агрегацию не особо сложно там будет. И распараллелить тоже не проблема.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38468965
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darlovДоброе время суток, никак не могу определиться c выбором между изучением C# или Java. Цель у меня работать c COM (Component Object Model) под большой нагрузкой, а именно собирать данные с производственные точек контроля с помощью OPC сервера и класть в hadoop. hadoop написан на java, а c# хорошо работает с COM, вроде как...Что можете мне подсказать, как java работает с COM под большие нагрузки? Не охота строить зоопарк, да изучать два языка...
Работать с COM однозначно лучше на сишарпе. А по поводу хадупа.. ну не знаю.
Ты собери сначала макет чтоб он просто взлетел локально.

Хадуп уж как-нибудь вторым ТЗ пойдет.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38469213
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПС. На яве и на сишарпе работать с ком-объектами - один хрен. Не лучше и не хуже.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38469770
darlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за многочисленные советы, ушел думать.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38469841
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chabapokесли у вас данные аналоговые (грубо говоря - например данные с 1000 термометров) - вам ни хадуп ни кассандра не нужны. И всякие *sql вам не нужны тоже. Вам нужен rrdtool или его аналоги.
rrdtool и все его аналоги хороши, если данные с 1 датчика приходят раз в несколько секунд и реже, т.к. у всех этих баз дискретность 1 сек и более. На жабе тоже есть JRobin напрмиер. Впринципе и дискретные данные можно считать часным случаем аналоговых при желании...
Весь вопрос в скорости реакции. Если это просто аналитика то совершенно не важно, фиксируем
ли мы показания датчика в базе мговенно или загружаем спустя сутки из интеграционных или промежуточных
серверов или рабочих станций. Главное чтобы вместе с пакетом измерений пришёл точный timestamp
для каждого измерения. Здесь и Java хороша и C# и прочие питоны с перлами.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38469885
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Вообще COM это не родная Явовская технология.
Java позиционирует себя как кросплатфрменная система
COM =исключительно виндовская примочка....
Я бы смотрел в сторону исключительно MS платформ.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38469953
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Присоединяюсь к мнению, что стоит хорошо подумать на тему "а нужен ли хадуп", умелое использование RDBMS и правильная архитектура должны без проблем решить данную задачу.
2. Для работы с COM однозначно проще использовать C#.
...
Рейтинг: 0 / 0
Подойдет ли мне Java
    #38470045
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

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

У меня практика показала, что начиная с какой-то ширины входящего потока, хранить аналоговые данные типа "температура за месяц" в mysql слишком дорого. Существенно дороже, чем в rrd-базе. Я пробовал сначала на mysql делать, и отказался от него не от хорошей жизни. Грубо говоря, обычный хиленький ноут, 500..1000 термометров/от каждого по ~20значений/сек, с rrd базами на 3 месяца, тянет легко и непринужденно, даже на java без официального риалтайма оно работает вполне как риалтаймовое. Но если мы это делаем на mysql - нужно какое-то многовинчестерное хранилище, и по прикидкам получается, что нужна такая конфигурация железа, что я даже не знаю бывает ли такое. И при этом результат не лучше rrd. Мораль: каждой цели - свой инструмент.

а так конечно да, "если это просто аналитика то совершенно не важно, фиксируем ли мы показания датчика в базе мговенно или загружаем спустя сутки". Но кстати само время загрузгки важно.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Подойдет ли мне Java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]