No olviden dejar un like y comenten que más quieren para los nuevos videos. Y claro sus dudas y comentarios.
@DavidRodriguez-fm2nb12 күн бұрын
Hola, excelentes videos me han ayudado demasiado!. Te tengo una consulta de una situación que me esta haciendo que se me caiga el pelo jeje. Como hago el lookup como el video pero de una tabla que esta ella de dos por un merge. Por ejemplo: Tengo una tabla de propiedad donde tiene la columna de canton y detalle. Esas columnas las uní con otra que es de provincia (el cual tiene las diferentes provincia de cada país). Hasta ahi todo bien. Sin embargo, cuando cargo datos primera vez funciona pero cuando realizó una modificación todos los datos se duplican muchas veces. Por lo que intente hacer la relación de lookup en la opción de column relacionando la llave de negocio + canton + provincia + detalle. Funciono para que no me duplicara muchas veces una misma fila pero al modificar me genera una nueva fila en vez de modificarla. Sabes como solucionar eso. PD: Las columnas de canton y detalle de la tabla propiedad son columnas donde se encuentra los datos que van a hacer futuros para la tabla de hechos.
@jperezts5 жыл бұрын
Eres una de las pocas personas que hacen este tipo de vídeo, usualmente las cosas se van más del lado de programación, pls no nos dejes solos!!
@BILATAM5 жыл бұрын
Vamos a seguir con este tipo de videos hasta que tenga fuerzas. De verdad me apasiona mucho el Business Inteligence y vienen cosas nuevas al canal!!
5 жыл бұрын
Un vídeo de estándares y buenas prácticas. Sería genial ambos temas en el canal. Saludos.
@BILATAM5 жыл бұрын
Vamos a trabajar en el entonces!
@ivanachucoff21994 жыл бұрын
Muchas gracias por tú tiempo y la pasión que le ponés a tus videos! Disfruto mucho escuchándote y aprendiendo. Soy nueva en este mundo y tu canal me super sirvió. Un saludo desde Argentina! Gracias de nuevo!
@BILATAM4 жыл бұрын
Gracias por tomarse el tiempo para comentar, de verdad me alegra mucho poder ayudar y saber que lo que hago le hace bien a la comunidad. Gracias Ivana, un abrazo.
@ALODV873 жыл бұрын
Excelente toda esta serie de DW+BI, estoy empezando en esto y ya tengo lo necesario para ir traveseando un poco, pura vida mae por tomarse el tiempo, ojalá puedas seguir con estos vídeos, bendiciones!!
@LuisitoDTS Жыл бұрын
Muchas gracias por tus enseñanzas he aprendido bastante gracias a ti que Dios te bendiga
@ppladino3 жыл бұрын
Excelente video señor Oviedo, muy clara la explicación
@andressoto69125 жыл бұрын
Muchas Gracias Cesar, hoy lo puse en practica en mi trabajo y me salió de maravilla, solo le tuve que agregar un converter porque mi origen es oracle y mi destino sql server, pero nada del otro mundo. Muchas Gracias
@BILATAM5 жыл бұрын
Genial! De verdad me gista mucho saber que el canal esta ayudando. Graciad por seguir el canal y vamos con todo!!!
@salomonlondono87533 жыл бұрын
Excelente video, felicitaciones, me ayudó muchisimo
@BILATAM3 жыл бұрын
Que bueno ser de ayuda. Saludos Salomón.
@ersotocochon4 жыл бұрын
Nuchas Gracias , excelente tutorial , claro y conciso.
@elizabetarojas71055 жыл бұрын
Muy importante lo que haces, porque la mayoría de los videos son superficiales, pero es muy bueno ver casos reales y problemas que pueden ocurrir a la hora de hacer un poryecto. Me gustaría saber según tu experiencia cuales son los problemas fundamentales a la hora de realizar los ETL, sobre todo a la hora de la carga y la transformación de datos. Gracias por tu aporte.
@BILATAM5 жыл бұрын
Muchas gracias Elizabeta, siempre la idea del canal ha sido crear tutoriales y cursos bien prácticos de DW, ahora sobre lo que plantea de problemas comunes a la hora del ETL me suena a hacer un video sobre ello, así que esté atenta al contenido. Gracias.
@juanca192007 Жыл бұрын
excelente video!!
@Floopa_dios3 жыл бұрын
excelente, gracias por compartir tu conocimiento
@tatianamarcelausugaarboled19603 жыл бұрын
Super chévere el curso, muchas gracias, me sirvió un montón! Desearía que hagas una parte con Analysis Servers y terminar el proceso con azure porque explicas muy bien! y yo soy nueva en todos los temas de BI. Ver vídeos de ésta calidad son difíciles en KZbin, pero sé que todo lo he entendido porque cuando me evalúan estoy en lo correcto gracias a sus términos , practicas y la documentación de Microsoft jajaja. Me encantaría saber más sobre el tema y ya me suscribí. Saludos desde Colombia. :D
@vitalivs72494 жыл бұрын
Gracias, me ha servido mucho tu vídeo. Buen trabajo.
@BILATAM4 жыл бұрын
Mil gracias!!! De verdad es un placer ayudar
@harryferrera62074 жыл бұрын
Muy bien video. Tengo dos preguntas y una sugerencia. 1 Se podrían tambien contemplar los deleted? 2 Incremental loading aplicando lookup funciona con tablas grandes, por ejemplo por encima de 10 millones de registros? 3 Me gustaría ver un video de incremental loading aplicando change tracking. Muchas gracias por tus aportes.
@dariom50733 жыл бұрын
gracias!! Lo estuve probando tambien con la funcion Hashbytes para acelerar la busqueda de diferencias en datos existentes
@javiercustodioore7784 жыл бұрын
buen video maestro
@BILATAM4 жыл бұрын
Gracias Javier.
@guillermoricardospindolabr77815 жыл бұрын
Es magnifico este video, yo realice un ejercicio similar, pero en vez de Ignorar el error , coloque la opción de Redirigir filas a resultados no coincidentes. De esta manera cuando no existen los registros en la dimensión los inserta, de lo contrarios los manda a los existentes y de ahí con una condición le pregunto que si alguno de los registros cambio su valor lo actualice.
@evett164 жыл бұрын
Hola Guillermo, disuclpa puedo saber que condicion utilizas para saber si un registro cambio? Y en donde pones la condicion? Disculpa soy muy nueva en esto y estoy aprendiendo. Gracias
@elmarlopez30204 жыл бұрын
Excelente, gracias me ayudo mucho. Saludos y Felicitaciones
Gracias Jonathan! Me alegra que le funcione, y a seguir con más.
@cbertolez3 жыл бұрын
buen video!
@BILATAM Жыл бұрын
Gracias! Saludos
@armandomendoza86303 жыл бұрын
Excelente forma de explicar, gracias :D
@ulisescruzgonzalez26774 жыл бұрын
muy buen video , muchas gracias
@rodrigosalazarperez82175 жыл бұрын
Muy buen vídeo, todo muy claro!
@BILATAM5 жыл бұрын
Gracias Rodrigo
@luislluen5315 жыл бұрын
Muy interesante, y buena explicación!!
@BILATAM5 жыл бұрын
Gracias Luis. Espero que le sea de ayuda en sus próximos proyectos de Data Warehouse.
@luislluen5315 жыл бұрын
@@BILATAM Deberías hacer un video de los stageng y mejores practicas para esta BD, tengo un excel de documentación de las tablas para creación de un DW, si me indicas un correo te lo puedo proporcionar. Slds
@luislluen5315 жыл бұрын
@@BILATAM Pregunta, cuando yo creo la tabla DimProducto, la columna ProductoID que es autoincremental, debe ser Primary Key? Si es correcto, quiere decir que todas las dimensiones debe tener un primary key autoincremental, al igual que el la tabla Fact?. Gracias
@HANRRRRRROUS4 жыл бұрын
Bro, que buen video, me ayudo mucho. Gracias !!!
@BILATAM4 жыл бұрын
Gracias Haroun
@laflopy235 жыл бұрын
Me encanto mil graciasssssssssssssssss
@elen2475 жыл бұрын
Muy bueb video, seria importante tener un video para tecnicas de carga incremental para tablas de hechos
@orlandoflorida60795 жыл бұрын
Hola, de antemano muchas gracias por el esfuerso de transmitir su conocimiento, es muy valioso. Tengo la siguiente pregunta, en el Conditional Split en la parte de modificar hay un error cuando en un campo se compara algun dato que venda nulo ¿Cual es la manera de corregir esto? Gracias
@jehissonjavierbellobernal30142 жыл бұрын
Buen día amigo, un favor gigante estoy adentrándome en el mundo de las ETL con visual studio y debo hacer una etl que me lea los registros origen (SQL) y actualice los registros que sufrieron alguna actualización en el Destino (ODBC) , agradezco si me ayudas con una guía o como debo investigar para resolverlo. Muchas gracias.
@junioracunamorante4 жыл бұрын
EXCELENTE VIDEO, una consulta es recomendable usar la TAREA EJECUTAR SQL Y DENTRO DE ELLO USAR TRANSACT CON MERGE INTO PARA HACER CARGAS INCREMENTAL, GRACIAS ANTEMANO
@antoniyc1384 жыл бұрын
Buenas, que tanto recomiendas usar la tarea de control cdc para hacer la carga incremental, y si has tenido alguna experiencia buena/mala con este task en producción . Gracias.Saludos.
@oscaralfaro24564 жыл бұрын
Cesar tengo un clavo cuando ejecuto el proyecto si la tabla dimProducto ya tiene los registros me da un error el la division condicional y me envia que el modificar no se puede ejecutar pero en la condicion esta bien no me da error donde el origen de los datos los compara con los de busqueda
@adolfogorjon99892 жыл бұрын
Muy buen video, me sirvio bastante la parte de Agregar los registros nuevo, lo que no entiendo es el por que el ISNULL, osea si el ID es nulo osea vacio los inserta pero no me queda claro en como hace la comparativa entre el id del origen y el del lookup :(
@mariovargascareaga Жыл бұрын
hace una comparacion de origen - destino , si el id de origen isnull en destino es decir si no esta presente , pues lo inserta , para eso usa el lookup para buscar y comparar los id entre ambas tablas
@rhadimerantigua78919 ай бұрын
Excelente video, tengo el siguiente escenario, necesito hacer una carga incremental, de una vista pero en la vista no tengo una llave de negocio, no tengo un valor único. Como se haría en ese caso?
@gustavoleal33974 жыл бұрын
En la parte del "Conditional Split" (o antes) ¿no habria una forma de concatenar source y lookup para luego validar esa concatenación o usar un campo calculado de CHECKSUM?
@BILATAM4 жыл бұрын
Si correcto, de hecho una forma bastante común de optimizar esta carga es por medio del checksum. Sin embargo al ser este video introductorio al SSIS pues no lo vi como lo mejor para alguien que ir está empezando.
@oscaralfaro24564 жыл бұрын
Una pregunta pero eso solo para una DimProducto si quisieras agregar mas Dimensiones y llenar la tabla de hechos tendrias que hacer separado todo?
@BILATAM4 жыл бұрын
Correcto, cada proceso de carga se debe hacer por separado. Ese es un error común, por pereza de hacer más paquetes de SSIS intentan llenarlos de todo. En lo personal yo creo un paquete por tabla que cargo al stage y un paquete por Dimensión, es decir terminó creando fácilmente más de 50-100 SSIS por proyecto.
@BILATAM4 жыл бұрын
Se busca que cada paquete de SSIS sea “atómico” es decir que cumpla una única responsabilidad
@oscaralfaro24564 жыл бұрын
@@BILATAM gracias porque me has sacado de otra duda yo estaba equivocado entonces yo he estado practicando que en el mismo paquete hacia todo. Otra duda que tengo cuando estas llenando las dimensiones o hechos a traves del ETL como hacer para que no te pase los mismos cada ves que ejecutas ya que si tenemos una tabla con millones de registros tardara mucho en pasar lo mismo y talves en la oltp solo se agregaron 20 registros nuevos. He estado probando con consultas por ejemplo ver el max idproducto y que solo me pase los que sean mayores al max encontrado cuando ejcute la.prinera carga
@BILATAM4 жыл бұрын
Un gusto Oscar. Y gracias por seguir el canal! Un abrazo
@oscaralfaro24564 жыл бұрын
@@BILATAM ahi esperando a que subas nuevos tutoriales ya que ayudan un monton ya son las 1 de la mañana en mi pais y yo viendo aun los videos porque no me queria salir el de modificar pero ya
@JeanZelada5 жыл бұрын
El ejemplo aplica muy bien para una cantidad de registros limitada, para volúmenes grandes de datos un lookup y un update serían demasiado costoso en tiempo y recursos. Sería más óptimo el uso de tablas temporales o hash
@BILATAM5 жыл бұрын
Correcto, dependiendo del volumen el SSIS inclusive se queda corto. Más que de acuerdo, voy ha hacer una segunda parte con Hash y alguna otra estrategia de carga para ejemplificar mejor otros escenarios.
5 жыл бұрын
Para grandes cantidades de data sí sería pesado, pero recuerde que esto es para cargar una dimensión, la cual normalmente no llegan a crecer demasiado, entonces este método es eficaz y eficiente para la mayoría de las dimensiones de tamaño regular mediano o pequeño.
@emperador28965 жыл бұрын
@@BILATAM espero con ansias ese video
@rennyvalera91244 жыл бұрын
tu vídeo me fue de mucha ayuda sin embargo hay una excepción que necesito manejar en caso de una interrupción forzada durante el proceso de inserción y no tengo un indice durante dicha inserción ya que el origen es un flat file source que luego paso por un script y obtengo los datos para luego insertarlos en su respectiva tabla, algúna idea de como podría sortear ese evento borde en el que se apague el servidor durante la inserción??
@rennyvalera91244 жыл бұрын
de antemano muchas gracias @Business Intelligence LATAM
@BILATAM4 жыл бұрын
En el caso de interrumpir el proceso se requiere usar “transaction option” = required. Para agregar transacciones al ETL. Sin embargo lo normal, en procesos de ETL para Data Warehouse que el mismo ETL maneja cómo continuar el proceso a partir de donde falló o incrementalmente.
@rennyvalera91244 жыл бұрын
@@BILATAM Esto tambien funciono muchas gracias, tendrás un tutorial de como configurar correctamente el script task (transformation) con multiples salidas, necesito dividir las columnas que salen de ese script task para insertar dos tablas distintas dentro de la misma base de datos pero si lo hago con el muticast da un error de conexión a base de datos.
@oscaralfaro24564 жыл бұрын
Cesar una consulta queremos hacer na arquitectura de business inteligence a una farmacia de medicamentos como podriamos implementarla
@BILATAM4 жыл бұрын
En realidad es una pregunta muy general, pero si recomendaría que inicien pensando bien la arquitectura y que no la inventen. Cuando se inicia es muy común hacer “mi versión de BI”. Y a la larga les queda corta de alcance.
@andresjscp3 жыл бұрын
Hay alguna posibilidad que el destino sea postgreesql.....tengo un cliente que no usa sql server .....
@BILATAM3 жыл бұрын
Si, siempre y cuando tenga el provider instalado tanto en la maquina de desarrollo como en el servidor de producción
@andresjscp3 жыл бұрын
@@BILATAM En cuando al provider instaldo te refieres Componente de flujo para postgree??.. Seria interesante sincronización de tablas con herramientas SSIS ya que se usa dos bases de datos diferentes Mysql y postgreesql ... Y tambien hablar de Data Lake solo si es posible...
@cristiaan30034 жыл бұрын
Hola. Muy bueno vídeos. Te quería pedir si puedes agregar vídeos de esta temática del ETL y DW, pero creando un mini proyecto desde cero hasta el datamart y su actualización como si estuviera en producción . Por ejemplo que se reciban datos exportados desde un sistema transaccional a un MS SQL en varias tablas (todos los días 3 a.m.) de una db deposito, el pasaje al staging área (que puede ser la database: DBstaging) donde estan staging de dimensiones o facts, pasar los datos de las tablas staging a las tablas dimensionales y fact definitivas ( que pueden estar en otra database, DWbase) y por ultimo la planificación de todas estas tareas en Jobs de mssql para que todos los dias mssql ejecute los packages y procedimientos almacenados del staging y cargue las dimensiones y facts.
@nicoleangulo16444 жыл бұрын
Hola César, éste es tu último video del curo DW+BI?
@BILATAM4 жыл бұрын
Es que no he tenido tiempo :( pero no en teoría seguimos. Lo siento por cortar el curso así, tengo que retomarlo pronto
@nicoleangulo16444 жыл бұрын
Siii, retomalo por favor, está muy bueno... Y me quedé intrigada
@davidyupanquidiaz50073 жыл бұрын
el update no hace lenta la transaccion ?
@BILATAM3 жыл бұрын
Claro que si. Eso es parte de las problemáticas que hay que manejar. Por esto mismo muchas estrategias de carga solo insertan en lugar de modificar. Todo depende de la estrategia de carga.
@nietoroger5 жыл бұрын
Hola, gracias por el ejemplo... pero por qué no usaste mejor un slow update dimensions?
@BILATAM5 жыл бұрын
Yo en los proyectos o tablas "pequeños" si uso el Slowly Changing Dimension. Pero siempre es muy discutible el rendimiento de este componente. En el video usé una opción que da mejor rendimiento que el componente SCD.
@diegoguerra79835 жыл бұрын
@@BILATAM es correcto, al usar Slowly Changing Dimension para cargar tablas(Dimensiones) con columnas de tipo atributo variable demora mucho mas que hacerlo con un Lookup. Se recomienda usarlo para tablas que no suelen actualizar sus campos frecuentemente. P. D.: Excelente vídeo amigo!
@karendn20 Жыл бұрын
Excelente video. Pero en mi caso no me funciona xq el source el cuál no es local tiene 2millones de records y el componente "database source" sólo lee 475mil records y luego falla con el siguiente error: "[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on ODBC Denodo Workers FULL Source returned error code 0x80004005. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing." Sabes a que se debe? e investigado todo el día y no he podido solucionarlo. Saludos desde Costa Rica ☺
@BILATAM Жыл бұрын
Si la transformación es muy grande, lo recomendable es que se haga desde la BD, puede ser un Merge o un simple Insert y update. El SSIS no es tan bueno cuando se trata de volúmenes altos
@evett164 жыл бұрын
Hola, me gustaria hacerte una pregunta, cual es el metodo mas rapido para hacer un delta load? He escuchado que utilizando hash el proceso es mas rapido. Me interesa para la carga de las tablas en un staging area. Y existe una tabla que tiene alrededor de 20 millones de registros. Asi que si podrias por favor hacer un video de como hacer el delta load con hash te estaria mas que agradecida. Aparte nose si se deberia hacer la carga por paquetes? aunque tampoco se como funciona? Crees que podrias hacer por favor un video de esoß perdon por mis faltas ortograficas, no tengo tilde. Saludos
@BILATAM4 жыл бұрын
Tengo que have un video sobre el tema... no es fácil explicarlo por mensajes. Este será el siguiente en la lista de los videos de Data Warehouse y ETL
@evett164 жыл бұрын
@@BILATAM ,muchas gracias. Lo voy a estar esperando con ansias! Saludos cordiales :)
@rvgfox5 жыл бұрын
Muy interesante el vídeo Cesar, pero le veo varias pegas. En primer lugar, si la dimensión tiene muchos atributos, el lookup puede ser muy pesado y la comprobación de si los registros muy farragosa al tener que escribir mucho código en la expresión de comprobación. Yo suelo utilizar un componente free para generar un hash del registro y comparar el hash....
@BILATAM5 жыл бұрын
Correcto el utilizar un Hash es una muy buena idea. Voy a hacer una versión 2 del video con hash. Gracias Ramon, exactamente a eso me refería con que cada quien tiene sus formas de cargar las dimensiones.
@josedanielplasencia76784 жыл бұрын
Hola me puedo comunicar contigo para preguntarte algo sobre utilizar hash?
@tomassalas77904 жыл бұрын
Alguna forma de comunicarse con ustedes ?
@BILATAM4 жыл бұрын
Escríbeme al Facebook de Business Intelligence LATAM, y por ahí nos hablamos!
@junioracunamorante4 жыл бұрын
Estimado, y que pasa con los que no hacen math , osea si en la tablaA no existe y en la tabla DWtablaA si existe , alli tendria que eliminar, falta esoo