stackit.guru
DE

STACKIT Intake – Kafka-basierte Datenaufnahme

#data
data kafka streaming

STACKIT Intake – Kafka-basierte Datenaufnahme

Daten aus verschiedenen Quellen zuverlässig in ein Data Lakehouse zu bringen, ist oft der aufwändigste Teil einer Datenplattform. Kafka-Cluster betreiben, Connectoren pflegen, Schema-Kompatibilität sicherstellen – das bindet Ressourcen. STACKIT Intake nimmt dir diese Arbeit ab: Du schickst Daten per Kafka-Protokoll, Intake schreibt sie direkt in Apache Iceberg Tabellen.

Was ist STACKIT Intake?

STACKIT Intake ist ein Managed-Ingestion-Service, der das Kafka-Protokoll als Eingangsschnittstelle nutzt und Daten automatisch in Apache Iceberg-Tabellen im STACKIT Object Storage persistiert.

  • Kafka-kompatibel: Bestehende Kafka-Producer können ohne Code-Änderung Daten an Intake senden.
  • Apache Iceberg nativ: Daten landen direkt als Iceberg-Tabellen – sofort per SQL über Dremio abfragbar.
  • Schema Evolution: Änderungen am Datenformat werden automatisch erkannt und im Iceberg-Schema nachgezogen.
  • Exactly-once Semantik: Keine Duplikate, keine Datenverluste.
  • Managed Betrieb: Kein Kafka-Cluster-Management, keine Zookeeper-Sorgen.

Tutorial: Daten per Kafka-Producer in Iceberg schreiben

1. Voraussetzungen

  • Ein aktives STACKIT-Projekt mit aktiviertem Intake-Service.
  • Einen Intake-Endpunkt und Credentials aus dem STACKIT Portal.

2. Topic anlegen

stackit intake topic create \
  --name sensor-events \
  --project-id your-project-id \
  --schema-type json

3. Daten senden (Python)

Du kannst jeden Kafka-kompatiblen Producer verwenden:

from confluent_kafka import Producer

config = {
    "bootstrap.servers": "intake.stackit.cloud:9094",
    "security.protocol": "SASL_SSL",
    "sasl.mechanisms": "PLAIN",
    "sasl.username": "your-project-id",
    "sasl.password": "your-api-key"
}

producer = Producer(config)

event = '{"sensor_id": "s-42", "temperature": 21.5, "timestamp": "2026-03-26T10:00:00Z"}'
producer.produce("sensor-events", value=event)
producer.flush()

4. Daten in Dremio abfragen

Sobald die Daten in Intake ankommen, sind sie als Iceberg-Tabelle verfügbar:

SELECT sensor_id, AVG(temperature) as avg_temp
FROM intake.sensor_events
WHERE timestamp >= '2026-03-01'
GROUP BY sensor_id
ORDER BY avg_temp DESC;

5. Durchsatz überwachen

stackit intake topic stats --name sensor-events

# Ausgabe:
# TOPIC            MESSAGES/s   BYTES/s    LAG
# sensor-events    1.2k         3.4 MB     0

Nächste Schritte

  • Kombiniere Intake mit STACKIT Workflows, um nach der Aufnahme automatisch Transformationen auszuführen.
  • Nutze Dremio Data Reflections, um häufige Abfragen auf den Iceberg-Tabellen zu beschleunigen.
  • Richte Alerting ein, um bei steigendem Consumer-Lag benachrichtigt zu werden.