-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Atlas Query Language (AQL) #561
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice, thanks @yazad3!
Just some indentation error and cosmetic requests.
It would be nice to also
- add a quick Readme in the
dsl
package, and also link to it in the main readme! - Enable Spotless (it says it support groovy) and maybe have a Checkstyle equivalent!
...ovy/org/openstreetmap/atlas/geography/atlas/dsl/engine/impl/AbstractQueryExecutorImpl.groovy
Outdated
Show resolved
Hide resolved
Hi @matthieun, addressed your items other than spotless, checkstyle. I have done some investigation in this area in the past and it turns out that a lot of tools we use for code quality for Java are encompassed in one tool named CodeNarc. Currently, however there is some noise in the reporting due to the nature of the DSL being built and used and I will need to spend time to configure it in a way it behaves reasonably against this project. Are you ok with a new PR with CodeNarc support? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Huge!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤪
Description:
Atlas Query Language or AQL is a new feature that allows developers to write queries directly against the Atlas files. This will allow rapid development where developers can write
select
statements against their Atlas or OSM files locally and then port these queries in their applications (spark or otherwise) to run the same queries at scale.AQL currently supports
using
(as in use Atlas/OSM files),select
,update
,delete
, explain (as in explain plan),commit
anddiff
(as in difference between two atlas schemas).The AQL statements (select, update, delete) support complex where clauses with geospatial and tag querying among other criterion. AQL also supports nested inner queries..
AQL leverages Atlas as the underlying framework and doesn't reinvent the wheels. AQL is efficient in the sense that queries are automatically optimized to benefit from
index
-ing which can be either atlas id based or geospatial based.Atlas allows working against all 6 major entities,
node
,point
,edge
,line
,relation
,area
, exposed as "tables" in an atlas schema.Potential Impact:
None expected including for groovy-json as it has no new transitive dependencies.
Unit Test Approach:
173 test cases are included.
Test Results:
Tests successful.
In doubt: Contributing Guidelines