Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Personenregister mit Drupal erstellen (große Datenmenge)

Eingetragen von personenregister (3)
am 04.08.2010 - 13:07 Uhr in
  • Allgemeines zu Drupal
  • Drupal 6.x

Hallo,

ich habe schon ein wenig gegoogelt und habe leider noch keine Lösung gefunden. Folgendes: Wir wollen ein Personenregister mithilfe von Drupal erzeugen. Eine geschlossene Nutzergruppe soll auf die Telenummern zurückgreifen können und diese auch unter Datenschutzgründen (daher Drupal, da hier sehr(!) gute Rechteverwaltung) sortieren können. Die Daten der Personen liegen als CSV-Datei (Nachname, Vorname, Telenummer, etc.) vor. Da der Schwerpunkt ausländische Mitbürger sind, können auch "nichteuropäische" Sonderzeichen vorkommen. Also, quasi ein riesiges großes Multikulti-Adressbuch ...

Meine Gedanken:
Ich importiere die CSV-Datei in Drupal und jeder Datensatz wird zu einem neuen Konto der Gruppe "Telebucheintrag". Mithilfe von Views und der Rechteverwaltung lässt sich so der Datenschutz problemlos einhalten. Auch können Daten leicht über die Admin-Oberfläche geändert werden. Nachteil: Doppelte Einträge können schlecht aufgespürt werden. Auch kann es zu Problemen bei einem erneuten Einlesen der CSV-Datei kommen, wenn Persondaten mit Drupal geändert wurden, aber in der CSV-Datei noch als ursprüngliche Daten vorhanden sind. Diese lassen sich schwer filtern. Daher wird es darauf hinauslaufen, dass wohl jede Datenänderung nur(!) in der CSV-Datei erfolgt und die CSV-Datei immer neu eingelesen wird und alle Daten in der Drupal-Datenbank überschreibt (also besser keine Benutzerkonten, sondern nur per Views lösen). Hier einen intelligenten Workflow zu entwickeln traue ich mir zu, dennoch interessiert mich auch dazu eure Meinung.

Mein großes Problem: Performence
Es liegen etwas mehr als 100.000 Datensätze vor. Teils mit sehr kryptischen Namen, teils mit Vokalen mehrere ASCII-Codes. Die ASCII-Codes werden wohl nicht das Problem, aber die Performence ... Drupal kann ich gut administrieren, aber bei einer MySQL-Optimierung habe ich noch große Lücken.

==> Ich habe im Internet gelesen, dass die MySQL-Perfomence bei dieser Datenmenge durch Indizes bzw. Indexe verbessert wird. Hm ... WIe kann ich mir das in der Praxis vorstellen? Was muss ich mit Drupal machen, um den Adressdaten die benötigten Index zuzuweisen?

==> Auch habe ich gelesen, dass die Anzahl der Spalten in der MySQl-Datenbank entscheident für die Performence ist. Also, ich sollte wohl neben der Drupal-eigenen Datenbank eine extra Datenbank für die Adressen anlegen und dort so wenig Spalten wie möglich anlegen. Wie kann ich das machen (zweite Datenbank in Drupal einbinden, diese Datenbank auch schützen)? Wie kann ich dieser zweiten Datenbank Views und Nodes zuweisen, um sie zu manipulieren?

Vielen Dank fürs Lesen!

‹ Kommentare posten, aber nicht anschauen [gelöst] Submitted ändern ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ausprobieren

Eingetragen von katasun (281)
am 22.08.2010 - 15:36 Uhr

Nimm Dir doch mal das Modul Devel und generiere die Anzahl der geplanten User. Es gibt
auch in Devel eine Möglichkeit die Performance zu testen. Dann hast Du eine bessere Aussage
über die Perfomance. Besonders bei der Suche.

Bei mysql muss die Kolation auf utf8-bin stehen, um auch Umlaute ohne Probleme ablegen zu
können.

Wenn Du es auslagern willst, kannst Du Dir ja mal openldap ansehen und Deine Benutzerverwaltung
darüber laufen lassen. openldap ist extra für schnelle Zugriffe bei großen Datenmengen ausgelegt.

Gruss

Katsun

  • Anmelden oder Registrieren um Kommentare zu schreiben

Eigene Tabellen und Zugriff per PHP-code

Eingetragen von x-lette@drupal.org (34)
am 12.08.2010 - 13:40 Uhr

Du bringst ein paar Sachen durcheinander: MySQL (wie jede andere SQL-DB auch) verwaltet Daten in Tabellen, welche aus einzelnen Spalten (eigtl. Feldern) aufgebaut sind. Drupal legt eine bestimmte Anzahl solcher Tabellen in einer Datenbank an und nutzt von selbst auch nur diese. Du kannst also problemlos eigene Tabellen nach einem eigenen Schema anlegen ohne damit Drupal zu stören. In Drupal selbst kannst du mittels ein bisschen PHP-Code auf diese Tabellen zugreifen und Daten auslesen. Für den Import der csv-Datei empfiehlt sich entweder ein externes Programm oder du schreibst wieder in Drupal ein paar PHP-Befehle, die die Datei verarbeiten. Wohl gemerkt: alles ausserhalb der Drupal-internen DB-Zugriffe.

Die Optimierung der DB kannst du dann so weit tunen wie es dir möglich ist, durch anlegen von Indizes (sehr empfehlenswert), Schlüsseln und ähnlichem. Dazu solltest du mal die MySQL Dok anschauen, da gibt es einiges, woran man drehen kann. Wenn die Daten bereits "flach" vorliegen (also jede Zeile alle Informationen enthält wie z.b. vollständiger Ortsname etc.) und du auf komplexe Abfragen verzichten möchtest (Stichwort Fremdschlüssel, JOIN etc.), dann lege eine einzelne Tabelle an, die exakt die Struktur der CSV-Daten widerspiegelt. Dann kannst du in einem Rutsch die Tabelle leeren und die neuen Daten einlesen.

Die Tabelle ist dann soweit gesichert, wie der Rest der Datenbank ebenfalls, also alle DB-Nutzer die auf die DB zugreifen dürfen, dürfen auch auf diese Tabelle zugreifen (kann geändert werden, macht aber die Sache nur unnötig komplex). Du musst dir also um die Sicherheit keine größeren Gedanken machen.

Zur Performance: die Spalten (Felder) in einer Tabelle haben natürlich Auswirkungen auf die Performance, aber beim Vorliegen eines Index für die wichtigen Felder spielt das in der genannten Größenordnung keine Rolle. Mach dir Gedanken, wenn du im Bereich von ein paar Millionen Datensätzen operierst, aber bei 100k sollte der Index eigentlich alles auffangen können.

  • 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?
Weiter

Neue Kommentare

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

Statistik

Beiträge im Forum: 250234
Registrierte User: 20455

Neue User:

  • JoMek
  • Znogsnernoimb
  • ByteScrapers

» 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 22 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