Skip to content

Commit 03407a5

Browse files
Support for Elasticsearch DSL in SimpleEngine (#219)
* Simple parsing logic for static set of Elastic DSL queries. * Extract aggregation func kwargs during ES DSL parsing. * Initial code for manual QueryExecutionContext creation (ES DSL). Currently does not parse date ranges, and no integration with aggregation/inference config. * Preliminary test that query context can execute (basic quantile query). * Simplify query patterns matched (support only simple aggregation and groupby) to map more easily to internal representation. * Fix issue where percentile args have to be passed as a number from 0-1 (instead of 0-100) for ES DSL. Tests for single and multi label groupby as well as unsupported queries. * Fix test for simple aggregation (no groupby labels) inserting wrong groupby key. * Preliminary code to parse relative dates in Elastic DSL. * Move time range resolution into separate function during query exec context creation (ES DSL). Shorten query metadata creation code. * Rename elastic DSL query test file. * Cargo fmt and clippy. Move ES DSL tests into test submodule. * Delete extra code in tests. * Fix lint errors. * Remove topk label processing (unsupported query type) for ES DSL. --------- Co-authored-by: Milind Srivastava <milindsrivastava1997@users.noreply.github.com>
1 parent 0426b66 commit 03407a5

12 files changed

Lines changed: 1873 additions & 3 deletions

File tree

‎Cargo.lock‎

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ members = [
44
"asap-common/sketch-core",
55
"asap-common/dependencies/rs/promql_utilities",
66
"asap-common/dependencies/rs/sql_utilities",
7+
"asap-common/dependencies/rs/elastic_dsl_utilities",
78
"asap-common/dependencies/rs/sketch_db_common",
89
"asap-common/dependencies/rs/datafusion_summary_library",
910
"asap-query-engine",
@@ -34,5 +35,6 @@ promql_utilities = { path = "asap-common/dependencies/rs/promql_utilities" }
3435
sql_utilities = { path = "asap-common/dependencies/rs/sql_utilities" }
3536
sketch_db_common = { path = "asap-common/dependencies/rs/sketch_db_common" }
3637
datafusion_summary_library = { path = "asap-common/dependencies/rs/datafusion_summary_library" }
38+
elastic_dsl_utilities = { path = "asap-common/dependencies/rs/elastic_dsl_utilities" }
3739
asap_planner = { path = "asap-planner-rs" }
3840
indexmap = { version = "2.0", features = ["serde"] }
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[package]
2+
name = "elastic_dsl_utilities"
3+
edition.workspace = true
4+
version.workspace = true
5+
6+
[dependencies]
7+
serde.workspace = true
8+
serde_json.workspace = true
9+
chrono.workspace = true
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
pub mod parsing;
2+
pub mod pattern;
3+
pub mod types;
4+
5+
pub use parsing::*;
6+
pub use pattern::{classify, parse_and_classify};
7+
pub use types::*;

0 commit comments

Comments
 (0)