27
NEWSQL СИСТЕМИ доц. д-р Цветанка Георгиева-Трифонова

NewSQL системи

Embed Size (px)

Citation preview

Page 1: NewSQL системи

NEWSQL СИСТЕМИ

доц. д-р Цветанка Георгиева-Трифонова

Page 2: NewSQL системи

СЪДЪРЖАНИЕ

Същност на NewSQL системите

История

Характеристики на NewSQL системи

Категории

F1 – разпределена релационна система за бази от данни,

която скалира

Модел на данните. Йерархична схема

Разпределени заявки

Съединяване на йерархични таблици

Protocol Buffers

2 2 Цветанка Георгиева Моделиране на информационни системи

Page 3: NewSQL системи

СЪЩНОСТ НА NEWSQL СИСТЕМИТЕ

NewSQL

клас от съвременните релационни системи за управление

на бази от данни, които:

предоставят същата мащабируема производителност

като NoSQL система за онлайн обработка на

трансакции (OLTP);

поддържат ACID трансакции, подобно на традиционна

система за база от данни.

3 3 Цветанка Георгиева Моделиране на информационни системи

Page 4: NewSQL системи

ИСТОРИЯ

Терминът NewSQL

се използва за първи път от 451 Group анализатор

Matthew Aslett през 2011 в статия.

Много корпоративни системи, които обработват персонални

данни (например, финансови системи и системите за

обработка на поръчки) се нуждаят от:

възможност за мащабиране;

ACID трансакции.

Възможни решения (преди NewSQL) за тези организации:

закупуване на по-мощен единичен възел-машина;

разработване на потребителски мидълуер, който

разпределя заявки над традиционните СУБД възли.

4 4 Цветанка Георгиева Моделиране на информационни системи

Page 5: NewSQL системи

ХАРАКТЕРИСТИКИ НА NEWSQL СИСТЕМИ

Въпреки че NewSQL системите се различават според

вътрешната си архитектура, те имат две общи

характеристики:

всички поддържат релационния модел на данните;

използват SQL като основен интерфейс.

5 5 Цветанка Георгиева Моделиране на информационни системи

Page 6: NewSQL системи

ХАРАКТЕРИСТИКИ НА NEWSQL СИСТЕМИ (2)

Приложенията, към които са насочени тези NewSQL системи,

се характеризират с голям брой трансакции, които:

са краткотрайни;

осъществяват достъп до малко подмножество на данните

чрез използване на индекс (т.е. без сканиране на таблици

и разпределени съединения на таблици);

са повтарящи се (т.е. изпълняват се същите заявки, но с

различни входни стойности).

Една от първите известни NewSQL системи е системата за

бази от данни на H-Store.

6 6 Цветанка Георгиева Моделиране на информационни системи

Page 7: NewSQL системи

КАТЕГОРИИ

Нови архитектури (new architectures)

Проектирани са с разпределена архитектура, включват

компоненти като разпределен контрол на

едновременната работа, обработка на разпределени

заявки.

Примерни системи от тази категория са:

Google Spanner, Clustrix, VoltDB, MemSQL, Pivotal's

SQLFire, GemFire XD, SAP HANA, FoundationDB, NuoDB,

Infinitum, TransLattice, ActorDB, Trafodion.

7 7 Цветанка Георгиева Моделиране на информационни системи

Page 8: NewSQL системи

КАТЕГОРИИ (2)

SQL машина (SQL engine)

Представляват високо-оптимизирани машини за SQL;

Осигуряват програмен интерфейс за SQL, но също и

възможност за ефективно скалиране.

Примери за такива системи са:

Infobright, TokuDB, InfiniDB.

8 8 Цветанка Георгиева Моделиране на информационни системи

Page 9: NewSQL системи

КАТЕГОРИИ (3)

Transparent sharding

Разполагат с междинно ниво за автоматично разделяне

на базата от данни между множество възли в

разпределената система.

Примери за такива системи са:

dbShards, Scalearc, ScaleBase.

9 9 Цветанка Георгиева Моделиране на информационни системи

Page 10: NewSQL системи

F1 – РАЗПРЕДЕЛЕНА РЕЛАЦИОННА СИСТЕМА ЗА

БАЗИ ОТ ДАННИ, КОЯТО СКАЛИРА

F1

разпределена релационна система за бази от данни,

създадена от Google, за да поддържа AdWords;

комбинира достъпността, мащабируемостта на NoSQL

системите като BigTable и съгласуваността,

използваемостта на традиционните SQL бази от данни;

наследник на BigTable;

част от Google платформата.

CockroachDB е проект с отворен код, който има за цел да

пренесе характеристиките на F1 извън Google.

10 10 Цветанка Георгиева Моделиране на информационни системи

Page 11: NewSQL системи

F1 – РАЗПРЕДЕЛЕНА РЕЛАЦИОННА СИСТЕМА ЗА

БАЗИ ОТ ДАННИ, КОЯТО СКАЛИРА (2)

Основните характеристики на F1 са:

Мащабируемост;

Достъпност;

Съгласуваност;

Системата осигурява ACID трансакции.

Използваемост.

Системата осигурява пълна SQL поддръжка.

Името F1 е взаимствано от генетиката, където Filial 1 hibrid е

първата генерация на потомство, получено от кръстосване

на съществено различни родителски видове.

11 11 Цветанка Георгиева Моделиране на информационни системи

Page 12: NewSQL системи

F1 – МОДЕЛ НА ДАННИТЕ

Йерархична схема

Таблиците в схема на F1 са организирани в йерархия;

Таблиците не могат да бъде произволно разделени:

таблицата-наследник трябва да има външен ключ към

таблицата-родител като префикс на първичния си ключ.

Пример

Схемата AdWords съдържа:

таблица Customers с първичен ключ CustomerID.

таблица-наследник Campaign с първичен ключ,

състоящ се от CustomerID, CampaignID.

таблица-наследник AdGroup с първичен ключ,

състоящ се от колоните CustomerID, CampaignID,

AdGroupID. 12 12 Цветанка Георгиева Моделиране на информационни системи

Page 13: NewSQL системи

F1 – ЙЕРАРХИЧНА СХЕМА

13 13 Цветанка Георгиева Моделиране на информационни системи

Page 14: NewSQL системи

F1 – ЙЕРАРХИЧНА СХЕМА (2)

Ред в коренната таблица в йерархията се нарича коренен

ред;

Редовете в таблицата-наследник, съответстващи на даден

коренен ред, се клъстерират заедно с този коренен ред;

Редовете наследници се съхраняват под техния родителски

ред, подредени според първичния ключ;

Извличането на редовете от AdGroups за даден клиент

(например CustomerID=1) се осъществява чрез една

заявка към таблицата AdGroups, вместо съединяване на

таблици;

За съединяване на таблиците е необходимо да се извърши

само сливане на сортирани редове.

14 14 Цветанка Георгиева Моделиране на информационни системи

Page 15: NewSQL системи

F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ

F1 SQL поддържа:

Централизираното изпълнение

използва се за заявки, типични за OLTP (т.е.

осъществяващи достъп до малко данни) и изцяло се

изпълняват на един F1 сървър.

Разпределеното изпълнение

използва се за заявки, типични за OLAP.

Оптимизаторът на заявки определя кой режим на

изпълнение е подходящ за дадена заявка.

15 15 Цветанка Георгиева Моделиране на информационни системи

Page 16: NewSQL системи

F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ (2)

При следната примерна заявка се прилага разпределено

изпълнение:

Извлича редовете в AdClick за определена дата;

Намира съответстващите редове в AdGroupCreative,

както и в Creative;

Пресмята броя на показванията, групирани според

рекламна кампания, регион и език. 16 16 Цветанка Георгиева Моделиране на информационни системи

Page 17: NewSQL системи

F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ (4)

Възможен план за изпълнение на заявката:

Сканиране на таблицата AdClick;

Намиране на съответните редове в таблицата

AdGroupCreative чрез използване на индекс;

Обединяване (repartition) на данните;

Намиране на съответните редове в Creative;

Обединяване;

Групиране и прилагане на агрегатната функция.

17 17 Цветанка Георгиева Моделиране на информационни системи

Page 18: NewSQL системи

F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ (5)

План за изпълнение на

разпределена заявка;

Правоъгълниците със заоблени

ъгли представят обработки,

които се изпълняват на отделни

машини.

18 18 Цветанка Георгиева Моделиране на информационни системи

Page 19: NewSQL системи

F1 – СЪЕДИНЯВАНЕ НА ЙЕРАРХИЧНИ ТАБЛИЦИ

Моделът на данните позволява ефективно съединяване на

родителската таблица с нейна таблица-наследник

посредством общия им префикс в първичния ключ;

Например, съединяване на таблицата Customer с

таблицата Campaign;

Данните се връщат чрез обхождане в дълбочина, подредени

по префикса на първичния ключ;

F1 използва алгоритъм за съединяване и сливане, наречен

клъстерно съединяване (cluster join).

19 19 Цветанка Георгиева Моделиране на информационни системи

Page 20: NewSQL системи

F1 – PROTOCOL BUFFERS

Моделът на данните във F1 поддържа колони на таблици,

които съдържат структурни типове данни.

Тези типове използват схема и двоичен формат,

предоставени от библиотеката с отворен код Protocol Buffers

на Google.

Protocol Buffers дефинира типове на колони, които могат да

бъдат:

задължителни (required);

опционални (optional);

повтарящи се (repeated).

20 20 Цветанка Георгиева Моделиране на информационни системи

Page 21: NewSQL системи

F1 – PROTOCOL BUFFERS

F1 реализира разширение на SQL, което разглежда

стойностите на колони от тип Protocol Buffers като обекти на

клас и осигурява достъп до всички данни в тях.

Например, следната заявка извлича CustomerID и цялото

съдържание на колона Info от тип Protocol Buffers за

клиентите, чийто код на държавата е US.

21 21 Цветанка Георгиева Моделиране на информационни системи

Page 22: NewSQL системи

F1 – PROTOCOL BUFFERS

Тази заявка илюстрира два аспекта на поддръжката на

Protocol Buffers:

Заявката използва израз за пътя до отделните полета

c.Info.country_code;

F1 SQL позволява извличане на цялото съдържание на

колона от тип Protocol Buffers – c.Info.

22 22 Цветанка Георгиева Моделиране на информационни системи

Page 23: NewSQL системи

F1 – PROTOCOL BUFFERS

Наличието на повтарящи се полета (repeated fields)

предотвратява използването на таблица-наследник, когато

съответните редове-наследници са сравнително малко на

брой.

По този начин се избягва сортирането и съединяването при

извличане на редове от двете таблици.

Основната разлика между таблица-наследник и повтарящо

се поле е, че таблицата-наследник съдържа изрично

дефиниран външен ключ към родителската таблица, докато

повтарящото се поле има неявен външен ключ към колоната

от тип Protocol Buffers, която го съдържа.

23 23 Цветанка Георгиева Моделиране на информационни системи

Page 24: NewSQL системи

F1 – PROTOCOL BUFFERS

F1 SQL поддържа достъп до повтарящите се полета чрез

използване на вид съединение PROTO JOIN, което се

основава на неявния външен ключ.

Например, нека таблицата Customer има Protocol Buffers

колона Witelist, която на свой ред съдържа повтарящо се

поле feature.

Освен това стойностите в това поле feature са от тип

Protocol Buffers, всяка от които представлява статуса на

конкретната характеристика за родителския ред в таблицата

Customer.

24 24 Цветанка Георгиева Моделиране на информационни системи

Page 25: NewSQL системи

F1 – PROTOCOL BUFFERS

Заявка, която съединява таблицата Customer с нейната

виртуална таблица-наследник Whitelist.feature по

неявно зададения външен ключ.

След това се извършва филтриране на резултата по

стойността на полето f.status в Whitelist.feature и

връща полето f.feature.

25 25 Цветанка Георгиева Моделиране на информационни системи

Page 26: NewSQL системи

F1 – PROTOCOL BUFFERS

F1 SQL позволява изпълняване на подзаявки за

повтарящите се полета в Protocol Buffers.

Следната заявка има:

подзаявка за пресмятане на броя на

Whitelist.feature;

подзаявка, за която е приложен EXISTS, за избира

клиентите, които имат поне една характеристика със

статус, различен от ENABLED.

26 26 Цветанка Георгиева Моделиране на информационни системи

Page 27: NewSQL системи

ЛИТЕРАТУРА

Katarina Grolinger, Wilson A Higashino, Abhinav Tiwari, Miriam

AM Capretz, Data management in cloud environments: NoSQL

and NewSQL data stores, Journal of Cloud Computing:

Advances, Systems and Applications, 2013

Jeff Shute, Radek Vingralek, Bart Samwel, Ben Handy, Chad

Whipkey, Eric Rollins, Mircea Oancea, Kyle Littlefield, David

Menestrina, Stephan Ellner, John Cieslewicz, Ian Rae, Traian

Stancescu, Himani Apte, F1: A Distributed SQL Database That

Scales, In Proceedings of the VLDB Endowment, 2013, Vol. 6,

No. 11

27 27 Цветанка Георгиева Моделиране на информационни системи