Clichouse TTL
parent
fcfd5e1aae
commit
a0096e652c
|
|
@ -4,7 +4,7 @@ import { isInternalThread } from 'node:worker_threads';
|
|||
|
||||
@Injectable()
|
||||
export class ClickhouseService {
|
||||
async ClickHouseConnect(): Promise<any>{
|
||||
async ClickHouseConnect(): Promise<ClickHouse>{
|
||||
let connectionData = new ClickHouse({
|
||||
url: 'http://192.168.2.37',
|
||||
port: 8123,
|
||||
|
|
@ -38,7 +38,7 @@ export class ClickhouseService {
|
|||
|
||||
}
|
||||
|
||||
async ClickHouseDBsCreate(parameterBody: any): Promise<any> {
|
||||
async ClickHouseDBsCreate(): Promise<ClickHouse> {
|
||||
let connectionData = await this.ClickHouseConnect();
|
||||
|
||||
// let queries = [
|
||||
|
|
@ -63,16 +63,22 @@ export class ClickhouseService {
|
|||
`CREATE TABLE IF NOT EXISTS raw_parameters (
|
||||
EventDataTime DateTime64,
|
||||
ParameterBody String,
|
||||
CreateDataTime DateTime64,
|
||||
CreateDataTime DateTime,
|
||||
) ENGINE = MergeTree()
|
||||
PRIMARY KEY (EventDataTime)`,
|
||||
PRIMARY KEY (EventDataTime)
|
||||
PARTITION BY toYYYYMM(CreateDataTime)
|
||||
TTL CreateDataTime + INTERVAL 3 MONTH
|
||||
SETTINGS storage_policy = 'default'`,
|
||||
|
||||
`CREATE TABLE IF NOT EXISTS complex_parameters (
|
||||
EventDataTime DateTime64,
|
||||
ParameterBody String,
|
||||
CreateDate DateTime64,
|
||||
CreateDataTime DateTime,
|
||||
) ENGINE = MergeTree()
|
||||
PRIMARY KEY (EventDataTime)`,
|
||||
PRIMARY KEY (EventDataTime)
|
||||
PARTITION BY toYYYYMM(CreateDataTime)
|
||||
TTL CreateDataTime + INTERVAL 3 MONTH
|
||||
SETTINGS storage_policy = 'default'`,
|
||||
|
||||
`CREATE TABLE IF NOT EXISTS raw_parameters_extended (
|
||||
EventDataTime DateTime64,
|
||||
|
|
@ -80,9 +86,12 @@ export class ClickhouseService {
|
|||
ParameterName String,
|
||||
ParameterValue Float64,
|
||||
ParameterBody String,
|
||||
CreateDate DateTime64,
|
||||
CreateDataTime DateTime,
|
||||
) ENGINE = MergeTree()
|
||||
PRIMARY KEY (EventDataTime)`,
|
||||
PRIMARY KEY (EventDataTime)
|
||||
PARTITION BY toYYYYMM(CreateDataTime)
|
||||
TTL CreateDataTime + INTERVAL 3 MONTH
|
||||
SETTINGS storage_policy = 'default'`,
|
||||
|
||||
`CREATE TABLE IF NOT EXISTS complex_parameters_extended (
|
||||
EventDataTime DateTime64,
|
||||
|
|
@ -90,9 +99,12 @@ export class ClickhouseService {
|
|||
ParameterName String,
|
||||
ParameterValue Float64,
|
||||
ParameterBody String,
|
||||
CreateDate DateTime64,
|
||||
CreateDataTime DateTime,
|
||||
) ENGINE = MergeTree()
|
||||
PRIMARY KEY (EventDataTime)`,
|
||||
PRIMARY KEY (EventDataTime)
|
||||
PARTITION BY toYYYYMM(CreateDataTime)
|
||||
TTL CreateDataTime + INTERVAL 3 MONTH
|
||||
SETTINGS storage_policy = 'default'`,
|
||||
|
||||
`CREATE TABLE IF NOT EXISTS status_events (
|
||||
EventDataTime DateTime64,
|
||||
|
|
@ -102,7 +114,7 @@ export class ClickhouseService {
|
|||
ParameterBody String,
|
||||
PreviousStatus Int32,
|
||||
CurrentStatus Int32,
|
||||
CreateDate DateTime64,
|
||||
CreateDataTime DateTime,
|
||||
) ENGINE = MergeTree()
|
||||
PRIMARY KEY (EventDataTime)`,
|
||||
|
||||
|
|
@ -119,7 +131,33 @@ export class ClickhouseService {
|
|||
// console.log(query, r);
|
||||
}
|
||||
|
||||
console.log(connectionData);
|
||||
// console.log(connectionData);
|
||||
return connectionData;
|
||||
}
|
||||
|
||||
async ClickHouseAddRecords(recordFormat: string, parameterBody: any): Promise<any>{
|
||||
let connectionData = await this.ClickHouseDBsCreate();
|
||||
switch(recordFormat){
|
||||
case 'raw':
|
||||
let insertRawQuery = 'INSERT INTO raw_parameters VALUES(toDateTime(now()), \'{{parameterBody}}\', toDateTime(now()));';
|
||||
// console.log(insertQuery);
|
||||
insertRawQuery = insertRawQuery.replace('{{parameterBody}}', parameterBody);
|
||||
// console.log(insertRawQuery);
|
||||
// for (let query of insertQuery) {
|
||||
let retRaw = await connectionData.query(insertRawQuery).toPromise();
|
||||
// console.log(retRaw);
|
||||
// }
|
||||
break;
|
||||
case 'complex':
|
||||
let insertComplexQuery = 'INSERT INTO complex_parameters VALUES(toDateTime(now()), \'{{parameterBody}}\', toDateTime(now()));';
|
||||
// console.log(insertQuery);
|
||||
insertComplexQuery = insertComplexQuery.replace('{{parameterBody}}', parameterBody);
|
||||
// console.log(insertComplexQuery);
|
||||
// for (let query of insertQuery) {
|
||||
let retComplex = await connectionData.query(insertComplexQuery).toPromise();
|
||||
// console.log(retComplex);
|
||||
// }
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,12 +78,15 @@ export class ZvksmetricsService {
|
|||
|
||||
let intermediate = await this.getComplexMetricsValues(inp, prev, complex, model, scope);
|
||||
|
||||
// console.log(intermediate);
|
||||
console.log(intermediate);
|
||||
let ctp: any = classToPlain(intermediate);
|
||||
let parameterBody: string = JSON.stringify(ctp);
|
||||
let copmplexParameterBody: string = JSON.stringify(ctp);
|
||||
let rtp: any = classToPlain(inputData);
|
||||
let rawParameterBody: string = JSON.stringify(rtp);
|
||||
// console.log(parameterBody);
|
||||
let abc = new ClickhouseService();
|
||||
abc.ClickHouseDBsCreate(parameterBody);
|
||||
await abc.ClickHouseAddRecords('raw', rawParameterBody);
|
||||
await abc.ClickHouseAddRecords('complex', copmplexParameterBody);
|
||||
|
||||
|
||||
// const val = JSON.parse(JSON.stringify(model[0].values));
|
||||
|
|
|
|||
Loading…
Reference in New Issue