azure sql database escalabilidad
TRANSCRIPT
![Page 1: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/1.jpg)
Patrones de escalalidad en Microsoft Azure SQL Database
Eduardo Castro, PhD.
![Page 2: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/2.jpg)
2
Fuentes de esta presentación
MSDN Channel 9 Microsoft Azure SQL Databases SQL Azure Scalability
Microsoft Azure SQL Databases Overview Microsoft Azure Elastic Scale
![Page 3: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/3.jpg)
La plataforma de datos de Microsoft
Streaming
Captura + Organizar
RelacionalInterna y externa
No relacional NoSQL
Visualizar + decidir
MóvilInformes PreguntarDashboardsAplicaciones
Procesamiento de eventos complejos
Transformar + analizar
Orquestación PredicciónPreguntaGestión de la información
Datos
![Page 4: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/4.jpg)
Datos correctos, servicio adecuado Escalamiento de DB sin tener que preocuparse por infraestructuraAdministración sencillaCapacidades empresariales
Azure Data Services para soluciones
Sitios WebBase de datos SQL DocumentDB Búsqueda Tablas HDInsight
Opciones de base de datos relacionales y NoSQL
Clave/Valor y almacenamiento blob
Experiencias de búsqueda sofisticadas
Protección de datos para empresas en la nube
![Page 5: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/5.jpg)
5
Plataforma Microsoft SQL
Físico
Virtual
Infraestructura como Servicio
Plataforma como un Servicio
SQL ServerMáquinas físicas (hierro en bruto)
SQL Server Private CloudMáquinas virtualizadas
SQL Server en Azure VMMáquinas virtualizadas
Base de datos SQL AzureBases de datos virtualizados
SQL
Dedicado costo más alto
Menor costo
compartido
Administración Superior Baja la Administración
Nube Híbrida
On Premises
Fuera de las instalaciones
SQL SQL
SQL SQL SQL
SQL SQL SQL
SQL
![Page 6: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/6.jpg)
6
Base de datos SQL AzureBase de datos relacional -como-un-servicio, totalmente administrado por MicrosoftDiseñado para aplicaciones en la nube
Plataforma de base de datos de nivel empresarial con la economía nube
Autogestionado y Familiar
Continuidad del negocio y protección de datos
Escalamiento elástico y Rendimiento
Los niveles de rendimiento predeciblesEscalamiento hacia arriba / abajo y hacia fueraDashboard de métricas DB
Auto-servicio de restauraciónLa recuperación de desastresCumplimiento habilitado
AutogestionadoAPI programáticasHerramientas y lenguaje familiar
![Page 7: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/7.jpg)
SQL Database - Niveles de servicio de base de datos
Básico Estándar PremiumCargas transaccionales
sencillasOpción para la mayoría
de las aplicaciones Alto rendimiento y bases de
datos críticos para el negocio Tipo de uso
99,99%*Disponibilidad
2 GB 250 GB 500 GBTamaño
• •• •••Rendimiento
• •• •••Continuidad del Negocio
![Page 8: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/8.jpg)
Rendimiento predecible
Web / BusinessBásico / Standard /
PremiumMáquina
Escr
ibe Lee
Memoria
DB 1DB 2
DB 3
DB 4
DB 7
DB 5 DB 6
DB 8DB 9
Máquina
Escr
ibe Lee
Memoria
DB 1DB 2
DB 3
DB 4
DB 7
DB 5 DB 6
DB 8DB 9
DB 1DB 2
DB 3
DB 4
DB 7
DB 5 DB 6
DB 8
DB 9
Vecino ruidoso!
Delimitadores eliminan vecinos
ruidosos
![Page 9: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/9.jpg)
9
Opciones de escalabilidad en la base de datos SQL AzureRendimiento previsible: escalamiento hacia arriba o hacia abajo (vertical)• Cambie de niveles de servicio para una base de datos dada, con base en las
necesidades de capacidad / rendimiento
Escalamiento elástico: Horizontal• Añadir o eliminar bases de datos como más o menos capacidad / rendimiento según sea
necesario
![Page 10: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/10.jpg)
10
Opciones de escalabilidad en la base de datos SQL Azure
Básico
Estándar
Premium
Básico Básico Básico Básico Básico Básico
PremiumEstándar
Escalamiento OUT / INEsca
la h
acia
arr
iba
/ aba
jo
![Page 11: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/11.jpg)
11
Rendimiento escalable• Básico,Estándar, y Premium proporcionan el aumento de los niveles de
rendimiento
• El rendimiento se expresa en unidades de rendimiento de base de datos (DTU) DTU es una medida combinada de la CPU, IO lectura, IO escritura, y la memoria
• Escala de rendimiento arriba / abajo a través del portal, las API, PS, o T-SQLpara reflejar la demanda real o anticipada
• Base de datos permanece en línea, durante el cambio• Facturación por hora
5 10 20 50 100 200 800DTU
B S0 S1S2
P1P2
P3
![Page 12: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/12.jpg)
12
Unidad de Rendimiento de Base de Datos- DTU
Representa la capacidad relativa (recursos) asignado a la base de datos
Medida de CPU, la memoria, y lecturas y escrituras Simplifica las opciones selección de rendimiento
Monitoreo% De Nivel de rendimiento actual
Utilización
75%
Leer
50%
Escribir
50%
UPC60%
Memoria
Calcular
Escr
ibe Lee
Memoria
DB carga de trabajo
Cuadro delimitador
![Page 13: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/13.jpg)
13
Nuevos niveles de rendimientoBásico Estándar Prima
Niveles de Desempeño (DTU)
5 S0: 10S1: 20S2: 50
P1: 100 P2:200 P3: 800
Resultados de ASDB 16600 tx/hora S1: ,520 tx/minutoS1: ,940 tx/minutoS2: 2570 tx/minuto
P1: 105 tx/segundoP2: 228 tx/segundoP3: 735 tx/segundo
El tamaño máximo de DB 2GB 250GB 500GBPrecio * por hora (mes) 0,0069 dólares (~ $ 5) S0: 0,0208 dólares (~ $ 15)
S1: $ 0,0417 (~ $ 30)S2: 0,1042 dólares (~ $ 75)
P1: 0,6458 dólares (~ $ 465)P2: $ 1.292 (~ $ 930)P3: $ 5.167 (~ $ 3720)
* A partir de 1 de noviembrest
![Page 14: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/14.jpg)
14
RESULTADO
UPC
Escribe
Lee
GobernadorUPC
Escribe
Lee
P1 Gobernador
Gobernanza de RecursosLas solicitudes de recursos no se rechazan, pero se ponen en colaLa sobrecarga puede dar lugar a transacciones de larga ejecución o
posiblidad de timeout
SELECT * FROM a JOIN b ON …
S2UPC
Escribe
Lee
Gobernador
![Page 15: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/15.jpg)
15
La elección de los niveles de desempeñoLa migración desde on Premises
Crear escenarios de pruebaLa migración desde Web & Business
Utilice master.sys.resource_statsEl cambio entre los niveles
Utilice userdb.sys.dm_db_resource_statsAfinamiento de consultas
sys.dm_exec_query_stats sys.dm_exec_query_sql_text() sys.dm_exec_query_plan sys.dm_exec_requests sys.dm_exec_sessions
5 10 20 50 100 200 800DTU
![Page 16: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/16.jpg)
16
Cómo cambiar el Nivel de Rendimiento
PowerShell Set-AzureSqlDatabase
REST Update Database / ServiceLevelObjectiveId
.NET Microsoft.WindowsAzure.Management.Sql.
SqlManagementClient client.Databases.Update(...)
T-SQL ALTER DATABASE … MODIFY (EDITION = …)
![Page 17: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/17.jpg)
17
Administración de cuotasCuota por servidor
6 Servidores por suscripciónCuotas por DB
1600 DTU 150 bases de datos
Ejemplos 2 P3 = 2x800 DTU = 1600 DTU 160 S0 = 160x10 DTU = 1600 DTU 200 S2 = 200x50 DTU = 10000 DTU 1 P3, 14 S2,10 S0 ... = 1.600 DTU / 25 DB
![Page 18: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/18.jpg)
18
Monitoreo de las base de datos
• Monitorear el consumo de recursos y establecer alertas y notificaciones para guiar las decisiones de escalablidad
• Métricas incluyen el uso de DTU, el uso de recursos, el tamaño de la base de datos, la salud de conexión
• Dashboard para ver resumen del rendimiento
![Page 19: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/19.jpg)
19
Monitoreo de recursosmaster.sys.resource_stats
5 minutos promedio
userdb.sys.dm_db_resource_stats 15 segundos promedios
![Page 20: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/20.jpg)
20
Eslastic Scale en SQL Azure
• Escalamiento hasta miles de bases de datos utilizando el patrón de base de datos fragmentadas (Sharding)
• Soporta añadir, divider y combinar “shards” con el movimiento de datos
• Los clientes pueden combinar resultados de la consulta de múltiples “shards”
Shards de SQL Database
![Page 21: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/21.jpg)
21
Conceptos
(1) Base de Datos
(2) Sharding Clave
. . .
(3) Shard Map Manager
(4) Shard
(4) Shard
(5) Shard Set
(6) Tabla fragmentada
(7) Tabla
(8) Shardlet
ID de cliente Nombre
1 Alicia
2 Bob
Tabla Cliente
ID DataCenter Nombre DC
1 Boston2 Miami
Tabla DataCenter
![Page 22: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/22.jpg)
22
Uso de escalamiento por Sharding
Aplicación
Desarrollador
Aplicación .NET
Shard Map Management (SMM)• Define grupos de shards para su aplicación• Maneja mapeo de llaves de enrutamiento
Data Dependent Routing (DDR)• Enruta solicitudes entrantes para el shard correcto,
por ejemplo, dado un ID de cliente • Información de enrutamiento se guarda en caché por
eficienciaMulti-Shard Query (MSQ)
• Procesamiento interactivo a través de varios Shards• La misma sentencia ejecutada en todos los shards con
UNION ALL
API de cliente .NET
Servicio de Gestión
Admin /DevOps
![Page 23: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/23.jpg)
23
Data Dependent Routing (DDR)
using (SqlConnection conn = ShardMap.OpenConnectionForKey(shardingKey, connectionString,ConnectionOptions.Validate));
{using (SqlCommand cmd = new SqlCommand()
{cmd.Connection = conn;cmd.CommandText = "SELECT * FROM customers WHERE
customer ID = 104";
SqlDataReader sdr = cmd.ExecuteReader();
}}
![Page 24: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/24.jpg)
24
Caché: mejora el rendimiento de las operaciones de Shards• Global Shard Map (GSM) - estado de todos los Shards en el Shard Map• Local Shard Map (LSM) - estado de todos los Shards en un Shard concreto• Client Cache (eager/lazy) - estado de todos los Shards en los Shard Maps /
Shards conocidos
Data Dependent Routing (DDR)
Client AppDDR APICacheDesarrollador
Shard Map Manager
GSM
DB
LSM
![Page 25: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/25.jpg)
25
Multi-Shard Query
Cliente AppMSQ API
SELECT count(*) FROM customers
UNION ALL result set
DB1
[0-100) . . .
DB2
[100-200)
DB3
[200-300)
DB4
[300-400)
DB5
[400-500)
DB6
[500-600)
DBn
[N - n + 100)
Aplicación
Revelador
Shard Map Manager
![Page 26: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/26.jpg)
26
Consulta de multiples Shards
using (MultiShardConnection conn = new MultiShardConnection(m_shardMap.GetAllShards(null), MultiShardTestUtils.GetTestSqlCredential())){ using (MultiShardCommand cmd = conn.CreateCommand()) { cmd.CommandText = "SELECT count(*) FROM customers"; cmd.CommandType = CommandType.Text; cmd.Policy = MultiShardPolicy.PartialResults;
using (MultiShardDataReader sdr = cmd.ExecuteReader(includeShardNameColumn: true)) { while (sdr.Read()) {
// Now consume results from the data reader… }
} }}
![Page 27: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/27.jpg)
27
Combinación y división de Shards
• Dividir: crear dos shards con base en uno• Combinar: crear un shards de dos shards distintos• Mover a un punto: mover un solo tenand a un shard específico
SplitMerge
DB1
[0-100) . . .
DB2
[100-200)
DB3
[200-300)
DB4
[300-400)
DB5
[400-500)
DB6
[500-600)
DBn
[N - n + 100)
DB2.1
[0-200)
DB5.1
[400-450)
DB5.2
[450-500)
![Page 28: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/28.jpg)
28
Geo-Replicación
DB1DB1
DB1
DB1
DB1
![Page 29: Azure sql database escalabilidad](https://reader034.vdocuments.site/reader034/viewer/2022042619/58ceaffe1a28abb2218b4ccb/html5/thumbnails/29.jpg)
Preguntas?