From 4b2e80a4f9a26380debe94dd10ebb8b253c3d20b Mon Sep 17 00:00:00 2001 From: qianmoQ Date: Fri, 27 May 2022 10:30:42 +0800 Subject: [PATCH 1/4] [Docs] Add presto & trino datasource docs --- .../datasource/presto_trino/img.png | Bin 0 -> 34051 bytes .../development/version/1.17.0-development.md | 2 + .../management/datasource/presto_trino.md | 58 ++++++++++++++++++ docs/mkdocs.yml | 2 + electron-builder.yml | 2 + 5 files changed, 64 insertions(+) create mode 100644 docs/docs/assets/images/others/management/datasource/presto_trino/img.png create mode 100644 docs/docs/reference/management/datasource/presto_trino.md diff --git a/docs/docs/assets/images/others/management/datasource/presto_trino/img.png b/docs/docs/assets/images/others/management/datasource/presto_trino/img.png new file mode 100644 index 0000000000000000000000000000000000000000..e6b808b912b2438c28251f26e1df146fc9dd55ea GIT binary patch literal 34051 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

PGWxdTa4+{O$WYLtmuTOokj{?|+ zRhb?bYxM%b?u9;wu+(HA(n6sdE&vUFBRb1hc^0*u*8CYZZitnght&Ozqt1fiW_#>) zYt8sVq_#&eJhd&{3jn7v6rg?iZ)G+)sCdH3Ioj!0yXVw*97Mk-fC`?#QB9tUO96x(ceKgOMl&fOF_?b!|&($^0#uBinAFT(0b3q25}(GMe_y*NQs#tz2bOETgoaMP?HkI z14sY07)+F;8HmAE;6VI#0ZP9wBYG~HEoo`3%$s{nG=?M~kKKn(IqQOnt9Bp}zp{hu z0|7C5Zk3=FnlBmGS6aISCdsCCHt*Fv4=EeVh4CQOrFeLl%U)(XB?jEGHAq@1G@QYb zfY~Nl_Y)~rIi=f`n12KI=UWbz4nS1lseo_ykxi4uQsaFtBp!r0&;tagfjA-W4sQQ) zth0DHwapa<8PkJoMf$PgC@|C4720ED7Pa9~r22q{y7Uz2BqqQJKnC-JkrL+V+VElU z>f!E!43iO7L>>KrX<|Hu3Zb`#dSpY!1G8^o*eCW}@Uis(0HPcUAB}Syx&|Qw*$P-* z#LrbS_M%`&{d(?>qBC|-F5Pc6ywLgx;047Og~)A%durNgb!JOD$7FrRQ=D{nltdU# zywm>)_1SyO3qFAjoCOJIPw8KlGU#{21T$mJi2zBAfemIv8ZaQfZmy3t{uOJ>7N^!0 zJB$aZh}0_4t%?z2bw(-rQxSEuC%?T=^02WCrZ3%ui3%vQ_tvgBMro#zl(%wI29vDH zluor`12}+PbrzX39R5_j>KysiCyt)mY6TRE0(MZ!Q0&fj0$4OyKcpV`0|UhuJf~m| zr6M2!XK;mG42S%hE>)!Sj)=L06 zcVo-ULGC<>goCD#b8Qs5g{=UOJ%y?u# zM`}yng&`ohCLoaunRJd3xpP(LR=`sdiyVz`5iHm_00y3~Y9BmhhP}9^V1@!R1fL%R zt{m>J;Yz8Rxd?`gy!g8UxwKuzZ~jhQ`TLJ5nK*hWI~WEZ_r|i#L=5usmTpSJDRu5M z`{EmhkXw@?>{$k3TbfxBSbMs+wW5amE43URYiqd8+dAS{hIuNq z1Xhw~U@y>z*M{}Ic}rCYkXY+8d~#SKa}a zwaZghR8OS1U3cc{c;~Q59sai7LBsn3ylpXLPaPtf^SfZ4{^fD_<%0On;V=JHE&o?~ zd{Jp>I;eJCwk%+Hm=37}owNzqTOt+e*)@H}-UF)z)#w*tcflk +- Add clickhouse datasource docs
+- Add presto & trino datasource docs
#### Bug diff --git a/docs/docs/reference/management/datasource/presto_trino.md b/docs/docs/reference/management/datasource/presto_trino.md new file mode 100644 index 00000000..9751da34 --- /dev/null +++ b/docs/docs/reference/management/datasource/presto_trino.md @@ -0,0 +1,58 @@ +--- +template: overrides/main.html +--- + +!!! note "Presto & Trino" + + It is mainly used to describe how the software builds the Presto & Trino data source for subsequent operations. + +!!! warning "System requirements" + + \>= `1.17.0` + +### Supported Versions + +--- + +| Version | Tested? | +|-----------|---------------------------------------------| +| `Presto` | :material-checkbox-marked-circle:{.success} | +| `Trino` | :material-checkbox-marked-circle:{.success} | + +!!! note "Supported versions" + + Most versions have been tested, please submit issues for non-adapted versions. + +### Created a Source + +--- + +After entering the data source management page, click the Add data source button. + +![img.png](../../../assets/images/others/management/datasource/datasource_type.png) + +Select the ClickHouse icon in the `Basic` type (Presto is the second, Trino is the third). + +After selecting the type, click the `Next` button at the bottom to configure the relevant information. + +![img.png](../../../assets/images/others/management/datasource/presto_trino/img.png) + +!!! note "Supported protocols" + + - [x] `HTTP` + +#### HTTP Protocol + +--- + +!!! note "HTTP Protocol" + + Use the HTTP interface provided by Presto & Trino to connect to the service. + +| Parameter | Description | Required | Unique | Default | +|-------------|-----------------------------------------------------------------------------------------------------|----------|--------|---------| +| `Alias` | The alias of the data source, which will be displayed later in the selected data source on the page | Yes | Yes | | +| `Host` | The host of the Presto & Trino server | Yes | Yes | | +| `Port` | The port of the Presto & Trino server | Yes | Yes | | +| `User Name` | The user name of the Presto & Trino server | Yes | No | | +| `Password` | The password of the Presto & Trino server | Yes | No | | diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index c10d91af..f55de961 100755 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -156,6 +156,8 @@ nav: - Management: - Datasource: - ClickHouse: reference/management/datasource/clickhouse.md + - Presto: reference/management/datasource/presto_trino.md + - Trino: reference/management/datasource/presto_trino.md - Monitor: - Processor: reference/monitor/monitor-processor.md - Connection: reference/monitor/monitor_connection.md diff --git a/electron-builder.yml b/electron-builder.yml index a53473e3..ff22e529 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -20,6 +20,8 @@ releaseInfo: --- - Refactoring software homepage + - Add clickhouse datasource docs + - Add presto & trino datasource docs #### Optimize From 55dd26492417ca53ab88eb3c8f4598fd2ab74491 Mon Sep 17 00:00:00 2001 From: qianmoQ Date: Fri, 27 May 2022 11:24:17 +0800 Subject: [PATCH 2/4] [Enhancement] Support trino and presto for monitor --> slow query #158 --- .../development/version/1.17.0-development.md | 1 + electron-builder.yml | 5 ++- .../monitor/query/monitor.query.component.ts | 8 +--- src/renderer/config/base.config.ts | 1 + src/renderer/config/clickhouse.config.ts | 15 +++++++ src/renderer/config/presto.config.ts | 12 ++++++ .../services/monitor/monitor.service.ts | 42 +++++-------------- 7 files changed, 44 insertions(+), 40 deletions(-) diff --git a/docs/docs/development/version/1.17.0-development.md b/docs/docs/development/version/1.17.0-development.md index da085de9..dfa2d479 100644 --- a/docs/docs/development/version/1.17.0-development.md +++ b/docs/docs/development/version/1.17.0-development.md @@ -21,6 +21,7 @@ DBM Version for `1.17.0` is development! ![img_3.png](../../assets/images/versions/1.17.0/img_3.png)
- Support trino and presto for monitor --> processors
- Support trino and presto for monitor --> connection
+- Support trino and presto for monitor --> slow query
#### UI diff --git a/electron-builder.yml b/electron-builder.yml index ff22e529..1f94bacc 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -12,8 +12,9 @@ releaseInfo: - Support metadata management to filter the table - Support trino and presto for query - - Support trino and presto for monitor --> processors
- - Support trino and presto for monitor --> connection
+ - Support trino and presto for monitor --> processors + - Support trino and presto for monitor --> connection + - Support trino and presto for monitor --> slow query #### Docs diff --git a/src/renderer/app/pages/monitor/query/monitor.query.component.ts b/src/renderer/app/pages/monitor/query/monitor.query.component.ts index fe92c685..2d7a74ff 100644 --- a/src/renderer/app/pages/monitor/query/monitor.query.component.ts +++ b/src/renderer/app/pages/monitor/query/monitor.query.component.ts @@ -7,7 +7,6 @@ import { ResponseDataModel } from '@renderer/model/response.model'; import { DatasourceService } from '@renderer/services/management/datasource.service'; import { MonitorService } from '@renderer/services/monitor/monitor.service'; import { NzMessageService } from 'ng-zorro-antd/message'; -import { DatabaseEnum } from "@renderer/enum/database.enum"; @Component({ selector: 'app-monitor-query', @@ -28,12 +27,7 @@ export class MonitorQueryComponent extends BaseComponent { private messageService: NzMessageService) { super(); this.datasourceService.getAll().then(response => { - this.dataSources = response.map(item => { - if (item.type === DatabaseEnum.trino || item.type === DatabaseEnum.presto) { - item.status = false; - } - return item; - }); + this.dataSources = response; }); } diff --git a/src/renderer/config/base.config.ts b/src/renderer/config/base.config.ts index 4505e617..2cb99609 100644 --- a/src/renderer/config/base.config.ts +++ b/src/renderer/config/base.config.ts @@ -2,6 +2,7 @@ export interface BaseConfig { version: string; processesFetchAll: string; connectionFetchAll: string; + slowQueryFetchAll: string; diskUsedRatio: string; databaseDiskUsedRatio: string; tableDiskUsedRatio: string; diff --git a/src/renderer/config/clickhouse.config.ts b/src/renderer/config/clickhouse.config.ts index dab46830..dee2912f 100644 --- a/src/renderer/config/clickhouse.config.ts +++ b/src/renderer/config/clickhouse.config.ts @@ -21,6 +21,21 @@ FROM system.processes WHERE round(elapsed, 1) > 0 + `; + slowQueryFetchAll = ` +SELECT + user, client_hostname AS host, + client_name AS hash, query AS query, + query_start_time AS time, query_duration_ms AS elapsed, + round(memory_usage / 1048576) AS memoryUsage, + result_rows AS rows, result_bytes / 1048576 AS bytes, + read_rows AS readRows, round(read_bytes / 1048576) AS bytesRead, + written_rows AS writtenRows, round(written_bytes / 1048576) AS bytesWritten +FROM system.query_log +WHERE type = 2 +AND query_duration_ms >= {0} +ORDER BY query_duration_ms DESC +LIMIT 100 `; connectionFetchAll = ` SELECT diff --git a/src/renderer/config/presto.config.ts b/src/renderer/config/presto.config.ts index 84926de6..9d108a95 100644 --- a/src/renderer/config/presto.config.ts +++ b/src/renderer/config/presto.config.ts @@ -33,6 +33,18 @@ WHERE state = 'RUNNING' GROUP BY source ORDER BY source DESC `; + slowQueryFetchAll = ` +SELECT + query_id AS id, now() AS time, query AS query, '0' AS rows, + (analysis_time_ms + planning_time_ms + queued_time_ms) AS elapsed, + '0' AS bytes, '0' AS memoryUsage, + '0' AS bytesRead, '0' AS bytesWritten, + '' AS hash, '' AS host +FROM system.runtime.queries +WHERE (analysis_time_ms + planning_time_ms + queued_time_ms) >= {0} +ORDER BY (analysis_time_ms + planning_time_ms + queued_time_ms) DESC +LIMIT 100 + `; columnDiskUsedRatio: string; columnItems: string; databaseDiskUsedRatio: string; diff --git a/src/renderer/services/monitor/monitor.service.ts b/src/renderer/services/monitor/monitor.service.ts index d64d4399..43badfbc 100644 --- a/src/renderer/services/monitor/monitor.service.ts +++ b/src/renderer/services/monitor/monitor.service.ts @@ -1,13 +1,13 @@ -import {BaseService} from '@renderer/services/base.service'; -import {RequestModel} from '@renderer/model/request.model'; -import {ResponseModel} from '@renderer/model/response.model'; -import {Injectable} from '@angular/core'; -import {HttpService} from '@renderer/services/http.service'; -import {StringUtils} from '@renderer/utils/string.utils'; -import {SshService} from '@renderer/services/ssh.service'; -import {BasicService} from '@renderer/services/system/basic.service'; -import {ForwardService} from '@renderer/services/forward.service'; -import {FactoryService} from "@renderer/services/factory.service"; +import { BaseService } from '@renderer/services/base.service'; +import { RequestModel } from '@renderer/model/request.model'; +import { ResponseModel } from '@renderer/model/response.model'; +import { Injectable } from '@angular/core'; +import { HttpService } from '@renderer/services/http.service'; +import { StringUtils } from '@renderer/utils/string.utils'; +import { SshService } from '@renderer/services/ssh.service'; +import { BasicService } from '@renderer/services/system/basic.service'; +import { ForwardService } from '@renderer/services/forward.service'; +import { FactoryService } from "@renderer/services/factory.service"; import { PrestoService } from "@renderer/services/presto.service"; @Injectable() @@ -30,27 +30,7 @@ export class MonitorService extends ForwardService implements BaseService { } getSlowQuery(request: RequestModel, threshold: number): Promise { - const sql = StringUtils.format(` - SELECT - user, - client_hostname AS host, - client_name AS hash, - query AS query, - query_start_time AS time, - query_duration_ms AS elapsed, - round(memory_usage / 1048576) AS memoryUsage, - result_rows AS rows, - result_bytes / 1048576 AS bytes, - read_rows AS readRows, - round(read_bytes / 1048576) AS bytesRead, - written_rows AS writtenRows, - round(written_bytes / 1048576) AS bytesWritten - FROM system.query_log - WHERE type = 2 - AND query_duration_ms >= {0} - ORDER BY query_duration_ms DESC - LIMIT 100 - `, [threshold]); + const sql = StringUtils.format(this.factoryService.forward(request.config.type).slowQueryFetchAll, [threshold]); return this.getResponse(request, sql); } From 6c704c7b5ff6434c1569555fb6e035c59750feb7 Mon Sep 17 00:00:00 2001 From: qianmoQ Date: Fri, 27 May 2022 14:28:24 +0800 Subject: [PATCH 3/4] [Bug] Fix the exception that the data source is not selected in the track, the Track list can be selected --- docs/docs/development/version/1.17.0-development.md | 2 ++ electron-builder.yml | 2 ++ src/renderer/app/pages/tools/track/track.component.html | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/docs/development/version/1.17.0-development.md b/docs/docs/development/version/1.17.0-development.md index dfa2d479..ca257b7a 100644 --- a/docs/docs/development/version/1.17.0-development.md +++ b/docs/docs/development/version/1.17.0-development.md @@ -52,6 +52,8 @@ DBM Version for `1.17.0` is development! --- +- Fix the exception that the data source is not selected in the track, the Track list can be selected
+ #### Contributors (In no particular order) --- diff --git a/electron-builder.yml b/electron-builder.yml index 1f94bacc..f32eb3a9 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -35,6 +35,8 @@ releaseInfo: --- + - Fix the exception that the data source is not selected in the track, the Track list can be selected + #### UI --- diff --git a/src/renderer/app/pages/tools/track/track.component.html b/src/renderer/app/pages/tools/track/track.component.html index f1b0a931..b1c1b4c5 100644 --- a/src/renderer/app/pages/tools/track/track.component.html +++ b/src/renderer/app/pages/tools/track/track.component.html @@ -52,7 +52,7 @@ nzValue="{{detail.alias}}" nzLabel="{{detail.alias}}"> {{'common.track'|translate}}  - From 2cf37026a338b6fa88d9d4bc5c97cbf9827dc6d5 Mon Sep 17 00:00:00 2001 From: qianmoQ Date: Sat, 28 May 2022 21:33:06 +0800 Subject: [PATCH 4/4] [Release] Release 1.17.0 --- .../development/version/1.17.0-development.md | 26 -------- docs/docs/release/1.17.0-20220529.md | 59 +++++++++++++++++++ docs/mkdocs.yml | 3 +- package.json | 2 +- 4 files changed, 62 insertions(+), 28 deletions(-) create mode 100644 docs/docs/release/1.17.0-20220529.md diff --git a/docs/docs/development/version/1.17.0-development.md b/docs/docs/development/version/1.17.0-development.md index ca257b7a..0982565f 100644 --- a/docs/docs/development/version/1.17.0-development.md +++ b/docs/docs/development/version/1.17.0-development.md @@ -13,48 +13,22 @@ DBM Version for `1.17.0` is development! --- -- Support metadata management to filter the table
-![img.png](../../assets/images/versions/1.17.0/img.png)
-![img_1.png](../../assets/images/versions/1.17.0/img_1.png)
-![img_2.png](../../assets/images/versions/1.17.0/img_2.png)
-- Support trino and presto for query
-![img_3.png](../../assets/images/versions/1.17.0/img_3.png)
-- Support trino and presto for monitor --> processors
-- Support trino and presto for monitor --> connection
-- Support trino and presto for monitor --> slow query
- #### UI --- -- Add multiple editor themes
-- Query the list of data sources on the page, support the display of logo
-![img_6.png](../../assets/images/versions/1.17.0/img_6.png)
- #### Optimize ---- -- Optimize project description and introduction
-- Optimize the homepage is not available & does not support data source charts
-![img_4.png](../../assets/images/versions/1.17.0/img_4.png)
-![img_5.png](../../assets/images/versions/1.17.0/img_5.png)
- #### Docs --- -- Refactoring software homepage
-- Add clickhouse datasource docs
-- Add presto & trino datasource docs
- #### Bug --- -- Fix the exception that the data source is not selected in the track, the Track list can be selected
- -#### Contributors (In no particular order) --- diff --git a/docs/docs/release/1.17.0-20220529.md b/docs/docs/release/1.17.0-20220529.md new file mode 100644 index 00000000..43baeed4 --- /dev/null +++ b/docs/docs/release/1.17.0-20220529.md @@ -0,0 +1,59 @@ +--- +template: overrides/main.html +icon: material/gesture-tap-button +--- + +DBM Version for `1.17.0` is released! + +Release Time: `2022-05-29` + +#### Enhancement + +--- + +- Support metadata management to filter the table
+![img.png](../assets/images/versions/1.17.0/img.png)
+![img_1.png](../assets/images/versions/1.17.0/img_1.png)
+![img_2.png](../assets/images/versions/1.17.0/img_2.png)
+- Support trino and presto for query
+![img_3.png](../assets/images/versions/1.17.0/img_3.png)
+- Support trino and presto for monitor --> processors
+- Support trino and presto for monitor --> connection
+- Support trino and presto for monitor --> slow query
+ +#### UI + +--- + +- Add multiple editor themes
+- Query the list of data sources on the page, support the display of logo
+![img_6.png](../assets/images/versions/1.17.0/img_6.png)
+ +#### Optimize + +---- + +- Optimize project description and introduction
+- Optimize the homepage is not available & does not support data source charts
+![img_4.png](../assets/images/versions/1.17.0/img_4.png)
+![img_5.png](../assets/images/versions/1.17.0/img_5.png)
+ +#### Docs + +--- + +- Refactoring software homepage
+- Add clickhouse datasource docs
+- Add presto & trino datasource docs
+ +#### Bug + +--- + +- Fix the exception that the data source is not selected in the track, the Track list can be selected
+ +#### Contributors (In no particular order) + +--- + +- @qianmoQ diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index f55de961..c72d1797 100755 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -164,7 +164,8 @@ nav: - Mutations: reference/monitor/monitor_mutations.md - Query: reference/monitor/monitor_query.md - Release Note: - - 1.16.0 (latest): release/1.16.0-20220513.md + - 1.17.0 (latest): release/1.17.0-20220529.md + - 1.16.0: release/1.16.0-20220513.md - 1.15.0: release/1.15.0-20220425.md - 1.14.0: release/1.14.0-20220410.md - 1.13.0: release/1.13.0-20220329.md diff --git a/package.json b/package.json index 716cb631..3006ea58 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dbm", - "version": "1.17.0-SNAPSHOT", + "version": "1.17.0", "author": "qianmoQ ", "description": "ClickHouse DataBase GUI", "github": "https://github.com/EdurtIO/dbm.git",