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.
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.
Ejemplo:
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
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:
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:
- Abra el editor de carga de datos.
-
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
- 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:
Cuando abrimos el Visor del modelo de datos, vemos que las conexiones parcialmente desconectadas han sido reemplazadas por unas conexiones normales: