Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/metrics global endpoints #370

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

marthevienne
Copy link
Collaborator

Hello @rv2931

J'ai corrigé les endpoints que j'avais créé (category optionnel) mais j'ai des données complètement aberrantes pour la fonction get_vessels_activity_in_zones... Pourtant, quand je teste sur la BDD en pur SQL, c'est ok.

Capture d’écran 2024-12-16 à 11 54 24 AM

@marthevienne
Copy link
Collaborator Author

@rv2931, si tu peux checker avant jeudi, ce serait cool :) On garde les endpoints actuels pour jeudi 19 si pas possible

@marthevienne marthevienne requested a review from rv2931 December 17, 2024 17:09
@rv2931
Copy link
Collaborator

rv2931 commented Dec 17, 2024

Et si tu mets no_cache a true t'as un résultat différent ?

@rv2931
Copy link
Collaborator

rv2931 commented Dec 17, 2024

La requêtes passées dans les fait est celle-ci:

SELECT dim_vessel.id, dim_vessel.mmsi, dim_vessel.ship_name, dim_vessel.width, dim_vessel.length, dim_vessel.country_iso3, dim_vessel.type, dim_vessel.imo, dim_vessel.cfr, dim_vessel.external_marking, dim_vessel.ircs, dim_vessel.tracking_activated, dim_vessel.tracking_status, dim_vessel.home_port_id, dim_vessel.details, dim_vessel."check", dim_vessel.length_class, dim_vessel.created_at, dim_vessel.updated_at, sum(fct_metrics.duration_total) AS total_time_in_zones 
FROM fct_metrics
LEFT OUTER JOIN dim_vessel ON fct_metrics.vessel_id = dim_vessel.id, dim_zone 
WHERE fct_metrics.timestamp BETWEEN '2024-06-10 19:44:05.199640' AND '2024-12-17 19:44:05.199683' AND dim_zone.category = 'amp'
GROUP BY dim_vessel.id, dim_vessel.mmsi, dim_vessel.ship_name, dim_vessel.width, dim_vessel.length, dim_vessel.country_iso3, dim_vessel.type, dim_vessel.imo, dim_vessel.cfr, dim_vessel.external_marking, dim_vessel.ircs, dim_vessel.tracking_activated, dim_vessel.tracking_status, dim_vessel.home_port_id, dim_vessel.details, dim_vessel."check", dim_vessel.length_class, dim_vessel.created_at, dim_vessel.updated_at
ORDER BY total_time_in_zones DESC
 LIMIT 100 OFFSET 0

Je persiste à trouver bizarre LEFT OUTER JOIN dim_vessel ON fct_metrics.vessel_id = dim_vessel.id et en plus suivi de dim_zone sans que le join soit explicitement fait sur Metrics.zone_id....
Je propose une correction avec un nouveau commit, tu me dis si ça fonctionne mieux
Moi j'ai plus de stats j'ai tout supprimé

@rv2931
Copy link
Collaborator

rv2931 commented Dec 17, 2024

Avec mon commit la requêtes devient :

SELECT dim_vessel.id, dim_vessel.mmsi, dim_vessel.ship_name, dim_vessel.width, dim_vessel.length, dim_vessel.country_iso3, dim_vessel.type, dim_vessel.imo, dim_vessel.cfr, dim_vessel.external_marking, dim_vessel.ircs, dim_vessel.tracking_activated, dim_vessel.tracking_status, dim_vessel.home_port_id, dim_vessel.details, dim_vessel."check", dim_vessel.length_class, dim_vessel.created_at, dim_vessel.updated_at, sum(fct_metrics.duration_total) AS total_time_in_zones 
FROM fct_metrics
JOIN dim_vessel ON fct_metrics.vessel_id = dim_vessel.id
JOIN dim_zone ON fct_metrics.zone_id = dim_zone.id 
WHERE fct_metrics.timestamp BETWEEN '2024-06-10 19:44:05.199640' AND '2024-12-17 19:44:05.199683' AND dim_zone.category = 'amp' 
GROUP BY dim_vessel.id, dim_vessel.mmsi, dim_vessel.ship_name, dim_vessel.width, dim_vessel.length, dim_vessel.country_iso3, dim_vessel.type, dim_vessel.imo, dim_vessel.cfr, dim_vessel.external_marking, dim_vessel.ircs, dim_vessel.tracking_activated, dim_vessel.tracking_status, dim_vessel.home_port_id, dim_vessel.details, dim_vessel."check", dim_vessel.length_class, dim_vessel.created_at, dim_vessel.updated_at
ORDER BY total_time_in_zones DESC
 LIMIT 100 OFFSET 0

Je connais pas assez les left outer et autre mais dans tous les cas, cette dernière requête me semble avoir plus de sens
A valider donc avec des données en base
PS: pour afficher la requête effectivement passée j'ajoute une ligne print(stmt.compile(compile_kwargs={"literal_binds": True}))

@rv2931 rv2931 force-pushed the feat/metrics_activity_in_mpas branch from 9eacd43 to 1d14696 Compare December 17, 2024 20:01
@rv2931
Copy link
Collaborator

rv2931 commented Dec 17, 2024

Accessoirement j'ai fait un rebase sur ta branche. tu vas avoir un message qui te dit que ta branche est divergeante avec la branche distante
Pour te resynchroniser tu peux faire :

  • git checkout feat/metrics_activity_in_mpas
  • git rebase origin/feat/metrics_activity_in_mpas (étant donné qu'au final c'est la même branche et les même commit mais appliqué à partir du main, git va détecter et échapper tous les commits déjà existants dans l'autre branche, donc tous les commits si tu n'as pas fait d'autres commits entre temps sur ta branche. Et au final se retrouver au meme endroit que la branche rebased)

@rv2931 rv2931 force-pushed the feat/metrics_activity_in_mpas branch from 1d14696 to c7e5456 Compare December 23, 2024 22:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants