Download Fan-out Queries

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

SQL wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Clusterpoint wikipedia , lookup

Database model wikipedia , lookup

Object-relational impedance mismatch wikipedia , lookup

Relational model wikipedia , lookup

Transcript
Multiple-tenants per database
Single tenant per database
Multiple databases per tenant
Federations in SQL Azure
Federations
Range Partitioning
member: Range [1000, 2000)
SalesDB
AU
PK=5
Orders_federation
Orders_federation
fed_name
Federation Root
just a SQL Database instance
AU
PK=25
AU
PK=5
AU
PK=1005
Federation Members
just SQL Database instances
AU
PK=35
AU
PK=25
AU
PK=35
AU
PK=1025
AU
PK=1035
Atomic Units
Smallest granule of federation key
ALTER FEDERATION Orders_Fed SPLIT AT (tenant_id=7500)
SalesDB
Orders_federation
Orders_federation
Orders_Fed
[5000, 7500)
& [7500,
10000)
[5000,
10000)
USE FEDERATION Orders_Fed(tenant_id=7500)
SalesDB
Orders_federation
Orders_federation
Orders_Fed
Central Tables
SalesDB
CustomerFederationeration
CustomerFederationeration
CustomerFederation
Federated Tables and
Reference Tables
Orders_federation
Orders_federation
fed_name
Orders_federation
Orders_federation
fed_name
-- Connect to Root Database
USE FEDERATION CustomerFederation(customer_id = 5075) …
SalesDB
CustomerFederationeration
CustomerFederationeration
CustomerFederation
Range Distribution [min,1000, 2000, 3000 …..
5000, 10000, Max]
FILTERING=ON
Connect to an Atomic Unit
Reference Data stays fully visible.
Safe; No Changes allowed to the global state of the federation member:
No DDL, No DML on Reference Data
Good for…
Most of the workload of the application: safe programming model
Leakage Errors: Engine level predicate injection prevents data leakage
Connection to Root - SqlClient, ODBC
“Server=tcp:servername.db.windows.net;Db=salesdb;User ID=uname;Password=pword;Encrypt=True”
-- THEN USE FEDERATION TO CONNECT OT THE MEMBER CONTAINING THE KEY.
USE FEDERATION CustomerFederation(cid = 55) WITH RESET, FILTERING=ON
GO
member: Range [100,200)
Uszipcodes
(referece)
SalesDB
CustomerFederation
CustomerFederation
Microsoft Confidential
orders
(federated)
Customer_id=55
Customer_id=55
orderdetails
(federated)
FILTERING=OFF
Connects to the full member
Unrestricted Access to the member: Same as connecting to the database name
DDL, DML and Access to All Atomic Units within the members allowed
Good for…
Management Tasks: Schema Deployment
Fan-out Querying – queries spanning multiple atomic units
‘Unsafe’ – i.e. can break consistency
-- THEN USE FEDERATION TO CONNECT OT THE MEMBER CONTAINING THE KEY.
USE FEDERATION CustomerFederation(cid = 55) WITH RESET, FILTERING=OFF
GO
member: Range [100,200)
Uszipcodes
(referece)
SalesDB
CustomerFederation
CustomerFederation
Microsoft Confidential
orders
(federated)
Customer_id=55
orderdetails
(federated)
Microsoft Confidential
//MEMBER QUERY
//start from the first member – min value
USE FED f(id=min)
WHILE (nextvalue != NULL)
//get results into dataset
DataAdapter.Fill(ds);
//get the value to navigate to the next member
nextvalue = SELECT range_high FROM sys.federation_member_distributions
//SUMMARY QUERY
LINQ2DataSet(ds)
DR simplified with Federations
db1
Federations
SalesDB
Orders_federation
Orders_federation
Orders_Fed
Federation Root
Unavailable Federation Members
DBCopy
member2 @ now
PITR
member2 @ 6/11/2012 12:00:00
Federations
SalesDB
Orders_federation
Orders_federation
Orders_Fed
Swap Out
Swap Out
Federations
SalesDB
Orders_federation
Orders_federation
Orders_Fed
Copy Data In
Drop
Drop
http://msdn.microsoft.com/enus/library/windowsazure/ee336279.aspx
www.syringe.net.nz
http://twitter.com/cauld
http://blogs.msdn.com/b/cbiyikoglu/