main
DenisN 2025-08-08 04:16:54 -04:00
parent ae9e5d3caa
commit cd314efc6a
1 changed files with 53 additions and 59 deletions

View File

@ -10,8 +10,6 @@ export class ClickhouseService {
url: process.env.DATABASE_URL,
port: process.env.DATABASE_PORT,
// port: 8123,
// url: DATABASE_NAME,
// PORT: DATABASE_PORT,
debug: false,
basicAuth: {
username: process.env.DATABASE_USER,
@ -42,25 +40,7 @@ export class ClickhouseService {
async ClickHouseDBsCreate(): Promise<ClickHouse> {
let connectionData = await this.ClickHouseConnect();
// let queries = [
// 'DROP TABLE IF EXISTS session_temp',
// `CREATE TABLE IF NOT EXISTS session_temp (
// id UInt128,
// body TEXT,
// ips Array(UInt32),
// ueries Nested (
// id UInt32,
// act String,
// uptime DateTime64
// ),
// create_date DateTime64,
// update_time DateTime64,
// ) ENGINE = MergeTree()
// PRIMARY KEY (id)`
// ];
try {
let queries = [
`CREATE TABLE IF NOT EXISTS raw_parameters (
EventDataTime DateTime64,
@ -134,53 +114,67 @@ export class ClickhouseService {
}
// console.log(connectionData);
return connectionData;
return connectionData;}
catch (e) {
return e;
}
}
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) {
try{
let retRaw = await connectionData.query(insertRawQuery).toPromise();
}
catch{
console.log(insertRawQuery);
}
// 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;
try {
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) {
try{
let retRaw = await connectionData.query(insertRawQuery).toPromise();
}
catch{
console.log(insertRawQuery);
}
// 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;
}
return 1;
}
return 1;
catch {
return 0;
}
}
async ClickHouseAddEvents(parameterID: string, parameterName: string, parameterValue: string, parameterBody: string, previousStatus: string, currentStatus: string): Promise<any>{
let connectionData = await this.ClickHouseDBsCreate();
let insertEventQuery = 'INSERT INTO status_events VALUES(toDateTime(now()), {{parameterID}}, \'{{parameterName}}\', {{parameterValue}}, \'{{parameterBody}}\', {{previousStatus}}, {{currentStatus}}, toDateTime(now()));';
insertEventQuery = insertEventQuery.replace('{{parameterID}}', parameterID);
insertEventQuery = insertEventQuery.replace('{{parameterName}}', parameterName);
insertEventQuery = insertEventQuery.replace('{{parameterValue}}', parameterValue);
insertEventQuery = insertEventQuery.replace('{{parameterBody}}', parameterBody);
insertEventQuery = insertEventQuery.replace('{{previousStatus}}', previousStatus);
insertEventQuery = insertEventQuery.replace('{{currentStatus}}', currentStatus);
let retEvent = await connectionData.query(insertEventQuery).toPromise();
// console.log(retEvent);
return 1;
try {
let insertEventQuery = 'INSERT INTO status_events VALUES(toDateTime(now()), {{parameterID}}, \'{{parameterName}}\', {{parameterValue}}, \'{{parameterBody}}\', {{previousStatus}}, {{currentStatus}}, toDateTime(now()));';
insertEventQuery = insertEventQuery.replace('{{parameterID}}', parameterID);
insertEventQuery = insertEventQuery.replace('{{parameterName}}', parameterName);
insertEventQuery = insertEventQuery.replace('{{parameterValue}}', parameterValue);
insertEventQuery = insertEventQuery.replace('{{parameterBody}}', parameterBody);
insertEventQuery = insertEventQuery.replace('{{previousStatus}}', previousStatus);
insertEventQuery = insertEventQuery.replace('{{currentStatus}}', currentStatus);
let retEvent = await connectionData.query(insertEventQuery).toPromise();
// console.log(retEvent);
return 1;
}
catch {
return 0;
}
}
}