Anzeige:
Ergebnis 1 bis 5 von 5

Thema: postgreSQL in conflict

  1. #1
    Registrierter Benutzer Avatar von Huhn Hur Tu
    Registriert seit
    Nov 2003
    Ort
    Karlsruhe
    Beiträge
    1.951

    postgreSQL in conflict

    Hi,

    keine Linux Frage, aber bla bla jarre jarre sry

    Ich will die Datensaetze dreier PostgreDBs abgleichen.

    Konkret geht es um Grafana DB Instanzen und deren Datasources und Dashboards
    Die DS und Dashboards in der Liveinstanz sollen allen auch in QA und DEV verfuegbar sein.

    Hierfuer gibt es zwei Tabellen

    - datasource
    - dashboards

    Ich will nun in python die Daten in Live auslesen und Line per Line pruefen sind diese schon vorhanden, wenn nein mache ein insert und wenn ja mache ein update auf die Felder die sich unterscheiden. Alternativ koennte ich auch ein "on conflict do update" oder spaeter mit Postgre 9.5 "upsert" machen.

    Code:
    INSERT INTO users (id, level)
    VALUES (1, 0)
    ON CONFLICT (id) DO UPDATE
    SET level = users.level + 1;
    Ich haette bei der "on conflict" Variante jedoch immer ein update auf allen Tabellen.

    Mein Frage also, faellt euch etwas in SQL einwas weniger update Operationen hat wenn der Datensatz schon vorhanden ist.
    Ich streube mich etwas, das ganze in Pruefiterationen in python zu machen, da das etwas haesslich ist und bei Schemaaenderungen nur Aerger bringt

    Hintergrund des ganzen. Ich habe in den einzelnen Umgebungen je zwei Toolmaschinen u.A. mit Grafana drauf.
    in DEV und QA soll mit den Technologien rumgespielt werden und in dann in allen Stages identisch zur Verfuegung stehen, Test und Spiel Dashboards und Datasources sollen erhalten bleiben, deswegen kommt ein "dump restore" nicht in Frage.

    Gruss Stefan
    Zwischen anonym sein wollen und seine Daten nicht verkaufen wollen, liegen zwei Welten. Wenn man sich einen kostenpflichtigen Dienst sucht, dann meist, weil man für diese Dienstleistung zahlt und nicht selbst das Produkt sein will.


  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    20.528
    https://www.google.de/search?q=postgres+merge+tables liefert evtl. einige Ideen.

    Ggf. würde ich mir mal https://www.postgresql.org/message-i...sql-merge.html anschauen.

    Welche PostGreSQL-Version hast Du denn in Verwendung? Ggf. gibt es auch eine Variante über einen ded. Datenexport + Import über die verwendete Frontend-Software. Alternativ ein "brauchbares" Export-Format auswählen und dann die Exporte mergen und wieder importieren.
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer Avatar von Huhn Hur Tu
    Registriert seit
    Nov 2003
    Ort
    Karlsruhe
    Beiträge
    1.951
    Hm.. merge war eine gute Idee, aber erst nach 9.4.5 verfuegbar, die hab ich nicht, heul. upsert erst ab 9.5.

    Ich habe nur PG 9.4.4 zur Verfuegung.

    Ich kann aus der Live exportieren und in eine temporaere Tabelle importieren, dann fehlt noch der merge.

    Irgendwie vermisse ich hier ein "for each row update table1 set fuu, fuuu, fuuuu (select fuu, fuuu, fuuuu from table2)"
    Geändert von Huhn Hur Tu (25.08.17 um 12:24 Uhr)
    Zwischen anonym sein wollen und seine Daten nicht verkaufen wollen, liegen zwei Welten. Wenn man sich einen kostenpflichtigen Dienst sucht, dann meist, weil man für diese Dienstleistung zahlt und nicht selbst das Produkt sein will.


  4. #4
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.034
    Hab da jetzt nicht lange drüber nach gedacht, aber temp Tables können doch auch trigger, so könntest du dir relativ einfach dein foreach basteln, sollte dann aber wirklich nur eine temporäre Lösung sein, weil performant ist das nicht wirklich.
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  5. #5
    Registrierter Benutzer Avatar von Huhn Hur Tu
    Registriert seit
    Nov 2003
    Ort
    Karlsruhe
    Beiträge
    1.951
    Es geht hier um max 100 Eintraege, also Datasources und spaeter die Dashboards von Grafana
    Zwischen anonym sein wollen und seine Daten nicht verkaufen wollen, liegen zwei Welten. Wenn man sich einen kostenpflichtigen Dienst sucht, dann meist, weil man für diese Dienstleistung zahlt und nicht selbst das Produkt sein will.


Ähnliche Themen

  1. World in Conflict
    Von Woddi im Forum Dedizierte Spiele Server
    Antworten: 1
    Letzter Beitrag: 07.02.08, 14:29
  2. ata: conflict with ide0
    Von DrGonzo im Forum stationäre Hardware
    Antworten: 1
    Letzter Beitrag: 16.12.06, 22:01
  3. Antworten: 2
    Letzter Beitrag: 27.10.05, 10:46
  4. Conflict: FreeSpace
    Von Fatty im Forum Spielen Allgemein
    Antworten: 4
    Letzter Beitrag: 22.09.05, 00:04
  5. IRQ Routing conflict
    Von bullet4one im Forum Router und Netzaufbau
    Antworten: 1
    Letzter Beitrag: 25.04.04, 14:56

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •