mirror of
https://github.com/umami-software/umami.git
synced 2026-02-04 04:37:11 +01:00
create kafka save queries
This commit is contained in:
parent
b0a36f18b4
commit
1ab1e58cb1
4 changed files with 70 additions and 19 deletions
18
lib/db.js
18
lib/db.js
|
|
@ -1,5 +1,6 @@
|
|||
import { PrismaClient } from '@prisma/client';
|
||||
import { ClickHouse } from 'clickhouse';
|
||||
import { Kafka } from 'kafkajs';
|
||||
import chalk from 'chalk';
|
||||
import {
|
||||
MYSQL,
|
||||
|
|
@ -9,6 +10,7 @@ import {
|
|||
CLICKHOUSE,
|
||||
RELATIONAL,
|
||||
FILTER_IGNORED,
|
||||
KAFKA,
|
||||
} from 'lib/constants';
|
||||
import moment from 'moment-timezone';
|
||||
import { CLICKHOUSE_DATE_FORMATS } from './constants';
|
||||
|
|
@ -69,7 +71,6 @@ function getKafkaClient() {
|
|||
return null;
|
||||
}
|
||||
|
||||
const { Kafka } = require('kafkajs');
|
||||
const url = new URL(process.env.KAFKA_URL);
|
||||
const brokers = process.env.KAFKA_BROKER.split(',');
|
||||
|
||||
|
|
@ -117,9 +118,7 @@ export function getDatabase() {
|
|||
}
|
||||
|
||||
export function getAnalyticsDatabase() {
|
||||
const type =
|
||||
process.env.ANALYTICS_TYPE ||
|
||||
(process.env.ANALYTICS_URL && process.env.ANALYTICS_URL.split(':')[0]);
|
||||
const type = process.env.ANALYTICS_URL && process.env.ANALYTICS_URL.split(':')[0];
|
||||
|
||||
if (type === 'postgres') {
|
||||
return POSTGRESQL;
|
||||
|
|
@ -132,6 +131,12 @@ export function getAnalyticsDatabase() {
|
|||
return type;
|
||||
}
|
||||
|
||||
export function getKafkaService() {
|
||||
const type = process.env.KAFKA_URL && process.env.KAFKA_URL.split(':')[0];
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
export function getDateStringQueryClickhouse(data, unit) {
|
||||
return `formatDateTime(${data}, '${CLICKHOUSE_DATE_FORMATS[unit]}')`;
|
||||
}
|
||||
|
|
@ -321,9 +326,12 @@ export async function runAnalyticsQuery(queries) {
|
|||
if (db === POSTGRESQL || db === MYSQL) {
|
||||
return queries[RELATIONAL]();
|
||||
}
|
||||
59;
|
||||
|
||||
if (db === CLICKHOUSE) {
|
||||
const kafka = getKafkaService();
|
||||
if (kafka === KAFKA && queries[KAFKA]) {
|
||||
return queries[KAFKA]();
|
||||
}
|
||||
return queries[CLICKHOUSE]();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue