Cómo filtrar un cubo Olap en el lado de Power Query

Un usuario Pregunto ✅

StéphaneA

Hola

Necesito conectar mi informe a un Olap Cube, por lo que uso el conector «Analysis Services» y funciona bien, pero desafortunadamente quiero filtrar mis datos antes de cargarlos en Power BI.

Mi conjunto de datos contiene más de 16 millones de filas y solo necesito 1 millón 😉

En la vista de navegación del cubo, solo puedo agregar Dimensión o Medida y no tengo ninguna propuesta de filtro

Capture.PNG

Así que trato de usar Cube.ApplyParameter en el editor avanzado, pero parece que no estoy lo suficientemente avanzado.

Esta primera prueba:

let
    Source = AnalysisServices.Databases("xxxxxxxxxxZ2347PROD14", [TypedMeasureColumns=true, Implementation="2.0"]),
    ISI_2_1 = Source{[Name="ISI_2_1"]}[Data],
    TimeTracking_tech = ISI_2_1{[Id="TimeTracking_tech"]}[Data],
    #"Time Tracking1" = TimeTracking_tech{[Id="Time Tracking"]}[Data],
    #"Éléments ajoutés" = Cube.Transform(#"Time Tracking1",
        {
            {Cube.AddAndExpandDimensionColumn, "[Members]", {"[Members].[MEM member].[MEM member]", "[Members].[MEM Organization].[MEM Organization]"}, {"Members.MEM member", "Members.MEM Organization"}},
            {Cube.ApplyParameter("[Members].[MEM Organization].[MEM Organization]",{"Digital Front End - DT"})}           
        }),
    #"Lignes filtrées1" = Table.SelectRows(#"Éléments ajoutés", each (Cube.AttributeMemberId([Members.MEM Organization]) = "[Members].[MEM Organization].&[73847]" meta [DisplayName = "Digital Front End - DT"]))
in
    #"Lignes filtrées1"

plantear este error:

Expression.Error: Désolé … Nous n’avons pas pu convertir la valeur «[Members].[MEM Organ…» en type Table.
Détails :
Value=[Members].[MEM Organization].[MEM Organization]
Tipo =[Type]

y esta otra prueba:

let
    Source = AnalysisServices.Databases("xxxxxxxxxxZ2347PROD14", [TypedMeasureColumns=true, Implementation="2.0"]),
    ISI_2_1 = Source{[Name="ISI_2_1"]}[Data],
    TimeTracking_tech = ISI_2_1{[Id="TimeTracking_tech"]}[Data],
    #"Time Tracking1" = TimeTracking_tech{[Id="Time Tracking"]}[Data],
    Test = Cube.ApplyParameter(#"Time Tracking1","[Members].[MEM Organization].[MEM Organization]",{"Digital Front End - DT"}),
    #"Éléments ajoutés" = Cube.Transform(Test,
        {
            {Cube.AddAndExpandDimensionColumn, "[Members]", {"[Members].[MEM member].[MEM member]", "[Members].[MEM Organization].[MEM Organization]"}, {"Members.MEM member", "Members.MEM Organization"}}            
        }),
    #"Lignes filtrées1" = Table.SelectRows(#"Éléments ajoutés", each (Cube.AttributeMemberId([Members.MEM Organization]) = "[Members].[MEM Organization].&[73847]" meta [DisplayName = "Digital Front End - DT"]))
in
    #"Lignes filtrées1"

plantear este otro error:

Expression.Error: La clé ne correspondait à aucune ligne dans la table.
Detalles :
Clave =
Id =[Members].[MEM Organization].[MEM Organization]
Tabla =[Table]

Si alguien tiene una idea, será muy útil. 😉

nb: no puedo usar la conexión directa porque necesito usar otros datos externos 😉

Kevin23

Hola Stephane,

Tengo el mismo problema.

¿Encontraste la solución?

Kevin

StéphaneA

En respuesta a Kevin23

Hola Kevin,

Sí, encontré la solución personalizando la consulta MDX

Es un poco delicado porque la sintaxis no se parece a SQL pero funciona bien

StéphaneA_0-1613988703717.png

Kevin23

En respuesta a StéphaneA

Gracias Stephane,

Quiero hacerlo directamente desde Power BI a Google Analytics. Así que voy a buscar algo en Power Query, directamente a GA.

Kevin

lbendlin

Cuando se conecta a Analysis Services, puede especificar una consulta MDX personalizada. Úselo para su filtrado.

StéphaneA

En respuesta a lbendlin

Buena idea, pero si quiero usar la solicitud MDX, necesito definir la base de datos y, lamentablemente, no pude hacerlo.

En realidad, en el lado del navegador tengo esa vista:

Sans titre.png

Intento la siguiente configuración:

  • ISI_2_1
  • [ISI_2_1]
  • ISI_2_1.TimeTracking_tech
  • [ISI_2_1].[TimeTracking_tech]
  • ISI_2_1.TimeTracking_tech.Time Tracking
  • [ISI_2_1].[TimeTracking_tech].[Time Tracking]

Pero cada vez recibí el mismo error: «O el usuario xxx no tiene acceso a la base de datos xxxxx o la base de datos no existe».

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *