Mejores prácticas de modelado de datos

Esta sección describe las distintas maneras en que podemos cargar nuestros datos en la app 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:

Tabla de datos original
Año Q1 Q2 Q3 Q4
2013 34 54 53 52
2014 47 56 65 67
2015 57 56 63 71

Proposed action  

Utilice el prefijo Crosstable cuando cargue la tabla.

El resultado tendrá el siguiente aspecto:

La tabla tras aplicar el prefijo Crosstable
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:

Tabla genérica con tres campos
Object Attribute Value
ball color red
ball diameter 25
ball weight 3
box color 56
box height 30
box length 20
box width 25

Proposed action  

Cree un modelo de datos genérico utilizando el prefijo de carga Generic.

Obtendrá un modelo de datos con el siguiente aspecto:

Generic data model.

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:

Tabla de nodos adyacentes
NodeID ParentNodeID Title
1 - General manager
2 1 Country manager
3 2 Region manager

Proposed action  

Cargue los datos con el prefijo Hierarchy para crear una tabla de nodos expandidos:

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.

Proposed action  

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.

Proposed action : 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.

Proposed action : 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).

Tabla de valores numéricos discretos (Event)
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
Tabla cono los intervalos (Start y End)
Inicio Fin Orden
01:00 03:35 A
02:30 07:58 B
03:04 10:27 C
07:23 11:43 D

Proposed action  

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.

Tabla con una fecha-hora de cambio
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.

Tabla 1
País: Región
US Maryland
US Idaho
US New York
US California
Table 2
Country Population
United States 304
Japan 128
Brazil 192
China 1333

Proposed action  

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.

Tabla 1
Tipo Precio
single 23
double 39
Tabla 2
Tipo Color
Single Rojo
Single Blue
Double Blanco
Double Black

Proposed action  

Si cargó los datos con Añadir datos, puede arreglar esto en el gestor de datos.

Haga lo siguiente:

  1. En el gestor de datos, abra Table2 en el editor de tabla.
  2. 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.

  3. Cree un campo calculado usando la expresión Lower(Table2.Type) y denomínelo Type.
  4. 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.

Proposed action  

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.