Data Explorer Plugin を使用したレポート抽出のサポート

皆様

定期的にカテゴリのサイズを確認し、モデレーターによって合意されたサイズを超えていないか確認するために、SQLコードを実行して各カテゴリのサイズを表示するサポートが必要です。

以下のコードを実行しましたが、結果がバイト単位で表示されるため、GBまたはMB単位で表示する必要があります。

-- 各カテゴリのデータサイズをMBおよびGBで推定するクエリ
SELECT
    c.id AS category_id,
    c.name AS category_name,
    COUNT(DISTINCT t.id) AS topics_count,
    COUNT(p.id) AS posts_count,
    ROUND(SUM(LENGTH(p.raw)) / 1024 / 1024, 2) AS total_text_size_mb,
    ROUND(SUM(LENGTH(p.raw)) / 1024 / 1024 / 1024, 4) AS total_text_size_gb,
    ROUND(COALESCE(SUM(u.filesize), 0) / 1024 / 1024, 2) AS total_uploads_size_mb,
    ROUND(COALESCE(SUM(u.filesize), 0) / 1024 / 1024 / 1024, 4) AS total_uploads_size_gb,
    ROUND((COALESCE(SUM(u.filesize), 0) + SUM(LENGTH(p.raw))) / 1024 / 1024, 2) AS total_category_size_mb,
    ROUND((COALESCE(SUM(u.filesize), 0) + SUM(LENGTH(p.raw))) / 1024 / 1024 / 1024, 4) AS total_category_size_gb
FROM
    categories c
LEFT JOIN
    topics t ON t.category_id = c.id
LEFT JOIN
    posts p ON p.topic_id = t.id
LEFT JOIN
    post_custom_fields pcf ON pcf.post_id = p.id AND pcf.name = 'uploads'
LEFT JOIN
    uploads u ON u.id = pcf.value::int
WHERE
    c.id > 0 -- システムカテゴリを除外
    AND t.deleted_at IS NULL -- 削除されたトピックを除外
    AND p.deleted_at IS NULL -- 削除された投稿を除外
GROUP BY
    c.id, c.name
ORDER BY
    total_category_size_mb DESC

以下の形式で表示するためのサポートが必要です。

GBあたりの単位を反映するように計算を変更するだけでよいと思います。たとえば、GBの場合

-- カテゴリごとのデータサイズをGBで推定するクエリ
SELECT 
    c.id AS category_id,
    c.name AS category_name,
    COUNT(DISTINCT t.id) AS topics_count,
    COUNT(p.id) AS posts_count,
    ROUND(SUM(LENGTH(p.raw)) / 1024 / 1024 / 1024, 4) AS total_text_size_gb,
    ROUND(COALESCE(SUM(u.filesize), 0) / 1024 / 1024 / 1024, 4) AS total_uploads_size_gb,
    ROUND((COALESCE(SUM(u.filesize), 0) + SUM(LENGTH(p.raw))) / 1024 / 1024 / 1024, 4) AS total_category_size_gb
FROM 
    categories c
LEFT JOIN 
    topics t ON t.category_id = c.id
LEFT JOIN 
    posts p ON p.topic_id = t.id
LEFT JOIN 
    post_custom_fields pcf ON pcf.post_id = p.id AND pcf.name = 'uploads'
LEFT JOIN 
    uploads u ON u.id = pcf.value::int
WHERE 
    c.id > 0 -- システムカテゴリを除外
    AND t.deleted_at IS NULL -- 削除されたトピックを除外
    AND p.deleted_at IS NULL -- 削除された投稿を除外
GROUP BY 
    c.id, c.name
ORDER BY 
    total_category_size_gb DESC
「いいね!」 1

承知いたしました、ありがとうございます!

非常に基本的な質問ですが…私のサイズはほぼゼロと表示されています。これはS3の使用量から来るのでしょうか、それとも画像はアップロードとしてカウントされないのでしょうか?確かに、それらは比較的少量であり、一部のPDFや電子書籍も同様ですが、それでも0.001 GBよりも大きいはずです。