Spleen Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 Hallo, ich bin auf der suche nach einer (wenn möglich open source) Datenbank mit der ich Videos (quicktime, .avi, etc.) verwalten kann. Neben den gängigen Abfragefunktionen sollte es eine Previewfunktion geben. Hat da jemand schon ein paar Erfahrungen gesammelt und könnte mir ein paar Tipps geben? danke im vorraus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
delen Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 also ich persönlich hab ja noch nie von einer Datenbank gehört die Dateiformate aller .avi etc. in einem Datensatz speichern kann O_o. Haut mich unwissenden wenn ich total im irrtum bin wenn ich sage, dass es sowas nicht gibt :floet:. ansonsten was ich nur auf die schnelle gefunden hab (google?): SourceForge.net: AJAX-FilmDB grüße delen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 also ich persönlich hab ja noch nie von einer Datenbank gehört die Dateiformate aller .avi etc. in einem Datensatz speichern kann O_o. Haut mich unwissenden wenn ich total im irrtum bin wenn ich sage, dass es sowas nicht gibt :floet:. grüße delen Hmmm...Oracle, MSSQL, MYSQL, DB2 ...etcetcetc...Alle Datenbanken, welche BLOB Datentype in irgendeiner Art unterstützen Gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigvic Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 (bearbeitet) Best pracitce ist (oder war?) glaub, dass man in der DB nur die Verweise auf das Filesystem zu den ensprechenden Binarys speichert (bei grösseren Dateien), da sonst die DB massive Performanceproblem bekommen kann/wird. Bearbeitet 30. Juni 2009 von bigvic Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 Best pracitce ist (oder war?) glaub, dass man in der DB nur die Verweise auf das Filesystem zu den ensprechenden Binarys speichert (bei grösseren Dateien), da sonst die DB massive Performanceproblem bekommen kann/wird. Und wieso dies ? gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigvic Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 (bearbeitet) Und wieso dies ? Keine Ahnung - zum einen weiss ich nicht, ob es immer noch aktuelle Empfehlung ist, dass man BLOBs vermeidet wenn möglich (kommt wahrscheinlich auch auf die DB an) und zum anderen weiss ich erst recht nicht, warum eine DB langsamer wird wenn man diese verwendet. Ich hab es jedenfalls mal so gelernt. Aber vielleicht kann dir (und mir) ja ein DB-Spezi hier im Forum erklären ob und warum das so ist. Bearbeitet 30. Juni 2009 von bigvic Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 Keine Ahnung - zum einen weiss ich nicht, ob es immer noch aktuelle Empfehlung ist, dass man BLOBs vermeidet wenn möglich (kommt wahrscheinlich auch auf die DB an) und ich weiss erst recht nicht, warum eine DB langsamer wird wenn man diese verwendet. ...ist ja nicht gerade ne gute Voraussetzung, um Statements zu verbreiten ...:-) - Performancemässig macht es bezüglich Ladezeiten definitiv keinen Unterschied (Schlussendlich ist es "immer ein File auf einem Speichersystem"), aber : - In der Datenbank kannst du die entsprechenden "Such-und Indexmechanismen nützten, um deine Daten zu finden (In der Annahme, dass du solche Daten auch mit entsprechenden Metadaten versorgt hast) - Die Datenbank bietet "von Haus" aus Transkationssicherheit - Du kannst, wenn benötigt, die Binären Daten mit deinen übrigen Daten in Relation setzten - .... Gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 (bearbeitet) Hallo, ich bin auf der suche nach einer (wenn möglich open source) Datenbank mit der ich Videos (quicktime, .avi, etc.) verwalten kann. Neben den gängigen Abfragefunktionen sollte es eine Previewfunktion geben. Hat da jemand schon ein paar Erfahrungen gesammelt und könnte mir ein paar Tipps geben? danke im vorraus Hallo Spleen, - Wenn du es selbst entwickeln willst, wäre entweder MYSQL oder auch Oracle APEX eine Variante. MYSQL (Kompletlösung) :apache friends - xampp Oracle APEX : Oracle Application Express Previewfunktionen wird dir aber eine Datenbank nicht bieten, denke ich, das ist eine Funktionalität, welche du im Client erstellen musst. - Ansonsten gibt es sicher genügend "Open Source" Projekte, welche dies schon bereitstellen, da hilft vielleicht Google (Ich kenne keine, da ich dies nicht benötige...) :Edit: habe gerade auf der Oracle APEX Homepage etwas gestöbert...unter den Beispielapplikationen findest du auch ein Beispiel "Artwork Catalog".. mit diesem Link kannst du dies gleich testen: http://apex.oracle.com/pls/otn/f?p=23811:1:875817063765275 Vielleicht ist das was asl Ausgangslage.... Gruss Bearbeitet 30. Juni 2009 von dbwizard Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash2001 Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 also ich persönlich hab ja noch nie von einer Datenbank gehört die Dateiformate aller .avi etc. in einem Datensatz speichern kann O_o. Haut mich unwissenden wenn ich total im irrtum bin wenn ich sage, dass es sowas nicht gibt :floet:.[...]Also ich habe das nicht so verstanden, dass die Files mit in die Datenbank reinkommen sollen, sondern eher ein CMS mit Datenbankanbindung zur Verwaltung von den Videodateien, wobei die Dateien einfach in einem Ordner o.ä. liegen. Sehe ich das richtig? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 Also ich habe das nicht so verstanden, dass die Files mit in die Datenbank reinkommen sollen, sondern eher ein CMS mit Datenbankanbindung zur Verwaltung von den Videodateien, wobei die Dateien einfach in einem Ordner o.ä. liegen. Sehe ich das richtig? Ja, dass kann natürlich auch sein. Vielleicht sollte der OP dies klarstellen ? gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Spleen Geschrieben 30. Juni 2009 Autor Teilen Geschrieben 30. Juni 2009 Ja, dass kann natürlich auch sein. Vielleicht sollte der OP dies klarstellen ? gruss Danke für die raschen Antworten. Die Files selber sollten extern in einem Ordner abgelegt werden. Es geht mir nur um die Verwaltung dieser mit der Preview Funktion und einem Link darauf. gruß spleen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigvic Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 (bearbeitet) Performancemässig macht es bezüglich Ladezeiten definitiv keinen Unterschied Und dieses Statement ist allgemeingültig für alle Datenbanken? Meine Best-Practice-Regel ist vielleicht wirklich veraltet und trifft nicht mehr zu - jedoch hab ich im Web ebenfalls einige kritische Aussagen gelesen. Hier mal von einer etwas bekannteren Quelle (Apache): Some people are worried about the efficiency of storing large objects in databases and the implications on performance. They are not necessarily entirely wrong in fearing that storing large objects in databases might be problematic the best or might require a lot of tweaks to parameters in order to be able to handle the large objects. It all depends on how a database implements storing large objects. Daher denke ich, dass deine Aussage ebenfalls "nur" eine Meinung und kein Fakt ist (da keine Quellen mit Tests, etc.). Bearbeitet 30. Juni 2009 von bigvic Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 Die Files selber sollten extern in einem Ordner abgelegt werden. Es geht mir nur um die Verwaltung dieser mit der Preview Funktion und einem Link darauf. So etwas ist eigentlich schon seit Jahren nicht mehr zeitgemäß. Die Vorteile die dbwizard beschrieben hat sind auch gleichzeitig Dinge, die bei einer filesystembasierenden Lösung fehlen. Wenn es dir nur darum geht irgend etwas über den Browser anzuzeigen, dann wäre ein Streamingserver evtl. besser geeignet als eine reine DB. Allerdings bietet Oracle Multimedia (formally known as Oracle interMedia) auch spezielle Datentypen und Funktionen an um genau so etwas datenbankgestützt zu implementieren (ist allerdings nicht kostenlos). Zum Thema BLOBs in Datenbanken: Zahlen sind Binärdaten, Strings sind Binärdaten, Blobs sind Binärdaten. Was kann eine DB am besten? Daten verwalten - dafür wurde sie gemacht. Hat meine DB also Schierigkeiten, weil ich 10GB an Blobdaten darain speichern möchte, dann kann ich mir fast sicher sein, dass sie bei 10GB an "konventionellen" Daten auch so ihre liebe Not haben wird. Mein Tipp: Verwende PostgeSql oder wenn es auch was kosten darf die Oracle 11 Standard Edition One und speichere die Filme in der DB. Lerne wie deine DB und deine Programmiersprache mit Blobs umgeht und Du kannst dir viel Aufwand sparen, den die DB Entwickler schon für dich betrieben haben. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mboo Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 Ich sehe eigentlich nur Nachteile wenn man die Daten in der Datenbank abspeichert. Um die Daten abzurufen muss MySQL diese erst komplett von der Platte laden und an das entsprechende Script senden, das die Daten angefordert hat. Und das Script sendet diese Daten wieder an den User weiter. Du kannst nicht "die letzten 10%" einer Datei aus der Datenbank ziehen, sondern muss immer den ganzen Block auswerten. D.h. du kannst nicht vor spulen, also den Download der Datei in der Mitte anfangen. Es sei den du wartest bis MySQL die Daten umsonst ausgelesen und gesendet hat. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 Ich sehe eigentlich nur Nachteile wenn man die Daten in der Datenbank abspeichert. Du meinst, Du siehst nur Nachteile in einer nicht näher genannten Version von mysql. Um die Daten abzurufen muss MySQL diese erst komplett von der Platte laden und an das entsprechende Script senden, das die Daten angefordert hat. Und das Script sendet diese Daten wieder an den User weiter. In wenn die Datei im Filesystem liegt, dann muss die nicht erst komplett von der Platte gelesen werden? D.h. du kannst nicht vor spulen, also den Download der Datei in der Mitte anfangen. Es sei den du wartest bis MySQL die Daten umsonst ausgelesen und gesendet hat. Aha und wie machst Du das z.B. bei einem normalen Video im Filesystem? Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mboo Geschrieben 30. Juni 2009 Teilen Geschrieben 30. Juni 2009 Du meinst, Du siehst nur Nachteile in einer nicht näher genannten Version von mysql. In wenn die Datei im Filesystem liegt, dann muss die nicht erst komplett von der Platte gelesen werden? Aha und wie machst Du das z.B. bei einem normalen Video im Filesystem? Dim Dies war in allgemeinen auf MySQL bezogen. Da ich mich mit der Datenbank am besten auskenne. Ja, die Datei muss so oder so von der Platte gelesen werden. Aber ist es wirklich sinnvoll dies komplett von der Platte zu lesen, zu verarbeiten (im schlimmsten Fall wird das Video noch in einer Temp-Table auf der Platte zwischengespeichert und danach wieder ausgelesen), an ein Script zu senden (über localhost), wieder zu verarbeiten und an den Client weiterzugeben? Gegenüber eines normalen http-Aufruf auf dem Server. Bei Dateien unter Windows und Unix ist es möglich nur bestimmte Abschnitte dieser Datei zu laden und zu verarbeiten. Ein BLOB-Feld hingegen kann nicht "teilweise" ausgelesen werden. Es ist aber möglich nach dem kompletten auslesen des Inhaltes diesen wieder zu kürzen, um auf das selbe Ziel zu kommen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
delen Geschrieben 1. Juli 2009 Teilen Geschrieben 1. Juli 2009 Hmmm...Oracle, MSSQL, MYSQL, DB2 ...etcetcetc...Alle Datenbanken, welche BLOB Datentype in irgendeiner Art unterstützen Gruss gut, dann nehme ich meine aussage gekonnt zurück grüße delen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 1. Juli 2009 Teilen Geschrieben 1. Juli 2009 (bearbeitet) Bei Dateien unter Windows und Unix ist es möglich nur bestimmte Abschnitte dieser Datei zu laden und zu verarbeiten. Ein BLOB-Feld hingegen kann nicht "teilweise" ausgelesen werden. Es ist aber möglich nach dem kompletten auslesen des Inhaltes diesen wieder zu kürzen, um auf das selbe Ziel zu kommen. - Dies ist so nicht korrekt. Was du beschreibst, ist eine Streaming Lösung...die ist aber nicht im Filesystem implementiert....aber z.b...... in der Datenbank :-) Die spezifische Oracle Lösung findest du hier : http://www.oracle.com/technology/products/multimedia/index.html Gruss Bearbeitet 1. Juli 2009 von dbwizard Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 1. Juli 2009 Teilen Geschrieben 1. Juli 2009 Daher denke ich, dass deine Aussage ebenfalls "nur" eine Meinung und kein Fakt ist (da keine Quellen mit Tests, etc.). - Ja, da hast du natürlich Recht. Ich muss auf unsere eigenen Applikationserfahrungen mit Binarydaten > 50 Mio Datensätze zurückgreifen, resp. auf die "Real World" Lösungen im diesen Bereichen, welche praktisch ausschliesslich Datenbankgestützt implementiert werden. "Echte" Performancevergleiche sind im übrigen auch nicht ganz simpel zu implementieren, man denke nur das Thema Multi-user (n-1000 User greifen auf das Filessystem / Datenbank zu....welche Lösung skaliert mehr ??? ..... It all depends on how a database implements storing large objects. ..... - ja, dem kann ich mich auch anschliessen...nicht ALLE Datenbanken sind natürlich für solch einen Zweck geignet Gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash2001 Geschrieben 2. Juli 2009 Teilen Geschrieben 2. Juli 2009 [...]Hat meine DB also Schierigkeiten, weil ich 10GB an Blobdaten darain speichern möchte, dann kann ich mir fast sicher sein, dass sie bei 10GB an "konventionellen" Daten auch so ihre liebe Not haben wird.[...]Klar würde eine Datenbank dann auch bei 10GB anderen Daten Probleme machen. Der Unterschied ist nur, dass man auf die 10GB mit Videos sehr schnell kommt. Mit "normalen Textdaten" das hingegen EINIGES länger dauert... und genau aus dem Grunde sind die meisten kostenlosen Datenbanken einfach nicht für die Verarbeitung dieser Datenmengen nicht ausgelegt. Mag sein, dass das im Wandel ist, aber afaik gibt es bei sehr vielen datenbank ziemliche Performanceprobleme, wenn man über eine bestimmte Anzahl an Einträgen oder über eine bestimmte Dateigrösse kommt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.