HeadlinesBriefing favicon HeadlinesBriefing.com

Iceberg-Kompaktierung: 1000 auf 6, Auswirkung

Towards Data Science •
×

Wenn Sie mit großen analytischen Datensätzen arbeiten, die in Tabellenformaten wie Apache Iceberg gespeichert sind, gibt es ein bekanntes Problem, das als Problem kleiner Dateien bezeichnet wird. Dies tritt auf, wenn Daten in vielen winzigen Dateien geschrieben werden, anstatt in einer kleineren Anzahl angemessen großer Dateien. Dies erhöht den Metadaten-Overhead und kann die Abfrageplanung und -ausführung verlangsamen. Um dem entgegenzuwirken, wird ein Prozess namens Kompaktierung verwendet, der alle kleineren Dateien zu einer kleinen Anzahl größerer Dateien zusammenfasst.

Ich konzentriere mich auf Apache Iceberg, da es schnell zu einem der führenden offenen Tabellenformate für große analytische Daten wird. Wichtig ist, dass Iceberg die Kompaktierung zwar unterstützt, dies aber nicht automatisch für uns tut. Iceberg stellt die Prozedur rewrite_data_files bereit, aber wir als Systemadministratoren müssen diese Prozedur dennoch ausführen.

Wir erstellen eine Iceberg-Tabelle mit 50 Millionen Zeilen, die auf 1000 winzige Dateien verteilt sind. Diese Dateien bleiben unberührt, bis wir den Kompaktierungsbefehl ausführen. Wir messen drei SQL-Workloads vor und nach dem Umschreiben. Alles läuft lokal; Sie benötigen kein Cloud-Konto, Docker, einen Hadoop-Cluster oder einen kostenpflichtigen Dienst.