BigQuery 분석 개요
이 문서에서는 BigQuery가 쿼리를 처리하는 방법을 설명하고 데이터 분석에 유용한 여러 기능에 대해 간단히 설명합니다.
BigQuery는 몇 초 이내의 테라바이트급 데이터와 몇 분 이내의 페타바이트급 데이터를 포함하여 대규모 데이터 세트에 대해 분석 쿼리를 실행하도록 최적화되어 있습니다. 해당 기능 및 쿼리 처리 방법을 이해하면 데이터 분석 투자의 효과를 극대화하는 데 도움이 될 수 있습니다.
Google Cloud console에서 직접 BigQuery의 데이터 분석 기능을 둘러보려면 둘러보기를 클릭합니다.
분석 워크플로
BigQuery는 여러 데이터 분석 워크플로를 지원합니다.
임시 분석. BigQuery에서는 임시 분석 지원을 위해 BigQuery의 SQL 언어인 GoogleSQL이 사용됩니다. Google Cloud 콘솔에서 또는 BigQuery와 통합되는 타사 도구를 통해 쿼리를 실행할 수 있습니다.
지리정보 분석. BigQuery는 지리 데이터 유형 및 GoogleSQL 지리 함수를 사용하여 지리정보 데이터를 분석하고 시각화할 수 있게 해줍니다. 이러한 데이터 유형에 대한 자세한 내용은 지리정보 분석 소개를 참조하세요.
머신러닝. BigQuery ML은 GoogleSQL 쿼리를 사용하여 BigQuery에서 머신러닝(ML) 모델을 만들고 실행할 수 있게 해줍니다.
비즈니스 인텔리전스. BigQuery BI Engine은 성능, 확장성, 보안, 데이터 최신 상태를 훼손하지 않고 풍부한 대화형 대시보드 및 보고서를 작성할 수 있게 해주는 빠른 메모리 내 분석 서비스입니다.
쿼리
BigQuery에서 기본 분석 단위는 SQL 쿼리입니다. BigQuery에는 GoogleSQL과 legacy SQL이라는 두 가지 SQL 언어가 있습니다. GoogleSQL이 기본 언어입니다. SQL:2011을 지원하며 지리정보 분석 또는 ML을 지원하는 확장 프로그램을 포함합니다.
다음 섹션에서는 BigQuery가 데이터 쿼리를 지원하고 실행하는 방법을 설명합니다.
데이터 소스
BigQuery를 사용하여 다음 유형의 데이터 소스를 쿼리할 수 있습니다.
BigQuery에 저장된 데이터. 분석을 위해 BigQuery에 데이터를 로드할 수 있습니다. 또한 데이터 조작 언어(DML) 문을 사용하거나 테이블에 쿼리 결과를 작성하여 데이터를 생성할 수 있습니다. 단일 리전 또는 멀티 리전 위치에 저장된 데이터를 쿼리할 수 있지만, 하나는 단일 리전 위치이고 다른 하나는 단일 리전 위치가 포함된 멀티 리전 위치인 경우에도 여러 위치에 쿼리를 실행할 수 없습니다. 자세한 내용은 위치, 예약, 작업을 참조하세요.
외부 데이터. 다른 Google Cloud 스토리지 서비스(예: Cloud Storage) 또는 데이터베이스 서비스(예: Spanner 또는 Cloud SQL)와 같은 여러 외부 데이터 소스를 쿼리할 수 있습니다. 외부 서비스 연결을 설정하는 방법은 외부 데이터 소스 소개를 참조하세요.
멀티 클라우드 데이터. AWS 또는 Azure와 같은 다른 퍼블릭 클라우드에 저장된 데이터를 쿼리할 수 있습니다. Amazon S3 또는 Azure Blob 스토리지 연결을 설정하는 방법에 대한 자세한 내용은 BigQuery Omni 소개를 참조하세요.
공개 데이터 세트. 고유 데이터가 없으면 공개 데이터 세트 Marketplace에서 사용 가능한 데이터 세트를 분석할 수 있습니다.
쿼리 작업
작업이란 BigQuery가 데이터 로드, 데이터 내보내기, 데이터 쿼리 또는 데이터 복사를 위해 사용자 대신 실행하는 작업입니다.
Google Cloud 콘솔 또는 bq 도구를 사용하여 이러한 작업 중 하나를 수행하면 작업 리소스가 자동으로 생성, 예약, 실행됩니다. 프로그래매틱 방식으로 로드, 내보내기, 쿼리 또는 복사 작업을 만들 수도 있습니다. 프로그래매틱 방식으로 작업을 만들면 BigQuery가 사용자 대신 작업을 예약 및 실행합니다.
작업을 완료하는 데 시간이 오래 걸릴 수 있으므로, 작업은 비동기식으로 실행되고 상태가 폴링될 수 있습니다. 리소스를 나열하거나 메타데이터를 가져오는 것처럼 더 짧은 동작은 작업 리소스에서 관리되지 않습니다.
쿼리 유형
다음 쿼리 작업 유형 중 하나를 사용하여 BigQuery 데이터를 쿼리할 수 있습니다.
- 대화형 쿼리 작업. 기본적으로 BigQuery는 대화형(주문형) 쿼리 작업을 최대한 빨리 실행합니다.
연속 쿼리 작업(미리보기). 이러한 작업을 사용하면 쿼리가 연속적으로 실행되므로 BigQuery에서 수신되는 데이터를 실시간으로 분석한 후 결과를 BigQuery 테이블에 쓰거나 결과를 Bigtable 또는 Pub/Sub로 내보낼 수 있습니다. 이 기능을 사용하여 통계를 만들어 즉시 조치, 실시간 머신러닝(ML) 추론 적용, 이벤트 기반 데이터 파이프라인 빌드 등 시간에 민감한 작업을 수행할 수 있습니다.
일괄 쿼리 작업. 이러한 작업을 통해 BigQuery는 사용자를 대신하여 각 일괄 쿼리를 큐에 포함시키고 유휴 리소스를 사용할 수 있으면(대개 몇 분 소요) 쿼리를 시작합니다.
다음 메서드를 사용하여 쿼리 작업을 실행할 수 있습니다.
- Google Cloud 콘솔에서 쿼리를 작성하고 실행합니다.
- bq 명령줄 도구에서
bq query
명령어를 실행합니다. - BigQuery REST API의
jobs.query
또는jobs.insert
메서드를 프로그래매틱 방식으로 호출합니다. - BigQuery 클라이언트 라이브러리를 사용합니다.
저장된 쿼리 및 공유 쿼리
BigQuery를 사용하면 쿼리를 저장하고 다른 사람과 쿼리를 공유할 수 있습니다.
저장된 쿼리의 상태는 비공개(자신에게만 표시), 프로젝트 수준에서 공유(특정 주 구성원에게 표시) 또는 공개(누구나 볼 수 있음)가 될 수 있습니다. 자세한 내용은 저장된 쿼리로 작업을 참조하세요.
BigQuery의 쿼리 처리 방법
BigQuery가 쿼리를 실행할 때는 여러 프로세스가 수행됩니다.
실행 트리. 쿼리를 실행하면 BigQuery에서 쿼리를 여러 스테이지로 구분하는 실행 트리가 생성됩니다. 이러한 스테이지에는 병렬로 실행될 수 있는 단계가 포함되어 있습니다.
셔플 등급. 스테이지는 빠른 분산 셔플 등급을 사용해서 서로 통신하여 스테이지 작업자로부터 생성되는 중간 데이터를 저장합니다. 가능하면 데이터를 워커 노드로 빠르게 이동할 때와 같이 셔플 등급이 페타비트 네트워크 및 RAM과 같은 기술을 활용합니다.
쿼리 계획. BigQuery에 쿼리 실행에 필요한 모든 정보가 포함되었으면 쿼리 계획이 생성됩니다. Google Cloud 콘솔에서 이 계획을 보고 이를 사용하여 문제 해결을 수행하거나 쿼리 성능을 최적화할 수 있습니다.
쿼리 모니터링 및 동적 계획. 쿼리 계획 자체 작업을 수행하는 작업자 외에도 추가 작업자가 시스템 전체 작업의 전반적인 진행 상태를 모니터링하고 안내합니다. 쿼리가 진행됨에 따라 BigQuery가 여러 스테이지 결과에 맞게 쿼리 계획을 동적으로 조정할 수 있습니다.
쿼리 결과. 쿼리가 완료되면 BigQuery가 결과를 영구 스토리지에 기록하고 이를 사용자에게 반환합니다. 이러한 설계에 따라 BigQuery는 다음에 쿼리가 실행될 때 캐시된 결과를 제공할 수 있습니다.
쿼리 동시성 및 성능
동일한 데이터에 대해 반복적으로 실행되는 쿼리의 성능은 BigQuery 환경의 공유 특성으로 인해 또는 쿼리 실행 중 BigQuery가 쿼리 계획을 동적으로 조정하기 때문에 달라질 수 있습니다. 많은 쿼리가 동시에 실행되는 일반적으로 사용량이 많은 시스템에서 BigQuery는 여러 프로세스를 사용하여 쿼리 성능의 차이를 균일하게 만듭니다.
BigQuery는 많은 쿼리를 동시에 실행하므로 쿼리를 큐에 추가할 필요가 거의 없습니다.
쿼리가 큐에 머무는 시간이 불확실하기 때문에 사용량이 많은 시스템에서 큐는 성능 예측 가능성이 낮은 주요 소스입니다. 쿼리가 큐에 머무는 시간은 쿼리 자체의 품질보다는 실행 중인 쿼리 또는 큐에 있는 다른 쿼리에 의해 좌우될 수 있습니다.
쿼리가 시작되고 완료됨에 따라 BigQuery가 새 쿼리와 실행 중인 쿼리 간에 리소스를 균일하게 다시 배포합니다. 이 프로세스는 쿼리가 제출된 순서에 의존하지 않고 오히려 지정된 시간에 실행된 쿼리 수에 따라 결정되도록 보장합니다.
쿼리 최적화
쿼리가 완료되면 Google Cloud 콘솔에서 쿼리 계획 보기를 수행할 수 있습니다. 또한 INFORMATION_SCHEMA.JOBS*
뷰 또는 jobs.get
REST API 메서드를 사용하여 실행 세부정보를 요청할 수 있습니다.
쿼리 계획에는 쿼리 스테이지 및 단계에 대한 세부정보가 포함됩니다. 이러한 세부정보는 쿼리 성능을 향상시킬 수 있는 방법을 식별하는 데 도움이 될 수 있습니다. 예를 들어 다른 스테이지보다 많은 출력을 작성하는 스테이지가 확인되었으면 쿼리에서 초기에 필터링해야 할 수 있습니다.
쿼리 계획 및 쿼리 최적화에 대한 자세한 내용은 다음 리소스를 참조하세요.
- 쿼리 계획에 대한 자세한 내용과 쿼리 정보를 통해 쿼리 성능을 향상시키는 방법에 대한 예시는 쿼리 계획 및 타임라인을 참조하세요.
- 일반적인 쿼리 최적화에 대한 자세한 내용은 쿼리 성능 최적화 소개를 참조하세요.
쿼리 모니터링
모니터링과 로깅은 클라우드에서 안정적인 애플리케이션을 실행하는 데 있어 매우 중요합니다. 특히 워크로드에 워크로드가 많거나 작업에 중요하다면 BigQuery 워크로드 또한 마찬가지입니다. BigQuery는 BigQuery 사용을 모니터링할 수 있도록 다양한 측정항목, 로그, 메타데이터 보기를 제공합니다.
자세한 내용은 다음 리소스를 참조하세요.
- BigQuery의 모니터링 옵션에 대한 자세한 내용은 BigQuery 모니터링 소개를 참조하세요.
- 감사 로그 및 쿼리 동작 분석 방법에 대한 자세한 내용은 BigQuery 감사 로그를 참조하세요.
쿼리 가격 책정
BigQuery는 애널리틱스를 위한 두 가지 가격 책정 모델을 제공합니다.
- 주문형 가격 책정. 쿼리로 스캔한 데이터에 대해서만 요금을 지불합니다. 프로젝트마다 고정된 쿼리 처리 용량이 있으며 비용은 처리된 바이트 수를 기준으로 합니다.
- 용량 기반 가격 책정. 전용 쿼리 처리 용량을 구입합니다.
두 가지 가격 책정 모델에 대한 정보 및 용량 기반 가격 책정 예약에 대한 자세한 내용은 예약 소개를 참조하세요.
할당량 및 쿼리 비용 관리
BigQuery는 실행되는 쿼리에 프로젝트 수준의 할당량을 적용합니다. 쿼리 할당량에 대한 자세한 내용은 할당량 및 제한을 참조하세요.
쿼리 비용을 관리하기 위해 BigQuery는 커스텀 할당량과 결제 알림을 포함한 몇 가지 옵션을 제공합니다. 자세한 내용은 커스텀 비용 관리 만들기를 참조하세요.
데이터 분석 기능
BigQuery는 기술적 분석과 예측적 분석을 모두 지원합니다. 일부 통계적 질문에 답변하기 위해 데이터를 직접 쿼리하려면 Google Cloud 콘솔을 사용하면 됩니다. 추세 및 이상치와 같은 데이터를 시각적으로 탐색하기 위해서는 BigQuery에 통합된 Tableau 또는 Looker와 같은 도구를 사용할 수 있습니다.
BigQuery Studio
BigQuery Studio를 사용하면 다음 기능을 사용하여 BigQuery에서 데이터를 탐색, 분석하고 추론을 실행할 수 있습니다.
- 코드 완성, 쿼리 검증, 처리된 바이트 추정을 제공하는 강력한 SQL 편집기
- Colab Enterprise를 사용하여 빌드된 Python 노트북. Notebooks는 원클릭 Python 개발 런타임을 제공하며 BigQuery DataFrames을 기본적으로 지원합니다.
- Apache Spark의 저장 Python 프로시져를 만들 수 있는 PySpark 편집기
- Dataform을 기반으로 빌드된 노트북 및 저장된 쿼리와 같은 코드 애셋에 대한 애셋 관리 및 버전 기록
- Gemini 생성형 AI(미리보기)를 기반으로 빌드된 SQL 편집기와 노트북에서 보조 코드 개발
- 데이터 탐색, 데이터 프로파일링, 데이터 품질 스캔을 위한 Dataplex 기능
- 사용자 또는 프로젝트별로 작업 기록을 보는 기능
- Looker 및 Google Sheets와 같은 다른 도구에 연결하여 저장된 쿼리 결과를 분석하고 다른 애플리케이션에서 사용할 수 있도록 저장된 쿼리 결과를 내보내는 기능
BigQuery Studio를 사용하려면 애셋 관리에 BigQuery Studio 사용 설정의 안내를 따르세요. 이 프로세스는 다음 API를 사용 설정합니다.
- Compute Engine API: 프로젝트에서 Python 함수를 실행하는 데 필요합니다.
- Dataform API: 노트북 파일 등의 코드 애셋을 저장하는 데 필요합니다.
- Vertex AI API: BigQuery에서 Colab Enterprise Python 노트북을 실행하는 데 필요합니다.
BigQuery ML
BigQuery ML을 사용하면 BigQuery에서 SQL을 사용하여 머신러닝(ML) 및 예측 분석을 수행할 수 있습니다. 자세한 내용은 BigQuery ML 소개를 참조하세요.
분석 도구 통합
BigQuery에서 쿼리를 실행하는 것 외에도 BigQuery와 통합된 다음과 같은 다양한 분석 및 비즈니스 인텔리전스 도구를 사용하여 데이터를 분석할 수 있습니다.
Looker. Looker는 비즈니스 인텔리전스, 데이터 애플리케이션, 임베디드 분석을 위한 기업용 플랫폼입니다. Looker 플랫폼은 BigQuery를 포함한 많은 데이터 스토어에서 작동합니다. Looker를 BigQuery에 연결하는 방법은 Looker 사용을 참조하세요.
Looker Studio. 쿼리를 실행한 후 Google Cloud 콘솔에서 BigQuery에서 직접 Looker Studio를 시작할 수 있습니다. 그런 후 Looker Studio에서 시각화를 만들고 쿼리에서 반환된 데이터를 탐색할 수 있습니다. Looker Studio에 대한 자세한 내용은 Looker Studio 개요를 참조하세요.
연결된 시트. 콘솔에서 BigQuery에서 직접 연결된 시트를 실행할 수도 있습니다. 연결된 시트는 요청 또는 정의된 일정에 따라 사용자 대신 BigQuery 쿼리를 실행합니다. 이러한 쿼리 결과는 분석 및 공유를 위해 스프레드시트에 저장됩니다. 연결된 시트에 대한 자세한 내용은 연결된 시트 사용을 참조하세요.
타사 도구 통합
여러 타사 분석 도구가 BigQuery와 호환됩니다. 예를 들어 Tableau를 BigQuery 데이터에 연결하고 해당 시각화 도구를 사용해서 분석을 수행하고 분석 결과를 공유할 수 있습니다. 타사 도구를 사용할 때의 고려사항에 대한 자세한 내용은 타사 도구 통합을 참조하세요.
ODBC 및 JDBC 드라이버가 제공되며 이를 사용해서 애플리케이션을 BigQuery와 통합합니다. 이러한 드라이버는 기존 도구 및 인프라에서 BigQuery 성능을 활용하기 위해 사용됩니다. 최신 출시 버전 및 알려진 문제에 대한 자세한 내용은 BigQuery용 ODBC 및 JDBC 드라이버를 참조하세요.
pandas-gbq
와 같은 Pandas 라이브러리를 사용하면 Jupyter 노트북에서 BigQuery 데이터와 상호작용할 수 있습니다. 이 라이브러리 정보 및 BigQuery Python 클라이언트 라이브러리를 사용한 비교 방법은 pandas-gbq
와 비교를 참조하세요.
BigQuery를 다른 노트북 및 분석 도구와 함께 사용할 수도 있습니다. 자세한 내용은 프로그래매틱 분석 도구를 참조하세요.
BigQuery 분석의 전체 목록 및 더 많은 기술 파트너 정보는 BigQuery 제품 페이지에서 파트너 목록을 참조하세요.
다음 단계
- 지원되는 SQL 문에 대한 소개 및 개요는 BigQuery의 SQL 소개를 참조하세요.
- BigQuery에서 데이터를 쿼리하는 데 사용되는 GoogleSQL 문법은 GoogleSQL의 쿼리 구문을 참조하세요.
- 쿼리 설명 계획 읽기에 대한 자세한 내용은 쿼리 계획 설명 사용을 참조하세요.
- 반복 쿼리 예약 방법에 대한 자세한 내용은 쿼리 예약을 참조하세요.