2017-11-07 2 views
2

Ich habe versucht, die Audio/Video-Dateien in der Datenbank zu speichern.Speichern von Mediendateien in Cassandra

Kann Cassandra das tun? Wenn ja, wie speichern wir die Mediendateien in Cassandra?

Wie über die Metadaten und Original-Audio-Dateien in cassandra

+0

https://docs.datastax.com/de/cql/3.1/cql/cql_reference/blob_r.html –

Antwort

7

Speicherung Ja, Cassandra ist definitiv in der Lage Dateien in der Datenbank zu speichern, als "Blobs", Strings von Bytes.

Es ist jedoch nicht ideal für diesen Anwendungsfall:

Zuerst Sie in Blob Größe begrenzt. Das Hard Limit ist 2GB groß, so dass große Videos nicht in Frage kommen. Schlimmer noch, die Dokumentation von Datastax (dem kommerziellen Unternehmen hinter Cassandras Entwicklung) legt nahe, dass sogar 1 MB (!) Zu groß ist - siehe https://docs.datastax.com/en/cql/3.1/cql/cql_reference/blob_r.html.

Einer der Gründe, warum riesige Blobs ein Problem sind, ist, dass Cassandra keine API zum Abrufen von Teilen von ihnen bietet - Sie müssen einen Blob in einer CQL-Operation lesen (und schreiben), was alle möglichen Probleme aufdeckt. Wenn Sie also große Dateien in Cassandra speichern möchten, möchten Sie sie wahrscheinlich in viele kleine Blobs aufteilen - nicht in einen großen Blob.

Das nächste Problem ist, dass einige der Implementierung von Cassandra ineffizient ist, wenn die Datenbank Dateien enthält (auch wenn auf eine Reihe von kleineren Blobs aufgeteilt). Eines der Probleme ist der Komprimierungsalgorithmus, bei dem alle Daten immer wieder (eine logarithmische Anzahl) auf der Festplatte kopiert werden. Eine Implementierung, die für die Speicherung von Dateien optimiert wurde, würde die Dateidaten und die Metadaten getrennt halten und nur die Metadaten "komprimieren". Leider implementieren weder Cassandra noch Scylla noch ein solches Dateiformat.

Alles in allem ist es wahrscheinlich besser, Ihre Metadaten in Cassandra zu speichern, aber den eigentlichen Dateiinhalt in einer anderen Objekt-Store-Implementierung.

+0

Sie können weiterhin große Dateien in Cassandra speichern, aber Sie müssen sie in kleinere Stücke aufteilen. –

Verwandte Themen