O danych w 2016
-
Upload
tomasz-kopacz -
Category
Technology
-
view
178 -
download
0
Transcript of O danych w 2016
Praca z danymi w aplikacji A.D. 2016. To naprawdę nie będzie tylko o Entity Framework!
Tomasz Kopacz
Architekt, Microsoft
Entity Framework 6.x Entity Framework Core
Wydajność
„Large models”
Azure Table – pełny „CAP”http://sigops.org/sosp/sosp11/current/2011-Cascais/printable/11-calder.pdf
Bezstanowe serwery. Autoryzacja i identyfikacja. Przekierowywanie żądań
M
Extent Nodes (EN)
Paxos
Front EndFE
M
M
Partition
Server
Partition
Server
Partition
Server
Partition
Server
Partition
Master
FE FE FE FE
Lock
Service
Warstwa
serwerów
partycji
Warstwa
strumienia
danych
(DFS)
M
Extent Nodes (EN)
Paxos
Front EndFE
Przychodzące żądanie zapisu
M
M
Partition
Server
Partition
Server
Partition
Server
Partition
Server
Partition
Master
FE FE FE FE
Lock
Service
Ack
Warstwa
serwerów
partycji
Warstwa
strumienia
danych
(DFS)
Konto Partycja Pola w encji
aaaa aaaa aaaaa
…….. …….. ……..
…….. …….. ……..
…….. …….. ……..
…….. …….. ……..
…….. …….. ……..
…….. …….. ……..
…….. …….. ……..
…….. …….. ……..
…….. …….. ……..
…….. …….. ……..
…….. …….. ……..
zzzz zzzz zzzzz
Storage Stamp
Partition
ServerPartition
ServerKonto Partycja Pola w
encji
richard videos tennis
……… ……… ………
……… ……… ………
zzzz zzzz zzzzz
Konto Partycja Pola w encji
harry pictures sunset
……… ……… ………
……… ……… ………
richard videos soccer
Partition
Server
Partition
Master
Front-End
Server
PS 2 PS 3
PS 1
A-H: PS1H’-R: PS2R’-Z: PS3
A-H: PS1H’-R: PS2R’-Z: PS3
Partition
Map
Azure Table
Partition
Map
Konto Partycja Pola w encji
aaaa aaaa aaaaa
……… ……… ………
……… ……… ………
harry pictures sunriseA-H
R’-ZH’-R
PartitionKey
(AccountID)
RowKey
(Kind_*)
Kind TotalRentals Name Address CheckOutOn Title DueOn
… … … … … … … … …
Joe A_Joe Account 8 Joe Field Ann Arbor, MI
Joe R_Jaws Rental 2010/08/16 Jaws 2010/08/25
Joe R_Taxi Rental 2010/08/16 Taxi 2010/08/25
… … … … … … … … …
Entity Group Transaction
C#: DynamicTableEntity
Do
ku
men
t tu
Sta
rszy
tu
.
https://www.troyhunt.com/working-with-154-million-records-on/
https://haveibeenpwned.com/
https://haveibeenpwned.com/HowFastIsAzureTableStorage/[email protected]
Azure Search
Azure Table
> Pełny RDBMS
DocumentDB in Azure
Zarządzane, skalowalne, łatwość budowy kwerend, bez
schematu, oparta o JSON usługa bazodanowa
Microsoft Confidential
Arbitralne formaty <
Model zasobów
Model interakcji
Dewelopment
101010
Konto DocumentDB Databases
Users
Permissions
Collections Documents Attachments
Stored procedures
Triggers
User-defined functions
Tu są dokumenty
{ }{ }
JS
JS
JS
Samoopisujące się!
Bez dziedziczenia, polimorfizmu, kontroli, …
Trywialna serializacja na/z tekst
Number: „double”, trochę ograniczeń w JS
String: znaki Unicode
Boolean: true lub false
Array: w [ ] inne obiekty json
null: pusta wartość
Przechowywanie, indeksowanie, kwerendy,
motor uruchomieniowy JavaScript
TTL (od daty modyfikacji)
Dane geograficzne (GeoJSON, WGS-84)
"location":{ type":"Point","coordinates":[ -122.12, 47.66 ] }
Też: linestrings, polygon
{“locations”:[
{“country”: “Germany”, “city”: “Berlin”},{“country”: “France”, “city”: “Paris”},
],“headquarter”: “Belgium”,“exports”:[{“city”; “Moscow”},{“city: ”Athens”}]
}
Dokument JSON jako drzewo
Locations Headquarter
Belgium
Country City Country City
Germany Berlin France Paris
Exports
CityCity
Moscow Athens
0 10 1
szczegóły tu
Person ContactDetail
ContactDetailTypeAddress
szczegóły tu
Company OfficeCenter
szczegóły tu
Book Author
Limity
Co to ten Request Unit
CouchDB
MongoDB DocumentDB obsługuje protokół MongoDB
RavenDB
Duża centralna baza danych
Aplikacje pisane ad hoc. Raporty, ręczna edycja, bo coś w
ESB nie działa
Malutkie DB
Synchronizacja, SSIS, .
Oficjalna Szyna Enterprise Service Bus
Nieoficjalna szyna dla REST, może API Management, może...
Aplikacja departamentalnaBudowana bo szybcej
Lekka komunikacja, zwykle HTTP (REST style). Brak transakcyjności pomiędzy usługami. Pasuje do orkiestracji w stylu IFTTT lub Logic Apps.
Customer
InventoryCatalog
Payment
Shipping
UI
Cortana Analytics Gallery Halo 5 (część socialna gry) News Republic (czytanie i reagowanie na informacje)
http://www.odata.org/
Kod tu opis protokołu tu
https://github.com/tkopacz/2016SQLDay