|
|
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
Доброе время суток, никак не могу определиться c выбором между изучением C# или Java. Цель у меня работать c COM (Component Object Model) под большой нагрузкой, а именно собирать данные с производственные точек контроля с помощью OPC сервера и класть в hadoop. hadoop написан на java, а c# хорошо работает с COM, вроде как...Что можете мне подсказать, как java работает с COM под большие нагрузки? Не охота строить зоопарк, да изучать два языка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2013, 21:29:06 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
darlovЧто можете мне подсказать, как java работает с COM...? JACOB - Java COM Bridge darlovпод большие нагрузкиНе пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 04:16:24 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
darlov, а зачем Вам hadoop? Расскажите про объём данных, хотяб приблизительно и их целевое использование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 09:27:42 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
Anatoly D, Происходит ежесекундный опрос датчиков, их сейчас около 1000, скорей всего будет больше, я планирую сохранять сырые данные в hadoop, это порядка 3 600 000 значений в час, после агрегировать в Posgresql. Это на данный момент 1000 знач/сек, а если больше, получается значительная нагрузка, с которой СУБД явно не справится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 11:11:48 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
3 600 000 значений и в оперативной памяти запросто уместится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 12:25:02 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
darlov, можно же написать модуль опроса на C#, который будет сырые данные аггрегировать ( не понимаю, что Вы имеете ввиду под аггрегацией) и слать уже в центральный модуль на сохранение. Или у Вас какая-то более серьёзная обработка намечается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 12:32:37 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
Если там сплошная винда и COM, то лучше взять C#. Почти все варианты для Java так или иначе работают через лишнюю прослойку в виде JNI http://stackoverflow.com/questions/11570753/java-opc-client-application Ещё вариант из Википедии авторOPC UA (Unified Architecture) — последняя по времени выпуска спецификация, которая основана не на технологии Microsoft COM, что предоставляет кросс-платформенную совместимость. Т.е. есть существуют протоколы обмена данными и без COM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 12:33:44 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
Не совсем понятно почему выбран Hadoop. По задаче получается что нужно персистентное хранилище выдерживающее массированный прием простых данных. В мире джава это Apache Cassandra. Hadoop штука несколько не про то. Он нужен когда нам и обработку данных нужно масштабировать. Но. Работа с COM из Java может принести немало головной боли. Более надежно, найти такую БД которая удовлетворяет предстоящим нагрузкам, но имеет универсальный протокол обмена с внешним миром, обычно нечто поверх http. Чтобы не думать, на чем она написана, хоть на Erlang,е И. базы типа MariaDB(есть еще скоростные клоны MySQL) - хорошо тюнятся на запись. может, для вашей задачи не понадобится связываться с кластерными технологиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 12:50:17 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
Hadoop я планирую для хранения первоначальных данных, пускай будет с дискретностью секунда, потом планирую из первоначальных данных делать агрегацию по минутам, часам и дням, но уже сохранять в Postgresql. 3 600 000 значений это же только за час накопится, а если учесть месяц то получается 2,5 миллиарда, а год, а если тегов не 1000, а 3000... Читал я про MariaDB, Mysql они очень медлительные при больших объемах данных когда таблица измеряется в миллиардах записей. Возможно я и заблуждаюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 13:40:37 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
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. смотреть в сторону реляционных БД, методов их разгона и паттернов на массированную запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 14:06:48 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
Каждое значение весит по 4 байта, SkyNIN, да я читал что hadoop далеко не простая штука. В другой ветки форума мне утверждали, что в реляционной БД тяжело хранить такой объем и советовали hadoop. Для меня идеально конечно все хранить в реляционной, но боюсь в будущем переписывать все под что то другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 14:43:09 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
darlov, а ТЗ можете выложить сюда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 14:47:52 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
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, а ему то развернуться и мощь показать не будет на чем. Очень часто забывают учесть эти факторы освоение любой технологии требует времени, а применение - изменения окружения: технического, а то и бизнесового. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 15:21:05 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
откройте для себя vertica ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 16:40:21 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
если у вас данные аналоговые (грубо говоря - например данные с 1000 термометров) - вам ни хадуп ни кассандра не нужны. И всякие *sql вам не нужны тоже. Вам нужен rrdtool или его аналоги. rrdtool и все его аналоги хороши, если данные с 1 датчика приходят раз в несколько секунд и реже, т.к. у всех этих баз дискретность 1 сек и более. На жабе тоже есть JRobin напрмиер. Впринципе и дискретные данные можно считать часным случаем аналоговых при желании... Если у вас данные приходят чаще чем раз в секунду, то такой базы вы вряд ли найдете. Я когда-то искал - не нашел, на базе sql все тормозило и жрало память. В итоге сделал самописную, специально заточеную по такие данные, но зато работала она значительно лучше. Для каждого датчика буфер на определенное время, по заполнении он ставится в очередь на запись. Для аналогичного решения на базе mysql понадобились бы, наверное, десятки мощных серверов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 16:46:49 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
да можно вообще в csv или просто бинарные файлы писать, с определенной фрагментацией в определенное дерево папок, типа ГГ/ММ/ДД/ЧЧ, сопсно. Потом гонять агрегацию не особо сложно там будет. И распараллелить тоже не проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 17:47:01 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
darlovДоброе время суток, никак не могу определиться c выбором между изучением C# или Java. Цель у меня работать c COM (Component Object Model) под большой нагрузкой, а именно собирать данные с производственные точек контроля с помощью OPC сервера и класть в hadoop. hadoop написан на java, а c# хорошо работает с COM, вроде как...Что можете мне подсказать, как java работает с COM под большие нагрузки? Не охота строить зоопарк, да изучать два языка... Работать с COM однозначно лучше на сишарпе. А по поводу хадупа.. ну не знаю. Ты собери сначала макет чтоб он просто взлетел локально. Хадуп уж как-нибудь вторым ТЗ пойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 17:56:01 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
ПС. На яве и на сишарпе работать с ком-объектами - один хрен. Не лучше и не хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2013, 22:23:16 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за многочисленные советы, ушел думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 13:17:44 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
chabapokесли у вас данные аналоговые (грубо говоря - например данные с 1000 термометров) - вам ни хадуп ни кассандра не нужны. И всякие *sql вам не нужны тоже. Вам нужен rrdtool или его аналоги. rrdtool и все его аналоги хороши, если данные с 1 датчика приходят раз в несколько секунд и реже, т.к. у всех этих баз дискретность 1 сек и более. На жабе тоже есть JRobin напрмиер. Впринципе и дискретные данные можно считать часным случаем аналоговых при желании... Весь вопрос в скорости реакции. Если это просто аналитика то совершенно не важно, фиксируем ли мы показания датчика в базе мговенно или загружаем спустя сутки из интеграционных или промежуточных серверов или рабочих станций. Главное чтобы вместе с пакетом измерений пришёл точный timestamp для каждого измерения. Здесь и Java хороша и C# и прочие питоны с перлами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 13:49:00 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
Добрый день. Вообще COM это не родная Явовская технология. Java позиционирует себя как кросплатфрменная система COM =исключительно виндовская примочка.... Я бы смотрел в сторону исключительно MS платформ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 14:08:31 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
1. Присоединяюсь к мнению, что стоит хорошо подумать на тему "а нужен ли хадуп", умелое использование RDBMS и правильная архитектура должны без проблем решить данную задачу. 2. Для работы с COM однозначно проще использовать C#. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 14:36:33 |
|
||
|
Подойдет ли мне Java
|
|||
|---|---|---|---|
|
#18+
mayton, автор Если это просто аналитика то совершенно не важно, фиксируем ли мы показания датчика в базе мговенно или загружаем спустя сутки из интеграционных или промежуточных серверов или рабочих станций У меня практика показала, что начиная с какой-то ширины входящего потока, хранить аналоговые данные типа "температура за месяц" в mysql слишком дорого. Существенно дороже, чем в rrd-базе. Я пробовал сначала на mysql делать, и отказался от него не от хорошей жизни. Грубо говоря, обычный хиленький ноут, 500..1000 термометров/от каждого по ~20значений/сек, с rrd базами на 3 месяца, тянет легко и непринужденно, даже на java без официального риалтайма оно работает вполне как риалтаймовое. Но если мы это делаем на mysql - нужно какое-то многовинчестерное хранилище, и по прикидкам получается, что нужна такая конфигурация железа, что я даже не знаю бывает ли такое. И при этом результат не лучше rrd. Мораль: каждой цели - свой инструмент. а так конечно да, "если это просто аналитика то совершенно не важно, фиксируем ли мы показания датчика в базе мговенно или загружаем спустя сутки". Но кстати само время загрузгки важно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 15:27:32 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38468081&tid=2128173]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
198ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 507ms |

| 0 / 0 |
