Clichouse TTL
parent
fcfd5e1aae
commit
a0096e652c
|
|
@ -4,7 +4,7 @@ import { isInternalThread } from 'node:worker_threads';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ClickhouseService {
|
export class ClickhouseService {
|
||||||
async ClickHouseConnect(): Promise<any>{
|
async ClickHouseConnect(): Promise<ClickHouse>{
|
||||||
let connectionData = new ClickHouse({
|
let connectionData = new ClickHouse({
|
||||||
url: 'http://192.168.2.37',
|
url: 'http://192.168.2.37',
|
||||||
port: 8123,
|
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 connectionData = await this.ClickHouseConnect();
|
||||||
|
|
||||||
// let queries = [
|
// let queries = [
|
||||||
|
|
@ -63,16 +63,22 @@ export class ClickhouseService {
|
||||||
`CREATE TABLE IF NOT EXISTS raw_parameters (
|
`CREATE TABLE IF NOT EXISTS raw_parameters (
|
||||||
EventDataTime DateTime64,
|
EventDataTime DateTime64,
|
||||||
ParameterBody String,
|
ParameterBody String,
|
||||||
CreateDataTime DateTime64,
|
CreateDataTime DateTime,
|
||||||
) ENGINE = MergeTree()
|
) 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 (
|
`CREATE TABLE IF NOT EXISTS complex_parameters (
|
||||||
EventDataTime DateTime64,
|
EventDataTime DateTime64,
|
||||||
ParameterBody String,
|
ParameterBody String,
|
||||||
CreateDate DateTime64,
|
CreateDataTime DateTime,
|
||||||
) ENGINE = MergeTree()
|
) 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 (
|
`CREATE TABLE IF NOT EXISTS raw_parameters_extended (
|
||||||
EventDataTime DateTime64,
|
EventDataTime DateTime64,
|
||||||
|
|
@ -80,9 +86,12 @@ export class ClickhouseService {
|
||||||
ParameterName String,
|
ParameterName String,
|
||||||
ParameterValue Float64,
|
ParameterValue Float64,
|
||||||
ParameterBody String,
|
ParameterBody String,
|
||||||
CreateDate DateTime64,
|
CreateDataTime DateTime,
|
||||||
) ENGINE = MergeTree()
|
) 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 (
|
`CREATE TABLE IF NOT EXISTS complex_parameters_extended (
|
||||||
EventDataTime DateTime64,
|
EventDataTime DateTime64,
|
||||||
|
|
@ -90,9 +99,12 @@ export class ClickhouseService {
|
||||||
ParameterName String,
|
ParameterName String,
|
||||||
ParameterValue Float64,
|
ParameterValue Float64,
|
||||||
ParameterBody String,
|
ParameterBody String,
|
||||||
CreateDate DateTime64,
|
CreateDataTime DateTime,
|
||||||
) ENGINE = MergeTree()
|
) 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 (
|
`CREATE TABLE IF NOT EXISTS status_events (
|
||||||
EventDataTime DateTime64,
|
EventDataTime DateTime64,
|
||||||
|
|
@ -102,7 +114,7 @@ export class ClickhouseService {
|
||||||
ParameterBody String,
|
ParameterBody String,
|
||||||
PreviousStatus Int32,
|
PreviousStatus Int32,
|
||||||
CurrentStatus Int32,
|
CurrentStatus Int32,
|
||||||
CreateDate DateTime64,
|
CreateDataTime DateTime,
|
||||||
) ENGINE = MergeTree()
|
) ENGINE = MergeTree()
|
||||||
PRIMARY KEY (EventDataTime)`,
|
PRIMARY KEY (EventDataTime)`,
|
||||||
|
|
||||||
|
|
@ -119,7 +131,33 @@ export class ClickhouseService {
|
||||||
// console.log(query, r);
|
// console.log(query, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(connectionData);
|
// console.log(connectionData);
|
||||||
return 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);
|
let intermediate = await this.getComplexMetricsValues(inp, prev, complex, model, scope);
|
||||||
|
|
||||||
// console.log(intermediate);
|
console.log(intermediate);
|
||||||
let ctp: any = classToPlain(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);
|
// console.log(parameterBody);
|
||||||
let abc = new ClickhouseService();
|
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));
|
// const val = JSON.parse(JSON.stringify(model[0].values));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue