{"id":362,"date":"2018-06-28T10:56:49","date_gmt":"2018-06-28T10:56:49","guid":{"rendered":"https:\/\/trainingpowerbi.wordpress.com\/?p=362"},"modified":"2019-07-22T11:00:59","modified_gmt":"2019-07-22T09:00:59","slug":"desnormalizando-consultas-de-forma-eficiente","status":"publish","type":"post","link":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/","title":{"rendered":"Estructuras de datos en entornos anal\u00edticos"},"content":{"rendered":"<p>Cuando dise\u00f1amos un modelo de datos anal\u00edtico, uno de los aspectos clave a tener en cuenta corresponde al nivel de normalizaci\u00f3n\/desnormalizaci\u00f3n con que queremos dotar a la estructura del mismo. Es probable que la mayor\u00eda de los or\u00edgenes de datos que utilicemos a nivel profesional correspondan a <strong>sistemas de procesamiento de transacciones (OLTP)<\/strong>. Estos sistemas son bases de datos relacionales optimizadas para llevar a cabo las tareas diarias de una oficina, principalmente la gesti\u00f3n de pedidos, facturas, reclamaciones, realizaci\u00f3n de asientos contables, etc&#8230;<\/p>\n<p>En estos sistemas nos encontraremos frecuentemente con <strong>estructuras altamente normalizadas<\/strong>, donde pr\u00e1cticamente cada atributo se almacena en una tabla y, por lo tanto, un solo objeto, como por ejemplo \u00abCliente\u00bb, estar\u00e1 almacenado en 10 o 20 tablas distintas relacionadas entre s\u00ed. Esto se debe a que dichas bases de datos OLTP est\u00e1n dise\u00f1adas para gestionar continuas operaciones de introducci\u00f3n y modificaci\u00f3n de datos, por lo que una estructura de este tipo proporciona la ventaja de ahorrar tama\u00f1o en disco (lo que normalmente se traducir\u00e1 en mayor velocidad) y que los cambios que introduzcamos en un atributo solo tengan que actualizarse una vez.<\/p>\n<p><!--more--><\/p>\n<p>Si por el contrario trabaj\u00e1ramos con una base de datos desnormalizada, el actualizar por ejemplo la direcci\u00f3n de un cliente supondr\u00eda que el servidor tuviera que ejecutar cientos de \u00f3rdenes, causando un rendimiento deficiente.<\/p>\n<p>A la hora de dise\u00f1ar un modelo de datos anal\u00edtico es importante tener en cuenta que no estamos interesados en la introducci\u00f3n y actualizaci\u00f3n de datos, si no <strong>solo en la lectura de los mismos<\/strong>. Las estructuras que nos encontraremos inicialmente en los sistemas OLTP, que constituyen los or\u00edgenes de datos tradicionales, dif\u00edcilmente ser\u00e1n las m\u00e1s apropiadas a la hora de analizar los datos. Nuevos or\u00edgenes como la actividad de los navegadores, las redes sociales o los dispositivos m\u00f3viles, que pueden proporcionarnos valiosa informaci\u00f3n respecto al comportamiento y las preferencias de nuestros clientes y ayudarnos a encontrar mejores maneras de satisfacer sus necesidades est\u00e1n creando conjuntos de datos extremadamente grandes en comparaci\u00f3n con los or\u00edgenes tradicionales, y sus estructuras, aunque son variadas y dependen del uso espec\u00edfico de cada aplicaci\u00f3n, suelen requerir tambi\u00e9n transformaciones en el proceso de ETL para estructurar los datos con el prop\u00f3sito de acomodarlos de cara a optimizar la consulta y el an\u00e1lisis de los mismos.<\/p>\n<h4><strong>Modelamiento dimensional y esquema en estrella <em>(Star Schema)<\/em><\/strong><\/h4>\n<p>Existe cierto consenso en la industria del <em>Data Warehouse \/ Business Intelligence <\/em>de que para un entorno anal\u00edtico el dise\u00f1o m\u00e1s conveniente se refiere al denominado <strong>modelamiento dimensional<\/strong>. La arquitectura de la gran mayor\u00eda de modelos dimensionales corresponde a lo que se conoce como <strong>esquema de estrella<\/strong>. Este t\u00e9rmino t\u00e9cnico procede de la <a href=\"https:\/\/en.wikipedia.org\/wiki\/Ralph_Kimball\" target=\"_blank\" rel=\"noopener noreferrer\">metodolog\u00eda Kimball<\/a>, que describe la forma l\u00f3gica en la que los datos deben estructurarse para obtener un rendimiento \u00f3ptimo desde un punto de vista anal\u00edtico. En los esquemas de estrella, las tablas que forman el modelo de datos se dividen en 2 categor\u00edas:<\/p>\n<ul>\n<li><strong>Tablas de consulta o dimensiones: <\/strong>los activos informativos que corresponden al contexto de los hechos se almacenan en tablas independientes, conteniendo cada una de ellas todos los atributos relativos a su objeto. Por ejemplo \u00abProducto\u00bb ser\u00eda un objeto y sus atributos ser\u00edan \u00abColor\u00bb, \u00abPeso\u00bb, \u00abCategor\u00eda\u00bb&#8230;<\/li>\n<li><strong>Tablas de hechos o datos:<\/strong> los valores num\u00e9ricos de un proceso de negocio observable en el mundo real (\u00abhechos\u00bb) se almacenan en la tabla central, y cada registro de la misma est\u00e1 formado por dichos valores num\u00e9ricos y las claves secundarias (<em>foreing keys<\/em>) que se relacionan con las diversas dimensiones que describen los hechos o eventos.<\/li>\n<\/ul>\n<p>En la siguiente imagen podemos ver un cl\u00e1sico esquema de estrella relativo a los pedidos recibidos en una empresa:<\/p>\n<p><a href=\"https:\/\/trainingpowerbi.files.wordpress.com\/2018\/01\/image-4.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-440 size-full\" src=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-4-1.png?resize=629%2C487&#038;ssl=1\" alt=\"\" width=\"629\" height=\"487\" srcset=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-4-1.png?w=1053&amp;ssl=1 1053w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-4-1.png?resize=300%2C232&amp;ssl=1 300w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-4-1.png?resize=768%2C594&amp;ssl=1 768w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-4-1.png?resize=1024%2C793&amp;ssl=1 1024w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-4-1.png?resize=900%2C697&amp;ssl=1 900w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/a><\/p>\n<p>Este tipo de esquema dimensional mantiene la tabla de hechos en su forma normalizada (normalizando fuera de ella las dimensiones), para obtener un tama\u00f1o menor y un mejor rendimiento, pero mantiene cada dimensi\u00f3n en forma desnormalizada (plana), de forma que <strong>cada objeto contenga todos sus atributos correspondientes<\/strong>. Estas dimensiones contienen la misma informaci\u00f3n que podemos encontrar en su forma totalmente normalizada en el origen de datos, pero sin las tablas y claves (<em>keys) <\/em>necesarias para completar el proceso de normalizaci\u00f3n mediante relaciones.<\/p>\n<p>Podemos entender mejor la diferencia entre las 2 estructuras (normalizada y desnormalizada), si vemos de forma gr\u00e1fica una vista de las relaciones que se establecen entre las tablas del modelo en ambos casos. En la siguiente imagen podemos ver un ejemplo de algunos de los atributos relativos a la dimensi\u00f3n \u00abProducto\u00bb en un modelo normalizado:<\/p>\n<p><a href=\"https:\/\/trainingpowerbi.files.wordpress.com\/2018\/01\/image-1.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-446 size-full aligncenter\" src=\"https:\/\/trainingpowerbi.files.wordpress.com\/2018\/01\/image-1.png?resize=629%2C386\" alt=\"Image 1\" width=\"629\" height=\"386\" \/><\/a><\/p>\n<p>Como podemos observar, la tabla base denominada \u00abProductos\u00bb conecta con la tabla de hechos al nivel de la clave primaria de producto <em>(primary key)<\/em>, y a su vez, se relaciona mediante claves secundarias (<em>foreing keys<\/em>) con una serie de tablas que guardan otros atributos relativos al mismo objeto. Cuando desnormalizamos el modelo anterior durante el proceso de ETL, lo que hacemos es combinar las distintas consultas de forma que obtengamos una \u00fanica tabla que contenga todos los atributos correspondientes a la dimensi\u00f3n \u00abProducto\u00bb. El resultado ser\u00eda el siguiente:<\/p>\n<p><a href=\"https:\/\/trainingpowerbi.files.wordpress.com\/2018\/01\/image-2.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-447 size-full aligncenter\" src=\"https:\/\/trainingpowerbi.files.wordpress.com\/2018\/01\/image-2.png?resize=629%2C396\" alt=\"Image 2\" width=\"629\" height=\"396\" \/><\/a><\/p>\n<p>Con este modelo desnormalizado, podemos tambi\u00e9n agregar los datos de la tabla de hechos al nivel de cualquier atributo de la dimensi\u00f3n, por lo que podemos decir que desde una perspectiva anal\u00edtica los dos modelos son equivalentes. Cuando realizamos este proceso de desnormalizaci\u00f3n con las 10 o 20 dimensiones que nos encontraremos normalmente asociadas al proceso de ventas en una base de datos relacional, las ventajas que obtenemos son enormes y podemos resumirlas en los siguientes puntos:<\/p>\n<ul>\n<li><strong>Facilidad de uso: <\/strong>para el usuario, el modelo dimensional, con su arquitectura b\u00e1sica de una sola tabla por cada dimensi\u00f3n, ofrece un nivel de simpleza muy superior a cualquier modelo con mayor nivel de normalizaci\u00f3n. Desde el punto de vista del programador, el desarrollo de los c\u00e1lculos tiende tambi\u00e9n a simplificarse.<\/li>\n<li>\u00a0<strong>Rendimiento\/eficiencia: <\/strong>el modelo dimensional simplifica el dise\u00f1o f\u00edsico de la estructura de datos mediante la reducci\u00f3n dram\u00e1tica en el n\u00famero de tablas y relaciones necesarias para la realizaci\u00f3n de las consultas anal\u00edticas. Tanto DAX como otros lenguajes usados en el an\u00e1lisis de datos presentan <strong>optimizaciones para el modelo dimensional<\/strong>, especialmente si se trata de un \u00abesquema en estrella\u00bb.<\/li>\n<li><strong>Flexibilidad: <\/strong>uno de los objetivos principales del modelamiento dimensional corresponde a capturar los datos al <strong>nivel m\u00e1s peque\u00f1o posible de detalle, conocido como el nivel at\u00f3mico<\/strong>, cualquier agregaci\u00f3n previa a la inclusi\u00f3n de los datos en el modelo anal\u00edtico significar\u00e1 la perdida de detalles y por tanto la reducci\u00f3n de la flexibilidad a la hora de elaborar nuestros informes. En un modelo dimensional correctamente dise\u00f1ado, la granularidad o nivel de detalle en la tabla de hechos corresponder\u00e1 siempre al\u00a0 nivel at\u00f3mico, de forma que los datos puedan agregarse y segmentarse en funci\u00f3n de cualquier atributo de cualquier dimensi\u00f3n, proporcion\u00e1ndonos de esta manera la m\u00e1xima flexibilidad.<\/li>\n<li><strong>Mantenimiento: <\/strong>cuanto m\u00e1s sencilla sea la arquitectura del modelo de datos, m\u00e1s f\u00e1cil resultar\u00e1 desde el punto de vista del desarrollador el mantenimiento y adecuaci\u00f3n del mismo ante cambios en el n\u00famero o el tipo de atributos.<\/li>\n<\/ul>\n<h4><strong>Esquema en copo de nieve <em>(Snowflake Schema)<\/em><\/strong><\/h4>\n<p>Otro tipo de estructura de datos muy com\u00fan en la industria del <em>Business Intelligence<\/em> es el conocido como <strong>esquema en copo de nieve<\/strong>. Esta estructura surge cuando una relaci\u00f3n jer\u00e1rquica entre atributos de la misma dimensi\u00f3n es normalizada, de forma que ciertos atributos con una cardinalidad baja aparecen como <strong>tablas secundarias<\/strong> conectadas mediante relaciones con la tabla base de su dimensi\u00f3n correspondiente. En la siguiente imagen podemos ver la estructura multinivel caracter\u00edstica de este tipo de esquema:<\/p>\n<p><a href=\"https:\/\/trainingpowerbi.files.wordpress.com\/2018\/01\/image-3.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-452 size-full\" src=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-3-1.png?resize=629%2C367&#038;ssl=1\" alt=\"\" width=\"629\" height=\"367\" srcset=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-3-1.png?w=1377&amp;ssl=1 1377w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-3-1.png?resize=300%2C175&amp;ssl=1 300w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-3-1.png?resize=768%2C448&amp;ssl=1 768w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-3-1.png?resize=1024%2C598&amp;ssl=1 1024w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-3-1.png?resize=900%2C525&amp;ssl=1 900w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-3-1.png?resize=1280%2C747&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/a><\/p>\n<p>Aunque el esquema en copo de nieve representa de forma precisa los <strong>datos jer\u00e1rquicos<\/strong> correspondientes a las distintas dimensiones, presenta cierta complejidad que lo hace dif\u00edcil de entender y navegar por parte de los usuarios. Por otro lado, el rendimiento anal\u00edtico ser\u00e1 peor, por lo que siempre que sea posible, es preferible la desnormalizaci\u00f3n de los atributos de forma que obtengamos dimensiones planas, de esta forma obtendremos tambi\u00e9n la ventaja de que el c\u00f3digo DAX tender\u00e1 a ser m\u00e1s f\u00e1cil de desarrollar y menos proclive a los errores.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cuando dise\u00f1amos un modelo de datos anal\u00edtico, uno de los aspectos clave a tener en cuenta corresponde al nivel de normalizaci\u00f3n\/desnormalizaci\u00f3n con que queremos dotar a la estructura del mismo. Es probable que la mayor\u00eda de los or\u00edgenes de datos que utilicemos a nivel profesional correspondan a sistemas de procesamiento de transacciones (OLTP). Estos sistemas [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2],"tags":[11,31,14],"post_series":[],"class_list":["post-362","post","type-post","status-publish","format-standard","hentry","category-arquitectura-de-datos","tag-inteligencia-de-negocios","tag-modelado-de-datos","tag-power-bi"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Cuando dise\u00f1amos un modelo de datos anal\u00edtico, uno de los aspectos clave a tener en cuenta corresponde al nivel de normalizaci\u00f3n\/desnormalizaci\u00f3n con que queremos dotar a la estructura del mismo. Es probable que la mayor\u00eda de los or\u00edgenes de datos que utilicemos a nivel profesional correspondan a sistemas de procesamiento de transacciones (OLTP). Estos sistemas\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Admin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Business Intelligence Controlling | La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Estructuras de datos en entornos anal\u00edticos | Business Intelligence Controlling\" \/>\n\t\t<meta property=\"og:description\" content=\"Cuando dise\u00f1amos un modelo de datos anal\u00edtico, uno de los aspectos clave a tener en cuenta corresponde al nivel de normalizaci\u00f3n\/desnormalizaci\u00f3n con que queremos dotar a la estructura del mismo. Es probable que la mayor\u00eda de los or\u00edgenes de datos que utilicemos a nivel profesional correspondan a sistemas de procesamiento de transacciones (OLTP). Estos sistemas\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2018-06-28T10:56:49+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-07-22T09:00:59+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Estructuras de datos en entornos anal\u00edticos | Business Intelligence Controlling\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Cuando dise\u00f1amos un modelo de datos anal\u00edtico, uno de los aspectos clave a tener en cuenta corresponde al nivel de normalizaci\u00f3n\/desnormalizaci\u00f3n con que queremos dotar a la estructura del mismo. Es probable que la mayor\u00eda de los or\u00edgenes de datos que utilicemos a nivel profesional correspondan a sistemas de procesamiento de transacciones (OLTP). Estos sistemas\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2018\\\/06\\\/28\\\/desnormalizando-consultas-de-forma-eficiente\\\/#article\",\"name\":\"Estructuras de datos en entornos anal\\u00edticos | Business Intelligence Controlling\",\"headline\":\"Estructuras de datos en entornos anal\\u00edticos\",\"author\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/bicontrolling.com\\\/wp-content\\\/uploads\\\/2018\\\/02\\\/image-4-1.png?fit=1053%2C815&ssl=1\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2018\\\/06\\\/28\\\/desnormalizando-consultas-de-forma-eficiente\\\/#articleImage\",\"width\":1053,\"height\":815},\"datePublished\":\"2018-06-28T10:56:49+02:00\",\"dateModified\":\"2019-07-22T11:00:59+02:00\",\"inLanguage\":\"es-ES\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2018\\\/06\\\/28\\\/desnormalizando-consultas-de-forma-eficiente\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2018\\\/06\\\/28\\\/desnormalizando-consultas-de-forma-eficiente\\\/#webpage\"},\"articleSection\":\"Arquitectura de datos, Inteligencia de negocios, Modelado de datos, Power BI\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2018\\\/06\\\/28\\\/desnormalizando-consultas-de-forma-eficiente\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com#listItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\\\/\\\/bicontrolling.com\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/#listItem\",\"name\":\"Arquitectura de datos\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/#listItem\",\"position\":2,\"name\":\"Arquitectura de datos\",\"item\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2018\\\/06\\\/28\\\/desnormalizando-consultas-de-forma-eficiente\\\/#listItem\",\"name\":\"Estructuras de datos en entornos anal\\u00edticos\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com#listItem\",\"name\":\"Inicio\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2018\\\/06\\\/28\\\/desnormalizando-consultas-de-forma-eficiente\\\/#listItem\",\"position\":3,\"name\":\"Estructuras de datos en entornos anal\\u00edticos\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/#listItem\",\"name\":\"Arquitectura de datos\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#organization\",\"name\":\"Business Intelligence Controlling\",\"description\":\"La nueva generaci\\u00f3n del reporting econ\\u00f3mico-financiero y el control de gesti\\u00f3n empresarial\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/admin\\\/\",\"name\":\"Admin\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2018\\\/06\\\/28\\\/desnormalizando-consultas-de-forma-eficiente\\\/#webpage\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2018\\\/06\\\/28\\\/desnormalizando-consultas-de-forma-eficiente\\\/\",\"name\":\"Estructuras de datos en entornos anal\\u00edticos | Business Intelligence Controlling\",\"description\":\"Cuando dise\\u00f1amos un modelo de datos anal\\u00edtico, uno de los aspectos clave a tener en cuenta corresponde al nivel de normalizaci\\u00f3n\\\/desnormalizaci\\u00f3n con que queremos dotar a la estructura del mismo. Es probable que la mayor\\u00eda de los or\\u00edgenes de datos que utilicemos a nivel profesional correspondan a sistemas de procesamiento de transacciones (OLTP). Estos sistemas\",\"inLanguage\":\"es-ES\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2018\\\/06\\\/28\\\/desnormalizando-consultas-de-forma-eficiente\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2018-06-28T10:56:49+02:00\",\"dateModified\":\"2019-07-22T11:00:59+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#website\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/\",\"name\":\"Business Intelligence Controlling\",\"description\":\"La nueva generaci\\u00f3n del reporting econ\\u00f3mico-financiero y el control de gesti\\u00f3n empresarial\",\"inLanguage\":\"es-ES\",\"publisher\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Estructuras de datos en entornos anal\u00edticos | Business Intelligence Controlling","description":"Cuando dise\u00f1amos un modelo de datos anal\u00edtico, uno de los aspectos clave a tener en cuenta corresponde al nivel de normalizaci\u00f3n\/desnormalizaci\u00f3n con que queremos dotar a la estructura del mismo. Es probable que la mayor\u00eda de los or\u00edgenes de datos que utilicemos a nivel profesional correspondan a sistemas de procesamiento de transacciones (OLTP). Estos sistemas","canonical_url":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/#article","name":"Estructuras de datos en entornos anal\u00edticos | Business Intelligence Controlling","headline":"Estructuras de datos en entornos anal\u00edticos","author":{"@id":"https:\/\/bicontrolling.com\/index.php\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/bicontrolling.com\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/02\/image-4-1.png?fit=1053%2C815&ssl=1","@id":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/#articleImage","width":1053,"height":815},"datePublished":"2018-06-28T10:56:49+02:00","dateModified":"2019-07-22T11:00:59+02:00","inLanguage":"es-ES","mainEntityOfPage":{"@id":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/#webpage"},"isPartOf":{"@id":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/#webpage"},"articleSection":"Arquitectura de datos, Inteligencia de negocios, Modelado de datos, Power BI"},{"@type":"BreadcrumbList","@id":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/bicontrolling.com#listItem","position":1,"name":"Inicio","item":"https:\/\/bicontrolling.com","nextItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/#listItem","name":"Arquitectura de datos"}},{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/#listItem","position":2,"name":"Arquitectura de datos","item":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/#listItem","name":"Estructuras de datos en entornos anal\u00edticos"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com#listItem","name":"Inicio"}},{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/#listItem","position":3,"name":"Estructuras de datos en entornos anal\u00edticos","previousItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/#listItem","name":"Arquitectura de datos"}}]},{"@type":"Organization","@id":"https:\/\/bicontrolling.com\/#organization","name":"Business Intelligence Controlling","description":"La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial","url":"https:\/\/bicontrolling.com\/"},{"@type":"Person","@id":"https:\/\/bicontrolling.com\/index.php\/author\/admin\/#author","url":"https:\/\/bicontrolling.com\/index.php\/author\/admin\/","name":"Admin"},{"@type":"WebPage","@id":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/#webpage","url":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/","name":"Estructuras de datos en entornos anal\u00edticos | Business Intelligence Controlling","description":"Cuando dise\u00f1amos un modelo de datos anal\u00edtico, uno de los aspectos clave a tener en cuenta corresponde al nivel de normalizaci\u00f3n\/desnormalizaci\u00f3n con que queremos dotar a la estructura del mismo. Es probable que la mayor\u00eda de los or\u00edgenes de datos que utilicemos a nivel profesional correspondan a sistemas de procesamiento de transacciones (OLTP). Estos sistemas","inLanguage":"es-ES","isPartOf":{"@id":"https:\/\/bicontrolling.com\/#website"},"breadcrumb":{"@id":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/#breadcrumblist"},"author":{"@id":"https:\/\/bicontrolling.com\/index.php\/author\/admin\/#author"},"creator":{"@id":"https:\/\/bicontrolling.com\/index.php\/author\/admin\/#author"},"datePublished":"2018-06-28T10:56:49+02:00","dateModified":"2019-07-22T11:00:59+02:00"},{"@type":"WebSite","@id":"https:\/\/bicontrolling.com\/#website","url":"https:\/\/bicontrolling.com\/","name":"Business Intelligence Controlling","description":"La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial","inLanguage":"es-ES","publisher":{"@id":"https:\/\/bicontrolling.com\/#organization"}}]},"og:locale":"es_ES","og:site_name":"Business Intelligence Controlling | La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial","og:type":"article","og:title":"Estructuras de datos en entornos anal\u00edticos | Business Intelligence Controlling","og:description":"Cuando dise\u00f1amos un modelo de datos anal\u00edtico, uno de los aspectos clave a tener en cuenta corresponde al nivel de normalizaci\u00f3n\/desnormalizaci\u00f3n con que queremos dotar a la estructura del mismo. Es probable que la mayor\u00eda de los or\u00edgenes de datos que utilicemos a nivel profesional correspondan a sistemas de procesamiento de transacciones (OLTP). Estos sistemas","og:url":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/","article:published_time":"2018-06-28T10:56:49+00:00","article:modified_time":"2019-07-22T09:00:59+00:00","twitter:card":"summary","twitter:title":"Estructuras de datos en entornos anal\u00edticos | Business Intelligence Controlling","twitter:description":"Cuando dise\u00f1amos un modelo de datos anal\u00edtico, uno de los aspectos clave a tener en cuenta corresponde al nivel de normalizaci\u00f3n\/desnormalizaci\u00f3n con que queremos dotar a la estructura del mismo. Es probable que la mayor\u00eda de los or\u00edgenes de datos que utilicemos a nivel profesional correspondan a sistemas de procesamiento de transacciones (OLTP). Estos sistemas"},"aioseo_meta_data":{"post_id":"362","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-03-31 11:40:50","updated":"2025-06-04 11:10:56","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bicontrolling.com\" title=\"Inicio\">Inicio<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/\" title=\"Arquitectura de datos\">Arquitectura de datos<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tEstructuras de datos en entornos anal\u00edticos\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Inicio","link":"https:\/\/bicontrolling.com"},{"label":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},{"label":"Estructuras de datos en entornos anal\u00edticos","link":"https:\/\/bicontrolling.com\/index.php\/2018\/06\/28\/desnormalizando-consultas-de-forma-eficiente\/"}],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":430,"url":"https:\/\/bicontrolling.com\/index.php\/2020\/02\/20\/desnormalizando-consultas-de-forma-eficiente-2\/","url_meta":{"origin":362,"position":0},"title":"Desnormalizando dimensiones de forma eficiente","author":"Admin","date":"20 febrero, 2020","format":false,"excerpt":"Como vimos en una entrada anterior, cuando dise\u00f1amos un modelo de datos anal\u00edtico, el enfoque principal debe situarse en lograr un dise\u00f1o que favorezca la simplicidad en la exploraci\u00f3n y agregaci\u00f3n de los datos, a la vez que en obtener un rendimiento \u00f3ptimo en la realizaci\u00f3n de consultas. Las estructuras\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/09\/image-31-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/09\/image-31-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/09\/image-31-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/09\/image-31-1.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":2236,"url":"https:\/\/bicontrolling.com\/index.php\/2026\/02\/03\/las-tablas-padre-hijo-y-el-reporting-economico-financiero\/","url_meta":{"origin":362,"position":1},"title":"Las tablas padre-hijo y el reporting econ\u00f3mico-financiero en Power BI","author":"Admin","date":"3 febrero, 2026","format":false,"excerpt":"Introducci\u00f3n En el \u00e1mbito del reporting econ\u00f3mico-financiero hay algo incuestionable: las estructuras nunca son definitivas. Las organizaciones evolucionan, cambian los criterios de an\u00e1lisis y aparecen nuevas necesidades de informaci\u00f3n que obligan a revisar continuamente la forma en que se presentan los estados financieros. Esta situaci\u00f3n se hace especialmente evidente en\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2026\/02\/image-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2026\/02\/image-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2026\/02\/image-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2026\/02\/image-1.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":760,"url":"https:\/\/bicontrolling.com\/index.php\/2018\/12\/13\/header-detail\/","url_meta":{"origin":362,"position":2},"title":"Estructuras jer\u00e1rquicas en tablas de hechos","author":"Admin","date":"13 diciembre, 2018","format":false,"excerpt":"Introducci\u00f3n Un escenario muy frecuente cuando utilizamos bases de datos relacionales como origen principal de un modelo que reproduce un proceso de negocio, como pueden ser las ventas de una empresa, es encontrarnos con dos tablas de hechos con distinta granularidad para describir el mismo proceso. Una de ellas contendr\u00e1\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/03\/image-7-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/03\/image-7-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/03\/image-7-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/03\/image-7-1.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":783,"url":"https:\/\/bicontrolling.com\/index.php\/2019\/01\/24\/analisis-economico-financiero-en-power-bi1\/","url_meta":{"origin":362,"position":3},"title":"An\u00e1lisis econ\u00f3mico-financiero en Power BI","author":"Admin","date":"24 enero, 2019","format":false,"excerpt":"Introducci\u00f3n Los informes econ\u00f3mico-financieros, basados principalmente en las normas de registro y valoraci\u00f3n de los diferentes elementos que componen los estados que deben elaborarse bajo el Plan General de Contabilidad, han sido hist\u00f3ricamente un proceso complejo y est\u00e1tico, que proporciona informaci\u00f3n limitada y con horizontes temporales predefinidos (cierre trimestral, anual...).\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/03\/Desviaciones.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/03\/Desviaciones.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/03\/Desviaciones.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/03\/Desviaciones.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/03\/Desviaciones.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":2059,"url":"https:\/\/bicontrolling.com\/index.php\/2023\/08\/31\/integridad-referencial-y-miembros-de\/","url_meta":{"origin":362,"position":4},"title":"Integridad referencial y miembros desconocidos en Power BI","author":"Admin","date":"31 agosto, 2023","format":false,"excerpt":"Introducci\u00f3n En este art\u00edculo vamos a explorar como se comporta Power BI cuando en un modelo de datos existen violaciones de la integridad referencial, y como podemos identificar y solventar este problema, a la vez que agrupamos los miembros desconocidos dot\u00e1ndolos de significado y garantizando la integridad de nuestro modelo.\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/08\/image-1.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":816,"url":"https:\/\/bicontrolling.com\/index.php\/2018\/08\/23\/medidas-semi-aditivas-en-dax\/","url_meta":{"origin":362,"position":5},"title":"Medidas semi-aditivas en DAX","author":"Admin","date":"23 agosto, 2018","format":false,"excerpt":"En cualquier sistema de BI, podemos crear c\u00e1lculos o medidas de 3 tipos distintos: Medidas aditivas: son generalmente la mayor parte de las medidas que nos encontraremos en un modelo de datos anal\u00edtico, y se caracterizan porque podemos usar la funci\u00f3n SUM() para agregar sus valores en funci\u00f3n de cualquier\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/04\/image-1-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/04\/image-1-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/04\/image-1-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/04\/image-1-1.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/comments?post=362"}],"version-history":[{"count":5,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/362\/revisions"}],"predecessor-version":[{"id":1360,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/362\/revisions\/1360"}],"wp:attachment":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/media?parent=362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/categories?post=362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/tags?post=362"},{"taxonomy":"post_series","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/post_series?post=362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}