0Pricing
Cloud & IT Cert Prep · Lektion

Einen Data Lake auf S3 erstellen

Entwerfen Sie einen S3-basierten Data Lake mit Landing-, Verarbeitungs- und kuratierter Zone, wenden Sie Bucket-Richtlinien an und organisieren Sie Daten für effiziente Abfragen nach Partitionen.

Einen Data Lake auf S3 erstellen ist eine kostenlose Cloud & IT Cert Prep-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cloud & IT Cert Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Data Lake?

Ein Data Lake ist ein zentralisiertes Repository, das strukturierte, semistrukturierte und unstrukturierte Daten in beliebigem Umfang speichert. Im Gegensatz zu einem Data Warehouse speichert ein Data Lake Daten in ihrem rohen, nativen Format, bis sie für Analysen benötigt werden. Amazon S3 ist aufgrund seiner Haltbarkeit, Skalierbarkeit und Integration mit Analysediensten die gängigste Grundlage für Data Lakes auf AWS.

Architektur der Data-Lake-Zonen

Ein gut konzipierter S3 Data Lake verwendet drei logische Zonen: die Landing Zone (Rohdatenaufnahme, unverändert), die Processing Zone (bereinigt und transformiert) und die Curated Zone (für Analysen bereit, für Fachbereiche nutzbar). Jede Zone ist üblicherweise ein eigenes S3-Präfix oder ein eigener Bucket. Dieses Muster wird manchmal als Medallion-Architektur (Bronze, Silver, Gold) bezeichnet.

# Example zone structure inside one S3 bucket
# s3://my-data-lake/
#   landing/    <- raw ingest from source systems
#   processing/ <- cleansed, validated data
#   curated/    <- aggregated, analytics-ready

Erstellen der S3-Bucket-Struktur

Verwenden Sie die AWS CLI, um einen versionierten und verschlüsselten S3-Bucket zu erstellen und für jede Zone Präfixe anzuwenden. Aktivieren Sie die Versionierung, damit die erneute Verarbeitung jederzeit auf die Rohdatenquelle zurückgreifen kann, und aktivieren Sie die serverseitige Verschlüsselung (SSE-S3 oder SSE-KMS) für Daten im Ruhezustand. Blockieren Sie den gesamten öffentlichen Zugriff, damit die Daten privat bleiben.

aws s3api create-bucket \
  --bucket my-data-lake-123 \
  --region us-east-1

aws s3api put-bucket-versioning \
  --bucket my-data-lake-123 \
  --versioning-configuration Status=Enabled

aws s3api put-bucket-encryption \
  --bucket my-data-lake-123 \
  --server-side-encryption-configuration \
    '{"Rules":[{"ApplyServerSideEncryptionByDefault":{"SSEAlgorithm":"AES256"}}]}'

Anwenden von Bucket-Richtlinien für den Zonenzugriff

Jede Zone sollte über eine eigene Zugriffsrichtlinie verfügen, damit verschiedene Teams und Services nur auf die benötigten Daten zugreifen können. Beispielsweise erhalten Rollen für die Datenaufnahme s3:PutObject-Berechtigungen für das Landing-Präfix, ETL-Rollen Lesezugriff auf Landing und Schreibzugriff auf Processing und Analytics-Rollen schreibgeschützten Zugriff auf Curated. Dadurch wird das Prinzip der geringsten Berechtigung innerhalb des Data Lakes durchgesetzt.

# Attach a policy that allows the ETL role to read landing/ and write processing/
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::123456789012:role/ETLRole"},
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-data-lake-123/landing/*"
    },
    {
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::123456789012:role/ETLRole"},
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::my-data-lake-123/processing/*"
    }
  ]
}

Partitionieren von Daten für effiziente Abfragen

Partitionierung organisiert Daten in S3 anhand von Ordnerhierarchien, die Abfrageprädikaten entsprechen (z. B. Jahr/Monat/Tag oder Region/Service). Wenn Athena oder Glue partitionierte Daten liest, werden nur die relevanten Partitionen statt des gesamten Datensatzes durchsucht. Dadurch verringern sich Kosten und Abfragezeit deutlich. Ein guter Partitionsschlüssel ist ein Schlüssel, der häufig in WHERE-Klauseln vorkommt.

# Hive-style partition naming for year/month/day
# s3://my-data-lake-123/curated/sales/
#   year=2024/month=01/day=15/part-00000.parquet
#   year=2024/month=01/day=16/part-00000.parquet
#   year=2024/month=02/day=01/part-00000.parquet

# Athena recognises this naming automatically

Spaltenbasierte Formate: Parquet und ORC

Das Speichern von Daten in einem spaltenbasierten Format wie Apache Parquet oder ORC (Optimised Row Columnar) verbessert die Performance analytischer Abfragen deutlich und senkt die Kosten für das Scannen von S3-Daten. Spaltenbasierte Formate ermöglichen es Abfrage-Engines, nur die benötigten Spalten zu lesen, sich wiederholende Werte effizient zu komprimieren und Predicate Pushdown zu unterstützen. Konvertieren Sie rohe CSV- oder JSON-Daten in der Curated Zone immer in Parquet.

# Converting CSV to Parquet with AWS Glue (simplified PySpark)
import sys
from awsglue.context import GlueContext
from pyspark.context import SparkContext

sc = SparkContext()
glueContext = GlueContext(sc)

datasource = glueContext.create_dynamic_frame.from_catalog(
    database='my_db', table_name='raw_sales')

glueContext.write_dynamic_frame.from_options(
    frame=datasource,
    connection_type='s3',
    connection_options={'path': 's3://my-data-lake-123/curated/sales/'},
    format='parquet')

S3-Lifecycle-Richtlinien zur Kostenverwaltung

Die Daten in der Landing Zone wachsen kontinuierlich, ältere Rohdateien werden jedoch nur selten erneut abgerufen. Verwenden Sie S3 Lifecycle Policies, um Rohdaten im Laufe der Zeit automatisch in günstigere Speichерklassen zu überführen. Verschieben Sie beispielsweise Objekte in landing/ nach 30 Tagen in S3 Glacier Instant Retrieval und nach 90 Tagen in Glacier Deep Archive. Dadurch lassen sich die Speicherkosten für historische Daten allein um 70–90 % senken.

aws s3api put-bucket-lifecycle-configuration \
  --bucket my-data-lake-123 \
  --lifecycle-configuration '{
    "Rules": [{
      "ID": "ArchiveLanding",
      "Filter": {"Prefix": "landing/"},
      "Status": "Enabled",
      "Transitions": [
        {"Days": 30, "StorageClass": "GLACIER_IR"},
        {"Days": 90, "StorageClass": "DEEP_ARCHIVE"}
      ]
    }]
  }'

Lake Formation für granularen Zugriff

AWS Lake Formation setzt auf S3 und den Glue Data Catalogue auf und ermöglicht eine Zugriffssteuerung auf Tabellen-, Spalten- und Zeilenebene, ohne dass Sie komplexe Bucket-Richtlinien schreiben müssen. Lake Formation lässt sich in Athena, Redshift Spectrum und EMR integrieren. Dieser Ansatz wird bevorzugt, wenn mehrere Teams denselben Data Lake abfragen und unterschiedliche Einblicke in sensible Spalten wie personenbezogene Daten oder Finanzdaten benötigen.

# Grant Lake Formation table access via CLI
aws lakeformation grant-permissions \
  --principal DataLakePrincipalIdentifier=arn:aws:iam::123456789012:role/AnalystRole \
  --permissions SELECT \
  --resource '{
    "Table": {
      "DatabaseName": "my_db",
      "Name": "curated_sales"
    }
  }'

S3-Ereignisbenachrichtigungen für Aufnahmetrigger

Wenn eine neue Datei in der S3 Landing Zone abgelegt wird, müssen Sie automatisch die Verarbeitung auslösen. Verwenden Sie S3 Event Notifications, um bei der Erstellung eines Objekts ein Ereignis an SQS, SNS oder Lambda zu senden. Eine Lambda-Funktion oder ein Glue-Workflow übernimmt dann die neue Datei, validiert sie und führt sie durch die Pipeline. So entsteht ein vollständig automatisierter, ereignisgesteuerter Prozess für die Datenaufnahme in den Data Lake.

# S3 event notification to trigger Lambda on new object
aws s3api put-bucket-notification-configuration \
  --bucket my-data-lake-123 \
  --notification-configuration '{
    "LambdaFunctionConfigurations": [{
      "LambdaFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:ProcessNewFile",
      "Events": ["s3:ObjectCreated:*"],
      "Filter": {
        "Key": {"FilterRules": [{"Name": "prefix", "Value": "landing/"}]}
      }
    }]
  }'

Verschlüsselung und Compliance im Data Lake

Ein Data Lake für den Produktivbetrieb muss die Verschlüsselung überall durchsetzen. Verwenden Sie AWS KMS Customer Managed Keys (CMK) für SSE-KMS bei sensiblen Daten und verlangen Sie explizite Schlüsselberechtigungen für jeden Nutzer. Aktivieren Sie S3 Object Lock im Compliance-Modus für regulatorisch relevante Daten, die weder gelöscht noch überschrieben werden dürfen. Verwenden Sie Macie, um im Data Lake gespeicherte personenbezogene Daten automatisch zu erkennen und entsprechende Warnungen auszugeben.

# Enforce KMS encryption on all PUT operations via bucket policy
{
  "Effect": "Deny",
  "Principal": "*",
  "Action": "s3:PutObject",
  "Resource": "arn:aws:s3:::my-data-lake-123/curated/*",
  "Condition": {
    "StringNotEquals": {
      "s3:x-amz-server-side-encryption": "aws:kms"
    }
  }
}

Data-Lake-Zugriff über Kontogrenzen hinweg

In großen Organisationen befindet sich der S3-Bucket des Data Lakes in einem zentralen Data-Platform-Konto, während konsumierende Teams in separaten AWS-Konten arbeiten. Gewähren Sie den Zugriff mithilfe einer Kombination aus Bucket-Richtlinien (mit dem Principal des konsumierenden Kontos) und IAM-Rollen im konsumierenden Konto, die kontenübergreifende Berechtigungen übernehmen. Resource Access Manager (RAM) ist eine Alternative für die auf Lake Formation basierende Freigabe.

# Bucket policy in central account allows consumer account to read curated/
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::999988887777:root"
  },
  "Action": ["s3:GetObject", "s3:ListBucket"],
  "Resource": [
    "arn:aws:s3:::my-data-lake-123",
    "arn:aws:s3:::my-data-lake-123/curated/*"
  ]
}

Kurztest

Testen Sie Ihr Verständnis der Konzepte aus dieser Lektion für AWS Solutions Architect (SAA-C03).

Zusammenfassung der Lektion

In dieser Lektion haben Sie gelernt: Data Lakes verwenden S3 mit Landing-, Processing- und Curated-Zonen, Partitionierung und das Parquet-Format senken die Kosten von Athena-Abfragen, und Lake Formation ermöglicht eine granulare Zugriffssteuerung auf Spalten- und Zeilenebene. Als Nächstes sehen wir uns AWS Glue für serverloses ETL und den Glue Data Catalogue an.

Häufig gestellte Fragen

Ist die Lektion „Einen Data Lake auf S3 erstellen“ kostenlos?

Ja — der vollständige Text von „Einen Data Lake auf S3 erstellen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cloud & IT Cert Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Einen Data Lake auf S3 erstellen“?

Entwerfen Sie einen S3-basierten Data Lake mit Landing-, Verarbeitungs- und kuratierter Zone, wenden Sie Bucket-Richtlinien an und organisieren Sie Daten für effiziente Abfragen nach Partitionen. Du übst Cloud & IT Cert Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cloud & IT Cert Prep zu starten?

Keine Vorkenntnisse erforderlich. Cloud & IT Cert Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Einen Data Lake auf S3 erstellen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cloud & IT Cert Prep-Lektion Code schreiben und ausführen?

Ja. Jede Cloud & IT Cert Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Einen Data Lake auf S3 erstellen
  2. AWS Glue: ETL und Datenkatalog
  3. Amazon Athena: Server-SQL auf S3
  4. Kinesis Streams, Firehose und Echtzeitanalysen
← Zurück zu Cloud & IT Cert Prep