User Tools

Site Tools


v4_meta_data_db

Meta Data DB

FIXME das ist noch ein Schmierzettel für Gedanken

Beschreibung des aktuellen Prototypen

Schnittstellenbeschreibung zur Systemseite

Aktuell ist eine Schnittstelle mittels jrpc implementiert (Socketverbindung, Beispiel für client auch im git). Alternativen können einfach an den db_connector der Wahl gehängt werden und erlauben einen schnellen Wechsel der systemseitigen Verbindungsmöglichkeit. Es stehen zur Auswahl:

echo

Gibt die Eingabe zurück.

upsert

  • in: feed_id, prod_id, payload, (timestamp)

Die feed_id gibt die Tabelle an. Dort wird überprüft, ob es bereits einen Eintrag mit der prod_id gibt. Wenn Ja wird die payload verglichen, bei gleicher payload wird nichts weiter unternommen. Bei Änderungen an der payload oder wenn die prod_id neu ist wird der neue Datensatz in die DB aufgenommen.

  • out: tbd erstmal die Rückgaben der db, muss aber noch vereinheitlicht werden für den Betrieb

get_changes_to_HEAD

  • in: feed_id, (from_time <seconds since epoche>, prod_ids <[]> {nur zu diesen prod_ids gibt es den aktuellen Stand})

Es wird aus dem angegebenen Feed die aktuellste Version von jeder prod_id zurück gegeben, wenn es Änderungen seit from_time gegeben hat. Wenn from_time nicht angegeben wird gibt es einen vollen Export, da dann von Beginn an gesucht wird. Suche kann mit prod_ids eingeschränkt werden.

Datenbankanbindung

Mittels db_connector wird eine Datenbank angebunden. Aktuell gibt es einen connector für die TinyDB. Für den Produktiveinsatz ist die nicht geeignet, aber um den neuen Streambasierten feed_import zu erproben ist es eine einfache und leichtgewichtige Wahl ohne unnötige Komplexität. Alternative Datenbanken lassen sich mittels eigenem db_connector einbinden.

:!: Idee: “db”_connector auf Dateiebene bauen für das Plus an Geschwindigkeit, da sich vieles auf sequentielles Lesen zurückführen lässt.

Archiv

Verwendete Komponenten:

  • Import/Splitter
  • Exporter

Übersicht: Die MetaDB speichert für jedes Produkt eine Historie an Daten. Über eine Konfiguration lässt sich per Feed einstellen, wie lange veraltete MetaDaten aufbewahrt werden sollen.

API:

  • push(ProductInformation, date=None) → status
  • query(feed_id, product_id, version=None) → ProductInformation
  • history(feed_id, product_id) → list of versions that are available for the specified product

Ideen:

v4_meta_data_db.txt · Last modified: 2024/04/11 14:23 by 127.0.0.1