Qué es uno mismo en Python: ejemplos del mundo real
Qué es uno mismo en Python: ejemplos del mundo real
Hoy quiero dedicar un tiempo a hablar sobre tablas en LuckyTemplates. Nos topamos con tablas todo el tiempo con cada problema, pero realmente no pasamos mucho tiempo pensando en ellos solos. Puedes ver el video completo de este tutorial en la parte inferior de este blog.
Recientemente hubo una publicación del miembro de LuckyTemplates, Ashton, quien siempre presenta buenas preguntas que invitan a la reflexión. Su consulta me hizo pensar en un patrón que veo con bastante frecuencia y quiero abordar en este tutorial.
No fue un error que cometió, pero es un error común. Veo muchas veces que la gente dice que tiene problemas con una mesa virtual, por ejemplo, cuando en primer lugar no es una mesa virtual.
Hay una distinción real entre los tipos de tablas en LuckyTemplates.
La analogía que daría es si alguien dijera: "Oye, recientemente adopté un perro y tengo problemas con el perro y me pregunto si puedes ayudarme" y no es un perro, sino un lobo. Ambos son caninos, pero hay algunas distinciones bastante importantes que debes tener en cuenta.
Entonces, si bien son todos de la misma familia, al igual que las tablas en LuckyTemplates, son distinciones importantes que realmente afectan la solución y la forma en que usa esas tablas. Entonces, lo que quería hacer era revisar la pregunta de Ashton y luego profundizar un poco en las diferencias entre las tablas que encuentra en LuckyTemplates y mostrar cómo eso influye en la forma en que las maneja.
La pregunta era bastante simple, pero hay un poco más de lo que parece inicialmente. Tenía un conjunto de datos simple que solo dice clientes, el tipo de fruta que compraron, la cantidad y luego solo un número de índice.
Quería tener una rebanadora con capacidad de selección múltiple para que, si seleccionaba naranja, mostrara todos los clientes que compraron naranjas, pero también mostrara qué más compraron.
Entonces, si desactivamos esta selección (naranja), podemos ver el conjunto de datos completo. También podemos ver que estos son los dos clientes (Joe y Mary) que compraron naranjas, pero cada uno también tuvo una compra adicional.
Entonces, lo primero que sabemos es que la rebanadora de frutas tiene que ser una mesa rebanadora desconectada. Si fuera una máquina de cortar normal, le darías al naranja y básicamente eliminaría todo menos el naranja de la mesa. También sabemos, porque esto es dinámico, tenemos un problema con la mesa virtual.
Profundicemos un poco en esto, pero antes de hacerlo, echemos un vistazo a los diferentes tipos de tablas que encontramos en LuckyTemplates.
Tabla de contenido
Tres tipos de tablas en LuckyTemplates
Hay tres tipos de tablas que encontramos habitualmente. El primero es el más común y es una tabla física, y estos son realmente sus datos principales. Cada vez que obtiene datos o ingresa datos directamente a través de esta opción o en Power Query , hace una referencia o un duplicado, o carga datos a través de una consulta en blanco, como una tabla de fechas, que es una tabla física.
Una tabla física no es completamente dinámica, pero tiene todas estas otras características que aumentan el tamaño del archivo porque son datos físicos. Es accesible en Power Query. Normalmente, las relaciones en el modelo de datos se construyen a través de relaciones físicas. No tienen por qué serlo, pero normalmente lo son. Se usan para datos primarios y los visualiza a través de la vista de datos o a través de Power Query.
Una tabla física no es completamente dinámica, pero tiene todas estas otras características que aumentan el tamaño del archivo porque son datos físicos. Es accesible en Power Query. Normalmente, las relaciones en el modelo de datos se construyen a través de relaciones físicas. No tienen por qué serlo, pero normalmente lo son. Se usan para datos primarios y los visualiza a través de la vista de datos o a través de Power Query.
La que a menudo se confunde con la tabla virtual es esta tabla calculada o lo que también podemos denominar tabla de expresión DAX. Esto tiene una analogía directa con las columnas calculadas que se crean mediante expresiones DAX . Esto se hace a través de la pestaña Modelado y la opción Nueva tabla, y luego ingresas la expresión DAX.
La que a menudo se confunde con la tabla virtual es esta tabla calculada o lo que también podemos denominar tabla de expresión DAX. Esto tiene una analogía directa con las columnas calculadas que se crean mediante expresiones DAX. Esto se hace a través de la pestaña Modelado y la opción Nueva tabla, y luego ingresas la expresión DAX.
Como puede ver en la tabla de comparación a continuación, la tabla calculada tiene un perfil bastante diferente al de la tabla física o la tabla virtual. No es totalmente dinámico.
Debe actualizarse para recoger la nueva información. Aumenta el tamaño del archivo físico. A diferencia de una tabla física directa, no se puede acceder a ella en Power Query. Al igual que una columna calculada no aparece en Power Query, una tabla calculada tampoco. Pero posee los otros aspectos de una mesa física.
Por lo general, las tablas calculadas se usan para tablas de soporte y se usan más comúnmente para la depuración. Ahora hay mejores herramientas como DAX Studio y Tabular Editor, por lo que no se usa con tanta frecuencia para eso. Usted ve esta tabla a través de la vista de datos.
Y, francamente, al igual que las columnas calculadas, generalmente es algo de lo que debe mantenerse alejado. Hay mejores formas de hacer las cosas que a través de tablas calculadas.
Y luego la analogía con las medidas son las verdaderas tablas virtuales . Estos se crean en el contexto de las medidas a través del código de medida DAX. Son totalmente dinámicas, a diferencia de los otros dos tipos de tablas. No aumentan el tamaño del archivo porque están bajo demanda. Al igual que las medidas, las tablas virtuales se calculan a pedido en la memoria y se usan en el transcurso de los contextos para los que son necesarias.
No son accesibles en Power Query. No se puede poner una relación física en esos. Si los relaciona en su modelo de datos, lo hace mediante relaciones virtuales, más comúnmente con .
Las tablas virtuales se utilizan para cálculos intermedios en medidas porque una medida no puede devolver un valor de tabla y tiene que devolver un valor escalar. Por lo tanto, generalmente los usa como el cálculo provisional sobre el cual genera sus escaladores, que son el producto resultante de su medida.
Puede visualizar estas tablas en herramientas como DAX Studio, Tabular Editor o New Table, que nuevamente es probablemente la forma menos deseable porque satura su modelo de datos con un montón de tablas adicionales, a menos que las elimine.
Solución de medida DAX para una mesa virtual
Volviendo a la pregunta de Ashton, mirando la tabla, podemos decir que es dinámica. También podemos hacer opciones múltiples y esto cambia completamente sobre la marcha. Y por eso, sabemos que es una tabla virtual porque las otras dos (tablas físicas y calculadas) no son completamente dinámicas. También sabemos que es una tabla desconectada, como mencioné al principio.
Usé el concepto del patito de goma para resolver esto. En un tutorial anterior, hablé sobre este concepto de eludir el problema, que consiste en desarrollar una solución conceptual al problema antes de comenzar a profundizar en el DAX específico.
Entonces, para la solución del patito de goma aquí, lo que hice fue básicamente armar esta mesa de corte desconectada. Luego, coseché el valor de esos cortadores. Luego, se me ocurrió una mesa virtual que filtraba a los clientes por aquellos que habían comprado las selecciones en la mesa desconectada.
Luego, tomé esa lista de clientes y filtré nuestro conjunto de datos original de esos clientes para obtener los clientes y las compras realizadas por esos clientes, además del valor de la segmentación.
Echemos un vistazo a la medida específica para ver cómo se desarrolló y algunas de las consideraciones que tiene al trabajar con mesas virtuales.
Lo primero fue desarrollar dos medidas de cosecha para nuestros valores. El primero es el valor de la segmentación desconectada.
Dado que teníamos la selección múltiple en el requisito, significaba que no podíamos simplemente usar . Entonces, lo que hice fue usar la función para capturar potencialmente una o más selecciones en esa segmentación desconectada. Para los clientes, dado que vamos a tener un cliente en cada fila que estamos evaluando, podemos usar SELECTEDVALUE.
Lo siguiente que hice fue esta variable de tabla virtual ( Compradores VAR ) que comienza con . Luego, pasa a filtrar los clientes por si hicieron o no una compra de fruta que estaba en nuestros valores de la cortadora desconectada.
Podemos verificar esto haciendo una consulta DAX. Podemos hacerlo en DAX Studio o en Tabular Editor. Así que tomemos la medida de nuestra tabla virtual aquí, cópiela en Tabular Editor. Nos aseguraremos de que nos proporcione los valores que esperamos ver, que serían Joe y Mary.
Las consultas DAX siempre devuelven tablas y siempre comenzaron con EVALUATE, por lo que agregamos EVALUATE aquí. Sin embargo, no obtenemos nada en el resultado. Esto se debe a que la variable de cosecha de la fruta de desconexión seleccionada ( SelDisconnFruit ) no tiene conocimiento de la cortadora. Está fuera de contexto.
Entonces, la forma de probar eso es establecer artificialmente ese valor de segmentación. Reemplazaremos SelDisconnFruit con una pequeña mesa aquí. Escriba Naranja (el valor de esa segmentación) entre corchetes ondulados . Y ahora tenemos el resultado aquí, que es Joe y Mary. Con eso, la mesa virtual está funcionando exactamente como pensamos que lo haría.
Así que podemos volver ahora a nuestra expresión de medida. Uno de los aspectos más desafiantes de las tablas virtuales es que es fácil crear tablas virtuales dentro de una medida . Pero no puede devolver una tabla virtual como resultado de una medida . Entonces necesitamos devolver un escalar, pero que capture el aspecto relevante de la tabla virtual.
Así que aquí tenemos la tabla virtual que nos dice qué clientes compraron las frutas que estaban en la cortadora de valor. Podemos configurar otra variable ( VAR BuyerIn ) que dice, si el cliente seleccionado estaba en la tabla de ese comprador, entonces obtiene un uno . Y si no, obtiene un cero .
Luego tomamos los resultados de eso y los ponemos en el panel de filtro. La medida de los compradores clave , decimos, es una y serán los clientes que compraron, en este caso, naranjas.
Y al hacer eso, filtramos nuestra tabla de datos original hasta los registros correctos. Puede ver que ahora crea esa tabla virtual y filtra correctamente en función de cada selección.
Tablas virtuales dentro de funciones de iteración en LuckyTemplates: conceptos de DAX
Creación de relaciones virtuales en LuckyTemplates Uso de la función TREATAS
Cómo usar la función COUNTROWS DAX en tablas virtuales
Conclusión
Esa es la mayor parte de lo que quería cubrir hoy. Es un ejemplo de tabla virtual bastante sencillo, pero con el foco en la diferencia entre tablas físicas, tablas calculadas y tablas virtuales.
Hay muchos temas interesantes para revisar con respecto a las tablas virtuales, particularmente con la depuración de medidas de tablas virtuales. Eso es algo a lo que volveré en las próximas semanas, pero por ahora, eso es todo este tutorial.
¡Salud!
Qué es uno mismo en Python: ejemplos del mundo real
Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.
En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.
Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.
En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.
Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.
Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.
Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.
Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.
¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber