这是我为我论坛做的成本估算方法。所有查询都是针对数据探索器(Data Explorer)的。
估算每篇帖子的平均字符数
据我上次检查,该插件会将处理后的文本发送到翻译服务。
SELECT AVG(LENGTH(p.cooked))
FROM posts AS p
JOIN topics AS t ON p.topic_id = t.id
WHERE t.archetype != 'private_message'
估算每次用户访问阅读的帖子数量
我选取了最近 30 天的数据以获得相对较新的估算值。
-- [params]
-- int :from_days_ago = 0
-- int :duration_days = 30
WITH t AS (
SELECT CURRENT_TIMESTAMP - ((:from_days_ago + :duration_days) * (INTERVAL '1 days')) AS START,
CURRENT_TIMESTAMP - (:from_days_ago * (INTERVAL '1 days')) AS END
)
SELECT AVG(posts_read)
FROM user_visits
JOIN t ON visited_at > t.START AND visited_at < t.END
过去 30 天的用户访问次数
-- [params]
-- int :from_days_ago = 0
-- int :duration_days = 30
WITH t AS (
SELECT CURRENT_TIMESTAMP - ((:from_days_ago + :duration_days) * (INTERVAL '1 days')) AS START,
CURRENT_TIMESTAMP - (:from_days_ago * (INTERVAL '1 days')) AS END
)
SELECT COUNT(1)
FROM user_visits
JOIN t ON visited_at > t.START AND visited_at < t.END
估算过去 30 天阅读的字符总数
将上述三个数值相乘,我得到了过去 30 天内被阅读的处理后帖子字符数的估算值。
估算非母语用户的数量
由于英语是我们论坛的主要语言,我使用 Google Analytics 确定了浏览器语言设置为非英语的用户比例。
最终估算
然后,我进行了低/中/高估算:假设当前非英语访问者的比例为“常见情况”,将其减半作为低估值,翻倍作为高估值。这得出了 30 天内的低/中/高字符数,再乘以翻译服务每 X 个字符的费率。
希望这对您有帮助!