Search Console 대량 데이터 내보내기에 대한 BigQuery 효율성 도움말

2023년 6월 5일 월요일

Search Console 일괄 데이터 내보내기는 웹사이트의 검색 실적 데이터를 BigQuery로 가져와서 저장용량을 늘리고, 분석 및 보고 기능을 강화할 수 있는 강력한 방법입니다. 예를 들어 데이터를 내보낸 후 쿼리 및 URL 클러스터링을 실행하고, 롱테일 검색어를 분석하고, 검색을 다른 데이터 소스와 취합할 수 있습니다. 필요한 만큼 오랜 기간 동안 데이터를 보관하도록 선택할 수도 있습니다.

일괄 데이터 내보내기를 사용할 때는 데이터 처리 및 저장용량 비용을 관리할 때 충분한 정보를 바탕으로 결정을 내리는 것이 중요합니다. Search Console에서 데이터를 내보낼 때는 비용이 들지 않습니다. 하지만 BigQuery 가격 책정을 읽고 어떠한 요금이 청구되는지 파악해 두세요. 이 게시물에서는 큰 비용을 지출하지 않고도 새로운 데이터를 활용할 수 있는 팁을 설명합니다.

일괄 데이터 내보내기를 아직 설정하지 않았다면 Search Console 고객센터에서 단계별 가이드를 확인하세요. 이 게시물에 삽입된 동영상에서 내보내기를 통해 제공되는 데이터의 개요를 확인하세요.

결제 알림 및 제한 만들기

비용을 고려할 때 어느 정도까지 지불할 의향이 있는지 생각해 보는 것이 좋으며 저장용량, 분석, 모니터링에 지출할 의향이 있는 비용이 서로 다를 수 있습니다. 예를 들어 모든 데이터를 저장하고 있는지 확인하기 위해 특정 금액을 지불할 의향은 있지만, 보고 플랫폼을 만드는 데는 그보다 적은 비용을 내고 싶을 수도 있습니다. 이러한 요소들을 고려하면서 검색 데이터에 투자할 월 예산을 설정하는 것이 좋습니다.

마음속으로 예산 금액을 결정했다면 예상하지 못한 금액이 청구되지 않도록 Google Cloud 예산 알림을 만드세요. 또한 예산 한도에 가까워지면 이메일 알림을 전송하는 기준 규칙을 설정할 수 있습니다.

결제 알림을 만드는 방법을 보여주는 Cloud 콘솔 스크린샷

보안을 강화하기 위해 쿼리에서 요금이 청구되는 바이트 수를 제한할 수도 있습니다. 이렇게 하면 쿼리 실행 전에 쿼리가 읽을 바이트 수가 추정됩니다. 예상 바이트 수가 한도를 초과하면 요금이 청구되지 않으며 쿼리는 실패합니다.

원시 데이터로 대시보드를 직접 빌드하지 않기

BigQuery는 빠릅니다. 그래서 대시보드를 Search Console에서 내보낸 테이블에 직접 연결하고 싶다는 마음이 들 수 있습니다. 하지만 규모가 큰 사이트는 데이터 세트도 매우 큽니다. 시간 경과에 따른 쿼리가 포함되면 더욱 그러합니다. 조회할 때마다 요약 정보를 다시 컴퓨팅하는 대시보드를 만들고 이를 회사 내에서 공유하면 쿼리 비용이 급속도로, 어마어마하게 늘어납니다.

이러한 비용이 발생하지 않게 하려면 일일 감소량의 데이터를 사전 집계하고 요약 테이블을 하나 이상 구현하는 것이 좋습니다. 그러면 대시보드에서 훨씬 더 작은 시계열 테이블을 쿼리하므로 처리 비용을 절감할 수 있습니다.

BigQuery의 쿼리 예약 기능을 확인해 보세요. 보다 자동화된 솔루션이 필요하면 BI 엔진을 사용하는 방안을 고려하세요.

데이터 저장용량 비용 최적화하기

일괄 데이터 내보내기를 시작하면 기본적으로 데이터가 BigQuery 데이터 세트에 영구적으로 보관됩니다. 하지만 1년이나 16개월, 또는 원하는 기간이 지난 후 날짜 파티션이 자동으로 삭제되도록 기본 파티션 만료 시간을 업데이트할 수 있습니다.

내보내기를 완료한 데이터는 소중한 데이터일 수도 있지만, 용량이 매우 클 수도 있습니다. 비즈니스 지식을 이용하고 심층적으로 분석하기 위해 충분히 오래 보관하되, 부담이 될 정도로 오래 보관하지는 마세요. 한 가지 옵션은 더 최근 날짜의 전체 테이블을 유지하면서 샘플링된 이전 버전의 테이블을 유지하는 것입니다.

SQL 쿼리 최적화하기

Search Console 데이터를 쿼리하는 동안 쿼리가 최고의 성능을 내기 위해 최적화되어 있는지 확인해야 합니다. BigQuery를 처음 사용하는 경우 고객센터의 가이드라인 및 샘플 쿼리를 확인하세요. 다음 세 가지 방법을 시도해 보세요.

1. 입력 스캔 제한하기

우선 SELECT *를 사용하지 마세요. 이 방법은 데이터를 쿼리하는 방법 중 가장 비용이 많이 듭니다. BigQuery에서 테이블의 모든 열을 전체 검사하기 때문입니다. LIMIT 절을 적용해도 읽은 데이터 양에는 영향을 주지 않습니다.

내보내기를 완료한 테이블은 날짜로 파티션을 나누므로 특히 데이터를 테스트하고 이것저것 시도해 볼 때 입력 스캔을 원하는 기간으로 제한할 수 있습니다. WHERE 절을 사용하여 날짜 파티션을 나눈 테이블의 기간을 제한하면 쿼리 비용을 크게 절감할 수 있습니다. 예를 들어 다음과 같은 절을 사용하면 지난 14일만 확인할 수 있습니다.

WHERE data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day)

쿼리를 할 때마다 알려진 필터를 최대한 빨리 사용하여 입력 스캔을 줄이는 것이 좋습니다. 예를 들어 쿼리를 분석하고 있다면 익명 쿼리 행은 필터링하여 제거하세요. 익명처리된 검색어는 테이블에서 길이가 0인 문자열로 보고됩니다. 이렇게 하려면 다음과 같은 절을 추가하세요.

WHERE query != ''

2. 데이터 샘플링하기

BigQuery에서는 테이블 샘플링 기능을 제공하므로 대규모 BigQuery 테이블에서 임의 데이터 하위 집합을 쿼리할 수 있습니다. 샘플링은 다양한 테이블을 반환하고, 전체 테이블을 스캔 및 처리하는 데 따르는 비용을 방지합니다. 특히 쿼리를 개발하고 있거나 정확한 결과가 필요하지 않은 경우에 특히 유용합니다.

3. 정확한 결과가 필요하지 않은 근사치 함수 사용하기

BigQuery는 다양한 근사치 집계 함수를 지원합니다. 이 함수는 예상 결과를 제공하고 정확한 결과를 필요로 하는 함수보다 훨씬 저렴한 컴퓨팅 비용이 듭니다. 예를 들어 일부 조건에서 노출별로 상위 URL을 찾는 경우 다음과 같은 절을 사용해 보세요.

SELECT APPROX_TOP_SUM(url, impressions, 10) WHERE datadate=...;

다음 절은 사용하지 않는 것이 좋습니다.

SELECT url, SUM(impressions) WHERE datadate=... GROUP BY url ORDER BY 2 DESC LIMIT 10;

리소스

다음은 비용 관리를 시작할 때 사용할 수 있는 몇 가지 팁입니다. 자세한 내용은 BigQuery를 위한 비용 최적화 권장사항을 참고하세요.

질문이나 의견이 있다면 Google 검색 센터 커뮤니티Twitter를 통해 문의하세요.