Skip to content

Commit c048402

Browse files
committed
fix: remove properties from sessions and final migration test
1 parent 452e5bd commit c048402

File tree

9 files changed

+48
-18
lines changed

9 files changed

+48
-18
lines changed

apps/worker/src/boot-workers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ export async function bootWorkers() {
117117
const worker = new GroupWorker<EventsQueuePayloadIncomingEvent['payload']>({
118118
queue,
119119
concurrency,
120-
logger: queueLogger,
120+
logger: process.env.NODE_ENV === 'production' ? queueLogger : undefined,
121121
blockingTimeoutSec: Number.parseFloat(
122122
process.env.EVENT_BLOCKING_TIMEOUT_SEC || '1',
123123
),

apps/worker/src/jobs/events.create-session-end.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ export async function createSessionEnd(
9696
...payload,
9797
properties: {
9898
...payload.properties,
99-
...(session?.properties ?? {}),
10099
__bounce: session.is_bounce,
101100
},
102101
name: 'session_end',

apps/worker/src/jobs/events.incoming-events.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,6 @@ describe('incomingEvent', () => {
319319
utm_content: '',
320320
utm_medium: '',
321321
revenue: 0,
322-
properties: {},
323322
project_id: projectId,
324323
device_id: 'last-device-123',
325324
profile_id: 'profile-123',

packages/db/code-migrations/8-order-keys.ts

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@ export async function up() {
115115
'`referrer_type` LowCardinality(String)',
116116
'`sign` Int8',
117117
'`version` UInt64',
118-
'`properties` Map(String, String) CODEC(ZSTD(3))',
119118
],
120119
// New ORDER BY: project_id, toDate(created_at), created_at, id
121120
// Removed profile_id, reordered to match query patterns (date first, then id)
@@ -175,6 +174,45 @@ export async function up() {
175174
...moveDataBetweenTables({
176175
from: 'sessions',
177176
to: 'sessions_new_20251123',
177+
columns: [
178+
'id',
179+
'project_id',
180+
'profile_id',
181+
'device_id',
182+
'created_at',
183+
'ended_at',
184+
'is_bounce',
185+
'entry_origin',
186+
'entry_path',
187+
'exit_origin',
188+
'exit_path',
189+
'screen_view_count',
190+
'revenue',
191+
'event_count',
192+
'duration',
193+
'country',
194+
'region',
195+
'city',
196+
'longitude',
197+
'latitude',
198+
'device',
199+
'brand',
200+
'model',
201+
'browser',
202+
'browser_version',
203+
'os',
204+
'os_version',
205+
'utm_medium',
206+
'utm_source',
207+
'utm_campaign',
208+
'utm_content',
209+
'utm_term',
210+
'referrer',
211+
'referrer_name',
212+
'referrer_type',
213+
'sign',
214+
'version',
215+
],
178216
batch: {
179217
startDate: firstSessionDate,
180218
column: 'toDate(created_at)',

packages/db/src/buffers/session-buffer.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { type Redis, getRedisCache } from '@openpanel/redis';
22

3-
import { toDots } from '@openpanel/common';
43
import { getSafeJson } from '@openpanel/json';
54
import { assocPath, clone } from 'ramda';
65
import { TABLE_NAMES, ch } from '../clickhouse/client';
@@ -91,10 +90,6 @@ export class SessionBuffer extends BaseBuffer {
9190
session: newSession,
9291
});
9392
}
94-
newSession.properties = toDots({
95-
...(event.properties || {}),
96-
...(newSession.properties || {}),
97-
});
9893

9994
const addedRevenue = event.name === 'revenue' ? (event.revenue ?? 0) : 0;
10095
newSession.revenue = (newSession.revenue ?? 0) + addedRevenue;
@@ -168,7 +163,6 @@ export class SessionBuffer extends BaseBuffer {
168163
: '',
169164
sign: 1,
170165
version: 1,
171-
properties: toDots(event.properties || {}),
172166
},
173167
];
174168
}

packages/db/src/clickhouse/migration.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ export function moveDataBetweenTables({
217217
from,
218218
to,
219219
batch,
220+
columns,
220221
}: {
221222
from: string;
222223
to: string;
@@ -227,11 +228,15 @@ export function moveDataBetweenTables({
227228
endDate?: Date;
228229
startDate?: Date;
229230
};
231+
columns?: string[];
230232
}): string[] {
231233
const sqls: string[] = [];
232234

235+
// Build the SELECT clause
236+
const selectClause = columns && columns.length > 0 ? columns.join(', ') : '*';
237+
233238
if (!batch) {
234-
return [`INSERT INTO ${to} SELECT * FROM ${from}`];
239+
return [`INSERT INTO ${to} SELECT ${selectClause} FROM ${from}`];
235240
}
236241

237242
// Start from today and go back 3 years
@@ -328,7 +333,7 @@ export function moveDataBetweenTables({
328333
}
329334

330335
const sql = `INSERT INTO ${to}
331-
SELECT * FROM ${from}
336+
SELECT ${selectClause} FROM ${from}
332337
WHERE ${batch.column} > '${batch.transform ? batch.transform(previousDate) : formatClickhouseDate(previousDate, true)}'
333338
AND ${batch.column} <= '${batch.transform ? batch.transform(upperBoundDate) : formatClickhouseDate(upperBoundDate, true)}'`;
334339
sqls.push(sql);

packages/db/src/services/event.service.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@ export function transformSessionToEvent(
131131
duration: 0,
132132
revenue: session.revenue,
133133
properties: {
134-
...session.properties,
135134
is_bounce: session.is_bounce,
136135
__query: {
137136
utm_medium: session.utm_medium,

packages/db/src/services/session.service.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { cacheable } from '@openpanel/redis';
22
import type { IChartEventFilter } from '@openpanel/validation';
3-
import { uniq } from 'ramda';
43
import sqlstring from 'sqlstring';
54
import {
65
TABLE_NAMES,
@@ -53,7 +52,6 @@ export type IClickhouseSession = {
5352
revenue: number;
5453
sign: 1 | 0;
5554
version: number;
56-
properties: Record<string, string>;
5755
};
5856

5957
export interface IServiceSession {
@@ -92,7 +90,6 @@ export interface IServiceSession {
9290
utmContent: string;
9391
utmTerm: string;
9492
revenue: number;
95-
properties: Record<string, string>;
9693
profile?: IServiceProfile;
9794
}
9895

@@ -144,7 +141,6 @@ export function transformSession(session: IClickhouseSession): IServiceSession {
144141
utmContent: session.utm_content,
145142
utmTerm: session.utm_term,
146143
revenue: session.revenue,
147-
properties: session.properties,
148144
profile: undefined,
149145
};
150146
}

packages/queue/src/queues.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ export const eventsGroupQueues = Array.from({
146146
}).map(
147147
(_, index, list) =>
148148
new GroupQueue<EventsQueuePayloadIncomingEvent['payload']>({
149-
logger: queueLogger,
149+
logger: process.env.NODE_ENV === 'production' ? queueLogger : undefined,
150150
namespace: getQueueName(
151151
list.length === 1 ? 'group_events' : `group_events_${index}`,
152152
),

0 commit comments

Comments
 (0)