Skip to content

Vettabase/YesSQL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 

Repository files navigation

YesSQL!

A curated list of creative, amazing ways to use SQL.

This list is a result of the constant research activities we do at Vettabase.

Awesome Inspired by the awesome-* trend on GitHub.

What's in the Name

YesSQL! is a late reaction to NoSQL.

NoSQL is negative marketing. It advertised itself as a movement of databases missing an SQL interface. They described SQL as something old and frustrating that doesn't scale. They had no features in common. The whole NoSQL marketing was based on a negative statement: the lack of a feature. But negative marketing has a fundamental problem: it says almost nothing about what you're trying to promote. Technically a CSV file, a note on a paper, and a piece of wood are all NoSQL, as they lack an SQL interface.

Later, the wind changed. NoSQL databases started implementing SQL. For example, Cassandra replaced its old protocol with an SQL subset that makes sense for its domain, and called it CQL. And then NoSQL advocates tried to convince us that they never meant "no SQL", they actually meant "Not Only SQL". They even wrote this on Wikipedia. But those of us who were there know that it's a lie.

Now, the trend is exactly the opposite: using SQL in new, creative ways! New software projects are implementing SQL in completely unexpected contexts. This list contains projects of this type.

YesSQL! List

  • Apache Calcite - A Java framework that processes SQL queries and uses them to read data from heterogeneous data sources. Adapters implement access to different data sources.
  • Dolt (MySQL-compatible) and DoltgreSQL (Postgres-compatible) - Databases with git-like capabilities, implemented via Go stored procedures. Databases can also be pushed to the public DoltHub or private hubs. Data versioning is useful to create different versions of a database, keeping all versions updated. A possible use case is what-if analysis.
  • IaSQL - PostgreSQL-based database that allows viewing AWS infrastructure data in a relational way. Data can be modified in SQL. When a transaction is committed, changes are applied to the infrastructure using the AWS API.
  • ksqlDB - An SQL database that streams data from Kafka.
  • MindsDB - An SQL interface that reads data from heterogeneous data sources and can answer queries about the future. Future data are generated using machine learning algorithms. Many prediction modules are supported, including external APIs. More integrations can easily be implemented as Python modules. This includes models and data sources. Both MySQL and PostgreSQL dialects are supported, as well as non-SQL interfaces.
  • osquery - Shows information about the system where osquery is installed, in a relational manner. Suitable for servers, laptops, Docker servers, EC2 instances, and more. See the schema documentation. It can run as a daemon or it can run just when it's invoked to run a query.
  • Steampipe - Based on PostgreSQL or SQLite, it's designed to show information from any API as relational data. New plugins can be implemented in Go. Many plugins exist on Steampipe Hub to read data from cloud infrastructures, business applications, and more.
  • Trino - A distributed SQL engine to run queries across heterogeneous data sources, available as connectors.

It's also worth mentioning that some traditional relational databases support reading heterogeneous, non-relational data sources and treat them as local tables:

  • MariaDB CONNECT - The CONNECT storage engine allows creating tables based on external, heterogeneous data sources. This includes other relational databases, MongoDB, data files in many formats, and some special data sources like Windows network interfaces.
  • PostgreSQL FDWs - Foreign Data Wrappers are PostgreSQL extensions that allow building tables that read and write to any data source. Several extensions exist that allow writing FDWs in languages other than C: Multicorn for Python, Holycorn for Ruby, and Wrappers for Rust.

Related Projects

Related projects from us:

About

A curated list of creative, amazing ways to use SQL.

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published