36
Идеальное хранилище геоданных для вашего приложения WWW.2GIS.RU

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

  • Upload
    devday

  • View
    931

  • Download
    8

Embed Size (px)

DESCRIPTION

 

Citation preview

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

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

приложения

WWW.2GIS.RU

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

Кто здесь

Андрей Лузин, 2GIS, Разработчик бэкендов,

тимлид

@dronnix, [email protected]

WWW.2GIS.RU

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

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

WWW.2GIS.RU

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

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

WWW.2GIS.RU

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

Чего не будет

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

систем

• Не будет сферических бенчмарков в вакууме

• Не скажу какое хранилище идеальное

WWW.2GIS.RUWWW.2GIS.RU

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

Что будет

• Рассмотрим как обстоят дела с хранением

геоданных

• Определим, как выбрать хранилище

• Поделюсь, как сами храним геоданные

• Отвечу на вопросы, буду рад пообщаться

WWW.2GIS.RUWWW.2GIS.RU

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

Типы данных - Point

WWW.2GIS.RU

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

Типы данных - MultiPoint

WWW.2GIS.RU

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

Типы данных – Polyline

WWW.2GIS.RU

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

Типы данных – MultiPolyline

WWW.2GIS.RU

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

Типы данных – Polygon

WWW.2GIS.RU

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

Типы данных – MultiPolygon

WWW.2GIS.RU

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

Операции отношений

WWW.2GIS.RU

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

Порождающие операции

WWW.2GIS.RU

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

Пространственные индексы

WWW.2GIS.RU

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

Хранилище: А оно нам надо?

WWW.2GIS.RU

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

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

WWW.2GIS.RU

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

SpatiaLite

WWW.2GIS.RU

Преимущества:

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

• Компактность и простота

• Кроссплатформенность и переносимость

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

SpatiaLite

WWW.2GIS.RU

Недостатки

• Производительность

• Масштабируемость

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

Oracle

WWW.2GIS.RU

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

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

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

MySQL

• MyISAM, InnoDB, NDB, Archive

• WKT, WKB

• Points, LineStrings, Polygons

• Buffer, Union, Difference и т.д.

• R-Tree indexes

WWW.2GIS.RU

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

MySQL

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

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

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

WWW.2GIS.RU

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

PostgreSQL (PostGIS)

• Поддержка OpenGIS

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

• R-Tree индексы

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

WWW.2GIS.RU

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

НеMnogo О Mongo

WWW.2GIS.RU

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

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

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

НеMnogo О Mongo

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

WWW.2GIS.RU

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

Neo4J

• Графовое представление данных

• Хороший набор инструментов

WWW.2GIS.RU

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

Sphinx

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

• Geodist и Contains

WWW.2GIS.RU

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

Наш опыт: Пробки

WWW.2GIS.RU

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

Наш опыт: Пробки

Сбор точек, требования:

• Schemeless

• Хорошая производительность на запись

• Масштабирование

• Можем позволить себе потерять немного данных

WWW.2GIS.RU

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

Наш опыт: Пробки

WWW.2GIS.RU

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

Наш опыт: Пробки

Расчет пробок, требования:

• Хороший набор геопространственных функций

• Высокая скорость выборки данных

WWW.2GIS.RU

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

Наш опыт: Пробки

WWW.2GIS.RU

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

Summary

• Выбирайте геохранилище под задачу,

анализируя требования

• Делайте бенчмарки только своих задачах

• Не бойтесь использовать несколько решений в

одном проекте

• Иногда изобретать велосипед – путь наименьшей

боли и страданий

WWW.2GIS.RU

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

СПАСИБО ЗА ВНИМАНИЕ!