Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Datenabgleich

Eingetragen von benny1979 (119)
am 11.07.2012 - 14:22 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x oder neuer

Hallo,

ich habe eine CSV Liste mit Daten, die ich regelmäßig mit Drupal abgleichen muß. Mein Modul liest die Datei per Drupal-Batch ein und führt ein node_save aus Performance-Gründen nur dann durch, wenn sich die Daten wirklich geändert haben.

Die Frage ist, wie lösche ich am effizientesten die Datensätze, die noch als Drupal-Node existieren, aber nicht mehr in der CSV Datei enthalten sind?
Im Moment fällt mir nur folgendes ein:

1. Den Primärschlüssel (findet sich auch bei jedem CSV-Datensatz, z.B. eine Artikel-Nr.) aller existierenden Nodes in ein Array einlesen, dieses in der Session speichern und während des Batch-Abgleiches die Einträge aus dem Array löschen, die noch in der CSV enthalten sind. Nach dem Import dann die übriggebliebenen Nodes im Array per node_delete löschen. Der Nachteil dabei ist, dass je nach Anzahl der Nodes das Array sehr groß werden kann und dieses Array erst einmal aufgebaut werden muß. Ich habe teilweise CSV Dateien mit über 1 Mio. Datensätzen.

2. Vor dem Update ein Flag in jeder Node auf 0 setzen und beim Update auf 1. Wenn eine Node dann nach dem Update-Batch das Flag noch auf 0 hat, dann muß sie gelöscht werden. Das Problem ist hier, daß ich wirklich jede Node bis zu zweimal updaten muß und node_save braucht schon seine Zeit.

Danke!
Benny

‹ Overlay Kommentarproblem SQL - Abfrage Join mit multivalue field ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du könntest auch vor dem

Eingetragen von SteffenR@drupal.org (2262)
am 11.07.2012 - 17:01 Uhr

Du könntest auch vor dem Import-Vorgang alle Nodes im System (die vom Import betroffen sind) auf unveröffentlicht setzen und diese dann während des Imports wieder "veröffentlichen" - die Veröffentlichung eines Nodes braucht ja kein node_save / node_load - hier würde ja eine einfaches Datenbank-Update auf das Status-Feld genügen..

Am Ende der Aktion kannst du dann alle "nicht veröffentlichten" Nodes löschen..

SteffenR

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Tagen 11 Stunden
  • Hey danke
    vor 3 Tagen 5 Stunden
  • Update: jetzt gibt's ein
    vor 3 Tagen 23 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 1 Tag
  • Da scheint die Terminologie
    vor 1 Woche 1 Tag
  • Kannst doch auch alles direkt
    vor 1 Woche 5 Tagen
  • In der entsprechenden View
    vor 1 Woche 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 5 Tagen
  • gelöst
    vor 4 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 13 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association