{"adoption": {"forks": 3935, "observed_at": "2026-08-28T04:11:09.145129+00:00", "stars": 15095}, "canonical_url": "https://ross.abutalabs.com/products/flink-learning", "card": {"archived": false, "artifact_type": "learning-resource", "description": "flink learning blog. http://www.54tianzhisheng.cn/  含 Flink 入门、概念、原理、实战、性能调优、源码解析等内容。涉及 Flink Connector、Metrics、Library、DataStream API、Table API & SQL 等内容的学习案例，还有 Flink 落地应用的大型项目案例（PVUV、日志存储、百亿数据实时去重、监控告警）分享。欢迎大家支持我的专栏《大数据实时计算引擎 Flink 实战与性能优化》", "domain": ["big-data", "analytics", "tutorials"], "enriched": true, "function": ["streaming", "etl", "monitoring", "alerting", "developer-tools"], "health_score": 69, "homepage": "http://www.54tianzhisheng.cn/tags/Flink/", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["zhisheng17/flink-learning"], "name": "zhisheng17/flink-learning", "platform": ["jvm", "cross-platform"], "pushed_at": "2026-05-06T13:39:08+00:00", "repo": "zhisheng17/flink-learning", "stars": 15095, "tags": ["apache-flink", "stream-processing", "kafka", "elasticsearch", "flink-sql", "performance-tuning", "source-code-analysis", "examples", "data-engineering", "real-time"], "topics": ["flink", "kafka", "elasticsearch", "spark", "redis", "mysql", "rocketmq", "hbase", "rabbitmq", "stream-processing", "streaming", "clickhouse", "loki", "influxdb", "opentsdb"], "urls": [], "use_cases": ["learn Apache Flink from scratch with runnable examples", "understand Flink DataStream and Table API & SQL usage", "build real-time PV/UV statistics with Flink", "implement real-time log processing and error alerting", "study Flink performance tuning and data skew handling", "learn how Flink connectors integrate with Kafka, Redis, MySQL, and Elasticsearch", "explore Flink source code analysis and internals"], "what_it_is": "A comprehensive Apache Flink learning repository with example code covering DataStream API, Table API & SQL, connectors, metrics, and production case studies like PV/UV statistics, log processing, deduplication, and alerting. It accompanies the author's blog and paid column on Flink fundamentals, internals, performance tuning, and source code analysis.", "when_to_avoid": ["you need production-ready, maintained streaming libraries rather than educational examples", "you require non-Java (e.g., Python/Scala) Flink examples", "you want vendor-neutral documentation instead of one author's blog-style material"], "when_to_choose": ["you are learning Flink and want curated, versioned example code", "you need reference implementations of common streaming use cases like deduplication or alerting", "you want Chinese-language tutorials paired with working Java projects"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/flink-learning", "repo": "zhisheng17/flink-learning", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:06:44.246371+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "add723b4bae5ce54aecfbc2817733ecb9f9e9e5bf361c138afeb793b9f72721e", "fetched_at": "2026-08-28T04:11:09.145129+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhisheng17/flink-learning"}, {"content_hash": "6c0540efbdff03bbaa9734bab97940ac24b8c2a721e3622c4f58dafbf1f94a39", "fetched_at": "2026-08-29T08:04:36.045499+00:00", "kind": "homepage", "missing": false, "url": "http://www.54tianzhisheng.cn/tags/Flink/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:06:44.246371+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "add723b4bae5ce54aecfbc2817733ecb9f9e9e5bf361c138afeb793b9f72721e", "fetched_at": "2026-08-28T04:11:09.145129+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhisheng17/flink-learning"}, {"content_hash": "6c0540efbdff03bbaa9734bab97940ac24b8c2a721e3622c4f58dafbf1f94a39", "fetched_at": "2026-08-29T08:04:36.045499+00:00", "kind": "homepage", "missing": false, "url": "http://www.54tianzhisheng.cn/tags/Flink/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:06:44.246371+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "add723b4bae5ce54aecfbc2817733ecb9f9e9e5bf361c138afeb793b9f72721e", "fetched_at": "2026-08-28T04:11:09.145129+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhisheng17/flink-learning"}, {"content_hash": "6c0540efbdff03bbaa9734bab97940ac24b8c2a721e3622c4f58dafbf1f94a39", "fetched_at": "2026-08-29T08:04:36.045499+00:00", "kind": "homepage", "missing": false, "url": "http://www.54tianzhisheng.cn/tags/Flink/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:06:44.246371+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "add723b4bae5ce54aecfbc2817733ecb9f9e9e5bf361c138afeb793b9f72721e", "fetched_at": "2026-08-28T04:11:09.145129+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhisheng17/flink-learning"}, {"content_hash": "6c0540efbdff03bbaa9734bab97940ac24b8c2a721e3622c4f58dafbf1f94a39", "fetched_at": "2026-08-29T08:04:36.045499+00:00", "kind": "homepage", "missing": false, "url": "http://www.54tianzhisheng.cn/tags/Flink/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:06:44.246371+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "add723b4bae5ce54aecfbc2817733ecb9f9e9e5bf361c138afeb793b9f72721e", "fetched_at": "2026-08-28T04:11:09.145129+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhisheng17/flink-learning"}, {"content_hash": "6c0540efbdff03bbaa9734bab97940ac24b8c2a721e3622c4f58dafbf1f94a39", "fetched_at": "2026-08-29T08:04:36.045499+00:00", "kind": "homepage", "missing": false, "url": "http://www.54tianzhisheng.cn/tags/Flink/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:06:44.246371+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "add723b4bae5ce54aecfbc2817733ecb9f9e9e5bf361c138afeb793b9f72721e", "fetched_at": "2026-08-28T04:11:09.145129+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhisheng17/flink-learning"}, {"content_hash": "6c0540efbdff03bbaa9734bab97940ac24b8c2a721e3622c4f58dafbf1f94a39", "fetched_at": "2026-08-29T08:04:36.045499+00:00", "kind": "homepage", "missing": false, "url": "http://www.54tianzhisheng.cn/tags/Flink/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:09.145129+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:06:44.246371+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "add723b4bae5ce54aecfbc2817733ecb9f9e9e5bf361c138afeb793b9f72721e", "fetched_at": "2026-08-28T04:11:09.145129+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhisheng17/flink-learning"}, {"content_hash": "6c0540efbdff03bbaa9734bab97940ac24b8c2a721e3622c4f58dafbf1f94a39", "fetched_at": "2026-08-29T08:04:36.045499+00:00", "kind": "homepage", "missing": false, "url": "http://www.54tianzhisheng.cn/tags/Flink/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:06:44.246371+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "add723b4bae5ce54aecfbc2817733ecb9f9e9e5bf361c138afeb793b9f72721e", "fetched_at": "2026-08-28T04:11:09.145129+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhisheng17/flink-learning"}, {"content_hash": "6c0540efbdff03bbaa9734bab97940ac24b8c2a721e3622c4f58dafbf1f94a39", "fetched_at": "2026-08-29T08:04:36.045499+00:00", "kind": "homepage", "missing": false, "url": "http://www.54tianzhisheng.cn/tags/Flink/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:06:44.246371+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "add723b4bae5ce54aecfbc2817733ecb9f9e9e5bf361c138afeb793b9f72721e", "fetched_at": "2026-08-28T04:11:09.145129+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhisheng17/flink-learning"}, {"content_hash": "6c0540efbdff03bbaa9734bab97940ac24b8c2a721e3622c4f58dafbf1f94a39", "fetched_at": "2026-08-29T08:04:36.045499+00:00", "kind": "homepage", "missing": false, "url": "http://www.54tianzhisheng.cn/tags/Flink/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:06:44.246371+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "add723b4bae5ce54aecfbc2817733ecb9f9e9e5bf361c138afeb793b9f72721e", "fetched_at": "2026-08-28T04:11:09.145129+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhisheng17/flink-learning"}, {"content_hash": "6c0540efbdff03bbaa9734bab97940ac24b8c2a721e3622c4f58dafbf1f94a39", "fetched_at": "2026-08-29T08:04:36.045499+00:00", "kind": "homepage", "missing": false, "url": "http://www.54tianzhisheng.cn/tags/Flink/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 81, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2801, "days_push": 119, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}