Entender y resolver las referencias circulares

Si existen referencias circulares ("bucles") en una estructura de datos, las tablas se asociarán de tal forma que haya más de una ruta de asociaciones entre dos campos.

Por lo general debería evitarse este tipo de estructura de datos en la medida de lo posible, ya que puede llevar fácilmente a ambigüedades en la interpretación de los datos.

Tres tablas con una referencia circular, ya que hay más de una ruta de asociación entre dos campos.
Three tables with a circular reference.

Qlik Sense resuelve el problema de las referencias circulares interrumpiendo el bucle con una tabla parcialmente desconectada. Si Qlik Sense encuentra estructuras circulares de datos durante la ejecución de un script de carga, aparecerá un cuadro de diálogo de advertencia y una o varias tablas se definirán como desconectadas parcialmente. Normalmente, Qlik Sense intenta desconectar la tabla más larga del bucle, ya que a menudo suele tratarse de una tabla de transacciones que, por regla general, es la que se debe desconectar. En el visor del modelo de datos, las tablas parcialmente desconectadas se indican mediante líneas discontinuas de color rojo hacia otras tablas.

Example:  

Se cargan los datos procedentes de tres tablas con los siguientes contenidos:

  • Los nombres de unos equipos nacionales de fútbol
  • Los clubes de fútbol de algunas ciudades
  • Las ciudades de algunos países europeos
Vista de las tablas que contienen los datos fuente en Excel.

Tables in Excel.

Esta estructura de datos no es muy buena, ya que el nombre de campo Team se usa con dos fines diferentes: equipos nacionales y clubes locales. Con estos datos en las tablas la situación lógica que nos encontramos es imposible de analizar.

Cuando se cargan las tablas en Qlik Sense, Qlik Sense determina cuál de las conexiones de datos es la de menor importancia y desconecta esa tabla.

Abra el Visor del modelo de datos para ver cómo interpreta Qlik Sense la relevancia de las conexiones de datos:

Vista de las referencias circulares indicadas mediante las líneas de puntos rojos.
Circular references between tables.

La tabla con ciudades y los países a los que pertenecen ahora está parcialmente desconectada con respecto a la tabla de equipos nacionales de diferentes países y la tabla de clubes locales de distintas ciudades.

Cómo resolver las referencias circulares

Cuando se produzcan referencias circulares, necesitaremos editar el script de carga de datos asignando un nombre único y diferenciador a uno de los dos campos que posean nombres idénticos.

Haga lo siguiente:

  1. Abra el editor de carga de datos.
  2. Edite la sentencia LOAD en uno de los nombres de campo duplicados.

    En este ejemplo, la sentencia LOAD de la tabla que contiene los equipos locales y sus ciudades incluiría un nuevo nombre para Team, por ejemplo, LocalClub. La sentencia actualizada LOAD queda así:

    LOAD City, Team as LocalClub

  1. Haga clic en ° en la barra de herramientas para volver a cargar los datos en la app.

Ahora tenemos una lógica que funciona correctamente en todas las tablas. En este ejemplo, cuando se selecciona Germany, el equipo nacional, las ciudades alemanas y los clubes locales de cada ciudad se asocian:

Sheet with four tables.

Cuando abrimos el Visor del modelo de datos, vemos que las conexiones parcialmente desconectadas han sido reemplazadas por unas conexiones normales:

Three tables with regular connections in the Data model viewer.