From 6891fb3a11f1d89cd10fbb2088db3df8e1c9acd0 Mon Sep 17 00:00:00 2001 From: Abdallah Terrab Date: Wed, 6 Sep 2023 21:16:44 +0200 Subject: [PATCH 1/2] perf/ dao query updated Signed-off-by: Abdallah Terrab --- api/src/main/java/marquez/db/JobDao.java | 70 ++++++++++++++++++------ 1 file changed, 53 insertions(+), 17 deletions(-) diff --git a/api/src/main/java/marquez/db/JobDao.java b/api/src/main/java/marquez/db/JobDao.java index 062bba9ded..f0f72a6ba4 100644 --- a/api/src/main/java/marquez/db/JobDao.java +++ b/api/src/main/java/marquez/db/JobDao.java @@ -125,23 +125,59 @@ default Optional findWithRun(String namespaceName, String jobName) { @SqlQuery( """ - SELECT j.*, f.facets - FROM jobs_view AS j - LEFT OUTER JOIN job_versions AS jv ON jv.uuid = j.current_version_uuid - LEFT OUTER JOIN ( - SELECT run_uuid, JSON_AGG(e.facet) AS facets - FROM ( - SELECT jf.run_uuid, jf.facet - FROM job_facets_view AS jf - INNER JOIN job_versions jv2 ON jv2.latest_run_uuid=jf.run_uuid - INNER JOIN jobs_view j2 ON j2.current_version_uuid=jv2.uuid - WHERE j2.namespace_name=:namespaceName - ORDER BY lineage_event_time ASC - ) e - GROUP BY e.run_uuid - ) f ON f.run_uuid=jv.latest_run_uuid - WHERE j.namespace_name = :namespaceName - ORDER BY j.name LIMIT :limit OFFSET :offset + WITH jobs_view_page + AS ( + SELECT + * + FROM + jobs_view AS j + WHERE + j.namespace_name = :namespaceName + ORDER BY + j.name + LIMIT + :limit + OFFSET + :offset + ), + job_versions_temp AS ( + SELECT + * + FROM + job_versions AS j + WHERE + j.namespace_name = :namespaceName + ), + facets_temp AS ( + SELECT + run_uuid, + JSON_AGG(e.facet) AS facets + FROM ( + SELECT + jf.run_uuid, + jf.facet + FROM + job_facets_view AS jf + INNER JOIN job_versions_temp jv2 + ON jv2.latest_run_uuid = jf.run_uuid + INNER JOIN jobs_view_page j2 + ON j2.current_version_uuid = jv2.uuid + ORDER BY + lineage_event_time ASC + ) e + GROUP BY e.run_uuid + ) + SELECT + j.*, + f.facets + FROM + jobs_view_page AS j + LEFT OUTER JOIN job_versions_temp AS jv + ON jv.uuid = j.current_version_uuid + LEFT OUTER JOIN facets_temp AS f + ON f.run_uuid = jv.latest_run_uuid + ORDER BY + j.name """) List findAll(String namespaceName, int limit, int offset); From 0db03bcf57ddbe54526dfcbf9a1b4c9c4eea697e Mon Sep 17 00:00:00 2001 From: Abdallah Terrab Date: Wed, 6 Sep 2023 21:31:06 +0200 Subject: [PATCH 2/2] ./gradlew spotlessJavaCheck Signed-off-by: Abdallah Terrab --- api/src/main/java/marquez/db/JobDao.java | 32 ++++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/api/src/main/java/marquez/db/JobDao.java b/api/src/main/java/marquez/db/JobDao.java index f0f72a6ba4..7d9378c2dd 100644 --- a/api/src/main/java/marquez/db/JobDao.java +++ b/api/src/main/java/marquez/db/JobDao.java @@ -129,50 +129,50 @@ default Optional findWithRun(String namespaceName, String jobName) { AS ( SELECT * - FROM + FROM jobs_view AS j - WHERE + WHERE j.namespace_name = :namespaceName ORDER BY j.name - LIMIT + LIMIT :limit - OFFSET + OFFSET :offset ), job_versions_temp AS ( - SELECT + SELECT * - FROM + FROM job_versions AS j - WHERE + WHERE j.namespace_name = :namespaceName ), facets_temp AS ( - SELECT + SELECT run_uuid, JSON_AGG(e.facet) AS facets FROM ( - SELECT + SELECT jf.run_uuid, jf.facet - FROM + FROM job_facets_view AS jf - INNER JOIN job_versions_temp jv2 + INNER JOIN job_versions_temp jv2 ON jv2.latest_run_uuid = jf.run_uuid - INNER JOIN jobs_view_page j2 + INNER JOIN jobs_view_page j2 ON j2.current_version_uuid = jv2.uuid - ORDER BY + ORDER BY lineage_event_time ASC ) e GROUP BY e.run_uuid ) - SELECT + SELECT j.*, f.facets - FROM + FROM jobs_view_page AS j - LEFT OUTER JOIN job_versions_temp AS jv + LEFT OUTER JOIN job_versions_temp AS jv ON jv.uuid = j.current_version_uuid LEFT OUTER JOIN facets_temp AS f ON f.run_uuid = jv.latest_run_uuid