개발자 도구 및 기능

이 문서에서는 BigQuery로 솔루션을 개발하는 데 도움이 되는 몇 가지 기능과 도구에 대해 간략하게 설명합니다.

BigQuery 아키텍처 다이어그램

개발자 기능

이 섹션에서는 BigQuery를 사용하는 개발자를 위한 일반적인 기본 제공 기능을 설명합니다.

데이터 로드 및 변환

BigQuery는 새 데이터의 일괄 로드, 스트리밍, 생성 방법을 제공합니다. 사용 사례에 가장 적합한 옵션을 선택하려면 데이터 로드 소개를 참조하세요.

쿼리

BigQuery는 GoogleSQL로 작성된 분석 쿼리를 대규모 데이터 세트에 대해 실행하도록 최적화되어 있습니다. BigQuery에 저장된 데이터, 외부 데이터, 다른 클라우드에 저장된 데이터, 공개 데이터 세트에서 실행되는 쿼리를 예약, 저장, 공유할 수 있습니다.

원격 함수

원격 함수를 사용하여 Cloud Run 함수 또는 Cloud Run에 함수를 배포한 다음 GoogleSQL 쿼리에서 직접 호출할 수 있습니다. 이 방법은 SQL 또는 JavaScript 이외의 언어로 함수를 구현해야 하는 경우에 특히 유용합니다. 테이블의 원격 기능은 텍스트를 한 언어에서 다른 언어로 번역하거나 테이블의 값이 임곗값 아래로 떨어질 때 알림과 같은 작업을 시작하거나 머신러닝(ML) 모델 적용과 같은 일괄 변환을 실행하는 등 다양한 용도로 사용할 수 있습니다.

머신러닝

BigQuery ML을 사용하여 GoogleSQL 쿼리를 사용하여 ML 모델을 만들고 실행할 수 있습니다.

SQL 저장 프로시저

SQL 저장 프로시저를 사용하여 다른 쿼리 또는 저장 프로시저에서 문 컬렉션을 호출할 수 있습니다. 기본 제공 저장 프로시저를 호출하거나 직접 작성할 수 있으므로 변수를 정의하고 제어 흐름을 구현할 수 있습니다.

반정형 데이터

GoogleSQL의 JSON 데이터를 사용하면 스키마를 미리 제공하지 않고도 반정형 데이터를 BigQuery로 수집할 수 있습니다. 필드 액세스 연산자를 사용하여 필드 및 배열 요소의 값을 직접 쿼리할 수 있습니다.

시간 이동

시간 이동을 사용하면 지난 7일 동안 어느 지점에서든 변경되었거나 삭제된 BigQuery에 저장된 데이터에 액세스할 수 있습니다. 이 기능을 사용하면 데이터를 백업하지 않았더라도 업데이트, 삭제 또는 만료된 테이블을 복원할 수 있습니다.

테이블 스냅샷

시간 이동 기간을 넘어 특정 시점에서 테이블을 백업해야 할 때 테이블 스냅샷을 사용할 수 있습니다. BigQuery는 스냅샷과 기본 테이블 간에 차이가 있는 바이트만 저장합니다. 따라서 테이블 스냅샷은 일반적으로 테이블의 전체 복사본보다 적은 스토리지를 사용합니다.

테이블 클론

테이블 클론을 사용하여 테이블의 버전을 관리하고 테이블 스키마 변경사항을 테스트할 수 있습니다. 테이블 클론은 다른 테이블의 경량 사본으로서 쓰기가 가능합니다. 기본 테이블과 다른 테이블 클론의 데이터를 저장하는 경우에만 요금이 청구되므로 처음에는 테이블 클론에 대한 스토리지 비용이 발생하지 않습니다.

외부 테이블

다른 Google Cloud 데이터베이스의 데이터, Cloud Storage의 파일 또는 다른 Cloud 제품의 파일과 같은 외부 테이블을 BigQuery에서 직접 쿼리할 수 있습니다. 이 기능을 사용하면 단일 쿼리로 ELT 워크로드를 수행하거나 다른 소스에서 자주 변경되는 데이터와 BigQuery 테이블을 조인할 수 있습니다.

사용자 정의 함수

GoogleSQL 또는 JavaScript에서 쿼리 간에 재사용할 수 있는 사용자 정의 함수(UDF)를 작성할 수 있습니다. UDF를 루틴으로 승인하면 해당 사용자나 그룹에 기본 테이블에 대한 액세스 권한을 부여하지 않고도 특정 사용자 또는 그룹과 쿼리 결과를 공유할 수 있습니다.

BigQuery API

BigQuery는 다양한 유형의 서비스와 프로그래매틱 방식으로 상호작용하는 REST 및 gRPC API를 제공합니다. 서비스 계정이나 사용자 계정을 사용하여 API에 액세스하도록 클라이언트 ID를 인증할 수 있습니다. 다음 API를 사용할 수 있습니다.

각 API가 제공하는 기능에 대한 자세한 내용은 BigQuery API 및 라이브러리 개요를 참조하세요.

BigQuery DataFrames 라이브러리

BigQuery DataFrames는 BigQuery에서 데이터를 분석하고 머신러닝 작업을 수행하는 데 사용할 수 있는 Python API입니다. GitHub에서 API의 소스 코드를 확인할 수 있습니다.

BigQuery DataFrame 빠른 시작을 사용하여 BigQuery DataFrames를 시작하세요.

클라이언트 라이브러리

클라이언트 라이브러리를 사용하면 C#, Go, Java, Node.js, PHP, Python, Ruby 등 선호하는 프로그래밍 언어를 사용하여 BigQuery API에 직접 액세스할 수 있습니다. BigQuery API에 대한 이러한 리소스를 보려면 다음 언어 중 하나를 선택합니다.

C#

  • 빠른 시작. 단계별 안내에 따라 클라이언트 라이브러리를 사용하여 BigQuery에서 쿼리를 실행합니다.
  • API 참조 문서. 해당 언어에서 지원되는 메서드와 객체에 대한 설명을 확인하세요.
  • GitHub 소스 코드. GitHub에서 BigQuery 클라이언트 라이브러리의 소스 코드를 확인합니다.
  • Stack Overflow. BigQuery 클라이언트 라이브러리와 관련된 질문을 읽고, 묻고, 답변합니다.

Go

  • 빠른 시작. 단계별 안내에 따라 클라이언트 라이브러리를 사용하여 BigQuery에서 쿼리를 실행합니다.
  • API 참조 문서. 해당 언어에서 지원되는 메서드와 객체에 대한 설명을 확인하세요.
  • GitHub 소스 코드. GitHub에서 BigQuery 클라이언트 라이브러리의 소스 코드를 확인합니다.
  • Stack Overflow. BigQuery 클라이언트 라이브러리와 관련된 질문을 읽고, 묻고, 답변합니다.

자바

  • 빠른 시작. 단계별 안내에 따라 클라이언트 라이브러리를 사용하여 BigQuery에서 쿼리를 실행합니다.
  • API 참조 문서. 해당 언어에서 지원되는 메서드와 객체에 대한 설명을 확인하세요.
  • GitHub 소스 코드. GitHub에서 BigQuery 클라이언트 라이브러리의 소스 코드를 확인합니다.
  • Stack Overflow. BigQuery 클라이언트 라이브러리와 관련된 질문을 읽고, 묻고, 답변합니다.

Node.js

  • 빠른 시작. 단계별 안내에 따라 클라이언트 라이브러리를 사용하여 BigQuery에서 쿼리를 실행합니다.
  • API 참조 문서. 해당 언어에서 지원되는 메서드와 객체에 대한 설명을 확인하세요.
  • GitHub 소스 코드. GitHub에서 BigQuery 클라이언트 라이브러리의 소스 코드를 확인합니다.
  • Stack Overflow. BigQuery 클라이언트 라이브러리와 관련된 질문을 읽고, 묻고, 답변합니다.

PHP

  • 빠른 시작. 단계별 안내에 따라 클라이언트 라이브러리를 사용하여 BigQuery에서 쿼리를 실행합니다.
  • API 참조 문서. 해당 언어에서 지원되는 메서드와 객체에 대한 설명을 확인하세요.
  • GitHub 소스 코드. GitHub에서 BigQuery 클라이언트 라이브러리의 소스 코드를 확인합니다.
  • Stack Overflow. BigQuery 클라이언트 라이브러리와 관련된 질문을 읽고, 묻고, 답변합니다.

Python

  • 빠른 시작. 단계별 안내에 따라 클라이언트 라이브러리를 사용하여 BigQuery에서 쿼리를 실행합니다.
  • API 참조 문서. 해당 언어에서 지원되는 메서드와 객체에 대한 설명을 확인하세요.
  • GitHub 소스 코드. GitHub에서 BigQuery 클라이언트 라이브러리의 소스 코드를 확인합니다.
  • Stack Overflow. BigQuery 클라이언트 라이브러리와 관련된 질문을 읽고, 묻고, 답변합니다.

Ruby

  • 빠른 시작. 단계별 안내에 따라 클라이언트 라이브러리를 사용하여 BigQuery에서 쿼리를 실행합니다.
  • API 참조 문서. 해당 언어에서 지원되는 메서드와 객체에 대한 설명을 확인하세요.
  • GitHub 소스 코드. GitHub에서 BigQuery 클라이언트 라이브러리의 소스 코드를 확인합니다.
  • Stack Overflow. BigQuery 클라이언트 라이브러리와 관련된 질문을 읽고, 묻고, 답변합니다.

로컬 환경에서 BigQuery 클라이언트 라이브러리를 사용하는 방법에 대한 자세한 내용은 BigQuery API 클라이언트 라이브러리를 참조하세요.

코드 샘플

테이블 만들기, 연결 나열, 용량 약정 및 예약 보기, 데이터 로드와 같은 BigQuery의 일반적인 작업을 수행하기 위한 전체 스니펫을 제공하는 BigQuery 코드 샘플을 찾아볼 수 있습니다. 샘플을 보려면 API, 태스크, 원하는 언어를 선택합니다.

프로그래매틱 도구 및 서비스

다음 서비스는 BigQuery와 통합되어 솔루션을 빌드하기 위한 추가 기능을 제공합니다.

  • Dataproc. Apache Hadoop 및 Apache Spark 작업을 실행하기 위한 완전 관리형 서비스입니다. Dataproc은 Hadoop 및 Spark가 BigQuery에서 직접 데이터를 처리할 수 있도록 하는 BigQuery 커넥터를 제공합니다.
  • Dataflow. 대규모로 Apache Beam 작업을 실행하기 위한 완전 관리형 서비스입니다. Beam용 BigQuery I/O 커넥터를 사용하면 Beam 파이프라인에서 BigQuery에서 데이터를 읽고 쓸 수 있습니다.
  • Cloud Composer. Apache Airflow를 기반으로 하는 완전 관리형 워크플로 조정 서비스입니다. BigQuery 연산자를 사용하면 Airflow 워크플로가 데이터 세트와 테이블을 관리하고, 쿼리를 실행하고, 데이터를 검증할 수 있습니다.
  • Pub/Sub. 비동기식 확장 가능한 메시징 서비스입니다. Pub/Sub는 수신되는 메시지를 기존 BigQuery 테이블에 쓰기 위한 BigQuery 구독을 제공합니다.

지속적 통합 및 배포

다음 옵션은 BigQuery로 개발자 워크플로를 관리하고 자동화하는 데 도움이 됩니다.

  • BigQuery Terraform 모듈. BigQuery 데이터 세트 및 테이블의 인스턴스화 및 배포를 자동화하는 모듈입니다.
  • bq 명령줄 도구. Python 기반의 BigQuery용 명령줄 도구입니다.
  • Dataform. 데이터 분석가가 BigQuery에서 데이터 변환에 대해 복잡한 SQL 워크플로를 개발, 테스트, 버전 제어, 예약할 수 있게 해주는 서비스입니다.
  • dbt. 워크플로를 조정하고 배포하고, 데이터를 테스트 및 카탈로그화하고, 코드 조각을 매크로로 재사용할 수 있게 해주는 프레임워크입니다.
  • Liquibase. 개발부터 프로덕션까지 변경사항을 빠르고 안전하게 수정하고 출시할 수 있는 데이터베이스 스키마 변경 관리 솔루션입니다.

ODBC 및 JDBC 드라이버

Open Database Connectivity(ODBC) 및 Java 데이터베이스 연결(JDBC) 드라이버를 사용하면 널리 사용되는 프로그래밍 언어로 데이터베이스 중립적인 소프트웨어 애플리케이션을 작성하여 BigQuery를 기존 인프라에 연결할 수 있습니다. 자세한 내용과 최신 드라이버 출시 정보는 BigQuery용 ODBC 및 JDBC 드라이버를 참조하세요.

다음 단계

  • Google Cloud 개발자를 위한 예정된 이벤트와 리소스에 대한 자세한 내용은 Developer Center를 참조하세요.
  • 다른 기업에서 Google Cloud를 사용하는 방법에 대한 자세한 내용은 ISV용 데이터 클라우드를 참조하세요.
  • BigQuery와 통합되는 검증된 파트너 솔루션에 대한 자세한 내용은 Google Cloud Ready - BigQuery를 참조하세요.