数据工程

很棒的数据工程 ==========================

面向软件开发人员的精选数据工程工具清单 Awesome

内容清单

Databases

-关系 * RQLite 使用Raft共识协议复制SQLite * MySQL 全球最受欢迎的开源数据库. * TiDB TiDB是与MySQL协议兼容的分布式NewSQL数据库 * Percona XtraBackup Percona XtraBackup是针对所有版本的Percona Server,MySQL®和MariaDB®的免费,开源,完整的在线备份解决方案 * mysql_utils Pinterest MySQL管理工具 * MariaDB MySQL的增强的直接替代品. * PostgreSQL 世界上最先进的开源数据库. * Amazon RDS Amazon RDS使在云中轻松建立,操作和扩展关系数据库变得容易. * Crate.IO 具有NOSQL优点的可扩展SQL数据库. - 核心价值 * Redis 开源,BSD许可的高级键值缓存和存储. * Riak 分布式数据库旨在通过在多个服务器之间分布数据来提供最大的数据可用性. * AWS DynamoDB 快速和灵活的NoSQL数据库服务,适用于所有需要任何规模的一致,单位毫秒毫秒延迟的应用程序. * HyperDex HyperDex是可扩展的可搜索键值存储. 不推荐使用. * SSDB 高性能NoSQL数据库,支持许多数据结构,是Redis的替代方案 * Kyoto Tycoon Kyoto Tycoon是在Kyoto Cabinet键值数据库之上的轻型网络服务器,旨在实现高性能和并发性 * IonDB 微控制器和物联网应用的键值存储 -专栏 * Cassandra 当您需要可扩展性和高可用性而又不影响性能时的正确选择. * Cassandra Calculator 这种简单的形式使您可以为Apache Cassandra集群尝试不同的值,并查看对您的应用程序有什么影响. * CCM 轻松在本地主机上创建和销毁Apache Cassandra集群的脚本 * ScyllaDB 使用seastar框架的NoSQL数据存储,与Apache Cassandra兼容https://www.scylladb.com/ * HBase Hadoop数据库,一个分布式,可扩展的大数据存储. * AWS Redshift 快速的,完全托管的,PB级的数据仓库,使使用现有的商业智能工具分析所有数据变得简单且经济高效. * FiloDB 分散式. 柱状. 版本化. 流媒体. SQL. * Vertica 具有广泛分析SQL的分布式MPP列式数据库. -文件 * MongoDB 一个开放源代码的文档数据库,旨在简化开发和扩展. * Percona Server for MongoDB Percona Server forMongoDB®是MongoDB®Community Edition的免费,增强,完全兼容,开源的直接替代,其中包括企业级功能. * MemDB 分布式事务性内存数据库(基于MongoDB) * Elasticsearch 实时搜索和分析数据. * Couchbase 性能最高的NoSQL分布式数据库. * RethinkDB 实时Web的开源数据库. * RavenDB 完全事务性NoSQL文档数据库. -图 * Neo4j 世界领先的图形数据库. * OrientDB 具有开放源代码商业友好许可证的一种产品中具有文档灵活性的第二代分布式图形数据库. * ArangoDB 具有用于文档,图形和键值的灵活数据模型的分布式免费开放源数据库. * Titan 可扩展的图形数据库经过优化,可以存储和查询包含分布在多机集群中的数千亿个顶点和边的图形. * FlockDB Twitter的分布式容错图数据库. 不推荐使用. - 分散式 * DAtomic 完全事务化,可用于云的分布式数据库. * Apache Geode 一个用于横向扩展应用程序的开源,分布式内存数据库. * Gaffer 大型图形数据库 -时间序列 * InfluxDB 可扩展的数据存储区,用于度量标准,事件和实时分析. * OpenTSDB 可扩展的分布式时间序列数据库. * kairosdb 快速可扩展的时间序列数据库. * Heroic Spotify基于Cassandra和Elasticsearch的可扩展时间序列数据库 * Druid 面向列的分布式数据存储,是为交互式应用程序提供动力的理想选择 * Riak-TS Riak TS是唯一专门针对IoT和时间序列数据进行优化的企业级NoSQL时间序列数据库 * Akumuli Akumuli是一个数字时间序列数据库. 它可以用于实时捕获,存储和处理时间序列数据. 单词“ akumuli”可以从世界语翻译为“积累”. * Rhombus Cassandra的时间序列对象存储,处理构建宽行索引的所有复杂性. * Dalmatiner DB 快速分布式指标数据库 * Blueflood 旨在吸收和处理时间序列数据的分布式系统 * Timely Timely是一个时间序列数据库应用程序,可提供对Accumulo和Grafana的时间序列数据的安全访问. -其他 * Tarantool Tarantool是内存数据库和应用程序服务器. * GreenPlum Greenplum数据库(GPDB)是先进的,功能齐全的开源数据仓库. 它提供了对PB级数据量的强大而快速的分析. * cayley 开源图形数据库. 谷歌. * Snappydata SnappyData:基于Apache Spark构建的OLTP + OLAP数据库

Data Ingestion

  • Kafka 重新考虑发布-订阅消息传递为分布式提交日志.
    • BottledWater 将数据捕获从PostgreSQL更改为Kafka. 不推荐使用.
    • kafkat Kafka经纪人的简化命令行管理
    • kafkacat 通用命令行非JVM Apache Kafka生产者和使用者
    • pg-kafka PostgreSQL扩展,用于向Apache Kafka生成消息
    • librdkafka Apache Kafka C / C ++库
    • kafka-docker Docker中的Kafka
    • kafka-manager 一种管理Apache Kafka的工具
    • kafka-node Apache Kafka 0.8的Node.js客户端
    • Secor Pinterest的Kafka到S3分布式消费者
    • Kafka-logger 来自Ubuntu的Node.js的Kafka-Winston记录器
  • AWS Kinesis 完全托管的基于云的服务,用于对大型分布式数据流进行实时数据处理.
  • RabbitMQ 应用程序的可靠消息传递.
  • FluentD 一个用于统一日志记录层的开源数据收集器.
  • Embulk 开源的批量数据加载器,可帮助在各种数据库,存储,文件格式和云服务之间进行数据传输.
  • Apache Sqoop 一种工具,用于在Apache Hadoop和结构化数据存储(例如关系数据库)之间有效地传输批量数据.
  • Heka 轻松进行数据采集和处理. 不推荐使用.
  • Gobblin Linkedin的Hadoop通用数据提取框架
  • Nakadi Nakadi是一个开源事件消息平台,在类似于Kafka的队列上提供了REST API.
  • Pravega Pravega为连续和无限制的数据提供了新的存储抽象-流.
  • Apache Pulsar Apache Pulsar是一个开源的分布式pub-sub消息传递系统.
  • AWS Data Wranlger 在AWS上处理数据的工具带.

File System

  • HDFS
  • AWS S3
    • smart_open 实用程序,用于流传输大文件(S3,HDFS,gzip,bz2)
  • Alluxio Alluxio是一个以内存为中心的分布式存储系统,可以跨集群框架(例如Spark和MapReduce)以内存速度可靠地共享数据.
  • CEPH Ceph是一个统一的分布式存储系统,旨在提供出色的性能,可靠性和可扩展性
  • OrangeFS Orange File System is a branch of the Parallel Virtual File System
  • SnackFS SnackFS是我们通过Cassandra构建的一口大小,轻量级HDFS兼容文件系统.
  • GlusterFS Gluster文件系统
  • XtreemFS 容错的分布式文件系统,可满足所有存储需求
  • SeaweedFS Seaweed-FS是一个简单且高度可扩展的分布式文件系统. 有两个目标:存储数十亿个文件! 快速提供文件! 除了支持完整的POSIX文件系统语义外,Seaweed-FS选择仅实现密钥文件映射. 与单词“ NoSQL”相似,您可以将其称为“ NoFS”.
  • S3QL S3QL是一个文件系统,使用诸如Google Storage,Amazon S3或OpenStack之类的存储服务在线存储其所有数据.
  • LizardFS LizardFS软件定义的存储是一个分布式,并行,可伸缩,容错,地理冗余且高度可用的文件系统.

Serialization format

  • Apache Avro Apache Avro™是数据序列化系统
  • Apache Parquet Apache Parquet是Hadoop生态系统中任何项目均可使用的列式存储格式,而与选择数据处理框架,数据模型或编程语言无关.
    • Snappy 快速压缩器/解压缩器. 与镶木地板一起使用
    • PigZ 现代的gzip并行实现 多处理器,多核机器
  • Apache ORC 适用于Hadoop工作负载的最小,最快的列式存储
  • Apache Thrift Apache Thrift软件框架,用于可扩展的跨语言服务开发
  • ProtoBuf 协议缓冲区-Google的数据交换格式
  • SequenceFile SequenceFile是一个平面文件,由二进制键/值对组成. 它在MapReduce中广泛用作输入/输出格式
  • Kryo Kryo是用于Java的快速高效的对象图序列化框架

Stream Processing

  • Apache Beam Apache Beam是一个统一的编程模型,可实现在许多执行引擎上运行的批处理和流数据处理作业.
  • Spark Streaming Spark Streaming使构建可扩展的容错流应用程序变得容易.
  • Apache Flink Apache Flink是一个流数据流引擎,为数据流上的分布式计算提供数据分发,通信和容错能力.
  • Apache Storm Apache Storm是一个免费的开源分布式实时计算系统
  • Apache Samza Apache Samza是一个分布式流处理框架
  • Apache NiFi 是一个易于使用,功能强大且可靠的系统,用于处理和分发数据
  • VoltDB VoltDb是符合ACID的RDBMS,它使用 shared nothing architecture.
  • PipelineDB 流式SQL数据库
  • Spring Cloud Dataflow Spring Boot应用之间的流和任务执行
  • Bonobo Bonobo是适用于python 3.5+的数据处理工具包
  • Robinhood's Faust 永久可扩展的事件处理和内存持久K / V存储,具有异步和静态类型的库.

Batch Processing

  • Hadoop MapReduce Hadoop MapReduce是一个软件框架,用于轻松编写应用程序,该应用程序以可靠,容错的方式在商品硬件的大型群集(数千个节点)上并行并行处理大量数据(多TB数据集).
  • Spark
  • AWS EMR 一种Web服务,可轻松快速且经济高效地处理大量数据.
  • Tez 一个应用程序框架,允许使用复杂的有向无环图来处理数据.
  • Bistro 是用于通用数据处理(包括批处理和流分析)的轻量级引擎. 它基于一种新颖的独特数据模型,该模型通过函数表示数据,并通过列操作处理数据,这与传统方法(如MapReduce或SQL)中仅设置操作相反. -批量ML
    • H2O 快速扩展的机器学习API,适用于更智能的应用程序.
    • Mahout 快速创建可扩展的高性能机器学习应用程序的环境.
    • Spark MLlib Spark的可扩展机器学习库由常见的学习算法和实用程序组成,包括分类,回归,聚类,协作过滤,降维和基础优化原语. -批处理图
    • GraphLab Create 一个机器学习平台,使数据科学家和应用程序开发人员可以轻松地大规模创建智能应用程序.
    • Giraph 为实现高可伸缩性而构建的迭代图处理系统.
    • Spark GraphX 用于图形和图形并行计算的Apache Spark API. -批处理SQL
    • Presto 一种分布式SQL查询引擎,用于查询分布在一个或多个异构数据源上的大型数据集.
    • Hive 数据仓库软件有助于查询和管理驻留在分布式存储中的大型数据集.
      • Hivemall 适用于Hive / Hadoop的可扩展机器学习库.
      • PyHive Hive和Presto的Python接口.
    • Drill 适用于Hadoop,NoSQL和云存储的无模式SQL查询引擎.

Charts and Dashboards

  • Highcharts 使用纯JavaScript编写的图表库,提供了一种向网站或Web应用程序添加交互式图表的简便方法.
  • ZingChart 任何数据集的快速JavaScript图表.
  • C3.js 基于D3的可重用图表库.
  • D3.js 一个JavaScript库,用于根据数据处理文档.
    • D3Plus D3更简单,更易于使用表弟. 通常,您可以插入数据的预定义模板.
  • SmoothieCharts 用于流数据的JavaScript图表库.
  • PyXley 使用Flask和React构建仪表板的Python帮助器
  • Plotly Flask,JS和CSS样板,用于Python中基于Web的交互式交互式可视化应用
  • Apache Superset Apache Superset(孵化中)是一种现代的,可用于企业的商业智能Web应用程序
  • Redash 使您的公司数据驱动. 连接到任何数据源,轻松可视化并共享您的数据.
  • Metabase Metabase是公司中每个人都可以提出问题并从数据中学习的简便,开源的方式.
  • PyQtGraph PyQtGraph是基于PyQt4 / PySide和numpy构建的纯Python图形和GUI库. 它旨在用于数学/科学/工程应用.

Workflow

  • Luigi Luigi是一个Python模块,可帮助您构建批处理作业的复杂管道.
    • CronQ 类似cron的应用程序系统. Used w / Luige. 不推荐使用.
  • Cascading 基于Java的应用程序开发平台.
  • Airflow Airflow是一个用于以编程方式编写,计划和监视数据管道的系统.
  • Azkaban Azkaban是在LinkedIn上创建的用于运行Hadoop作业的批处理工作流作业调度程序. Azkaban通过工作依赖性解决订购问题,并提供易于使用的Web用户界面来维护和跟踪您的工作流程.
  • Oozie Oozie是一个工作流调度程序系统,用于管理Apache Hadoop作业
  • Pinball DAG based workflow manager. Job flows are defined programmaticaly in Python. Support output passing between jobs.
  • Dagster Dagster是用于构建数据应用程序的开源Python库.

ELK Elastic Logstash Kibana

  • docker-logstash 运行Elasticsearch(1.7.0)和Kibana(3.1.2)的高度可配置的logstash(1.4.4)docker映像.
  • elasticsearch-jdbc 用于Elasticsearch的JDBC导入器
  • ZomboDB Postgres扩展,允许创建由Elasticsearch支持的索引

Docker

  • Gockerize 将golang服务打包到最小的docker容器中
  • Flocker 轻松管理Docker容器及其数据
  • Rancher RancherOS是一个20mb的Linux发行版,可将整个操作系统作为Docker容器运行
  • Kontena 大众应用容器
  • Weave 将Docker容器编织到应用程序中
  • Zodiac 轻量级工具,可轻松部署和回滚dockerized应用程序
  • cAdvisor 分析正在运行的容器的资源使用情况和性能特征
  • Micro S3 persistence 用于将卷数据保存/还原到S3的Docker微服务
  • Rocker-compose 具有幂等功能的Docker组合工具,可用于部署由多个容器组成的应用程序. 不推荐使用.
  • Nomad Nomad是一个集群管理器,设计用于长期服务和短期批处理工作负载
  • ImageLayers 对Docker映像及其组成的层进行Vizualize

Datasets

Realtime

  • Twitter Realtime 流API使开发人员能够以较低的延迟访问Twitter的全球Tweet数据流.
  • Eventsim 事件数据模拟器. 从一组用户生成伪随机事件流,用于模拟Web流量.
  • Reddit 实时数据可用,包括评论,提交和发布到reddit的链接

Data Dumps

  • GitHub Archive 自2011年以来GitHub的公开时间表,每小时更新一次
  • Common Crawl Web爬网数据的开源存储库
  • Wikipedia Wikipedia所有Wiki的完整副本,形式为Wikitext源和嵌入XML的元数据. 还提供了许多SQL形式的原始数据库表.

Monitoring

Prometheus

  • Prometheus.io 开源服务监视系统和时间序列数据库
  • HAProxy Exporter 简单的服务器,可抓取HAProxy统计信息并通过HTTP导出以供Prometheus使用

Community

Forums

Conferences

  • DataEngConf DataEngConf是第一个弥合数据科学家,数据工程师和数据分析师之间差距的技术会议.

Podcasts

欢呼 The Data Engineering Ecosystem: An Interactive Map

受到启发 awesome 清单. 由...制作 Insight Data Engineering 研究员.

License

CC0

在法律允许的范围内, Igor Barinov 放弃了此作品的所有版权以及相关或邻近的权利.