[Power Query] Coup de pouce pour créer un filtre

Bonjour à tous,

Je travaille actuellement un cube technique et je ne maitrise pas beaucoup ces outils (bien plus habitué au SQL). Dans Power Query je dispose donc de cette requête (ce n'est qu'une partie du code)

#"Éléments ajoutés" = Cube.Transform(Modèle2,
        {
            {Cube.AddAndExpandDimensionColumn, "[Contrat]", {"[Contrat].[Contrat Id].[Contrat Id]", "[Contrat].[Contrat Pays].[Contrat Pays]", "[Contrat].[Contrat Périodicité].[Contrat Périodicité]", "[Contrat].[Contrat Sous Famille].[Contrat Sous Famille]", "[Contrat].[Contrat Effet Date].[Contrat Effet Date]", "[Contrat].[Contrat Sortie Effet Date].[Contrat Sortie Effet Date]", "[Contrat].[Contrat Statut Libellé].[Contrat Statut Libellé]", "[Contrat].[Assuré Année Naissance].[Assuré Année Naissance]"}, {"Numéro contrat", "Pays", "Périodicité", "Sous Famille", "Date d'effet contrat", "Date de sortie contrat", "Position contrat", "Année de naissance assuré"}},
            {Cube.AddAndExpandDimensionColumn, "[Date]", {"[Date].[Année].[Année]", "[Date].[Mois].[Mois]"}, {"Date.Année", "Date.Mois"}},
            {Cube.AddMeasureColumn, "CA", "[Measures].[CA]"}
        }),
    #"Type modifié" = Table.TransformColumnTypes(#"Éléments ajoutés",{{"Date.Année", Int64.Type}, {"Date.Mois", Int64.Type}}),
    // Ajouter une étape de filtre pour garder uniquement les années supérieures ou égales à l'année en cours -2
    #"Filtrer les années" = Table.SelectRows(#"Type modifié", each [Date.Année] >= Date.Year(DateTime.LocalNow()) - 2)

Cependant la requête est astronomiquement longue (près de 15 minutes à condition que ça ne plante pas). A mon avis cela vient du fait qu'il doit d'abord charger toutes les données et que le filtre de date ne s'applique que dans un deuxième temps. Je cherche donc un moyen d'intégrer ce filtre directement dans la requête de récupération des données.

Est-ce que quelqu'un s'y connait et peux m'aider ?

Cordialement,

Nicolas

Bonjour,

La durée d'exécution vient peut-être aussi du fait que le critère de filtre est recalculé à chaque ligne.

Rajoute une ligne dans le code, ou crée un paramètre, puis passe ce paramètre au filtre :

CritèreFiltre = Date.Year(DateTime.LocalNow()) - 2,
#"Filtrer les années" = Table.SelectRows(#"Type modifié", each [Date.Année] >= CritèreFiltre )

Fait l'essai, cela devrait être plus rapide.

A+

Bonjour OOoiste,

Merci pour ton aide, mais ça n'a pas fait diminué la durée d'exécution, on est toujours aux environs de 15 minutes.

J'ai profite, une fois de temps en temps j'ai cette erreur qui s'affiche (sous Power BI)

image

Si quelqu'un a une idée pour régler ça je prends aussi.

Nicolas

Rechercher des sujets similaires à "power query coup pouce creer filtre"