From 3ef595e19559e7240f64862e9c435bec1552703f Mon Sep 17 00:00:00 2001 From: Evann Regnault Date: Fri, 31 May 2024 02:04:24 +0200 Subject: [PATCH] omg la ram --- drivers/elastic.py | 52 ++++++++++++++++++++++++++++- drivers/psql.py | 29 +++++++++++++++- interfaces/db_testing_interface.py | 12 ++++++- plot.png | Bin 0 -> 66777 bytes 4 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 plot.png diff --git a/drivers/elastic.py b/drivers/elastic.py index b9863d2..055e55b 100644 --- a/drivers/elastic.py +++ b/drivers/elastic.py @@ -112,4 +112,54 @@ class Elastic_Testing(DB_Testing): } } } - return f"Got {driver.search(index=INDEX, body=query).body['aggregations']['attachment_count']['value']}" \ No newline at end of file + return f"Got {driver.search(index=INDEX, body=query).body['aggregations']['attachment_count']['value']}" + + def update_add_replies_per_last_name(self, driver: Elasticsearch) -> str: + agg_query = { + "size": 0, + "aggs": { + "reply_count_by_last_name": { + "terms": { + "script": { + "source": "String name = doc['sender_name.keyword'].value; String[] parts = /\\s+/.split(name); return parts[parts.length - 1]", + "lang": "painless" + }, + "size": 1000 + }, + "aggs": { + "total_reply_count": { + "sum": { + "field": "reply_count" + } + } + } + } + } + } + + agg_results = driver.search(index=INDEX, body=agg_query) + + buckets = agg_results['aggregations']['reply_count_by_last_name']['buckets'] + reply_counts = {bucket['key']: bucket['total_reply_count']['value'] for bucket in buckets} + + update_query = { + "script": { + "source": """ + String name = ctx._source.sender_name; + String[] parts = /\\s+/.split(name); + String lastName = parts[parts.length - 1]; + if (params.replyCounts.containsKey(lastName)) { + ctx._source.total_reply_count = params.replyCounts.get(lastName); + } + """, + "lang": "painless", + "params": { + "replyCounts": reply_counts + } + }, + "query": { + "match_all": {} + } + } + + driver.update_by_query(index=INDEX, body=update_query, conflicts="proceed") \ No newline at end of file diff --git a/drivers/psql.py b/drivers/psql.py index 30e9b78..0ffe969 100644 --- a/drivers/psql.py +++ b/drivers/psql.py @@ -29,6 +29,8 @@ class PSQL_Thread(Data_Thread): class PSQL_Testing(DB_Testing): driver_name = "PSQL" + + def __init__(self) -> None: super().__init__() self.data = [PSQL_Thread(x) for x in Threads] @@ -109,4 +111,29 @@ class PSQL_Testing(DB_Testing): cursor.execute(searchQuery) driver.commit() return f"Got {cursor.fetchone()[0]}" - \ No newline at end of file + + def update_add_replies_per_last_name(self, driver: connection) -> str: + cursor = driver.cursor() + alterQuery = """ + ALTER TABLE thread ADD COLUMN last_name_replies INT; + """ + updateQuery = """ + WITH last_name_sums AS ( + SELECT + recipient_name, + SUM(reply_count) OVER (PARTITION BY SPLIT_PART(recipient_name, ' ', -1)) AS total_replies + FROM + thread + ) + UPDATE thread AS t + SET last_name_replies = ln_sums.total_replies + FROM last_name_sums AS ln_sums + WHERE t.recipient_name = ln_sums.recipient_name; + """ + unalterQuery = """ + ALTER TABLE thread DROP COLUMN last_name_replies; + """ + cursor.execute(alterQuery) + cursor.execute(updateQuery) + cursor.execute(unalterQuery) + driver.commit() \ No newline at end of file diff --git a/interfaces/db_testing_interface.py b/interfaces/db_testing_interface.py index 17a1b12..02019c6 100644 --- a/interfaces/db_testing_interface.py +++ b/interfaces/db_testing_interface.py @@ -5,7 +5,7 @@ from utils.utils import time_func from time import sleep T = TypeVar('T') -NUM_RUNS = 10000 +NUM_RUNS = 10 class DB_Testing(Generic[T]): driver_name: str @@ -50,6 +50,10 @@ class DB_Testing(Generic[T]): def get_sum_attachment_less_5(self, driver: T) -> str: pass + @abstractmethod + def update_add_replies_per_last_name(self, driver: T) -> str: + pass + def do_tests(self, driver: T) -> Dict[str, float]: stats = {} @@ -63,9 +67,15 @@ class DB_Testing(Generic[T]): sleep(1) # To wait for any indexing to avoid race conditions somehow # Multiple + + # Search stats.update(time_func(f"[{self.driver_name}] Count mails with more than 5 attachments and Mr/Mrs", "attach5_mr_mrs", lambda : self.attach5_mr_mrs(driver), NUM_RUNS)) stats.update(time_func(f"[{self.driver_name}] Sum the number of attachment from mail that have less than 5 attachments", "get_sum_attachment_less_5", lambda : self.get_sum_attachment_less_5(driver), NUM_RUNS)) stats.update(time_func(f"[{self.driver_name}] Count mails that have a lorem sentence", "search_lorem", lambda : self.search_lorem(driver), NUM_RUNS)) stats.update(time_func(f"[{self.driver_name}] Count mails that have a mail that ends with microsoft.com", "search_mails_ends_microsoftcom", lambda : self.search_mails_ends_microsoftcom(driver), NUM_RUNS)) + + # Update + stats.update(time_func(f"[{self.driver_name}] Update all thread to add a field with the total replies per last name", "update_add_replies_per_last_name", lambda : self.update_add_replies_per_last_name(driver), NUM_RUNS)) + print("\n") return stats \ No newline at end of file diff --git a/plot.png b/plot.png new file mode 100644 index 0000000000000000000000000000000000000000..481814eabfdcb153b182c93446755fc901d832f3 GIT binary patch literal 66777 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

sR@!c9l#k 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