= 优秀的开源数据工程
:toc:
:toc-placement!:
这个优秀列表旨在提供与数据工程相关的开源项目概览。
这是一项社区努力:请贡献并发送拉取请求以扩展这个列表!
有关包括非开源工具的列表,请参阅这个出色的优秀列表。
toc::[]
== 分析
- Apache Spark - 用于大规模数据处理的统一分析引擎。包括Scala、Java、Python(称为PySpark)和R(SparkR)的API。
- Apache Beam - Google DataFlow的开源实现。提供在任何执行引擎(包括Spark、Flink或其自身的DirectRunner)上运行的批处理和流数据处理作业的功能。支持Java、Python和Go的多个API。
- Apache Flink - 对数据流进行有状态计算。
- Trino(前身为PrestoSQL) - 用于大数据的分布式SQL查询引擎。
== 商业智能
- Apache Superset - 现代的、企业级的商业智能Web应用程序。
- HUE - Hadoop用户界面。类似于Superset,但可以连接RDBMS、Hive、Impala、HBase、Spark、HDFS & S3、Oozie、Pig、YARN Job Explorer等。提供可扩展的Django环境用于自定义应用集成。
- Metabase - 让公司中的每个人都能轻松提问并从数据中学习的方式。
- Redash - 解锁数据的所有工具。
== 数据湖仓
- Delta Lake - 开源存储框架,支持使用Spark、PrestoDB、Flink、Trino和Hive等计算引擎构建湖仓架构,并提供Scala、Java、Rust、Ruby和Python的API。
- Apache Hudi - 事务性数据湖平台,为数据湖带来数据库和数据仓库的功能。Hudi重新构想了缓慢的旧式批处理数据处理,提供强大的新增量处理框架,实现低延迟的分钟级分析。
- Apache Iceberg - 用于巨大分析表的高性能格式。Iceberg为大数据带来了SQL表的可靠性和简单性,同时使Spark、Trino、Flink、Presto、Hive和Impala等引擎能够安全地同时处理相同的表。
== 变更数据捕获
- Debezium - MySQL、Postgres、MongoDB、SQL Server等的变更数据捕获。
- Maxwell - Maxwell's daemon,一个MySQL到JSON的Kafka生产者。
== 数据存储
- Apache Calcite - SQL解析器,数据存储的构建块。
- Apache Cassandra - 开源分布式宽列存储,NoSQL数据库。
- Apache Druid - 高性能实时分析数据库。
- Apache HBase - 开源非关系分布式数据库。
- Apache Pinot - 实时分布式OLAP数据存储。
- ClickHouse - 开源分布式列式DBMS。
- InfluxDB - 专门构建的开源时间序列数据库。
- MinIO - MinIO是一个高性能、分布式对象存储系统,兼容AWS S3。
- Postgres - 世界上最先进的开源关系数据库。
== 数据治理和注册表
- Amundsen - 元数据目录。
- Apache Atlas - Hadoop的数据治理和元数据框架。
- DataHub - 通用元数据搜索和发现工具。
- Metacat - 统一的元数据探索API服务。
- Elementary - 数据可靠性解决方案,从即插即用的数据血缘和数据集运行状态开始。
- Monosi - 数据可观察性和监控平台。
- OpenMetadata - 通用元数据、搜索和血缘工具。
== 数据虚拟化
- Apache Drill - 用于Hadoop、NoSQL和云存储的无模式SQL查询引擎。
- Dremio - 数据湖引擎。提供基于Apache Arrow的查询和加速引擎,以及为数据科学家和分析师创建IT管理的自助服务层的能力。
- Teiid - 不同信息源的关系抽象。
- Presto - 用于大数据的分布式SQL查询引擎。
== 数据编排
- Alluxio - 用于HDFS、S3、Ceph、NFS和相关文件存储的可扩展、多层分布式缓存。提供从Spark、Hive和Presto到目录的SQL查询集成。
- dbt - 赋予数据分析师和工程师应用类似软件工程师构建应用程序的方法,dbt确保数据转换过程符合既定实践 。
== 格式
- Apache Avro - 数据序列化系统。
- Apache Parquet - 列式存储格式。
- Apache ORC - 另一种列式存储格式。
- Apache Thrift - 数据类型和服务接口定义及代码生成器。
- Apache Arrow - 跨语言内存数据开发平台。它为平面和分层数据指定了标准化的、与语言无关的列式内存格式,针对现代硬件上的高效分析操作进行了组织。它还提供计算库和零拷贝IPC和流式消息传递。
- Cap'n Proto - 数据交换格式和基于能力的RPC系统。
- FlatBuffers - 适用于C++、C#、C、Go、Java、JavaScript、Lobster、Lua、TypeScript、PHP、Python和Rust的高效跨平台序列化库。
- MessagePack - 高效的二进制序列化格式。它允许您像JSON一样在多种语言之间交换数据。
- Protocol Buffers - Google的语言中立、平台中立、可扩展的结构化数据序列化机制。
== 集成
- Apache Camel - 轻松集成各种消费或生产数据的系统。
- Kafka Connect - 处理Apache Kafka数据输入和输出的可重用框架。
- Logstash - 开源服务器端数据处理管道。
- Telegraf - 用Go编写的插件驱动服务器代理(部署为单个二进制文件,没有外部依赖),用于收集和发送来自数据库、系统和IoT传感器的指标和事件。提供数百个现有插件。
== 消息基础设施
- Apache ActiveMQ - 灵活强大的多协议消息传递。
- Apache Kafka - 具有消息功能的分布式提交日志。
- Apache Pulsar - 分布式发布-订阅消息系统。
- Liiklus - 事件网关,为类Kafka系统提供反应式gRPC/RSocket访问。
- Nakadi - 分布式事件总线,在类Kafka队列之上实现RESTful API抽象。
- NATS - 简单、安全和高性能的消息系统。
- RabbitMQ - 消息代理。
- Waltz - 基于仲裁的分布式预写日志,用于复 制事务。
- ZeroMQ - 开源通用高性能消息库。
== 规范和标准
- CloudEvents - 以通用方式描述事件数据的规范。
== 流处理
== 测试
== 监控和日志
== 版本控制
== 工作流管理
== 相关资源
仅概述内容,不包含具体工具
=== 幻灯片、录音和播客
=== 博客文章和文章
=== 集合
== 许可证
本仓库的内容采用"知识共享署名-相同方式共享4.0国际许可协议"授权。