로그라우터로 빅쿼리의 쿼리 오류 모니터링하기 (feat. 구글 시트)

목차




빅쿼리의 에러 내역을 스프레드시트에서 보여주는 화면




데이터 세트를 생성합니다.


데이터 세트를 생성해두면 하위 테이블은 로그 라우터에서 자동 생성합니다.



좌측 상단 ‘메뉴’ 클릭


(2) 하단의 ‘제품 더보기’를 클릭합니다.


‘제품 더보기’ 클릭


(3) ‘로깅’ 메뉴에서 ‘로그 라우터’를 찾아 클릭합니다.


‘작업’ 탭 하위에 ‘로깅’, ‘구성’ 탭 하위에 ‘로그 라우터’를 클릭합니다.


(4) 로그 라우터 기능 페이지로 들어왔습니다. 상단의 ‘싱크 만들기’ 를 클릭합니다. 로그 라우터의 싱크를 설정하는 것은 로그 라우터가 수집한 로그를 어디에 저장할지를 결정하는 과정입니다.


상단 ‘싱크 만들기’ 클릭


(5) ‘로그 라우팅 싱크 만들기’ 메뉴에서 싱크 세부정보를 입력하고 다음 버튼을 클릭합니다.


‘싱크 이름’과 ‘싱크 설명’은 추후 사용자가 알아볼 수 있도록 입력합니다.


(6) 싱크 대상을 ‘BigQuery 데이터 세트’로 선택하고, 로그를 저장하기 위해 미리 만들어둔 데이터 세트를 선택합니다. ‘파티션을 나눈 테이블 사용’ 옵션을 사용 설정하면 날짜별로 내부 파티션을 나눈 테이블에 로그가 저장되어 쿼리 성능을 높일 수 있습니다. 설정 후 ‘다음’ 버튼을 클릭합니다.


데이터 세트 선택 후 ‘다음’ 버튼 클릭


(7) ‘싱크에 포함할 로그 선택’ 창은 빅쿼리와 같은 클라우드 스토리지에 로그를 전송할 때, 어떤 종류의 로그를 저장할 것인지 결정할 수 있습니다. ⚠️ 이 기능을 통해 로그 데이터의 유효성을 높이고 불필요한 부하를 줄일 수 있습니다. 아래 사진과 같이 ‘severity=ERROR’를 입력하면 로그의 심각도(severity)가 ERROR인 로그만을 선택하게 됩니다. 아래와 같이 입력 후 ‘다음’ 버튼을 눌러주세요


‘severity = ERROR’ 입력 후 ‘다음’ 클릭


(8) 세부 항목들을 모두 입력했는지 확인 후 ‘싱크 만들기’ 버튼을 클릭합니다.


하단 ‘싱크 만들기’ 버튼 클릭


(9) ‘싱크 만들기’ 버튼을 클릭하면 선택했던 데이터 세트 하위에 자동으로 테이블들이 세팅됩니다. 빅쿼리에 접속하여 데이터 세트에 테이블이 정상적으로 생성되었는지 확인합니다.


3개의 테이블이 생성되었습니다.


예약된 쿼리에서 에러가 발생하면 ‘bigquerydatatransfer_googleapis_com_transfer_config’ 테이블에 자동으로 저장이 됩니다. 잘 작동되는지 확인해볼까요?


3.3 로그 라우터가 정상적으로 실행되는지 확인하기

(1) 에러를 테이블에 저장하기 위해서 쿼리를 예약하고, 의도적으로 에러를 발생시켜보겠습니다. ‘예약된 쿼리’ 메뉴에서 에러가 발생한 쿼리를 클릭해보겠습니다.


예약 쿼리를 클릭하면 상세 에러 내역을 볼 수 있습니다.


(2) 에러가 발생한 예약된 쿼리 이름을 클릭하면 아래와 같이 상세 내역을 볼 수 있습니다.


예약 쿼리가 실행되는 리전과, 데이터가 있는 리전을 다르게 설정하여 발생하는 에러입니다.


(3) 에러를 확인하였습니다. 로그 라우터가 정상적으로 실행되고 있다면 해당 에러는 빅쿼리 테이블에도 저장되어있어야 합니다. 데이터 세트 안에 자동으로 생성되었던 테이블(bigquerydatatransfer_googleapis_com_transfer_config)의 데이터를 불러오기 위해 빅쿼리의 쿼리 창에 다음과 같은 쿼리를 입력 후 실행해보겠습니다.


쿼리 결과가 다음과 같이 출력되었습니다.


‘예약된 쿼리’와 동일한 에러가 저장되어 있어야 합니다.


예약된 쿼리 메뉴에서 확인했던 에러 메시지가 빅쿼리 테이블에도 동일하게 저장되어 있네요. 로그 라우터가 정상적으로 작동되고 있는 것입니다. 그런데 에러를 ‘예약된 쿼리’ 페이지나 빅쿼리 테이블에서 매번 확인하는 것은 번거로운 일입니다. 가장 쉽게 확인할 수 있는 방법이 있을까요? 우리가 늘 작업하는 스프레드시트에서 확인하는 것이 한 가지 방법이 될 수 있습니다.


4. 에러 테이블을 스프레드시트로 내보내기

(1) 에러 테이블(bigquerydatatransfer_googleapis_com_transfer_config) 을 클릭하여 아래의 화면으로 전환합니다. 상단의 ‘내보내기’ 클릭 후 ‘스프레드시트로 탐색’을 클릭합니다.


‘내보내기’ → ‘스프레드시트로 탐색’ 클릭


(2) ‘시작하기’를 클릭합니다.


‘시작하기’ 클릭


(3) 새로 생성된 스프레드시트 상단 메뉴에서 ‘새로고침 예약하기’ 버튼을 클릭합니다.


‘새로고침 예약하기’ 클릭


(4) 새로고침 옵션에서는 빅쿼리의 에러 테이블을 내보내는 주기를 설정할 수 있습니다. ‘예약된 새로고침’ 토글을 ON 하고, 원하는 반복 주기를 설정 후 ‘저장’을 클릭합니다.


반복 주기를 설정하고 ‘저장’ 클릭


예약된 새고로침을 확인할 수 있는 화면


예약된 새로고침을 설정하였지만 지금 즉시 테이블을 불러오고 싶다면 옵션 하단의 ‘전체 새로고침’ 버튼을 클릭하면 됩니다. 이제 스프레드시트에서 간편하게 에러 정보를 확인할 수 있습니다.


5. 추출 편집기로 원하는 데이터만 추출하기

하지만, 예약된 쿼리가 다양하고 관리하는 데이터 세트가 여러 개인 경우 에러를 수집하는 단일 테이블에는 여러 테이블의 에러가 뒤섞이게 됩니다. 쿼리를 실행하면 간편하게 원하는 테이블의 에러만 확인할 수 있지요. 이와 비슷하게 스프레드시트에서도 추출 편집기를 통해 원하는 에러만 추출하여 가독성을 높일 수 있습니다.

(1) 시트 상단의 ‘추출’ 버튼을 클릭합니다.


필요에 따라 ‘새 시트’와 ‘기존 시트’ 선택 후 ‘만들기’ 클릭


(2) 새로운 탭과 추출 편집기가 실행됩니다. 추출 편집기는 데이터에 대한 필터 기능을 제공합니다. 필터를 클릭하면 아래와 같이 다양한 조건으로 필터링 할 수 있습니다.


필요한 종류의 필터를 선택 후 설정합니다.


(3) 원하는 조건으로 필터링을 설정합니다. 아래 사진에서는 로그에 ‘salesData’ 텍스트가 포함된 에러만 가져오도록 필터링 하였습니다. 보통 에러가 발생한 위치 정보도 로그에 저장되기 때문에 테이블별로 에러 로그를 불러오고자 한다면 아래와 같이 테이블 이름을 입력하면 됩니다.


추출 편집기에서 필터링 조건 입력 후 ‘확인’ 버튼 클릭


(4) ‘적용 버튼을 클릭합니다.



(5) 여러 에러 중에서 ‘salesData’ 테이블에 담긴 에러들만 불러온 것을 확인할 수 있습니다.



(6) 불필요한 셀들을 숨기거나 제거하고, 새로운 열을 추가 후 ‘ArrayFormula’ 함수와 정규표현식을 활용하면 아래와 같이 에러가 발생한 탭이나, 행 정보를 보기 좋게 정리할 수 있습니다.





오늘은 빅쿼리의 에러 모니터링을 스프레드시트로 자동화하는 방법을 알아보았습니다. 쿼리 예약 기능을 통해 자동화된 데이터 처리를 수행하더라도 에러가 감지되지 않고 무시된다면, 잘못된 데이터 분석으로 이어질 수 있습니다. 따라서 에러 발생 시 빠른 대응을 위해 실시간으로 에러를 감지하고 적절히 대응할 수 있는 모니터링 시스템이 반드시 필요합니다.

오늘 배운 내용들은 실무에서 유용하게 사용할 수 있습니다. 빅쿼리의 ‘쿼리 예약’ 기능을 사용 중이신가요? 그렇다면 구글 클라우드에서 제공하는 ‘로그 라우터’를 통해 업무의 효율성을 더 높이시길 바랍니다!

Similar Posts