epg 2 mysql/mariadb - inhaltliche frage zu den epg daten selbst.

  • Ggf. Falscher Forum Bereich?



    Moin an alle :)


    meine DB läuft voll.


    Vorwort:

    • seit 8 Jahren läuft mein Raspberry PI 2 mit einem vdr via rasbian (und so alt ist auch etwa das OS (Raspbian GNU/Linux 9.11 (stretch))
    • seit 5 jahren ist dieser auch nicht mehr neu gestartet worden (was früher öfters durch stromausfälle geschehen ist)
    • der vdr wird aber je job-lage (aufnahme vorhanden? ja: 10min vorher starten etc) automatisch abgeschaltet um strom zu sparen
    • In diesen 8Jahren sind eine menge epg daten angefallen die alle 12h durch ein script eine mysql datanbank füttern. mysql, nun mariadb und die magische grenze der 10Mio Einträge (einer MyISAM tabelle) wurde auf 15Mio. bereits überschritten und das merke ich derzeit extrem. ~6GB db/1GB indexes (testweise als InnoDB: 18GB auf test rechner)
      Aufgetaucht weil die Backups extrem lange dauern. (Alter Server und primär der Backup Server und Datenhalter. Einen fehlenden Index zu setzten dauert weit über 20h wenn überhaupt möglich. Kummerkasten alte Hardware die ihren Dienst sonnst sehr gut tut :) )
    • Aufgrund der Datenmenge muss ich wohl die DB besser durch normalisieren und teile auslagern um die Datengrösse zu limitieren als auch ggf. mehr Geschwindigkeit beim lesen zu erhalten. Und da habe ich vermutlich Fehler dabei oder vielleicht mangelnde Informationen!?


    Aus diese Quelle habe ich einen Parser geschrieben:
    http://www.vdr-wiki.de/wiki/index.php/Epg.data

    welcher dann daraus Felder zu einer mysql tabelle macht und die Daten schreibt.

    Roh! Datenstromart oder ähnliches wurde nicht weiter übersetzt.


    Ich habe vermutlich ein defizit im PRIMAY key der Datensätze.
    Oder besser als Frage:

    Was ist bei den EPG Daten die primäre Kennung um einen Eintrag eindeutig identifizieren zu können?
    Diese werden bei mir aktualisiert da es ja immer wieder mal (z.b) Zeitverschiebungen gibt (z.b. durch Sondermeldungen von Nachrichten etc.) und ich vermute hier einen Fehler.


    Frage: C (channel id) und E (event id) = primäre Kennung ?


    Macht jemand das auch? Wie sieht es bei dir dann aus? Mir fehlen Vergleichswerte irgendwie. Ich würde gern jeden Eintrag speichern und soweit es geht unique halten aber zeitverschiebungen aktualisieren (sofern möglich).


    P.s: plugins, wie ich gerade sehe das es sie gibt, wie epgfixer o.ä. habe ich nicht. Was könnte Sinn machen?


    Danke für Infos! VG Florian

    Community Doks: https://vdr-projects.github.io/


  • Dumme Frage, warum löschst du nicht die DB, baust sie neu auf und liest Die aktuellen Daten aus dem DVB stream neu ein? Sind die alten Daten so wichtig?

    :vdr1 VDR User #626:fans
    VDR II: YeongYang A106, Fusi D1522, Celeron 2GHz, Frontend per DVB-s FF, 2xDVB-c, ATRIC-IR, YaVDR 0.3a
    VDR III HDTV: Inter-Tech 2008V mit iMonLCD, Atric, ASRock Extreme3 770 AM3, AMD Sempron 140 1x 2.70GHz AM3, 1,5TB WD15EADS, 2TB WD20EARS, 2x4GB DDR3-1600, NVidia GT520 passiv, 3x DVB-c, YaVDR 0.5 @ Samsung PS-50B550

  • Dumme Frage, warum löschst du nicht die DB, baust sie neu auf und liest Die aktuellen Daten aus dem DVB stream neu ein? Sind die alten Daten so wichtig?

    Danke für Antwort.


    Ich kann die DB nur neu aufbauen wenn ich es anders machen würde.

    Ich hinterfrage es ja gerade und Bitte um rat falls ich falsch liege. bzgl der primären Kennung


    Mir fehlt ggf. der richtige Hinweis oder ich mache es bereits richtig außer das man bei steigenden Daten besser skalieren/ normalisieren muss.
    Das ist aber aktuell kein Struktur Problem sondern ein Dimensionierungsproblem das ich nicht zeitnah beachtet habe ... und 'schwupp' sind ein paar Jahre rum. Und wer mysql kennt, kennt auch seine Tücken bei großen Datenmengen. Die DB macht mir aber keine Sorgen. Auch wenn es wegen alter Hardware dann halt dauert (manchmal Tage!). Und bisher bin ich ohne Anwendungslogik ausgekommen.
    Ausserdem wollte ich die DB Bremse, von der ich wusste das es sie gibt, auch mal erleben. Naja, schon zig fach erlebt. Aber immer auf modernster Hardware wo dann auch schnell gehandelt wird ;)


    Warum Daten Sammeln?:

    - Weil man es kann :)

    - Weil manchmal die Zeitreise auf gewisse Fragestellungen hier recht interessant werden kann.

    - Manchmal auch einfach nur: Wann lief der Film XY zum ersten mal im Free TV, Wann bei den Öffis...

    - Lief der Film und warum hat der Timer das nicht mitbekommen. Etc..

    - Wie oft spielt der Sender/ Provider mit seinen Kanälen. S k Y ist da ja ganz weit vorn :D


    VG Florian

    Community Doks: https://vdr-projects.github.io/


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!