대시보드 보고서 - 웹 크롤러 사용자 에이전트

웹 크롤러 사용자 에이전트를 위한 대시보드 리포트의 SQL 버전입니다.

이 대시보드 리포트는 페이지뷰 기준으로 정렬된 상위 웹 크롤러 사용자 에이전트를 나열하여, 사이트에서 가장 활발하게 활동하는 크롤러가 무엇인지에 대한 통찰을 제공합니다.

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

SELECT
  user_agent,
  SUM(count) AS pageviews
FROM web_crawler_requests
WHERE date BETWEEN :start_date AND :end_date
GROUP BY user_agent
ORDER BY pageviews DESC

SQL 쿼리 설명

  • 파라미터: 이 쿼리는 리포트의 시간 범위를 정의하는 두 가지 파라미터인 :start_date:end_date를 받습니다. 두 날짜 파라미터 모두 YYYY-MM-DD 형식을 사용합니다.
  • SELECT: 이 쿼리는 web_crawler_requests 테이블에서 데이터를 가져옵니다. 이 테이블은 웹 크롤러가 포럼에 보낸 요청을 기록하며, 각 레코드에는 크롤러의 user_agent와 페이지뷰 count가 포함됩니다.
  • SUM: SUM(count) 함수는 지정된 날짜 범위 내에서 각 user_agent의 총 페이지뷰 수를 계산합니다.
  • 필터링: WHERE 절은 date 컬럼을 사용하여 지정된 날짜 범위에 해당하는 레코드만 포함하도록 필터링합니다.
  • 집계: GROUP BY 절은 결과를 user_agent별로 그룹화하여, 각 웹 크롤러에 대해 데이터가 개별적으로 요약되도록 보장합니다.
  • 정렬: ORDER BY 절은 결과를 pageviews 내림차순으로 정렬하여, 가장 활발한 웹 크롤러가 리포트 상단에 위치하도록 합니다.

:discourse: web_crawler_requests 테이블의 레코드는 30일 후 자동으로 삭제됩니다. 따라서 이 리포트의 결과는 리포트 실행 시점 기준 지난 30일 동안만 사용할 수 있습니다. 다만, 이 쿼리의 데이터 파라미터를 사용하여 지난 30일 이내의 결과를 필터링할 수는 있습니다.

결과 예시

user_agent pageviews
Mozilla/5.0 (compatible; SeekportBot; +https://bot.seekport.com) 1406
Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots) 724
Mozilla/5.0 (compatible; DataForSeoBot/1.0; +https://dataforseo.com/dataforseo-bot) 533

위시리스트에 작은 항목이 하나 있습니다. 어떤 사용자 에이전트 문자열은 너무 길어서 마우스오버를 하지 않으면 전체를 볼 수 없습니다. 그리고 마우스오버에서 크롤러 정보 URL을 복사할 수도 없습니다:

리포트가 포함된 URL을 분석하여 링크나 버튼으로 제시해 주면 좋겠습니다: