2016-03-25 8 views
2

[Hintergrund] Jetzt erstelle ich WCF für das Halten und Erhalten von Artikeln unserer Universität.Was ist der bessere und schnellere Weg zum Speichern und Abrufen von Dateien Azure BLOB Storage oder SQL Server?

Ich muss Dateien und Metadaten dieser Dateien speichern. Meine WCF muss von 1000 Personen pro Tag benutzt werden. Der Speicher enthält ca. 60000 Atikel.

Ich habe drei verschiedene Möglichkeiten, es zu tun.

  1. Ich kann Metadaten (Dateiname, Dateityp) in SQL-Server speichern, um eindeutige ID zu erstellen) und Dateien in Azure BLOB-Speicher speichern.
  2. Ich kann Metadaten und Daten in SQL Server speichern.
  3. Ich kann Metadaten und Daten in Azure BLOB-Speicher speichern.

Welchen Weg wählen und warum? Wenn Sie Ihre eigene Lösung vorschlagen, wird es wondefull sein. P.S. Beide benutzen Azure.

+0

Was werden Sie mit den Dateien machen? Können Ihre Benutzer diese Dateien herunterladen? –

+0

@Gaurav Mantri können sie herunterladen, senden (erstellen) Dateien, aktualisieren (entfernen und erneut senden), entfernen. –

Antwort

4

Ich würde empfehlen, mit Option 1 zu gehen - Metadaten in der Datenbank speichern, aber Dateien im BLOB-Speicher speichern. Hier sind meine Gründe:

  1. Blob Lagerung ist nur für diesen Zweck gemeint. Ab heute kann ein Konto 500 TB Daten speichern und die Größe jedes Blobs kann 200 GB betragen. Raum ist also keine Einschränkung.
  2. Im Vergleich zu SQL Server ist es extrem billig, in Blobspeicher zu speichern.
  3. Der Grund, den ich empfehle, Metadaten in der Datenbank zu speichern, liegt darin, dass der Blobspeicher ein einfacher Objektspeicher ohne Abfragefunktionen ist. Wenn Sie also nach Dateien suchen möchten, können Sie Ihre Datenbank abfragen, um die Dateien zu finden, und die Datei-URLs an Ihre Benutzer zurückgeben.

jedoch im Auge behalten, bitte, dass, weil dieser (Datenbankserver und BLOB-Speicher) zwei verschiedene Datenspeicher sind, werden Sie Transaktionskonsistenz zu erreichen, nicht in der Lage sein. Beim Erstellen von Dateien würde ich empfehlen, Dateien zuerst in den Blob-Speicher hochzuladen und dann einen Datensatz in der Datenbank zu erstellen. Ebenso würde ich beim Löschen von Dateien empfehlen, zuerst den Datensatz aus der Datenbank zu löschen und dann den Blob zu entfernen. Wenn Sie über verwaiste Blobs besorgt sind (d. H. Blobs ohne übereinstimmenden Datensatz in der Datenbank), würde ich empfehlen, eine Hintergrundaufgabe auszuführen, die die verwaisten Blobs findet und löscht.

Verwandte Themen