From 712a96e10b7408393efe7d596abe62d23d4b6ed8 Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Tue, 29 Apr 2025 01:33:38 +0700 Subject: [PATCH] feat: improve Clickhouse metrics performance --- .../dragonestia/msb3/api/metrics/PlayerEventMetrics.java | 2 +- clickhouse/init.sql | 3 +++ clickhouse/users.xml | 8 -------- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/api/src/main/java/ru/dragonestia/msb3/api/metrics/PlayerEventMetrics.java b/api/src/main/java/ru/dragonestia/msb3/api/metrics/PlayerEventMetrics.java index e54f37f..73af696 100644 --- a/api/src/main/java/ru/dragonestia/msb3/api/metrics/PlayerEventMetrics.java +++ b/api/src/main/java/ru/dragonestia/msb3/api/metrics/PlayerEventMetrics.java @@ -36,7 +36,7 @@ public class PlayerEventMetrics { CompletableFuture.runAsync(() -> { log.debug("Sending event '{}' for player '{}'({}) with data '{}'", eventName, player.getUsername(), player.getUuid(), GSON.toJson(details)); try (var con = sql2o.open()) { - con.createQuery("insert into events (uuid, player_name, timestamp, event_type, details) values (:uuid, :player_name, now(), :event_type, :details)", false) + con.createQuery("insert into msb3.events_buffer (uuid, player_name, timestamp, event_type, details) values (:uuid, :player_name, now(), :event_type, :details)", false) .addParameter("uuid", player.getUuid()) .addParameter("player_name", player.getUsername()) .addParameter("event_type", eventName) diff --git a/clickhouse/init.sql b/clickhouse/init.sql index 626dfdb..a43b592 100644 --- a/clickhouse/init.sql +++ b/clickhouse/init.sql @@ -9,3 +9,6 @@ create table if not exists msb3.events details Nullable(String) ) engine = ReplacingMergeTree partition by toYYYYMM(timestamp) primary key (uuid, event_type, timestamp); + +create table msb3.events_buffer as msb3.events +engine = Buffer(msb3, events, 1, 10, 100, 50, 200, 500, 100000); diff --git a/clickhouse/users.xml b/clickhouse/users.xml index c075cc5..6c83a82 100644 --- a/clickhouse/users.xml +++ b/clickhouse/users.xml @@ -1,13 +1,5 @@ - - - ::/1 - 127.0.0.1 - - default - default - example default