problém bych neřekl, že je v použité databázi, ale ve způsobu jak s ní pracuješ, jak s mariadb, tak i pgsql je možné mít tabulky i k TB, ale už to chce odejít z výchozího nastavení.
Pg umí od 9.x insert on conflict do nothing, stejně tak mariadb umí insert on duplicate key. V kombinaci s prepared statements a bulkem pro třeba 5000 values, zvedneš rychlost ukládání dat do db o dva řády (tj. cca 20000 insertů za vteřinu na jediné instanci při 10 paralelních dotazech a ve výchozím nastavení). Pg umí i dobře komprinovat data, takže ti ušetří místo na disku. Na webu najdeš řadu kalkulaček pro nastavení db podle množství dat a druhu práce.
Zkus ClickHouse, tenhle úkol by mohl zvládat ve výchozím nastavení a poměrně rychle, má pokročilé metody komprese dat a můžeš ušetřit i 80 % původní velikosti.
Pokud nepotřebuješ přímo databázi, mrkni třeba na formát dat Apache Parquet, dostupný je z řady programovacích jazyků, data umí velice efektivně deduplikovat, komprimovat. Rychle s tím lze pracovat třeba přes spark (python, scala, r), za pár desítek minut na středně silném stroji to máš uložené a zpracované.
Další možnost je jít do cloudu, pronajmout si na pár desítek minut nějakou databázi, tam data zpracovat a pak si je stáhnout zpracovaný a deduplikovaný, pokud teda to chceš jednorázově.