Mejores prácticas de modelado de datos
Esta sección describe las distintas maneras en que puede cargar sus datos en una app de Qlik Sense, dependiendo de cómo se estructuran los datos y del modelo de datos deseado.
Convertir columnas de datos en filas
Nuestros datos probablemente tendrán el siguiente aspecto, y queremos tener las cifras de ventas en un campo aparte:
Año | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|
2013 | 34 | 54 | 53 | 52 |
2014 | 47 | 56 | 65 | 67 |
2015 | 57 | 56 | 63 | 71 |
Acción propuesta
Utilice el prefijo Crosstable cuando cargue la tabla.
El resultado tendrá el siguiente aspecto:
Year | Quarter | Sales |
---|---|---|
2013 | Q1 | 34 |
2013 | Q2 | 54 |
2013 | Q3 | 53 |
2013 | Q4 | 52 |
2014 | Q1 | 47 |
... | ... | ... |
Para más información sobre tablas cruzadas, vea Trabajar con tablas cruzadas en el editor de carga de datos y Crosstable.
Convertir filas de datos en columnas
Si tenemos una tabla genérica con tres campos similares a esto, y queremos que cada atributo se muestre como una tabla aparte:
Object | Attribute | Value |
---|---|---|
ball | color | red |
ball | diameter | 25 |
ball | weight | 3 |
box | color | 56 |
box | height | 30 |
box | length | 20 |
box | width | 25 |
Acción propuesta
Cree un modelo de datos genérico utilizando el prefijo de carga Generic.
Obtendrá un modelo de datos con el siguiente aspecto:
Para más información sobre datos genéricos, vea Bases de datos genéricas y Generic.
Cargar datos que están organizados en niveles jerárquicos, por ejemplo un diagrama de flujo de una organización
Nuestros datos quizá estén almacenados en tablas de nodos adyacentes con el siguiente aspecto:
NodeID | ParentNodeID | Title |
---|---|---|
1 | - | General manager |
2 | 1 | Country manager |
3 | 2 | Region manager |
Acción propuesta
Cargue los datos con el prefijo Hierarchy para crear una tabla de nodos expandidos:
NodeID | ParentNodeID | Title | Level1 | Level2 | Level3 |
---|---|---|---|---|---|
1 | - | General manager | General manager | - | - |
2 | 1 | Country manager | General manager | Country manager | - |
3 | 2 | Region manager | General manager | Country manager | Region manager |
Para más información sobre niveles jerárquicos, vea Cargar datos jerárquicos y Hierarchy.
Cargar solo registros nuevos o actualizados de una base de datos extensa
Tengo una base de datos con una gran cantidad de registros y no quiero volver a cargar toda la base de datos para actualizar los datos en mi app. Solo quiero cargar registros nuevos o actualizados y eliminar los registros que se van borrando de la base de datos.
Acción propuesta
Implemente una solución de carga incremental utilizando archivos QVD.
Para más información, vea Cargar registros nuevos y actualizados mediante la carga incremental.
Combinar datos de dos tablas con un campo común
Qlik Sense asociará automáticamente tablas que tengan un campo común, pero queremos controlar cómo se combinan las tablas.
Acción propuesta : Join / Keep
Puede combinar dos tablas en una única tabla interna con los prefijos Join o Keep.
Para más información, vea Combinar tablas con Join y Keep.
Acción propuesta : Correspondencia
Una alternativa para unir tablas es usar mapping, que automatiza la consulta de valores asociados en una tabla de enlace. Esto puede reducir la cantidad de datos que mostrar.
Para más información, vea Usar la correspondencia como alternativa a la unión.
Asociar un valor discreto con un intervalo
Tengo una tabla de valores numéricos discretos (Event), y quiero hacerla coincidir con uno o más intervalos (Start y End).
Hora | Evento | Comentario |
---|---|---|
00:00 | 0 | Inicio de shift 1 |
01:18 | 1 | Fin de línea |
02:23 | 2 | Reinicio de línea 50% |
04:15 | 3 | Velocidad de línea 100% |
08:00 | 4 | Inicio de shift 2 |
11:43 | 5 | Fin de la producción |
Inicio | Fin | Orden |
---|---|---|
01:00 | 03:35 | A |
02:30 | 07:58 | B |
03:04 | 10:27 | C |
07:23 | 11:43 | D |
Acción propuesta
Utilice el prefijo IntervalMatch para enlazar el campo Time con el intervalo definido por Start y End.
Para más información, vea Emparejar intervalos con datos discretos.
Si el intervalo no está definido explícitamente con inicio y fin, sino que solo lleva una fecha-hora, como se ve en la tabla inferior, necesitaremos crear una tabla de intervalos.
Moneda | Datos de cambio | Rate |
---|---|---|
EUR | - | 8.59 |
EUR | 28/01/2013 | 8.69 |
EUR | 15/02/2013 | 8.45 |
USD | - | 6.50 |
USD | 10/01/2013 | 6.56 |
USD | 03/02/2013 | 6.30 |
Para más información, vea Creación de un intervalo de fechas a partir de una sola fecha.
Manejo de valores de campo inconsistentes
Mis datos contienen valores de campo nombrados de forma inconsistente en las distintas tablas. Por ejemplo, una tabla contiene el valor US en País mientras que otra tabla contiene United States. Esta situación impedirá las asociaciones.
País: | Región |
---|---|
US | Maryland |
US | Idaho |
US | New York |
US | California |
Country | Population |
---|---|
United States | 304 |
Japan | 128 |
Brazil | 192 |
China | 1333 |
Acción propuesta
Haga una limpieza de datos utilizando una tabla de correspondencia (también denominada de enlace), eso comparará los valores y permitirá las asociaciones correctas.
Para más información, vea Limpieza de datos.
Manejo de mayúsculas inconsistentes en valores de campo
Mis datos contienen valores de campo con un formato inconsistente en las distintas tablas. Por ejemplo, una tabla contiene el valor single en Type, mientras que otra tabla contiene Single en el mismo campo. Esta situación evitará las asociaciones, ya que el campo Type contendrá ambos valores, single y Single, las mayúsculas sí cuentan.
Tipo | Precio |
---|---|
single | 23 |
double | 39 |
Tipo | Color |
---|---|
Single | Rojo |
Single | Blue |
Double | Blanco |
Double | Black |
Acción propuesta
Si cargó los datos con Añadir datos, puede arreglar esto en el gestor de datos.
Haga lo siguiente:
- En el gestor de datos, abra Table2 en el editor de tabla.
-
Renombre el campo Type como Table2.Type.
Si acaba de agregar la tabla con Añadir datos con perfilado de datos habilitado, es posible que el campo ya tenga un nombre Table2.Type para evitar la asociación automática. En este caso, este procedimiento asociará las dos tablas.
- Cree un campo calculado usando la expresión Lower(Table2.Type) y denomínelo Type.
- Haga clic en Cargar datos.
Table1 y Table2 deberían estar asociados ahora por el campo Type, que solo contiene valores en minúsculas, como single y double.
Si desea utilizar otro estilo diferente, también puede lograr esto con procedimientos similares, pero recuerde que las tablas se asociarán utilizando campos que tengan el mismo nombre.
- Para obtener todos los valores en mayúscula, como Single, cree el campo calculado Type en la tabla Table1 en su lugar y use la expresión Capitalize(Table1.Type).
- Para obtener todos los valores en mayúscula, como SINGLE, cree el campo calculado Type en ambas tablas y utilice las expresiones Upper(Table1.Type) y Upper(Table2.Type) respectivamente.
Para más información sobre campos calculados, vea Usar los campos calculados.
Para más información sobre mayúsculas, vea Capitalize - función de script y de gráfico, Lower - función de script y de gráfico y Upper - función de script y de gráfico.
Cargar datos geoespaciales para visualizar los datos en un mapa
Tenemos datos que queremos visualizar en un mapa, por ejemplo, datos de ventas por país, o por tienda. Para utilizar la visualización de mapa necesitamos cargar datos de punto o área.
Acción propuesta
Podemos cargar datos de punto o área que encajen con nuestras ubicaciones de valores de datos desde un archivo KML o archivo Excel. Además, necesitaremos cargar el fondo del mapa.
Para más información, vea Cargar sus propios datos de mapa.