Download Powerpoints

Document related concepts

SQL Server Compact wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Data Transformation Services wikipedia , lookup

Adaptive Server Anywhere wikipedia , lookup

Toad wikipedia , lookup

Transcript
Patrones de escalalidad en
Microsoft Azure SQL Database
Expositor: Eduardo Castro, PhD. PASS Regional Mentor. SQL Server MVP
Moderador: Kenneth Ureña
Gracias a nuestros auspiciadores
Database Security as Easy as A-B-C
http://www.greensql.com
Hardcore Developer and IT
Training
SQL Server Performance
Try PlanExplorer today!
http://www.pluralsight.com
http://www.sqlsentry.com
Próximos SQL Saturday
6 de Diciembre de 2014
https://www.sqlsaturday.com/351/register.aspx
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
Capítulo Global PASS en Español
Reuniones semanales todos los miércoles a
las 12PM UTC-5 (Hora de Colombia)
https://www.facebook.com/SpanishPASSVC
4
4
Asistencia Técnica
Si requiere asistencia
durante 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
5
Escriba sus preguntas
en la sección de
preguntas que esta en el
menú de la derecha
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
6
Fuentes de esta presentación
MSDN
Channel 9




Microsoft Azure SQL Databases
SQL Azure Scalability
7
Microsoft Azure SQL Databases Overview
Microsoft Azure Elastic Scale
La plataforma de datos de Microsoft

Azure Data Services para soluciones
Plataforma Microsoft SQL
Nube Híbrida
Menor costo
compartido
On Premises
Plataforma como un Servicio
SQL
SQL
SQL
Base de datos SQL Azure
Bases de datos virtualizados
Infraestructura como Servicio
SQL
SQL
SQL
SQL Server en Azure VM
Máquinas virtualizadas
Virtual
SQL
SQL
SQL
SQL Server Private Cloud
Máquinas virtualizadas
Físico
Dedicado
costo más alto
SQL
SQL Server
Máquinas físicas (hierro en bruto)
Fuera de las
instalaciones
Administración Superior
Baja la Administración
10
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
11
SQL Database - Niveles de servicio de base de datos
•
•
••
••
•••
•••
Rendimiento predecible
Básico / Standard /
Premium
Web / Business
Máquina
DB 2
DB 4
DB 7
DB 7
DB 55
DB
DB 8
DB 8
Memoria
DB 2
DB 3
DB 6 DB
6
DB 9
DB 9
DB 1
Delimitadores
eliminan vecinos
ruidosos
DB 4
DB 5
DB 3
DB 6
DB 9
DB 7
DB 8
Memoria
Lee
DB
4
Vecino ruidoso!
Lee
Escribe
DB 1
DB 3
Escribe
DB 2
DB 1
Máquina
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
14
Escala hacia arriba / abajo
Opciones de escalabilidad en la base de datos SQL
Azure
Premium
Premium
Estándar
Estándar
Básico
Básico
Básico
Básico
Escalamiento OUT / IN
15
Básico
Básico
Básico
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
P3
• Base de datos permanece en línea, durante el cambio
• Facturación por hora
P2
P1
B S0
DTU
S1
5 10 20
S2
50
100
16
200
800
Unidad de Rendimiento de Base de Datos- DTU
Monitoreo
% De Nivel de rendimiento actual
Cuadro delimitador
Calcular
50%
60%
Leer
50%
75%
DB carga de
trabajo
Lee
Escribe
Utilización
Escribir
UPC
Memoria
Memoria

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
17
Nuevos niveles de rendimiento
Básico
Estándar
Prima
Niveles de Desempeño
(DTU)
5
S0: 10
S1: 20
S2: 50
P1: 100
P2:200
P3: 800
Resultados de ASDB
16600 tx/hora
S1: ,520 tx/minuto
S1: ,940 tx/minuto
S2: 2570 tx/minuto
P1: 105 tx/segundo
P2: 228 tx/segundo
P3: 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
18
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
UPC
UPC
UPC
Escribe
Escribe
Escribe
SELECT * FROM a
JOIN b ON …
RESULTADO
Lee
Lee
Lee
19
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
20
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 = …)
21
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
22
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
23
Monitoreo de recursos
master.sys.resource_stats
 5 minutos promedio
userdb.sys.dm_db_resource_stats
 15 segundos promedios
24
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
25
Conceptos
(2) Sharding Clave
(3) Shard Map
Manager
(6) Tabla fragmentada
(8) Shardlet
Tabla Cliente
ID de cliente
Nombre
1
Alicia
2
Bob
...
Tabla DataCenter
ID DataCenter
Nombre
DC
1
Boston
2
Miami
(1) Base de
Datos
(4) Shard
(7) Tabla
26
(5) Shard Set
(4) Shard
Uso de escalamiento por Sharding
API de cliente .NET
Shard Map Management (SMM)
• Define grupos de shards para su aplicación
• Maneja mapeo de llaves de enrutamiento
Data Dependent Routing (DDR)
Aplicación
Desarrollador
Aplicación
.NET
• Enruta solicitudes entrantes para el shard correcto,
por ejemplo, dado un ID de cliente
• Información de enrutamiento se guarda en caché por
eficiencia
Multi-Shard Query (MSQ)
• Procesamiento interactivo a través de varios Shards
• La misma sentencia ejecutada en todos los shards
con UNION ALL
27
Admin /
DevOps
Servicio de
Gestión
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();
}
}
28
Data Dependent Routing (DDR)
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
Desarrollador
Shard Map
Manager
Client App
DDR API
Cache
GSM
DB
29
LSM
Multi-Shard Query
Shard Map
Manager
Cliente App
MSQ API
Aplicación
Revelador
SELECT count(*)
FROM customers
UNION ALL result set
DB1
DB2
DB3
DB4
DB5
DB6
[0-100)
[100-200)
[200-300)
[300-400)
[400-500)
[500-600)
30
...
DBn
[N - n + 100)
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…
}
}
}
}
31
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
Merge
Split
DB1
DB2
DB3
DB4
DB5
DB6
[0-100)
[100-200)
[200-300)
[300-400)
[400-500)
[500-600)
DB2.1
DB5.1
DB5.2
[0-200)
[400-450)
[450-500)
32
...
DBn
[N - n + 100)
Geo-Replicación
DB1
DB1
DB1
DB1
DB1
33
Preguntas?
A continuación …
Backup y Restore SQL Server 2014
German Cayo
Gracias por participar