이것은 웹 크롤러 페이지뷰 대시보드 리포트의 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 |
| … | … |