이 문서에서는 뷰 속성 또는 메타데이터를 업데이트하는 방법을 설명합니다. 뷰를 만든 후에 다음과 같은 뷰 속성을 업데이트할 수 있습니다.
필수 권한
뷰를 업데이트하려면 최소한 bigquery.tables.update
및 bigquery.tables.get
권한이 부여되어 있어야 합니다. 뷰의 SQL 쿼리를 업데이트하는 경우 뷰의 SQL 쿼리에서 참조하는 모든 테이블을 쿼리할 권한도 필요합니다.
다음과 같은 사전 정의된 IAM 역할에는 bigquery.tables.update
및 bigquery.tables.get
권한이 포함되어 있습니다.
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
또한 bigquery.datasets.create
권한이 있는 사용자는 데이터 세트를 만들 때 해당 데이터 세트에 대한 bigquery.dataOwner
액세스 권한을 부여받습니다.
bigquery.dataOwner
액세스 권한이 있으면 사용자가 데이터세트에서 테이블과 뷰를 업데이트할 수 있습니다.
BigQuery의 IAM 역할 및 권한에 대한 자세한 내용은 사전 정의된 역할 및 권한을 참조하세요.
뷰의 SQL 쿼리 업데이트
뷰를 정의하는 데 사용되는 SQL 쿼리를 다음과 같은 방법으로 업데이트할 수 있습니다.
- Cloud Console 사용
bq
명령줄 도구의bq update
명령어 사용tables.patch
API 메서드 호출- 클라이언트 라이브러리 사용
API 또는 bq
명령줄 도구에서 SQL 언어를 legacy SQL에서 표준 SQL로 변경할 수 있습니다. Cloud Console에서는 legacy SQL 뷰를 표준 SQL로 업데이트할 수 없습니다.
뷰의 SQL 쿼리를 업데이트하려면 다음 안내를 따르세요.
Console
리소스 패널에서 프로젝트와 데이터세트를 확장하고 뷰를 선택합니다.
세부정보 탭을 클릭합니다.
쿼리 상자 위에 있는 쿼리 수정 버튼을 클릭합니다. 나타나는 대화상자에서 열기를 클릭합니다.
쿼리 편집기 상자에서 SQL 쿼리를 수정한 후 뷰 저장을 클릭합니다.
뷰 저장 대화상자에서 모든 필드가 올바른지 확인한 후 저장을 클릭합니다.
bq
bq update
명령어를 --view
플래그와 함께 실행합니다. 표준 SQL을 사용하거나 쿼리 언어를 legacy SQL에서 표준 SQL로 업데이트하려면 --use_legacy_sql
플래그를 포함하여 false
로 설정합니다.
쿼리에서 Cloud Storage 또는 로컬 파일에 저장된 외부 사용자 정의 함수 리소스를 참조하는 경우 --view_udf_resource
플래그를 사용하여 해당 리소스를 지정합니다. --view_udf_resource
플래그는 여기서 설명하지 않습니다. UDF 사용에 대한 자세한 내용은 표준 SQL 사용자 정의 함수를 참조하세요.
기본 프로젝트가 아닌 다른 프로젝트의 뷰를 업데이트하려면 해당 프로젝트 ID를 project_id:dataset
형식으로 데이터세트 이름에 추가합니다.
bq update \ --use_legacy_sql=false \ --view_udf_resource=path_to_file \ --view='query' \ project_id:dataset.view
각 항목의 의미는 다음과 같습니다.
- path_to_file은 뷰에 사용되는 사용자 정의 함수 리소스이며, 바로 로드 및 평가될 코드 파일의 URI 또는 로컬 파일 시스템 경로입니다. 여러 파일을 지정하려면 플래그를 반복합니다.
- query는 유효한 표준 SQL 쿼리입니다.
- project_id는 프로젝트 ID입니다.
- dataset는 뷰가 포함된 데이터세트입니다.
- view는 업데이트하려는 뷰의 이름입니다.
예를 들면 다음과 같습니다.
다음 명령어를 입력하여 mydataset
에서 myview
라는 뷰에 대한 SQL 쿼리를 업데이트합니다. 여기서 mydataset
는 기본 프로젝트에 있습니다. 뷰를 업데이트하는 데 사용되는 쿼리 예시는 미국 이름 데이터 공개 데이터세트의 데이터를 쿼리합니다.
bq update \
--use_legacy_sql=false \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
mydataset.myview
다음 명령어를 입력하여 mydataset
에서 myview
라는 뷰에 대한 SQL 쿼리를 업데이트합니다. mydataset
는 기본 프로젝트가 아닌 myotherproject
에 있습니다. 뷰를 업데이트하는 데 사용되는 쿼리 예시는 미국 이름 데이터 공개 데이터세트의 데이터를 쿼리합니다.
bq update \
--use_legacy_sql=false \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
myotherproject:mydataset.myview
API
업데이트된 view
속성을 포함하는 테이블 리소스로 tables.patch
메서드를 호출하여 뷰를 업데이트할 수 있습니다. tables.update
메서드는 전체 테이블 리소스를 대체하므로 tables.patch
메서드를 사용하는 것이 좋습니다.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참조 문서를 확인하세요.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 자바 설정 안내를 따르세요. 자세한 내용은 BigQuery 자바 API 참조 문서를 확인하세요.
Node.js
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참조 문서를 확인하세요.
Python
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참조 문서를 확인하세요.
뷰의 만료 시간 업데이트
데이터세트 수준에서 기본 테이블 만료 시간을 설정하거나(테이블과 뷰에 모두 영향을 미침) 뷰를 만들 때 뷰의 만료 시간을 설정할 수 있습니다. 뷰를 만들 때 만료 시간을 설정하면 데이터세트의 기본 테이블 만료 시간은 무시됩니다. 데이터세트 수준에서 기본 테이블 만료 시간을 설정하지 않고 뷰를 만들 때 만료 시간을 설정하지 않으면 뷰가 만료되지 않으며 수동으로 삭제해야 합니다.
뷰가 생성된 후 언제든지 다음과 같은 방법으로 뷰의 만료 시간을 업데이트할 수 있습니다.
bq
명령줄 도구의bq update
명령어 사용tables.patch
API 메서드 호출- 클라이언트 라이브러리 사용
뷰의 만료 시간을 업데이트하려면 다음 안내를 따르세요.
Console
탐색창에서 뷰를 선택합니다.
뷰 세부정보 페이지에서 세부정보 탭을 클릭합니다.
뷰 정보 오른쪽의 수정 아이콘(연필)을 클릭합니다.
뷰 정보 대화상자의 뷰 만료에서 날짜 지정을 클릭합니다.
날짜 선택도구에서 만료 날짜 및 시간을 입력한 다음 확인을 클릭합니다.
업데이트를 클릭합니다. 업데이트된 만료 시간이 뷰 정보 섹션에 나타납니다.
SQL
데이터 정의 언어(DDL) 문을 사용하면 표준 SQL 쿼리 구문으로 테이블과 뷰를 만들고 수정할 수 있습니다.
자세한 내용은 데이터 정의 언어 문 사용을 참조하세요.
Cloud Console에서 DDL 문을 사용하려면 다음 안내를 따르세요.
새 쿼리 작성을 클릭합니다.
쿼리 편집기 텍스트 영역에 DDL 문을 입력합니다.
ALTER VIEW mydataset.myview SET OPTIONS ( -- Sets view expiration to timestamp 2025-02-03 12:34:56 in the America/Los Angeles time zone expiration_timestamp=TIMESTAMP("2025-02-03 12:34:56", "America/Los Angeles") );
쿼리 실행을 클릭합니다.
bq
bq update
명령어를 --expiration
플래그와 함께 실행합니다. 기본 프로젝트가 아닌 다른 프로젝트의 뷰를 업데이트하려면 해당 프로젝트 ID를 project_id:dataset
형식으로 데이터세트 이름에 추가합니다.
bq update \ --expiration integer \ project_id:dataset.view
각 항목의 의미는 다음과 같습니다.
- integer은 테이블의 기본 수명(단위: 초)입니다. 최솟값은 3,600초(1시간)입니다. 만료 시간은 현재 시간과 정수 값을 더한 값으로 계산됩니다.
- project_id는 프로젝트 ID입니다.
- dataset는 업데이트할 뷰가 포함된 데이터세트의 이름입니다.
- view는 업데이트할 뷰의 이름입니다.
예를 들면 다음과 같습니다.
mydataset
의 myview
만료 시간을 5일(432,000초)로 업데이트하려면 다음 명령어를 입력합니다. 여기서 mydataset
는 기본 프로젝트에 있습니다.
bq update --expiration 432000 mydataset.myview
mydataset
의 myview
만료 시간을 5일(432,000초)로 업데이트하려면 다음 명령어를 입력합니다. mydataset
는 기본 프로젝트가 아닌 myotherproject
에 있습니다.
bq update --expiration 432000 myotherproject:mydataset.myview
API
tables.patch
메서드를 호출하고 테이블 리소스에서 expirationTime
속성을 사용합니다. tables.update
메서드는 전체 테이블 리소스를 대체하므로 tables.patch
메서드를 사용하는 것이 좋습니다. REST API를 사용하는 경우 뷰의 만료 시간이 밀리초 단위로 표시됩니다.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참조 문서를 확인하세요.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 자바 설정 안내를 따르세요. 자세한 내용은 BigQuery 자바 API 참조 문서를 확인하세요.
Node.js
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참조 문서를 확인하세요.
Python
뷰의 만료 시간을 업데이트하려면 테이블의 만료 시간을 업데이트하는 것과 동일한 프로세스를 사용하면 됩니다.
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참조 문서를 확인하세요.
뷰의 설명 업데이트
다음과 같은 방법으로 뷰의 설명을 업데이트할 수 있습니다.
- Cloud Console 사용
bq
명령줄 도구의bq update
명령어 사용tables.patch
API 메서드 호출- 클라이언트 라이브러리 사용
뷰 설명을 업데이트하려면 다음 안내를 따르세요.
Console
Cloud Console을 사용하여 뷰를 만들 때는 설명을 추가할 수 없습니다. 뷰가 생성된 후 세부정보 페이지에서 설명을 추가할 수 있습니다.
리소스 목록에서 뷰를 선택합니다.
세부정보 탭을 클릭합니다.
설명 옆에 있는 연필 아이콘을 클릭합니다.
대화상자에 설명을 입력합니다. 업데이트를 클릭하여 새 설명을 저장합니다.
SQL
데이터 정의 언어(DDL) 문을 사용하면 표준 SQL 쿼리 구문으로 테이블과 뷰를 만들고 수정할 수 있습니다.
자세한 내용은 데이터 정의 언어 문 사용을 참조하세요.
Cloud Console에서 DDL 문을 사용하려면 다음 안내를 따르세요.
새 쿼리 작성을 클릭합니다.
쿼리 편집기 텍스트 영역에 DDL 문을 입력합니다.
ALTER VIEW mydataset.myview SET OPTIONS ( description="Description of myview" );
쿼리 실행을 클릭합니다.
bq
bq update
명령어를 --description
플래그와 함께 실행합니다. 기본 프로젝트가 아닌 다른 프로젝트의 뷰를 업데이트하려면 해당 프로젝트 ID를 [PROJECT_ID]:[DATASET]
형식으로 데이터세트 이름에 추가합니다.
bq update \ --description "description" \ project_id:dataset.view
각 항목의 의미는 다음과 같습니다.
- description은 따옴표 안의 뷰를 설명하는 텍스트입니다.
- project_id는 프로젝트 ID입니다.
- dataset는 업데이트할 뷰가 포함된 데이터세트의 이름입니다.
- view는 업데이트할 뷰의 이름입니다.
예를 들면 다음과 같습니다.
mydataset
의 myview
설명을 'Description of myview'로 변경하려면 다음 명령어를 입력합니다. 여기서 mydataset
는 기본 프로젝트에 있습니다.
bq update --description "Description of myview" mydataset.myview
mydataset
의 myview
설명을 'Description of myview'로 변경하려면 다음 명령어를 입력합니다. mydataset
는 기본 프로젝트가 아닌 myotherproject
에 있습니다.
bq update \
--description "Description of myview" \
myotherproject:mydataset.myview
API
tables.patch
메서드를 호출하고 description
속성을 사용하여 테이블 리소스에서 뷰의 설명을 업데이트합니다. tables.update
메서드는 전체 테이블 리소스를 대체하므로 tables.patch
메서드를 사용하는 것이 좋습니다.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참조 문서를 확인하세요.
자바
뷰의 설명을 업데이트하려면 테이블의 설명을 업데이트하는 것과 동일한 프로세스를 사용하면 됩니다.
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 자바 설정 안내를 따르세요. 자세한 내용은 BigQuery 자바 API 참조 문서를 확인하세요.
Node.js
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참조 문서를 확인하세요.
Python
뷰의 설명을 업데이트하려면 테이블의 설명을 업데이트하는 것과 동일한 프로세스를 사용하면 됩니다.
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참조 문서를 확인하세요.
다음 단계
- 뷰 복사와 뷰 삭제를 포함한 뷰 관리에 대한 자세한 내용은 뷰 관리를 참조하세요.
- 뷰 만들기에 대한 자세한 내용은 뷰 만들기를 참조하세요.
- 승인된 뷰 만들기에 대한 자세한 내용은 승인된 뷰 만들기를 참조하세요.
- 뷰 나열에 대한 자세한 내용은 뷰 나열을 참조하세요.
- 뷰 메타데이터 가져오기에 대한 자세한 내용은 뷰 정보 가져오기를 참조하세요.