콘텐츠로 이동하기
데이터 분석

BigQuery의 최근 소식: 시간 단위 파티션 나누기, 테이블 ACL 등

2020년 11월 17일
Jenny Palomino

Technical Curriculum Developer

GCP 사용해 보기

$300의 무료 크레딧과 20개 이상의 항상 무료인 제품으로 Google Cloud 사용을 시작해보세요.

무료 체험

* 본 아티클의 원문은 2020년 10월 17일 Google Cloud 블로그(영문)에 게재되었습니다. 

Google Cloud에서는 고객 우선의 사고방식으로 데이터 분석 제품을 만드는 데 투자하고 있습니다. Google 엔지니어링팀은 고객이 Google Cloud의 엔터프라이즈 데이터 웨어하우스인 BigQuery를 통한 가치 창출 증대를 위한 기능 향상과 제품 업데이트를 최근 발표했습니다.  

BigQuery는 보다 효율적인 쿼리 작성을 지원하기 위해 완전히 새로운 일련의 SQL 기능을 출시했습니다. 이제 새 테이블 작업을 사용하여 테이블에 열을 손쉽게 추가하거나 콘텐츠를 삭제하고, 새 명령어로 외부 저장소의 읽기 및 쓰기 작업을 효율적으로 수행할 수 있으며, 새로운 DATE 및 STRING 함수를 활용할 수 있습니다. 이러한 기능에 대한 자세한 내용은 BigQuery의 사용자 친화적인 새 SQL 기능으로 즐거워진 일상을 참조하세요.

BigQuery에 추가된 기타 새로운 기능과 해당 기능이 쿼리 속도 향상, 효율적인 데이터 구성 및 관리, 비용 절감에 어떤 도움이 되는지 알아보세요.

빠르고 효율적인 쿼리를 위해 유연한 시간 단위를 사용하여 파티션 만들기

모든 데이터 전략의 핵심은 필요하지 않은 데이터를 찾는 데 소요되는 시간을 절감하면서 데이터 웨어하우스의 속도를 최적화하는 데 달려있습니다. 명확한 테이블 파티션 나누기와 클러스터링 전략의 정의 및 구현부터 시작하는 것이 좋습니다. 

이제 BigQuery에서 사용할 수 있게 된 시간 단위 파티션 나누기를 통해 파티션을 더욱 세밀하게 제어할 수 있다는 소식을 알려드립니다. 1시간에서 1년 사이의 시간 단위를 유연하게 사용하여 시간 기반 데이터를 구성하면 사용자가 데이터를 로드하고 쿼리하는 방법을 최적화할 수 있습니다. 이제 BigQuery 시간 기준 파티션 나누기는 DATE 및 TIMESTAMP 외에도 DATETIME 데이터 유형도 지원합니다. 데이터를 변환하거나 별도의 TIMESTAMP 열을 추가하지 않고도 글로벌 타임스탬프 데이터를 손쉽게 집계할 수 있습니다. 동일한 DATETIME 데이터 유형에서 다양한 시간 단위를 지원하는 이러한 업데이트를 통해 이제 BigQuery는 매우 빠르고 효율적으로 쿼리를 작성할 수 있는 유연성을 제공합니다.

시간 단위 파티션 나누기는 표준 SQL DDL을 사용하여 쉽게 구현할 수 있습니다. 예를 들어 TIMESTAMP_TRUNC를 사용하면 시간 표시에서 타임스탬프를 설명하는 transaction_ts TIMESTAMP 열로 파티션을 시간별로 나눈 newtable이라는 테이블을 만들 수 있습니다.
로드 중...

BigQuery의 다른 파티션 나누기 체계와 마찬가지로 새로운 파티션 나누기 체계와 함께 클러스터링을 사용하면 쿼리 성능을 향상할 수 있습니다. 가장 좋은 점은 새로운 파티션 나누기 체계가 기본 BigQuery 가격에 포함되어 있어 추가 비용 없이 사용할 수 있다는 것입니다. 이러한 새 파티션 체계는 쿼리 비용 절감에 도움이 되며 기존 데이터 웨어하우스에서 사용 가능한 파티션 체계를 일치시킬 수 있어 마이그레이션이 용이해집니다.

데모 동영상을 통해 시간 단위 파티션 나누기의 실제 작동 방식을 확인하고 BigQuery 문서에서 자세한 내용을 읽어보세요.
Video Thumbnail

INFORMATION_SCHEMA를 통해 메타데이터에 대한 확대된 액세스 활용

Google팀에서 BigQuery 데이터 세트, 테이블, 뷰, 루틴(저장 프로시저 및 사용자 정의 함수), 스키마, 작업, 슬롯에 대한 다양한 메타데이터를 노출하는 위치와 방법을 고민했을 때 답이 BigQuery 자체에 있었습니다. INFORMATION_SCHEMA 뷰를 사용하면 데이터 세트, 테이블, 뷰, 작업, 예약은 물론 스트리밍 데이터의 메타데이터에도 액세스할 수 있습니다.

다음은 이 메타데이터에 관련된 사용자 질문의 간단한 코드 스니펫입니다.

내 데이터 세트의 테이블은 모두 무엇인가요?

로드 중...

이 뷰는 어떻게 다시 정의되었나요?

로드 중...

INFORMATION_SCHEMA.JOBS_TIMELINE_BY_* 뷰를 사용하여 현재 실행 중이거나 완료된 작업에서 이전 180일간의 시간 구획별 실시간 BigQuery 메타데이터를 검색할 수도 있습니다. INFORMATION_SCHEMA 작업 타임라인 뷰는 리전화되어 있으므로 아래 예시와 같이 쿼리에 리전 한정자를 사용해야 합니다.

특정 시점에 몇 개의 작업이 실행되고 있나요?

로드 중...

마지막 날짜에서 가장 많은 슬롯 리소스를 사용한 쿼리는 무엇인가요?

로드 중...

물론 위와 같은 쿼리를 매일 실행하고 결과를 모니터링하는 작업이 단조로울 수 있기 때문에 BigQuery팀은 공개적으로 사용할 수 있는 새 보고서 템플릿을 만들었습니다. 자세한 내용은 곧 다시 설명하겠습니다. 

더 많은 예제와 함께 몇 가지 INFORMATION_SCHEMA 기본사항을 연습하고 문서를 살펴보세요

BigQuery 슬롯 및 작업 관리 간소화

BigQuery 예약을 사용하는 경우에는 프로젝트 및 팀별 슬롯 사용량의 모니터링이 어려울 수 있습니다. BigQuery 시스템 테이블 보고서는 BigQuery의 기본 INFORMATION_SCHEMA 뷰를 활용하여 BigQuery 정액제 슬롯 및 예약 사용률을 모니터링하는 데 유용한 솔루션입니다. 이러한 보고서는 시간별 또는 일별로 슬롯 및 예약을 모니터링하고 작업 실행 및 오류를 검토할 수 있는 손쉬운 방법을 제공합니다. 

새로운 데이터 스튜디오 대시보드 템플릿에서 이러한 보고서의 실제 작동 방식을 확인하세요. 한 가지 옵션을 살펴보겠습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/Daily_ultilization_report.max-1700x1700.jpg

사용 가능한 모든 BigQuery 시스템 테이블 보고서를 살펴보고 Coursera에서 BigQuery 사용 및 예약 관리에 대해 자세히 알아보세요. 

Google은 BigQuery 슬롯 관리의 간소화 외에도 보다 손쉬운 작업 관리를 위해 노력하고 있습니다. 예를 들어 이제 간단한 구문 하나면 SQL을 사용하여 작업을 쉽게 취소할 수 있습니다.
로드 중...

프로시저가 즉시 반환되고 잠시 후 BigQuery가 작업을 취소합니다. 

문서에서 BigQuery 작업을 관리할 수 있는 모든 방법을 검토하세요.

향상된 데이터 거버넌스를 활용한 개별 테이블 액세스 관리(곧 열에도 적용될 예정)

Google은 올해 초 데이터 클래스 기반 액세스 제어를 도입한 것을 바탕으로 테이블 ACL을 일반 안정화 버전으로 출시하고 Data Catalog에 통합했습니다. 이러한 새 기능을 활용하면 테이블을 개별적으로 제어하고 Data Catalog의 데이터 사전을 통해 데이터를 더욱 쉽게 찾고 공유할 수 있습니다. 

테이블 ACL을 사용하면 더 이상 특정 테이블을 쿼리하기 위해 전체 데이터 세트에 액세스하지 않아도 됩니다. 이제 다음의 간단한 세 가지 방법 중 하나로 개별 테이블 또는 뷰에서 ID 및 액세스 관리(IAM) 정책을 설정할 수 있습니다.

  • bq set-iam-policy 명령어(bq 명령줄 도구 버전 2.0.50 이상) 사용

  • Google Cloud Console 사용

  • tables.setIamPolicy 메서드 호출

예를 들어 BigQuery 데이터 뷰어 역할(roles/bigquery.dataViewer)을 사용하면 사용자가 테이블이 속한 데이터 세트에 액세스할 필요 없이 개별 테이블에 대한 읽기 액세스 권한을 부여할 수 있습니다. 또한 BigQuery 메타데이터 뷰어 역할(roles/bigquery.metadataViewer)이나 특정 데이터 세트에 대한 bigquery.tables.list 권한을 부여하면 사용자가 데이터 세트에서 액세스할 수 있는 테이블을 확인할 수 있습니다. 

열 수준 보안이 GA로 제공될 예정입니다. 현재 베타 버전으로 제공되는 이 기능을 사용하면 세 단계만으로 열 수준에서 데이터 액세스를 제한할 수 있게 됩니다. 

  1. Data Catalog를 사용하여 권장사항에 맞게 데이터에 대한 분류 및 정책 태그를 만들어 관리합니다.

  2. 스키마 주석을 사용하여 액세스를 제어할 각 열에 정책 태그를 할당합니다.

  3. ID 및 액세스 관리(IAM) 정책을 사용하여 각 정책 태그에 대한 액세스를 제한합니다. 정책은 정책 태그에 속한 각 열에 적용됩니다.

Data Catalog 검색에는 열 수준 및 테이블 ACL이 모두 표시됩니다. 

  • 정책 태그 기반 검색을 사용하면 열 수준 ACL로 폴리싱된 특정 데이터를 찾을 수 있습니다.

  • 또한 Data Catalog는 사용자가 액세스할 수 있는 모든 테이블의 색인을 생성합니다(주변 데이터 세트에 액세스 권한이 없는 경우에도 해당). 

테이블 ACL열 수준 보안 관련 문서에서 이러한 새 기능에 대해 자세히 알아보고 Qwiklabs의 Data Catalog를 사용하여 직접 실습해 보세요.   

놓쳤을 수도 있는 콘텐츠:

https://storage.googleapis.com/gweb-cloudblog-publish/images/cloud_UI_console.max-1000x1000.jpg

BigQuery의 새 기능을 계속 확인하려면 출시 노트를 구독하세요. 샌드박스에서 BigQuery를 무료로 사용해 볼 수 있습니다. 도움이 필요하면 알려주세요.

게시 위치