데이터 세트 만들기
이 문서에서는 BigQuery에서 데이터 세트를 만드는 방법을 설명합니다.
다음 방법으로 데이터 세트를 만들 수 있습니다.
- 콘솔 사용
- SQL 쿼리 사용
bq
명령줄 도구에서bq mk
명령어 사용datasets.insert
API 메서드 호출- 클라이언트 라이브러리 사용
- 기존 데이터 세트 복사
리전 간 복사를 비롯해 데이터 세트를 복사하는 단계를 알아보려면 데이터 세트 복사를 참조하세요.
공개 데이터 세트의 테이블을 쿼리하는 방법을 알아보려면 Google Cloud 콘솔로 공개 데이터 세트 쿼리를 참조하세요.
데이터 세트 제한사항
BigQuery 데이터 세트에는 다음과 같은 제한사항이 적용됩니다.
- 지리적 위치는 데이터세트를 만들 때에만 설정할 수 있습니다. 데이터 세트를 만든 후에는 위치가 고정되어 콘솔을 사용하거나
bq
명령줄 도구를 사용하거나patch
또는update
API 메서드를 호출하는 것으로 바뀔 수 없습니다. 쿼리에서 참조하는 모든 테이블은 같은 위치의 데이터 세트에 저장해야 합니다.
테이블을 복사할 때 소스 테이블과 대상 테이블을 포함하는 데이터 세트는 같은 위치에 있어야 합니다.
프로젝트마다 데이터 세트 이름이 달라야 합니다.
시작하기 전에
사용자에게 이 문서의 각 작업을 수행하는 데 필요한 권한을 부여하는 Identity and Access Management(IAM) 역할을 부여합니다.
필수 권한
데이터 세트를 만들려면 bigquery.datasets.create
IAM 권한이 필요합니다.
다음과 같은 사전 정의된 각 IAM 역할에는 데이터 세트를 만드는 데 필요한 권한이 포함되어 있습니다.
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.user
roles/bigquery.admin
BigQuery에서 IAM 역할에 대한 자세한 내용은 사전 정의된 역할 및 권한을 참조하세요.
데이터 세트 이름 지정
BigQuery에서 데이터 세트를 만들 때 데이터 세트 이름은 프로젝트마다 고유해야 합니다. 데이터 세트 이름은 다음을 포함할 수 있습니다.
- 최대 1,024자(영문 기준)
문자(대문자 또는 소문자), 숫자, 밑줄
데이터 세트 이름은 대소문자를 구분합니다. 예를 들어 mydataset
와 MyDataset
가 같은 프로젝트에 함께 있을 수 있습니다.
데이터 세트 이름에는 -
, &
, @
, %
와 같은 공백이나 특수문자를 사용할 수 없습니다.
데이터 세트 만들기
데이터 세트를 만들려면 다음 안내를 따르세요.
콘솔
콘솔에서 BigQuery 페이지를 엽니다.
탐색기 패널에서 데이터 세트를 만들 프로젝트를 선택합니다.
작업 옵션을 펼치고 데이터 세트 만들기를 클릭합니다.
데이터 세트 만들기 페이지에서 다음을 수행합니다.
- 데이터 세트 ID에 고유한 데이터 세트 이름을 입력합니다.
데이터 위치에서 데이터 세트의 지리적 위치를 선택합니다. 데이터 세트가 생성된 후에는 위치를 변경할 수 없습니다.
기본 테이블 만료 시간에서 다음 옵션 중 하나를 선택합니다.
- 사용 안 함: (기본값) 데이터 세트에 생성된 테이블이 자동으로 삭제되지 않습니다. 수동으로 삭제해야 합니다.
테이블 생성 후 경과 일수: 이 값은 데이터 세트에서 새로 만든 테이블이 삭제되는 시기를 결정합니다. 테이블이 생성될 때 테이블 만료 시간을 설정하지 않은 경우에 이 값이 적용됩니다.
데이터 세트 만들기를 클릭합니다.
SQL
CREATE SCHEMA
문을 사용합니다.
기본 프로젝트가 아닌 다른 프로젝트에서 데이터 세트를 만들려면 해당 프로젝트 ID를 PROJECT_ID.DATASET_ID
형식으로 데이터 세트 ID에 추가합니다.
콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 입력합니다.
CREATE SCHEMA PROJECT_ID.DATASET_ID OPTIONS ( default_kms_key_name = 'KMS_KEY_NAME', default_partition_expiration_days = PARTITION_EXPIRATION, default_table_expiration_days = TABLE_EXPIRATION, description = 'DESCRIPTION', labels = [('LABEL_1','VALUE_1'),('LABEL_2','VALUE_2')], max_time_travel_hours = HOURS);
다음을 바꿉니다.
PROJECT_ID
: 프로젝트 IDDATASET_ID
: 사용자가 만들려는 데이터 세트 IDKMS_KEY_NAME
: 이 데이터 세트에서 새로 생성된 테이블을 보호하는 데 사용되는 기본 Cloud Key Management Service 키의 이름. 생성 시 다른 키가 제공되면 그 이름을 사용합니다. 이 매개변수를 설정하여 데이터 세트에 Google 암호화 테이블을 만들 수 없습니다.PARTITION_EXPIRATION
: 새로 생성된 파티션을 나눈 테이블의 파티션 기본 수명(초). 기본 파티션 만료 시간에는 최솟값이 없습니다. 만료 시간은 파티션의 날짜와 정수 값을 더한 값입니다. 데이터 세트의 파티션을 나눈 테이블에서 생성된 모든 파티션은 파티션 날짜로부터PARTITION_EXPIRATION
초 후에 삭제됩니다. 파티션을 나눈 테이블을 만들거나 업데이트할 때time_partitioning_expiration
옵션을 지정하면 테이블 수준의 파티션 만료 시간이 데이터 세트 수준의 기본 파티션 만료 시간보다 우선 적용됩니다.TABLE_EXPIRATION
: 새로 생성된 테이블의 기본 수명(초). 최솟값은 3,600초(1시간)입니다. 만료 시간은 현재 시간과 정수 값을 더한 값으로 계산됩니다. 데이터 세트에서 생성된 모든 테이블은 생성 시간TABLE_EXPIRATION
초 후에 삭제됩니다. 테이블을 만들 때 테이블 만료 시간을 설정하지 않으면 이 값이 적용됩니다.DESCRIPTION
: 데이터 세트에 대한 설명LABEL_1:VALUE_1
: 이 데이터 세트의 첫 번째 라벨로 설정하려는 키-값 쌍LABEL_2:VALUE_2
: 두 번째 라벨로 설정할 키-값 쌍HOURS
: 새 데이터 세트의 시간 이동 창의 시간 지정. 시간 이동 창을 구성하는 기능은 미리보기에 있습니다.hours
필드는 48~168 사이의 값이어야 합니다. 지정되지 않은 경우 기본값은 168입니다.
실행을 클릭합니다.
쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.
bq
새 데이터 세트를 만들려면 --location
플래그와 함께 bq mk
명령어를 실행합니다.
기본 프로젝트가 아닌 다른 프로젝트에서 데이터 세트를 만들려면 해당 프로젝트 ID를 PROJECT_ID:DATASET_ID
형식으로 데이터 세트 이름에 추가합니다.
bq --location=LOCATION mk \ --dataset \ --default_kms_key=KMS_KEY_NAME \ --default_partition_expiration=PARTITION_EXPIRATION \ --default_table_expiration=TABLE_EXPIRATION \ --description="DESCRIPTION" \ --label=LABEL_1:VALUE_1 \ --label=LABEL_2:VALUE_2 \ --max_time_travel_hours=HOURS \ PROJECT_ID:DATASET_ID
다음을 바꿉니다.
LOCATION
: 데이터 세트의 위치. 데이터 세트가 생성된 후에는 위치를 변경할 수 없습니다..bigqueryrc
파일을 사용하여 위치 기본값을 설정할 수 있습니다.KMS_KEY_NAME
: 이 데이터 세트에서 새로 생성된 테이블을 보호하는 데 사용되는 기본 Cloud Key Management Service 키의 이름. 생성 시 다른 키가 제공되면 그 이름을 사용합니다. 이 매개변수를 설정하여 데이터 세트에 Google 암호화 테이블을 만들 수 없습니다.PARTITION_EXPIRATION
: 새로 생성된 파티션을 나눈 테이블의 파티션 기본 수명(초). 기본 파티션 만료 시간에는 최솟값이 없습니다. 만료 시간은 파티션의 날짜와 정수 값을 더한 값입니다. 데이터 세트의 파티션을 나눈 테이블에서 생성된 모든 파티션은 파티션 날짜로부터PARTITION_EXPIRATION
초 후에 삭제됩니다. 파티션을 나눈 테이블을 만들거나 업데이트할 때--time_partitioning_expiration
플래그를 지정하면 테이블 수준의 파티션 만료 시간이 데이터 세트 수준의 기본 파티션 만료보다 우선 적용됩니다.TABLE_EXPIRATION
: 새로 생성된 테이블의 기본 수명(초). 최솟값은 3,600초(1시간)입니다. 만료 시간은 현재 시간과 정수 값을 더한 값으로 계산됩니다. 데이터 세트에서 생성된 모든 테이블은 생성 시간TABLE_EXPIRATION
초 후에 삭제됩니다. 테이블을 만들 때 테이블 만료 시간을 설정하지 않으면 이 값이 적용됩니다.DESCRIPTION
: 데이터 세트에 대한 설명LABEL_1:VALUE_1
: 이 데이터 세트의 첫 번째 라벨로 설정하려는 키-값 쌍.LABEL_2:VALUE_2
는 두 번째 라벨로 설정하려는 키-값 쌍입니다.HOURS
: 새 데이터 세트의 시간 이동 창의 시간 지정. 시간 이동 창을 구성하는 기능은 미리보기에 있습니다.HOURS
필드는 48~168 사이의 값이어야 합니다. 지정되지 않은 경우 기본값은 168입니다.PROJECT_ID
: 프로젝트 IDDATASET_ID
: 사용자가 만들려는 데이터 세트 ID
예를 들어 다음 명령어를 실행하면 데이터 위치가 US
, 기본 테이블 만료 시간이 3,600초(1시간), 설명이 This is my dataset
로 설정되고 이름이 mydataset
인 데이터 세트가 생성됩니다. --dataset
플래그를 사용하는 대신 이 명령어는 -d
단축키를 사용합니다. -d
와 --dataset
를 생략할 경우 이 명령어는 기본적으로 데이터 세트를 만듭니다.
bq --location=US mk -d \ --default_table_expiration 3600 \ --description "This is my dataset." \ mydataset
데이터 세트가 생성되었는지 확인하려면 bq ls
명령어를 입력합니다. 또한 bq mk -t dataset.table
형식을 사용하여 새 데이터 세트를 만들 때 테이블을 만들 수 있습니다.
테이블 만들기에 대한 자세한 내용은 테이블 만들기를 참조하세요.
API
데이터 세트 리소스가 정의된 datasets.insert
메서드를 호출합니다.
C#
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 C# 설정 안내를 따르세요. 자세한 내용은 BigQuery C# API 참조 문서를 확인하세요.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참조 문서를 확인하세요.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 자바 설정 안내를 따르세요. 자세한 내용은 BigQuery 자바 API 참조 문서를 확인하세요.
Node.js
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참조 문서를 확인하세요.
PHP
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 PHP 설정 안내를 따르세요. 자세한 내용은 BigQuery PHP API 참조 문서를 참조하세요.
Python
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참조 문서를 확인하세요.
Ruby
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Ruby 설정 안내를 따르세요. 자세한 내용은 BigQuery Ruby API 참조 문서를 확인하세요.
데이터 세트 보안
BigQuery에서 데이터 세트에 대한 액세스를 제어하려면 데이터 세트에 대한 액세스 제어를 참조하세요. 데이터 암호화에 대한 자세한 내용은 저장 데이터 암호화를 참조하세요.
다음 단계
- 프로젝트의 데이터 세트 나열에 대한 자세한 내용은 데이터 세트 나열을 참조하세요.
- 데이터 세트 메타데이터에 대한 자세한 내용은 데이터 세트 정보 가져오기를 참조하세요.
- 데이터 세트 속성 변경에 대한 자세한 내용은 데이터 세트 업데이트를 참조하세요.
- 라벨 만들기 및 관리에 대한 자세한 내용은 라벨 만들기 및 관리를 참조하세요.
직접 사용해 보기
Google Cloud를 처음 사용하는 경우 계정을 만들어 실제 시나리오에서 BigQuery의 성능을 평가할 수 있습니다. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
BigQuery 무료로 사용해 보기