대시보드 보고서 - 웹 크롤러 페이지뷰

이것은 웹 크롤러 페이지뷰 대시보드 리포트의 SQL 버전입니다.

이 대시보드 리포트는 특정 날짜 범위 내에서 사이트가 웹 크롤러로부터 하루에 받는 총 페이지뷰 수를 보여줍니다. 웹 크롤러의 동작 방식을 이해하면 사이트 관리자가 검색 엔진 봇이 사이트를 얼마나 자주 방문하고 색인화하는지 파악하는 데 도움이 됩니다.

-- [params]
-- date :start_date = 2024-01-07
-- date :end_date = 2024-02-08

SELECT
    ar.date::date AS "date",
    SUM(CASE WHEN ar.req_type=6 THEN ar.count ELSE 0 END) AS "Crawler Views"
FROM application_requests ar
WHERE req_type IN (6)
    AND ar.date::date BETWEEN :start_date AND :end_date
GROUP BY date
ORDER BY date

SQL 쿼리 설명

이 쿼리는 Discourse 애플리케이션에 대한 다양한 유형의 요청(웹 크롤러에 의한 요청 포함)을 기록하는 application_requests 테이블에서 작동합니다. 쿼리의 작동 방식을 단계별로 살펴보면 다음과 같습니다:

  • 매개변수:
    • 쿼리는 리포트의 시간 범위를 정의하는 :start_date와 :end_date라는 두 가지 매개변수를 받습니다. 두 날짜 매개변수 모두 YYYY-MM-DD 형식을 사용합니다.
  • 선택 및 필터링:
    • 쿼리는 application_requests 테이블에서 req_type이 6인 레코드를 선택합니다. req_type 열은 요청의 유형을 분류하며, 값 6은 웹 크롤러에 의해发出的 요청을 특정하게 식별합니다.
    • :start_date와 :end_date 매개변수를 사용하여 지정된 날짜 범위에만 속하는 레코드만 포함하도록 추가 필터링을 수행합니다.
  • 집계:
    • 쿼리는 요청 날짜(ar.date::date)별로 결과를 그룹화합니다. 이 그룹화는 하루あたりの 크롤러 뷰를 집계할 수 있게 해줍니다.
    • 각 그룹에 대해 ar.count의 합계를 계산합니다. 여기서 ar.count는 크롤러 요청의 수를 나타냅니다. 이 합계는 출력에서 "Crawler Views"로 표시됩니다.
  • 정렬: 마지막으로, 결과는 날짜 오름차순으로 정렬됩니다. 이 정렬은 지정된 기간 동안 크롤러 활동 추세를 쉽게 시각화할 수 있게 해줍니다.

예시 결과

date Crawler Views
2024-01-07 3217
2024-01-08 2342
2024-01-09 3995
2024-01-10 3667
2024-01-11 3095
… …
1개의 좋아요