BigQuery 분석 개요

이 문서에서는 BigQuery에서 쿼리가 처리되는 방법과 데이터 분석에 유용한 일부 기능에 대해 개괄적으로 설명합니다.

소개

BigQuery는 확장성이 뛰어난 완전 관리형 클라우드 데이터 웨어하우스 및 분석 엔진입니다. BigQuery는 대규모 데이터 세트에 대한 분석 쿼리를 실행하는 데 최적화되어 있습니다. 수 테라바이트 데이터에 대한 쿼리를 초 단위로 실행하고, 수 페타바이트에 대해서도 분 단위로 쿼리를 실행할 수 있습니다. 이러한 성능 덕분에 대규모 데이터 세트를 효율적으로 분석하고 거의 실시간으로 유용한 정보를 얻을 수 있습니다. 분석 성능을 극대화하기 위해서는 BigQuery에서 쿼리가 수행되는 방식과 이를 통해 제공되는 분석 기능을 이해할 필요가 있습니다.

분석 유형

다음은 BigQuery의 분석 기능입니다.

  • 임시 분석 - BigQuery에서는 BigQuery SQL 언어 중 하나인 표준 SQL을 사용한 임시 분석이 지원됩니다. Google Cloud 콘솔에서 또는 BigQuery와 통합되는 타사 도구를 통해 쿼리를 실행할 수 있습니다.

  • 지리정보 분석 - 지리정보 분석을 통해 지역 데이터 유형 및 표준 SQL 지역 함수를 사용해서 BigQuery에서 지리정보 데이터를 분석하고 시각화할 수 있습니다. 이러한 데이터 유형에 대한 자세한 내용은 지리정보 분석 소개를 참조하세요.

  • 머신러닝 - BigQuery ML에서는 표준 SQL 쿼리를 사용하여 BigQuery에서 머신러닝 모델을 만들고 실행할 수 있습니다.

  • 비즈니스 인텔리전스 - BigQuery BI Engine은 신속한 인메모리 분석 서비스입니다. BI Engine에서는 성능, 확장성, 보안을 저해하지 않고, 최신 데이터를 사용하면서도 다양한 기능의 대화형 대시보드 및 보고서를 작성할 수 있습니다.

쿼리

BigQuery에서 기본 분석 단위는 SQL 쿼리입니다. BigQuery에는 표준 SQL 및 legacy SQL이라는 두 가지 언어가 있습니다. 선호 언어인 표준 SQL은 SQL:2011을 지원하며, 지리정보 분석 또는 머신러닝 지원을 제공하는 확장 프로그램이 포함되어 있습니다. BigQuery는 또한 여러 소스에 저장된 데이터 쿼리를 지원합니다.

데이터 소스

BigQuery는 다음 유형의 데이터 소스 쿼리를 지원합니다.

  • 기본 데이터 - BigQuery 스토리지에 저장된 데이터입니다. DML 구문을 사용하거나 테이블에 쿼리 결과를 작성하여 BigQuery에 데이터를 로드하거나 데이터를 생성할 수 있습니다.
  • 외부 데이터 - Cloud Storage와 같은 다른 Google Cloud 스토리지 서비스 또는 Spanner 또는 Cloud SQL과 같은 Google Cloud 데이터베이스 서비스에 저장된 데이터입니다. 외부 서비스 연결을 설정하는 방법은 외부 데이터 소스 소개를 참조하세요.
  • 멀티 클라우드 데이터 - AWS 또는 Azure와 같은 멀티 클라우드 서비스에 저장된 데이터입니다. AWS 및 Azure 스토리지 연결을 설정하는 방법은 BigQuery Omni 문서에서 안내 가이드를 참조하세요.
  • 공개 데이터 세트 - 고유 데이터가 없으면 공개 데이터 세트 Marketplace에서 사용 가능한 데이터 세트를 분석할 수 있습니다.

쿼리 유형

데이터를 BigQuery에 로드한 후 테이블의 데이터를 쿼리할 수 있습니다. BigQuery는 다음 두 가지 유형의 쿼리를 지원합니다.

기본적으로 BigQuery는 대화형 쿼리를 실행합니다. 즉, 최대한 빨리 쿼리가 실행됩니다.

BigQuery는 일괄 쿼리도 제공합니다. BigQuery는 사용자를 대신하여 각 일괄 쿼리를 대기열에 포함시키고 유휴 리소스가 있으면 바로(대개 몇 분 소요) 쿼리를 시작합니다.

다음을 사용하여 대화형 쿼리와 일괄 쿼리를 실행할 수 있습니다.

쿼리 작업

작업이란 BigQuery가 데이터 로드, 데이터 내보내기, 데이터 쿼리 또는 데이터 복사를 위해 사용자 대신 실행하는 작업입니다.

콘솔 또는 bq 명령줄 도구를 사용하여 데이터를 로드, 내보내기, 쿼리, 복사하면 작업 리소스가 자동으로 생성, 예약, 실행됩니다. 프로그래매틱 방식으로 로드, 내보내기, 쿼리 또는 복사 작업을 만들 수도 있습니다. 프로그래매틱 방식으로 작업을 만들면 BigQuery가 사용자 대신 작업을 예약 및 실행합니다.

작업을 완료하는 데 시간이 오래 걸릴 수 있으므로, 작업은 비동기식으로 실행되고 상태가 폴링될 수 있습니다. 리소스를 나열하거나 메타데이터를 가져오는 것처럼 더 짧은 동작은 작업 리소스에서 관리되지 않습니다.

쿼리 저장 및 공유

BigQuery를 사용하면 쿼리를 저장하고 다른 사람과 쿼리를 공유할 수 있습니다.

저장된 쿼리의 상태는 비공개(자신에게만 표시), 프로젝트 수준에서 공유(특정 주 구성원에게 표시) 또는 공개(누구나 볼 수 있음)가 될 수 있습니다. 자세한 내용은 쿼리 저장 및 공유를 참조하세요.

쿼리 처리

BigQuery에서는 컴퓨팅이 스토리지에서 분리되었으며 대규모 데이터 세트에서 쿼리 효율화를 위한 데이터 구성을 위해 함께 작동하도록 설계되었습니다.

쿼리를 실행하면 BigQuery에서 쿼리를 여러 스테이지로 구분하는 실행 트리가 생성됩니다. 이러한 스테이지에는 병렬로 실행될 수 있는 단계가 포함됩니다. 스테이지는 빠른 분산 셔플 등급을 사용해서 서로 통신하여 스테이지 작업자로부터 생성되는 중간 데이터를 저장합니다. 셔플 등급은 워커 노드로의 신속한 데이터 이동을 위해 가능한 모든 경우에 페타비트 네트워크 및 RAM과 같은 기술을 활용합니다.

다음은 쿼리 처리의 주요 개념에 대해 설명합니다.

  • 실행 트리 - 쿼리는 작업자가 병렬로 수행할 수 있는 단계가 포함된 여러 스테이지로 구분됩니다.
  • 셔플 등급 - 셔플 등급은 스테이지 사이의 중간 데이터를 저장합니다.
  • 쿼리 계획 - 쿼리 계획은 쿼리 실행을 위해 필요한 모든 정보가 BigQuery에 포함된 다음에 생성됩니다. 이 쿼리 계획은 Console에서 확인 가능하며, 쿼리 성능 문제를 해결하거나 최적화하는 데 유용할 수 있습니다.
  • 쿼리 모니터링 및 동적 계획 - 쿼리 계획 자체 작업을 수행하는 작업자 외에도 추가 작업자가 시스템 전체 작업의 전반적인 진행 상태를 모니터링하고 안내합니다. 또한 쿼리가 진행됨에 따라 BigQuery가 여러 스테이지의 결과에 맞게 쿼리 계획을 동적으로 조정할 수 있습니다.

쿼리가 완료되면 결과가 영구 스토리지에 기록되고 사용자에게 반환됩니다. 이렇게 해서 다음에 쿼리가 실행될 때 BigQuery가 캐시된 결과를 제공할 수 있습니다.

쿼리 동시 실행 및 성능

같은 데이터에서 반복적으로 실행되는 쿼리의 성능에는 밀리초 단위의 차이가 있을 수 있습니다. 이러한 실행 성능의 변동은 BigQuery 환경의 공유 특성과 쿼리가 실행되는 동안 BigQuery가 쿼리 계획을 조정하는 동적 쿼리 실행으로 인해 발생합니다. 많은 쿼리가 한 번에 실행되는 등 일반적으로 사용량이 많은 시스템의 경우 BigQuery에서 다음 메커니즘을 사용하여 쿼리 성능의 변동성을 완화합니다.

  • BigQuery는 많은 쿼리를 동시에 실행하므로 쿼리를 큐에 추가할 필요가 거의 없습니다. 동시에 실행되는 기본 최대 쿼리 수는 100개입니다.

    쿼리가 큐에 머무는 시간이 불확실하기 때문에 사용량이 많은 시스템에서 큐는 성능 예측 가능성이 낮은 주요 소스입니다. 쿼리가 큐에 머무는 시간은 쿼리 자체의 품질보다는 실행 중인 쿼리 또는 큐에 있는 다른 쿼리에 의해 좌우될 수 있습니다.

  • 쿼리가 시작되고 완료됨에 따라 BigQuery가 새 쿼리와 실행 중인 쿼리 간에 리소스를 균일하게 다시 배포합니다. 그러면 쿼리가 제출되는 순서가 아닌 지정된 시간에 실행되는 쿼리 수에 따라 쿼리 성능이 달라집니다.

쿼리 최적화

쿼리가 완료되면 콘솔에서 쿼리 계획을 보거나 INFORMATION_SCHEMA.JOBS* 또는 Jobs API를 통해 실행 세부정보를 요청할 수 있습니다. 쿼리 계획은 개요 통계, 세부 단계 정보와 같은 쿼리 스테이지에 대한 세부정보를 제공합니다.

쿼리 계획 세부정보를 통해 쿼리 성능을 향상시킬 수 있는 방법을 찾아볼 수 있습니다. 예를 들어 실행 세부정보에서 특정 스테이지가 다른 스테이지보다 많은 출력을 기록하고 있는 것으로 확인된 경우에는 해당 쿼리를 먼저 필터링해야 할 수 있습니다.

  • 쿼리 계획에 대한 정보 및 쿼리 성능 향상을 위해 이 정보를 사용하는 방법에 대한 추가 예시를 보려면 쿼리 계획 및 타임라인 페이지를 참조하세요.
  • 일반적인 쿼리 최적화에 대한 자세한 내용은 쿼리 성능 최적화 소개를 참조하세요.

쿼리 모니터링

모니터링과 로깅은 클라우드에서 안정적인 애플리케이션을 실행하는 데 있어 매우 중요합니다. 특히 워크로드에 워크로드가 많거나 작업에 중요하다면 BigQuery 워크로드 또한 마찬가지입니다. BigQuery는 BigQuery 사용을 모니터링할 수 있도록 다양한 측정항목, 로그, 메타데이터 보기를 제공합니다.

쿼리 가격 책정

BigQuery는 애널리틱스를 위한 두 가지 가격 책정 모델을 제공합니다.

두 가지 가격 책정 모델에 대한 정보 및 정액제 가격 책정 예약에 대한 자세한 내용은 예약 소개를 참조하세요.

할당량 및 쿼리 비용 관리

BigQuery는 실행되는 쿼리에 프로젝트 수준의 할당량을 적용합니다. 쿼리 할당량에 대한 자세한 내용은 할당량 및 제한을 참조하세요.

쿼리 비용을 관리하기 위해 BigQuery는 커스텀 할당량과 결제 알림을 포함한 몇 가지 옵션을 제공합니다. 자세한 내용은 커스텀 비용 관리 만들기를 참조하세요.

데이터 분석 기능

BigQuery는 기술적 분석과 예측적 분석을 모두 지원합니다. Console을 사용해서 일부 통계적 질문에 답변하기 위해 데이터를 직접 쿼리하거나 BigQuery와 통합되는 Tableau 또는 Looker와 같은 도구를 사용해서 추세 및 이상치 데이터를 시각적으로 찾아볼 수 있습니다.

분석 도구 통합

BigQuery에서 쿼리를 실행하는 것 외에도 BigQuery와 통합된 다음과 같은 다양한 분석 및 비즈니스 인텔리전스 도구를 사용하여 데이터를 분석할 수 있습니다.

  • Google 데이터 스튜디오 - 쿼리를 실행한 후 BigQuery 콘솔에서 직접 Google 데이터 스튜디오를 시작할 수 있습니다. Google 데이터 스튜디오 콘솔에서 시각화를 만들고 쿼리에서 반환된 데이터를 탐색할 수 있습니다. Google 데이터 스튜디오에 대한 자세한 내용은 Google 데이터 스튜디오 개요를 참조하세요.

  • 연결된 시트 - 또한 BigQuery 콘솔에서 직접 연결된 시트를 실행할 수도 있습니다. 연결된 시트는 요청 또는 정의된 일정에 따라 사용자 대신 BigQuery 쿼리를 실행합니다. 이러한 쿼리 결과는 분석 및 공유를 위해 스프레드시트에 저장됩니다. 연결된 시트에 대한 자세한 내용은 연결된 시트 사용을 참조하세요.

  • Looker - Looker는 비즈니스 인텔리전스, 데이터 애플리케이션, 임베디드 분석을 위한 기업용 플랫폼입니다. Looker 플랫폼은 BigQuery를 포함한 많은 데이터 스토어에서 작동합니다. Looker를 BigQuery에 연결하는 방법은 Looker 사용을 참조하세요.

타사 도구 통합

여러 타사 분석 도구가 BigQuery와 호환됩니다. 예를 들어 Tableau를 BigQuery 데이터에 연결하고 해당 시각화 도구를 사용해서 분석을 수행하고 분석 결과를 공유할 수 있습니다. 타사 도구를 사용할 때의 고려사항에 대한 자세한 내용은 타사 도구 통합을 참조하세요.

ODBC 및 JDBC 드라이버가 제공되며 이를 사용해서 애플리케이션을 BigQuery와 통합합니다. 이러한 드라이버는 기존 도구 및 인프라에서 BigQuery 성능을 활용하기 위해 사용됩니다. 최신 출시 버전 및 알려진 문제에 대한 자세한 내용은 BigQuery용 ODBC 및 JDBC 드라이버를 참조하세요.

pandas-gbq와 같은 Pandas 라이브러리를 사용하면 Jupyter 노트북에서 BigQuery 데이터와 상호작용할 수 있습니다. 이 라이브러리 정보 및 BigQuery Python 클라이언트 라이브러리를 사용한 비교 방법은 pandas-gbq와 비교를 참조하세요.

BigQuery를 다른 노트북 및 분석 도구와 함께 사용할 수도 있습니다. 자세한 내용은 프로그래매틱 분석 도구를 참조하세요.

BigQuery 분석의 전체 목록 및 더 많은 기술 파트너 정보는 BigQuery 제품 페이지에서 파트너 목록을 참조하세요.

다음 단계