Передача изображений на Java - PullRequest
0 голосов
/ 02 мая 2018

Я работаю над проектом, в котором я извлек изображения из датчика и сохранил их в каталоге операционной системы. У меня есть Java API для загрузки изображений на сервер.

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

Мне нужно выбрать посредника, такого как база данных, в которой я храню эти изображения и устанавливаю соединение через Java для их загрузки или использования HDFS.

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

Примечание: изображений до 150 тысяч может быть больше в будущем.

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

150.000 изображений сегодня не считается огромным количеством. Если для каждого образа (в несжатом виде) предполагается в среднем 10 МБ, то объем данных составляет 1,5 ТБ, что должно быть возможным для хранения в стандартной базе данных (с готовым оборудованием, т. Е. С коробкой Linux с некоторые диски RAID), такие как postgreSQL. Я не специалист по HDFS, хотя я пробовал продукты в том же семействе, что и HDFS, и считаю, что их легко использовать, я думаю, вы могли бы попробовать Hadoop и для обработки изображений, если вы ищете способ распараллелить обработку , Несмотря на то, что это семейство продуктов неплохое , я бы все равно использовал стандартную базу данных , такую ​​как postgreSQL, если распараллеливание в действительности не требуется по своей природе (как в HDFS).

0 голосов
/ 02 мая 2018

Я думаю, что лучший способ сделать это - сохранить нужные плавающие объекты и метаданные изображений в базе данных. Для облегчения поиска и запросов и более легкого взаимодействия с Java. Фактические изображения лучше всего хранить в файловой системе, чтобы уменьшить преобразование в базу данных и обратно. Я считаю, что простая файловая система была бы достаточно хороша для изображений такого размера. Вы, вероятно, не будете использовать какие-либо необычные функции HDFS, такие как уменьшение карты и тому подобное. Но это зависит от вас.

Так что в этом случае, если вам не подходит стандартная файловая система и вы хотите чего-то большего, тогда HDFS - это путь. Таким образом, правильный путь будет смесью двух.

0 голосов
/ 02 мая 2018

Это полностью зависит от варианта использования, вы можете выбрать

  1. HDFS: когда вы хотите прочитать их целиком или передать или обработать, чтобы выполнять какие-либо манипуляции с данными изображений и сохранять или выполнять какие-либо другие действия на основе обработанных результатов. Проще говоря, если вы хотите сделать операцию Map-Reduce. А чтение изображений в HDFS происходит последовательно: если вы хотите выполнить выборку определенного изображения на основе определенных критериев выбора, то это повлечет за собой дорогостоящие и влияющие на производительность операции.
  2. База данных: Лучше для операций на основе запросов, когда вы хотите выполнить запрос или выполнять операции DML с изображениями на основе определенных критериев, в простых условиях WHERE. Но это очень трудоемкий процесс, когда вы хотите обрабатывать его как кусок. И производительность будет, очевидно, очень медленной, поскольку вы хотите сохранить 150 тысяч изображений

Итак, мое предложение основано на требовании: вы хотите хранить изображения как промежуточные, лучше будет хранить их в самой HDFS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...