SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
#SQSummit
Data warehouse
como servicio en
Azure (SQLDW)
Enrique Catalá Bañuls
Mentor
ecatala@solidq.com
Contenido de la sesión
• ¿Qué es SQLDW?
• Topología de SQLDW
• Escalabilidad y DWUs
• Cómo cargar datos en SQLDW
• Limitaciones
• Experiencias en proyectos reales
Soluciones data warehousing de MS
Microsoft SQL Server
Entorno escalable SMP y
NUMA en cualquier
hardware
OnPremise y Azure IaaS
Ideal para datamarts
desde pequeños a
“medianos”
Solo software
10s de TB
Microsoft Analytics
Platform System (APS)
Appliance para entornos
datawarehouse de alto
rendimiento MPP
Solo OnPremise
Ideal para alto
rendimiento y alta
escalabilidad de DW
Applicance (SW y HW)
10s de TB – 6 PB (PDW)
24TB – 1.2 PB (Hadoop)
Microsoft Azure SQL Data
Warehouse (SQLDW)
Cloud data warehouse
para entornosd de alto
rendimiento MPP
Solo cloud
Ideal para alto
rendimiento, alta
escalabilidad en cloud
Solución completa PaaS
10s de TB – PBs
¿Qué es SQLDW?
PaaS
Escalable
horizontal
Arquitectura
MPP
Integrado
(SSDT, TSQL)
Hibrido
(Polybase)
Coste
efectivo
Qué es el MPP?
Contenido de la sesión
• ¿Qué es SQLDW?
• Topología de SQLDW
• Escalabilidad y DWUs
• Cómo cargar datos en SQLDW
• Limitaciones
• Experiencias en proyectos reales
Cerebro vs Músculo (divide y vencerás)
Control Node (cerebro)
• Acepta requests de usuario
• Interpreta la petición y la escala
• Optimiza la petición
• Orquestra acciones
• Realiza la consolidación final
• Devuelve los resultados
Un único
cerebro
Requiere un motor
relacional distribuido
Compute node (Músculo)
• Realiza computación extrema
• Acepta requests del “cerebro”
• Es un entorno SMP altamente tuneado
• Pensado para peticiones del “cerebro”
• Es el que finalmente accede al dato
Muchos
elementos
“músculo”
No podemos conectar a él
Distribución de datos
Pero muchos
nodos de
procesamiento!
Pequeñas
queries
Divide y
vencerás
Bueno para la
escalabilidad
Introduce sobrecostes
Topología Azure SQL Data Warehouse
Contenido de la sesión
• ¿Qué es SQLDW?
• Topología de SQLDW
• Escalabilidad y DWUs
• Cómo cargar datos en SQLDW
• Limitaciones
• Experiencias en proyectos reales
Escalabilidad y DWUs
• DWU = Data Warehouse Unit
• Load rate: records/seg metiendo datos
• Scan rate: records/seg leyendo datos (CPU+IO)
• Escalabilidad lineal
Escalabilidad y DWUs
Escalabilidad y DWUs
Escalabilidad y DWUs
• Concurrent query
• Petición con independencia de si es serie o paralela
• Concurrency slot
• Slot de hilos disponibles (mas slots, mas
paralelismo)
Arquitectura para SQLDW con
DWU100
Arquitectura para SQLDW con
DWU600
Arquitectura para SQLDW en Pausa
Cómo escalar
• Azure Portal Slider
• T-SQL Command
• Powershell cmdlet
• Y esperar unos pocos minutos
Documentación en http://aka.ms/sqldw
Contenido de la sesión
• ¿Qué es SQLDW?
• Topología de SQLDW
• Escalabilidad y DWUs
• Cómo cargar datos en SQLDW
• Limitaciones
• Experiencias en proyectos reales
Arquitectura de carga – SSIS ó BCP (1)
Arquitectura de carga – SSIS ó BCP (2)
Arquitectura de carga – SSIS ó BCP (2)
Arquitectura de carga - Polybase
Arquitectura de carga - Polybase
--Import data from
CREATE TABLE Prod_DB.dbo.TargetTable_EXCH
WITH (Distribution=HASH (ColA),
CLUSTERED INDEX (ColB),
PARTITION (ColC) RANGE RIGHT ON VALUES (xxx,
xxx, xxx … ))
AS
SELECT poly.PK_Field, poly.ColA, poly.ColB
…
FROM Prod_DB.dbo.ExternalTable_In_Polybase poly
BCP
bcp {database}.dbo.lineitem_cci in
C:Toolboxdbgenlineitem.tbl -c
-U username
-P password
-S xxxxxxxx.database.windows.net
-q -t"|"
-r n -w
SSIS
Nuevo destino SQL PDW
• SSDT 2012
• SSDT 2014
• SSDT 2015
SQL Server PDW Destination Editor
Rendimiento de carga
BCP
SSIS
Polybase
PolyBase BCP SQLBulkCopy/ADF SSIS
Load Rate
Rate increase as you increase DWU Yes No No No
Rate increase as you add concurrent load No Yes Yes Yes
FASTEST============>>>>>>>>>>SLOWEST
Pero si que se incrementa en
Polybase cuando tenemos muchos
ficheros por carpeta
Contenido de la sesión
• ¿Qué es SQLDW?
• Topología de SQLDW
• Escalabilidad y DWUs
• Cómo cargar datos en SQLDW
• Limitaciones
• Experiencias en proyectos reales
Limitaciones (mínimas)
• No se crean automáticamente estadísticas (ni
se mantienen)
• Pensado para cargas con Polybase
• Cuello de botella en nodo de computación
• Las vistas son metadata only
• No schemabinding
• No se pueden actualizar datos de las tablas base
• No hay indexed views
Limitaciones (medianas)
• Tamaño de fila máximo 32k
• Es transaccional pero:
• Solo READ UNCOMMITED
• No hay nested transactions
• No hay distributed transactions
Limitaciones (críticas)
• No se soporta
• Identity, PK, FK, Checks, UNIQUE, computed
columns, sequences, triggers, sparse
• No se soportan todos los tipos de datos
• varchar(max), nvarchar(max),uniqueidentifier
text, image, timestamp,xml,geometry,geography,
hierarchyid, sql_variant, table
NOTA: Todos los tipos de datos tienen workaround, la mayoría
valen con varbinary(8000)
Limitaciones
• Tamaño de una transacción (ojo aquí)
Limitaciones…
• ANSI joins on updates
• ANSI joins on deletes
• merge statement
• cross-database joins
• cursors
• SELECT..INTO
• INSERT..EXEC
• output clause
• inline user-defined functions
• multi-statement functions
• common table expressions
• recursive common table
expressions (CTE)
• CLR functions and procedures
• $partition function
• table variables
• table value parameters
• distributed transactions
• commit / rollback work
• save transaction
• execution contexts (EXECUTE
AS)
• group by clause with rollup /
cube / grouping sets options
• nesting levels beyond 8
• updating through views
• use of select for variable
assignment
• no MAX data type for dynamic
SQL strings
ETL vs ELT
• Extract
• Transform
• Load
ETL SERVER
DATA
WAREHOUSE
SERVER
EXTRACT
TRANSFORM
LOAD
ELT SERVER
DATA
WAREHOUSE
SERVER
EXTRACT
TRANSFORM
LOAD
ELTETL
IN-MEMORY
TRANSFORMS
FEWER CPUS
IN-DB
MORE CPUS
GOOD SORT
Mapeo de datos
Contenido de la sesión
• ¿Qué es SQLDW?
• Topología de SQLDW
• Escalabilidad y DWUs
• Cómo cargar datos en SQLDW
• Limitaciones
• Experiencias en proyectos reales
Fases del Proyecto
• Carga de datos en SQLDW
• Ajustes en modelo
• Patrón para subir de OnPrem a SQLDW
• Marcas de cambios
• Cambio de ETL a ELT (si tenemos solución BI)
• Traducir SSIS a Reports (ya no habrán SSIS)
• Pruebas y mediciones
• 500 y 1000 DTUs como mínimo probarlas
Carga de Datos en SQLDW
• Subir backups a Azure
• Restaurar backups en Azure
• Exportar datos a CSV
• Subir CSVs a Azure Storage
• Cargar CSVs en SQLDW
Patrón para subir OnPrem a SQLDW
• Marcas en tablas origen (timestamp)
• En SQL IaaS Azure (staging)
• Subir datos desde OnPrem (Staging)
• Comparar marcas OnPrem vs SQLDW
• Cargar cambios en SQLDW
Ajustes en Reports
• Convertir los SSIS a Query SQLDW
• Queries complejas
• 24 horas convertir SSIS a query (generalmente)
Pruebas y Mediciones
Operativa Fase MBps Nº hilos Tamaño (GB) Tiempo necesario horas
Subir Backups Carga -
Restaurar Backups Carga 16.00
Generacion CSV Carga 20 1 975 13.88
Subiendo CSV Carga 55 1 975 5.05
Cargando CSV Carga 20 8 304 1.74
Sincronización Sync -
Query Excel Excel 500 DTW 120 secs
Query Excel Excel 1000 DTW 75 secs
Nota. Margen de mejora. Máquinas A6 (4 cores) sin almacenamiento
Premium ni múltiples discos
Estimaciónes para particionado
Bytes_per_row: 250
#_rows: 60,000,000,000
B_to_GB_factor: 1,000,000,000
Distribution_count: 60
Compression_factor: 5 (typical)
Partition_count: 36 (monthly over three years)
Max_rows_per_rowgroup
rows_per_distribution = #_rows / distribution_count
rows_per_partition = rows_per_distribution / partition_count
max_rowgroups_per_partition = partition_count / max_rows_per_rowgroup
Uncompressed_table_size_b = bytes_per_row x # rows
Uncompressed_table_size_gb = Uncompressed_table_size_b / B_to_GB_factor
Uncompressed_table_distribution_size_gb = uncompressed_table_size_gb/distribution_count
Compressed_distribution_size_gb = Uncompressed_table_distribution_size_gb /compression_factor
Compressed_partition_size_gb = Compressed_distribution_size_gb / partition_count
Precios (abril 2016)
Nivel Hora Mensual Conc. Query Conc. Slot
100 DWU 0,66 € 492,00 € 32 4
500 DWU 3,31 € 2.459,00 € 32 20
1000 DWU 6,61 € 4.919,00 € 32 40
1500 DWU 9,92 € 7.378,00 € 32 60
2000 DWU 12,22 € 9.838,00 € 32 80
• Recuerda SIEMPRE pausar la implementación
cuando no la uses
• Puedes seguir subiendo datos si usas Polybase
Lecciones aprendidas en proyectos
reales
1. Diseña tus objetos pensando en distribución
de datos
2. Crea siempre estadísticas tras el CREATE
TABLE
3. Actualiza siempre estadísticas tras una carga
4. Particiona tus objetos
5. Comienza con DTW 300 para hacer
mediciones
Lecciones aprendidas en proyectos
reales
1. Utiliza BIML
2. Carga mediante Polybase
3. Crea tus objetos mediante plantillas T4
4. Utiliza un separador de texto compuesto
“$|x”
5. Tu máquina de desarrollo en Azure
• Subiendo datos ganarás tiempo en cada prueba
Conclusión: ¿Necesito entonces
SQLDW?
• Si el dinero no es problema
• Si ya había estado valorando la opción de APS
• Si no tengo una solución de BI
• O si no quiero invertir más en BI y quiero ir por la
vía del Hierro
• Si tengo tanto dato que es inviable hacerlo
con solución de BI
• Necesito saltarme la fase de transformación y ver
cuanto antes el dato
También puedes preguntar tus
dudas con el hashtag
#SQSummit en Twitter
ADAPTIVE BI FRAMEWORK
Te ayudaremos a mejorar la velocidad de desarrollo de tu plataforma de
analítica de negocio basada en nuestra experiencia:
•Diseña antes de construir
•Automatización de procesos por ETL
•Servicios de mentoring para ayudarte a conseguir mejores prácticas para la construcción
de procesos específicos y plataformas de analítica de negocio
•Muy fácil de mantener
SOLIDQ FLEX SERVICES
Con SolidQ Flex Services evitarás sustos, consiguiendo que tus sistemas
sean estables. Desde una solución sencilla de monitorización, hasta un
servicio de atención de incidencias 24/7, mantenimiento proactivo,
resolución de problemas y línea de soporte.
Todo con un coste fijo mensual… y tú dedica el tiempo a las cosas
importantes.
¡Gracias!

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Novedades en SQL Azure V12
Novedades en SQL Azure V12Novedades en SQL Azure V12
Novedades en SQL Azure V12
 
Column stored index
Column stored index Column stored index
Column stored index
 
Introducción R - Primeros pasos
Introducción R - Primeros pasosIntroducción R - Primeros pasos
Introducción R - Primeros pasos
 
Polybase
PolybasePolybase
Polybase
 
Paralelismo en SQL Server
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en SQL Server
 
Query store
Query storeQuery store
Query store
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL Server
 
Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
 Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG) Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
 
TSQL menos frecuente desde SQL Server 2005
TSQL menos frecuente desde SQL Server 2005TSQL menos frecuente desde SQL Server 2005
TSQL menos frecuente desde SQL Server 2005
 
Toolbox SQL Server para optimización
Toolbox SQL Server para optimizaciónToolbox SQL Server para optimización
Toolbox SQL Server para optimización
 
Copias de seguridad y recuperación de desastres
Copias de seguridad y recuperación de desastresCopias de seguridad y recuperación de desastres
Copias de seguridad y recuperación de desastres
 
In memory
In memoryIn memory
In memory
 
Novedades en SSAS 2016
Novedades en SSAS 2016Novedades en SSAS 2016
Novedades en SSAS 2016
 
Novedades SQL Azure v12
Novedades SQL Azure v12Novedades SQL Azure v12
Novedades SQL Azure v12
 
SQL Server 2014 Nuevas Capacidades
SQL Server 2014  Nuevas CapacidadesSQL Server 2014  Nuevas Capacidades
SQL Server 2014 Nuevas Capacidades
 
Novedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacional
 
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
 
Performance Tuning en Azure SQL Database
Performance Tuning en Azure SQL DatabasePerformance Tuning en Azure SQL Database
Performance Tuning en Azure SQL Database
 

Andere mochten auch

Andere mochten auch (20)

Microsoft Azure Data Warehouse Overview
Microsoft Azure Data Warehouse OverviewMicrosoft Azure Data Warehouse Overview
Microsoft Azure Data Warehouse Overview
 
Azure Machine Learning 101
Azure Machine Learning 101Azure Machine Learning 101
Azure Machine Learning 101
 
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
 
Microsoft Azure Batch
Microsoft Azure BatchMicrosoft Azure Batch
Microsoft Azure Batch
 
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
 
Azure SQL DWH
Azure SQL DWHAzure SQL DWH
Azure SQL DWH
 
SQL Saturday #313 Rheinland - MapReduce in der Praxis
SQL Saturday #313 Rheinland - MapReduce in der PraxisSQL Saturday #313 Rheinland - MapReduce in der Praxis
SQL Saturday #313 Rheinland - MapReduce in der Praxis
 
AnalyticsConf : Azure SQL Data Warehouse
AnalyticsConf : Azure SQL Data WarehouseAnalyticsConf : Azure SQL Data Warehouse
AnalyticsConf : Azure SQL Data Warehouse
 
How to deploy SQL Server on an Microsoft Azure virtual machines
How to deploy SQL Server on an Microsoft Azure virtual machinesHow to deploy SQL Server on an Microsoft Azure virtual machines
How to deploy SQL Server on an Microsoft Azure virtual machines
 
Planes de ejecucion 1
Planes de ejecucion 1Planes de ejecucion 1
Planes de ejecucion 1
 
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
 
Enterprise Cloud Data Platforms - with Microsoft Azure
Enterprise Cloud Data Platforms - with Microsoft AzureEnterprise Cloud Data Platforms - with Microsoft Azure
Enterprise Cloud Data Platforms - with Microsoft Azure
 
SQL Azure Data Warehouse - Silviu Niculita
SQL Azure Data Warehouse - Silviu NiculitaSQL Azure Data Warehouse - Silviu Niculita
SQL Azure Data Warehouse - Silviu Niculita
 
Azure sql database 入門 2014年10月版
Azure sql database 入門 2014年10月版Azure sql database 入門 2014年10月版
Azure sql database 入門 2014年10月版
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)
 
SQL Server Cross Platform Portable con Docker
SQL Server Cross Platform Portable con DockerSQL Server Cross Platform Portable con Docker
SQL Server Cross Platform Portable con Docker
 
Machine learning with Spark
Machine learning with SparkMachine learning with Spark
Machine learning with Spark
 
Introducing Azure SQL Data Warehouse
Introducing Azure SQL Data WarehouseIntroducing Azure SQL Data Warehouse
Introducing Azure SQL Data Warehouse
 
Windows Server Containers
Windows Server ContainersWindows Server Containers
Windows Server Containers
 
20110406aws accenture
20110406aws accenture20110406aws accenture
20110406aws accenture
 

Ähnlich wie Datawarehouse como servicio en azure (sqldw)

Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
Enrique Catala Bañuls
 
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAPNovedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Joseph Lopez
 

Ähnlich wie Datawarehouse como servicio en azure (sqldw) (20)

Introducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseIntroducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data Warehouse
 
Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
 
In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016
 
Sql azure data warehouse gab jorge muchaypina
Sql azure data warehouse gab   jorge muchaypinaSql azure data warehouse gab   jorge muchaypina
Sql azure data warehouse gab jorge muchaypina
 
SQL Azure Datawarehouse
SQL Azure DatawarehouseSQL Azure Datawarehouse
SQL Azure Datawarehouse
 
Aplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Aplicando SQL Server 2016 en Microsoft Azure Virtual MachineAplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Aplicando SQL Server 2016 en Microsoft Azure Virtual Machine
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
 
Mejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerMejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL Server
 
Casos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL ServerCasos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL Server
 
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAPNovedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
 
SQL 2016 Column Store Index
SQL 2016 Column Store IndexSQL 2016 Column Store Index
SQL 2016 Column Store Index
 
SQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de DatosSQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de Datos
 
Sql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datosSql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datos
 
Mejores prácticas para migrar sus bases de datos a AWS
Mejores prácticas para migrar sus bases de datos a AWSMejores prácticas para migrar sus bases de datos a AWS
Mejores prácticas para migrar sus bases de datos a AWS
 
Introducción a Azure DocumentDB
Introducción a Azure DocumentDBIntroducción a Azure DocumentDB
Introducción a Azure DocumentDB
 
SQL 2016 Mejoras en InMemory OLTP y Column Store Index
SQL 2016 Mejoras en InMemory OLTP y Column Store IndexSQL 2016 Mejoras en InMemory OLTP y Column Store Index
SQL 2016 Mejoras en InMemory OLTP y Column Store Index
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladores
 
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
 
Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014
 

Mehr von Enrique Catala Bañuls

Mehr von Enrique Catala Bañuls (17)

Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql server
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v next
 
Paralelismo en sql server
Paralelismo en sql serverParalelismo en sql server
Paralelismo en sql server
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2016
Planes de ejecucion 2016Planes de ejecucion 2016
Planes de ejecucion 2016
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladores
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015
 
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
 
Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014
 
Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014
 
Transacciones diferidas
Transacciones diferidasTransacciones diferidas
Transacciones diferidas
 
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azureEscalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azure
 
Experiencias de migraciones a sql server 2012-2014
Experiencias de migraciones a sql server 2012-2014 Experiencias de migraciones a sql server 2012-2014
Experiencias de migraciones a sql server 2012-2014
 
Guias y recomendaciones para instalar y configurar clusters de sql server
Guias y recomendaciones para instalar y configurar clusters de sql serverGuias y recomendaciones para instalar y configurar clusters de sql server
Guias y recomendaciones para instalar y configurar clusters de sql server
 
Escenarios híbridos con SQL Server 2014
Escenarios híbridos con SQL Server 2014Escenarios híbridos con SQL Server 2014
Escenarios híbridos con SQL Server 2014
 

Kürzlich hochgeladen

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Kürzlich hochgeladen (11)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Datawarehouse como servicio en azure (sqldw)

  • 1. #SQSummit Data warehouse como servicio en Azure (SQLDW) Enrique Catalá Bañuls Mentor ecatala@solidq.com
  • 2. Contenido de la sesión • ¿Qué es SQLDW? • Topología de SQLDW • Escalabilidad y DWUs • Cómo cargar datos en SQLDW • Limitaciones • Experiencias en proyectos reales
  • 3. Soluciones data warehousing de MS Microsoft SQL Server Entorno escalable SMP y NUMA en cualquier hardware OnPremise y Azure IaaS Ideal para datamarts desde pequeños a “medianos” Solo software 10s de TB Microsoft Analytics Platform System (APS) Appliance para entornos datawarehouse de alto rendimiento MPP Solo OnPremise Ideal para alto rendimiento y alta escalabilidad de DW Applicance (SW y HW) 10s de TB – 6 PB (PDW) 24TB – 1.2 PB (Hadoop) Microsoft Azure SQL Data Warehouse (SQLDW) Cloud data warehouse para entornosd de alto rendimiento MPP Solo cloud Ideal para alto rendimiento, alta escalabilidad en cloud Solución completa PaaS 10s de TB – PBs
  • 5. Qué es el MPP?
  • 6. Contenido de la sesión • ¿Qué es SQLDW? • Topología de SQLDW • Escalabilidad y DWUs • Cómo cargar datos en SQLDW • Limitaciones • Experiencias en proyectos reales
  • 7. Cerebro vs Músculo (divide y vencerás)
  • 8. Control Node (cerebro) • Acepta requests de usuario • Interpreta la petición y la escala • Optimiza la petición • Orquestra acciones • Realiza la consolidación final • Devuelve los resultados Un único cerebro Requiere un motor relacional distribuido
  • 9. Compute node (Músculo) • Realiza computación extrema • Acepta requests del “cerebro” • Es un entorno SMP altamente tuneado • Pensado para peticiones del “cerebro” • Es el que finalmente accede al dato Muchos elementos “músculo” No podemos conectar a él
  • 10. Distribución de datos Pero muchos nodos de procesamiento! Pequeñas queries Divide y vencerás Bueno para la escalabilidad Introduce sobrecostes
  • 11. Topología Azure SQL Data Warehouse
  • 12. Contenido de la sesión • ¿Qué es SQLDW? • Topología de SQLDW • Escalabilidad y DWUs • Cómo cargar datos en SQLDW • Limitaciones • Experiencias en proyectos reales
  • 13. Escalabilidad y DWUs • DWU = Data Warehouse Unit • Load rate: records/seg metiendo datos • Scan rate: records/seg leyendo datos (CPU+IO) • Escalabilidad lineal
  • 16. Escalabilidad y DWUs • Concurrent query • Petición con independencia de si es serie o paralela • Concurrency slot • Slot de hilos disponibles (mas slots, mas paralelismo)
  • 20. Cómo escalar • Azure Portal Slider • T-SQL Command • Powershell cmdlet • Y esperar unos pocos minutos Documentación en http://aka.ms/sqldw
  • 21. Contenido de la sesión • ¿Qué es SQLDW? • Topología de SQLDW • Escalabilidad y DWUs • Cómo cargar datos en SQLDW • Limitaciones • Experiencias en proyectos reales
  • 22. Arquitectura de carga – SSIS ó BCP (1)
  • 23. Arquitectura de carga – SSIS ó BCP (2)
  • 24. Arquitectura de carga – SSIS ó BCP (2)
  • 25. Arquitectura de carga - Polybase
  • 26. Arquitectura de carga - Polybase --Import data from CREATE TABLE Prod_DB.dbo.TargetTable_EXCH WITH (Distribution=HASH (ColA), CLUSTERED INDEX (ColB), PARTITION (ColC) RANGE RIGHT ON VALUES (xxx, xxx, xxx … )) AS SELECT poly.PK_Field, poly.ColA, poly.ColB … FROM Prod_DB.dbo.ExternalTable_In_Polybase poly
  • 27. BCP bcp {database}.dbo.lineitem_cci in C:Toolboxdbgenlineitem.tbl -c -U username -P password -S xxxxxxxx.database.windows.net -q -t"|" -r n -w
  • 28. SSIS Nuevo destino SQL PDW • SSDT 2012 • SSDT 2014 • SSDT 2015
  • 29. SQL Server PDW Destination Editor
  • 30. Rendimiento de carga BCP SSIS Polybase PolyBase BCP SQLBulkCopy/ADF SSIS Load Rate Rate increase as you increase DWU Yes No No No Rate increase as you add concurrent load No Yes Yes Yes FASTEST============>>>>>>>>>>SLOWEST Pero si que se incrementa en Polybase cuando tenemos muchos ficheros por carpeta
  • 31. Contenido de la sesión • ¿Qué es SQLDW? • Topología de SQLDW • Escalabilidad y DWUs • Cómo cargar datos en SQLDW • Limitaciones • Experiencias en proyectos reales
  • 32. Limitaciones (mínimas) • No se crean automáticamente estadísticas (ni se mantienen) • Pensado para cargas con Polybase • Cuello de botella en nodo de computación • Las vistas son metadata only • No schemabinding • No se pueden actualizar datos de las tablas base • No hay indexed views
  • 33. Limitaciones (medianas) • Tamaño de fila máximo 32k • Es transaccional pero: • Solo READ UNCOMMITED • No hay nested transactions • No hay distributed transactions
  • 34. Limitaciones (críticas) • No se soporta • Identity, PK, FK, Checks, UNIQUE, computed columns, sequences, triggers, sparse • No se soportan todos los tipos de datos • varchar(max), nvarchar(max),uniqueidentifier text, image, timestamp,xml,geometry,geography, hierarchyid, sql_variant, table NOTA: Todos los tipos de datos tienen workaround, la mayoría valen con varbinary(8000)
  • 35. Limitaciones • Tamaño de una transacción (ojo aquí)
  • 36. Limitaciones… • ANSI joins on updates • ANSI joins on deletes • merge statement • cross-database joins • cursors • SELECT..INTO • INSERT..EXEC • output clause • inline user-defined functions • multi-statement functions • common table expressions • recursive common table expressions (CTE) • CLR functions and procedures • $partition function • table variables • table value parameters • distributed transactions • commit / rollback work • save transaction • execution contexts (EXECUTE AS) • group by clause with rollup / cube / grouping sets options • nesting levels beyond 8 • updating through views • use of select for variable assignment • no MAX data type for dynamic SQL strings
  • 37. ETL vs ELT • Extract • Transform • Load ETL SERVER DATA WAREHOUSE SERVER EXTRACT TRANSFORM LOAD ELT SERVER DATA WAREHOUSE SERVER EXTRACT TRANSFORM LOAD ELTETL IN-MEMORY TRANSFORMS FEWER CPUS IN-DB MORE CPUS GOOD SORT
  • 39. Contenido de la sesión • ¿Qué es SQLDW? • Topología de SQLDW • Escalabilidad y DWUs • Cómo cargar datos en SQLDW • Limitaciones • Experiencias en proyectos reales
  • 40. Fases del Proyecto • Carga de datos en SQLDW • Ajustes en modelo • Patrón para subir de OnPrem a SQLDW • Marcas de cambios • Cambio de ETL a ELT (si tenemos solución BI) • Traducir SSIS a Reports (ya no habrán SSIS) • Pruebas y mediciones • 500 y 1000 DTUs como mínimo probarlas
  • 41. Carga de Datos en SQLDW • Subir backups a Azure • Restaurar backups en Azure • Exportar datos a CSV • Subir CSVs a Azure Storage • Cargar CSVs en SQLDW
  • 42. Patrón para subir OnPrem a SQLDW • Marcas en tablas origen (timestamp) • En SQL IaaS Azure (staging) • Subir datos desde OnPrem (Staging) • Comparar marcas OnPrem vs SQLDW • Cargar cambios en SQLDW
  • 43. Ajustes en Reports • Convertir los SSIS a Query SQLDW • Queries complejas • 24 horas convertir SSIS a query (generalmente)
  • 44. Pruebas y Mediciones Operativa Fase MBps Nº hilos Tamaño (GB) Tiempo necesario horas Subir Backups Carga - Restaurar Backups Carga 16.00 Generacion CSV Carga 20 1 975 13.88 Subiendo CSV Carga 55 1 975 5.05 Cargando CSV Carga 20 8 304 1.74 Sincronización Sync - Query Excel Excel 500 DTW 120 secs Query Excel Excel 1000 DTW 75 secs Nota. Margen de mejora. Máquinas A6 (4 cores) sin almacenamiento Premium ni múltiples discos
  • 45. Estimaciónes para particionado Bytes_per_row: 250 #_rows: 60,000,000,000 B_to_GB_factor: 1,000,000,000 Distribution_count: 60 Compression_factor: 5 (typical) Partition_count: 36 (monthly over three years) Max_rows_per_rowgroup rows_per_distribution = #_rows / distribution_count rows_per_partition = rows_per_distribution / partition_count max_rowgroups_per_partition = partition_count / max_rows_per_rowgroup Uncompressed_table_size_b = bytes_per_row x # rows Uncompressed_table_size_gb = Uncompressed_table_size_b / B_to_GB_factor Uncompressed_table_distribution_size_gb = uncompressed_table_size_gb/distribution_count Compressed_distribution_size_gb = Uncompressed_table_distribution_size_gb /compression_factor Compressed_partition_size_gb = Compressed_distribution_size_gb / partition_count
  • 46. Precios (abril 2016) Nivel Hora Mensual Conc. Query Conc. Slot 100 DWU 0,66 € 492,00 € 32 4 500 DWU 3,31 € 2.459,00 € 32 20 1000 DWU 6,61 € 4.919,00 € 32 40 1500 DWU 9,92 € 7.378,00 € 32 60 2000 DWU 12,22 € 9.838,00 € 32 80 • Recuerda SIEMPRE pausar la implementación cuando no la uses • Puedes seguir subiendo datos si usas Polybase
  • 47. Lecciones aprendidas en proyectos reales 1. Diseña tus objetos pensando en distribución de datos 2. Crea siempre estadísticas tras el CREATE TABLE 3. Actualiza siempre estadísticas tras una carga 4. Particiona tus objetos 5. Comienza con DTW 300 para hacer mediciones
  • 48. Lecciones aprendidas en proyectos reales 1. Utiliza BIML 2. Carga mediante Polybase 3. Crea tus objetos mediante plantillas T4 4. Utiliza un separador de texto compuesto “$|x” 5. Tu máquina de desarrollo en Azure • Subiendo datos ganarás tiempo en cada prueba
  • 49. Conclusión: ¿Necesito entonces SQLDW? • Si el dinero no es problema • Si ya había estado valorando la opción de APS • Si no tengo una solución de BI • O si no quiero invertir más en BI y quiero ir por la vía del Hierro • Si tengo tanto dato que es inviable hacerlo con solución de BI • Necesito saltarme la fase de transformación y ver cuanto antes el dato
  • 50. También puedes preguntar tus dudas con el hashtag #SQSummit en Twitter ADAPTIVE BI FRAMEWORK Te ayudaremos a mejorar la velocidad de desarrollo de tu plataforma de analítica de negocio basada en nuestra experiencia: •Diseña antes de construir •Automatización de procesos por ETL •Servicios de mentoring para ayudarte a conseguir mejores prácticas para la construcción de procesos específicos y plataformas de analítica de negocio •Muy fácil de mantener SOLIDQ FLEX SERVICES Con SolidQ Flex Services evitarás sustos, consiguiendo que tus sistemas sean estables. Desde una solución sencilla de monitorización, hasta un servicio de atención de incidencias 24/7, mantenimiento proactivo, resolución de problemas y línea de soporte. Todo con un coste fijo mensual… y tú dedica el tiempo a las cosas importantes. ¡Gracias!