PHPMem v2.0.1
Version
1.6.45
Uptime
18 days 3 hours 58 minutes 51 seconds
Memory
Total
512MB
Used
12,33MB (2.41%)
Free
499,67MB
Keys
Current
13 424
Total (since start)
40 994
Evictions
0
Reclaimed
762
Expired Unfetched
0
Evicted Unfetched
0
Connections
Current
3 / 1 024 max
Total
243 759
Rejected
0
llm:086fea8f66b07719356f20ddf8df584895dd69eccd7891bab1b2a265f55aaa8e
Edit
{
"action": "final",
"content": "**Short answer: there are very few exact duplicates, but a noticeable set of repeated keys (near-duplicates) in the three match-level fact tables.**\n\n**Exact (fully identical) duplicate rows**\n- `raw_kaggle`: 237,205 rows vs 237,203 distinct, so 2 fully duplicated rows.\n- `return_kaggle`: 237,196 rows vs 237,194 distinct, so 2 duplicates.\n- `serve_kaggle`: 237,185 rows vs 237,183 distinct, so 2 duplicates.\n- `players_tournament_man_` (6,422 rows) and `players_man_` (462 rows) have no duplicates; every row is distinct.\n\nThese exact duplicates are negligible (about 0.001% of each table).\n\n**Near-duplicates: repeated match keys**\nThe three fact tables are meant to have one row per player per match (Name, Date, Tournament, Rd). Checking that key shows rows that repeat it:\n- `raw_kaggle`: 1,250 extra rows beyond the first on the key.\n- `return_kaggle`: 1,251 extra rows.\n- `serve_kaggle`: 1,250 extra rows.\n- `players_tournament_man_`: 0 extra rows on (name, year, tournament), so its key is clean.\n\nMost of these 1,250 extra rows are not exact copies, since only 2 rows per table are fully identical. They share a key but differ in at least one value. Likely causes are:\n- the same player meeting the same opponent twice in the same round of a tournament on the same date, or\n- a data-entry or scrape variant of the same match.\n\nI did not inspect these rows to tell which cause applies, so that remains unconfirmed.\n\n**Bottom line**\nThe dimension tables are clean. The fact tables have only about 2 exact duplicate rows each, which can be safely dropped. About 1,250 rows per table (roughly 0.5%) repeat the match key with differing values. Before modelling or aggregating by player-match, review them and either deduplicate or add a disambiguating field. The three tables are consistent with each other, with nearly identical counts of extra rows."
}