Download Tech Conference

Document related concepts
no text concepts found
Transcript
Tech Conference
28.-29.5.2015
Azure DataServices (NoSql tietovarastot)
Ahti Haukilehto
Sovelto
#TechConfFI
# TechConfFI
Kalvot on otettu
• //Build 2015, Teched Europe 2014 -seminaarimateriaaleista
2
28.-29.5.2015
Tech Conference 2015
# TechConfFI
Azure DataServices
Tech Conference 2015
Applications
Reports
Dashboards
Natural
language
query
Mobile
Modeling
Machine
learning
Data
Orchestration
Information
management
The Microsoft
data platform
Relational
Non-relational
Complex event
processing

NoSQL
Streaming
Internal &
external
IoT
Network Tier
App Tier
Data Tier
Application built on
Microsoft Azure
Blob Storage
Storage of files, VHDs, mp4s, pngs, .txt, etc…
Files
SMB File Sharing
Tables
Highly scalable service for non-relational structural data
Queues
Low latency message processing
Storage
Accoun
t
Blob
Blobs
Table
Entities
Files (SMB)
Queue
http://<storage
http://<storage
http://<storage
http://<storage
Files
Messages
acct>.blob.core.windows.net/<container>/<blob>
acct>.table.core.windows.net/<table>
acct>.queue.core.windows.net/<queue>
acct>.file.core.windows.net/<file> (PREVIEW)
Azure Storage Tables
Tables
A key/value store
A
1
A
2
B
1
B
2
B 2
Application
B
2
Entity
Property Name
Property
Property Type
Partition key
Row key
Data
Name
Country
Age
String
String
int
Name
Country
Age
String
String
int
Name
Country
Age
String
String
int
Count
int
Last
Date
LastUse
Date
Partition
A
FirstUse
Date
Partition
B
Microsoft Azure Data Services
transactional processing
rich query
managed as a service
elastic scale
schema-free data model
internet accessible http/rest
arbitrary data formats
Category
SQL
Database
DocumentDB
Table
Storage
Storage
Abstractions
Maximu
m
Database
Size
Query
Language
Transaction
Support
Stored
Procedures/
Triggers
Pricing
Yes
Written in
T-SQL
Units of
throughput
Secondar
y
Indexes
Relational
Tables,
rows,
columns
500 GB
SQL
All rows and
tables in a
database
Document
store
Collections,
documents
100s of
TBs
Extended
subset of
SQL
All documents
in the same
collection
Yes
Written in
JavaScript
Units of
throughput
Key/value
store
Tables,
partitions,
entities
100s of
TBs
Subset of
OData
queries
All entities in
the same
partition
No
None
GBs of
storage
# TechConfFI
DocumentDB
Tech Conference 2015
user data store
What is a document database?
{
"id": "13244_user",
"firstName": "John",
"lastName": "Smith",
"age": 25,
"employmentHistory" : [
{
"company":"Contoso Inc"
"start": {"date":"Thu, 02 Apr 2015 20:54:45 GMT", "epoch":1428008086},
"position":"CEO"
Ideally suited to this
kind of document -
},
{
"start": {"date":"Thu, 02 Apr 2012 20:54:45 GMT", "epoch":1428008086},
"end": {"date":"Thu, 01 Apr 2015 20:54:45 GMT", "epoch":1428008086},
"position":"GM"},
],
"address":
{
"streetAddress": "21 2nd Str",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"children": [
{"name":"Megan", "age":10},
{"name": "Bruce", "age":7},
{"name": "Angus", "sports" : ["football", "basketball", "hockey"]}
]
"mobileNumber": "212 555-1234"
}
What is a document database?
{
"id": "13244_post",
"text": "Lorizzle ghetto dolor tellivizzle boofron, stuff pimpin' elizzle. Nullam sapizzle
velizzle, my shizz tellivizzle, suscipizzle funky fresh, shizzle my nizzle crocodizzle
vizzle, arcu. Pellentesque eget tortizzle. Sizzle erizzle. Mammasay mammasa mamma oo sa
break it down dolor own yo' things fo shizzle mah nizzle fo rizzle, mah home g-dizzle
sure. Maurizzle pellentesque dawg ghetto turpizzle. Shiz izzle my shizz. Pellentesque
eleifend rhoncizzle nisi. In its fo rizzle owned ma nizzle dictumst. Sizzle gangsta.
Curabitur tellizzle urna, pretizzle go to hizzle, mattizzle izzle, eleifend vitae,
tellivizzle. Dawg shizzlin dizzle. Integer semper velit sizzle stuff.
Not ideal, but it can work -
Boofron mofo auctizzle ma nizzle. Pot a elizzle ut nibh pretium tincidunt. Maecenizzle
things erat. Own yo' in lacizzle sed maurizzle elementizzle tristique. I'm in the
shizzle yippiyo sizzle daahng dawg eros ultricizzle . In velit tortor, ultricizzle
ghetto, hendrerizzle fo shizzle mah nizzle fo rizzle, mah home g-dizzle, adipiscing
crunk, boom shackalack. Etizzle velit doggy, hizzle consequizzle, pharetra get down
get down, dictizzle sed, shut the shizzle up. Fo shizzle neque. Fo lorizzle. Bling
bling vitae pizzle ut libero commodo gizzle. Fusce izzle augue eu yo mamma dang.
Phasellizzle break it down fo nizzle erat. Suspendisse shizzlin dizzle owned,
sollicitudin sizzle, mah nizzle izzle, commodo nec, justo. Donizzle fizzle
porttitizzle ligula. Nunc feugizzle, tellus tellivizzle ornare tempor, sapizzle break
it down tincidunt gangster, eget dapibus daahng dawg enizzle izzle that's the shizzle.
Stuff quizzle leo, imperdizzle izzle, fo shizzle my nizzle izzle, semper izzle,
sapien. Ut boofron magna vizzle ghetto. I'm in the shizzle ante bling bling,
suscipizzle vitae, yo mamma stuff, rutrizzle pizzle, velizzle.
Mauris da bomb go to zzle. Sizzle mammasay mammasa mamma oo sa magna own yo' amet risus
congue. Boofron mofo auctizzle ma nizzle. Pot a elizzle ut nibh pretium tincidunt.
things erat. Own yo' in lacizzle sed maurizzle elementizzle tristique. I'm in the
shizzle yippiyo sizzle daahng dawg eros ultricizzle . In velit tortor, ultricizzle
ghetto, hendrerizzle fo shizzle mah nizzle fo rizzle, mah home g-dizzle, adipiscing
crunk, boom shackalack. Etizzle velit doggy, hizzle consequizzle, pharetra get down
get down, dictizzle sed, shut the shizzle up. Fo shizzle neque. Fo lorizzle. Bling "
}
What is a document database?
Definitely NOT this
kind of document !
{
"id": "AzureDocumentDB",
"servicetype": "Data Platform",
"servicename": "Azure DocumentDB",
"releasetype": "Preview",
"public": true,
"regions": [
{
"name": "North Europe",
"visible": true,
"capacity": 230034
},
{
"name": "West US",
"visible": true,
"capacity": 800034
},
{
"name": "East US",
"visible": false,
"capacity": 1000034
}
]
}
{
"id": "MS_125734",
"name": "John Macintyre",
"jobrole": "Program Manager",
"companyname": "Microsoft",
"photo": null,
"bio": "John builds stuff at Microsoft.",
"topicids": [
"MS_Azure_12",
"MS_Azure_23",
"MS_Azure_44"
],
"sessonids": [
"MS_TEE_DBIB318",
"MS_TEE_DBI212"
]
{ JSON}
}
{ }
SQL
JS
{ }








{ }
JS
JS
JS



•
101
010
JS
JS
JS
•
101
010
JS
JS
JS
•
101
010
JS
JS
JS
* collection != table of homogenous entities
collection ~ a data partition
•
101
010
JS
{
JS
JS
}
"id" : "123"
"name" : "joe"
"age" : 30
"address" : {
"street" : "some st"
}
•
101
010
JS
JS
JS
1.
2.
3.
1.
2.
3.
Transactionally
process multiple
documents with
application defined
stored procedures
and triggers






JavaScript as the procedural language
Language integrated
Execution wrapped in an implicit transaction
Preregistered and scoped to a collection
Performed with ACID guarantees
Triggers invoked as pre or post operations
1.
2.
3.
Standard pricing tier with hourly
billing
1 hr from just $0.034!
Performance levels can be
adjusted
Each collection = 10GB of SSD
Collection* perf is set by S1, S2, S3
Limit of 100 collections (1 TB)
Soft limit, can be lifted as needed per account
* collection != table of homogenous entities
collection ~ a data partition
# TechConfFI
SearchService
Tech Conference 2015
Different goals, different technologies
Read/write requests
Results
Relational
/ NoSQL
Store
Operational
Data
Application
User
Search requests
Search results
slide is from David Chappells TechEd 2014 session
Azure
Search
Index
Index
For an online shoe retailer
high
high heels
high tops
high arch
s slide is from David Chappells TechEd 2014 session
For an online shoe retailer
Color
(34)
(21)
(22)
(5)
(19)
(9)
(11)
(10)
Contoso
Pumps
$129.95
Contoso
Stilettos
$350.00
Fabrikam
Flower
$59.99
Fabrikam
Lipstick Heels
$489.95
Price
$100 or less (10)
$100 - $250 (14)
$250 and up (9)
is slide is from David Chappells TechEd 2014 session
For an online shoe retailer
Pumps are first
because there are
more in stock
Color
Made
possible
by facets
(34)
(21)
(22)
(5)
(19)
(9)
(11)
(10)
Contoso
Pumps
$129.95
Contoso
Stilettos
$350.00
Fabrikam
Flower
$59.99
Fabrikam
Lipstick Heels
$489.95
Price
$100 or less (10)
$100 - $250 (14)
$250 and up (9)
s slide is from David Chappells TechEd 2014 session
Contoso is
first because
of the
promotion























mysvc.search.windows.net/indexes/myindex/docs/index





(All HTTP GET requests with version parameter)
Simple search:
Search combined with a strict filter:
Search with sorting, paging, field selection:
Faceting:
Hit highlighting:
(All HTTP GET requests with version parameter)
Search in documents within 5 KM of my location:
Sort results by distance from my location:
Search for documents within a given polygon:



(All HTTP GET requests with version parameter)
Simple suggestions:
Combined with a strict filter:
With sorting, paging, field selection:







Use a scoring profile:
Use a scoring profile that requires parameters:
Replicas
(more queries, more HA)


SKU
Price per search
unit/month*
Docs
Queries/sec
Free
-
10K
-
Standard
~$125 (~€ 94)
15M
~15
“Contact us”
~$500 (~€ 376)
60M
~50
We’re still fine-tuning the limits above
Partitions
(more documents, more storage)
* Billed hourly
* Prices reflect 50% discount for public preview
Tech Conference
# TechConfFI
28.-29.5.2015
Related documents