DuckDB 커넥터

DuckDB 커넥터 (DuckDB connector)

DuckDB 커넥터는 외부 DuckDB 인스턴스의 테이블을 질의하고 생성할 수 있게 해 줘요. DuckDB와 Hive 같은 서로 다른 시스템 사이의 데이터를 조인하거나, 두 개의 서로 다른 DuckDB 인스턴스 사이의 데이터를 조인할 때 쓸 수 있어요.

출처: 문서

본문

요구사항 (Requirements)

  • 모든 클러스터 노드에 DuckDB JDBC 드라이버가 요구하는 libstdc++가 포함되어야 해요.
  • 영속 DuckDB 데이터베이스의 경로가 모든 클러스터 노드에서 동일하고 사용 가능해야 하며, 같은 스토리지 위치를 가리켜야 해요.

설정 (Configuration)

이 커넥터는 DuckDB 데이터베이스를 질의할 수 있어요. connector.nameduckdb로 설정해 DuckDB 커넥터를 지정하는 카탈로그 속성 파일을 만드세요.

예를 들어 example 카탈로그로 데이터베이스에 접근하려면 etc/catalog/example.properties 파일을 만들고, 연결 속성은 환경에 맞게 바꾸세요:

connector.name=duckdb
connection-url=jdbc:duckdb:

메타데이터 캐시를 비우고 싶을 때:

USE example.example_schema;
CALL system.flush_metadata_cache();

DuckDB에 대해 SQL로 명령을 실행할 수 있어요:

USE example.example_schema;
CALL system.execute(query => 'ALTER TABLE your_table ALTER COLUMN your_column DROP DEFAULT');

테이블 함수로 결과를 받아올 수도 있어요:

SELECT
  *
FROM
  TABLE(
    example.system.query(
      query => 'SELECT
        *
      FROM
        tpch.nation'
    )
  );

더 알아보기 (Learn more)

다른 임베디드·로컬 커넥터가 궁금하다면 SQLite 커넥터 문서를 이어서 읽어 보세요.