Open Business Intelligence

La red del Business Intelligence

uenas tardes,

Saben q estoy desarrollando un proyecto para fin de carrera, y tengo problemas al momento de seleccionar una estructura no se si trabajar con datamart o datawarehouse. el punto es q la empresa para la q estoy desarrollando la aplicación desea tener información por departamentos es decir tengo 3 departamentos: ventas, financiero y producción. donde cada departamento tiene sus propios requerimientos, pero he seleccionado trabajar con datawarehouse por cuanto tengo q cruzar datos pero no estoy segura.
les envio los requerimientos y la estructura q yo diseñe porfavor ayudenme o recomiendeme sobre mi diseño.
documento adjuntado derTesis.rar

desde ya mil gracias por su ayuda

Visitas: 1815

Archivos adjuntos

Responde a esto

Respuestas a esta discusión

Buenas tardes Elizabeth.
Considero que deberías leer un poco más acerca de la construcción de la estructura multidimensional del DW, así tienes una idea más acabada de cómo debe estar definida.

Con respecto al modelo que has confeccionado, te hago algunas correcciones:
* Evita siempre utilizar claves del tipo texto en las tablas de hechos (y dimensiones), ya que a medida que el depósito vaya creciendo se volverá muy pesado, además los joins a través de campos textos no son muy eficientes. Deberías utilizar claves numéricas (tinyint, int, numeric, etc), ya que ocupan menos espacio y son más eficientes en los joins.
* La clave "fecha", siguiendo la línea del punto anterior, podrías establecerla como un número, es decir, YYYYMMDD.
* Hay varios campos númericos en las tablas de dimensiones que no deberían estar allí, sino en una tabla de hechos. Por ej: "Realizar un análisis de los clientes de acuerdo al monto de crédito que tienen cada uno de ellos en los últimos años". En este caso has almacenado "montocredito" en la tabla de dimensión "dim_clientes", esto hace por ejemplo, que no puedas analizar los montos por año, ya que me imagino que cada vez que se modifiquen los montos estariás sobreescribiendo el registro correspondiente.

Estaría bueno que pudieses analizar estos puntos, confeccionar el esquema nuevamente y volver a pasarlo, así seguimos perfeccionándolo entre todos.

Saludos.

--
Ing. Bernabeu R. Dario
Buenas tardes,

Gracias por la ayuda y las recomendaciones pero le cuento que sobre claves listo ya las modifique y sobre el ejemplo el analisis de clientes sobre los montos de credito mejor di solucion haciendo una consulta SQL, esq no sabia si declarle a tabla clientes como fact table o ese monto iba en la fact ventas, esq ya no tengo tiempo para entregar por eso lo hice, pero tengo una duda quiero cargar mi dimesion tiempo y como le indiq en los requerimientos quieren analisis de tiempo por año semestre trimestre y meses como puedo hacer eso si la dimension timpo tiene los siguientes campos:

- fecha:ejemplo 01/01/2008
- año: deberia ir 2008
- semestre: deberia ir 1 y 2
- trimestre: deberia ir 1(enero-marzo),2(abril-junio),3(julio-septiembre),4(octubre-diciembre)
- mes:enero-diciembre

la pregunta es como cargo año,semestre, trimestre, mes

porfa ayudeme sip
Buenas noches Elizabeth.

Puedes cargar la dimensión "dim_tiempo" a través de la siguientes prácticas:
* si utilizas un software específico para realizar los ETL, puedes emplear un paso/objeto/transformación que se encargue de tratar las dimensiones de tiempo. Estos pasos, permiten crear los campos que tú necesitas a partir de una fecha dada.
* puedes cargar en una hoja de cálculo las fechas que necesites y utilizar funciones del tipo fecha para calcular los campos. Luego restará reflejar los datos de esta hoja de cálculo en la tabla "dim_tiempo".
* si no es requerimiento del usuario ver la información a nivel de DIA, podrías cambiar la clave dd/mm/yyyy por esta otra: yyyymm, simplificando la carga.
* otra opción es analizar cada fecha con un método/procedimiento/script/función y de acuerdo a este análisis determinar el resto de los campos. Es decir:
- año = YYYY
- semestre = si MM es (1,2,3,4,5,6) poner 1, sino 2
- trimestre = si MM es (1,2,3) poner 1, si es (4,5,6) poner 2, etc.
- mes = si MM es (1) poner Enero, si es (2) poner Febrero, etc.

Espero haber podido ayudarte. Cualquier duda, consúltame nuevamente.

Saludos.

--
Ing. Bernabeu R. Dario
Hola Darío, gracias por su ayuda le cuento q ya cargue mi dimensión tiempo y lo hice con un script utilice la herramienta ETL pentaho data integration.

mil gracias de verdad, pero sabe ahora tengo problemas al querer cargar mi tabla de hechos ventas poq tengo diferentes tablas de las cuales quiero hacer unos cálculos para las medidas, porfa le agradeciría si me indica algunos ejemplos o me recomienda xfis sip.

gracias

Elizabeth
Buenas tardes Elizabeth, me alegra haber podido ayudarte.

El paso 4 de la metodología Hefesto creo que va a poder ayudarte en lo que planteas, te recomiendo que te bajes el manual completo. Pero si quieres leer solo ese punto puedes ir al siguiente link (dataprix) y buscar la sección "5.5.4. PASO 4)".

Luego comentame si te fue útil.
Saludos.


--
Ing. Bernabeu R. Dario
hola Dario, como esta gracias por su ayuda le cuento q me sirvio bastante lo que me recomendo, pero sabe tengo otro problema al momento q quiero cargar mi tabla detalle factura a mi repositorio tarda mucho tiempo imaginese q por minuto cargar 100 registros y mi labla tiene mas o menos unos 750.000 aproximadamente pasé ya dos dias y recien cago solo 250.000 nose recomiendeme algo o que puedo hacer sxfis sip

Bye y gracias por su ayuda
Hola Trabajo buen tiempo con datamarts te recomendaria primero en tu diseño que cambies tus llaves primarias que esta en tu diseño por llaves subrogadas, que son? pues son llaves que tienen como tipo de dato entero y que sean identity esto te ayudara hacer los joins mas rapido. Si tuvieses mas dudas me comentas
Buen día.
Hector, concuerdo contigo, pero según me comentaba Elizabeth (en este mismo hilo), ya ha modificado las claves tal cual sugerís.

Elizabeth, me decías que tenés que cargar 750.000 registros, que según me imagino se deben a que estás poblando por primera vez el DW. Las cargas iniciales suelen durar mucho tiempo, ya que se cargarán en el depósito gran cantidad de información.
El tema sería analizar, más o menos, cuántos registros se generarán diariamente. Sabés aproximadamente cuántos?
Otra cosa, cúal será el lapso de actualización del DW? Se hará una vez al día? Una vez a la semana? etc

Mientras averiguas las respuestas a estos interrogantes, si quieres puedes pasarme los ETL en cuestión.

Saludos.

--
Ing. Bernabeu R. Dario
Buenas tardes sabe q ya tengo los temas a analizar
1. se generan 1500 registros diarios aproximadamente.
2. le envio el ETL con el q estoy trabajando se llama tab_prueba.rar
3.tengo un error cuando ejecuto la transformacion y me dice q no encuentra el paso fecha actual cuando quiero previsualizar desde mi tabla origenCcdebito

Porfa necesito su ayuda y gracias desde ya
Archivos adjuntos
Buen día Elizabeth. Si diariamente se cargan 1500 registros, la carga incremental del DW te llevaría solo 15 minutos, así que no te preocupes si la carga inicial tarda mucho tiempo.
Con respecto al ETL, no te estaba tomando la fecha, porque le estabas pasando mal el parámetro. Te recomiendo crear un objeto "Entrada Tabla" que contenga el siguiente código:
SELECT *
FROM tu_tabla
WHERE campo_fecha >= curdate()
AND campo_fecha < convert(curdate() + 1, date)


La función curdate() es de mysql, te trae la fecha actual en formato dd/mm/yyyy. Quizás debás buscar una función similar para adaptar el código al SGBD que estés utilizando.

Saludos.

--
Ing. Bernabeu R. Dario
Buenos días,

Gracias por su ayuda, voy a probar pero con todo le cuento q ya solucione el problema con el mismo componente de informacion del sistema, sino q mi problema tambien era como le dije la demora en la carga, ademas consumia muchisimo los recursos entonces tambien ya solucione eso configure el archivo my.ini y ahora la carga es mas rápido y mi maquina no se pone muy lenta como antes, una pregunta con esa cantidad de registros seria recomendable la actualización diaria verdad

Gracias

Elizabeth
De nada Elizabeth.
Generalmente el periodo de actualización se tiene que consensuar con el cliente, pero como en tu caso estás haciendo un proyecto de tesis, con que la realices diariamente estaría bien.

Saludos.

--
Ing. Bernabeu R. Dario

Responder a debate

RSS

Distintivo

Cargando…

© 2024   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio