SlideShare a Scribd company logo
Идеальное хранилище
              геоданных для вашего
                       приложения




WWW.2GIS.RU
Кто здесь


              Андрей Лузин, 2GIS, Разработчик
              бэкендов, тимлид
              @dronnix, a.luzin@2gis.ru




WWW.2GIS.RU
Пару слов
              о компании 2GIS




WWW.2GIS.RU
Пару слов
              о компании 2GIS




WWW.2GIS.RU
Чего не будет


               • Не будем касаться профессиональных GIS
                 систем
               • Не будет сферических бенчмарков в вакууме
               • Не скажу какое хранилище идеальное




WWW.2GIS.RU
 WWW.2GIS.RU
Что будет


               • Рассмотрим как обстоят дела с хранением
                 геоданных
               • Определим, как выбрать хранилище
               • Поделюсь, как сами храним геоданные
               • Отвечу на вопросы, буду рад пообщаться




WWW.2GIS.RU
 WWW.2GIS.RU
Типы данных - Point




WWW.2GIS.RU
Типы данных - MultiPoint




WWW.2GIS.RU
Типы данных – Polyline




WWW.2GIS.RU
Типы данных – MultiPolyline




WWW.2GIS.RU
Типы данных – Polygon




WWW.2GIS.RU
Типы данных – MultiPolygon




WWW.2GIS.RU
Операции отношений




WWW.2GIS.RU
Порождающие операции




WWW.2GIS.RU
Пространственные индексы




WWW.2GIS.RU
Хранилище: А оно нам надо?




WWW.2GIS.RU
Библиотеки и контейнеры


                  • C++: Boost Geometry, GEOS
                  • Python: GeoJango, Shapely
                  • JavaScript: OpenLayers, GeoScript




WWW.2GIS.RU
«Компактность низкая производительность»
            Расставьте запятые




WWW.2GIS.RU
SpatiaLite


              Преимущества:
              • Большой набор геопространственных функций
              • Компактность и простота
              • Кроссплатформенность и переносимость




WWW.2GIS.RU
SpatiaLite


              Недостатки
              • Производительность
              • Масштабируемость




WWW.2GIS.RU
Oracle




WWW.2GIS.RU
MS SQL Server >= 2008


                     • Points, LineStrings, Polygons

                     • Geometry, Geography

                     • Well-Known Text (WKT), Well-Known Binary (WKB)

                     • Intersects, Contains, Crosses, Touches

                     • Distance, Length, Area

                     • Multi-Level Grid Index




WWW.2GIS.RU
MySQL


              • MyISAM, InnoDB, NDB, Archive

              • WKT, WKB

              • Points, LineStrings, Polygons

              • Buffer, Union, Difference и т.д.

              • R-Tree indexes




WWW.2GIS.RU
MySQL


              • Индексы только в MyISAM

              • Только MBR (Minimal Bound Rectangle)

              • Rule-based оптимизатор




WWW.2GIS.RU
PostgreSQL (PostGIS)


                • Поддержка OpenGIS

                • WKB, WKT, GeoJSON, Text, SVG, GML, KML

                • R-Tree индексы

                • Cost-based оптимизатор




WWW.2GIS.RU
НеMnogo О Mongo


              { loc : { lon : 40.739037, lat: 73.992964 } };
              db.places.ensureIndex( { loc : "2d" } );

              db.places.find( { loc : { $near : [50,50] , $maxDistance : 5 } }
              ).limit(20);




WWW.2GIS.RU
НеMnogo О Mongo




              box = [[40.73083, -73.99756], [40.741404, -73.988135]];
              db.places.find({"loc" : {"$within" : {"$box" : box}}});




WWW.2GIS.RU
Neo4J




              • Графовое представление данных
              • Хороший набор инструментов




WWW.2GIS.RU
Sphinx


              • Точки и полигоны

              • Geodist и Contains




WWW.2GIS.RU
Наш опыт: Пробки




WWW.2GIS.RU
Наш опыт: Пробки


              Сбор точек, требования:
              •Schemeless
              •Хорошая производительность на запись
              •Масштабирование
              •Можем позволить себе потерять немного данных




WWW.2GIS.RU
Наш опыт: Пробки




WWW.2GIS.RU
Наш опыт: Пробки




              Расчет пробок, требования:
              •Хороший набор геопространственных функций
              •Высокая скорость выборки данных




WWW.2GIS.RU
Наш опыт: Пробки




WWW.2GIS.RU
Summary


              • Выбирайте геохранилище под
                задачу, анализируя требования
              • Делайте бенчмарки только своих задачах
              • Не бойтесь использовать несколько решений в
                одном проекте
              • Иногда изобретать велосипед – путь наименьшей
                боли и страданий




WWW.2GIS.RU
СПАСИБО ЗА ВНИМАНИЕ!

More Related Content

PDF
Frontera обход испанского интернета
Alexander Sibiryakov
 
PDF
Thumbtack Expertise Days # 5 - Dataset
Alexey Remnev
 
PDF
Apache Hive
Anatoliy Nikulin
 
PDF
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Ontico
 
PDF
Лабиринт на Arduino, Вадим Ипполитов
DevDay
 
PPTX
Ancient egypt homework
chlo464
 
PDF
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
DevDay
 
PPTX
S4 tarea4 logam
aries gomez lopez
 
Frontera обход испанского интернета
Alexander Sibiryakov
 
Thumbtack Expertise Days # 5 - Dataset
Alexey Remnev
 
Apache Hive
Anatoliy Nikulin
 
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Ontico
 
Лабиринт на Arduino, Вадим Ипполитов
DevDay
 
Ancient egypt homework
chlo464
 
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
DevDay
 
S4 tarea4 logam
aries gomez lopez
 

Viewers also liked (12)

PDF
Before the gym
prestonlindhardt
 
PPT
Health econ Chapter 1
rahman_mar
 
PPTX
Ancient egypt homework
chlo464
 
PPTX
Ancient egypt homework
chlo464
 
DOC
Resume--Preston Fields
wed081885
 
PDF
«Тестируем веб приложения», Павел Сташевский
DevDay
 
PDF
Frontend
DevDay
 
PPTX
Isko product launch workshop
Özge Duman
 
PPTX
2 lina-y-diego-nic1
Alejandro Duque
 
PDF
Digitization of sales and marketing seminar in stockholm 17 october 2014
Kimmo Kanerva
 
PPTX
Converse Case Study
Özge Duman
 
PPTX
Nintendo Case Study
Özge Duman
 
Before the gym
prestonlindhardt
 
Health econ Chapter 1
rahman_mar
 
Ancient egypt homework
chlo464
 
Ancient egypt homework
chlo464
 
Resume--Preston Fields
wed081885
 
«Тестируем веб приложения», Павел Сташевский
DevDay
 
Frontend
DevDay
 
Isko product launch workshop
Özge Duman
 
2 lina-y-diego-nic1
Alejandro Duque
 
Digitization of sales and marketing seminar in stockholm 17 october 2014
Kimmo Kanerva
 
Converse Case Study
Özge Duman
 
Nintendo Case Study
Özge Duman
 
Ad

Similar to Идеальное хранилище геоданных для вашего приложения (20)

PDF
PostgreSQL
dev1ant
 
PDF
Владимир Бородин - PostgreSQL
Yandex
 
PDF
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
Артём Кудзев
 
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
 
PDF
Вадим Шашенко, 2ГИС
Ontico
 
PDF
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
2ГИС Технологии
 
PDF
Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...
it-people
 
PDF
Обзор перспективных баз данных для highload / Юрий Насретдинов
Ontico
 
PPTX
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Ontico
 
PDF
YuryByyanov (e-legion) @ CodeCamp2011
CodeCamp
 
PDF
Юрий Буянов «Архитектура Goozy»
e-Legion
 
PDF
Mobile web apps
Pavlo Iuriichuk
 
PDF
Денис Иванов
CodeFest
 
PPTX
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
phpdevby
 
PPT
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
CodeFest
 
PPTX
Свободные ГИС
Stepan Kuzmin
 
PPTX
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Ontico
 
PDF
maps.sputnik.ru #highload2014
Maxim Dementyev
 
PDF
Архитектура бэкенда карт Sputnik.ru, Максим Дементьев (Спутник)
Ontico
 
PPTX
Daemons In Web on #devrus
Alex Chistyakov
 
PostgreSQL
dev1ant
 
Владимир Бородин - PostgreSQL
Yandex
 
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
Артём Кудзев
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
 
Вадим Шашенко, 2ГИС
Ontico
 
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
2ГИС Технологии
 
Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...
it-people
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Ontico
 
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Ontico
 
YuryByyanov (e-legion) @ CodeCamp2011
CodeCamp
 
Юрий Буянов «Архитектура Goozy»
e-Legion
 
Mobile web apps
Pavlo Iuriichuk
 
Денис Иванов
CodeFest
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
phpdevby
 
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
CodeFest
 
Свободные ГИС
Stepan Kuzmin
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Ontico
 
maps.sputnik.ru #highload2014
Maxim Dementyev
 
Архитектура бэкенда карт Sputnik.ru, Максим Дементьев (Спутник)
Ontico
 
Daemons In Web on #devrus
Alex Chistyakov
 
Ad

More from DevDay (20)

PDF
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
DevDay
 
PDF
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
DevDay
 
PDF
«Я спросил у сервера...», Илья Пастушков
DevDay
 
PDF
Фреймворк Slot, Good Parts, Александр Бирюков
DevDay
 
PDF
Рендеринг может больше: vue.js vs React, Андрей Солодовников
DevDay
 
PDF
Devops-практики в разработке решений для бизнеса, Максим Пашук
DevDay
 
PDF
Inversion of Control в деталях, Дмитрий Кожевников
DevDay
 
PDF
«Велогосипед», Данил Ильиных
DevDay
 
PDF
«Процесс создания продукта», Максим Берёзкин
DevDay
 
PDF
«Вывод продукта на новых территориях», Елизавета Алексеенко
DevDay
 
PDF
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
DevDay
 
PDF
«Хоба-хоба и в продакшн», Женя Пономарёв
DevDay
 
PDF
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
DevDay
 
PDF
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
DevDay
 
PDF
«Открытая веб картография», Илья Таратухин
DevDay
 
PDF
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
DevDay
 
PDF
Матвей Мальков «Ещё один поиск контактов на Android»
DevDay
 
PDF
Олег Годовых «Страх и ненависть в Event Bus»
DevDay
 
PDF
Распределенные приложения и Azure Service Bus
DevDay
 
PDF
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
DevDay
 
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
DevDay
 
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
DevDay
 
«Я спросил у сервера...», Илья Пастушков
DevDay
 
Фреймворк Slot, Good Parts, Александр Бирюков
DevDay
 
Рендеринг может больше: vue.js vs React, Андрей Солодовников
DevDay
 
Devops-практики в разработке решений для бизнеса, Максим Пашук
DevDay
 
Inversion of Control в деталях, Дмитрий Кожевников
DevDay
 
«Велогосипед», Данил Ильиных
DevDay
 
«Процесс создания продукта», Максим Берёзкин
DevDay
 
«Вывод продукта на новых территориях», Елизавета Алексеенко
DevDay
 
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
DevDay
 
«Хоба-хоба и в продакшн», Женя Пономарёв
DevDay
 
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
DevDay
 
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
DevDay
 
«Открытая веб картография», Илья Таратухин
DevDay
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
DevDay
 
Матвей Мальков «Ещё один поиск контактов на Android»
DevDay
 
Олег Годовых «Страх и ненависть в Event Bus»
DevDay
 
Распределенные приложения и Azure Service Bus
DevDay
 
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
DevDay
 

Идеальное хранилище геоданных для вашего приложения