mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 23:03:01 +08:00
SQL: Add macro support in select case (#88514)
* Feat: timeGroup macro handling in VQB * Add tests * Add functions to SQL ds * Fix lint errors * Add feature toggle * Add rendering based on object * Fix lint * Fix CI failures * Fix tests * Address review comments * Add docs * Fix JSX runtime warnings * Remove docs part that mentions suggest more macros * Update docs/sources/shared/datasources/sql-query-builder-macros.md Co-authored-by: Jack Baldry <jack.baldry@grafana.com> * Add smoke test for this feature * lint * Add supported macros to influx * Add setupTests.ts to include in tsconfig.json * Import jest-dom instead of setupTests.ts --------- Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
This commit is contained in:
@ -129,6 +129,8 @@ You can select an optional aggregation function for the column in the **Aggregat
|
||||
|
||||
To add more value columns, click the plus (`+`) button to the right of the column's row.
|
||||
|
||||
{{< docs/shared source="grafana" lookup="datasources/sql-query-builder-macros.md" version="<GRAFANA_VERSION>" >}}
|
||||
|
||||
### Filter data (WHERE)
|
||||
|
||||
To add a filter, toggle the **Filter** switch at the top of the editor.
|
||||
@ -180,8 +182,6 @@ To simplify syntax and to allow for dynamic components, such as date range filte
|
||||
| `$__unixEpochGroup(dateColumn,'5m', [fillmode])` | Same as `$__timeGroup` but for times stored as Unix timestamp. |
|
||||
| `$__unixEpochGroupAlias(dateColumn,'5m', [fillmode])` | Same as above but also adds a column alias. |
|
||||
|
||||
To suggest more macros, please [open an issue](https://github.com/grafana/grafana) in our GitHub repo.
|
||||
|
||||
### View the interpolated query
|
||||
|
||||
The query editor also includes a link named **Generated SQL** that appears after running a query while in panel edit mode.
|
||||
|
@ -247,6 +247,8 @@ Using the dropdown, select a column to include in the data. You can also specify
|
||||
|
||||
Add further value columns by clicking the plus button and another column dropdown appears.
|
||||
|
||||
{{< docs/shared source="grafana" lookup="datasources/sql-query-builder-macros.md" version="<GRAFANA_VERSION>" >}}
|
||||
|
||||
### Filter data (WHERE)
|
||||
|
||||
To add a filter, toggle the **Filter** switch at the top of the editor.
|
||||
@ -304,10 +306,6 @@ To simplify syntax and to allow for dynamic parts, like date range filters, the
|
||||
| `$__unixEpochGroup(dateColumn,'5m', [fillmode])` | Same as $\_\_timeGroup but for times stored as Unix timestamp (`fillMode` only works with time series queries). |
|
||||
| `$__unixEpochGroupAlias(dateColumn,'5m', [fillmode])` | Same as above but also adds a column alias (`fillMode` only works with time series queries). |
|
||||
|
||||
We plan to add many more macros. If you have suggestions for what macros you would like to see, please [open an issue](https://github.com/grafana/grafana) in our GitHub repo.
|
||||
|
||||
The query editor has a link named `Generated SQL` that shows up after a query has been executed, while in panel edit mode. Click on it and it will expand and show the raw interpolated SQL string that was executed.
|
||||
|
||||
## Table queries
|
||||
|
||||
If the `Format as` query option is set to `Table` then you can basically do any type of SQL query. The table panel will automatically show the results of whatever columns and rows your query returns.
|
||||
|
@ -155,6 +155,8 @@ Using the dropdown, select a column to include in the data. You can also specify
|
||||
|
||||
Add further value columns by clicking the plus button and another column dropdown appears.
|
||||
|
||||
{{< docs/shared source="grafana" lookup="datasources/sql-query-builder-macros.md" version="<GRAFANA_VERSION>" >}}
|
||||
|
||||
### Filter data (WHERE)
|
||||
|
||||
To add a filter, toggle the **Filter** switch at the top of the editor.
|
||||
@ -250,8 +252,6 @@ Macros can be used within a query to simplify syntax and allow for dynamic parts
|
||||
| `$__unixEpochGroup(dateColumn,'5m', [fillmode])` | Same as $\_\_timeGroup but for times stored as Unix timestamp (`fillMode` only works with time series queries). |
|
||||
| `$__unixEpochGroupAlias(dateColumn,'5m', [fillmode])` | Same as above but also adds a column alias (`fillMode` only works with time series queries). |
|
||||
|
||||
We plan to add many more macros. If you have suggestions for what macros you would like to see, please [open an issue](https://github.com/grafana/grafana) in our GitHub repo.
|
||||
|
||||
## Table queries
|
||||
|
||||
If the `Format as` query option is set to `Table` then you can basically do any type of SQL query. The table panel will automatically show the results of whatever columns and rows your query returns.
|
||||
|
@ -196,6 +196,7 @@ Experimental features might be changed or removed without prior notice.
|
||||
| `alertingListViewV2` | Enables the new alert list view design |
|
||||
| `dashboardRestore` | Enables deleted dashboard restore feature |
|
||||
| `alertingCentralAlertHistory` | Enables the new central alert history. |
|
||||
| `sqlQuerybuilderFunctionParameters` | Enables SQL query builder function parameters |
|
||||
| `failWrongDSUID` | Throws an error if a datasource has an invalid UIDs |
|
||||
| `alertingApiServer` | Register Alerting APIs with the K8s API server |
|
||||
| `dataplaneAggregator` | Enable grafana dataplane aggregator |
|
||||
|
22
docs/sources/shared/datasources/sql-query-builder-macros.md
Normal file
22
docs/sources/shared/datasources/sql-query-builder-macros.md
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
headless: true
|
||||
labels:
|
||||
products:
|
||||
- enterprise
|
||||
- oss
|
||||
---
|
||||
|
||||
#### Macros
|
||||
|
||||
You can enable macros support in the select clause to create time-series queries.
|
||||
|
||||
{{< docs/experimental product="Macros support in visual query builder" featureFlag="`sqlQuerybuilderFunctionParameters`" >}}
|
||||
|
||||
Use the **Data operations** drop-down to select a macro like `$__timeGroup` or `$__timeGroupAlias`.
|
||||
Select a time column from the **Column** drop-down and a time interval from the **Interval** drop-down to create a time-series query.
|
||||
|
||||
{{< figure src="/media/docs/grafana/data-sources/screenshot-sql-builder-time-series-query.png" class="docs-image--no-shadow" caption="SQL query builder time-series query" >}}
|
||||
|
||||
You can also add custom value to the **Data operations**.
|
||||
For example, a function that's not in the drop-down list.
|
||||
This allows you to add any number of parameters.
|
Reference in New Issue
Block a user