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

DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

приложения

WWW.2GIS.RU

Page 2: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

Кто здесь

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

тимлид

@dronnix, [email protected]

WWW.2GIS.RU

Page 3: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 4: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 5: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

Чего не будет

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

систем

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

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

WWW.2GIS.RUWWW.2GIS.RU

Page 6: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

Что будет

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

геоданных

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

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

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

WWW.2GIS.RUWWW.2GIS.RU

Page 7: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 8: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 9: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 10: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 11: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 12: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 13: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 14: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 15: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 16: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 18: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 19: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

SpatiaLite

WWW.2GIS.RU

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

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

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

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

Page 20: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

SpatiaLite

WWW.2GIS.RU

Недостатки

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

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

Page 21: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

Oracle

WWW.2GIS.RU

Page 22: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

MySQL

• MyISAM, InnoDB, NDB, Archive

• WKT, WKB

• Points, LineStrings, Polygons

• Buffer, Union, Difference и т.д.

• R-Tree indexes

WWW.2GIS.RU

Page 24: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

MySQL

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

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

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

WWW.2GIS.RU

Page 25: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

PostgreSQL (PostGIS)

• Поддержка OpenGIS

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

• R-Tree индексы

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

WWW.2GIS.RU

Page 26: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

Не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: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

НеMnogo О Mongo

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

WWW.2GIS.RU

Page 28: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

Neo4J

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

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

WWW.2GIS.RU

Page 29: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

Sphinx

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

• Geodist и Contains

WWW.2GIS.RU

Page 30: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 31: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

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

• Schemeless

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

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

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

WWW.2GIS.RU

Page 32: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 33: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

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

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

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

WWW.2GIS.RU

Page 34: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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

WWW.2GIS.RU

Page 35: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

Summary

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

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

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

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

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

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

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

WWW.2GIS.RU

Page 36: DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для вашего приложения" Александр Родионов, Андрей

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