InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises. Learn more →
Top 23 Java SQL Projects
-
-
Akka is used only as a possible RPC implementation, isn't it?
-
InfluxDB
Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.
-
Project mention: MyBatis VS jOOQ - a user suggested alternative | libhunt.com/r/mybatis-3 | 2022-11-25
-
shardingsphere
Ecosystem to transform any database into a distributed database system, and enhance it with sharding, elastic scaling, encryption features & more
Project mention: ShardingSphere 5.3.0 is released: new features and improvements | dev.to | 2022-12-11🔗 Release Notes
-
I look at the grammar. Here is preto's grammar which is mostly similar to other sql engines: https://github.com/prestodb/presto/blob/master/presto-parser/src/main/antlr4/com/facebook/presto/sql/parser/SqlBase.g4
-
The Java API implementation is problematic due to over allocating which results in a great deal of overhead. Projects like QuestDB don't use the Java API much to reduce GC thrashing. It results in a DB that outperforms C++ counterparts.
-
Trino
Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)
Project mention: Uber Interview Experience/Asking Suggestions | reddit.com/r/dataengineering | 2023-02-01One place to look are the projects repo's and docs, once you have a good idea of how the system is architected poking around pieces of the codebase can be helpful in letting you really understand their internals. I personally enjoy going through spark repo and trino repo and the documentation for both projects is decent and can answer many of your questions.
-
Sonar
Write Clean Java Code. Always.. Sonar helps you commit clean code every time. With over 600 unique rules to find Java bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.
-
-
-
Apache Beam: Streaming framework which can be run on several runner such as Apache Flink and GCP Dataflow
-
-
> all I really want is a nice API for building queries (that actually supports all underlying database features) and automatic mapping of the results to whatever objects/structs and primitives the language supports.
For Java based solutions, check out https://www.jooq.org/ or http://querydsl.com/
-
Hive, A data warehouse infrastructure that provides data summarization and ad hoc querying.
-
OrientDB
OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries.
OrientDB
-
Ignite works as you describe:
I wouldn't really recommend this approach, I would think more in terms of subscriptions and topics and less of a 'database'.
-
JSqlParser
JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. The generated hierarchy can be navigated using the Visitor Pattern
I wonder if this is a topical thread to check if anyone is aware of a Java based solution to parse a CREATE VIEW statement to get a mapping between the view columns and the corresponding source table columns. I checked out jsqlparser[0] and it does produce an AST which can be parsed using the visitor-pattern[1] but was wondering if there is a more "out-of-the-box" solution. Due to various reasons, querying the database information schema is not an option I can pursue.
-
starrocks
StarRocks is a next-gen sub-second MPP database for full analytics scenarios, including multi-dimensional analytics, real-time analytics and ad-hoc query.
Project mention: Anyone using StarRocks DB instead of ClickHouse? | reddit.com/r/dataengineering | 2022-11-17 -
Highly recommend you use either Liquibase or Flyway for schema management, and Testcontainers pg to run a transitive database for your tests.
-
Project mention: Want to contribute more to open source projects. | reddit.com/r/dotnet | 2022-08-18
-
Crate
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of data in real-time. Built on top of Lucene.
Project mention: Distributed query execution in CrateDB: What you need to know | dev.to | 2022-07-20A logical execution plan does not take into account the information about data distribution. CrateDB is a distributed database and data is sharded: a table can be split into many parts - so-called shards. Shards can be independently replicated and moved from one node to another. The number of shards a table can have is specified at the time the table is created.
-
Project mention: SQLite Internals: How the Most Used Database Works | news.ycombinator.com | 2022-12-19
> ...than it would be to learn the exact syntax and quirks and possibly bugs of someone else's implementation...
Yup. Also, having deep knowledge of the language is required.
SQLite's grammar is neat. Creating a compatible parser would make a fun project. Here's a pretty good example: https://github.com/bkiers/sqlite-parser (Actual ANTLR 4 grammar: https://github.com/bkiers/sqlite-parser/blob/master/src/main... )
Postgres, which tries to be compliant with the latest standards, however...
SQL-2016 is a beast. Not to mention all the dialects.
I'm updating my personal (soon to be FOSS) grammar from ANTLR 3 LL(k) to ANTLR 4 ALL().
I've long had a working knowledge of SQL-92, with some SQL-1999 (eg common table expressions).
But the new structures and extensions are a bit overwhelming.
Fortunately, ANTLR project has ~dozen FOSS grammars to learn from. https://github.com/antlr/grammars-v4/tree/master/sql
They mostly mechanically translate BNFs to LL(k) with some ALL(). Meaning few take advantage of left-recursion. https://github.com/antlr/antlr4/blob/master/doc/left-recursi...
Honestly, I struggled to understand these grammars. Plus, not being conversant with the SQL-2016 was a huge impediment. Just finding a succinct corbis of test cases was a huge hurdle for me.
Fortunately, the H2 Database project is a great resource. https://github.com/h2database/h2database/tree/master/h2/src/...
Now for the exciting conclusion...
My ANTLR grammar which passes all of H2's tests looks nothing like any of the official or product specific BNFs.
Further, I found discrepancy between the product specific BNFs and their implementations.
So a lot of trial & error is required for a "real world" parser. Which would explain why the professional SQL parsing tools charge money.
I still think creating a parser for SQLite is a great project.
-
Some code formatters such as Spotless (https://github.com/diffplug/spotless/tree/main/plugin-gradle...) allow you to format code only in files that have changes against some designated branch such as `master`. So, you check out your feature branch, make changes, do some commits, and run spotless. Only the files which have some changes between your workspace and the master branch will be formatted. This allows you to gradually format the project as and when files would be changed anyways.
-
ah, I was thinking of https://github.com/requery/requery but I wasn't really sure, also that project is dead oh no :D
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Java SQL related posts
- You might not need an ORM
- Learning Android’s Room Database Made Easy
- Are forcedtypes supported in routines?
- Question: What is the Best Way to Store a ~10 Terabytes of Time Series Data?
- questdb: NEW Data - star count:9880.0
- questdb: NEW Data - star count:9880.0
- questdb: NEW Data - star count:9880.0
-
A note from our sponsor - InfluxDB
www.influxdata.com | 3 Feb 2023
Index
What are some of the best open-source SQL projects in Java? This list will help you:
Project | Stars | |
---|---|---|
1 | dbeaver | 30,198 |
2 | Apache Flink | 20,540 |
3 | MyBatis | 18,113 |
4 | shardingsphere | 17,886 |
5 | Presto | 14,409 |
6 | QuestDB | 10,028 |
7 | Trino | 7,111 |
8 | Flyway | 6,966 |
9 | doris | 6,886 |
10 | beam | 6,367 |
11 | ksql | 5,383 |
12 | jOOQ | 5,284 |
13 | Apache Hive | 4,632 |
14 | OrientDB | 4,557 |
15 | Apache Ignite | 4,371 |
16 | JSqlParser | 4,129 |
17 | starrocks | 3,863 |
18 | liquibase | 3,660 |
19 | Apache Calcite | 3,620 |
20 | Crate | 3,592 |
21 | H2 | 3,589 |
22 | spotless | 3,215 |
23 | requery | 3,115 |