Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

PostgreSQL 인터페이스

ClickHouse Cloud에서 지원되지 않음

ClickHouse는 PostgreSQL wire 프로토콜을 지원하므로 Postgres 클라이언트를 사용해 ClickHouse에 연결할 수 있습니다. 어떤 면에서는 ClickHouse가 PostgreSQL 인스턴스처럼 동작할 수 있으므로, ClickHouse에서 아직 직접 지원하지 않는 PostgreSQL 클라이언트 애플리케이션(예: Amazon Redshift)도 ClickHouse에 연결할 수 있습니다.

PostgreSQL wire 프로토콜을 활성화하려면 서버의 설정 파일에 postgresql_port 설정을 추가하십시오. 예를 들어 config.d 폴더의 새 XML 파일에 포트를 정의할 수 있습니다:

<clickhouse>
    <postgresql_port>9005</postgresql_port>
</clickhouse>

ClickHouse 서버를 시작한 다음, Listening for PostgreSQL compatibility protocol이 포함된 다음과 유사한 로그 메시지를 찾으십시오:

{} <Information> Application: Listening for PostgreSQL compatibility protocol: 127.0.0.1:9005

ClickHouse에 psql 연결하기

다음 명령은 PostgreSQL 클라이언트 psql을 ClickHouse에 연결하는 예를 보여줍니다:

psql -p [port] -h [hostname] -U [username] [database_name]

예를 들면:

psql -p 9005 -h 127.0.0.1 -U alice default

psql 클라이언트에서 비밀번호를 요청합니다:

Password for user alice:
psql (14.2, server 22.3.1.1)
WARNING: psql major version 14, server major version 22.
         Some psql features might not work.
Type "help" for help.

default=>

이제 설정이 완료되었습니다! 이제 ClickHouse에 연결된 PostgreSQL 클라이언트를 사용할 수 있으며, 모든 명령과 쿼리는 ClickHouse에서 실행됩니다.

SSL 사용

ClickHouse 인스턴스에 SSL/TLS가 구성되어 있으면 postgresql_port는 동일한 설정을 사용합니다(이 포트는 보안 클라이언트와 비보안 클라이언트가 모두 공유합니다).

클라이언트마다 SSL을 사용해 연결하는 방법이 다릅니다. 다음 명령은 인증서와 개인 키를 전달해 psql을 ClickHouse에 안전하게 연결하는 방법을 보여줍니다:

psql "port=9005 host=127.0.0.1 user=alice dbname=default sslcert=/path/to/certificate.pem sslkey=/path/to/key.pem sslrootcert=/path/to/rootcert.pem sslmode=verify-ca"

SCRAM-SHA-256을 사용한 ClickHouse 사용자 인증 구성

ClickHouse에서 안전한 사용자 인증을 위해 SCRAM-SHA-256 프로토콜 사용을 권장합니다. users.xml 파일에서 password_scram_sha256_hex 요소를 지정하여 사용자를 구성하십시오. 비밀번호 해시는 num_iterations=4096으로 생성해야 합니다.

연결 시 psql 클라이언트가 SCRAM-SHA-256을 지원하고 해당 방식으로 협상하는지 확인하십시오.

비밀번호가 abacaba인 사용자 user_with_sha256의 예시 구성:

<user_with_sha256>
    <password_scram_sha256_hex>04e7a70338d7af7bb6142fe7e19fef46d9b605f3e78b932a60e8200ef9154976</password_scram_sha256_hex>
</user_with_sha256>

SSL 설정에 대한 자세한 내용은 PostgreSQL 문서를 참조하십시오.

Navigation