Datenbankabfrage bei Update

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
mirko3107
User
Beiträge: 75
Registriert: Freitag 23. April 2021, 15:42

Hi,

ich schreibe per sqlalchemy und pandas regelmäßig Dataframes in eine Datenbank (mariadb) und lese diese dann in einem anderen
Script wieder aus (streamlit).

Wie kann es hinbekommen, dass das auslesende Programm ein Datenbankupdate mitbekommt? Quasi auslesen, sobald die ein neues Dataframe
in die Datenbank geflossen ist.

Danke
nezzcarth
User
Beiträge: 1632
Registriert: Samstag 16. April 2011, 12:47

Muss es mariadb sein oder ginge auch Postgres? Postgres hat Features (z.B.NOTIFY), mit denen man sowas direkt von der Datenbank aus machen kann. Ansonsten muss man etwas kreativer werden, geht aber sicher auch.
mirko3107
User
Beiträge: 75
Registriert: Freitag 23. April 2021, 15:42

MariaDB wäre gut, sonst müsste ich hier alles umstellen
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

mirko3107
User
Beiträge: 75
Registriert: Freitag 23. April 2021, 15:42

Ok, wenn das doch so kompliziert ist, bleib ich dabei und schreib bei jedem Datenbank-Update etwas in eine Datei und frage dann in streamlit den Timestamp der Datei ab
LukeNukem
User
Beiträge: 232
Registriert: Mittwoch 19. Mai 2021, 03:40

mirko3107 hat geschrieben: Montag 23. Januar 2023, 17:00 Ok, wenn das doch so kompliziert ist, bleib ich dabei und schreib bei jedem Datenbank-Update etwas in eine Datei und frage dann in streamlit den Timestamp der Datei ab
Wenn Du ohnehin in eine Datenbank schreibst, kannst Du Deinen Timestamp doch auch dort ablegen?
mirko3107
User
Beiträge: 75
Registriert: Freitag 23. April 2021, 15:42

Klar, aber wie bekommt ein Client mit, dass dieser upgedatet wurde?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Kann streamlit nicht einfach in die DB schauen?
Benutzeravatar
DeaD_EyE
User
Beiträge: 1012
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Der Client könnte z.B. nach jedem Query in eine Tabelle schreiben, wo er als Letztes gewesen ist. Der Client (Server ) muss dann die DB pollen und die neuen Datensätze dem UI zuweisen. Ggf. kann redis auch behilflich sein, Updates zu pushen.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten