SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Todo lo que Un integrador de datos debería tener…
y parece que se nos olvida…
Soy experto en
creación de ETL
Se un montón de T-SQL
Sé un montón de SSIS
Me conozco el libro de Kimball mejor que el menú
de Mcdonals
Hace 15 años que prácticamente hago etls
Y sin embargo
Mis ETL siguen fallando
Algunos problemas los evalúo un tiempo después
y me asusta mi código
Cada vez que falla algo en producción, mi log
tiene mil cosas estúpidas pero ni una pista de
porque
Me cuesta dar un montón de explicaciones
• ETL sirve para proveer de conocimiento
• Pero nos centramos en datos
En que falla la industria
• Tenemos que describir el cómo
No nos basta con saber el qué
• Pero olvidamos el propósito
Nos centramos en los detalles
• Mi proceso ha funcionado… tu sabras porque no cuadra
Nos pasa como en Desarrollo
Agenda
Estado del arte de la creación de ETL’s
Patrones ETL-ELT.Staging-orquestacion
Aprendiendo de DEV
Conclusiones
Estado del arte II
La visión del leader
Estado del Arte III
SSIS
Pentaho Data Integrator (spoon) <component
refId="PackageLoadDataLoad Staging TableSTG"
componentClassID="Microsoft.OLEDBSource"
contactInfo="OLE DB Source;Microsoft Corporation; Microsoft SQL Server; (C) Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;7"
name="STG"
usesDispositions="true"
version="7">
<properties>
<property
dataType="System.Int32"
description="The number of seconds before a command times out. A value of 0 indicates an infinite time-out."
name="CommandTimeout">0</property>
<property
dataType="System.String"
description="Specifies the name of the database object used to open a rowset."
name="OpenRowset"></property>
<property
dataType="System.String"
description="Specifies the variable that contains the name of the database object used to open a rowset."
name="OpenRowsetVariable"></property>
<property
dataType="System.String"
description="The SQL command to be executed."
name="SqlCommand"
UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">SELECT [FirstName] ,[FullName] ,[idCustomer] ,[LastName] ,[MiddleName] ,[pkCustomerID] ,[Title] FROM etl.vw_dim_Customer ;</property>
<property
dataType="System.String"
description="The variable that contains the SQL command to be executed."
name="SqlCommandVariable"></property>
<property
dataType="System.Int32"
description="Specifies the column code page to use when code page information is unavailable fromthe data source."
name="DefaultCodePage">1252</property>
<property
dataType="System.Boolean"
description="Forces the use of the DefaultCodePage property value when describing character data."
name="AlwaysUseDefaultCodePage">false</property>
<property
dataType="System.Int32"
description="Specifies the mode used to access the database."
name="AccessMode"
typeConverter="AccessMode">2</property>
<property
dataType="System.String"
description="The mappings between the parameters in the SQL command and variables."
name="ParameterMapping"></property>
</properties>
<connections>
<connection
refId="PackageLoad DataLoad Staging TableSTG.Connections[OleDbConnection]"
connectionManagerID="{91D4C3C0-C280-487E-9E29-8337CE452461}:external"
connectionManagerRefId="Project.ConnectionManagers[STG1]"
description="The OLE DB runtime connection used to access the database."
name="OleDbConnection" />
</connections>
<outputs>
<output
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output]"
name="Output">
<outputColumns>
<outputColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[FirstName]"
dataType="wstr"
errorOrTruncationOperation="Conversion"
errorRowDisposition="FailComponent"
externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[FirstName]"
length="50"
lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[FirstName]"
name="FirstName"
truncationRowDisposition="FailComponent" />
<outputColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[FullName]"
dataType="wstr"
errorOrTruncationOperation="Conversion"
errorRowDisposition="FailComponent"
externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[FullName]"
length="161"
lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[FullName]"
name="FullName"
truncationRowDisposition="FailComponent" />
<outputColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[idCustomer]"
dataType="wstr"
errorOrTruncationOperation="Conversion"
errorRowDisposition="FailComponent"
externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[idCustomer]"
length="15"
lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[idCustomer]"
name="idCustomer"
truncationRowDisposition="FailComponent" />
<outputColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[LastName]"
dataType="wstr"
errorOrTruncationOperation="Conversion"
errorRowDisposition="FailComponent"
externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[LastName]"
length="50"
lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[LastName]"
name="LastName"
truncationRowDisposition="FailComponent" />
<outputColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[MiddleName]"
dataType="wstr"
errorOrTruncationOperation="Conversion"
errorRowDisposition="FailComponent"
externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[MiddleName]"
length="50"
lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[MiddleName]"
name="MiddleName"
truncationRowDisposition="FailComponent" />
<outputColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[pkCustomerID]"
dataType="i4"
errorOrTruncationOperation="Conversion"
errorRowDisposition="FailComponent"
externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[pkCustomerID]"
lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[pkCustomerID]"
name="pkCustomerID"
truncationRowDisposition="FailComponent" />
<outputColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[Title]"
dataType="wstr"
errorOrTruncationOperation="Conversion"
errorRowDisposition="FailComponent"
externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[Title]"
length="8"
lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[Title]"
name="Title"
truncationRowDisposition="FailComponent" />
</outputColumns>
<externalMetadataColumns
isUsed="True">
<externalMetadataColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[FirstName]"
dataType="wstr"
length="50"
name="FirstName" />
<externalMetadataColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[FullName]"
dataType="wstr"
length="161"
name="FullName" />
<externalMetadataColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[idCustomer]"
dataType="wstr"
length="15"
name="idCustomer" />
<externalMetadataColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[LastName]"
dataType="wstr"
length="50"
name="LastName" />
<externalMetadataColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[MiddleName]"
dataType="wstr"
length="50"
name="MiddleName" />
<externalMetadataColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[pkCustomerID]"
dataType="i4"
name="pkCustomerID" />
<externalMetadataColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[Title]"
dataType="wstr"
length="8"
name="Title" />
</externalMetadataColumns>
</output>
<output
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Error]"
isErrorOut="true"
name="Error">
<outputColumns>
<outputColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Error].Columns[FirstName]"
dataType="wstr"
length="50"
lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Error].Columns[FirstName]"
name="FirstName" />
<outputColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Error].Columns[FullName]"
dataType="wstr"
length="161"
lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Error].Columns[FullName]"
name="FullName" />
<outputColumn
refId="PackageLoad DataLoad Staging TableSTG.Outputs[Error].Columns[idCustomer]"
dataType="wstr"
length="15"
Estado del arte IV
<OleDbSource Name="HLP" ConnectionName="HLP<#=helper.connection_id#>">
<DirectInput>SELECT * FROM <#=row["source_object_schema"]#>.<#=row["source_object_name"]#>
</DirectInput>
</OleDbSource>
BIML
Estado del arte V
Fabricantes
• En ejecución algunos códigos son
lamentables
• Mientras en SQL decimos el que TODOS
los fabricantes nos obligan a expresar el
COMO
• En algunos es imposible generar ese
código de forma automática
Industria
• Alguna empresa aprovecha los huecos
para hacer “facilities”
• Muchos nos hacemos frameworks que
ayudan un montón
• Nadie (o casi nadie que el mundo es muy
grande) se preocupa por cambiar el
paradigma
ETL-ELT
Data lake
SSIS
Volumen Variabilidad
Velocidad
Datos
crudos
Esta de
moda
Inciso sobre Azure DataBricks
"activities":[
{ "name": "CopyActivityTemplate",
"type": "Copy",
"inputs":
[ { "referenceName": "<source dataset name>",
"type": "DatasetReference" } ],
"outputs":
[{ "referenceName": "<sink dataset name>",
"type": "DatasetReference" } ],
"typeProperties":
{ "source": { "type": "<source type>", <properties> },
"sink": { "type": "<sink type>" <properties> },
"translator": { "type": "TabularTranslator",
"columnMappings": "<column mapping>" },
"cloudDataMovementUnits": <number>,
"parallelCopies": <number>,
"enableStaging": true/false,
"stagingSettings": { <properties> },
"enableSkipIncompatibleRow": true/false,
redirectIncompatibleRowSettings": { <properties> } } } ]
Inciso sobre Azure DataBricks II RDDs
Big-data
scale
In Memory
“SQL
lambda like”
Spark
Spark Notebooks
RDD
Aprendiendo desde desarrollo
• Desarrollo orientado a test
• Integración con código fuente
• Integración continua
• Devops
Aprendiendo desde Dev
Test en
desarrollo
• Test que se ejecutan una sola vez
• Test que ejecutamos periódicamente
• Ncientas queries que guardamos
por si acaso
Test para
producción
• Repetibles
• Metódicas
• Que aporten valor de negocio
• Que sean completas
Aprendiendo desde Dev
Test en
desarrollo
• Test que se ejecutan una sola vez
• Test que ejecutamos periódicamente
• Ncientas queries que guardamos
por si acaso
Test
• Repetibles
• Metódicas
• Que aporten valor de negocio
• Que sean completas
Otra forma de hacer TEST
Integración con código fuente
• Sigue las prácticas de desarrollo
• Considera tus ETLS como código fuente
• Versiona-Etiqueta-Crea ramas
• Define tus prácticas y cúmplelas
Conclusiones y Discusión
Preguntas

Contenu connexe

Tendances

Acceso A Datos Y Ado.Net
Acceso A Datos Y Ado.NetAcceso A Datos Y Ado.Net
Acceso A Datos Y Ado.Netjennysofia
 
Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]Eduardo Arriols Nuñez
 
TUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENOTUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENOiberhack
 
8. Acceso A Datos Con Microsoft Ado.Net
8.  Acceso A Datos Con Microsoft Ado.Net8.  Acceso A Datos Con Microsoft Ado.Net
8. Acceso A Datos Con Microsoft Ado.Netguest3cf6ff
 
Ejemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportEjemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportjbersosa
 
Ado.net 2012
Ado.net 2012Ado.net 2012
Ado.net 2012pepelon_k
 
Objeto ado.net
Objeto ado.netObjeto ado.net
Objeto ado.netbarby1820
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en javajent46
 
Cuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemploCuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemploWilliam Sánchez
 

Tendances (19)

Acceso A Datos Y Ado.Net
Acceso A Datos Y Ado.NetAcceso A Datos Y Ado.Net
Acceso A Datos Y Ado.Net
 
Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]
 
TUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENOTUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENO
 
Bases de Datos - Parte 9/10 XML
Bases de Datos - Parte 9/10 XMLBases de Datos - Parte 9/10 XML
Bases de Datos - Parte 9/10 XML
 
Taller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DMLTaller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DML
 
Guía herramientas de BD PHP
Guía herramientas de BD PHPGuía herramientas de BD PHP
Guía herramientas de BD PHP
 
Apuntes de XSD
Apuntes de XSDApuntes de XSD
Apuntes de XSD
 
PHP - MYSQL
PHP - MYSQLPHP - MYSQL
PHP - MYSQL
 
8. Acceso A Datos Con Microsoft Ado.Net
8.  Acceso A Datos Con Microsoft Ado.Net8.  Acceso A Datos Con Microsoft Ado.Net
8. Acceso A Datos Con Microsoft Ado.Net
 
Ejemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportEjemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper report
 
Tema 2
Tema 2Tema 2
Tema 2
 
Tema 4 5_1_acceso_datos
Tema 4 5_1_acceso_datosTema 4 5_1_acceso_datos
Tema 4 5_1_acceso_datos
 
ADO .NET
ADO .NETADO .NET
ADO .NET
 
Ado.net 2012
Ado.net 2012Ado.net 2012
Ado.net 2012
 
Base de datos
Base de datosBase de datos
Base de datos
 
Objeto ado.net
Objeto ado.netObjeto ado.net
Objeto ado.net
 
Java y Bases Datos
Java y Bases DatosJava y Bases Datos
Java y Bases Datos
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en java
 
Cuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemploCuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemplo
 

Similaire à SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y parece que se nos olvida...

Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Juan Manuel
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6Julián Castiblanco
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCCarlos Hernando
 
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptxOVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptxMARGOTHLORENAMARTINE
 
Sql plus temario
Sql plus temarioSql plus temario
Sql plus temarioHugo Mdz
 
Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N5   Proyectos Web   Consultas Php Y My SqlGuia N5   Proyectos Web   Consultas Php Y My Sql
Guia N5 Proyectos Web Consultas Php Y My SqlJose Ponce
 
Base de datos dinamicas
Base de datos dinamicasBase de datos dinamicas
Base de datos dinamicasel_rosales
 
Escalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLEscalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLLorena Fernández
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggersLuis Jherry
 

Similaire à SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y parece que se nos olvida... (20)

Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
Tuning fondo-negro-2
Tuning fondo-negro-2Tuning fondo-negro-2
Tuning fondo-negro-2
 
Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
 
Documentacion jhon elvis_quispe_gutierrez
Documentacion jhon elvis_quispe_gutierrezDocumentacion jhon elvis_quispe_gutierrez
Documentacion jhon elvis_quispe_gutierrez
 
Xml
XmlXml
Xml
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
 
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptxOVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
 
Sql plus temario
Sql plus temarioSql plus temario
Sql plus temario
 
Ejemplo bbdd sqlite (android)
Ejemplo bbdd sqlite (android)Ejemplo bbdd sqlite (android)
Ejemplo bbdd sqlite (android)
 
SQL_ADO.NET.ppt
SQL_ADO.NET.pptSQL_ADO.NET.ppt
SQL_ADO.NET.ppt
 
SQL_ADO.NET.pptx
SQL_ADO.NET.pptxSQL_ADO.NET.pptx
SQL_ADO.NET.pptx
 
Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N5   Proyectos Web   Consultas Php Y My SqlGuia N5   Proyectos Web   Consultas Php Y My Sql
Guia N5 Proyectos Web Consultas Php Y My Sql
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 
Base de datos dinamicas
Base de datos dinamicasBase de datos dinamicas
Base de datos dinamicas
 
Guiapractica de bd completa
Guiapractica de bd completaGuiapractica de bd completa
Guiapractica de bd completa
 
Sql
SqlSql
Sql
 
Escalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLEscalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQL
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 

Plus de SolidQ

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?SolidQ
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en LinuxSolidQ
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida realSolidQ
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízateSolidQ
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksSolidQ
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BISolidQ
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesSolidQ
 
R en relacional
R en relacionalR en relacional
R en relacionalSolidQ
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!SolidQ
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en AzureSolidQ
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018SolidQ
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018SolidQ
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018SolidQ
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018SolidQ
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...SolidQ
 
Novedades de SSAS 2017
Novedades de SSAS 2017Novedades de SSAS 2017
Novedades de SSAS 2017SolidQ
 

Plus de SolidQ (20)

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantes
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en Linux
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízate
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocks
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BI
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
R en relacional
R en relacionalR en relacional
R en relacional
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en Azure
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
 
Novedades de SSAS 2017
Novedades de SSAS 2017Novedades de SSAS 2017
Novedades de SSAS 2017
 

Dernier

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 

Dernier (20)

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 

SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y parece que se nos olvida...

  • 1. Todo lo que Un integrador de datos debería tener… y parece que se nos olvida…
  • 2. Soy experto en creación de ETL Se un montón de T-SQL Sé un montón de SSIS Me conozco el libro de Kimball mejor que el menú de Mcdonals Hace 15 años que prácticamente hago etls Y sin embargo Mis ETL siguen fallando Algunos problemas los evalúo un tiempo después y me asusta mi código Cada vez que falla algo en producción, mi log tiene mil cosas estúpidas pero ni una pista de porque Me cuesta dar un montón de explicaciones
  • 3. • ETL sirve para proveer de conocimiento • Pero nos centramos en datos En que falla la industria • Tenemos que describir el cómo No nos basta con saber el qué • Pero olvidamos el propósito Nos centramos en los detalles • Mi proceso ha funcionado… tu sabras porque no cuadra Nos pasa como en Desarrollo
  • 4. Agenda Estado del arte de la creación de ETL’s Patrones ETL-ELT.Staging-orquestacion Aprendiendo de DEV Conclusiones
  • 5.
  • 6. Estado del arte II La visión del leader
  • 7. Estado del Arte III SSIS Pentaho Data Integrator (spoon) <component refId="PackageLoadDataLoad Staging TableSTG" componentClassID="Microsoft.OLEDBSource" contactInfo="OLE DB Source;Microsoft Corporation; Microsoft SQL Server; (C) Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;7" name="STG" usesDispositions="true" version="7"> <properties> <property dataType="System.Int32" description="The number of seconds before a command times out. A value of 0 indicates an infinite time-out." name="CommandTimeout">0</property> <property dataType="System.String" description="Specifies the name of the database object used to open a rowset." name="OpenRowset"></property> <property dataType="System.String" description="Specifies the variable that contains the name of the database object used to open a rowset." name="OpenRowsetVariable"></property> <property dataType="System.String" description="The SQL command to be executed." name="SqlCommand" UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">SELECT [FirstName] ,[FullName] ,[idCustomer] ,[LastName] ,[MiddleName] ,[pkCustomerID] ,[Title] FROM etl.vw_dim_Customer ;</property> <property dataType="System.String" description="The variable that contains the SQL command to be executed." name="SqlCommandVariable"></property> <property dataType="System.Int32" description="Specifies the column code page to use when code page information is unavailable fromthe data source." name="DefaultCodePage">1252</property> <property dataType="System.Boolean" description="Forces the use of the DefaultCodePage property value when describing character data." name="AlwaysUseDefaultCodePage">false</property> <property dataType="System.Int32" description="Specifies the mode used to access the database." name="AccessMode" typeConverter="AccessMode">2</property> <property dataType="System.String" description="The mappings between the parameters in the SQL command and variables." name="ParameterMapping"></property> </properties> <connections> <connection refId="PackageLoad DataLoad Staging TableSTG.Connections[OleDbConnection]" connectionManagerID="{91D4C3C0-C280-487E-9E29-8337CE452461}:external" connectionManagerRefId="Project.ConnectionManagers[STG1]" description="The OLE DB runtime connection used to access the database." name="OleDbConnection" /> </connections> <outputs> <output refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output]" name="Output"> <outputColumns> <outputColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[FirstName]" dataType="wstr" errorOrTruncationOperation="Conversion" errorRowDisposition="FailComponent" externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[FirstName]" length="50" lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[FirstName]" name="FirstName" truncationRowDisposition="FailComponent" /> <outputColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[FullName]" dataType="wstr" errorOrTruncationOperation="Conversion" errorRowDisposition="FailComponent" externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[FullName]" length="161" lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[FullName]" name="FullName" truncationRowDisposition="FailComponent" /> <outputColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[idCustomer]" dataType="wstr" errorOrTruncationOperation="Conversion" errorRowDisposition="FailComponent" externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[idCustomer]" length="15" lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[idCustomer]" name="idCustomer" truncationRowDisposition="FailComponent" /> <outputColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[LastName]" dataType="wstr" errorOrTruncationOperation="Conversion" errorRowDisposition="FailComponent" externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[LastName]" length="50" lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[LastName]" name="LastName" truncationRowDisposition="FailComponent" /> <outputColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[MiddleName]" dataType="wstr" errorOrTruncationOperation="Conversion" errorRowDisposition="FailComponent" externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[MiddleName]" length="50" lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[MiddleName]" name="MiddleName" truncationRowDisposition="FailComponent" /> <outputColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[pkCustomerID]" dataType="i4" errorOrTruncationOperation="Conversion" errorRowDisposition="FailComponent" externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[pkCustomerID]" lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[pkCustomerID]" name="pkCustomerID" truncationRowDisposition="FailComponent" /> <outputColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[Title]" dataType="wstr" errorOrTruncationOperation="Conversion" errorRowDisposition="FailComponent" externalMetadataColumnId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[Title]" length="8" lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].Columns[Title]" name="Title" truncationRowDisposition="FailComponent" /> </outputColumns> <externalMetadataColumns isUsed="True"> <externalMetadataColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[FirstName]" dataType="wstr" length="50" name="FirstName" /> <externalMetadataColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[FullName]" dataType="wstr" length="161" name="FullName" /> <externalMetadataColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[idCustomer]" dataType="wstr" length="15" name="idCustomer" /> <externalMetadataColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[LastName]" dataType="wstr" length="50" name="LastName" /> <externalMetadataColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[MiddleName]" dataType="wstr" length="50" name="MiddleName" /> <externalMetadataColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[pkCustomerID]" dataType="i4" name="pkCustomerID" /> <externalMetadataColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Output].ExternalColumns[Title]" dataType="wstr" length="8" name="Title" /> </externalMetadataColumns> </output> <output refId="PackageLoad DataLoad Staging TableSTG.Outputs[Error]" isErrorOut="true" name="Error"> <outputColumns> <outputColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Error].Columns[FirstName]" dataType="wstr" length="50" lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Error].Columns[FirstName]" name="FirstName" /> <outputColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Error].Columns[FullName]" dataType="wstr" length="161" lineageId="PackageLoad DataLoad Staging TableSTG.Outputs[Error].Columns[FullName]" name="FullName" /> <outputColumn refId="PackageLoad DataLoad Staging TableSTG.Outputs[Error].Columns[idCustomer]" dataType="wstr" length="15"
  • 8. Estado del arte IV <OleDbSource Name="HLP" ConnectionName="HLP<#=helper.connection_id#>"> <DirectInput>SELECT * FROM <#=row["source_object_schema"]#>.<#=row["source_object_name"]#> </DirectInput> </OleDbSource> BIML
  • 9. Estado del arte V Fabricantes • En ejecución algunos códigos son lamentables • Mientras en SQL decimos el que TODOS los fabricantes nos obligan a expresar el COMO • En algunos es imposible generar ese código de forma automática Industria • Alguna empresa aprovecha los huecos para hacer “facilities” • Muchos nos hacemos frameworks que ayudan un montón • Nadie (o casi nadie que el mundo es muy grande) se preocupa por cambiar el paradigma
  • 11. Inciso sobre Azure DataBricks "activities":[ { "name": "CopyActivityTemplate", "type": "Copy", "inputs": [ { "referenceName": "<source dataset name>", "type": "DatasetReference" } ], "outputs": [{ "referenceName": "<sink dataset name>", "type": "DatasetReference" } ], "typeProperties": { "source": { "type": "<source type>", <properties> }, "sink": { "type": "<sink type>" <properties> }, "translator": { "type": "TabularTranslator", "columnMappings": "<column mapping>" }, "cloudDataMovementUnits": <number>, "parallelCopies": <number>, "enableStaging": true/false, "stagingSettings": { <properties> }, "enableSkipIncompatibleRow": true/false, redirectIncompatibleRowSettings": { <properties> } } } ]
  • 12. Inciso sobre Azure DataBricks II RDDs Big-data scale In Memory “SQL lambda like” Spark
  • 14. Aprendiendo desde desarrollo • Desarrollo orientado a test • Integración con código fuente • Integración continua • Devops
  • 15. Aprendiendo desde Dev Test en desarrollo • Test que se ejecutan una sola vez • Test que ejecutamos periódicamente • Ncientas queries que guardamos por si acaso Test para producción • Repetibles • Metódicas • Que aporten valor de negocio • Que sean completas
  • 16. Aprendiendo desde Dev Test en desarrollo • Test que se ejecutan una sola vez • Test que ejecutamos periódicamente • Ncientas queries que guardamos por si acaso Test • Repetibles • Metódicas • Que aporten valor de negocio • Que sean completas
  • 17. Otra forma de hacer TEST
  • 18. Integración con código fuente • Sigue las prácticas de desarrollo • Considera tus ETLS como código fuente • Versiona-Etiqueta-Crea ramas • Define tus prácticas y cúmplelas