One query language, every data source
GitLab data lives in many places - relational tables, a graph of connections, a full-text index, a code search engine, an analytics warehouse. Each has had its own query surface, its own performance profile, and its own UI. GLQL brings them together: one query language, one set of shared components, one place to ask a question and see the answer.
This challenge is a PoC of GLQL as the unified query layer, extended with new data providers so a single GLQL query can reach graph connections, full-text search, code search and scalable analytics - all from the same familiar surface.
Orbit
Visualize graph connections between items and share them - the Knowledge Graph as a GLQL data source.
Elasticsearch
Full-text search folded into GLQL queries, so you can search content and filter it in one expression.
Zoekt
Code search as a GLQL provider - query across repositories with the same language and UI.
Data Insights Platform
Scalable analytics backed by ClickHouse - now run your own queries through the Query API, with no backend models to define.
A GLQL query, unchanged, now reaches further:
# One language across providers type = Issue AND state = opened AND label = "group::search" AND search = "imagination" -- Elasticsearch provider ORDER BY updated DESC LIMIT 20 ✓ resolved across providers (db + elasticsearch) in 142ms
- One language to learn - the same GLQL grammar resolves against every provider.
- Providers are pluggable - adding a data source expands what GLQL can answer without a new UI.
- Performant and scalable by design - each query runs against the engine best suited to it.
Network graphs, queried and shared
Orbit - the Knowledge Graph - becomes a GLQL data provider. Instead of a flat list, a query can return the graph of connections between items and render it as a network you can explore and share. Relationships that were invisible in a table become obvious at a glance.
Full-text and code search, inside GLQL
Search stops being a separate destination. With Elasticsearch and Zoekt as GLQL providers, you can express a full-text or code search as part of a GLQL query and filter, sort and display the results with the same components you already use everywhere else.
Elasticsearch: full-text search
Zoekt: code search
Scalable analytics from the same surface
The Data Insights Platform, backed by ClickHouse, brings end-to-end, scalable analytics into the unified query layer. During the summit we made it far more flexible: instead of defining backend models up front, you can now run your own queries through the Query API - and they stay fast as the data grows.
Highly performant, shared UI components
Because GLQL is one query layer with one set of components, making it fast makes everything fast. The same engine that powers standalone queries also powers everyday UI - dropdowns, filters, pickers - so they get quicker and more consistent for free.
Work item parent dropdowns
Project filter dropdowns
The people behind it
Built by Platform Insights - the Foundation, Search and GLQL groups - as an R&D Summit challenge.
Connect & discuss Have questions or ideas? Come chat with us in #f_unified_query_api on Slack.Thanks to everyone who joined the Unified Query API challenge at the R&D Summit.