SlideShare una empresa de Scribd logo
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Similar a 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
 

Similar a 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
 

Más 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
 

Más 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
 

Último

Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfcj3806354
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerRobertoCarrancioFern
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxJohanna4222
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadaspqeilyn0827
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfprofmartinsuarez
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometriasofiasonder
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024DanielErazoMedina
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareAndres Avila
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf7adelosriosarangojua
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestrerafaelsalazar0615
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.sofiasonder
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...Kevin Serna
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docxwerito139410
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdfIsabelHuairaGarma
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfManuelCampos464987
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfjjfch3110
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Luis Fernando Uribe Villamil
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxLeidyfuentes19
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusraquelariza02
 

Último (20)

Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 

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