Skip to content

Commit bb54283

Browse files
committed
Integrate: Add page about QueryZen
1 parent 0d498eb commit bb54283

File tree

3 files changed

+76
-1
lines changed

3 files changed

+76
-1
lines changed

docs/integrate/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ plotly/index
5555
Power BI <powerbi/index>
5656
prometheus/index
5757
pyviz/index
58+
queryzen/index
5859
rill/index
5960
risingwave/index
6061
sql-server/index

docs/integrate/queryzen/index.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
(queryzen)=
2+
# QueryZen
3+
4+
:::{rubric} About
5+
:::
6+
7+
[QueryZen] makes it easier to manage SQL query statements over HTTP.
8+
9+
A `Zen` in QueryZen jargon is a named, parameterized, and versioned SQL query
10+
that is created, updated, and executed over HTTP endpoints. It allows you to
11+
decouple SQL from your application while controlling, versioning, and securing
12+
data access from development to production.
13+
14+
![](https://github.com/surister/queryzen/raw/master/queryzen-docs/docs/concepts/img.png){w=700px}
15+
16+
:::{rubric} Features
17+
:::
18+
19+
Overview:
20+
21+
* Create, get and delete Zens in different collections and run them in different databases.
22+
* Automatically version queries, name and safely parameterize queries with special functions.
23+
* High test coverage.
24+
* Track, save and analyze statistics of your queries over time and versions.
25+
* Everything is dockerized for easy development and deployment.
26+
27+
QueryZen includes:
28+
29+
* HTTP REST backend to handle the lifecycle of Zens.
30+
* Task execution backend to handle the execution of the queries.
31+
* Database driver abstraction for Python SQL drivers.
32+
* Pythonic package to programmatically use QueryZen.
33+
34+
With QueryZen you can:
35+
36+
* Quickly create HTTP REST endpoints of your SQL data.
37+
* Integrate your SQL data in your data pipelines with minimal configuration.
38+
* Monitor individual query executions and analyze metrics.
39+
* Version your SQL queries, build and test queries without affecting production.
40+
* Create materialized views for SQL databases that do not support them.
41+
42+
:::{rubric} Synopsis
43+
:::
44+
45+
```python
46+
from queryzen import QueryZen
47+
48+
qz = QueryZen()
49+
50+
# Default collection is 'main' and the version is 'latest'.
51+
qz.create("mountains", query="SELECT * FROM sys.summits WHERE country = :country AND height > :height")
52+
53+
# If no version is specified, it returns 'latest'.
54+
zen = qz.get("mountains", collection="main")
55+
print(zen)
56+
57+
# Invoke with default values.
58+
result = qz.run(zen)
59+
60+
print(result.has_data)
61+
print(result.as_table())
62+
```
63+
64+
:::{rubric} Resources
65+
:::
66+
67+
- [Documentation](https://qz.surister.dev/.)
68+
- [Client Package](https://pypi.org/project/queryzen/)
69+
- [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
70+
- [Source Repository](https://github.com/surister/queryzen)
71+
72+
73+
[QueryZen]: https://github.com/surister/queryzen

docs/topic/framework/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ A few quick examples about how to use selected frameworks together with CrateDB.
1717

1818
- [cratedb-examples/framework](https://github.com/crate/cratedb-examples/tree/main/framework)
1919
+++
20-
{tag-info}`dbt` {tag-info}`dlt` {tag-info}`Flink` {tag-info}`Gradio` {tag-info}`Graphene` {tag-info}`MCP` {tag-info}`records` {tag-info}`Streamlit`
20+
{tag-info}`dbt` {tag-info}`dlt` {tag-info}`Flink` {tag-info}`Gradio` {tag-info}`Graphene` {tag-info}`MCP` {tag-info}`QueryZen` {tag-info}`records` {tag-info}`Streamlit`
2121
::::
2222

2323
:::::
@@ -26,4 +26,5 @@ A few quick examples about how to use selected frameworks together with CrateDB.
2626
- {ref}`gradio`
2727
- {ref}`plotly`
2828
- {ref}`pyviz`
29+
- {ref}`queryzen`
2930
- {ref}`streamlit`

0 commit comments

Comments
 (0)