TABLE_OPTIONS 뷰
INFORMATION_SCHEMA.TABLE_OPTIONS
뷰에는 데이터 세트의 각 테이블 또는 뷰당 각 옵션당 하나의 행이 포함됩니다. TABLES
및 TABLE_OPTIONS
뷰에는 뷰에 대한 대략적인 정보도 포함되어 있습니다.
자세한 정보를 보려면 INFORMATION_SCHEMA.VIEWS
뷰를 쿼리하세요.
필수 권한
INFORMATION_SCHEMA.TABLE_OPTIONS
뷰를 쿼리하려면 다음 Identity and Access Management(IAM) 권한이 필요합니다.
bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
다음과 같이 사전 정의된 각 IAM 역할에는 위의 권한이 포함되어 있습니다.
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
BigQuery 권한에 대한 자세한 내용은 IAM으로 액세스 제어를 참조하세요.
스키마
INFORMATION_SCHEMA.TABLE_OPTIONS
뷰를 쿼리하면 쿼리 결과에 데이터 세트의 각 테이블이나 뷰의 옵션마다 행 하나가 포함됩니다. 뷰에 대한 자세한 내용을 확인하려면 대신 INFORMATION_SCHEMA.VIEWS
뷰를 쿼리하세요.
INFORMATION_SCHEMA.TABLE_OPTIONS
뷰에는 다음과 같은 스키마가 있습니다.
열 이름 | 데이터 유형 | 값 |
---|---|---|
TABLE_CATALOG |
STRING |
데이터 세트가 포함된 프로젝트의 프로젝트 ID |
TABLE_SCHEMA |
STRING |
테이블이나 뷰가 포함된 데이터 세트 이름(또는 datasetId 라고 함) |
TABLE_NAME |
STRING |
테이블 또는 뷰의 이름(또는 tableId 라고 함) |
OPTION_NAME |
STRING |
옵션 표의 이름 값 중 하나 |
OPTION_TYPE |
STRING |
옵션 표의 데이터 유형 값 중 하나 |
OPTION_VALUE |
STRING |
옵션 표의 값 옵션 중 하나 |
옵션 표
|
|
|
---|---|---|
|
|
테이블 설명 |
|
|
구체화된 뷰에 자동 새로고침이 사용 설정되었는지 여부 |
|
|
이 테이블이 만료되는 시간 |
|
|
테이블을 설명하는 이름 |
|
|
테이블을 암호화하는 데 사용된 Cloud KMS 키의 이름 |
|
|
테이블의 라벨을 나타내는 STRUCT 배열 |
|
|
구성된 테이블의 BigQuery 변경 데이터 캡처 (CDC) 업서트의 최대 지연 시간 |
|
|
파티션을 나눈 테이블의 모든 파티션 기본 수명(일) |
|
|
구체화된 뷰가 새로고침되는 빈도 |
|
|
테이블에 대한 쿼리에 파티션 필터가 필요한지 여부 |
|
|
네임스페이스화된 <키, 값> 문법의 테이블에 연결된 태그. 자세한 내용은 태그 및 조건부 액세스를 참조하세요. |
외부 테이블에 다음 옵션을 사용할 수 있습니다.
옵션 | |
---|---|
allow_jagged_rows |
CSV 데이터에 적용됩니다. |
allow_quoted_newlines |
CSV 데이터에 적용됩니다. |
bigtable_options |
Bigtable 외부 테이블을 만들 때만 필요합니다. Bigtable 외부 테이블의 스키마를 JSON 형식으로 지정합니다. Bigtable 테이블 정의 옵션의 목록은 REST API 참조에서 |
column_name_character_map |
지원되는 열 이름 문자 범위 및 지원되지 않는 문자의 처리 동작을 정의합니다. 기본 설정은 지원되는 값은 다음과 같습니다.
CSV 및 Parquet 데이터에 적용됩니다. |
compression |
데이터 소스의 압축 유형입니다. 지원되는 값은 CSV 및 JSON 데이터에 적용됩니다. |
decimal_target_types |
예: |
description |
이 테이블에 대한 설명입니다. |
enable_list_inference |
Parquet 데이터에 적용됩니다. |
enable_logical_types |
Avro 데이터에 적용됩니다. |
encoding |
데이터의 문자 인코딩입니다. 지원되는 값은 CSV 데이터에 적용됩니다. |
enum_as_string |
Parquet 데이터에 적용됩니다. |
expiration_timestamp |
이 테이블이 만료되는 시간입니다. 지정하지 않으면 테이블이 만료되지 않습니다. 예: |
field_delimiter |
CSV 파일의 필드 구분 기호입니다. CSV 데이터에 적용됩니다. |
format |
외부 데이터의 형식입니다.
값 |
hive_partition_uri_prefix |
파티션 키 인코딩이 시작되기 전에 모든 소스 URI의 공통 프리픽스입니다. 파티션을 나눈 하이브 외부 테이블에만 적용됩니다. Avro, CSV, JSON, Parquet, ORC 데이터에 적용됩니다. 예: |
file_set_spec_type |
로드 작업 및 외부 테이블의 소스 URI를 해석하는 방법을 지정합니다. 지원되는 값은 다음과 같습니다.
예를 들어 소스 URI가 |
ignore_unknown_values |
CSV 및 JSON 데이터에 적용됩니다. |
json_extension |
JSON 데이터의 경우 특정 JSON 교환 형식을 나타냅니다. 지정되지 않은 경우 BigQuery는 데이터를 일반 JSON 레코드로 읽습니다. 지원되는 값은 다음과 같습니다. |
max_bad_records |
데이터를 읽을 때 무시할 불량 레코드의 최대 개수입니다. CSV, JSON, Google Sheets 데이터에 적용됩니다. |
max_staleness |
BigLake 테이블 및 객체 테이블에 적용할 수 있습니다. 테이블에 대한 작업에서 캐시된 메타데이터를 사용할지 여부와 작업이 사용하기 위해 캐시된 메타데이터가 얼마나 최신이어야 하는지를 지정합니다. 메타데이터 캐싱을 사용 중지하려면 0을 지정합니다. 이 값이 기본값입니다. 메타데이터 캐싱을 사용 설정하려면 30분에서 7일 사이의 간격 리터럴 값을 지정합니다. 예를 들어 4시간 비활성 간격에는 |
null_marker |
CSV 파일의 CSV 데이터에 적용됩니다. |
null_markers |
(미리보기) CSV 파일의 이 옵션은 CSV 데이터에 적용됩니다. |
object_metadata |
객체 테이블을 만들 때만 필요합니다. 객체 테이블을 만들 때 이 옵션의 값을 |
preserve_ascii_control_characters |
CSV 데이터에 적용됩니다. |
projection_fields |
로드할 항목 속성의 목록입니다. Datastore 데이터에 적용됩니다. |
quote |
CSV 파일에서 데이터 섹션을 인용하는 데 사용되는 문자열입니다. 데이터에 따옴표 붙은 줄바꿈 문자가 있다면 CSV 데이터에 적용됩니다. |
reference_file_schema_uri |
사용자가 테이블 스키마와 함께 참조 파일을 제공합니다. Parquet/ORC/AVRO 데이터에 적용됩니다. 예: |
require_hive_partition_filter |
Avro, CSV, JSON, Parquet, ORC 데이터에 적용됩니다. |
sheet_range |
쿼리할 Google Sheets 스프레드시트의 범위입니다. Google Sheets 데이터에 적용됩니다. 예시: |
skip_leading_rows |
데이터를 읽을 때 건너뛸 파일 상단의 행 수입니다. CSV 및 Google Sheets 데이터에 적용됩니다. |
source_column_match |
(미리보기) 이는 로드된 열을 스키마에 일치시키는 데 사용되는 전략을 제어합니다. 이 값이 지정되지 않으면 스키마가 제공되는 방식에 따라 기본값이 결정됩니다. 자동 감지가 사용 설정된 경우 기본 동작은 이름으로 열을 일치시키는 것입니다. 그렇지 않으면 기본적으로 위치별로 열이 일치합니다. 이는 동작의 하위 호환성을 유지하기 위해 수행됩니다. 지원되는 값은 다음과 같습니다.
|
tags |
<ARRAY<STRUCT<STRING, STRING>>>
테이블의 IAM 태그 배열이며 키-값 쌍으로 표현됩니다. 키는 네임스페이스화된 키 이름이어야 하고 값은 닉네임이어야 합니다. |
time_zone |
(미리보기) 특정 시간대가 없는 타임스탬프 값을 파싱할 때 적용되는 기본 시간대입니다. 유효한 시간대 이름을 확인하세요. 이 값이 없으면 특정 시간대가 없는 타임스탬프 값이 기본 시간대 UTC를 사용하여 파싱됩니다. CSV 및 JSON 데이터에 적용됩니다. |
date_format |
(미리보기)
입력 파일에서 날짜 값의 형식이 지정되는 방식을 정의하는 형식 요소입니다 (예: 이 값이 있으면 이 형식만 호환되는 DATE 형식입니다. 스키마 자동 감지도 기존 형식 대신 이 형식을 기반으로 DATE 열 유형을 결정합니다. 이 값이 없으면 DATE 필드가 기본 형식으로 파싱됩니다. CSV 및 JSON 데이터에 적용됩니다. |
datetime_format |
(미리보기)
입력 파일에서 날짜/시간 값의 형식이 지정되는 방식을 정의하는 형식 요소(예: 이 값이 있으면 이 형식만 호환되는 DATETIME 형식입니다. 스키마 자동 감지도 기존 형식 대신 이 형식을 기반으로 DATETIME 열 유형을 결정합니다. 이 값이 없으면 DATETIME 필드가 기본 형식으로 파싱됩니다. CSV 및 JSON 데이터에 적용됩니다. |
time_format |
(미리보기)
입력 파일에서 시간 값의 형식이 지정되는 방식을 정의하는 형식 요소입니다 (예: 이 값이 있으면 이 형식이 호환되는 유일한 시간 형식입니다. 스키마 자동 감지도 기존 형식 대신 이 형식을 기반으로 시간 열 유형을 결정합니다. 이 값이 없으면 TIME 필드가 기본 형식으로 파싱됩니다. CSV 및 JSON 데이터에 적용됩니다. |
timestamp_format |
(미리보기)
입력 파일에서 타임스탬프 값의 형식이 지정되는 방식을 정의하는 형식 요소입니다(예: 이 값이 있으면 이 형식만 호환되는 타임스탬프 형식입니다. 스키마 자동 감지도 기존 형식 대신 이 형식을 기반으로 타임스탬프 열 유형을 결정합니다. 이 값이 없으면 타임스탬프 필드가 기본 형식으로 파싱됩니다. CSV 및 JSON 데이터에 적용됩니다. |
uris |
Bigtable 테이블이 아닌 객체 테이블을 포함한 외부 테이블의 경우:
외부 데이터 위치의 정규화된 URI 배열입니다.
각 URI에는 버킷 이름 뒤에 와야 하는 별표( 다음 예시에서는 유효한
Bigtable 테이블의 경우:
데이터 소스로 사용할 Bigtable 테이블을 식별하는 URI입니다. Bigtable URI는 하나만 지정할 수 있습니다. 예를 들면 Bigtable URI를 생성하는 방법에 대한 자세한 내용은 Bigtable URI 검색을 참조하세요. |
범위 및 구문
이 뷰에 대한 쿼리에는 데이터 세트나 리전 한정자가 포함되어야 합니다. 데이터 세트 한정자가 있는 쿼리에는 데이터 세트에 대한 권한이 있어야 합니다. 리전 한정자가 있는 쿼리에는 프로젝트에 대한 권한이 있어야 합니다. 자세한 내용은 구문을 참조하세요. 다음 표에서는 이 뷰의 리전 범위와 리소스 범위를 설명합니다.
뷰 이름 | 리소스 범위 | 리전 범위 |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_OPTIONS |
프로젝트 수준 | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS |
데이터 세트 수준 | 데이터 세트 위치 |
-
선택사항:
PROJECT_ID
: Google Cloud 프로젝트의 ID입니다. 지정하지 않으면 기본 프로젝트가 사용됩니다. -
REGION
: 모든 데이터 세트 리전 이름입니다. 예를 들면`region-us`
입니다. -
DATASET_ID
: 데이터 세트의 ID입니다. 자세한 내용은 데이터 세트 한정자를 참조하세요.
예
예 1:
다음 예시에서는 INFORMATION_SCHEMA.TABLE_OPTIONS
뷰를 쿼리하여 기본 프로젝트(myproject
)의 mydataset
에 있는 모든 테이블의 기본 테이블 만료 시간을 검색합니다.
기본 프로젝트가 아닌 프로젝트에 쿼리를 실행하려면 프로젝트 ID를 `project_id`.dataset.INFORMATION_SCHEMA.view
형식으로 데이터 세트에 추가합니다(예: `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
).
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'expiration_timestamp';
결과는 다음과 비슷합니다.
+----------------+---------------+------------+----------------------+-------------+--------------------------------------+ | table_catalog | table_schema | table_name | option_name | option_type | option_value | +----------------+---------------+------------+----------------------+-------------+--------------------------------------+ | myproject | mydataset | mytable1 | expiration_timestamp | TIMESTAMP | TIMESTAMP "2020-01-16T21:12:28.000Z" | | myproject | mydataset | mytable2 | expiration_timestamp | TIMESTAMP | TIMESTAMP "2021-01-01T21:12:28.000Z" | +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
예시 2:
다음 예시는 테스트 데이터가 포함된 mydataset
의 모든 테이블에 대한 메타데이터를 검색합니다. 이 쿼리는 description
옵션의 값을 사용하여 설명의 아무 곳에서나 'test'가 포함된 테이블을 찾습니다. mydataset
는 기본 프로젝트 myproject
에 있습니다.
기본 프로젝트가 아닌 프로젝트에 쿼리를 실행하려면 프로젝트 ID를 `project_id`.dataset.INFORMATION_SCHEMA.view
형식으로 데이터 세트에 추가합니다(예: `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
).
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'description' AND option_value LIKE '%test%';
결과는 다음과 비슷합니다.
+----------------+---------------+------------+-------------+-------------+--------------+ | table_catalog | table_schema | table_name | option_name | option_type | option_value | +----------------+---------------+------------+-------------+-------------+--------------+ | myproject | mydataset | mytable1 | description | STRING | "test data" | | myproject | mydataset | mytable2 | description | STRING | "test data" | +----------------+---------------+------------+-------------+-------------+--------------+