DuckDB_% 메타데이터 함수
DuckDB_% 메타데이터 함수 (DuckDB_% Metadata Functions)
DuckDB는 현재 데이터베이스에 대한 메타데이터를 제공하는 테이블 함수 모음을 제공해요. 이 함수들은 main 스키마에 있고 이름이 duckdb_ 접두사로 시작해요. 카탈로그 객체를 SQL로 직접 들여다볼 수 있는 강력한 도구예요.
출처: 문서
본문
DuckDB는 현재 데이터베이스에 대한 메타데이터를 제공하는 테이블 함수 모음을 제공해요. 이 함수들은 main 스키마에 있으며 이름이 duckdb_ 접두사로 시작해요.
duckdb_ 테이블 함수가 반환하는 결과 집합은 일반 테이블이나 뷰처럼 사용할 수 있어요. 예를 들어 SELECT 문의 FROM 절에서 duckdb_ 함수 호출을 사용하고, 반환된 결과 집합의 컬럼을 문의 다른 곳(예: WHERE 절)에서 참조할 수 있어요.
테이블 함수는 여전히 함수이므로, 반환된 결과 집합을 얻으려면 함수 이름 뒤에 괄호를 써서 호출해야 해요:
SELECT * FROM duckdb_settings();
또는 CALL 문법으로 테이블 함수를 실행할 수도 있어요:
CALL duckdb_settings();
이 경우에도 괄호는 필수예요.
일부
duckdb_%함수에는 같은 이름의 뷰도 있으며, 역시main스키마에 있어요. 일반적으로 이 뷰들은 같은 이름의duckdb_테이블 함수에 대해SELECT를 수행하면서 internal로 표시된 객체를 걸러내요. 이 점을 언급하는 이유는,duckdb_테이블 함수 호출에서 괄호를 실수로 생략해도 결과를 얻을 수는 있지만 같은 이름의 뷰에서 얻기 때문이에요.
예시:
duckdb_views() _테이블 함수_는 internal로 표시된 것을 포함한 모든 뷰를 반환해요:
SELECT * FROM duckdb_views();
duckdb_views _뷰_는 internal로 표시되지 않은 뷰를 반환해요:
SELECT * FROM duckdb_views;
duckdb_columns
duckdb_columns() 함수는 DuckDB 인스턴스에서 사용 가능한 컬럼에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
database_name |
컬럼 객체를 담는 데이터베이스의 이름. | VARCHAR |
database_oid |
컬럼 객체를 담는 데이터베이스의 내부 식별자. | BIGINT |
schema_name |
이 컬럼을 정의하는 테이블 객체를 담는 스키마의 SQL 이름. | VARCHAR |
schema_oid |
컬럼의 테이블을 담는 스키마 객체의 내부 식별자. | BIGINT |
table_name |
컬럼을 정의하는 테이블의 SQL 이름. | VARCHAR |
table_oid |
컬럼을 정의하는 테이블 객체의 내부 식별자(이름). | BIGINT |
column_name |
컬럼의 SQL 이름. | VARCHAR |
column_index |
테이블 내 컬럼의 고유 위치. | INTEGER |
comment |
COMMENT ON 문으로 만든 주석. |
VARCHAR |
internal |
이 컬럼이 내장(built-in)이면 true, 사용자 정의이면 false. |
BOOLEAN |
column_default |
컬럼의 기본값(SQL로 표현) | VARCHAR |
is_nullable |
컬럼이 NULL 값을 가질 수 있으면 true, NULL 값을 가질 수 없으면 false. |
BOOLEAN |
data_type |
컬럼 데이터 타입의 이름. | VARCHAR |
data_type_id |
컬럼 데이터 타입의 내부 식별자. | BIGINT |
character_maximum_length |
항상 NULL. DuckDB text 타입은 길이 타입 파라미터에 기반한 값 길이 제한을 강제하지 않아요. |
INTEGER |
numeric_precision |
컬럼 값을 저장하는 데 사용되는 단위 수(numeric_precision_radix가 나타내는 진법 기준). 정수·근사 숫자 타입은 비트 수, decimal 타입은 자릿수. |
INTEGER |
numeric_precision_radix |
numeric_precision 컬럼의 단위 진법. 정수·근사 숫자 타입은 2(정밀도가 비트 수로 표시됨), decimal 타입은 10(정밀도가 십진 자릿수로 표시됨). |
INTEGER |
numeric_scale |
decimal 타입에 적용. 최대 소수 자릿수(즉 소수 구분자 뒤에 나타날 수 있는 자릿수)를 나타냄. |
INTEGER |
information_schema.columns 시스템 뷰는 데이터베이스 컬럼에 대한 메타데이터를 얻는 더 표준화된 방법을 제공하지만, duckdb_columns 함수는 DuckDB 내부 객체에 대한 메타데이터도 반환해요. (실제로 information_schema.columns는 duckdb_columns() 위의 쿼리로 구현돼요)
duckdb_constraints
duckdb_constraints() 함수는 DuckDB 인스턴스에서 사용 가능한 제약 조건에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
database_name |
제약 조건을 담는 데이터베이스의 이름. | VARCHAR |
database_oid |
제약 조건을 담는 데이터베이스의 내부 식별자. | BIGINT |
schema_name |
제약 조건이 정의된 테이블을 담는 스키마의 SQL 이름. | VARCHAR |
schema_oid |
제약 조건이 정의된 테이블을 담는 스키마 객체의 내부 식별자. | BIGINT |
table_name |
제약 조건이 정의된 테이블의 SQL 이름. | VARCHAR |
table_oid |
제약 조건이 정의된 테이블 객체의 내부 식별자(이름). | BIGINT |
constraint_index |
테이블 정의에 나타나는 제약 조건의 위치. | BIGINT |
constraint_type |
제약 조건의 유형. 적용 값: CHECK, FOREIGN KEY, PRIMARY KEY, NOT NULL, UNIQUE. |
VARCHAR |
constraint_text |
SQL 구(phrase)로 표현된 제약 조건의 정의. (반드시 완전하거나 문법적으로 유효한 DDL 문일 필요는 없음) | VARCHAR |
expression |
제약 조건이 체크 제약이라면 검사되는 조건의 정의, 그렇지 않으면 NULL. |
VARCHAR |
constraint_column_indexes |
제약 조건 정의에 나타나는 컬럼을 가리키는 테이블 컬럼 인덱스 배열. | BIGINT[] |
constraint_column_names |
제약 조건 정의에 나타나는 테이블 컬럼 이름 배열. | VARCHAR[] |
constraint_name |
제약 조건의 이름. | VARCHAR |
referenced_table |
제약 조건이 참조하는 테이블. | VARCHAR |
referenced_column_names |
제약 조건이 참조하는 컬럼 이름. | VARCHAR[] |
information_schema.referential_constraints와 information_schema.table_constraints 시스템 뷰는 제약 조건에 대한 메타데이터를 얻는 더 표준화된 방법을 제공하지만, duckdb_constraints 함수는 DuckDB 내부 객체에 대한 메타데이터도 반환해요. (실제로 information_schema.referential_constraints와 information_schema.table_constraints는 duckdb_constraints() 위의 쿼리로 구현돼요)
duckdb_coordinate_systems
duckdb_coordinate_systems() 함수는 GEOMETRY 데이터 타입과 함께 사용할 수 있는 좌표 참조 시스템(CRS)을 나열해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
database_name |
CRS 정의를 저장하는 데이터베이스의 이름. | VARCHAR |
database_oid |
CRS 정의를 저장하는 데이터베이스의 내부 식별자. | BIGINT |
schema_name |
CRS 정의를 저장하는 스키마의 SQL 이름. | VARCHAR |
schema_oid |
CRS 정의를 저장하는 스키마의 내부 식별자. | BIGINT |
crs_oid |
CRS의 고유 내부 식별자. | BIGINT |
crs_name |
CRS를 식별하는 고유 이름. (일반적으로 auth_name과 auth_code를 콜론으로 구분한 값과 동일) |
VARCHAR |
auth_name |
CRS를 정의한 권위(authority)의 이름. | VARCHAR |
auth_code |
그 권위 내에서 CRS를 정의한 코드. | VARCHAR |
projjson |
CRS의 projjson 인코딩. | VARCHAR |
wkt2_2019 |
CRS의 Well-Known Text (WKT) 표현. | VARCHAR |
이 함수는 내장 CRS와 익스텐션(예: SPATIAL 익스텐션)이 설치한 CRS를 모두 나열해요.
duckdb_databases
duckdb_databases() 함수는 현재 DuckDB 프로세스에서 접근할 수 있는 데이터베이스를 나열해요.
시작 시 연결된 데이터베이스 외에도 나중에 DuckDB 프로세스에 연결된 데이터베이스도 포함돼요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
database_name |
데이터베이스의 이름, 또는 ALIAS 절로 연결됐다면 별칭. | VARCHAR |
database_oid |
데이터베이스의 내부 식별자. | VARCHAR |
path |
데이터베이스와 연결된 파일 경로. | VARCHAR |
comment |
COMMENT ON 문으로 만든 주석. |
VARCHAR |
tags |
문자열 키-값 쌍의 맵. | MAP(VARCHAR, VARCHAR) |
internal |
true는 시스템 또는 내장 데이터베이스, false는 사용자 정의 데이터베이스. |
BOOLEAN |
type |
연결된 데이터베이스가 구현하는 RDBMS 유형. DuckDB 데이터베이스의 경우 duckdb. |
VARCHAR |
readonly |
데이터베이스가 읽기 전용인지 여부. | BOOLEAN |
options |
ATTACH 문에 사용된 옵션(옵션 이름 → 문자열 값 맵). |
MAP(VARCHAR, VARCHAR) |
duckdb_dependencies
duckdb_dependencies() 함수는 DuckDB 인스턴스에서 사용 가능한 의존성에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
classid |
항상 0 | BIGINT |
objid |
객체의 내부 id. | BIGINT |
objsubid |
항상 0 | INTEGER |
refclassid |
항상 0 | BIGINT |
refobjid |
의존 객체의 내부 id. | BIGINT |
refobjsubid |
항상 0 | INTEGER |
deptype |
의존성 유형. regular(n) 또는 automatic(a). | VARCHAR |
duckdb_extensions
duckdb_extensions() 함수는 DuckDB 인스턴스에서 사용 가능한 익스텐션에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
extension_name |
익스텐션의 이름. | VARCHAR |
loaded |
익스텐션이 로드됐으면 true, 아니면 false. |
BOOLEAN |
installed |
익스텐션이 설치됐으면 true, 아니면 false. |
BOOLEAN |
install_path |
익스텐션이 내장이면 (BUILT-IN), 그렇지 않으면 익스텐션을 구현하는 바이너리가 있는 파일시스템 경로. |
VARCHAR |
description |
익스텐션의 기능을 설명하는 사람이 읽을 수 있는 텍스트. | VARCHAR |
aliases |
이 익스텐션의 대체 이름 목록. | VARCHAR[] |
extension_version |
익스텐션의 버전(안정 버전은 vX.Y.Z, 불안정 버전은 6자리 해시). |
VARCHAR |
install_mode |
익스텐션 설치에 사용된 설치 모드: UNKNOWN, REPOSITORY, CUSTOM_PATH, STATICALLY_LINKED, NOT_INSTALLED, NULL. |
VARCHAR |
installed_from |
익스텐션이 설치된 저장소의 이름(예: community, core_nightly). 빈 문자열은 core 저장소를 나타냄. |
VARCHAR |
duckdb_functions
duckdb_functions() 함수는 DuckDB 인스턴스에서 사용 가능한 함수(매크로 포함)에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
database_name |
이 함수를 담는 데이터베이스의 이름. | VARCHAR |
database_oid |
인덱스를 담는 데이터베이스의 내부 식별자. | BIGINT |
schema_name |
함수가 존재하는 스키마의 SQL 이름. | VARCHAR |
function_name |
함수의 SQL 이름. | VARCHAR |
alias_of |
이 함수가 별칭인 함수의 이름, 별칭이 아니면 NULL. |
VARCHAR |
function_type |
함수 종류. 값: table, scalar, aggregate, pragma, macro, table_macro |
VARCHAR |
description |
이 함수의 설명, 등록된 게 없으면 NULL. |
VARCHAR |
comment |
COMMENT ON 문으로 만든 주석. |
VARCHAR |
tags |
문자열 키-값 쌍의 맵. | MAP(VARCHAR, VARCHAR) |
return_type |
반환 값의 논리 데이터 타입 이름. 스칼라·집계 함수에 적용. | VARCHAR |
parameters |
함수에 파라미터가 있으면 파라미터 이름 목록. | VARCHAR[] |
parameter_types |
함수에 파라미터가 있으면 파라미터 목록에 대응하는 논리 데이터 타입 이름 목록. | VARCHAR[] |
varargs |
함수에 가변 인자 수가 있으면 데이터 타입 이름, 가변 인자 수가 없으면 NULL. |
VARCHAR |
macro_definition |
매크로라면 이를 정의하는 SQL 표현식. | VARCHAR |
has_side_effects |
순수 함수면 false. 상태를 바꾸는 함수(시퀀스 함수 nextval(), curval() 등)면 true. |
BOOLEAN |
internal |
함수가 내장(DuckDB 또는 익스텐션 정의)이면 true, CREATE MACRO 문으로 정의됐으면 false. |
BOOLEAN |
function_oid |
이 함수의 내부 식별자. | BIGINT |
examples |
함수 사용 예시. 문서 생성에 사용. | VARCHAR[] |
stability |
함수의 안정성(CONSISTENT, VOLATILE, CONSISTENT_WITHIN_QUERY 또는 NULL) |
VARCHAR |
duckdb_indexes
duckdb_indexes() 함수는 DuckDB 인스턴스에서 사용 가능한 보조 인덱스에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
database_name |
이 인덱스를 담는 데이터베이스의 이름. | VARCHAR |
database_oid |
인덱스를 담는 데이터베이스의 내부 식별자. | BIGINT |
schema_name |
보조 인덱스가 있는 테이블을 담는 스키마의 SQL 이름. | VARCHAR |
schema_oid |
스키마 객체의 내부 식별자. | BIGINT |
index_name |
이 보조 인덱스의 SQL 이름. | VARCHAR |
index_oid |
이 인덱스의 객체 식별자. | BIGINT |
table_name |
인덱스가 있는 테이블의 이름. | VARCHAR |
table_oid |
테이블 객체의 내부 식별자(이름). | BIGINT |
comment |
COMMENT ON 문으로 만든 주석. |
VARCHAR |
tags |
문자열 키-값 쌍의 맵. | MAP(VARCHAR, VARCHAR) |
is_unique |
UNIQUE 수식어로 만들어진 인덱스면 true, 아니면 false. |
BOOLEAN |
is_primary |
항상 false. |
BOOLEAN |
expressions |
항상 NULL. |
VARCHAR |
sql |
인덱스의 정의를 CREATE INDEX SQL 문으로 표현. |
VARCHAR |
duckdb_indexes는 보조 인덱스, 즉 명시적 CREATE INDEX 문으로 만들어진 인덱스에 대한 메타데이터만 제공한다는 점을 참고해요. 기본 키, 외래 키, UNIQUE 제약 조건은 인덱스를 사용해 유지되지만 그 세부 내용은 duckdb_constraints() 함수에 포함돼요.
duckdb_keywords
duckdb_keywords() 함수는 DuckDB의 키워드와 예약어에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
keyword_name |
키워드. | VARCHAR |
keyword_category |
키워드의 범주: reserved(인용 없이 식별자로 사용 불가), unreserved(식별자로 사용 가능), column_name(컬럼 이름으로는 사용 가능하지만 타입·함수 이름으로는 불가), type_function(타입·함수 이름으로는 사용 가능하지만 컬럼 이름으로는 불가). Keywords and Identifiers 참고. |
VARCHAR |
duckdb_log_contexts
duckdb_log_contexts() 함수는 DuckDB 로그 항목의 컨텍스트에 대한 정보를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
context_id |
컨텍스트의 식별자. duckdb_logs 테이블의 context_id 컬럼은 이 컬럼을 가리키는 외래 키. |
UBIGINT |
scope |
컨텍스트의 범위(connection, database 또는 file_opener). |
VARCHAR |
connection_id |
연결의 식별자. | UBIGINT |
transaction_id |
트랜잭션의 식별자. | UBIGINT |
query_id |
쿼리의 식별자. | UBIGINT |
thread_id |
스레드의 식별자. | UBIGINT |
duckdb_logs
duckdb_logs() 함수는 DuckDB 로그 항목의 테이블을 반환해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
context_id |
로그 항목 컨텍스트의 식별자. duckdb_log_contexts 테이블의 외래 키. |
UBIGINT |
timestamp |
로그 항목의 타임스탬프. | TIMESTAMP |
type |
로그 항목의 유형. | VARCHAR |
log_level |
로그 항목의 수준(TRACE, DEBUG, INFO, WARN, ERROR 또는 FATAL). |
VARCHAR |
message |
로그 항목의 메시지. | VARCHAR |
duckdb_memory
duckdb_memory() 함수는 DuckDB의 버퍼 매니저에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
tag |
메모리 태그. 다음 값 중 하나: BASE_TABLE, HASH_TABLE, PARQUET_READER, CSV_READER, ORDER_BY, ART_INDEX, COLUMN_DATA, METADATA, OVERFLOW_STRINGS, IN_MEMORY_TABLE, ALLOCATOR, EXTENSION. |
VARCHAR |
memory_usage_bytes |
사용된 메모리(바이트). | BIGINT |
temporary_storage_bytes |
사용된 디스크 저장 공간(바이트). | BIGINT |
duckdb_optimizers
duckdb_optimizers() 함수는 DuckDB 인스턴스에서 사용 가능한 최적화 규칙(예: expression_rewriter, filter_pushdown)에 대한 메타데이터를 제공해요.
이들은 PRAGMA disabled_optimizers로 선택적으로 끌 수 있어요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
name |
최적화 규칙의 이름. | VARCHAR |
duckdb_prepared_statements
duckdb_prepared_statements() 함수는 현재 DuckDB 세션에 존재하는 준비된 문에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
name |
준비된 문의 이름. | VARCHAR |
statement |
SQL 문. | VARCHAR |
parameter_types |
문 파라미터의 예상 파라미터 타입. 현재 모든 파라미터에 UNKNOWN 반환. |
VARCHAR[] |
result_types |
준비된 문이 반환하는 테이블의 컬럼 타입. | VARCHAR[] |
duckdb_profiling_settings
duckdb_profiling_settings() 매크로는 duckdb_settings()에서 현재 프로파일링 관련 설정을 반환해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
name |
프로파일링 설정의 이름. | VARCHAR |
value |
설정의 현재 값. | VARCHAR |
description |
설정에 대한 설명. | VARCHAR |
duckdb_schemas
duckdb_schemas() 함수는 DuckDB 인스턴스에서 사용 가능한 스키마에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
oid |
스키마 객체의 내부 식별자. | BIGINT |
database_name |
이 스키마를 담는 데이터베이스의 이름. | VARCHAR |
database_oid |
스키마를 담는 데이터베이스의 내부 식별자. | BIGINT |
schema_name |
스키마의 SQL 이름. | VARCHAR |
comment |
COMMENT ON 문으로 만든 주석. |
VARCHAR |
tags |
문자열 키-값 쌍의 맵. | MAP(VARCHAR, VARCHAR) |
internal |
내부(내장) 스키마면 true, 사용자 정의 스키마면 false. |
BOOLEAN |
sql |
항상 NULL |
VARCHAR |
information_schema.schemata 시스템 뷰는 데이터베이스 스키마에 대한 메타데이터를 얻는 더 표준화된 방법을 제공해요.
duckdb_secret_types
duckdb_secret_types()는 현재 DuckDB 세션에서 지원되는 시크릿 타입을 나열해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
type |
시크릿 타입의 이름(예: s3). |
VARCHAR |
default_provider |
기본 시크릿 제공자(예: config). |
VARCHAR |
extension |
시크릿 타입을 등록한 익스텐션(예: aws). |
VARCHAR |
duckdb_secrets
duckdb_secrets() 함수는 DuckDB 인스턴스에서 사용 가능한 시크릿에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
name |
시크릿의 이름. | VARCHAR |
type |
시크릿의 타입(예: S3, GCS, R2, AZURE). |
VARCHAR |
provider |
시크릿의 제공자. | VARCHAR |
persistent |
시크릿이 영구적인지 여부. | BOOLEAN |
storage |
시크릿을 저장하는 백엔드. | VARCHAR |
scope |
시크릿의 범위. | VARCHAR[] |
secret_string |
시크릿의 내용을 문자열로 반환. 접근 키 같은 민감한 정보는 가려짐(redacted). | VARCHAR |
duckdb_sequences
duckdb_sequences() 함수는 DuckDB 인스턴스에서 사용 가능한 시퀀스에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
database_name |
이 시퀀스를 담는 데이터베이스의 이름 | VARCHAR |
database_oid |
시퀀스를 담는 데이터베이스의 내부 식별자. | BIGINT |
schema_name |
시퀀스 객체를 담는 스키마의 SQL 이름. | VARCHAR |
schema_oid |
시퀀스 객체를 담는 스키마 객체의 내부 식별자. | BIGINT |
sequence_name |
스키마 내 시퀀스를 식별하는 SQL 이름. | VARCHAR |
sequence_oid |
이 시퀀스 객체의 내부 식별자. | BIGINT |
comment |
COMMENT ON 문으로 만든 주석. |
VARCHAR |
tags |
문자열 키-값 쌍의 맵. | MAP(VARCHAR, VARCHAR) |
temporary |
이 시퀀스가 임시인지 여부. 임시 시퀀스는 일시적이며 현재 연결 내에서만 보임. | BOOLEAN |
start_value |
시퀀스의 초기 값. 이 시퀀스에 nextval()을 처음 호출할 때 이 값이 반환됨. |
BIGINT |
min_value |
시퀀스의 최소 값. | BIGINT |
max_value |
시퀀스의 최대 값. | BIGINT |
increment_by |
시퀀스에서 다음 값을 꺼낼 때 현재 값에 더해지는 값. | BIGINT |
cycle |
다음 값을 꺼낼 때 범위를 벗어나는 값이 된다면 시퀀스가 다시 시작할지 여부. | BOOLEAN |
last_value |
nextval(...)로 시퀀스에서 값을 한 번도 꺼낸 적이 없으면 NULL. 값을 꺼낸 적이 있으면 1. |
BIGINT |
sql |
이 객체의 정의를 SQL DDL 문으로 표현. | VARCHAR |
temporary, start_value 같은 속성은 CREATE SEQUENCE 문의 다양한 옵션에 대응하며 거기에 전체 문서화돼 있어요. CREATE SEQUENCE 문에서 명시적으로 지정하지 않았어도 duckdb_sequences 결과 집합에는 항상 채워진다는 점을 참고해요.
last_value라는 컬럼 이름은 시퀀스에서 꺼낸 마지막 값을 담고 있는 것처럼 보이지만 실제로는 그렇지 않아요. 시퀀스에서 값을 한 번도 꺼낸 적이 없으면NULL, (언젠가 한 번이라도) 값을 꺼낸 적이 있으면1이에요.시퀀스가 순환하면 시퀀스는 시작 값으로 지정된 값이 아니라 범위의 경계에서 다시 시작해요.
duckdb_settings
duckdb_settings() 함수는 DuckDB 인스턴스에서 사용 가능한 설정에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
name |
설정의 이름. | VARCHAR |
value |
설정의 현재 값. | VARCHAR |
description |
설정에 대한 설명. | VARCHAR |
input_type |
설정 값의 논리 데이터 타입. | VARCHAR |
scope |
설정의 범위(LOCAL 또는 GLOBAL). |
VARCHAR |
다양한 설정은 configuration 페이지에 설명돼 있어요.
duckdb_tables
duckdb_tables() 함수는 DuckDB 인스턴스에서 사용 가능한 기본 테이블에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
database_name |
이 테이블을 담는 데이터베이스의 이름 | VARCHAR |
database_oid |
테이블을 담는 데이터베이스의 내부 식별자. | BIGINT |
schema_name |
기본 테이블을 담는 스키마의 SQL 이름. | VARCHAR |
schema_oid |
기본 테이블을 담는 스키마 객체의 내부 식별자. | BIGINT |
table_name |
기본 테이블의 SQL 이름. | VARCHAR |
table_oid |
기본 테이블 객체의 내부 식별자. | BIGINT |
comment |
COMMENT ON 문으로 만든 주석. |
VARCHAR |
tags |
문자열 키-값 쌍의 맵. | MAP(VARCHAR, VARCHAR) |
internal |
사용자 정의 테이블이면 false. |
BOOLEAN |
temporary |
임시 테이블인지 여부. 임시 테이블은 영속되지 않고 현재 연결 내에서만 보임. | BOOLEAN |
has_primary_key |
이 테이블 객체가 PRIMARY KEY를 정의하면 true. |
BOOLEAN |
estimated_size |
테이블의 추정 행 수. | BIGINT |
column_count |
이 객체가 정의한 컬럼 수. | BIGINT |
index_count |
이 테이블과 연관된 인덱스 수. 모든 보조 인덱스와 PRIMARY KEY 및/또는 UNIQUE 제약 조건을 유지하기 위해 생성된 내부 인덱스를 포함. |
BIGINT |
check_constraint_count |
테이블 내 컬럼에서 활성화된 체크 제약 조건 수. | BIGINT |
sql |
이 객체의 정의를 SQL CREATE TABLE 문으로 표현. |
VARCHAR |
information_schema.tables 시스템 뷰는 뷰도 포함한 데이터베이스 테이블에 대한 메타데이터를 얻는 더 표준화된 방법을 제공해요. 하지만 duckdb_tables가 반환하는 결과 집합에는 information_schema.tables에 없는 몇몇 컬럼이 있어요.
duckdb_temporary_files
duckdb_temporary_files() 함수는 DuckDB가 메모리에서 데이터를 내려놓기 위해 디스크에 쓴 임시 파일에 대한 메타데이터를 제공해요. 이 함수는 주로 디버깅·테스트 용도로 존재해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
path |
임시 파일의 이름. | VARCHAR |
size |
임시 파일의 크기(바이트). | BIGINT |
duckdb_types
duckdb_types() 함수는 DuckDB 인스턴스에서 사용 가능한 데이터 타입에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
database_name |
이 스키마를 담는 데이터베이스의 이름. | VARCHAR |
database_oid |
데이터 타입을 담는 데이터베이스의 내부 식별자. | BIGINT |
schema_name |
타입 정의를 담는 스키마의 SQL 이름. 항상 main. |
VARCHAR |
schema_oid |
스키마 객체의 내부 식별자. | BIGINT |
type_name |
이 데이터 타입의 이름 또는 별칭. | VARCHAR |
type_oid |
데이터 타입 객체의 내부 식별자. NULL이면 logical_type 컬럼의 값이 식별하는 타입의 별칭. |
BIGINT |
type_size |
이 타입의 값을 메모리에 표현하는 데 필요한 바이트 수. | BIGINT |
logical_type |
이 데이터 타입의 '정식(canonical)' 이름. 같은 logical_type을 여러 type_name이 참조할 수 있음. |
VARCHAR |
type_category |
이 타입이 속한 범주. 같은 범주의 데이터 타입은 이 타입의 값이 표현식에 사용될 때 일반적으로 유사한 동작을 노출해요. 예를 들어 NUMERIC type_category에는 정수, decimal, 부동소수점 숫자가 포함됨. |
VARCHAR |
comment |
COMMENT ON 문으로 만든 주석. |
VARCHAR |
tags |
문자열 키-값 쌍의 맵. | MAP(VARCHAR, VARCHAR) |
internal |
내부(내장) 객체인지 사용자 객체인지. | BOOLEAN |
labels |
타입 분류용 라벨. 문서 생성에 사용. | VARCHAR[] |
duckdb_variables
duckdb_variables() 함수는 DuckDB 인스턴스에서 사용 가능한 변수에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
name |
변수의 이름(예: x). |
VARCHAR |
value |
변수의 값(예: 12). |
VARCHAR |
type |
변수의 타입(예: INTEGER). |
VARCHAR |
duckdb_views
duckdb_views() 함수는 DuckDB 인스턴스에서 사용 가능한 뷰에 대한 메타데이터를 제공해요.
| 컬럼 | 설명 | 타입 |
|---|---|---|
database_name |
이 뷰를 담는 데이터베이스의 이름. | VARCHAR |
database_oid |
이 뷰를 담는 데이터베이스의 내부 식별자. | BIGINT |
schema_name |
뷰가 존재하는 스키마의 SQL 이름. | VARCHAR |
schema_oid |
뷰를 담는 스키마 객체의 내부 식별자. | BIGINT |
view_name |
뷰 객체의 SQL 이름. | VARCHAR |
view_oid |
이 뷰 객체의 내부 식별자. | BIGINT |
comment |
COMMENT ON 문으로 만든 주석. |
VARCHAR |
tags |
문자열 키-값 쌍의 맵. | MAP(VARCHAR, VARCHAR) |
internal |
내부(내장) 뷰면 true, 사용자 정의 뷰면 false. |
BOOLEAN |
temporary |
임시 뷰면 true. 임시 뷰는 영속되지 않고 현재 연결 내에서만 보임. |
BOOLEAN |
column_count |
이 뷰 객체가 정의한 컬럼 수. | BIGINT |
sql |
이 객체의 정의를 SQL DDL 문으로 표현. | VARCHAR |
information_schema.tables 시스템 뷰는 기본 테이블도 포함한 데이터베이스 뷰에 대한 메타데이터를 얻는 더 표준화된 방법을 제공해요. 하지만 duckdb_views가 반환하는 결과 집합에는 내부 뷰 객체의 정의와 information_schema.tables에 없는 몇몇 컬럼도 있어요.
더 알아보기 (Learn more)
- Information Schema — 표준화된 카탈로그 메타데이터 뷰.
- DuckDB 환경 가이드 — 버전·플랫폼·익스텐션 조회.