awesome-data-engineering
Data storage tools
A curated list of tools and databases for designing, implementing, and managing data storage solutions in software applications.
A curated list of data engineering tools for software developers
10 stars
2 watching
4 forks
last commit: almost 6 years ago
Linked from 1 awesome list
Databases / Relational | |||
RQLite | 12 | over 1 year ago | Replicated SQLite using the Raft consensus protocol |
MySQL | The world's most popular open source database | ||
Databases / Relational / MySQL | |||
TiDB | 37,275 | 6 days ago | TiDB is a distributed NewSQL database compatible with MySQL protocol |
Percona XtraBackup | Percona XtraBackup is a free, open source, complete online backup solution for all versions of Percona Server, MySQL® and MariaDB® | ||
mysql_utils | 884 | over 5 years ago | Pinterest MySQL Management Tools |
Databases / Relational | |||
MariaDB | An enhanced, drop-in replacement for MySQL | ||
PostgreSQL | The world's most advanced open source database | ||
Amazon RDS | Amazon RDS makes it easy to set up, operate, and scale a relational database in the cloud | ||
Crate.IO | Scalable SQL database with the NOSQL goodies | ||
Databases / Key-Value | |||
Redis | An open source, BSD licensed, advanced key-value cache and store | ||
Riak | A distributed database designed to deliver maximum data availability by distributing data across multiple servers | ||
AWS DynamoDB | A fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale | ||
HyperDex | 1,394 | 6 months ago | HyperDex is a scalable, searchable key-value store |
SSDB | A high performance NoSQL database supporting many data structures, an alternative to Redis | ||
Kyoto Tycoon | 276 | 12 months ago | Kyoto Tycoon is a lightweight network server on top of the Kyoto Cabinet key-value database, built for high-performance and concurrency |
IonDB | 586 | 6 months ago | A key-value store for microcontroller and IoT applications |
Databases / Column | |||
Cassandra | The right choice when you need scalability and high availability without compromising performance | ||
Databases / Column / Cassandra | |||
Cassandra Calculator | This simple form allows you to try out different values for your Apache Cassandra cluster and see what the impact is for your application | ||
CCM | 1,216 | about 2 months ago | A script to easily create and destroy an Apache Cassandra cluster on localhost |
ScyllaDB | 13,581 | 6 days ago | NoSQL data store using the seastar framework, compatible with Apache Cassandra |
Databases / Column | |||
HBase | The Hadoop database, a distributed, scalable, big data store | ||
Infobright | Column oriented, open-source analytic database provides both speed and efficiency | ||
AWS Redshift | A fast, fully managed, petabyte-scale data warehouse that makes it simple and cost-effective to analyze all your data using your existing business intelligence tools | ||
https://github.com/tuplejump/FiloDB | 1,430 | 7 days ago | FiloDB ( ) Distributed. Columnar. Versioned. Streaming. SQL |
HPE Vertica | Distributed, MPP columnar database with extensive analytics SQL | ||
Databases / Document | |||
MongoDB | An open-source, document database designed for ease of development and scaling | ||
Databases / Document / MongoDB | |||
Percona Server for MongoDB | Percona Server for MongoDB® is a free, enhanced, fully compatible, open source, drop-in replacement for the MongoDB® Community Edition that includes enterprise-grade features and functionality | ||
MemDB | 596 | over 6 years ago | Distributed Transactional In-Memory Database (based on MongoDB) |
Databases / Document | |||
Elasticsearch | Search & Analyze Data in Real Time | ||
Couchbase | The highest performing NoSQL distributed database | ||
RethinkDB | The open-source database for the realtime web | ||
Databases / Graph | |||
Neo4j | The world’s leading graph database | ||
OrientDB | 2nd Generation Distributed Graph Database with the flexibility of Documents in one product with an Open Source commercial friendly license | ||
ArangoDB | A distributed free and open-source database with a flexible data model for documents, graphs, and key-values | ||
Titan | A scalable graph database optimized for storing and querying graphs containing hundreds of billions of vertices and edges distributed across a multi-machine cluster | ||
FlockDB | 3,338 | over 7 years ago | A distributed, fault-tolerant graph database by Twitter |
Databases / Distributed | |||
DAtomic | The fully transactional, cloud-ready, distributed database | ||
Apache Geode | An open source, distributed, in-memory database for scale-out applications | ||
Gaffer | 1,769 | 8 days ago | A large-scale graph database |
Databases / Timeseries | |||
InfluxDB | 28,968 | 6 days ago | Scalable datastore for metrics, events, and real-time analytics |
OpenTSDB | 5,005 | about 2 months ago | A scalable, distributed Time Series Database |
kairosdb | 1,740 | 7 months ago | Fast scalable time series database |
Heroic | 848 | over 3 years ago | A scalable time series database based on Cassandra and Elasticsearch, by Spotify |
Druid | 13,513 | 6 days ago | Column oriented distributed data store ideal for powering interactive applications |
Riak-TS | Riak TS is the only enterprise-grade NoSQL time series database optimized specifically for IoT and Time Series data | ||
Akumuli | 836 | over 2 years ago | Akumuli is a numeric time-series database. It can be used to capture, store and process time-series data in real-time. The word "akumuli" can be translated from esperanto as "accumulate" |
Rhombus | A time-series object store for Cassandra that handles all the complexity of building wide row indexes | ||
Dalmatiner DB | 695 | almost 6 years ago | Fast distributed metrics database |
Blueflood | 596 | 3 months ago | A distributed system designed to ingest and process time series data |
Timely | 380 | 5 months ago | Timely is a time series database application that provides secure access to time series data based on Accumulo and Grafana |
Databases / Other | |||
Tarantool | 3,418 | 8 days ago | Tarantool is an in-memory database and application server |
GreenPlum | The Greenplum Database (GPDB) is an advanced, fully featured, open source data warehouse. It provides powerful and rapid analytics on petabyte scale data volumes | ||
cayley | 14,855 | 5 months ago | An open-source graph database. Google |
Snappydata | 1,040 | about 2 years ago | SnappyData: OLTP + OLAP Database built on Apache Spark |
Data Ingestion | |||
Kafka | Publish-subscribe messaging rethought as a distributed commit log | ||
Data Ingestion / Kafka | |||
Camus | 881 | about 4 years ago | LinkedIn's Kafka to HDFS pipeline |
BottledWater | 3 | over 1 year ago | Change data capture from PostgreSQL into Kafka |
kafkat | 504 | over 5 years ago | Simplified command-line administration for Kafka brokers |
kafkacat | 5,447 | 4 months ago | Generic command line non-JVM Apache Kafka producer and consumer |
pg-kafka | 112 | over 9 years ago | A PostgreSQL extension to produce messages to Apache Kafka |
librdkafka | 284 | 5 days ago | The Apache Kafka C/C++ library |
kafka-docker | 6,941 | 7 months ago | Kafka in Docker |
kafka-manager | 11,836 | over 1 year ago | A tool for managing Apache Kafka |
kafka-node | 2,664 | about 1 year ago | Node.js client for Apache Kafka 0.8 |
Secor | 1,846 | about 1 month ago | Pinterest's Kafka to S3 distributed consumer |
Kafka-logger | 45 | about 6 years ago | Kafka-winston logger for nodejs from uber |
Kafka Awesome List | 205 | 10 months ago | A super list of resources about Apache Kafka |
Data Ingestion | |||
AWS Kinesis | A fully managed, cloud-based service for real-time data processing over large, distributed data streams | ||
RabbitMQ | Robust messaging for applications | ||
FluentD | An open source data collector for unified logging layer | ||
Embulk | An open source bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services | ||
Apache Sqoop | A tool designed for efficiently transferring bulk data between Apache Hadoop and structured datastores such as relational databases | ||
Heka | 3,390 | 10 months ago | Data Acquisition and Processing Made Easy |
Gobblin | 2,229 | 7 days ago | Universal data ingestion framework for Hadoop from Linkedin |
Nakadi | Nakadi is an open source event messaging platform that provides a REST API on top of Kafka-like queues | ||
Pravega | Pravega provides a new storage abstraction - a stream - for continuous and unbounded data | ||
Apache Pulsar | Apache Pulsar is an open-source distributed pub-sub messaging system | ||
File System | |||
HDFS | |||
File System / HDFS | |||
Snakebite | 855 | over 2 years ago | A pure python HDFS client |
File System | |||
AWS S3 | |||
File System / AWS S3 | |||
smart_open | 3,215 | 22 days ago | Utils for streaming large files (S3, HDFS, gzip, bz2) |
File System | |||
Tachyon | Tachyon is a memory-centric distributed storage system enabling reliable data sharing at memory-speed across cluster frameworks, such as Spark and MapReduce | ||
CEPH | Ceph is a unified, distributed storage system designed for excellent performance, reliability and scalability | ||
OrangeFS | Orange File System is a branch of the Parallel Virtual File System | ||
SnackFS | 14 | over 9 years ago | SnackFS is our bite-sized, lightweight HDFS compatible FileSystem built over Cassandra |
GlusterFS | Gluster Filesystem | ||
XtreemFS | fault-tolerant distributed file system for all storage needs | ||
SeaweedFS | 22,853 | 7 days ago | Seaweed-FS is a simple and highly scalable distributed file system. There are two objectives: to store billions of files! to serve the files fast! Instead of supporting full POSIX file system semantics, Seaweed-FS choose to implement only a key~file mapping. Similar to the word "NoSQL", you can call it as "NoFS" |
S3QL | S3QL is a file system that stores all its data online using storage services like Google Storage, Amazon S3, or OpenStack | ||
LizardFS | LizardFS Software Defined Storage is a distributed, parallel, scalable, fault-tolerant, Geo-Redundant and highly available file system | ||
Serialization format | |||
Apache Avro | Apache Avro™ is a data serialization system | ||
Apache Parquet | Apache Parquet is a columnar storage format available to any project in the Hadoop ecosystem, regardless of the choice of data processing framework, data model or programming language | ||
Serialization format / Apache Parquet | |||
Snappy | 6,161 | 3 months ago | A fast compressor/decompressor. Used with Parquet |
PigZ | A parallel implementation of gzip for modern multi-processor, multi-core machines | ||
Serialization format | |||
Apache ORC | The smallest, fastest columnar storage for Hadoop workloads | ||
Apache Thrift | The Apache Thrift software framework, for scalable cross-language services development | ||
ProtoBuf | 65,753 | 6 days ago | Protocol Buffers - Google's data interchange format |
SequenceFile | SequenceFile is a flat file consisting of binary key/value pairs. It is extensively used in MapReduce as input/output formats | ||
Kryo | 6,202 | 17 days ago | Kryo is a fast and efficient object graph serialization framework for Java |
Stream Processing | |||
Apache Beam | Apache Beam is a unified programming model that implements both batch and streaming data processing jobs that run on many execution engines | ||
Spark Streaming | Spark Streaming makes it easy to build scalable fault-tolerant streaming applications | ||
Apache Flink | Apache Flink is a streaming dataflow engine that provides data distribution, communication, and fault tolerance for distributed computations over data streams | ||
Apache Storm | Apache Storm is a free and open source distributed realtime computation system | ||
Apache Samza | Apache Samza is a distributed stream processing framework | ||
Apache NiFi | is an easy to use, powerful, and reliable system to process and distribute data | ||
VoltDB | VoltDb is an ACID-compliant RDBMS which uses a | ||
PipelineDB | 2,633 | almost 3 years ago | The Streaming SQL Database |
Spring Cloud Dataflow | Streaming and tasks execution between Spring Boot apps | ||
Bonobo | Bonobo is a data-processing toolkit for python 3.5+ | ||
Robinhood's Faust | 6,746 | 4 months ago | Forever scalable event processing & in-memory durable K/V store as a library with asyncio & static typing |
Batch Processing | |||
Hadoop MapReduce | Hadoop MapReduce is a software framework for easily writing applications which process vast amounts of data (multi-terabyte data-sets) in-parallel on large clusters (thousands of nodes) of commodity hardware in a reliable, fault-tolerant manner | ||
Spark | |||
Batch Processing / Spark | |||
Spark Packages | A community index of packages for Apache Spark | ||
Deep Spark | 197 | over 8 years ago | Connecting Apache Spark with different data stores |
Spark RDD API Examples | by Zhen He | ||
Livy | 1,180 | 6 days ago | Livy, the REST Spark Server |
Batch Processing | |||
AWS EMR | A web service that makes it easy to quickly and cost-effectively process vast amounts of data | ||
Tez | An application framework which allows for a complex directed-acyclic-graph of tasks for processing data | ||
Bistro | 7 | about 6 years ago | is a light-weight engine for general-purpose data processing including both batch and stream analytics. It is based on a novel unique data model, which represents data via and processes data via as opposed to having only set operations in conventional approaches like MapReduce or SQL |
Batch Processing / Batch ML | |||
H2O | Fast scalable machine learning API for smarter applications | ||
Mahout | An environment for quickly creating scalable performant machine learning applications | ||
Spark MLlib | Spark’s scalable machine learning library consisting of common learning algorithms and utilities, including classification, regression, clustering, collaborative filtering, dimensionality reduction, as well as underlying optimization primitives | ||
Batch Processing / Batch Graph | |||
GraphLab Create | A machine learning platform that enables data scientists and app developers to easily create intelligent apps at scale | ||
Giraph | An iterative graph processing system built for high scalability | ||
Spark GraphX | Apache Spark's API for graphs and graph-parallel computation | ||
Batch Processing / Batch SQL | |||
Presto | A distributed SQL query engine designed to query large data sets distributed over one or more heterogeneous data sources | ||
Hive | Data warehouse software facilitates querying and managing large datasets residing in distributed storage | ||
Batch Processing / Batch SQL / Hive | |||
Hivemall | 504 | almost 8 years ago | Scalable machine learning library for Hive/Hadoop |
PyHive | 1,671 | 4 months ago | Python interface to Hive and Presto |
Batch Processing / Batch SQL | |||
Drill | Schema-free SQL Query Engine for Hadoop, NoSQL and Cloud Storage | ||
Charts and Dashboards | |||
Highcharts | A charting library written in pure JavaScript, offering an easy way of adding interactive charts to your web site or web application | ||
ZingChart | Fast JavaScript charts for any data set | ||
C3.js | D3-based reusable chart library | ||
D3.js | A JavaScript library for manipulating documents based on data | ||
Charts and Dashboards / D3.js | |||
D3Plus | D3's simplier, easier to use cousin. Mostly predefined templates that you can just plug data in | ||
Charts and Dashboards | |||
SmoothieCharts | A JavaScript Charting Library for Streaming Data | ||
PyXley | 2,269 | over 6 years ago | Python helpers for building dashboards using Flask and React |
Plotly | 21,482 | 9 days ago | Flask, JS, and CSS boilerplate for interactive, web-based visualization apps in Python |
Apache Superset | 62,799 | 7 days ago | Apache Superset (incubating) is a modern, enterprise-ready business intelligence web application |
Redash | Make Your Company Data Driven. Connect to any data source, easily visualize and share your data | ||
Metabase | 38,770 | 6 days ago | Metabase is the easy, open source way for everyone in your company to ask questions and learn from data |
PyQtGraph | PyQtGraph is a pure-python graphics and GUI library built on PyQt4 / PySide and numpy. It is intended for use in mathematics / scientific / engineering applications | ||
Workflow | |||
Luigi | 17,869 | 10 days ago | Luigi is a Python module that helps you build complex pipelines of batch jobs |
Workflow / Luigi | |||
CronQ | An application cron-like system. w/Luige | ||
Workflow | |||
Cascading | Java based application development platform | ||
Airflow | 37,120 | 6 days ago | Airflow is a system to programmaticaly author, schedule and monitor data pipelines |
Azkaban | Azkaban is a batch workflow job scheduler created at LinkedIn to run Hadoop jobs. Azkaban resolves the ordering through job dependencies and provides an easy to use web user interface to maintain and track your workflows | ||
Oozie | Oozie is a workflow scheduler system to manage Apache Hadoop jobs | ||
Pinball | 1,047 | almost 5 years ago | DAG based workflow manager. Job flows are defined programmaticaly in Python. Support output passing between jobs |
ELK Elastic Logstash Kibana | |||
docker-logstash | 236 | almost 9 years ago | A highly configurable logstash (1.4.4) docker image running Elasticsearch (1.7.0) and Kibana (3.1.2) |
elasticsearch-jdbc | 2,837 | about 3 years ago | JDBC importer for Elasticsearch |
ZomboDB | 4,684 | 19 days ago | Postgres Extension that allows creating an index backed by Elasticsearch |
Docker | |||
Gockerize | 667 | over 6 years ago | Package golang service into minimal docker containers |
Flocker | 3,391 | over 7 years ago | Easily manage Docker containers & their data |
Rancher | RancherOS is a 20mb Linux distro that runs the entire OS as Docker containers | ||
Kontena | Application Containers for Masses | ||
Weave | 6,618 | 3 months ago | Weaving Docker containers into applications |
Zodiac | 198 | almost 5 years ago | A lightweight tool for easy deployment and rollback of dockerized applications |
cAdvisor | 17,182 | 22 days ago | Analyzes resource usage and performance characteristics of running containers |
Micro S3 persistence | 14 | about 5 years ago | Docker microservice for saving/restoring volume data to S3 |
Dockup | 241 | over 7 years ago | Docker image to backup/restore your Docker container volumes to AWS S3 |
Rocker-compose | 407 | over 1 year ago | Docker composition tool with idempotency features for deploying apps composed of multiple containers |
Nomad | 14,943 | 4 days ago | Nomad is a cluster manager, designed for both long lived services and short lived batch processing workloads |
ImageLayers | Vizualize docker images and the layers that compose them | ||
Datasets / Realtime | |||
Twitter Realtime | The Streaming APIs give developers low latency access to Twitter’s global stream of Tweet data | ||
Eventsim | 505 | over 2 years ago | Event data simulator. Generates a stream of pseudo-random events from a set of users, designed to simulate web traffic |
Real-time data is available including comments, submissions and links posted to reddit | |||
Datasets / Data Dumps | |||
GitHub Archive | GitHub's public timeline since 2011, updated every hour | ||
Common Crawl | Open source repository of web crawl data | ||
Wikipedia | Wikipedia's complete copy of all wikis, in the form of wikitext source and metadata embedded in XML. A number of raw database tables in SQL form are also available | ||
Monitoring / Prometheus | |||
Prometheus.io | 55,742 | 6 days ago | An open-source service monitoring system and time series database |
HAProxy Exporter | 618 | over 1 year ago | Simple server that scrapes HAProxy stats and exports them via HTTP for Prometheus consumption |
Community / Forums | |||
/r/dataengineering | News, tips and background on Data Engineering | ||
/r/etl | Subreddit focused on ETL | ||
Community / Conferences | |||
DataEngConf | DataEngConf is the first technical conference that bridges the gap between data scientists, data engineers and data analysts | ||
Community / Podcasts | |||
Data Engineering Podcast | The show about modern data infrastructure |