fix clickhouse calls (#1536)

This commit is contained in:
Brian Cao 2022-09-23 22:43:51 -07:00 committed by GitHub
parent dfac7e1af5
commit 78c3453639
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 41 additions and 34 deletions

3
.gitignore vendored
View File

@ -38,6 +38,3 @@ yarn-error.log*
*.dev.yml
# cert
/lib/cert

View File

@ -27,8 +27,8 @@ export default async (req, res) => {
const [pageviews, sessions] = await Promise.all([
getPageviewStats(websiteId, {
startDate,
endDate,
start_at: startDate,
end_at: endDate,
tz,
unit,
count: '*',
@ -42,8 +42,8 @@ export default async (req, res) => {
},
}),
getPageviewStats(websiteId, {
startDate,
endDate,
start_at: startDate,
end_at: endDate,
tz,
unit,
count: 'distinct pageview.',

View File

@ -21,21 +21,29 @@ export default async (req, res) => {
const prevStartDate = new Date(+start_at - distance);
const prevEndDate = new Date(+end_at - distance);
const metrics = await getWebsiteStats(websiteId, startDate, endDate, {
url,
referrer,
os,
browser,
device,
country,
const metrics = await getWebsiteStats(websiteId, {
start_at: startDate,
end_at: endDate,
filters: {
url,
referrer,
os,
browser,
device,
country,
},
});
const prevPeriod = await getWebsiteStats(websiteId, prevStartDate, prevEndDate, {
url,
referrer,
os,
browser,
device,
country,
const prevPeriod = await getWebsiteStats(websiteId, {
start_at: prevStartDate,
end_at: prevEndDate,
filters: {
url,
referrer,
os,
browser,
device,
country,
},
});
const stats = Object.keys(metrics[0]).reduce((obj, key) => {

View File

@ -52,7 +52,8 @@ async function clickhouseQuery(
${getDateQuery('created_at', unit, timezone)} t,
count(*) y
from event
where website_id= $1
where event_name != ''
and website_id= $1
and ${getBetweenDates('created_at', start_at, end_at)}
${getFilterQuery('event', filters, params)}
group by x, t

View File

@ -31,12 +31,13 @@ function clickhouseQuery(websites, start_at) {
`select
event_uuid,
website_id,
session_id,
session_uuid,
created_at,
url,
event_name
from event
where website_id in (${websites.join[',']}
and created_at >= ${getDateFormat(start_at)})`,
where event_name != ''
and ${websites && websites.length > 0 ? `website_id in (${websites.join(',')})` : '0 = 0'}
and created_at >= ${getDateFormat(start_at)}`,
);
}

View File

@ -43,7 +43,7 @@ async function clickhouseQuery(website_id, { startDate, endDate, column, filters
`select ${column} x, count(*) y
from event
where website_id= $1
${column !== 'event_name' ? `and event_name = ''` : ''}
${column !== 'event_name' ? `and event_name = ''` : `and event_name != ''`}
and ${getBetweenDates('created_at', startDate, endDate)}
${pageviewQuery}
${sessionQuery}

View File

@ -59,10 +59,10 @@ async function clickhouseQuery(
from
(select
${getDateQuery('created_at', unit, timezone)} t,
count(${count !== '*' ? 'session_uuid' : count}) y
count(${count !== '*' ? 'distinct session_uuid' : count}) y
from event
where website_id= $1
where event_name = ''
and website_id= $1
and ${getBetweenDates('created_at', start_at, end_at)}
${pageviewQuery}
${sessionQuery}

View File

@ -33,7 +33,7 @@ async function clickhouseQuery(websites, start_at) {
url
from event
where event_name = ''
and website_id in (${websites.join[',']}
and created_at >= ${clickhouse.getDateFormat(start_at)})`,
and ${websites && websites.length > 0 ? `website_id in (${websites.join(',')})` : '0 = 0'}
and created_at >= ${clickhouse.getDateFormat(start_at)}`,
);
}

View File

@ -44,7 +44,7 @@ async function clickhouseQuery(websites, start_at) {
language,
country
from event
where ${websites && websites.length > 0 ? `(website_id in (${websites.join[',']})` : '0 = 0'}
where ${websites && websites.length > 0 ? `website_id in (${websites.join(',')})` : '0 = 0'}
and created_at >= ${getDateFormat(start_at)}`,
);
}

View File

@ -9,7 +9,7 @@ export async function getWebsiteStats(...args) {
});
}
async function relationalQuery(website_id, start_at, end_at, filters = {}) {
async function relationalQuery(website_id, { start_at, end_at, filters = {} }) {
const { getDateQuery, getTimestampInterval, parseFilters, rawQuery } = prisma;
const params = [website_id, start_at, end_at];
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
@ -41,7 +41,7 @@ async function relationalQuery(website_id, start_at, end_at, filters = {}) {
);
}
async function clickhouseQuery(website_id, start_at, end_at, filters = {}) {
async function clickhouseQuery(website_id, { start_at, end_at, filters = {} }) {
const { rawQuery, getDateQuery, getBetweenDates, parseFilters } = clickhouse;
const params = [website_id];
const { pageviewQuery, sessionQuery } = parseFilters(null, filters, params);