A Claude skill for Apache Flink SQL, Table API, and UDF development — covering both OSS Flink and Confluent Cloud.
When Claude has this skill loaded, it can help you:
- Write Flink SQL queries — windows, joins, aggregations, MATCH_RECOGNIZE
- Build Table API pipelines — Java and Python
- Create UDFs — Scalar functions, Table functions, Process Table Functions (PTFs)
- Deploy to Confluent Cloud — CLI commands, compute pools, artifacts
- Troubleshoot errors — Common mistakes and solutions
- Design streaming architectures — Event-time, watermarks, state management
flink-sql-skill/
├── SKILL.md # Core patterns, quick reference (~330 lines)
└── references/
├── udf-guide.md # UDF development templates (~400 lines)
├── sql-patterns.md # Advanced SQL patterns (~500 lines)
├── confluent-cloud.md # Confluent-specific features (~480 lines)
├── ptf-guide.md # Process Table Functions (~725 lines)
├── kafka-patterns.md # Kafka connector patterns (~450 lines)
└── troubleshooting.md # Common errors & fixes (~600 lines)
Total: ~3,500 lines of curated Flink knowledge
- Create a new Project in Claude.ai
- Go to Project Knowledge
- Upload
SKILL.mdand thereferences/folder contents - Start chatting about Flink!
# Clone this repo
git clone https://github.com/gAmUssA/flink-sql-skill.git
# Reference in Claude Code
claude --skill ./flink-sql-skill/Reference the skill directly:
https://raw.githubusercontent.com/gAmUssA/flink-sql-skill/main/SKILL.md
Once the skill is loaded, try asking Claude:
"Help me write a Flink SQL query with tumbling windows to count orders per hour"
"Create a UDF that masks email addresses for GDPR compliance"
"What's the difference between interval joins and temporal joins?"
"Show me how to deploy a UDF to Confluent Cloud"
"Debug this error: Cannot generate watermark for rowtime column"
- Window aggregations (TUMBLE, HOP, SESSION, CUMULATE)
- All join types (interval, temporal, lookup, window)
- Deduplication and Top-N queries
- MATCH_RECOGNIZE for pattern detection
- CDC handling with Debezium
- Java ScalarFunction and TableFunction templates
- Python @udf decorator patterns
- Maven POM with shade plugin
- Confluent Cloud deployment workflow
- 9 real-world examples from production use cases
- State management (ValueState, MapView, ListView)
- Timer patterns for session detection
- Changelog handling (consuming and producing CDC)
- Multiple input streams (co-partition patterns)
- Kafka source/sink table definitions
- Avro + Schema Registry configuration
- Upsert Kafka for stateful outputs
- Flink vs Kafka Streams comparison
This skill incorporates patterns from:
- MartijnVisser/flink-ptf-examples — PTF examples
- confluentinc/flink-table-api-java-examples — Official Confluent examples
- Apache Flink Documentation
- Confluent Cloud Flink Documentation
- Kafka in Action (co-authored by Viktor Gamov)
- FLIP-440: ProcessTableFunction
- Querying Streams YouTube Series
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Run validation:
python scripts/validate.py - Submit a pull request
Apache License 2.0 — See LICENSE for details.
Maintainer: Viktor Gamov — Principal Developer Advocate at Confluent
"Tables as movies, not photographs" 🎬