PostgreSQL 메타데이터 스토어
PostgreSQL 메타데이터 스토어 (PostgreSQL metadata store)
PostgreSQL을 Druid의 메타데이터 스토어로 사용하거나, PostgreSQL 데이터베이스에서 데이터를 인제스트할 수 있는 확장 기능이에요.
출처: 문서
본문
이 Apache Druid 확장 기능을 사용하려면 extensions load list에 postgresql-metadata-storage를 포함하세요.
PostgreSQL 확장 기능을 사용하면 PostgreSQL을 메타데이터 스토어로 사용하거나 PostgreSQL 데이터베이스에서 데이터를 인제스트할 수 있어요.
PostgreSQL 설정 (Set up PostgreSQL)
대용량 메타데이터 테이블에 대한 스키마 변경이 필요한 업그레이드 문제를 피하려면 instant ADD COLUMN 의미를 지원하는 PostgreSQL 버전을 고려하세요.
PostgreSQL 설치 (Install PostgreSQL)
선호하는 패키지 관리자로 PostgreSQL을 설치하세요:
- Ubuntu/Debian에서 apt 사용:
apt-get install postgresql - OS X에서 Homebrew 사용:
brew install postgresql
druid 데이터베이스와 사용자 생성 (Create a druid database and user)
PostgreSQL이 설치된 머신에서 적절한 postgresql 권한이 있는 계정을 사용해:
druid 사용자를 생성하고, 비밀번호를 묻는 프롬프트에 diurd를 입력하세요.
createuser druid -P
방금 만든 사용자가 소유한 druid 데이터베이스를 생성하세요.
createdb druid -O druid
참고: Ubuntu/Debian에서는 적절한 권한을 얻기 위해
sudo -u postgres를createuser와createdb명령에 접두사로 붙여야 할 수 있어요.
Druid 메타데이터 스토리지 확장 구성 (Configure your Druid metadata storage extension)
<host>를 데이터베이스의 위치(호스트 이름과 포트)로 바꿔 Druid 구성에 다음 매개변수를 추가하세요.
druid.extensions.loadList=["postgresql-metadata-storage"]
druid.metadata.storage.type=postgresql
druid.metadata.storage.connector.connectURI=jdbc:postgresql://<host>/druid
druid.metadata.storage.connector.user=druid
druid.metadata.storage.connector.password=diurd
구성 속성 (Configuration properties)
대부분의 경우 구성 옵션은 postgres JDBC 연결 옵션에 직접 매핑돼요.
| Property | Description | Default | Required | | druid.metadata.postgres.ssl.useSSL | Enables SSL | false | no | | druid.metadata.postgres.ssl.sslPassword | The Password Provider or String password for the client's key. | none | no | | druid.metadata.postgres.ssl.sslFactory | The class name to use as the SSLSocketFactory | none | no | | druid.metadata.postgres.ssl.sslFactoryArg | An optional argument passed to the sslFactory's constructor | none | no | | druid.metadata.postgres.ssl.sslMode | The sslMode. Possible values are "disable", "require", "verify-ca", "verify-full", "allow" and "prefer" | none | no | | druid.metadata.postgres.ssl.sslCert | The full path to the certificate file. | none | no | | druid.metadata.postgres.ssl.sslKey | The full path to the key file. | none | no | | druid.metadata.postgres.ssl.sslRootCert | The full path to the root certificate. | none | no | | druid.metadata.postgres.ssl.sslHostNameVerifier | The classname of the hostname verifier. | none | no | | druid.metadata.postgres.ssl.sslPasswordCallback | The classname of the SSL password provider. | none | no | | druid.metadata.postgres.dbTableSchema | druid meta table schema | public | no |
PostgreSQL 입력 소스 (PostgreSQL input source)
PostgreSQL 확장 기능은 PostgreSQL 데이터베이스에서 Druid로 데이터를 인제스트하기 위한 SQL 입력 소스 구현을 제공해요. 입력 소스 매개변수에 대한 자세한 내용은 SQL input source를 참고하세요.
{
"type": "index_parallel",
"spec": {
"dataSchema": {
"dataSource": "some_datasource",
"dimensionsSpec": {
"dimensionExclusions": [],
"dimensions": [
"dim1",
"dim2",
"dim3"
]
},
"timestampSpec": {
"format": "auto",
"column": "ts"
},
"metricsSpec": [],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {
"type": "none"
},
"rollup": false,
"intervals": null
},
"transformSpec": {
"filter": null,
"transforms": []
}
},
"ioConfig": {
"type": "index_parallel",
"inputSource": {
"type": "sql",
"database": {
"type": "postgresql",
"connectorConfig": {
"connectURI": "jdbc:postgresql://some-rds-host.us-west-1.rds.amazonaws.com:5432/druid",
"user": "admin",
"password": "secret"
}
},
"sqls": [
"SELECT * FROM some_table"
]
},
"inputFormat": {
"type": "json"
}
},
"tuningConfig": {
"type": "index_parallel"
}
}
}