O danych w 2016

Preview:

Citation preview

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

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

https://www.troyhunt.com/working-with-154-million-records-on/

https://haveibeenpwned.com/

https://haveibeenpwned.com/HowFastIsAzureTableStorage/?email=foo@foo.com

> 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

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

http://www.odata.org/

tkopacz@microsoft.com

https://github.com/tkopacz/2016SQLDay

Recommended