메인 콘텐츠로 건너뛰기
vsql_duckdb는 서버 프로세스 안에서 DuckDB를 실행하므로, SQL 문 하나로 객체 스토리지나 디스크에 있는 Parquet, CSV, JSON 파일을 바로 읽을 수 있습니다. 분석 파일은 있던 자리에 그대로 두고, 내보내기 단계나 운영해야 할 두 번째 엔진 없이 테이블 옆에서 쿼리합니다.
이 확장 기능은 미리 보기 기능 세 가지를 선언하므로, 서버를 --vsql_allow_preview_extensions=ON으로 시작해야 합니다. 또한 0.0.6보다 새로운 VillageSQL 서버가 필요합니다.

설치

vsql_duckdb는 서버와 함께 번들로 제공되지 않으므로, 먼저 저장소에서 빌드한 다음 생성된 vsql_duckdb.veb를 veb_dir 시스템 변수가 가리키는 디렉터리에 복사하세요. 그런 다음 설치합니다:
설치되었는지 확인합니다:
빌드 지침은 저장소에 있습니다.

추가되는 기능

SHOW STATUS LIKE 'vsql_duckdb%'는 카운터 두 개를 보고하며, 이 값은 서버 프로세스가 살아 있는 동안 유지됩니다:
queries_total은 성공했든 오류를 냈든 실행된 duckdb_query() 또는 duckdb_scalar() 호출을 셉니다. 빈 결과나 NULL 값 때문에 NULL을 반환하는 duckdb_scalar() 호출은 성공으로 셉니다. sql 인수 자체가 NULL인 호출은 어느 카운터도 올리지 않고 NULL을 반환합니다. queries_failed는 오류를 낸 호출만 세며, queries_total에 포함됩니다.

예제

확장 기능의 상태를 물어봅니다:
파일을 건드리지 않는 쿼리를 실행합니다:
CSV를 읽고 행을 JSON으로 받습니다. 서버 자체 디스크 읽기는 기본적으로 꺼져 있으므로 먼저 켭니다:
작업이 끝나면 다시 끄세요. 끄기 전까지는 계속 켜져 있습니다:
결과가 JSON이므로, JSON_TABLE로 다시 행으로 바꾸어 자신의 테이블과 조인할 수 있습니다.
allow_local_files는 서버 계정이 읽을 수 있는 모든 파일을 열며, enable_external_access는 기본적으로 켜져 있어 쿼리가 네트워크에도 접근할 수 있습니다. 확장 기능의 함수는 저장 함수처럼 권한을 부여할 수 없으므로, 여기서 SQL을 실행할 수 있는 사람은 누구나 이 함수를 호출할 수 있습니다. 확장 기능을 설치하면 모든 계정이 두 스위치의 범위를 갖게 됩니다. 객체 스토리지 비밀 값은 키링에 있으며, vsql_duckdb.s3_secret_keyring_id는 그 이름만 가리킵니다.
SET PERSIST로 쓴 설정은 재시작 후에도 유지되지만, UNINSTALL EXTENSION이 이를 삭제합니다. 제거 후 다시 설치하면 모든 설정이 기본값으로 돌아가며, 재시작해도 이전 값은 돌아오지 않습니다.

참고 항목