SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
NEWSQL СИСТЕМИ
доц. д-р Цветанка Георгиева-Трифонова
СЪДЪРЖАНИЕ
 Същност на NewSQL системите
 История
 Характеристики на NewSQL системи
 Категории
 F1 – разпределена релационна система за бази от данни,
която скалира
 Модел на данните. Йерархична схема
 Разпределени заявки
 Съединяване на йерархични таблици
 Protocol Buffers
22Цветанка Георгиева Моделиране на информационни системи
СЪЩНОСТ НА NEWSQL СИСТЕМИТЕ
 NewSQL
 клас от съвременните релационни системи за управление
на бази от данни, които:
 предоставят същата мащабируема производителност
като NoSQL система за онлайн обработка на
трансакции (OLTP);
 поддържат ACID трансакции, подобно на традиционна
система за база от данни.
33Цветанка Георгиева Моделиране на информационни системи
ИСТОРИЯ
 Терминът NewSQL
 се използва за първи път от 451 Group анализатор
Matthew Aslett през 2011 в статия.
 Много корпоративни системи, които обработват персонални
данни (например, финансови системи и системите за
обработка на поръчки) се нуждаят от:
 възможност за мащабиране;
 ACID трансакции.
 Възможни решения (преди NewSQL) за тези организации:
 закупуване на по-мощен единичен възел-машина;
 разработване на потребителски мидълуер, който
разпределя заявки над традиционните СУБД възли.
44Цветанка Георгиева Моделиране на информационни системи
ХАРАКТЕРИСТИКИ НА NEWSQL СИСТЕМИ
 Въпреки че NewSQL системите се различават според
вътрешната си архитектура, те имат две общи
характеристики:
 всички поддържат релационния модел на данните;
 използват SQL като основен интерфейс.
55Цветанка Георгиева Моделиране на информационни системи
ХАРАКТЕРИСТИКИ НА NEWSQL СИСТЕМИ (2)
 Приложенията, към които са насочени тези NewSQL системи,
се характеризират с голям брой трансакции, които:
 са краткотрайни;
 осъществяват достъп до малко подмножество на данните
чрез използване на индекс (т.е. без сканиране на таблици
и разпределени съединения на таблици);
 са повтарящи се (т.е. изпълняват се същите заявки, но с
различни входни стойности).
 Една от първите известни NewSQL системи е системата за
бази от данни на H-Store.
66Цветанка Георгиева Моделиране на информационни системи
КАТЕГОРИИ
 Нови архитектури (new architectures)
 Проектирани са с разпределена архитектура, включват
компоненти като разпределен контрол на
едновременната работа, обработка на разпределени
заявки.
 Примерни системи от тази категория са:
 Google Spanner, Clustrix, VoltDB, MemSQL, Pivotal's
SQLFire, GemFire XD, SAP HANA, FoundationDB, NuoDB,
Infinitum, TransLattice, ActorDB, Trafodion.
77Цветанка Георгиева Моделиране на информационни системи
КАТЕГОРИИ (2)
 SQL машина (SQL engine)
 Представляват високо-оптимизирани машини за SQL;
 Осигуряват програмен интерфейс за SQL, но също и
възможност за ефективно скалиране.
 Примери за такива системи са:
 Infobright, TokuDB, InfiniDB.
88Цветанка Георгиева Моделиране на информационни системи
КАТЕГОРИИ (3)
 Transparent sharding
 Разполагат с междинно ниво за автоматично разделяне
на базата от данни между множество възли в
разпределената система.
 Примери за такива системи са:
 dbShards, Scalearc, ScaleBase.
99Цветанка Георгиева Моделиране на информационни системи
F1 – РАЗПРЕДЕЛЕНА РЕЛАЦИОННА СИСТЕМА ЗА
БАЗИ ОТ ДАННИ, КОЯТО СКАЛИРА
 F1
 разпределена релационна система за бази от данни,
създадена от Google, за да поддържа AdWords;
 комбинира достъпността, мащабируемостта на NoSQL
системите като BigTable и съгласуваността,
използваемостта на традиционните SQL бази от данни;
 наследник на BigTable;
 част от Google платформата.
 CockroachDB е проект с отворен код, който има за цел да
пренесе характеристиките на F1 извън Google.
1010Цветанка Георгиева Моделиране на информационни системи
F1 – РАЗПРЕДЕЛЕНА РЕЛАЦИОННА СИСТЕМА ЗА
БАЗИ ОТ ДАННИ, КОЯТО СКАЛИРА (2)
 Основните характеристики на F1 са:
 Мащабируемост;
 Достъпност;
 Съгласуваност;
 Системата осигурява ACID трансакции.
 Използваемост.
 Системата осигурява пълна SQL поддръжка.
 Името F1 е взаимствано от генетиката, където Filial 1 hibrid е
първата генерация на потомство, получено от кръстосване
на съществено различни родителски видове.
1111Цветанка Георгиева Моделиране на информационни системи
F1 – МОДЕЛ НА ДАННИТЕ
 Йерархична схема
 Таблиците в схема на F1 са организирани в йерархия;
 Таблиците не могат да бъде произволно разделени:
 таблицата-наследник трябва да има външен ключ към
таблицата-родител като префикс на първичния си ключ.
 Пример
 Схемата AdWords съдържа:
 таблица Customers с първичен ключ CustomerID.
 таблица-наследник Campaign с първичен ключ,
състоящ се от CustomerID, CampaignID.
 таблица-наследник AdGroup с първичен ключ,
състоящ се от колоните CustomerID, CampaignID,
AdGroupID.
1212Цветанка Георгиева Моделиране на информационни системи
F1 – ЙЕРАРХИЧНА СХЕМА
1313Цветанка Георгиева Моделиране на информационни системи
F1 – ЙЕРАРХИЧНА СХЕМА (2)
 Ред в коренната таблица в йерархията се нарича коренен
ред;
 Редовете в таблицата-наследник, съответстващи на даден
коренен ред, се клъстерират заедно с този коренен ред;
 Редовете наследници се съхраняват под техния родителски
ред, подредени според първичния ключ;
 Извличането на редовете от AdGroups за даден клиент
(например CustomerID=1) се осъществява чрез една
заявка към таблицата AdGroups, вместо съединяване на
таблици;
 За съединяване на таблиците е необходимо да се извърши
само сливане на сортирани редове.
1414Цветанка Георгиева Моделиране на информационни системи
F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ
 F1 SQL поддържа:
 Централизираното изпълнение
 използва се за заявки, типични за OLTP (т.е.
осъществяващи достъп до малко данни) и изцяло се
изпълняват на един F1 сървър.
 Разпределеното изпълнение
 използва се за заявки, типични за OLAP.
 Оптимизаторът на заявки определя кой режим на
изпълнение е подходящ за дадена заявка.
1515Цветанка Георгиева Моделиране на информационни системи
F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ (2)
 При следната примерна заявка се прилага разпределено
изпълнение:
 Извлича редовете в AdClick за определена дата;
 Намира съответстващите редове в AdGroupCreative,
както и в Creative;
 Пресмята броя на показванията, групирани според
рекламна кампания, регион и език.
1616Цветанка Георгиева Моделиране на информационни системи
F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ (4)
 Възможен план за изпълнение на заявката:
 Сканиране на таблицата AdClick;
 Намиране на съответните редове в таблицата
AdGroupCreative чрез използване на индекс;
 Обединяване (repartition) на данните;
 Намиране на съответните редове в Creative;
 Обединяване;
 Групиране и прилагане на агрегатната функция.
1717Цветанка Георгиева Моделиране на информационни системи
F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ (5)
 План за изпълнение на
разпределена заявка;
 Правоъгълниците със заоблени
ъгли представят обработки,
които се изпълняват на отделни
машини.
1818Цветанка Георгиева Моделиране на информационни системи
F1 – СЪЕДИНЯВАНЕ НА ЙЕРАРХИЧНИ ТАБЛИЦИ
 Моделът на данните позволява ефективно съединяване на
родителската таблица с нейна таблица-наследник
посредством общия им префикс в първичния ключ;
 Например, съединяване на таблицата Customer с
таблицата Campaign;
 Данните се връщат чрез обхождане в дълбочина, подредени
по префикса на първичния ключ;
 F1 използва алгоритъм за съединяване и сливане, наречен
клъстерно съединяване (cluster join).
1919Цветанка Георгиева Моделиране на информационни системи
F1 – PROTOCOL BUFFERS
 Моделът на данните във F1 поддържа колони на таблици,
които съдържат структурни типове данни.
 Тези типове използват схема и двоичен формат,
предоставени от библиотеката с отворен код Protocol Buffers
на Google.
 Protocol Buffers дефинира типове на колони, които могат да
бъдат:
 задължителни (required);
 опционални (optional);
 повтарящи се (repeated).
2020Цветанка Георгиева Моделиране на информационни системи
F1 – PROTOCOL BUFFERS
 F1 реализира разширение на SQL, което разглежда
стойностите на колони от тип Protocol Buffers като обекти на
клас и осигурява достъп до всички данни в тях.
 Например, следната заявка извлича CustomerID и цялото
съдържание на колона Info от тип Protocol Buffers за
клиентите, чийто код на държавата е US.
2121Цветанка Георгиева Моделиране на информационни системи
F1 – PROTOCOL BUFFERS
 Тази заявка илюстрира два аспекта на поддръжката на
Protocol Buffers:
 Заявката използва израз за пътя до отделните полета
c.Info.country_code;
 F1 SQL позволява извличане на цялото съдържание на
колона от тип Protocol Buffers – c.Info.
2222Цветанка Георгиева Моделиране на информационни системи
F1 – PROTOCOL BUFFERS
 Наличието на повтарящи се полета (repeated fields)
предотвратява използването на таблица-наследник, когато
съответните редове-наследници са сравнително малко на
брой.
 По този начин се избягва сортирането и съединяването при
извличане на редове от двете таблици.
 Основната разлика между таблица-наследник и повтарящо
се поле е, че таблицата-наследник съдържа изрично
дефиниран външен ключ към родителската таблица, докато
повтарящото се поле има неявен външен ключ към колоната
от тип Protocol Buffers, която го съдържа.
2323Цветанка Георгиева Моделиране на информационни системи
F1 – PROTOCOL BUFFERS
 F1 SQL поддържа достъп до повтарящите се полета чрез
използване на вид съединение PROTO JOIN, което се
основава на неявния външен ключ.
 Например, нека таблицата Customer има Protocol Buffers
колона Witelist, която на свой ред съдържа повтарящо се
поле feature.
 Освен това стойностите в това поле feature са от тип
Protocol Buffers, всяка от които представлява статуса на
конкретната характеристика за родителския ред в таблицата
Customer.
2424Цветанка Георгиева Моделиране на информационни системи
F1 – PROTOCOL BUFFERS
 Заявка, която съединява таблицата Customer с нейната
виртуална таблица-наследник Whitelist.feature по
неявно зададения външен ключ.
 След това се извършва филтриране на резултата по
стойността на полето f.status в Whitelist.feature и
връща полето f.feature.
2525Цветанка Георгиева Моделиране на информационни системи
F1 – PROTOCOL BUFFERS
 F1 SQL позволява изпълняване на подзаявки за
повтарящите се полета в Protocol Buffers.
 Следната заявка има:
 подзаявка за пресмятане на броя на
Whitelist.feature;
 подзаявка, за която е приложен EXISTS, за избира
клиентите, които имат поне една характеристика със
статус, различен от ENABLED.
2626Цветанка Георгиева Моделиране на информационни системи
ЛИТЕРАТУРА
 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
2727Цветанка Георгиева Моделиране на информационни системи
2828Цветанка Георгиева
Цветанка Георгиева-Трифонова, 2017
Някои права запазени.
Презентацията е достъпна под лиценз Creative Commons,
Признание-Некомерсиално-Без производни,
https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode

Weitere ähnliche Inhalte

Andere mochten auch

What exactly is Business Intelligence?
What exactly is Business Intelligence?What exactly is Business Intelligence?
What exactly is Business Intelligence?James Serra
 
What is Power BI
What is Power BIWhat is Power BI
What is Power BIDries Vyvey
 
Big Data: It’s all about the Use Cases
Big Data: It’s all about the Use CasesBig Data: It’s all about the Use Cases
Big Data: It’s all about the Use CasesJames Serra
 
Modern Data Warehousing with the Microsoft Analytics Platform System
Modern Data Warehousing with the Microsoft Analytics Platform SystemModern Data Warehousing with the Microsoft Analytics Platform System
Modern Data Warehousing with the Microsoft Analytics Platform SystemJames Serra
 
Difference between ER-Modeling and Dimensional Modeling
Difference between ER-Modeling and Dimensional ModelingDifference between ER-Modeling and Dimensional Modeling
Difference between ER-Modeling and Dimensional ModelingAbdul Aslam
 
Architecting a Data Warehouse: A Case Study
Architecting a Data Warehouse: A Case StudyArchitecting a Data Warehouse: A Case Study
Architecting a Data Warehouse: A Case StudyMark Ginnebaugh
 
Cortana Analytics Suite
Cortana Analytics SuiteCortana Analytics Suite
Cortana Analytics SuiteJames Serra
 
Choosing technologies for a big data solution in the cloud
Choosing technologies for a big data solution in the cloudChoosing technologies for a big data solution in the cloud
Choosing technologies for a big data solution in the cloudJames Serra
 
Microsoft cloud big data strategy
Microsoft cloud big data strategyMicrosoft cloud big data strategy
Microsoft cloud big data strategyJames Serra
 
Microsoft Power BI Overview
Microsoft Power BI OverviewMicrosoft Power BI Overview
Microsoft Power BI OverviewNetwoven Inc.
 
Power BI Made Simple
Power BI Made SimplePower BI Made Simple
Power BI Made SimpleJames Serra
 
What's new in SQL Server 2016
What's new in SQL Server 2016What's new in SQL Server 2016
What's new in SQL Server 2016James Serra
 
Introduction to Microsoft’s Hadoop solution (HDInsight)
Introduction to Microsoft’s Hadoop solution (HDInsight)Introduction to Microsoft’s Hadoop solution (HDInsight)
Introduction to Microsoft’s Hadoop solution (HDInsight)James Serra
 
Introduction to Microsoft’s Master Data Services (MDS)
Introduction to Microsoft’s Master Data Services (MDS)Introduction to Microsoft’s Master Data Services (MDS)
Introduction to Microsoft’s Master Data Services (MDS)James Serra
 
Data Warehouse Modeling
Data Warehouse ModelingData Warehouse Modeling
Data Warehouse Modelingvivekjv
 
Data Warehouse Design and Best Practices
Data Warehouse Design and Best PracticesData Warehouse Design and Best Practices
Data Warehouse Design and Best PracticesIvo Andreev
 
Building an Effective Data Warehouse Architecture
Building an Effective Data Warehouse ArchitectureBuilding an Effective Data Warehouse Architecture
Building an Effective Data Warehouse ArchitectureJames Serra
 

Andere mochten auch (17)

What exactly is Business Intelligence?
What exactly is Business Intelligence?What exactly is Business Intelligence?
What exactly is Business Intelligence?
 
What is Power BI
What is Power BIWhat is Power BI
What is Power BI
 
Big Data: It’s all about the Use Cases
Big Data: It’s all about the Use CasesBig Data: It’s all about the Use Cases
Big Data: It’s all about the Use Cases
 
Modern Data Warehousing with the Microsoft Analytics Platform System
Modern Data Warehousing with the Microsoft Analytics Platform SystemModern Data Warehousing with the Microsoft Analytics Platform System
Modern Data Warehousing with the Microsoft Analytics Platform System
 
Difference between ER-Modeling and Dimensional Modeling
Difference between ER-Modeling and Dimensional ModelingDifference between ER-Modeling and Dimensional Modeling
Difference between ER-Modeling and Dimensional Modeling
 
Architecting a Data Warehouse: A Case Study
Architecting a Data Warehouse: A Case StudyArchitecting a Data Warehouse: A Case Study
Architecting a Data Warehouse: A Case Study
 
Cortana Analytics Suite
Cortana Analytics SuiteCortana Analytics Suite
Cortana Analytics Suite
 
Choosing technologies for a big data solution in the cloud
Choosing technologies for a big data solution in the cloudChoosing technologies for a big data solution in the cloud
Choosing technologies for a big data solution in the cloud
 
Microsoft cloud big data strategy
Microsoft cloud big data strategyMicrosoft cloud big data strategy
Microsoft cloud big data strategy
 
Microsoft Power BI Overview
Microsoft Power BI OverviewMicrosoft Power BI Overview
Microsoft Power BI Overview
 
Power BI Made Simple
Power BI Made SimplePower BI Made Simple
Power BI Made Simple
 
What's new in SQL Server 2016
What's new in SQL Server 2016What's new in SQL Server 2016
What's new in SQL Server 2016
 
Introduction to Microsoft’s Hadoop solution (HDInsight)
Introduction to Microsoft’s Hadoop solution (HDInsight)Introduction to Microsoft’s Hadoop solution (HDInsight)
Introduction to Microsoft’s Hadoop solution (HDInsight)
 
Introduction to Microsoft’s Master Data Services (MDS)
Introduction to Microsoft’s Master Data Services (MDS)Introduction to Microsoft’s Master Data Services (MDS)
Introduction to Microsoft’s Master Data Services (MDS)
 
Data Warehouse Modeling
Data Warehouse ModelingData Warehouse Modeling
Data Warehouse Modeling
 
Data Warehouse Design and Best Practices
Data Warehouse Design and Best PracticesData Warehouse Design and Best Practices
Data Warehouse Design and Best Practices
 
Building an Effective Data Warehouse Architecture
Building an Effective Data Warehouse ArchitectureBuilding an Effective Data Warehouse Architecture
Building an Effective Data Warehouse Architecture
 

Ähnlich wie NewSQL системи

Nakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - IntroNakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - IntroSvetlin Nakov
 
20 podzajavki v select
20 podzajavki v select20 podzajavki v select
20 podzajavki v selectIvan Peev
 
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...DAVID Academy
 
01 vavedenie v sql server 2000
01 vavedenie v sql server 200001 vavedenie v sql server 2000
01 vavedenie v sql server 2000Ivan Peev
 
9. заявка с изчислителни полета
9. заявка с изчислителни полета9. заявка с изчислителни полета
9. заявка с изчислителни полетаdnaidenowa
 
Полуструктурирани данни
Полуструктурирани данниПолуструктурирани данни
Полуструктурирани данниTsvetanka Georgieva
 
18 operatori i funkcii
18 operatori i funkcii18 operatori i funkcii
18 operatori i funkciiIvan Peev
 
Работа с йерархични данни в релационни бази от данни чрез използване на рекур...
Работа с йерархични данни в релационни бази от данни чрез използване на рекур...Работа с йерархични данни в релационни бази от данни чрез използване на рекур...
Работа с йерархични данни в релационни бази от данни чрез използване на рекур...Tsvetanka Georgieva
 
Information Technologies
Information TechnologiesInformation Technologies
Information TechnologiesBlagoy Petkov
 
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...DAVID Academy
 
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLКурс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLDAVID Academy
 
Работа с XML данни в релационни бази от данни
Работа с XML данни в релационни бази от данниРабота с XML данни в релационни бази от данни
Работа с XML данни в релационни бази от данниTsvetanka Georgieva
 
17 klauzi upraznenia
17 klauzi   upraznenia17 klauzi   upraznenia
17 klauzi uprazneniaIvan Peev
 

Ähnlich wie NewSQL системи (19)

Nakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - IntroNakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - Intro
 
20 podzajavki v select
20 podzajavki v select20 podzajavki v select
20 podzajavki v select
 
Tema13
Tema13Tema13
Tema13
 
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
 
16 klauzi
16 klauzi16 klauzi
16 klauzi
 
01 vavedenie v sql server 2000
01 vavedenie v sql server 200001 vavedenie v sql server 2000
01 vavedenie v sql server 2000
 
B9 t9 db_my_sql
B9 t9 db_my_sqlB9 t9 db_my_sql
B9 t9 db_my_sql
 
B9 t9 db_my_sql
B9 t9 db_my_sqlB9 t9 db_my_sql
B9 t9 db_my_sql
 
2 bd project
2 bd project2 bd project
2 bd project
 
9. заявка с изчислителни полета
9. заявка с изчислителни полета9. заявка с изчислителни полета
9. заявка с изчислителни полета
 
Полуструктурирани данни
Полуструктурирани данниПолуструктурирани данни
Полуструктурирани данни
 
18 operatori i funkcii
18 operatori i funkcii18 operatori i funkcii
18 operatori i funkcii
 
Работа с йерархични данни в релационни бази от данни чрез използване на рекур...
Работа с йерархични данни в релационни бази от данни чрез използване на рекур...Работа с йерархични данни в релационни бази от данни чрез използване на рекур...
Работа с йерархични данни в релационни бази от данни чрез използване на рекур...
 
Information Technologies
Information TechnologiesInformation Technologies
Information Technologies
 
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...
Курс по програмиране за напреднали (2012) - 3. Бази данни. Системи за управле...
 
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLКурс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
 
Subd
SubdSubd
Subd
 
Работа с XML данни в релационни бази от данни
Работа с XML данни в релационни бази от данниРабота с XML данни в релационни бази от данни
Работа с XML данни в релационни бази от данни
 
17 klauzi upraznenia
17 klauzi   upraznenia17 klauzi   upraznenia
17 klauzi upraznenia
 

Mehr von Tsvetanka Georgieva

Визуализиране на данни с Power BI
Визуализиране на данни с Power BIВизуализиране на данни с Power BI
Визуализиране на данни с Power BITsvetanka Georgieva
 
Въведение в анализирането и визуализирането на данни
Въведение в анализирането и визуализирането на данни Въведение в анализирането и визуализирането на данни
Въведение в анализирането и визуализирането на данни Tsvetanka Georgieva
 
Добиване на данни от текст (text mining) с RapidMiner. Класифициране на текс...
Добиване на данни от текст (text mining) с RapidMiner.  Класифициране на текс...Добиване на данни от текст (text mining) с RapidMiner.  Класифициране на текс...
Добиване на данни от текст (text mining) с RapidMiner. Класифициране на текс...Tsvetanka Georgieva
 
Онлайн инструменти за научни изследвания
Онлайн инструменти за научни изследвания Онлайн инструменти за научни изследвания
Онлайн инструменти за научни изследвания Tsvetanka Georgieva
 
Модели и методи за анализ на текстови данни
Модели и методи за анализ на текстови данниМодели и методи за анализ на текстови данни
Модели и методи за анализ на текстови данниTsvetanka Georgieva
 
Поддържане на стандарта SQL/MM Still Image в Oracle Multimedia
Поддържане на стандарта SQL/MM Still Image в Oracle MultimediaПоддържане на стандарта SQL/MM Still Image в Oracle Multimedia
Поддържане на стандарта SQL/MM Still Image в Oracle MultimediaTsvetanka Georgieva
 
Добиване на асоциативни правила (association rule mining)
Добиване на асоциативни правила (association rule mining)Добиване на асоциативни правила (association rule mining)
Добиване на асоциативни правила (association rule mining)Tsvetanka Georgieva
 
Архитектура на системите за управление на бази от данни
Архитектура на системите за управление на бази от данниАрхитектура на системите за управление на бази от данни
Архитектура на системите за управление на бази от данниTsvetanka Georgieva
 
Модифициране на XML данни с XQuery Update
Модифициране на XML данни с XQuery UpdateМодифициране на XML данни с XQuery Update
Модифициране на XML данни с XQuery UpdateTsvetanka Georgieva
 
Заявки за намиране на пермутации, вариации и комбинации
Заявки за намиране на пермутации, вариации и комбинацииЗаявки за намиране на пермутации, вариации и комбинации
Заявки за намиране на пермутации, вариации и комбинацииTsvetanka Georgieva
 
Описание на методите за сравняване на изображения evaluateScore и isSimilar в...
Описание на методите за сравняване на изображения evaluateScore и isSimilar в...Описание на методите за сравняване на изображения evaluateScore и isSimilar в...
Описание на методите за сравняване на изображения evaluateScore и isSimilar в...Tsvetanka Georgieva
 
Модел на вложените множества (Nested Set Model)
Модел на вложените множества (Nested Set Model)Модел на вложените множества (Nested Set Model)
Модел на вложените множества (Nested Set Model)Tsvetanka Georgieva
 
Примери за RDF/XML представяне
Примери за RDF/XML представяне Примери за RDF/XML представяне
Примери за RDF/XML представяне Tsvetanka Georgieva
 

Mehr von Tsvetanka Georgieva (15)

08 python knn
08 python knn08 python knn
08 python knn
 
Визуализиране на данни с Power BI
Визуализиране на данни с Power BIВизуализиране на данни с Power BI
Визуализиране на данни с Power BI
 
Въведение в анализирането и визуализирането на данни
Въведение в анализирането и визуализирането на данни Въведение в анализирането и визуализирането на данни
Въведение в анализирането и визуализирането на данни
 
Добиване на данни от текст (text mining) с RapidMiner. Класифициране на текс...
Добиване на данни от текст (text mining) с RapidMiner.  Класифициране на текс...Добиване на данни от текст (text mining) с RapidMiner.  Класифициране на текс...
Добиване на данни от текст (text mining) с RapidMiner. Класифициране на текс...
 
Онлайн инструменти за научни изследвания
Онлайн инструменти за научни изследвания Онлайн инструменти за научни изследвания
Онлайн инструменти за научни изследвания
 
Модели и методи за анализ на текстови данни
Модели и методи за анализ на текстови данниМодели и методи за анализ на текстови данни
Модели и методи за анализ на текстови данни
 
Поддържане на стандарта SQL/MM Still Image в Oracle Multimedia
Поддържане на стандарта SQL/MM Still Image в Oracle MultimediaПоддържане на стандарта SQL/MM Still Image в Oracle Multimedia
Поддържане на стандарта SQL/MM Still Image в Oracle Multimedia
 
Добиване на асоциативни правила (association rule mining)
Добиване на асоциативни правила (association rule mining)Добиване на асоциативни правила (association rule mining)
Добиване на асоциативни правила (association rule mining)
 
Архитектура на системите за управление на бази от данни
Архитектура на системите за управление на бази от данниАрхитектура на системите за управление на бази от данни
Архитектура на системите за управление на бази от данни
 
Модифициране на XML данни с XQuery Update
Модифициране на XML данни с XQuery UpdateМодифициране на XML данни с XQuery Update
Модифициране на XML данни с XQuery Update
 
Заявки за намиране на пермутации, вариации и комбинации
Заявки за намиране на пермутации, вариации и комбинацииЗаявки за намиране на пермутации, вариации и комбинации
Заявки за намиране на пермутации, вариации и комбинации
 
Описание на методите за сравняване на изображения evaluateScore и isSimilar в...
Описание на методите за сравняване на изображения evaluateScore и isSimilar в...Описание на методите за сравняване на изображения evaluateScore и isSimilar в...
Описание на методите за сравняване на изображения evaluateScore и isSimilar в...
 
Модел на вложените множества (Nested Set Model)
Модел на вложените множества (Nested Set Model)Модел на вложените множества (Nested Set Model)
Модел на вложените множества (Nested Set Model)
 
RDF бази от данни
RDF бази от данниRDF бази от данни
RDF бази от данни
 
Примери за RDF/XML представяне
Примери за RDF/XML представяне Примери за RDF/XML представяне
Примери за RDF/XML представяне
 

NewSQL системи

  • 1. NEWSQL СИСТЕМИ доц. д-р Цветанка Георгиева-Трифонова
  • 2. СЪДЪРЖАНИЕ  Същност на NewSQL системите  История  Характеристики на NewSQL системи  Категории  F1 – разпределена релационна система за бази от данни, която скалира  Модел на данните. Йерархична схема  Разпределени заявки  Съединяване на йерархични таблици  Protocol Buffers 22Цветанка Георгиева Моделиране на информационни системи
  • 3. СЪЩНОСТ НА NEWSQL СИСТЕМИТЕ  NewSQL  клас от съвременните релационни системи за управление на бази от данни, които:  предоставят същата мащабируема производителност като NoSQL система за онлайн обработка на трансакции (OLTP);  поддържат ACID трансакции, подобно на традиционна система за база от данни. 33Цветанка Георгиева Моделиране на информационни системи
  • 4. ИСТОРИЯ  Терминът NewSQL  се използва за първи път от 451 Group анализатор Matthew Aslett през 2011 в статия.  Много корпоративни системи, които обработват персонални данни (например, финансови системи и системите за обработка на поръчки) се нуждаят от:  възможност за мащабиране;  ACID трансакции.  Възможни решения (преди NewSQL) за тези организации:  закупуване на по-мощен единичен възел-машина;  разработване на потребителски мидълуер, който разпределя заявки над традиционните СУБД възли. 44Цветанка Георгиева Моделиране на информационни системи
  • 5. ХАРАКТЕРИСТИКИ НА NEWSQL СИСТЕМИ  Въпреки че NewSQL системите се различават според вътрешната си архитектура, те имат две общи характеристики:  всички поддържат релационния модел на данните;  използват SQL като основен интерфейс. 55Цветанка Георгиева Моделиране на информационни системи
  • 6. ХАРАКТЕРИСТИКИ НА NEWSQL СИСТЕМИ (2)  Приложенията, към които са насочени тези NewSQL системи, се характеризират с голям брой трансакции, които:  са краткотрайни;  осъществяват достъп до малко подмножество на данните чрез използване на индекс (т.е. без сканиране на таблици и разпределени съединения на таблици);  са повтарящи се (т.е. изпълняват се същите заявки, но с различни входни стойности).  Една от първите известни NewSQL системи е системата за бази от данни на H-Store. 66Цветанка Георгиева Моделиране на информационни системи
  • 7. КАТЕГОРИИ  Нови архитектури (new architectures)  Проектирани са с разпределена архитектура, включват компоненти като разпределен контрол на едновременната работа, обработка на разпределени заявки.  Примерни системи от тази категория са:  Google Spanner, Clustrix, VoltDB, MemSQL, Pivotal's SQLFire, GemFire XD, SAP HANA, FoundationDB, NuoDB, Infinitum, TransLattice, ActorDB, Trafodion. 77Цветанка Георгиева Моделиране на информационни системи
  • 8. КАТЕГОРИИ (2)  SQL машина (SQL engine)  Представляват високо-оптимизирани машини за SQL;  Осигуряват програмен интерфейс за SQL, но също и възможност за ефективно скалиране.  Примери за такива системи са:  Infobright, TokuDB, InfiniDB. 88Цветанка Георгиева Моделиране на информационни системи
  • 9. КАТЕГОРИИ (3)  Transparent sharding  Разполагат с междинно ниво за автоматично разделяне на базата от данни между множество възли в разпределената система.  Примери за такива системи са:  dbShards, Scalearc, ScaleBase. 99Цветанка Георгиева Моделиране на информационни системи
  • 10. F1 – РАЗПРЕДЕЛЕНА РЕЛАЦИОННА СИСТЕМА ЗА БАЗИ ОТ ДАННИ, КОЯТО СКАЛИРА  F1  разпределена релационна система за бази от данни, създадена от Google, за да поддържа AdWords;  комбинира достъпността, мащабируемостта на NoSQL системите като BigTable и съгласуваността, използваемостта на традиционните SQL бази от данни;  наследник на BigTable;  част от Google платформата.  CockroachDB е проект с отворен код, който има за цел да пренесе характеристиките на F1 извън Google. 1010Цветанка Георгиева Моделиране на информационни системи
  • 11. F1 – РАЗПРЕДЕЛЕНА РЕЛАЦИОННА СИСТЕМА ЗА БАЗИ ОТ ДАННИ, КОЯТО СКАЛИРА (2)  Основните характеристики на F1 са:  Мащабируемост;  Достъпност;  Съгласуваност;  Системата осигурява ACID трансакции.  Използваемост.  Системата осигурява пълна SQL поддръжка.  Името F1 е взаимствано от генетиката, където Filial 1 hibrid е първата генерация на потомство, получено от кръстосване на съществено различни родителски видове. 1111Цветанка Георгиева Моделиране на информационни системи
  • 12. F1 – МОДЕЛ НА ДАННИТЕ  Йерархична схема  Таблиците в схема на F1 са организирани в йерархия;  Таблиците не могат да бъде произволно разделени:  таблицата-наследник трябва да има външен ключ към таблицата-родител като префикс на първичния си ключ.  Пример  Схемата AdWords съдържа:  таблица Customers с първичен ключ CustomerID.  таблица-наследник Campaign с първичен ключ, състоящ се от CustomerID, CampaignID.  таблица-наследник AdGroup с първичен ключ, състоящ се от колоните CustomerID, CampaignID, AdGroupID. 1212Цветанка Георгиева Моделиране на информационни системи
  • 13. F1 – ЙЕРАРХИЧНА СХЕМА 1313Цветанка Георгиева Моделиране на информационни системи
  • 14. F1 – ЙЕРАРХИЧНА СХЕМА (2)  Ред в коренната таблица в йерархията се нарича коренен ред;  Редовете в таблицата-наследник, съответстващи на даден коренен ред, се клъстерират заедно с този коренен ред;  Редовете наследници се съхраняват под техния родителски ред, подредени според първичния ключ;  Извличането на редовете от AdGroups за даден клиент (например CustomerID=1) се осъществява чрез една заявка към таблицата AdGroups, вместо съединяване на таблици;  За съединяване на таблиците е необходимо да се извърши само сливане на сортирани редове. 1414Цветанка Георгиева Моделиране на информационни системи
  • 15. F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ  F1 SQL поддържа:  Централизираното изпълнение  използва се за заявки, типични за OLTP (т.е. осъществяващи достъп до малко данни) и изцяло се изпълняват на един F1 сървър.  Разпределеното изпълнение  използва се за заявки, типични за OLAP.  Оптимизаторът на заявки определя кой режим на изпълнение е подходящ за дадена заявка. 1515Цветанка Георгиева Моделиране на информационни системи
  • 16. F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ (2)  При следната примерна заявка се прилага разпределено изпълнение:  Извлича редовете в AdClick за определена дата;  Намира съответстващите редове в AdGroupCreative, както и в Creative;  Пресмята броя на показванията, групирани според рекламна кампания, регион и език. 1616Цветанка Георгиева Моделиране на информационни системи
  • 17. F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ (4)  Възможен план за изпълнение на заявката:  Сканиране на таблицата AdClick;  Намиране на съответните редове в таблицата AdGroupCreative чрез използване на индекс;  Обединяване (repartition) на данните;  Намиране на съответните редове в Creative;  Обединяване;  Групиране и прилагане на агрегатната функция. 1717Цветанка Георгиева Моделиране на информационни системи
  • 18. F1 – РАЗПРЕДЕЛЕНИ ЗАЯВКИ (5)  План за изпълнение на разпределена заявка;  Правоъгълниците със заоблени ъгли представят обработки, които се изпълняват на отделни машини. 1818Цветанка Георгиева Моделиране на информационни системи
  • 19. F1 – СЪЕДИНЯВАНЕ НА ЙЕРАРХИЧНИ ТАБЛИЦИ  Моделът на данните позволява ефективно съединяване на родителската таблица с нейна таблица-наследник посредством общия им префикс в първичния ключ;  Например, съединяване на таблицата Customer с таблицата Campaign;  Данните се връщат чрез обхождане в дълбочина, подредени по префикса на първичния ключ;  F1 използва алгоритъм за съединяване и сливане, наречен клъстерно съединяване (cluster join). 1919Цветанка Георгиева Моделиране на информационни системи
  • 20. F1 – PROTOCOL BUFFERS  Моделът на данните във F1 поддържа колони на таблици, които съдържат структурни типове данни.  Тези типове използват схема и двоичен формат, предоставени от библиотеката с отворен код Protocol Buffers на Google.  Protocol Buffers дефинира типове на колони, които могат да бъдат:  задължителни (required);  опционални (optional);  повтарящи се (repeated). 2020Цветанка Георгиева Моделиране на информационни системи
  • 21. F1 – PROTOCOL BUFFERS  F1 реализира разширение на SQL, което разглежда стойностите на колони от тип Protocol Buffers като обекти на клас и осигурява достъп до всички данни в тях.  Например, следната заявка извлича CustomerID и цялото съдържание на колона Info от тип Protocol Buffers за клиентите, чийто код на държавата е US. 2121Цветанка Георгиева Моделиране на информационни системи
  • 22. F1 – PROTOCOL BUFFERS  Тази заявка илюстрира два аспекта на поддръжката на Protocol Buffers:  Заявката използва израз за пътя до отделните полета c.Info.country_code;  F1 SQL позволява извличане на цялото съдържание на колона от тип Protocol Buffers – c.Info. 2222Цветанка Георгиева Моделиране на информационни системи
  • 23. F1 – PROTOCOL BUFFERS  Наличието на повтарящи се полета (repeated fields) предотвратява използването на таблица-наследник, когато съответните редове-наследници са сравнително малко на брой.  По този начин се избягва сортирането и съединяването при извличане на редове от двете таблици.  Основната разлика между таблица-наследник и повтарящо се поле е, че таблицата-наследник съдържа изрично дефиниран външен ключ към родителската таблица, докато повтарящото се поле има неявен външен ключ към колоната от тип Protocol Buffers, която го съдържа. 2323Цветанка Георгиева Моделиране на информационни системи
  • 24. F1 – PROTOCOL BUFFERS  F1 SQL поддържа достъп до повтарящите се полета чрез използване на вид съединение PROTO JOIN, което се основава на неявния външен ключ.  Например, нека таблицата Customer има Protocol Buffers колона Witelist, която на свой ред съдържа повтарящо се поле feature.  Освен това стойностите в това поле feature са от тип Protocol Buffers, всяка от които представлява статуса на конкретната характеристика за родителския ред в таблицата Customer. 2424Цветанка Георгиева Моделиране на информационни системи
  • 25. F1 – PROTOCOL BUFFERS  Заявка, която съединява таблицата Customer с нейната виртуална таблица-наследник Whitelist.feature по неявно зададения външен ключ.  След това се извършва филтриране на резултата по стойността на полето f.status в Whitelist.feature и връща полето f.feature. 2525Цветанка Георгиева Моделиране на информационни системи
  • 26. F1 – PROTOCOL BUFFERS  F1 SQL позволява изпълняване на подзаявки за повтарящите се полета в Protocol Buffers.  Следната заявка има:  подзаявка за пресмятане на броя на Whitelist.feature;  подзаявка, за която е приложен EXISTS, за избира клиентите, които имат поне една характеристика със статус, различен от ENABLED. 2626Цветанка Георгиева Моделиране на информационни системи
  • 27. ЛИТЕРАТУРА  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 2727Цветанка Георгиева Моделиране на информационни системи
  • 28. 2828Цветанка Георгиева Цветанка Георгиева-Трифонова, 2017 Някои права запазени. Презентацията е достъпна под лиценз Creative Commons, Признание-Некомерсиално-Без производни, https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode