Pour filtrer votre dataset afin de n'inclure que le dernier état de chaque entité, commencez par utiliser l'API pour charger la source de données de manière habituelle. Remplacez les variables par vos informations spécifiques pour vous connecter au dataset, comme illustré ci-dessous :
let
// Remplacez ces variables avec vos propres informations
dataset_name = "Observations",
api_key = "your_api_key",
organization_id = "your_organization_id",
RetryRequest = (retries as number) =>
let
apiResponse = try Json.Document(Web.Contents("https://developer.finalcad.cloud/api/organizations/" & organization_id & "/data/config/dataseturl?name=" & dataset_name,
[Headers=[#"X-API-Key"= api_key, Authorization="token " & api_key]])),
Source = if apiResponse[HasError] and retries > 0 then
Function.InvokeAfter(() => @RetryRequest(retries - 1), #duration(0, 0, 0, 2))
else Parquet.Document(Binary.Buffer(Web.Contents(apiResponse[Value][url])))
in
Source,
Source = RetryRequest(3),
// Trier le dataset par updated_at en ordre décroissant
SortedRows = Table.Buffer(Table.Sort(Source,{{"updated_at", Order.Descending}})),
// Filtrer le dataset pour ne conserver que la dernière entrée pour chaque id d’entité
DistinctRows = Table.Distinct(SortedRows, {"id"})
in
DistinctRows
Explication des Étapes de Filtrage
Tri par
updated_at
: Une fois les données chargées, le dataset est trié en ordre décroissant selon la colonneupdated_at
, ce qui garantit que la version la plus récente de chaque entité se trouve en premier.Conservation du Dernier État de Chaque Entité : En utilisant
Table.Distinct
sur les données triées, on garde uniquement la première occurrence de chaqueid
unique, correspondant à l’état le plus récent de chaque entité.
Ce processus aboutit à un dataset qui inclut uniquement le dernier état de chaque entité, facilitant l’analyse des données actuelles sans les entrées historiques.