O danych w 2016

55
Praca z danymi w aplikacji A.D. 2016. To naprawdę nie będzie tylko o Entity Framework! Tomasz Kopacz Architekt, Microsoft

Transcript of O danych w 2016

Page 1: 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

Page 2: O danych w 2016
Page 3: O danych w 2016
Page 4: O danych w 2016
Page 5: O danych w 2016
Page 6: O danych w 2016
Page 7: O danych w 2016

Entity Framework 6.x Entity Framework Core

Page 8: O danych w 2016
Page 10: O danych w 2016
Page 11: O danych w 2016
Page 12: O danych w 2016
Page 13: O danych w 2016
Page 14: O danych w 2016
Page 15: O danych w 2016
Page 16: O danych w 2016
Page 17: O danych w 2016

Azure Table – pełny „CAP”http://sigops.org/sosp/sosp11/current/2011-Cascais/printable/11-calder.pdf

Page 18: O danych w 2016

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)

Page 19: O danych w 2016

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)

Page 20: O danych w 2016

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

Page 21: O danych w 2016
Page 22: O danych w 2016

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

Page 24: O danych w 2016
Page 25: O danych w 2016

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

https://haveibeenpwned.com/

https://haveibeenpwned.com/HowFastIsAzureTableStorage/[email protected]

Page 26: O danych w 2016
Page 28: O danych w 2016
Page 29: O danych w 2016

> Pełny RDBMS

DocumentDB in Azure

Zarządzane, skalowalne, łatwość budowy kwerend, bez

schematu, oparta o JSON usługa bazodanowa

Microsoft Confidential

Arbitralne formaty <

Page 30: O danych w 2016

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

Page 31: O danych w 2016

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

Page 32: O danych w 2016

szczegóły tu

Person ContactDetail

ContactDetailTypeAddress

Page 34: O danych w 2016
Page 37: O danych w 2016
Page 39: O danych w 2016
Page 40: O danych w 2016
Page 42: O danych w 2016
Page 43: O danych w 2016

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

Page 44: O danych w 2016

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

Page 46: O danych w 2016
Page 47: O danych w 2016

http://www.odata.org/

Page 48: O danych w 2016
Page 49: O danych w 2016
Page 51: O danych w 2016
Page 52: O danych w 2016
Page 53: O danych w 2016
Page 55: O danych w 2016