Skip to main content

[Tech 037] 업무에서 바로 활용 가능한 BigQuery 기능 살펴보기

업무에서 바로 활용 가능한 BigQuery 기능 살펴보기

안녕하세요, 클루커스 구글 클라우드 컨설턴트 박상은, 박보련 입니다.
BigQuery를 단순히 데이터 조회하는 데 사용하고 있거나 데이터 웨어하우스, 데이터 분석 환경 솔루션을 고민하는 분들에게 도움이 되고자 글을 작성하였습니다.
데이터 분석 작업을 효율적으로 수행할 수 있도록 업무에 활용하면 좋을 BigQuery의 유용한 기능을 소개하려고 합니다.

3.1. BigQuery 정의

BigQuery는 Google Cloud의 페타바이트급 규모의 경제적인 완전 관리형 분석 데이터 웨어하우스로, 거의 실시간으로 방대한 양의 데이터를 분석할 수 있는 서비스입니다. 또한 사용자는 데이터를 보다 쉽게 관리하고 분석할 수 있습니다.

BigQuery는 단순 데이터 웨어하우스를 넘어 머신러닝, Google Looker Studio와의 연동을 통한 데이터 시각화 및 보고서 생성 등의 다양한 기능을 제공하여 데이터 분석 작업을 더욱 효율적으로 수행할 수 있습니다.

이후부터 업무에서 활용하면 유용한 BigQuery의 기능을 알아보고, 각각의 주요 개념과 왜 유용한지 소개해 보겠습니다

3.2. 접근 제어

  •  접근 제어는 왜 필요할까요?

접근 제어는 집의 잠금장치와 유사합니다. 오직 허가된 사람이 집에 출입하여 특정한 자산에 접근하고 사용할 수 있도록 보호합니다.

때때로 모든 방이 아니라 특정 공간만 접근을 허용하고 싶어 할 수 있습니다. 안방은 접근하지 못하고 오직 서재만 접근 가능하도록 하는 것처럼, 특정 장소에 대한 접근을 제한하는 것이 필요합니다. 이것이 바로 세분화된 접근 제어입니다.

이와 비슷하게, 데이터를 관리하고 공유할 때 세심한 접근 제어가 필요합니다.

데이터를 내부 기업 사용자에게 공개하는 것은 괜찮지만, 외부 사용자에게 공개하는 것은 꺼림칙할 수 있습니다. 외부 유출을 막아야 하는 중요한 데이터나 개인 정보를 포함한 데이터를 무작정 공개하는
것은 위험할 수 있기 때문이죠.

따라서 데이터를 공유할 때는 특정 데이터셋, 테이블, 뷰, 열 등에 대한 세분화된 접근 권한을 설정하는 것이 필요합니다. 이렇게 하면 데이터를 안전하게 공유할 수 있습니다.

  •  접근 제어는 무엇일까요?

접근 제어는 BigQuery 데이터에 누가 접근할 수 있는지를 관리하는 프로세스입니다.

이는 ‘누가 어떤 데이터에 접근할 수 있는지 규정하고, 그에 따라 승인하고, 이를 모니터링하는 일련의 프로세스’를 의미합니다.

BigQuery는 접근 제어를 위한 다양한 기능을 제공합니다. 특정 직원이나 부서에게만 데이터에 접근을 허용하거나, 데이터에 접근한 기록을 모니터링하여 보안을 강화할 수 있습니다.

  •  접근 제어를 사용하면 뭐가 좋을까요?

▫ 다양한 접근 수준 설정 : 데이터셋, 테이블, 뷰, 열 등 다양한 수준의 접근 제어를 설정할 수 있습니다.

▫ 사용자가 필요한 리소스에만 접근할 수 있도록 설정

▫ 민감한 데이터 보호 : 민감한 데이터에 대한 접근을 제어하고 보호할 수 있습니다.

▫ 데이터 중복 감소 : 데이터를 공유하기 위해 별도의 데이터를 생성할 필요 없이 원본 데이터를 공유할 수 있습니다. 이렇게 함으로써 데이터를 공유 받는 사용자는 실시간으로 변경된 데이터를 확인할 수 있고 중복된 데이터를 줄일 수 있습니다.

  • 접근 제어 사용 시 주의하세요.

▫ 사용자에게는 최소한의 권한만 부여해야 합니다. 너무 많은 권한을 부여하면 보안 위험이 높아지며, 민감한 데이터가 노출될 수 있습니다.

▫ 시간이 지남에 따라 사용자에게 많은 권한을 부여하는 경우가 있습니다. 이를 방지하기 위해 접근 제어 및 사용자 활동을 지속적으로 모니터링해야 합니다.

  • 클루인’s REVIEW

특정 열을 제외하고 데이터를 전달해야 하는 경우가 있습니다. BigQuery가 아닌 다른 데이터 웨어하우스를 사용할 때는 매번 해당 열을 제외한 새로운 테이블 혹은 뷰를 생성하고 공유해야 했습니다. 하지만 BigQuery 기능 중 정책 태그 기반의 열 수준 접근 제어를 이용하면 원하는 열만 선택하여 사용자에게 공유할 수 있습니다. 이를 통해 데이터 혹은 요구사항이 변경될 때마다 새로운 테이블 혹은 뷰를 생성할 필요 없이 간편하게 데이터를 공유하고 관리할 수 있습니다.

3.3. 저장된 쿼리

  •  저장된 쿼리는 왜 필요할까요?

대부분의 기업에서는 매번 새로운 쿼리를 작성하기보다는 같은 쿼리를 반복해서 사용하는 경우가 많습니다. 이 경우 자주 사용하는 쿼리를 메모장 등에 따로 저장해두고 필요할 때마다 복사하여 사용하는 경험이 있을 겁니다. 그러나 이 방식은 자신의 컴퓨터가 아닌 다른 환경에서는 쿼리를 새롭게 작성해야 하고 필요한 쿼리를 찾기 어려운 문제가 있습니다.

이런 불편함을 해결하기 위해 저장된 쿼리를 활용하여 BigQuery 데이터셋에 자주 사용하는 쿼리를 저장하고 필요할 때마다 불러와 사용할 수 있습니다. 또한 기업 내에서 자주 사용하는 쿼리를 공유하여 활용할 수도 있습니다.

  • 저장된 쿼리는 무엇일까요?

저장된 쿼리를 사용하면 SQL 스크립트를 저장하고 관리할 수 있습니다. 이를 통해 쿼리를 실행하고 결과를 얻을 수 있습니다.

  •  저장된 쿼리를 사용하면 뭐가 좋을까요?

▫ 쿼리 공유 : 여러 사용자가 동일한 쿼리를 실행할 수 있어, 새로운 쿼리를 작성할 필요가 없어 시간을 절약할 수 있고 업무 효율이 높아집니다. 또한, 일관된 쿼리를 통해 업무 완성도가 높아집니다.

▫ 버전 관리 : 버전을 지정하여 변경 이력을 추적할 수 있습니다. 필요한 경우 이전 버전으로 쉽게 되돌릴 수 있어 쿼리 관리가 용이해집니다.

▫ 쿼리 설정 저장 : 쿼리 텍스트뿐만 아니라 쿼리 설정도 함께 저장됩니다. 이는 쿼리를 실행할 때 필요한 모든 설정을 저장하여 편리하게 사용할 수 있도록 도와줍니다.

  • 저장된 쿼리 사용 시 주의하세요.

▫ 저장된 쿼리에 중요한 데이터나 보안에 민감한 정보가 포함되지 않도록 주의해야 합니다. 만약 보안에 민감한 정보를 포함해야 하는 경우 주의가 필요합니다.

▫ 저장된 쿼리를 정기적으로 검토하고 필요한 경우 업데이트하고 사용하지 않는 쿼리는 삭제합니다.

  • 클루인’s REVIEW

▫ 저장된 쿼리를 생성할 때는 해당 기능을 명확히 설명하는 이름을 사용하여 구분할 수 있도록 합니다. 이를 통해 쿼리를 관리하고 찾기 쉽게 만들어 업무 효율성을 향상시킬 수 있습니다.

3.4. 쿼리 예약

  • 쿼리 예약은 왜 필요할까요?

▫ 매일 특정 시간에 같은 데이터를 분석해야 하는 경우가 많습니다. 이러한 반복적인 작업을 수동으로 처리하는 것은 비효율적입니다. 특히 대용량 데이터 처리 작업의 경우 지속적으로 모니터링하고 대기가 필요합니다. 따라서 쿼리 예약을 활용하여 작업을 특정 시간에 자동으로 실행하면 효율성과 편의성을 높일 수 있습니다.

  • 쿼리 예약은 무엇일까요?

▫ BigQuery에서 반복적으로 실행되는 쿼리를 자동으로 예약하는 기능입니다. 주기적으로 데이터 분석 작업이나 데이터 처리 작업을 수행해야 할 때 유용하게 사용됩니다

  •  쿼리 예약을 사용하면 뭐가 좋을까요?

▫ 자동화 : 반복 작업을 자동화하여 인력과 시간을 절약할 수 있습니다.

▫ 일관성 유지 : 일정한 주기로 작업을 실행하면 항상 동일한 작업이 수행되어 일관성을 유지할 수 있습니다.

▫ 쿼리 결과 저장 : 쿼리 결과를 테이블에 저장하여 데이터를 영구 보관할 수 있습니다. 이를 통해 중요한 분석 결과를 저장하고 필요할 때마다 다시 사용할 수 있습니다

  • 쿼리 예약 사용 시 주의하세요.

▫ 예약된 쿼리와 작업 흐름을 주기적으로 검토하여 변경된 요구 사항에 맞게 쿼리와 설정을 업데이트하고 필요 없는 작업은 삭제합니다.

▫ 예약된 작업이 다른 작업에 영향을 주지 않도록 실행 시간을 신중하게 선택해야 합니다.

  •  클루인’s REVIEW

▫ 백필 예약(SCHEDULE BACKFILL) 기능과 run_date와 run_time 매개변수를 조합하여 과거 데이터 분석 및 처리 작업을 수행할 수 있습니다. 이를 통해 지난 일정 기간 동안의 데이터를 대상으로 쿼리를 실행하고 원하는 분석 결과를 얻을 수 있습니다. 이 기능을 활용하면 데이터의 변화 추이나 과거 패턴을 파악하는 등의 작업을 효율적으로 수행할 수 있습니다.

▫ 예약된 쿼리가 정상적으로 실행되었는지 혹은 실패했는지 구글 클라우드 콘솔을 통해 손쉽게 확인할 수 있습니다. 또한, 전송 실행 실패에 대한 이메일 알림을 허용하여 실패 시 즉시 알림을 받을 수도 있습니다. 이를 통해 예약된 쿼리의 실행 상태를 신속하게 파악하고 필요한 조치를 취할 수 있습니다.

3.5. BigQuery ML

  • BigQuery ML은 왜 필요할까요?

▫ 일반적으로 ML(Machine Learning, 머신러닝) 작업을 위해 Python 혹은 Java와 같은 언어를 사용해야 하고 ML에 대한 지식이 필요합니다. 그래서 진입장벽이 있습니다. 그러나 BigQuery ML을 사용하면 SQL이 친숙한 사용자도 ML 작업을 간편하게 할 수 있어 진입 장벽을 낮출 수 있습니다.

  • BigQuery ML은 무엇일까요?

GoogleSQL 쿼리를 사용하여 ML 모델을 만들고 실행할 수 있습니다. 또한 LLM(Large Language Model) 및 Cloud AI API에 액세스하여 텍스트 생성이나 기계 번역과 같은 인공지능(AI) 작업을 수행할 수 있습니다.

  •  BigQuery ML을 사용하면 뭐가 좋을까요?

▫  작업 환경 유연성 : Google Cloud 콘솔, Jupyter 노트북, Colab 등 다양한 환경에서 사용 가능합니다.

▫ 다양한 모델 지원 : 회귀, 클러스터링, 이상 감지 등 다양한 작업을 수행할 수 있습니다.

▫ 대용량 언어 모델(LLM) 및 Cloud AI API 지원

▫ 분석을 위한 데이터 이동 불필요

 ▪ 데이터 마이그레이션에 소요되는 시간을 줄일 수 있습니다.

 ▪ 추가 및 변경된 데이터에 대한 관리 필요성이 줄어듭니다.

 ▪ 중복된 데이터의 감소로 리소스 낭비를 막을 수 있습니다.

  •  BigQuery ML 사용 시 주의하세요.

▫ 모델 선택 : BigQuery ML은 다양한 유형의 모델을 지원하므로 데이터의 특성과 요구사항에 맞는 적절한 모델을 선택할 수 있습니다.

▫ 시간 및 비용 관리 : 모델을 학습할 때 발생하는 실행 시간과 비용을 고려해야 합니다.

  • 클루인’s REVIEW

▫ 프로젝트에서 BigQuery ML을 사용하면서 느꼈던 장점을 소개드립니다

 ▪ 관련 라이브러리를 설치하거나 컴퓨팅 리소스를 프로비저닝할 필요가 없습니다. BigQuery Studio에서 바로 작업할 수 있습니다.

 ▪ 단 몇 줄의 SQL 쿼리로 생성형 AI를 활용할 수 있습니다.

 ▪ 데이터를 다운로드하고 이동할 필요가 없어 작업이 간편하고 빠릅니다.

 ▪ API 키 관리가 필요 없어 키 노출 위험과 관리 작업이 줄어듭니다.

 ▪ BigQuery ML과 BigQuery가 제공하는 기능(예: 쿼리 예약)을 조합하여 데이터 분석을 쉽게 할 수 있습니다.

3.6. 기록 기반 최적화

  •  최근 BigQuery에서 도입된 “기록 기반 최적화” 기능을 소개합니다. 현재 이 기능은 미리 보기 상태입니다.

▫ 링크에서 자세한 내용을 확인 할 수 있습니다. https://cloud.google.com/bigquery/docs/history-based-optimizati ons

  • 기록 기반 최적화는 무엇일까요?

▫ 이전에 실행된 유사한 쿼리의 성능을 분석하여 새로운 쿼리의 실행을 최적화합니다. 추가로 최적화할 사항이 없을 때까지 최적화를 시도합니다.

  • 기록 기반 최적화를 사용하면 뭐가 좋을까요?

▫ 시간 및 리소스 절약 : 기록 기반 최적화를 사용하면 쿼리의 실행 시간과 작업에 필요한 리소스를 줄일 수 있습니다. 이는 비용 절감에 도움이 됩니다.

  • 기록 기반 최적화 사용 시 주의하세요.

▫ 기록 기반 최적화를 사용 설정하면 해당 프로젝트의 모든 작업에서 해당 기능을 사용하게 되므로 충분한 검토 후 도입하시는 것을 권장 드립니다.

4. 결론

지금까지 업무에서 활용하면 좋을 BigQuery의 기능에 대해 알아보았습니다. BigQuery를 도입하면 테라바이트 규모의 데이터를 빠르게 분석할 수 있고 다양한 기능을 활용하여 데이터 처리를 간편하고 효율적으로 할 수 있습니다. 데이터 웨어하우스를 고려하는 경우 BigQuery를 검토해 보시기를 권장 드립니다.

클루커스와 함께 BigQuery를 통해 데이터 분석의 성능과 효율성을 높여, 기업의 비즈니스 상황에 더욱 알맞은 의사결정을 진행해보세요!

Reference 

Secured By miniOrange