Ghuiles
Hola
¿Hay alguna forma de recuperar todas las medidas de un archivo pbix y exportarlas o copiarlas a un archivo txt?
Eso ayudaría a obtener más documentación y también a realizar cambios masivos si fuera necesario.
Salud.
Phil_Seamark
Hola @Ghuiles,
Sí hay. Puede ejecutar una consulta del DMV en el cubo tabular.
Esencialmente, debe conectarse a su instancia de Power BI Desktop desde una herramienta como AS Sql Server Management Studio (o MDX Studio) y emitir la siguiente consulta
Ghuiles
En respuesta a Phil_Seamark
Hola
Encontré una mejor solución, siguiendo ese video: https://www.youtube.com/watch?v=rYlIp1PrBcA
Básicamente, en DAX Studio, hace clic en MDSCHEMA_MEASURES.
Obtienes un SQL, lo ejecutas y obtienes muchos detalles sobre tus medidas.
Eso, por supuesto, puede exportar directamente a Excel.
Salud
JasonPad
Con Power BI Desktop de mayo de 2021,
prueba esto
https://github.com/JasonPad19/PowerBIScanner/blob/main/README.md
Anónimo
¿Hay alguna forma de recuperar las medidas y dimensiones de un gráfico en particular?
jsh121988
Este es el primer resultado en Google, así que lo estoy publicando aquí.
Hoy descubrí que el antiguo método de descomprimir un archivo pbix y explorar DataModelSchema funciona en archivos .pbit de plantilla de PowerBI.
- Abra un archivo .pbix en PowerBI Desktop
- Guardar como plantilla .pbit
- Cambie la extensión del archivo de .pbit a .zip
- Abra DataModelSchema en un editor de texto.
- Extrae el esquema
Las medidas se pueden encontrar en: model.tables.measures
Las columnas se pueden encontrar en: model.tables.columns
Las columnas calculadas se pueden encontrar en: model.tables.columns filtrando calculado = verdadero
Para simplificar esto, escribí un programa en C #, pero cualquier lenguaje que analice JSON funcionará. Aquí está el código fuente básico de C #. Solo usé linqpad para ejecutarlo.
// using System; // using System.Linq; // using System.IO; // using System.Collections.Generic; // using Newtonsoft.Json void Main() { // get the JSON from pbit DataModelSchema string strFolderName = @"c:pathtofile"; string strFileName = @"DataModelSchema"; string strJson = File.ReadAllText(strFolderName + strFileName); // Convert the Json to a dynamic object dynamic oJson = JsonConvert.DeserializeObject<dynamic>(strJson); // Extract the tables to a list<dynamic> List<dynamic> oTables = new List<dynamic>(oJson.model.tables); // Remove hidden tables from the pull. These are only sysetm generated date tables. oTables = oTables.Where(t => t.isHidden != true).ToList(); foreach (var oTable in oTables) // Foreach Table, do something { Console.Write((string)oTable.name); // Output the table name if (oTable.measures != null) // If the table has measures { List<dynamic> oMeasures = new List<dynamic>(oTable.measures); foreach (var oMeasure in oMeasures) // Foreach measure { Console.Write(string.Format("nntt{0} = {1}", (string)oMeasure.name, (string)oMeasure.expression)); // Write the measure and expression } } if (oTable.columns != null) // If the table has columns { Console.WriteLine(); // Insert a new line List<dynamic> oColumns = new List<dynamic>(oTable.columns); oColumns = oColumns.Where(c => c.type == "calculated").ToList(); // Filter on calculated columns only, but this could be removed for all foreach (var oColumn in oColumns) { Console.Write(string.Format("nntt{0} = {1}", (string)oColumn.name, (string)oColumn.expression)); // Write the column and expression } } Console.WriteLine(); } }
grahamfletcher1
¿Hay alguna forma de hacer lo contrario? Quiero cargar las medidas en el archivo PBIX desde SQL.
Estoy pensando en crear una biblioteca de medidas en SQL que daría a todos los diferentes desarrolladores acceso a la lista de medidas. También significa que las medidas se pueden editar y actualizar en varios archivos PBIX.
Sean
@Ghuiles
Tendrá que usar DAX Studio http://daxstudio.codeplex.com/
Cómo hacerlo se describe aquí http://exceleratorbi.com.au/getting-started-dax-studio/
Phil_Seamark
En respuesta a Sean
Hola @Sean.
No me di cuenta de que podía usar DAX Studio para DMV, pero supongo que tiene sentido. Normalmente hago mi trabajo de DMV en SSMS (o en Power BI Desktop) y ese es un gran artículo de @MattAllington
Eric_Zhang
En respuesta a Phil_Seamark
@Phil_Seamark escribió:
Hola @Sean.
No me di cuenta de que podía usar DAX Studio para DMV, pero supongo que tiene sentido. Normalmente hago mi trabajo de DMV en SSMS, (o en el propio Power BI Desktop@) y ese es un gran artículo de @MattAllington
@Phil_Seamark
¿Podría tener una explicación más detallada sobre cómo hacerlo en Power BI Desktop? Conozco los DMV en SQL Server, solo me pregunto cómo hacerlo en Power BI Desktop. Gracias por adelantado.
Phil_Seamark
En respuesta a Eric_Zhang
Hmmm, tal vez no.
Solía poder descomprimir los modelos de Power Pivot y extraer las fórmulas de los archivos xml, pero han comprimido / cifrado los datos, por lo que no es tan sencillo.
Ghuiles
En respuesta a Phil_Seamark
Hola
Encontré una mejor solución, siguiendo ese video: https://www.youtube.com/watch?v=rYlIp1PrBcA
Básicamente, en DAX Studio, hace clic en MDSCHEMA_MEASURES.
Obtienes un SQL, lo ejecutas y obtienes muchos detalles sobre tus medidas.
Eso, por supuesto, puede exportar directamente a Excel.
Salud
Anónimo
En respuesta a Ghuiles
¿Alguna idea de cómo obtener las medidas que se crearon en un informe de Power BI y el informe de Power BI se conecta a una base de datos de Analysis Services en modo de consulta directa?
KevinNC
En respuesta a Ghuiles
¡Eso es genial! Gracias por compartir
Sean
En respuesta a Phil_Seamark
Sí, la otra cosa que recomiendo es la herramienta de utilidades de Power Pivot https://www.sqlbi.com/tools/power-pivot-utilities/
Sin embargo, ya sea que instale PP Util o no => iniciar DAX Studio desde EXCEL incluso si acaba de instalar el complemento DAX Studio
De esta manera, cuando obtenga la Lista de TODAS las medidas en su modelo, tendrá la opción de Salida en Excel
¡Si no comienza desde Excel, no obtendrá esa opción!
Ghuiles
En respuesta a Sean
¡Hola tios!
¡Muchas gracias @Sean y @Phil_Seamark! ¡Aprendí mucho!
Usé el SQL de Phil con el estudio DAX.
Actualmente no utilizamos un servidor SQL. Los datos de PBI provienen de Excel (Essbase).
Ahora tengo la lista de las medidas, sí, pero no su cálculo respectivo. ¿Hay alguna forma de conseguirlos?
Esto realmente me ayudaría a hacer cambios masivos.
Salud
Phil_Seamark
En respuesta a Ghuiles
No he visto un DMV para esto, pero el archivo PBIX es solo un archivo .zip, por lo que posiblemente pueda analizar el texto sin procesar (sería bastante feo, pero podría hacerlo en Power BI 🙂
Ghuiles
En respuesta a Phil_Seamark
¡Gracias de nuevo Phil!
Hice el trabajo manualmente.
Salud
Phil_Seamark
En respuesta a Sean
Creo que también tendré que encontrar un DMV mejor para ti.
El que se proporciona solo devuelve 1 fila con respecto a un modelo de escritorio PBI. Sin embargo, funciona maravillosamente contra cubos tabulares.
Phil_Seamark
En respuesta a Phil_Seamark
Si ejecuta la siguiente consulta del DMV, muestra una lista de las diversas tablas de metadatos que puede consultar.
SELECT * FROM $System.DBSchema_Tables
Entonces, para una lista de columnas
SELECT * FROM $SYSTEM.DBSCHEMA_COLUMNS where Table_Schema="Model"
Ghuiles
En respuesta a Phil_Seamark
Hermosa 🙂
Phil_Seamark
Hola @Ghuiles,
Sí hay. Puede ejecutar una consulta del DMV en el cubo tabular.
Esencialmente, debe conectarse a su instancia de Power BI Desktop desde una herramienta como AS Sql Server Management Studio (o MDX Studio) y emitir la siguiente consulta