Uk:Database

From OpenStreetMap Wiki
Jump to navigation Jump to search

Основна база даних – стрижневий компонент OpenStreetMap, тому що саме тут зберігаються всі дані.

Візьміть до уваги, що тут зберігаються й інші дані проєкту, а не тільки ті, що використовуються для створення мап. Перегляньте розділ з описом компонентів, щоб дізнатись з чого складається база даних.

Доступ до бази даних для редагування даних надається засобами API. Якщо у вас є потреба в отриманні даних ознайомтесь з різноманітними API, які можуть стати вам в пригоді.

Модель даних

ERD of main OSM DB
ERD-діаграма основної бази даних OSM, створено у Navicat for PostgreSQL

База даних має таблиці для кожного типу елементів даних (точок, ліній, зв'язків). Насправді кожний тип даних має кілька таблиць для збереження інформації: таблиця з поточними даними, таблиця з історичними даними, таблиця поточних теґів, таблиця з історичними теґами. Крім того, існують таблиці для зберігання даних наборів змін, файлів gpx, профілів користувачів, записів щоденника, поточних сеансів, OAuth тощо.

Опис схеми бази даних : https://github.com/openstreetmap/openstreetmap-website/blob/master/db/structure.sql, Rails port/Database schema.

Розміри таблиць (станом на 2016/10/31): Database/TableInfoDump

Для пришвидшення виконання запитів для всіх точок використовуються індекси QuadTiles (з використанням індексів B-tree в PostgreSQL).

Різні бази даних можуть бути побудовані по різному, в залежності від їх призначення. Наприклад, більшості застосунків потрібні лише поточні картографічні дані. Різноманітні інструменти для роботи з даними OSM використовують різні варіанти побудови баз даних (див Databases#Database_Schemas).

Сервера Postgres

У разі виникнення проблем дивіться інформацію про стан платформи.

Налаштування кластера здійснюється за допомогою Chef-рецептів, які розташовані тут - https://github.com/openstreetmap/chef

Те, що відбувається на кожній машині, визначається в ролях, а налаштування машин, пов’язаних з базою даних, контролюється книгою рецептів «db». https://github.com/openstreetmap/chef/tree/master/roles https://github.com/openstreetmap/chef/tree/master/cookbooks/db

Статистика бази даних

Моніторинг всіх серверів здійснюється за допомогою Munin (в реальному часі графіки показують використання ресурсів серверів).

https://hardware.openstreetmap.org/, дані про кожен сервер генеруються автоматично з використанням Chef-рецептів їх налаштувань.

Дивіться також розділ Статистика.

Історія

19 квітня 2009 - OpenStreetMap перейшов з MySQL на використання сервера PostgreSQL для головного сайту [1], який є частиною rails port.

1 квітня 2012 р. - розпочато процес переходу на новий сервер.