Berichte aus dem Maschinenraum: Der Metadata-Tagger

Dreht sich der Großteil unserer Artikel um Themen, die unsere Kunden:innen direkt betreffen, so wollen wir in diesem Beitrag auch einmal einen technischen Aspekt unserer Software beleuchten.

Jeden Tag werden um die 4.000 Fotos, 300 PDFs und 120 Audiodateien von unseren Kund:innen in docu tools eingespielt, um den Zustand ihrer Projekte genauer festzuhalten. Es ist natürlich eines der Ziele unseres Services, diese Daten für alle Involvierten möglichst nutzbar aufzubereiten, und so zugänglich wie möglich zu Verfügung zu stellen. Wie das am Besten geschieht wird von unseren UI/UX Expert:innen in Absprache mit den Nutzer:innen geplant, und dann von uns Entwickler:innen in mehreren Arbeitszyklen umgesetzt.

Manchmal fokussieren sich Teile des Entwicklungsteam aber auch auf Aufgaben, die nicht direkt neue Funktionalitäten für Benutzer:innen darstellen, sondern für ein glatteres Zusammenspiel unserer vieler Services sorgen sollen. Eine dieser Verbesserungen ist der sogenannte "Metadata-Tagger" der von uns über diesen Sommer entwickelt wurde.

Bei jedem Softwareprojekt, das sowohl mit kleinen Daten - wie zum Beispiel Pin-Notizen - , wie auch mit großen Daten - wie Fotos - umgeht, ergibt sich das Problem, dass diese Daten getrennt aufbewahrt werden müssen, und es früher oder später dazu kommt, dass Information an beiden Aufbewahrungsorten gebraucht werden.

In dem Fall, der zu der Entwicklung des "Metadata-Tagger" führt, war das Problem, dass Informationen wie die Anzahl der Seiten in einem PDF oder die Größe eines Bildes nicht bei diesen Daten gespeichert und einfach verfügbar waren, sondern jedes Mal, wenn diese "Metadaten" benötigt waren - zum Beispiel bei der Berichtserstellung - sie heruntergeladen und Informationen aufs Neue berechnet werden mussten. Hier steht die gewonnene Information in keinem Verhältnis zu dem Aufwand, den jeder Service leisten muss. So mussten zum Beispiel, um die Seitenanzahl eines PDFs zu berechnen, zuerst 20MB heruntergeladen werden, dann ein Programm das Dokument analysieren, und im Anschluss das Dokument direkt wieder gelöscht werden - wertvolle Sekunden, nur um auf eine einzige Zahl zu kommen. Um hier unnötige Kosten und Wartezeiten zu vermeiden wurde von uns der "Metadata Tagger" entwickelt. Dieser Service hat zur Aufgabe, bei jedem neu hinzugefügten Medienobjekt - Bildern, Dokumenten, Datasets, ... - einmal eine Analyse über für uns interessante Daten durchzuführen, und diese dem Objekt in der Form von "Metadata Tags" hinzuzufügen. Diese "Tags" können aus dem Datenlager schnell abgerufen werden, und vermeiden so ein wiederholtes Verarbeiten des ganzen Dokumentes.

Da wir bei docu tools versuchen, Programme mit einem breiteren Einsatzzweck frei verfügbar zu machen, haben wir den Kern dieses Services öffentlich gemacht, und es ist nun jeder Person möglich, sich den Quellcode unter https://github.com/DDS-GmbH/s3-metadata-tagger-lib anzuschauen, und das Tool unter https://pypi.org/project/s3-metadata-tagger/ in eigene Projekte einzubinden. Bei uns ist das Programm bereits seit einem Monat im Einsatz und analysiert um die 300.000 Daten in der Woche. Sollten ihnen in letzter Zeit also aufgefallen sein, dass die Berichtserstellung ein klein wenig schneller von sich geht, so ist das diesem nützlichen Helfer zu danken!