24 hop edición español - patrones de escalalidad en microsoft azure sql database - eduardo castro
DESCRIPTION
Esta es la charla que Eduardo Castro va a brindar el 4 de Diciembre en las 24 horas PASS en Español. Si no se ha registrado todavia esta a tiempo en el siguiente link: http://www.sqlpass.org/24hours/2014/spanish/Registro.aspxTRANSCRIPT
![Page 1: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/1.jpg)
Patrones de escalalidad en
Microsoft Azure SQL Database
Expositor: Eduardo Castro, PhD. PASS Regional Mentor. SQL Server MVP
Moderador: Kenneth Ureña
![Page 2: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/2.jpg)
Gracias a nuestros auspiciadores
Database Security as Easy as A-B-C
http://www.greensql.com
Hardcore Developer and IT Training
http://www.pluralsight.com
SQL Server PerformanceTry PlanExplorer today!
http://www.sqlsentry.com
![Page 3: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/3.jpg)
Próximos SQL Saturday
24 de Enero de 2015 https://www.sqlsaturday.com/346/register.aspx
18 de Abril de 2015 https://www.sqlsaturday.com/368/register.aspx
9 de Mayo de 2015 https://www.sqlsaturday.com/373/register.aspx
6 de Diciembre de 2014 https://www.sqlsaturday.com/351/register.aspx
![Page 4: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/4.jpg)
4
Capítulo Global PASS en Español
4
Reuniones semanales todos los miércoles a
las 12PM UTC-5 (Hora de Colombia)
https://www.facebook.com/SpanishPASSVC
![Page 5: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/5.jpg)
5
Asistencia Técnica
Si requiere asistenciadurante la sesión debe usar la sección de preguntas que esta en el menú de la derecha.
Use el botón de Zoom para ajustar su pantalla al tamaño deseado
Escriba sus preguntas en la sección de preguntas que esta en el menú de la derecha
![Page 6: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/6.jpg)
6
Eduardo Castro
Eduardo Castro cuenta con más de 17 años de experiencia con herramientas
Microsoft y ha sido reconocido como Most Valuable Professional de Microsoft
SQL Server en más de 10 ocasiones. Eduardo es un orador activo en las
comunidades técnicas de Microsoft y ha sido experto invitado y conferencista
en eventos tales como SQL Server Pass Summit, el Congreso Mundial de
Arquitectura (IWS de IASA), The OpenGroup Enterprise Architecture
Conference, IEEE Congress.
6
![Page 7: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/7.jpg)
7
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 8: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/8.jpg)
La plataforma de datos de Microsoft
![Page 9: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/9.jpg)
Azure Data Services para soluciones
![Page 10: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/10.jpg)
10
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 11: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/11.jpg)
11
Base de datos SQL Azure
Base de datos relacional -como-un-servicio, totalmente administrado por
Microsoft
Diseñado para aplicaciones en la nube
Plataforma de base de datos de nivel empresarial con la economía nube
![Page 12: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/12.jpg)
SQL Database - Niveles de servicio de base de datos
• •• •••
• •• •••
![Page 13: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/13.jpg)
Rendimiento predecible
Web / Business
Básico / Standard /
PremiumMáquina
Escr
ibe Lee
Memoria
DB 1
DB 2DB 3
DB 4
DB 7
DB 5 DB 6
DB 8DB 9
Máquina
Escr
ibe Lee
Memoria
DB 1
DB 2DB 3
DB 4
DB 7
DB 5 DB 6
DB 8DB 9
DB 1DB 2
DB 3
DB 4
DB 7
DB 5DB 6
DB 8
DB 9
Vecino ruidoso!
Delimitadoreseliminan vecinos
ruidosos
![Page 14: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/14.jpg)
14
Opciones de escalabilidad en la base de datos SQL
Azure
Rendimiento 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 15: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/15.jpg)
15
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
Premium
Estándar
Escalamiento OUT / INEsca
la h
aci
a a
rrib
a /
ab
ajo
![Page 16: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/16.jpg)
16
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-SQL
para 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 S0S1
S2P1
P2
P3
![Page 17: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/17.jpg)
17
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
%
UPC6
0%
Memoria
Calcular
Escr
ibe Lee
Memoria
DB carga de trabajo
Cuadro delimitador
![Page 18: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/18.jpg)
18
Nuevos niveles de rendimiento
Bá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 500GB
Precio * 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 19: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/19.jpg)
19
RESULTADO
UPC
Escribe
Lee
UPC
Escribe
Lee
Gobernanza de Recursos
Las solicitudes de recursos no se rechazan, pero se ponen en cola
La sobrecarga puede dar lugar a transacciones de larga ejecución o posiblidad
de timeout
SELECT * FROM a JOIN b ON …
UPC
Escribe
Lee
![Page 20: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/20.jpg)
20
La elección de los niveles de desempeño
La migración desde on Premises Crear escenarios de prueba
La migración desde Web & Business Utilice master.sys.resource_stats
El cambio entre los niveles Utilice userdb.sys.dm_db_resource_stats
Afinamiento 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
![Page 21: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/21.jpg)
21
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 22: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/22.jpg)
22
Administración de cuotas
Cuota por servidor
6 Servidores por suscripción
Cuotas 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 23: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/23.jpg)
23
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 24: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/24.jpg)
24
Monitoreo de recursos
master.sys.resource_stats 5 minutos promedio
userdb.sys.dm_db_resource_stats 15 segundos promedios
![Page 25: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/25.jpg)
25
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 26: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/26.jpg)
26
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 Boston
2 Miami
Tabla DataCenter
![Page 27: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/27.jpg)
27
Uso de escalamiento por Sharding
AplicaciónDesarrollador
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é poreficiencia
Multi-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 28: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/28.jpg)
28
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 29: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/29.jpg)
29
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 API
CacheDesarrollador
Shard Map Manager
GSM
DB
LSM
![Page 30: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/30.jpg)
30
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ónRevelador
Shard Map Manager
![Page 31: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/31.jpg)
31
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 32: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/32.jpg)
32
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 33: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/33.jpg)
33
Geo-Replicación
DB1DB1
DB1
DB1
DB1
![Page 34: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/34.jpg)
Preguntas?
![Page 35: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/35.jpg)
Backup y Restore SQL Server 2014
German Cayo
A continuación …
![Page 36: 24 HOP edición Español - Patrones de escalalidad en microsoft azure sql database - Eduardo Castro](https://reader033.vdocuments.mx/reader033/viewer/2022052909/5599a1a61a28abe5758b487d/html5/thumbnails/36.jpg)
Gracias por participar