Стоит ли хранить растры?

Ответить
Аватара пользователя
tsatsara
Интересующийся
Сообщения: 29
Зарегистрирован: 30 авг 2011, 12:22
Репутация: 3
Откуда: Красная Поляна

Стоит ли хранить растры?

Сообщение tsatsara » 15 апр 2015, 20:02

Здравствуйте! Размышляю, стоит ли хранить растры в той же базе, где лежат наши вектора.
Было бы очень удобно, с одной стороны, с другой стороны, не совсем понятно, как именно их хранить.

сейчас просто для теста загрузила etopo, он довольно медленно отображается в связке qgis+postgis,
без всяких настроек и без создания пирамид. К тому же стилистику не хранит.

итак, вопрос следующий: стоит ли хранить и если стоит, то как правильно?
Где почитать на эту тему?
сейчас весь растр в виде одной строки таблицы. Меня это немного испугало.
Последний раз редактировалось tsatsara 15 апр 2015, 21:19, всего редактировалось 1 раз.

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 202
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Стоит ли хранить растры?

Сообщение SergeyRyzhkov » 15 апр 2015, 20:38

У нас в проекте (ах) если пирамида (и/или тайлы), то однозначно в базе. Иначе на диске

Аватара пользователя
tsatsara
Интересующийся
Сообщения: 29
Зарегистрирован: 30 авг 2011, 12:22
Репутация: 3
Откуда: Красная Поляна

Re: Стоит ли хранить растры?

Сообщение tsatsara » 15 апр 2015, 20:51

SergeyRyzhkov писал(а):У нас в проекте (ах) если пирамида (и/или тайлы), то однозначно в базе. Иначе на диске
Спасибо!
а как правильно в базе?
сейчас у растр тестовый - етопо - просто лежит в одной ячейке таблицы, это мне не нравится.
Даже большие полигоны вроде осм границ областей медленно обрабатываются, что говорить о растре.
как-то пирамиды построить, поделить его? или это нормально, что он так лежит?

и если у нас будет покрытие в высоком разрешении на целую территорию?

может быть, правильнее что-то вроде базы данных изображений - они лежат на сервере, а в базе хранятся только ссылки на них, может, метаданные?

ericsson
Гуру
Сообщения: 3203
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 687
Ваше звание: Вредитель полей

Re: Стоит ли хранить растры?

Сообщение ericsson » 15 апр 2015, 21:00

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

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

Аватара пользователя
tsatsara
Интересующийся
Сообщения: 29
Зарегистрирован: 30 авг 2011, 12:22
Репутация: 3
Откуда: Красная Поляна

Re: Стоит ли хранить растры?

Сообщение tsatsara » 15 апр 2015, 21:17

Спасибо, буду делить понемногу тогда.
На пирамиды и тайлы

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 202
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Стоит ли хранить растры?

Сообщение SergeyRyzhkov » 15 апр 2015, 21:51

Это тоже зло. Так что все зависит от задач! Не стоит из СУБД делать панацею. Она тоже живёт на диске :)

[ Сообщение с мобильного устройства ]

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 202
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Стоит ли хранить растры?

Сообщение SergeyRyzhkov » 16 апр 2015, 11:23

tsatsara писал(а):Спасибо, буду делить понемногу тогда.
На пирамиды и тайлы
Посмотрите в сторону каталога растров
http://www.postgis.org/documentation/ma ... _Output_CS

Если решите делать на файловой системе, то не просто ссылки желательно хранить, а использовать pg_largeobject

vital_zerg
Новоприбывший
Сообщения: 5
Зарегистрирован: 23 фев 2015, 12:28
Репутация: 0

Re: Стоит ли хранить растры?

Сообщение vital_zerg » 27 апр 2015, 16:14

Я бы посоветовал Вам поэксперементировать с функциями lo_import/lo_export. Они оптимизированы под хранение больших файлов и привязки их к БД

Например

Код: Выделить всё

CREATE TABLE image (
    name            text,
    raster          oid
);

INSERT INTO image (name, raster)
    VALUES ('beautiful image', lo_import('/etc/motd'));

SELECT lo_export(image.raster, '/tmp/motd') from image
    WHERE name = 'beautiful image';
тест на профориентацию онлайн

Ответить

Вернуться в «PostGIS/PostgreSQL»