Przejdź do treści
Biblioteka skilli
Dane i analityka · Budowanie i kod

processing-streaming-data

/processing-streaming-data

Pomaga budować niezawodne potoki danych strumieniowych w Kafka, Spark Structured Streaming lub Flink: semantyka dostarczania, idempotentni konsumenci, okna czasowe, znaczniki wodne, dane spóźnione i checkpointy.

Licencja
Apache-2.0
Ostatnia zmiana repozytorium
30.08.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 30.08.2026, bez odwołań do wycofanych modeli i API.

Licencja

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

Co robi i kiedy

Pomaga budować niezawodne potoki danych strumieniowych w Kafka, Spark Structured Streaming lub Flink: semantyka dostarczania, idempotentni konsumenci, okna czasowe, znaczniki wodne, dane spóźnione i checkpointy.

Oryginalny opis (EN)

Build reliable streaming data pipelines with Kafka, Spark Structured Streaming, or Flink — delivery semantics (at-least-once vs exactly-once), idempotent consumers, event-time windowing and watermarks, handling late/out-of-order data, and checkpointing. Use when building or debugging streaming pipelines, configuring consumer groups, choosing delivery guarantees, or handling late events.

Jak działa

  1. When to use
  2. Workflow
  3. Patterns
  4. Common pitfalls
Sekcje z nagłówków SKILL.md, w oryginale · 72 linii, 387 słów
Podgląd SKILL.md
---
name: processing-streaming-data
description: Build reliable streaming data pipelines with Kafka, Spark Structured Streaming, or Flink — delivery semantics (at-least-once vs exactly-once), idempotent consumers, event-time windowing and watermarks, handling late/out-of-order data, and checkpointing. Use when building or debugging streaming pipelines, configuring consumer groups, choosing delivery guarantees, or handling late events.
---

# Processing Streaming Data

## When to use

- Building or debugging Kafka / Spark Structured Streaming / Flink pipelines.
- Choosing delivery semantics and making consumers idempotent.
- Windowing on event time and handling late/out-of-order events.
- Do NOT use for batch ELT (use `building-ingestion-pipelines`).

## Workflow

```
- [ ] Choose delivery semantics; make effects idempotent regardless
- [ ] Use event time (not processing time) with watermarks
- [ ] Configure checkpointing for recovery
- [ ] Decide late-data policy (allowed lateness -> update, drop, or side output)
- [ ] Size partitions/parallelism to the throughput
```

1. **Delivery semantics.** At-least-once is the common default (duplicates
   possible on retry). Exactly-once needs transactional sinks/offsets. Either way,
   **make the downstream effect idempotent** (upsert by key) so duplicates don't
   corrupt state — this is more robust than relying on exactly-once alone.
2. **Event time + watermarks.** Window by when the event happened, not when it was
   processed; a watermark bounds how long to wait for stragglers.
3. **Checkpoint** so a failed job resumes from the last committed offset/state
   instead of reprocessing everything or losing data.
4. **Late data policy** — allowed lateness updates windows; beyond it, drop or
   route to a side output/dead-letter for reconciliation.

## Patterns

**Idempotent consumer** — key the sink write on a stable event id so replays
upsert rather than duplicate:

```python
# Structured Streaming: exactly-once-ish via idempotent upsert in foreachBatch
def upsert(batch_df, batch_id):
    (delta_table.alias("t")
       .merge(batch_df.dropDuplicates(["event_id"]).alias("s"), "t.event_id = s.event_id")
       .whenNotMatchedInsertAll().execute())

(stream.writeStream.foreachBatch(upsert)
   .option("checkpointLocation", "/chk/events").start())
```

**Event-time windowing with watermark:**

```python
(events
  .withWatermark("event_time", "10 minutes")
  .groupBy(window("event_time", "5 minutes"), "user_id")
  .count())
```

**Kafka consumer basics** — consumer group for scale-out; commit offsets **after**
processing (not before) to avoid data loss; partition count caps parallelism.

## Common pitfalls

- **Relying on exactly-once instead of idempotent sinks** — any at-least-once hop
  reintroduces duplicates; upsert by key.
- **Processing-time windows** — produce wrong results when events arrive late or
  the job lags; use event time + watermark.
- **Committing offsets before processing** — a crash then loses those messages.
- **No checkpointing** — recovery either reprocesses everything or loses state.
- **Unbounded state** (no watermark/TTL) — keyed state grows until the job OOMs.
- **Too few partitions** — caps consumer parallelism; you can't scale past
  partition count.
- **Ignoring dead-letter/late paths** — bad or very late events silently vanish.

Wersje

W bazie nie ma innych skilli o nazwie processing-streaming-data.

Migawka bazy z 28.10.2026 · wersja paczki e21bd533d320 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100stream-processing-expert
    Buduje ciągłe potoki danych nad strumieniami zdarzeń: okna, watermarki, semantykę exactly-once, przetwarzanie ze stanem i change data capture, z Flink, Spark Structured Streaming i Debezium.
  • 90streaming-and-messaging-systems
    Prowadzi przez projektowanie strumieniowania zdarzeń i potoków danych w czasie rzeczywistym z Kafką, Kinesis i Flinkiem: okna, konsumenci ze stanem i przetwarzanie niemal na żywo.
  • 90data-streaming
    Projektuje strumieniowe przetwarzanie zdarzeń w Kafka, Flink i Kinesis, z CDC przez Debezium i gwarancjami niezawodności.
  • 100realtime-data-agent
    Wspiera strumieniowe przetwarzanie danych i architekturę zdarzeniową: projekt tematów Kafka lub Kinesis, logika Flink i Spark Streaming, serwer WebSocket, alerty progowe i analiza opóźnień end-to-end.
  • 90streaming
    Pomaga wybrać między przetwarzaniem wsadowym a strumieniowym, dobierając wzorzec zdarzeń i narzędzie do potoku danych.
  • 86spark
    Pomaga w obliczeniach Spark: zapytaniach Spark SQL, Structured Streaming, RDD i przetwarzaniu dużych danych.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.