DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для...

Post on 14-Nov-2014

1.209 views 2 download

description

 

Transcript of DUMP-2012 - Базы данных - "Идеальное хранилище геоданных для...

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

приложения

WWW.2GIS.RU

Кто здесь

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

тимлид

@dronnix, a.luzin@2gis.ru

WWW.2GIS.RU

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

WWW.2GIS.RU

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

WWW.2GIS.RU

Чего не будет

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

систем

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

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

WWW.2GIS.RUWWW.2GIS.RU

Что будет

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

геоданных

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

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

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

WWW.2GIS.RUWWW.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

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

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

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);

Не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

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