fix: change order keys for clickhouse tables

* wip

* rename

* fix: minor things before merging new order keys

* fix: add maintenance mode

* fix: update order by for session and events

* fix: remove properties from sessions and final migration test

* fix: set end date on migrations

* fix: comments
This commit is contained in:
Carl-Gerhard Lindesvärd
2025-12-16 12:48:51 +01:00
committed by GitHub
parent 3b61b28290
commit d7c6e88adc
18 changed files with 463 additions and 46 deletions

View File

@@ -131,7 +131,6 @@ export function transformSessionToEvent(
duration: 0,
revenue: session.revenue,
properties: {
...session.properties,
is_bounce: session.is_bounce,
__query: {
utm_medium: session.utm_medium,
@@ -631,8 +630,7 @@ export async function getEventList(options: GetEventListOptions) {
}
}
sb.orderBy.created_at =
'toDate(created_at) DESC, created_at DESC, profile_id DESC, name DESC';
sb.orderBy.created_at = 'created_at DESC';
if (custom) {
custom(sb);

View File

@@ -1,6 +1,5 @@
import { cacheable } from '@openpanel/redis';
import type { IChartEventFilter } from '@openpanel/validation';
import { uniq } from 'ramda';
import sqlstring from 'sqlstring';
import {
TABLE_NAMES,
@@ -53,7 +52,6 @@ export type IClickhouseSession = {
revenue: number;
sign: 1 | 0;
version: number;
properties: Record<string, string>;
};
export interface IServiceSession {
@@ -92,7 +90,6 @@ export interface IServiceSession {
utmContent: string;
utmTerm: string;
revenue: number;
properties: Record<string, string>;
profile?: IServiceProfile;
}
@@ -144,7 +141,6 @@ export function transformSession(session: IClickhouseSession): IServiceSession {
utmContent: session.utm_content,
utmTerm: session.utm_term,
revenue: session.revenue,
properties: session.properties,
profile: undefined,
};
}
@@ -200,12 +196,13 @@ export async function getSessionList({
if (cursor) {
const cAt = sqlstring.escape(cursor.createdAt);
// TODO: remove id from cursor
const cId = sqlstring.escape(cursor.id);
sb.where.cursor = `(created_at < toDateTime64(${cAt}, 3) OR (created_at = toDateTime64(${cAt}, 3) AND id < ${cId}))`;
sb.where.cursor = `created_at < toDateTime64(${cAt}, 3)`;
sb.where.cursorWindow = `created_at >= toDateTime64(${cAt}, 3) - INTERVAL ${dateIntervalInDays} DAY`;
sb.orderBy.created_at = 'toDate(created_at) DESC, created_at DESC, id DESC';
sb.orderBy.created_at = 'created_at DESC';
} else {
sb.orderBy.created_at = 'toDate(created_at) DESC, created_at DESC, id DESC';
sb.orderBy.created_at = 'created_at DESC';
sb.where.created_at = `created_at > now() - INTERVAL ${dateIntervalInDays} DAY`;
}