Big Data Datenbank
-
BlackJack
@meego: Jede, nur bestimmte, oder keine. Ehrlich, mehr kann man dazu ohne weitere Angaben nicht sagen.
@meego: das ist doch Blödsinn, Dir jedes einzelne Wort aus der Nase ziehen zu müssen. Für Matrixoperationen ist keine der gängigen Datenbanken ausgelegt, heißt ja auch Datenbank und nicht Rechenbank. Wenn Du sowieso jeden Datensatz nimmst, was rechnest und das Ergebnis zurückschreibst, brauchst Du erst gar keine Datenbank. Wenn Du kein Beispiel geben kannst, wie die Komplexität der Daten ungefähr aussieht, und welche konkreten Operationen auf die Daten angewendet werden sollen, dann solltest Du Dir erst mal darüber Gedanken machen, bevor Du Dir überlegst, wie man die Daten persistent macht.
Naja, woher stammen dann die Koordinaten-Daten (d.h. eine Numpy Array-Position), wenn nicht aus der DB? Keine Ahnung, wie nach der Operation mit den Ergebnissen/Resultaten umgegangen werden kann.
Angenommen jeder Spieler hat seine Spielfigur auf einer bestimmten Koordinate in einem 3-dimensionalen Raum, die in seinem Datensatz laufend aktualisiert wird.
Ich möchte jetzt zum Beispiel wissen, welche anderen Spieler sich in einer bestimmten Entfernung (einem Radius) zu Spieler Fritz befinden und ihre Numpy Koordinaten.
Angenommen jeder Spieler hat seine Spielfigur auf einer bestimmten Koordinate in einem 3-dimensionalen Raum, die in seinem Datensatz laufend aktualisiert wird.
Ich möchte jetzt zum Beispiel wissen, welche anderen Spieler sich in einer bestimmten Entfernung (einem Radius) zu Spieler Fritz befinden und ihre Numpy Koordinaten.
@meego: Das meine ich mit aus der-Nase-herausziehen. Woher soll ich denn wissen, dass es sich um Koordinaten handelt, dass Du eine Entfernungsabfrage machen willst, ...
Du suchst also eine Datenbank, die einen Geospatial Index unterstützt. Damit fallen schonmal Key-Value-Datenbanken raus.
Du suchst also eine Datenbank, die einen Geospatial Index unterstützt. Damit fallen schonmal Key-Value-Datenbanken raus.
-
BlackJack
@meego: Indexe werden angelegt um effizienter über ein Suchkriterium an die Daten zu kommen als tatsächlich jedes einzelne Datum zu prüfen. Normalerweise hat man als Indexdatenstruktur bei Datenbanken deshalb, wenn man Bereichsabfragen machen will wie gib mir alle Personen deren Nachname mit B anfängt, irgendetwas ”sortiertes”. In der Regel einen Suchbaum (oft ein B+-Baum). Damit kann man aber nur eindimensional sortiertes effizient abfragen. Da das der Standardfall ist, hat eigentlich jede relationale Datenbank so einen Indextyp. Mehrdimensionale Abfragen dagegen sind traditionell nicht so üblich, weshalb auch nicht jedes DBMS Indextypen für solche Abfragen hat. Desweiteren braucht man dann auch Abfrageoperatoren die nicht zur SQL-Grundausstattung gehören. Da aber Geodaten in 2D oder auch 3D ein grösseres Thema sind, haben einige RDBMS aufgerüstet und haben Erweiterungen für solche Daten und Abfragen. PostgreSQL zum Beispiel mit PostGIS, oder Sqlite mit SpatiaLite.
@BlackJack:
Dann wäre es also zu langsam die 3D-Koordinaten über einen solchen Standardindex auszulesen?
Ist beim Geospatial Index dann jeder der 3 Koordinaten ein Index im gleichen Datensatz?
Ist man mit den üblichen Python-Webframeworks auf gewisse Datenbanken limitiert?
Wichtig wäre auch Suchfunktionalität.
Dann wäre es also zu langsam die 3D-Koordinaten über einen solchen Standardindex auszulesen?
Ist beim Geospatial Index dann jeder der 3 Koordinaten ein Index im gleichen Datensatz?
Ist man mit den üblichen Python-Webframeworks auf gewisse Datenbanken limitiert?
Wichtig wäre auch Suchfunktionalität.
-
BlackJack
@meego: Irgendwie fängt es hier schon wieder an das man Grundlagen, diesmal von Datenbanken, erklären muss, die man an anderer Stelle besser aufbereitet findet. Ich habe jetzt keine Lust hier eine Einführung in relationale Datenbanken zu schreiben. Du hast da offenbar keine oder falsche Vorstellungen von.
Was ist mit Hypertable?
https://en.wikipedia.org/wiki/Hypertable
https://en.wikipedia.org/wiki/Hypertable
Wie glaubst du eigentlich, wie so ein Forum funktioniert? Du stellst hier vollkommen offene Fragen, welche du dir leicht selbst mit einem Wikipedia-Artikel und den darauf enthaltenen Links beantworten kannst. Erwartest du ernsthaft, dass dir hier alles noch einmal in anderen Worten persönlich erzählt wird, was an einer anderen Stelle bereits sehr gut beschrieben ist?
Das Leben ist wie ein Tennisball.
@meego: liest Du eigentlich auch mal, was DU oder andere schreiben???? Bis jetzt hast DU noch keine einzige verwertbare Information darüber verloren, was DEINE Anforderungen an eine Datenbank sind. Und ja, Hypertable ist für Deine Aufgabe genau das richtige, werd glücklich damit; an Deiner Stelle würde ich gleich mit 1000 Knoten beginnen, so 1PB an Speicher solltest Du schon für das was Du vorhast einplanen; hat man am Anfang zu klein geplant, steht man später ganz schön blöd da.
Du aber auch nicht darüber, was für Anforderungskriterien existieren bzw. wie man diese zu formulieren hat. Ich bin ja kein Datenbankspezi und das hier soll doch ein allgmeines Anfängerforum sein.
Ich möchte erst einmal eine Art soziales Netzwerk realisieren (also Bentzeraccounts), in welchem sich die Nutzer bestimmte vordefinierte Etiketten (Tags) zuweisen können. Lassen wir das mit der späteren Spielfigur einmal weg.
Ich möchte erst einmal eine Art soziales Netzwerk realisieren (also Bentzeraccounts), in welchem sich die Nutzer bestimmte vordefinierte Etiketten (Tags) zuweisen können. Lassen wir das mit der späteren Spielfigur einmal weg.
-
BlackJack
@meego: Es ist aber auch ein Python-Programmierforum, also ist das schon eine Einschränkung des „allgemein” im Titel dieses Unterforums. Nicht das man hier auch mal über Sachen reden kann die weiter gefasst sind, ist dieses Rumstochern von Dir nicht zielführend weil Du ja offenbar bewusst Informationen zurück hältst. So kann dann aber niemand beurteilen wie Deine tatsächlichen Anforderungkriterien sind, insbesondere weil Du ja selber sagst die nicht zu kennen beziehungsweise die Art wie man die am besten formalisiert und kommuniziert.
Informationen weglassen, sowohl weil Du die nicht verraten möchtest, als auch gezielt so etwas wie mit den Koordinaten der Spielfigur auszuklammern, ist eine sehr schlechte Grundlage um sinnvolle Antworten geben zu können. Wenn Du die Koordinaten jetzt weg lässt sind nämlich wieder Lösungen im Spiel die durch diese Anforderung ausgeschlossen wären. Key-Value-Stores wären dann zum Beispiel wieder eine Möglichkeit. Ausser wenn später dann doch wieder diese Anforderung nach Entfernungsanfragen kommen, dann hätte man mit KV-Stores auf's falsch Pferd gesetzt. Das illustriert ganz gut das Problem vor dem wir hier als Helfende stehen. Eine sinnvolle Architektur, und dazu gehört auch die Datenhaltungsschicht, kann man erst entwerfen wenn man alle Anforderungen beisammen hat. Denn jede Anforderung kann Entwurfsentscheidungen beeinflussen, manche nur ein wenig, andere aber auch ganz massiv. Darum sollte man alle wichtigen Randbedingungen kennen. Und wenn man nicht einschätzen kann welche wichtig sind, dann sind das einfach mal *alle* Randbedingungen.
Das Argument hier wäre ein Anfängerforum, und dass man doch deshalb Nachsicht haben sollte das Du nicht weisst wie eine Anforderungsanalyse für ein grösseres Projekt aussieht, verfängt nicht, denn was Du hier mit Deinen Fragen andeutest, und ich nehme mal die aus dem „Verschlüsselungs-Thema” mit dazu, ist schlicht und ergreifend kein Anfänger(taugliches)projekt mehr! Oder eines das man als Anfänger angeht mit dem Wissen das es mit 99% Wahrscheinlichkeit auf die Nase fällt. Warum tut man das? Um etwas dabei zu lernen, damit der zweite Anlauf besser wird, der dritte einen benutzbaren Prototyp darstellt, und der vierte dann vielleicht sogar „live” gehen kann.
Informationen weglassen, sowohl weil Du die nicht verraten möchtest, als auch gezielt so etwas wie mit den Koordinaten der Spielfigur auszuklammern, ist eine sehr schlechte Grundlage um sinnvolle Antworten geben zu können. Wenn Du die Koordinaten jetzt weg lässt sind nämlich wieder Lösungen im Spiel die durch diese Anforderung ausgeschlossen wären. Key-Value-Stores wären dann zum Beispiel wieder eine Möglichkeit. Ausser wenn später dann doch wieder diese Anforderung nach Entfernungsanfragen kommen, dann hätte man mit KV-Stores auf's falsch Pferd gesetzt. Das illustriert ganz gut das Problem vor dem wir hier als Helfende stehen. Eine sinnvolle Architektur, und dazu gehört auch die Datenhaltungsschicht, kann man erst entwerfen wenn man alle Anforderungen beisammen hat. Denn jede Anforderung kann Entwurfsentscheidungen beeinflussen, manche nur ein wenig, andere aber auch ganz massiv. Darum sollte man alle wichtigen Randbedingungen kennen. Und wenn man nicht einschätzen kann welche wichtig sind, dann sind das einfach mal *alle* Randbedingungen.
Das Argument hier wäre ein Anfängerforum, und dass man doch deshalb Nachsicht haben sollte das Du nicht weisst wie eine Anforderungsanalyse für ein grösseres Projekt aussieht, verfängt nicht, denn was Du hier mit Deinen Fragen andeutest, und ich nehme mal die aus dem „Verschlüsselungs-Thema” mit dazu, ist schlicht und ergreifend kein Anfänger(taugliches)projekt mehr! Oder eines das man als Anfänger angeht mit dem Wissen das es mit 99% Wahrscheinlichkeit auf die Nase fällt. Warum tut man das? Um etwas dabei zu lernen, damit der zweite Anlauf besser wird, der dritte einen benutzbaren Prototyp darstellt, und der vierte dann vielleicht sogar „live” gehen kann.
Dann ist es eigentlich egal welche Datenbank Du nimmst, das erste Datenbankprojekt ist zum Lernen, wirklich produktiv wirst Du erst ab dem zweiten Projekt.meego hat geschrieben:Ich bin ja kein Datenbankspezi
Ein paar hundert Benutzeraccounts sind nicht "Big Data".meego hat geschrieben:Ich möchte erst einmal eine Art soziales Netzwerk realisieren (also Bentzeraccounts), in welchem sich die Nutzer bestimmte vordefinierte Etiketten (Tags) zuweisen können.
