ELASTIC DATABASE CAPABILITIES WITH AZURE SQL DB Silvia Doomra Azure SQL DB Program Management.

Slides:



Advertisements
Similar presentations
A Ridiculously Easy & Seriously Powerful SQL Cloud Database Itamar Haber AVP Ops & Solutions.
Advertisements

System Center 2012 R2 Overview
T Sponsors Paul Larsen Principal Program Manager, Microsoft Integrating cloud with existing IBM Systems BizTalk Summit 2015 – London ExCeL London | April.
--What is a Database--1 What is a database What is a Database.
Microsoft SQL Server x 46% 900+ For Hosting Service Providers
Integrate into existing systems with PowerShell integration modules Extend by building PS modules to enable integrating into other systems Optimize.
Basic Standard Premium Basic Premium Standard Scale out/in Scale up/down.
Chapter 12 Database Connectivity with ASP.NET JavaScript, Third Edition.
 Built for SaaS and enterprise applications  Elastic database model for unpredictable workloads  99.99% availability with global reach  Geo-replication.
Virtual techdays INDIA │ November 2010 SQL Azure Data Sync Shilpa Nirmale │ Associate Manager, Accenture.
MICROSOFT CONFIDENTIAL Sept 2009 | Page 1 | BDM Presentation.
Sitefinity Performance and Architecture
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
Manage & Configure SQL Database on the Cloud Haishi Bai Technical Evangelist Microsoft.
Module 18 Monitoring SQL Server 2008 R2. Module Overview Monitoring Activity Capturing and Managing Performance Data Analyzing Collected Performance Data.
Training Workshop Windows Azure Platform. Presentation Outline (hidden slide): Technical Level: 200 Intended Audience: Developers Objectives (what do.
ADO.NET – part II August 2004 [ Marmagna Desai]. CONTENTS ADO vs ADO.NET ADO.NET – Managed providers Connecting to Database SqlConnection Selecting Database.
Maintaining a Mirrored Database Tips and Tricks by Paul G. Hiles.
Virtual techdays INDIA │ august 2010 SQL Azure – Tips and Tricks Ramaprasanna Chellamuthu │ Developer Evangelist, Microsoft.
Tom Castiglia Hershey Technologies
1.NET Language Integrated Query Yishai Zaltzberg.
High Friction & Control Resources Dedicated Shared Low 100% of API, Virtualized Roll-your-own HA/DR/scale SQL Server in IaaS Virtualized Machine SQL.
Mirek Sztajno SQL Server Security PM
Powered by Microsoft Azure, PointMatter Is a Flexible Solution to Move and Share Data between Business Groups and IT MICROSOFT AZURE ISV PROFILE: LOGICMATTER.
Hosting Websites and Web Applications with Microsoft ® SQL Server ® 2008.
Tony Petrossian Microsoft Corporation An Introduction.
IT System Administration Lesson 3 Dr Jeffrey A Robinson.
Text Microsoft to Or Tweet #uktechdays Questions?
Interoperability. Session Objectives and Takeaways Session Objective(s): – Get up to speed on SQL Azure – Learn about the new features in SQL Azure –
4/26/2017 Use Cloud-Based Load Testing Service to Find Scale and Performance Bottlenecks Randy Pagels Sr. Developer Technology Specialist © 2012 Microsoft.
Web Technologies Lecture 13 Introduction to cloud computing.
Technology Drill Down: Windows Azure Platform Eric Nelson | ISV Application Architect | Microsoft UK |
SQL Server 2012 Session: 1 Session: 4 SQL Azure Data Management Using Microsoft SQL Server.
(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA.
A Lap around Azure API Apps. Customer Challenges What are API Apps? Creating and Consuming an API App using VS Adding authentication API Connectors Swagger.
Page 1 Programming SQL Azure Database Jeff Chu |
Miss a User Group meeting? Forget something that you learned? Want to see content from a User Group not in your area? Want to share with a buddy? We.
Azure SQL Database Lori Clark SQL Saturday 10/17/2015.
Scaling out and in with Azure SQL DB Elastic Scale DBA-203 Warner Chaves, MCM/MVP, SQLTurbo.com, Pythian.com.
.NET Data Access and Manipulation
WINDOWS AZURE AND THE HYBRID CLOUD. Hybrid Concepts and Cloud Services.
Improve query performance with the new SQL Server 2016 query store!! Michelle Gutzait Principal Consultant at
What if your app could put the power of analytics everywhere decisions are made? Modern apps with data visualizations built-in have the power to inform.
Azure App Service an overview Seth
 ADO.NET is an object-oriented set of libraries that allows you to interact with data sources  Commonly, the data source is a database, but it could.
Scaling Out Microsoft Azure SQL Databases
How to tune your applications before moving your database to Microsoft Azure SQL Database (MASD) OK, you've jumped into your Azure journey by creating.
Introduction to Database Processing with ADO.NET
Windows Azure SQL Federation
Scaling Out Microsoft Azure SQL Databases
Lead SQL BankofAmerica Blog: SQLHarry.com
Elastic database patterns for SaaS applications in Azure
7/18/2018 8:55 PM Migracija IoT rešenja na Azure PaaS model ili: Kako sam prestao da brinem o IT infrastrukturi i zavoleo Azure Nebojša Stojanović © Microsoft.
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Design and Implement Cloud Data Platform Solutions
04 – Azure SQL Database Bret Stateham | Senior Technical Evangelist​
SQL commands from C# and ASP.net
Welcome! Power BI User Group (PUG)
Azure Automation and Logic Apps:
Designed for Big Data Visual Analytics, Zoomdata Allows Business Users to Quickly Connect, Stream, and Visualize Data in the Microsoft Azure Platform MICROSOFT.
An Introduction to Entity Framework
Welcome! Power BI User Group (PUG)
Azure SQL Database - Managing your database on the cloud
Elastic Database Capabilities with Azure SQL DB
Power BI with Analysis Services
5 Azure Services Every .NET Developer Needs to Know
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Building Windows Store Apps with Windows Azure Mobile Services
ZORAN BARAC DATA ARCHITECT at CIN7
Presentation transcript:

ELASTIC DATABASE CAPABILITIES WITH AZURE SQL DB Silvia Doomra Azure SQL DB Program Management

ELASTIC DATABASE TOOLS & SERVICES - GOALS Simplify the creation and operation of SaaS solutions in Azure that grow to use large numbers of databases  Develop OLTP applications with scaled out data tiers in Azure SQL DB  Scale (grow or shrink) Azure SQL DB resources as needed  Manage operations over many Azure DB databases

SHARDING AND TENANCY MODELS Single tenant per database  Each tenant’s data is stored in a different database  Better isolation of tenants as compared to multi-tenant model Multiple tenants per database  Multiple tenants share the same database  Less isolation of tenants as compared to single tenant model Hybrid model  Some tenants share databases, others get their own database  E.g., premium or paying customers get their own databases, while free tier customers share databases

ELASTIC SCALE FOR YOUR DATA TIER  Shard map management: Manage membership in a scaled out data tier  Two types of shard maps  Range: contiguous values  List: explicit values  Types of sharding keys  INT, BIGINT, GUID, VARBINARY  All datetime types Shard Map Manager [shards_global] sidsmidDatasourc e Databasena me 11serverNameDB2 21serverNameDB3 [shardmaps_global] smidname 1RangeShardMap [shard_mappings_global] midsmidminma x Sid DB 1 [0-100)... DB 2 [ ) DB 3 [ ) DB 4 [ ) DB 5 [ ) DB 6 [ ) DB n [n-n+100)

DATA DEPENDENT ROUTING Scenario: query a shard with a specific shardlet key/tenant-id Application Developer Client App DDR APIs ( ) Admin/ DevOps SELECT * FROM customers WHERE customer ID = 104 Shard Map Manager DB 1 [0-100)... DB 2 [ ) DB 3 [ ) DB 4 [ ) DB 5 [ ) DB 5 [ ) DB n [n-n+100)

// Get a routed connection for a given shardingKey using (SqlConnection conn = ShardMap.OpenConnectionForKey( shardingKey, connectionString /* Credentials Only */, ConnectionOptions.Validate /* Validate */ )); { using (SqlCommand cmd = new SqlCommand() { cmd.Connection = conn; cmd.CommandText = "SELECT dbNameField, TestIntField, TestBigIntField FROM ShardedTable"; SqlDataReader sdr = cmd.ExecuteReader(); // Now consume results from the data reader… } Data Dependent Routing

DATA DEPENDENT ROUTING Caching: improve performance of shard operations  Global Shard Map (GSM) – state of all shards in the Shard Map  Local Shard Map (LSM) – state of all shards on a particular shard  Client Cache (eager/lazy) – state of all shards in the Shard Map/known shards Application Developer Client App DDR APIs ( ) Shard Map Manager DB 1 [0-100) GSM Cache LSM

ELASTIC SCALE CONNECTION OPENING FLOW  OpenConnectionForKey call with validation on  Check for shardlet key in cache  Cache miss: Fetch mapping info from GSM  Connect to shard  Validate on shard  Validation fails: Go back to cache miss Client Application Shard Map Manager DB 2 [100, 300) GSM Cache LSM ShardMap.OpenConnectionForKey( 104 /* Tenant ID */, “…”/* Credentials Only */, ConnectionOptions.Validate /* Validate */ )); [100, 200): DB2 spValidate

MULTI-SHARD QUERY Scenario: execute a query across a set of shards (returns a UNION ALL result set) Application Developer Client App MSQ APIs ( ) Admin/ DevOps SELECT count(*) FROM customers UNION ALL result set Shard Map Manager DB 1 [0-100)... DB 2 [ ) DB 3 [ ) DB 4 [ ) DB 5 [ ) DB 5 [ ) DB n [n-n+100)

using (MultiShardConnection conn = new MultiShardConnection(m_shardMap.GetAllShards(null), MultiShardTestUtils.GetTestSqlCredential())) { using (MultiShardCommand cmd = conn.CreateCommand()) { cmd.CommandText = "SELECT dbNameField, TestIntField, TestBigIntField FROM ShardedTable"; cmd.CommandType = CommandType.Text; cmd.Policy = MultiShardPolicy.PartialResults; using (MultiShardDataReader sdr = cmd.ExecuteReader(includeShardNameColumn: true)) { while (sdr.Read()) { var dbNameField = sdr.GetString(0); var testIntField = sdr.GetFieldValue (1); var testBigIntField = sdr.GetFieldValue (2); string shardIdPseudoColumn = sdr.GetFieldValue (3); } MULTI-SHARD QUERY

GETTING STARTED IS EASY! 5 minute experience to a running app in Visual studio! us/documentation/articles/sql-database-elastic-scale- documentation-map/

DEMO ELASTIC DATABASE TOOLS

DATA MOVEMENT: SPLIT/MERGE Scenario: perform a split or merge action  Split: create two distinct shards from one  Merge: create one shard from two distinct shards Application Developer Admin/ DevOps Customer Hosted Services (SM) Split Merge DB 1 [0-100)... DB 2 [ ) DB 3 [ ) DB 4 [ ) DB 5 [ ) DB 5 [ ) DB n [n-n+100) DB 5.1 [ ) DB 5.2 [ ) DB 2.1 [ )

ELASTIC DB QUERY DB OLTP Cloud Application Elastic Tools Libraries DB Azure SQL Database PowerBI SQL DB Elastic Query Azure SQL DB v12 SQL TDS, ODBC, JDBC, ADO

ELASTIC DB QUERY: QUERYING ACROSS MANY DATABASES  Connect to a single SQL DB database using familiar SQL DB connection strings  Simple setup with T-SQL DDL  Transparent querying of many databases from a single database  Familiar programming experience with T-SQL, ADO. NET Linq, EF etc.  Use familiar development and BI tools to query across many databases  Designed for interactive querying

DEMO ELASTIC DATABASE QUERY

ELASTIC DATABASE JOBS  Scenario: Perform management operations across many DBs (e.g. index maintenance, DDL and DML, even queries delivering merged results) Shard Map Manager DB Results DB Database Jobs (cloud service) Control DB Admin/ DevOps DB 1 [0-100)... DB 2 [ ) DB 3 [ ) DB 4 [ ) DB 5 [ ) DB 5 [ ) DB n [n-n+100)

ELASTIC DATABASE JOBS: COMMON USE CASES Make changes to many databases Deploy schema changes across many databases, using T-SQL Update data common to many databases, e.g., reference data Deploy new versions of stored procedures Maintain indexes across a set of databases Manage permissions and logins across a set of databases Collect results from many databases Collect database telemetry from DMVs to monitor data tier performance Gather application-specific metrics and KPIs

DATABASE JOBS – CAPABILITIES  Summary of key capabilities  Execute T-SQL scripts – on-demand, scheduled  Asynchronous, parallel (configurable) execution across databases  Monitor execution progress and review status  Automatic retry in case of failures  Operations across collections of Azure SQL Databases  Elastic Pools  Shard Sets  All DBs on a Server  Ad-hoc collections of DBs  Use stored secured credentials

ELASTIC DATABASE TRANSACTION

DEMO ELASTIC DATABASE TRANSACTIONS

using (var scope = new TransactionScope()) { using ( var conn1 = new SqlConnection(connStrDb1)) { conn1.Open(); SqlCommand cmd1 = conn1.CreateCommand(); cmd1.CommandText = string.Format("insert into T1 values(1)"); cmd1.ExecuteNonQuery(); } using (var conn2 = new SqlConnection(connStrDb2)) { conn2.Open(); var cmd2 = conn2.CreateCommand(); cmd2.CommandText = string.Format("insert into T2 values(2)"); cmd2.ExecuteNonQuery(); } scope.Complete(); } ELASTIC DATABASE TRANSACTION

DYNAMIC MANAGEMENT VIEWS (DMV) All DMVs related to transactions are relevant for distributed transactions in Azure SQL DB. sys.dm_tran_active_snapshot_database_transactionssys.dm_tran_active_transactions sys.dm_tran_current_snapshotsys.dm_tran_current_transaction sys.dm_tran_database_transactionssys.dm_tran_locks sys.dm_tran_session_transactionssys.dm_tran_top_version_generators sys.dm_tran_transactions_snapshotsys.dm_tran_version_store

ELASTIC DB TOOLS: SUMMARY OF CAPABILITIES Shard map management (SMM)  Define groups of shards for your application  Manage mapping of routing keys to shards Data dependent routing (DDR)  Route incoming requests to the correct shard, e.g., given a customer ID  Ensure correct routing as tenants move  Cache routing information for efficiency Multi-shard query (MSQ)  Interactive processing across several shards  Same statement executed on all shards with UNION all semantics Elastic DB Transactions  Support for distributed transactions across Azure SQL DBs Database Jobs (DJ) Asynchronous processing across several databases Split/Merge (SM) Grow or shrink capacity by adding or removing scale units Easily move data between scale units Client.NET APIsManagement Services Elastic Queries (EQ) Interactive reporting across several shards Rich query semantics beyond MSQ Familiar SQL DB connection experience and protocol support Querying Capabilities

ROADMAP & NEXT STEPS Elastic Scale APIs and customer-deployed services  Client Library and Split/Merge: Generally Available  Open Sourced at:  Elastic Database Jobs: currently in Preview  Elastic Database Query: currently in Preview  Elastic Database Transactions: Generally Available

THANKS! Silvia Doomra-