Що ви знаєте про вертикальні бази даних

Англійською такі бази даних називають Columnar Databases. Я знаю дві такі СУБД – Vertica, Sybase IQ. Напевно, є й інші.

У 2008 році компанія Yahoo заявила, що має найбільше сховище даних, в 2 петабайти (у петабайтах вимірюють ємність пам'яті, один петабайт дорівнює одному мільйону гігабайтів).

Їхня система управління швидкими даними обробляла 24 мільярди запитів на день. Який СУБД користується Yahoo?

Щоб досягти такої швидкості обробки запитів, компанія замовила переробку СУБД PostgreSQL, вихідний код якої знаходиться у вільному доступі. PostgreSQL була перероблена таким чином, що дані заносяться до бази і зберігаються не рядково, а стовпцями (columnar format).

Недоліками таких вертикальних баз даних є повільніша втавка та редагування даних, порівняно з базами даних із рядковим зберіганням записів. Додавання запису з 20 полями, яке проводиться однією командою вставки в MySQL, наприклад, вимагатиме вертикальної субд 20 операцій вставки. Однак, при додаванні великої кількості записів відразу, продуктивність вертикальної бази даних програє не сильно.

Щоб прискорити додавання записів, СУБД Vertica організована так, що база даних має два сховища - тільки для запису, а друге - тільки для читання. Коли дані переносяться зі сховища для запису до сховища для читання, вони сортуються та стискаються.

Перевагою вертикальної бази даних є дуже висока швидкість обробки запитів на читання до бази даних великого обсягу і великий коефіцієнт стиснення даних.

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