Mein Ziel ist es, mit Drupal 7 eine schnelle, zuverlässige und automatisierte Methode für den Zugriff auf schreibgeschützte Daten in mehreren sehr großen Flat-File-Datenquellen ( CSVs , Dokumente mit fester Breite und XML-Dokumente) zu erstellen, die mit Views 3 abgefragt werden können Modul. Ich würde es vorziehen, bereits verfügbare Module zu verwenden, aber das Erstellen eines benutzerdefinierten Moduls ist auch eine Option.
Um Module und Methoden auszuschließen, die für die Aufgabe nicht geeignet sind, finden Sie hier die Statistiken zu den Dateien, mit denen ich arbeite:
- Jährlicher Import: 8.500.000 Zeilen CSV Datei. (Jährlich gelöscht und neu geladen. Hat Primärschlüssel.)
- Wöchentlicher Import: Datei mit 350.000 Zeilen fester Breite. (Wöchentlich gelöscht und neu geladen. Kein Primärschlüssel .)
- Stündlicher Import: 3.400 Zeilen CSV Datei. (Möchte so oft wie möglich aktualisieren und synchronisieren, jedoch nicht mehr als alle 20 Minuten. Hat Primärschlüssel)
- Täglicher Import: XML-Datei mit 200 Elementen. (Täglich geleert und neu geladen. Hat Primärschlüssel)
Das Konvertieren zwischen den drei Formaten ist kein Problem und kann durchgeführt werden, wenn dadurch die Importleistung verbessert oder bessere Tools verfügbar gemacht werden. ( AWK für feste Breite zu CSV usw.) Die Automatisierung des Abrufs und der Konvertierung ist über Cron- und Sh- Skripte einfach , muss jedoch die Drupal 7-Integration noch automatisieren. Die Verwendung von benutzerdefinierten Tabellen ist auch möglich, solange vews die Daten mithilfe von Beziehungen referenzieren kann.
Was wäre die beste Vorgehensweise, um diese Art der Datenintegration mit Drupal 7 durchzuführen? Lasse ich auch wichtige Details zu den Daten aus oder was versuche ich zu erreichen?
Hier sind einige Projekte, an denen ich gerade arbeite, um eine Lösung zu finden. Ich möchte dies erweitern, um anderen bei der Entscheidung zu helfen, welchen Weg sie bei der Arbeit mit größeren Datenimporten einschlagen müssen.
Daten in Knoten importieren:
- Feeds (Derzeit Alpha für D7)
Feeds importieren die Daten zuverlässig. Die Geschwindigkeit ist für die kleineren Datenquellen angemessen, für die 300k + -Tabellen jedoch zu langsam.
Automatisierung über cron und Job Scheduler möglich (aktuell Alpha für D7).
Das Fehlen eines Index oder eines eindeutigen Schlüssels in den Quelldaten erschwert die Verwendung. Es ist schneller als Feeds, aber dennoch langsam, um die sehr großen Tabellen zu importieren.
Die Automatisierung erfolgt über drush und cron.
Benutzerdefinierte Tabellen anstelle von Knoten
- Datenmodul (derzeit Alpha für D7)
Das Datenmodul sieht sehr vielversprechend aus, ist aber im Moment für D7 sehr fehlerhaft. Die Anforderungen an die Automatisierung und die Importgeschwindigkeit können mithilfe von Daten problemlos erfüllt werden, die Zuverlässigkeit ist jedoch unzureichend. Die Views-Integration (Link ist für D6) sieht sehr vielversprechend aus.
- Tabellenassistent (Nicht verfügbar für D7)
Dies wurde als Referenz hinzugefügt. Derzeit gibt es keinen D7-Kandidaten, er könnte jedoch als Ausgangspunkt für ein benutzerdefiniertes Modul dienen.
- Views Schema (Verlassen, nur D6)
Dies wurde als Referenz hinzugefügt. Dies scheint vom Tabellenassistenten in Drupal 6 übernommen worden zu sein.
- Importer (RC2 für D7)
Scheint den Tabellenassistenten (nur D6) für die Views- Integration zu benötigen . Als Referenz hinzugefügt, erfüllt aber nicht die Anforderungen für Ansichten.
@MPD - "Benutzerdefinierte Tabellen" als mögliche Lösung hinzugefügt und Module erweitert. Vielen Dank für diesen Zusatz.