Unternehmen erzeugen und verarbeiten heute riesige Mengen unstrukturierter Daten. Diese Daten umfassen alles von Bildern und Videos bis hin zu Back-ups, Logdateien und großen Datasets für Analysen. Für das effiziente Speichern, Verwalten und Abrufen dieser vielfältigen und oft sehr großen Dateien sind spezielle Speicherlösungen erforderlich. Die Speicherung von Binary Large Objects (BLOBs) hat sich als Schlüsseltechnologie zur Bewältigung dieser Herausforderungen erwiesen. Sie bietet eine skalierbare und tendenziell kosteneffiziente Möglichkeit, mit unstrukturierten Daten umzugehen.
Speichersysteme für binäre große Objekte sind auf massive Skalierbarkeit und hohe Langlebigkeit ausgelegt und tragen zur Kosteneffizienz bei sowie dazu, große Mengen unstrukturierter Daten speichern zu können.
Um den BLOB-Speicher vollständig zu verstehen, ist es hilfreich, zuerst seine Kernkomponenten zu definieren: Den Objektspeicher und das BLOB selbst.
Ein Objektspeicher ist eine Datenspeicherarchitektur, bei der Daten als separate Einheiten, sogenannte Objekte, verwaltet werden. Im Gegensatz zu Dateisystemen, die Daten in einer hierarchischen Verzeichnisstruktur (Ordner und Dateien) organisieren, oder Blockspeichern, die Daten als Blöcke fester Größe verwalten, behandeln Objektspeichersysteme jedes Datenelement als eigenständiges Objekt.
Diese Objekte enthalten in der Regel:
Ein BLOB (Binary Large Object) ist eine Sammlung binärer Daten, die als zusammengefasste Entität gespeichert werden. Der Begriff „binär“ bedeutet, dass die Daten alles sein können – sie sind nicht auf Text oder bestimmte Formate beschränkt. Dies können ausführbare Dateien, Bilder, Audio- oder Videoinhalte, komprimierte Archive, Datenbank-Backups oder beliebige andere Arten digitaler Informationen sein. Der Begriff „large“ im Namen deutet darauf hin, dass BLOBs in der Regel für Dateien verwendet werden, die zu groß sind, um bequem oder effizient direkt in einem herkömmlichen Datenbankfeld neben strukturierten Daten gespeichert zu werden.
Daher ist die BLOB-Speicherung im Wesentlichen die Praxis, diese BLOBs als einzelne Objekte in einem Objektspeichersystem zu speichern. Anstatt beispielsweise eine große Videodatei direkt in einen Datenbankeintrag einzubetten, speichern Sie die Videodatei in einem Objektspeichersystem und speichern dann einen Verweis (die eindeutige Kennung oder URL des Objekts) auf diesen BLOB in Ihrer Datenbank.
Die Verwendung von BLOB-Speicher umfasst in der Regel einige wichtige Schritte, die durch das Objektspeichersystem erleichtert werden:
Wenn ein Nutzer oder eine Anwendung eine große Binärdatei speichern muss, werden die Daten zusammen mit den zugehörigen Metadaten über einen API-Aufruf (in der Regel RESTful APIs über HTTP/S) an das Objektspeichersystem gesendet. Das Speichersystem empfängt diese Daten.
Das Objektspeichersystem nimmt die hochgeladenen Binärdaten und ihre Metadaten und kapselt sie in ein „Objekt“. Anschließend wird diesem neuen Objekt eine eindeutige Kennung zugewiesen. Diese Kennung ist wichtig, da sie später zum Adressieren und Abrufen des Objekts verwendet wird.
Das System speichert das Objekt, verteilt und repliziert es oft auf mehrere physische Speichergeräte und manchmal sogar auf verschiedene Rechenzentren. Dieser verteilte Ansatz erhöht die Langlebigkeit der Daten (Schutz vor Hardwareausfällen) und die Verfügbarkeit. Die spezifische Replikationsstrategie kann je nach gewählter Speicherklasse oder Anbieterrichtlinien variieren.
Die mit dem BLOB verknüpften Metadaten werden indexiert. So können Sie Objekte anhand ihrer Metadaten-Tags suchen oder kategorisieren, selbst wenn Sie Milliarden von Objekten haben.
Wenn ein Nutzer oder eine Anwendung auf den BLOB zugreifen muss, wird eine Anfrage mit der eindeutigen Kennung des Objekts an das Objektspeichersystem gesendet. Das System findet das Objekt und streamt die Binärdaten zurück an den Anfragenden.
Objektspeichersysteme bieten Mechanismen, um zu steuern, wer BLOBs lesen, schreiben oder löschen kann. Dies wird in der Regel über Richtlinien zur Identitäts- und Zugriffsverwaltung (IAM), über Zugriffssteuerungslisten (ACLs) oder signierte URLs verwaltet, die temporären Zugriff gewähren.
Der Einsatz von BLOB-Speicher bietet erhebliche Vorteile bei der Verwaltung unstrukturierter Daten:
Skalierbarkeit
Objektspeichersysteme sind so konzipiert, dass sie auf Exabyte und mehr skaliert werden können, um große Datenmengen und Objekte aufzunehmen. Das macht sie für Anwendungen geeignet, die riesige Datenmengen generieren.
Kosteneffektivität
Das Speichern großer, selten aufgerufener Datenmengen in herkömmlichen, leistungsstarken Dateisystemen oder Datenbanken kann teuer sein. Ein Objektspeicher bietet oft gestaffelte Optionen mit unterschiedlichen Kosten, die auf der Zugriffshäufigkeit und den Anforderungen an die Langlebigkeit basieren und eine Kostenoptimierung ermöglichen.
Langlebigkeit und Verfügbarkeit
Führende Objektspeicherdienste bieten eine hohe Datenbeständigkeit, oft durch redundante Speicherung von Objekten auf mehreren Geräten oder an mehreren geografischen Standorten. So lässt sich das Risiko von Datenverlusten aufgrund von Hardwarefehlern minimieren und die Hochverfügbarkeit unterstützen.
Umfangreiche Metadaten
Die Möglichkeit, jedem BLOB umfangreiche, benutzerdefinierte Metadaten zuzuordnen, kann eine bessere Datenorganisation, einfachere Suche und anspruchsvollere Datenverwaltungs- und Analysefunktionen ermöglichen.
Vereinfachter Datenzugriff
Der Zugriff auf BLOBs über Standard-HTTP-APIs kann die Einbindung in Webanwendungen, mobile Apps und andere Cloud-Dienste vereinfachen. Eindeutige Kennungen für jedes Objekt ermöglichen den direkten Zugriff, ohne dass komplexe Dateipfade durchsucht werden müssen.
Abkopplung
Wenn Sie BLOBs extern in Datenbanken oder Anwendungsservern speichern, können Sie die Leistung und Skalierbarkeit dieser Primärsysteme verbessern. Datenbanken müssen keine großen, unhandlichen Datentypen mehr verwalten und Anwendungen können die Bereitstellung statischer Inhalte auslagern.
Objektspeicherdienste, die BLOBs hosten, bieten oft verschiedene Speicherklassen oder -stufen, die nach Zugriffshäufigkeit, Abrufzeiten und Kosten kategorisiert sind. Diese Stufen können Unternehmen dabei helfen, die Speicherkosten basierend auf der Datennutzung zu optimieren. Häufige Typen sind:
Entwickelt für häufig abgerufene Daten, die eine niedrige Latenz und einen hohen Durchsatz erfordern. Diese Stufe eignet sich für aktive Websiteinhalte, Daten mobiler Anwendungen oder Daten, die aktiv durch Analysearbeitslasten verarbeitet werden. Die Speicherkosten sind in der Regel höher, aber die Stufe kann die Zugriffskosten senken.
Für Daten, auf die seltener zugegriffen wird (z. B. einmal im Monat), die aber bei Bedarf schnell verfügbar sein müssen. Die Speicherkosten können niedriger sein als bei einem Standardspeicher, aber die Zugriffskosten oder Abrufgebühren sind möglicherweise etwas höher. Dies ist ideal für langfristige Back-ups, für Datenarchivierung, bei denen gelegentlich ein schneller Zugriff erforderlich ist, oder für Dateien für die Notfallwiederherstellung.
Entwickelt für die langfristige Datenarchivierung, Compliance und Aufbewahrung, wenn selten auf Daten zugegriffen wird (z. B. einmal im Jahr oder seltener). Diese Stufe kann niedrige Speicherkosten bieten. Die Abrufzeiten können länger sein (von Minuten bis Stunden) und die Zugriffskosten können höher sein. Das kann für behördliche Archive oder Daten geeignet sein, die als Verlaufsdaten aufbewahrt werden müssen, aber nicht für den täglichen Betrieb benötigt werden.
Einige Anbieter bieten sogar noch kältere Stufen für Daten, auf die extrem selten zugegriffen wird und die längere Abrufzeiten (z. B. viele Stunden) tolerieren können. Diese Stufen bieten die absolut niedrigsten Speicherkosten.
Die Vielseitigkeit und Skalierbarkeit eines BLOB-Speichers machen ihn für eine Vielzahl von Anwendungen in verschiedenen Branchen geeignet:
Anwendungsfälle | Feature |
Bereitstellung von Multimedia-Inhalten | Speichern und Bereitstellen von Bildern, Videos, Audiodateien und anderen Rich-Media-Inhalten für Websites, Streamingdienste und mobile Anwendungen. |
Data Lakes und Analysen | Speicherung großer Mengen an Rohdaten in einem Data Lakehouse (strukturierte, semistrukturierte und unstrukturierte Daten) aus verschiedenen Quellen im nativen Format für die Verarbeitung von Big Data, das Training von Machine-Learning-Modellen und der Business Intelligence. |
Logdateiarchivierung | Speichern von Anwendungsserver-Logs, Sicherheitslogs und Prüfpfaden für die Fehlerbehebung, Sicherheitsanalyse und Compliance. |
Dokumentenmanagementsysteme | Speicherung und Verwaltung großer Mengen von Dokumenten, PDFs, gescannten Bildern und anderen Geschäftsunterlagen. |
Hosting statischer Websites | Hosting der statischen Assets (HTML, CSS, JavaScript, Bilder) einer Website direkt aus dem Objektspeicher, der hoch skalierbar und kosteneffizient sein kann. |
Softwareverteilung | Große Softwarepakete, Updates und Installationsprogramme speichern und verteilen. |
Verwaltung von Gesundheitsdaten | Medizinische Bilder (Röntgenbilder, MRTs), Patientenakten und Genomdaten sicher und konform speichern. |
Wissenschaftliche Forschung | Große Datasets aus Experimenten, Simulationen und Sensornetzwerken speichern, um sie zu analysieren und gemeinsam zu nutzen. |
Anwendungsfälle
Feature
Bereitstellung von Multimedia-Inhalten
Speichern und Bereitstellen von Bildern, Videos, Audiodateien und anderen Rich-Media-Inhalten für Websites, Streamingdienste und mobile Anwendungen.
Data Lakes und Analysen
Speicherung großer Mengen an Rohdaten in einem Data Lakehouse (strukturierte, semistrukturierte und unstrukturierte Daten) aus verschiedenen Quellen im nativen Format für die Verarbeitung von Big Data, das Training von Machine-Learning-Modellen und der Business Intelligence.
Logdateiarchivierung
Speichern von Anwendungsserver-Logs, Sicherheitslogs und Prüfpfaden für die Fehlerbehebung, Sicherheitsanalyse und Compliance.
Dokumentenmanagementsysteme
Speicherung und Verwaltung großer Mengen von Dokumenten, PDFs, gescannten Bildern und anderen Geschäftsunterlagen.
Hosting statischer Websites
Hosting der statischen Assets (HTML, CSS, JavaScript, Bilder) einer Website direkt aus dem Objektspeicher, der hoch skalierbar und kosteneffizient sein kann.
Softwareverteilung
Große Softwarepakete, Updates und Installationsprogramme speichern und verteilen.
Verwaltung von Gesundheitsdaten
Medizinische Bilder (Röntgenbilder, MRTs), Patientenakten und Genomdaten sicher und konform speichern.
Wissenschaftliche Forschung
Große Datasets aus Experimenten, Simulationen und Sensornetzwerken speichern, um sie zu analysieren und gemeinsam zu nutzen.
Der Schutz von Binary Large Objects (BLOBs) ist wichtig, insbesondere wenn es um sensible oder geschäftskritische Daten geht. Effektive Sicherheitsstrategien umfassen in der Regel mehrere Sicherheitsebenen:
Verschlüsselung
Die Verschlüsselung während der Übertragung verwendet HTTPS (TLS/SSL) für alle API-Anfragen. Die Verschlüsselung ruhender Daten sorgt dafür, dass BLOBs im Speicher verschlüsselt werden. Dabei können Sie zwischen serverseitiger Verschlüsselung (von Anbietern verwaltete Schlüssel) und von Kunden verwalteten/bereitgestellten Schlüsseln (CMEK/CSEK) wählen, um die Kontrolle zu erhöhen.
Identity and Access Management (IAM):
Implementieren Sie detaillierte Zugriffssteuerungsrichtlinien, um zu definieren, wer (Nutzer, Gruppen oder Dienstkonten) welche Aktionen (Lesen, Schreiben, Löschen, Auflisten) für bestimmte BLOBs oder Sammlungen von BLOBs (oft als Buckets oder Container bezeichnet) ausführen kann. Halten Sie sich an das Prinzip der geringsten Berechtigung und gewähren Sie nur die erforderlichen Berechtigungen.
Access Control Lists (ACLs)
ACLs können eine zusätzliche Steuerungsebene bieten, mit der Sie einzelnen Nutzern oder Gruppen bestimmte Berechtigungen für einzelne Objekte oder Buckets gewähren können. Sie eignen sich eher besser für die detaillierte Steuerung als für die skalierte Verwaltung und bieten einen granularen Ansatz für spezifische, detaillierte Berechtigungseinstellungen.
Signierte URLs/vorab signierte URLs
Für Szenarien, in denen Sie einen zeitlich begrenzten Zugriff auf ein bestimmtes BLOB gewähren müssen (z. B. wenn ein Nutzer eine gekaufte Datei herunterladen soll), sind signierte URLs ein sicherer Mechanismus. Diese URLs gewähren zeitlich begrenzte Berechtigungen zum Ausführen einer bestimmten Aktion, ohne dass der Nutzer vollständige Anmeldedaten benötigt.
Versionsverwaltung
Aktivieren Sie die Objekt-Versionsverwaltung, um mehrere Versionen eines BLOB zu speichern. So können Sie sich vor versehentlichem Überschreiben oder Löschen schützen, da Sie bei Bedarf frühere Versionen wiederherstellen können.
Audit-Logging
Aktivieren Sie das Audit-Logging, um Zugriffsanfragen und Aktionen zu verfolgen, die für Ihre BLOBs und Speicher-Buckets ausgeführt werden. Dies erleichtert die Sicherheitsanalyse, die Compliance-Berichterstellung und die Identifizierung unbefugter Zugriffsversuche.
Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“-Produkte kennenzulernen.