diff --git a/src/database/clickhouse/clickhouse.service.ts b/src/database/clickhouse/clickhouse.service.ts index 04a91ad..ff772a1 100644 --- a/src/database/clickhouse/clickhouse.service.ts +++ b/src/database/clickhouse/clickhouse.service.ts @@ -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 { 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{ 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{ 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; + } } }