(0) exportieren Drucken
Alle erweitern

Migrieren von Daten zum Azure-BLOB-Speicher

Letzte Aktualisierung: Mai 2014

Der Azure-BLOB-Dienst ermöglicht Anwendungen das Speichern großer Mengen unstrukturierter Text- oder Binärdaten, z. B. Video-, Audio -und Bilddateien. Der BLOB-Speicher enthält 0 (null) oder mehr BLOB-Container, und ein Container enthält 0 (null) oder mehr BLOBs. Ein BLOB ist eine einzelne Entität, die Binärdaten wie eine Datei oder ein Bild enthält.

Der Speicherdienst bietet zwei Typen von BLOBs: Blockblobs und Seitenblobs.

  • Ein Blockblob besteht aus Blöcken, die durch jeweils eine Block-ID identifiziert werden. Sie erstellen oder ändern einen Blockblob, indem Sie einen Satz (bzw. eine Liste) von Blöcken schreiben und diese mithilfe ihrer Block-ID übergeben. Jeder Block kann eine andere Größe aufweisen. Maximal sind 4 MB zulässig. Die maximale Größe für ein Block-BLOB beträgt 200 GB, und ein Block-BLOB kann nicht mehr als 50.000 Blöcke enthalten. Blockblobs unterstützen das Einfügen, Löschen und Neuanordnen von Blöcken in einem BLOB sowie das gleichzeitige Hochladen mehrere Blöcke eines BLOBs. Sie sind auf effizientes Hoch- und Herunterladen umfangreicher BLOBs ausgelegt. Die Verwendung eines Blockbobs empfiehlt sich, wenn in der Anwendung umfangreiche Dateien gespeichert werden, auf die mehrere Leser parallel zugreifen.

  • Seitenblobs stellen eine Sammlung von 512-Byte-Seiten dar, die für zufällige Lese- und Schreibvorgänge optimiert sind. Auf jede Seite in einem Seitenblob wird über einen Offset vom Anfang des BLOBs verwiesen. Um den Inhalt eines Seiten-BLOB zu erweitern oder zu aktualisieren, schreiben Sie unter Angabe eines Offsets und eines Bereichs, die an den Seitengrenzen von jeweils 512 Bytes ausgerichtet sind, eine oder mehrere Seiten in das BLOB. Ein Schreibvorgang für ein Seiten-BLOB kann nur eine Seite, mehrere Seiten oder bis zu 4 MB des Seiten-BLOB überschreiben. Schreibzugriffe auf Seitenblobs finden direkt statt und werden sofort in einem Commit an das BLOB übergeben. Die maximale Größe des BLOBs beträgt 1 TB, und die BLOB-Größe muss ein Vielfaches von 512 Bytes sein.

Eine ausführliche Übersicht zum BLOB-Speicher finden Sie im Azure-Portal.

Autoren: Sreedhar Pelluru
Mitwirkende: James Podgorskiani
Bearbeiter: Christian Martinez, Valery Mizonov, Kun Cheng, Steve Howard

Mithilfe von Blockblobs können Sie große BLOBs bis zu 200 GB effizient hochladen. Diese zeichnen sich durch Optimierungen aus, die Ihnen die Verwaltung umfangreicher Dateien im Netzwerk erleichtern. Eine dieser Funktion besteht darin, dass mehrere Blöcke parallel hoch- und herunterladen werden und die Abfolge während des Commits bestimmt werden kann. Demgegenüber sind Seitenblobs für zufällige Lese- und Schreibzugriffe optimiert, wobei Seiten die Beschränkung auf 512 Bytes einhalten.

Im Folgenden werden einige der Szenarien vorgestellt, in denen Seitenblobs verwendet werden:

  • Eine Anwendung mit bereichsbasiertem Updatezugriff auf Dateien. Die Anwendung behandelt einen Seitenblob als Datei und führt bereichsbasierte Schreibzugriffe aus, um die Teile des BLOBs zu aktualisieren, die sich geändert haben. Zum Update von Seitenblobs können exklusive Schreibzugriffe ausgeführt werden.

  • Benutzerdefinierte Protokollierung für Anwendungen, die einen Seitenblob als zirkulären Puffer behandeln. Wenn der Seitenblob mit Daten aufgefüllt ist, kann die Anwendung beginnen, Daten vom Anfang der BLOB-Struktur an zu schreiben.

Bei der Migration von Anwendungen zum Azure-BLOB-Speicher sind verschiedene Faktoren wie die folgenden zu beachten.

  • Welcher Datentyp kann in einem BLOB-Speicher gespeichert werden?

  • Wie kann von der migrierten Anwendung auf die in einem BLOB-Speicher gespeicherten Daten zugegriffen werden?

  • Unterstützt der Speicher hohe Verfügbarkeit, Skalierbarkeit, Notfallwiederherstellung und Sicherheitsanforderungen der migrierten Anwendung?

  • Wie können die vorhandenen Daten in den BLOB-Speicher hochgeladen werden?

Bevor Sie die Anwendung für die Verwendung des BLOB-Speichers umschreiben, sollten Sie evaluieren, ob der BLOB-Speicher eine gute Wahl für die Daten ist, die Sie speichern möchten. Der BLOB-Speicher ist auf das Speichern großer Mengen an unstrukturierten Text- oder Binärdaten ausgelegt wie Dokumente, Bilder, Audio- und Videodateien.

Der BLOB-Speicher kann auch zum Speichern von Dateien/Binärdateien verwenden werden, von denen die Anwendung abhängig ist. Durch das Speichern abhängiger Dateien in einem BLOB besteht die Möglichkeit, abhängige Dateien zu aktualisieren, ohne dass die gesamte Anwendungspaketdatei (.cspkg) aktualisiert oder hochgeladen werden muss. Darüber hinaus haben Sie die Möglichkeit, verschiedene Versionen abhängiger Dateien in separaten BLOBs und der Anwendung vorzuhalten, um abhängige Dateien für eine bestimmte Version dynamisch zu laden.

Die Azure SQL-Datenbank unterstützt den varbinary(max)-Datentyp zum Speichern großer Datenbankobjekte. Wenn die Anwendung BLOBs (Binary Large Objects) wie Bild-, Audio- und Videodateien in einer SQL Server-Datenbank speichert und darauf zugreift, sollten Sie bei der Migration der Anwendung zu Azure Platform feststellen, ob die SQL-Datenbank oder der BLOB-Speicher verwendet werden soll.

Wenn Sie das FILESTREAM-Attribut für eine varbinary-Spalte verwenden, um Dateien mit einer Größe von mehr als 2 GB in einer SQL Server-Datenbank zu speichern, sollten Sie bei der Migration zur Azure Platform den BLOB-Speicher verwenden, weil die SQL-Datenbank derzeit keine Unterstützung für FILESTREAM bietet. Auch wenn die Dateigröße kleiner als 2 GB ist und Sie die FILESTREAM-Funktion von SQL Server nicht verwenden, spricht mehr für den BLOB-Speicher, da er je nach Art der Anwendung kostengünstiger und skalierbarer sein kann. Darüber hinaus ist jeder Client in der Lage, über die REST-API auf den Speicher zuzugreifen.

Nachdem Sie umfangreiche Objekte im BLOB-Speicher gespeichert haben, können Sie einen Verweis auf das BLOB in einer Tabellenspalte der SQL-Datenbankinstanz speichern. Die maximale Größe der SQL-Datenbankinstanz liegt derzeit bei 150 GB. Wenn Sie große Objekte in einer SQL-Datenbankinstanz speichern, kann es folglich passieren, dass Speicherplatz knapp wird. Die maximale Größe des BLOB-Speichers entspricht 200 TB, also der tatsächlichen Größenbeschränkung für den Azure-Speicher. Die maximale Größe jedes BLOBs im BLOB-Speicher beträgt 200 GB (Blockblob) bzw. 1 TB (Seitenblob).

Wenn Sie eine lokale Webanwendung migrieren, die grafische Ressourcen wie Bilder enthält, können Sie die URL beispielsweise im Image der SQL-Datenbank (bzw. des Tabellenspeichers) speichern und die URL vom Clientprogramm abrufen und das Image unter Verwendung der URL anzeigen lassen.

Die Leistung der Anwendung kann beeinträchtigt sein, wenn BLOBs aus der SQL-Datenbank verlagert und nur ein Verweis auf das BLOB im BLOB-Speicher gespeichert wird. Dies liegt daran, dass die Clientanwendung zuerst die SQL-Datenbankinstanz abfragt, um den Speicherort des BLOBs zu ermitteln, und dann den BLOB-Speicher, um die BLOB-Daten wie Bilder oder große Objekte abzurufen. Beachten Sie, dass Daten nicht zusammen sowohl in der SQL-Datenbank als auch im BLOB-Speicher gesichert bzw. wiederhergestellt werden können. Folglich sind Sicherungen im BLOB-Speicher und der SQL-Datenbank aus Transaktionssicht nicht immer konsistent.

Weiter muss die Anzahl der Transaktionen berücksichtigt werden, die von der Anwendung für den Datenspeicher ausgeführt werden. Bei der SQL-Datenbank werden keine separaten Gebühren für Transaktionen erhoben, während an den Azure-Speicher gesendete Transaktionen gebührenpflichtig sind. Daten, auf die weniger häufig zugegriffen werden, eignen sich möglicherweise für den Azure-Speicher, während Daten, die häufiger verwendet werden, kostengünstiger in der SQL-Datenbank gespeichert werden können.

Clientanwendungen, die in einer beliebigen Programmiersprache geschrieben sind und für ein beliebiges Betriebssystem ausgeführt werden, können über die HTTP(S) REST-API auf den Azure-BLOB-Speicher zugreifen. Der Zugriff auf den BLOB-Speicher ist auch über Clientbibliotheken möglich, die für bestimmte Betriebssysteme und Programmiersprachen geschrieben wurden. Bibliotheken für .NET, Node.js, Java und PHP sind im Azure Developer Center verfügbar. Die .NET Storage Client Library stellt beispielsweise stark typisierte .NET-Wrapper für die REST-API bereit, um die Entwicklung für .NET-Entwickler einfacher zu gestalten.

Wenn Sie sich entscheiden, von der Anwendung verwendete, unstrukturierte Daten im BLOB-Speicher auf der Azure Platform zu speichern, muss der Teil des Codes, mit dem auf die Daten zugegriffen wird, unter Verwendung der Storage Client Library umgeschrieben werden.

Wenn Sie die Daten im Azure-BLOB-Speicher speichern, profitieren Sie automatisch von mehreren wichtigen Vorteilen:

  • Skalierbarkeit. Der Azure-BLOB-Speicher unterstützt ein hochgradig skalierbares BLOB-Verteilungssystem über das Azure CDN. Weitere Informationen finden Sie auch im Artikel Skalierbarkeits- und Leistungsziele des Azure-Speichers. Durch das CDN greifen aktive BLOBs auf zahlreiche Server zurück. Folglich unterstützt es die horizontale Skalierung und die Erfüllung der Datenverkehrsanforderungen einer Anwendung. Weiterhin ist das System hoch verfügbar und langlebig.

  • Hohe Verfügbarkeit/Fehlertoleranz: In Azure gespeicherte BLOBs werden an drei Speicherorte im gleichen Datencenter repliziert, um Resilienz bei Hardwarefehlern zu gewährleisten. Darüber hinaus werden die Daten auf verschiedene Fehlerdomänen repliziert, um wie bei allen Azure-Speicherdiensten die Verfügbarkeit zu erhöhen.

  • Notfallwiederherstellung: In Azure können Sie zwischen georedundanter und lokal redundanter Replikation wählen, um schwerwiegenden Zwischenfällen entgegenzuwirken. Weitere Informationen finden Sie im Artikel Vorgehensweise: Verwalten der Replikation von Speicherkonten.

  • Sicherheit: Jede an Azure Storage Services gerichtete Anforderung muss authentifiziert werden – es sei denn, es handelt sich um eine anonyme Anforderung an eine öffentliche Containerressource. Ausführliche Informationen finden Sie unter Authentifizieren des Zugriffs auf das Speicherkonto.

  • Ortsunabhängiger Datenzugriff über beliebige Clients: Auf den Azure-BLOB-Speicher kann mithilfe der REST-API über HTTP zugegriffen werden. Jede Clientanwendung unter einem beliebigen Betriebssystem kann mit REST auf den BLOB-Speicher zugreifen.

Nachdem Sie die Anwendung umgeschrieben haben, um den hochgradig skalierbaren BLOB-Speicher zu nutzen, können Sie vorhandene Daten von einem Datensystem oder einer SQL Server-Datenbank migrieren. Dazu können Sie mithilfe der HTTP(S) REST-API oder der .NET Client Library für den BLOB-Speicher eigenen Code schreiben oder Tools wie Cloud Storage Studio von Red Gate Software verwenden.

Anzeigen:
© 2014 Microsoft