컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

뷰 속성 업데이트

이 문서에서는 뷰 속성 또는 메타데이터를 업데이트하는 방법을 설명합니다. 뷰를 만든 후에 다음과 같은 뷰 속성을 업데이트할 수 있습니다.

시작하기 전에

사용자에게 이 문서의 각 작업을 수행하는 데 필요한 권한을 부여하는 Identity and Access Management(IAM) 역할을 부여합니다.

필수 권한

뷰를 업데이트하려면 다음 IAM 권한이 필요합니다.

  • bigquery.tables.update
  • bigquery.tables.get

다음과 같은 사전 정의된 각 IAM 역할에는 뷰를 업데이트하는 데 필요한 권한이 포함되어 있습니다.

  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.admin

또한 bigquery.datasets.create 권한이 있으면 자신이 만든 데이터 세트의 테이블과 뷰를 업데이트할 수 있습니다.

뷰의 SQL 쿼리를 업데이트하는 경우 뷰의 SQL 쿼리에서 참조하는 모든 테이블을 쿼리할 권한도 필요합니다.

BigQuery의 IAM 역할과 권한에 대한 자세한 내용은 사전 정의된 역할 및 권한을 참조하세요.

뷰의 SQL 쿼리 업데이트

뷰를 정의하는 데 사용되는 SQL 쿼리를 다음과 같은 방법으로 업데이트할 수 있습니다.

  • Google Cloud 콘솔 사용
  • bq 명령줄 도구의 bq update 명령어 사용
  • tables.patch API 메서드 호출
  • 클라이언트 라이브러리 사용

API 또는 bq 명령줄 도구에서 SQL 언어를 legacy SQL에서 Google 표준 SQL로 변경할 수 있습니다. Google Cloud 콘솔에서는 legacy SQL 뷰를 Google 표준 SQL로 업데이트할 수 없습니다.

뷰의 SQL 쿼리를 업데이트하려면 다음 안내를 따르세요.

콘솔

  1. 탐색기 패널에서 프로젝트와 데이터 세트를 펼친 후 뷰를 선택합니다.

  2. 세부정보 탭을 클릭합니다.

  3. 쿼리 상자 위에 있는 쿼리 수정 버튼을 클릭합니다. 나타나는 대화상자에서 열기를 클릭합니다.

    쿼리 수정

  4. 쿼리 편집기 상자에서 SQL 쿼리를 수정한 후 뷰 저장을 클릭합니다.

    뷰 저장

  5. 뷰 저장 대화상자에서 모든 필드가 올바른지 확인한 후 저장을 클릭합니다.

bq

bq update 명령어를 --view 플래그와 함께 실행합니다. Google 표준 SQL을 사용하거나 쿼리 언어를 legacy SQL에서 Google 표준 SQL로 업데이트하려면 --use_legacy_sql 플래그를 포함하여 false로 설정합니다.

쿼리에서 Cloud Storage 또는 로컬 파일에 저장된 외부 사용자 정의 함수 리소스를 참조하는 경우 --view_udf_resource 플래그를 사용하여 해당 리소스를 지정합니다. --view_udf_resource 플래그는 여기서 설명하지 않습니다. UDF 사용에 대한 자세한 내용은 Google 표준 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: 유효한 Google 표준 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 참조 문서를 확인하세요.

import (
	"context"
	"fmt"

	"cloud.google.com/go/bigquery"
)

// updateView demonstrates updating the query metadata that defines a logical view.
func updateView(projectID, datasetID, viewID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// viewID := "myview"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	view := client.Dataset(datasetID).Table(viewID)
	meta, err := view.Metadata(ctx)
	if err != nil {
		return err
	}

	newMeta := bigquery.TableMetadataToUpdate{
		// This example updates a view into the shakespeare dataset to exclude works named after kings.
		ViewQuery: "SELECT word, word_count, corpus, corpus_date FROM `bigquery-public-data.samples.shakespeare` WHERE corpus NOT LIKE '%king%'",
	}

	if _, err := view.Update(ctx, newMeta, meta.ETag); err != nil {
		return err
	}
	return nil
}

자바

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참조 문서를 확인하세요.

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.TableId;
import com.google.cloud.bigquery.TableInfo;
import com.google.cloud.bigquery.ViewDefinition;

// Sample to update query on a view
public class UpdateViewQuery {

  public static void runUpdateViewQuery() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String tableName = "MY_TABLE_NAME";
    String viewName = "MY_VIEW_NAME";
    String updateQuery =
        String.format("SELECT TimestampField, StringField FROM %s.%s", datasetName, tableName);
    updateViewQuery(datasetName, viewName, updateQuery);
  }

  public static void updateViewQuery(String datasetName, String viewName, String query) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      // Retrieve existing view metadata
      TableInfo viewMetadata = bigquery.getTable(TableId.of(datasetName, viewName));

      // Update view query
      ViewDefinition viewDefinition = viewMetadata.getDefinition();
      viewDefinition.toBuilder().setQuery(query).build();

      // Set metadata
      bigquery.update(viewMetadata.toBuilder().setDefinition(viewDefinition).build());

      System.out.println("View query updated successfully");
    } catch (BigQueryException e) {
      System.out.println("View query was not updated. \n" + e.toString());
    }
  }
}

Node.js

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참조 문서를 확인하세요.

// Import the Google Cloud client library and create a client
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function updateViewQuery() {
  // Updates a view named "my_existing_view" in "my_dataset".

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = "my_existing_dataset"
  // const tableId = "my_existing_table"
  const dataset = await bigquery.dataset(datasetId);

  // This example updates a view into the USA names dataset to include state.
  const newViewQuery = `SELECT name, state
  FROM \`bigquery-public-data.usa_names.usa_1910_current\`
  LIMIT 10`;

  // Retrieve existing view
  const [view] = await dataset.table(tableId).get();

  // Retrieve existing view metadata
  const [metadata] = await view.getMetadata();

  // Update view query
  metadata.view = newViewQuery;

  // Set metadata
  await view.setMetadata(metadata);

  console.log(`View ${tableId} updated.`);
}

Python

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참조 문서를 확인하세요.

from google.cloud import bigquery

client = bigquery.Client()

view_id = "my-project.my_dataset.my_view"
source_id = "my-project.my_dataset.my_table"
view = bigquery.Table(view_id)

# The source table in this example is created from a CSV file in Google
# Cloud Storage located at
# `gs://cloud-samples-data/bigquery/us-states/us-states.csv`. It contains
# 50 US states, while the view returns only those states with names
# starting with the letter 'M'.
view.view_query = f"SELECT name, post_abbr FROM `{source_id}` WHERE name LIKE 'M%'"

# Make an API request to update the query property of the view.
view = client.update_table(view, ["view_query"])
print(f"Updated {view.table_type}: {str(view.reference)}")

뷰의 만료 시간 업데이트

데이터 세트 수준에서 기본 테이블 만료 시간을 설정하거나(테이블과 뷰에 모두 영향을 미침) 뷰를 만들 때 뷰의 만료 시간을 설정할 수 있습니다. 뷰를 만들 때 만료 시간을 설정하면 데이터 세트의 기본 테이블 만료 시간은 무시됩니다. 데이터 세트 수준에서 기본 테이블 만료 시간을 설정하지 않고 뷰를 만들 때 만료 시간을 설정하지 않으면 뷰가 만료되지 않으며 수동으로 삭제해야 합니다.

뷰가 생성된 후 언제든지 다음과 같은 방법으로 뷰의 만료 시간을 업데이트할 수 있습니다.

  • Google Cloud 콘솔 사용
  • Google 표준 SQL 구문으로 작성된 데이터 정의 언어(DDL) 문 사용
  • bq 명령줄 도구의 bq update 명령어 사용
  • tables.patch API 메서드 호출
  • 클라이언트 라이브러리 사용

뷰의 만료 시간을 업데이트하려면 다음 안내를 따르세요.

콘솔

  1. 탐색창에서 뷰를 선택합니다.

  2. 뷰 세부정보 페이지에서 세부정보 탭을 클릭합니다.

  3. 뷰 정보 오른쪽의 수정 아이콘(연필)을 클릭합니다.

  4. 뷰 정보 대화상자의 뷰 만료에서 날짜 지정을 클릭합니다.

  5. 날짜 선택도구에서 만료 날짜 및 시간을 입력한 다음 확인을 클릭합니다.

  6. 업데이트를 클릭합니다. 업데이트된 만료 시간이 뷰 정보 섹션에 나타납니다.

SQL

데이터 정의 언어(DDL) 문을 사용하면 Google 표준 SQL 쿼리 구문으로 테이블과 뷰를 만들고 수정할 수 있습니다.

자세한 내용은 데이터 정의 언어 문 사용을 참조하세요.

뷰의 만료 시간을 업데이트하려면 DDL 문을 사용합니다.

  1. Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 쿼리 편집기에서 다음 문을 입력합니다.

     ALTER VIEW DATASET_ID.MY_VIEW
     SET OPTIONS (
      expiration_timestamp = TIMESTAMP('NEW_TIMESTAMP'));
    

    다음을 바꿉니다.

    • DATASET_ID: 뷰가 포함된 데이터 세트의 ID입니다.
    • MY_VIEW: 업데이트할 뷰의 이름입니다.
    • NEW_TIMESTAMP: TIMESTAMP 값입니다.

  3. 실행을 클릭합니다.

쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.

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: 업데이트할 뷰의 이름입니다.

예시

mydatasetmyview 만료 시간을 5일(432,000초)로 업데이트하려면 다음 명령어를 입력합니다. 여기서 mydataset는 기본 프로젝트에 있습니다.

bq update \
    --expiration 432000 \
    mydataset.myview

mydatasetmyview 만료 시간을 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 참조 문서를 확인하세요.

import (
	"context"
	"fmt"
	"time"

	"cloud.google.com/go/bigquery"
)

// updateTableExpiration demonstrates setting the table expiration of a table to a specific point in time
// in the future, at which time it will be deleted.
func updateTableExpiration(projectID, datasetID, tableID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// tableID := "mytable"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	tableRef := client.Dataset(datasetID).Table(tableID)
	meta, err := tableRef.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.TableMetadataToUpdate{
		ExpirationTime: time.Now().Add(time.Duration(5*24) * time.Hour), // table expiration in 5 days.
	}
	if _, err = tableRef.Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

자바

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참조 문서를 확인하세요.

Table beforeTable = bigquery.getTable(datasetName, tableName);

// Set table to expire 5 days from now.
long expirationMillis = DateTime.now().plusDays(5).getMillis();
TableInfo tableInfo = beforeTable.toBuilder()
        .setExpirationTime(expirationMillis)
        .build();
Table afterTable = bigquery.update(tableInfo);

Node.js

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참조 문서를 확인하세요.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function updateTableExpiration() {
  // Updates a table's expiration.

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = 'my_dataset', // Existing dataset
  // const tableId = 'my_table', // Existing table
  // const expirationTime = Date.now() + 1000 * 60 * 60 * 24 * 5 // 5 days from current time in ms

  // Retreive current table metadata
  const table = bigquery.dataset(datasetId).table(tableId);
  const [metadata] = await table.getMetadata();

  // Set new table expiration to 5 days from current time
  metadata.expirationTime = expirationTime.toString();
  const [apiResponse] = await table.setMetadata(metadata);

  const newExpirationTime = apiResponse.expirationTime;
  console.log(`${tableId} expiration: ${newExpirationTime}`);
}

Python

뷰의 만료 시간을 업데이트하려면 테이블의 만료 시간을 업데이트하는 것과 동일한 프로세스를 사용하면 됩니다.

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참조 문서를 확인하세요.

import datetime
import pytz

# from google.cloud import bigquery
# client = bigquery.Client()
# project = client.project
# dataset_ref = bigquery.DatasetReference(project, dataset_id)
# table_ref = dataset_ref.table('my_table')
# table = client.get_table(table_ref)  # API request

assert table.expires is None

# set table to expire 5 days from now
expiration = datetime.datetime.now(pytz.utc) + datetime.timedelta(days=5)
table.expires = expiration
table = client.update_table(table, ["expires"])  # API request

# expiration is stored in milliseconds
margin = datetime.timedelta(microseconds=1000)
assert expiration - margin <= table.expires <= expiration + margin

뷰의 설명 업데이트

다음과 같은 방법으로 뷰의 설명을 업데이트할 수 있습니다.

  • Google Cloud 콘솔 사용
  • Google 표준 SQL 구문으로 작성된 데이터 정의 언어(DDL) 문 사용
  • bq 명령줄 도구의 bq update 명령어 사용
  • tables.patch API 메서드 호출
  • 클라이언트 라이브러리 사용

뷰 설명을 업데이트하려면 다음 안내를 따르세요.

콘솔

Google Cloud 콘솔을 사용하여 뷰를 만들 때는 설명을 추가할 수 없습니다. 뷰가 생성된 후 세부정보 페이지에서 설명을 추가할 수 있습니다.

  1. 탐색기 패널에서 프로젝트와 데이터 세트를 펼친 후 뷰를 선택합니다.

  2. 세부정보 탭을 클릭합니다.

  3. 설명 옆에 있는 연필 아이콘을 클릭합니다.

    뷰 설명 수정

  4. 대화상자에 설명을 입력합니다. 업데이트를 클릭하여 새 설명을 저장합니다.

SQL

데이터 정의 언어(DDL) 문을 사용하면 Google 표준 SQL 쿼리 구문으로 테이블과 뷰를 만들고 수정할 수 있습니다.

자세한 내용은 데이터 정의 언어 문 사용을 참조하세요.

뷰 설명을 업데이트하려면 DDL 문을 사용합니다.

  1. Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 쿼리 편집기에서 다음 문을 입력합니다.

     ALTER VIEW DATASET_ID.MY_VIEW
     SET OPTIONS (
      description = 'NEW_DESCRIPTION');
    

    다음을 바꿉니다.

    • DATASET_ID: 뷰가 포함된 데이터 세트의 ID입니다.
    • MY_VIEW: 업데이트할 뷰의 이름입니다.
    • NEW_DESCRIPTION: 새 뷰 설명입니다.

  3. 실행을 클릭합니다.

쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.

bq

bq update 명령어를 --description 플래그와 함께 실행합니다. 기본 프로젝트가 아닌 다른 프로젝트의 뷰를 업데이트하려면 해당 프로젝트 ID를 [PROJECT_ID]:[DATASET] 형식으로 데이터세트 이름에 추가합니다.

bq update \
    --description "description" \
    project_id:dataset.view

다음을 바꿉니다.

  • description: 따옴표 안의 뷰를 설명하는 텍스트입니다.
  • project_id: 프로젝트 ID입니다.
  • dataset: 업데이트할 뷰가 포함된 데이터 세트의 이름입니다.
  • view: 업데이트할 뷰의 이름입니다.

예시

mydatasetmyview 설명을 'Description of myview'로 변경하려면 다음 명령어를 입력합니다. 여기서 mydataset는 기본 프로젝트에 있습니다.

bq update \
    --description "Description of myview" \
    mydataset.myview

mydatasetmyview 설명을 '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 참조 문서를 확인하세요.

import (
	"context"
	"fmt"

	"cloud.google.com/go/bigquery"
)

// updateTableDescription demonstrates how to fetch a table's metadata and updates the Description metadata.
func updateTableDescription(projectID, datasetID, tableID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// tableID := "mytable"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	tableRef := client.Dataset(datasetID).Table(tableID)
	meta, err := tableRef.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.TableMetadataToUpdate{
		Description: "Updated description.",
	}
	if _, err = tableRef.Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

자바

뷰의 설명을 업데이트하려면 테이블의 설명을 업데이트하는 것과 동일한 프로세스를 사용하면 됩니다.

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참조 문서를 확인하세요.

// String datasetName = "my_dataset_name";
// String tableName = "my_table_name";
// String newDescription = "new_description";

Table beforeTable = bigquery.getTable(datasetName, tableName);
TableInfo tableInfo = beforeTable.toBuilder()
    .setDescription(newDescription)
    .build();
Table afterTable = bigquery.update(tableInfo);

Node.js

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참조 문서를 확인하세요.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function updateTableDescription() {
  // Updates a table's description.

  // Retreive current table metadata
  const table = bigquery.dataset(datasetId).table(tableId);
  const [metadata] = await table.getMetadata();

  // Set new table description
  const description = 'New table description.';
  metadata.description = description;
  const [apiResponse] = await table.setMetadata(metadata);
  const newDescription = apiResponse.description;

  console.log(`${tableId} description: ${newDescription}`);
}

Python

뷰의 설명을 업데이트하려면 테이블의 설명을 업데이트하는 것과 동일한 프로세스를 사용하면 됩니다.

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참조 문서를 확인하세요.

# from google.cloud import bigquery
# client = bigquery.Client()
# project = client.project
# dataset_ref = bigquery.DatasetReference(project, dataset_id)
# table_ref = dataset_ref.table('my_table')
# table = client.get_table(table_ref)  # API request

assert table.description == "Original description."
table.description = "Updated description."

table = client.update_table(table, ["description"])  # API request

assert table.description == "Updated description."

뷰 보안

BigQuery에서 뷰에 대한 액세스를 제어하려면 승인된 뷰를 참조하세요.

다음 단계

  • 뷰 복사와 뷰 삭제를 포함한 뷰 관리에 대한 자세한 내용은 뷰 관리를 참조하세요.
  • 뷰 만들기에 대한 자세한 내용은 뷰 만들기를 참조하세요.
  • 승인된 뷰 만들기에 대한 자세한 내용은 승인된 뷰 만들기를 참조하세요.
  • 뷰 나열에 대한 자세한 내용은 뷰 나열을 참조하세요.
  • 뷰 메타데이터 가져오기에 대한 자세한 내용은 뷰 정보 가져오기를 참조하세요.