我正在尝试使用以下配置让 Apache Drill 连接到 PostgreSQL 数据库
# storage-plugins-override.conf
"postgresql": {
"type": "jdbc",
"driver": "org.postgresql.Driver",
"url": "${POSTGRES_URL}",
"username": "${POSTGRES_USER}",
"password": "${POSTGRES_PASSWORD}",
"enabled": true,
"sourceParameters": {
"minimumIdle": 0,
"autoCommit": true,
"connectionTestQuery": "select version() as postgresql_version",
"dataSource.cachePrepStmts": true,
"dataSource.prepStmtCacheSize": 250
}
运行以下命令时:
docker run -it --name drill -p 8048:8047 -p 31011:31010 \
-e GCS_KEY_FILE -e DATA_PATH -e POSTGRES_URL -e POSTGRES_USER -e POSTGRES_PASSWORD \
-v /home/indio/drill/bq:/tmp/data \
-v /home/indio/drill/drill-override.conf:/opt/drill/conf/drill-override.conf \
-v /home/indio/drill/storage-plugins-override.conf:/opt/drill/conf/storage-plugins-override.conf \
-v /home/indio/drill/postgres-sample-data:/opt/drill/sample-data/postgres \
-v /home/indio/drill/postgresql-42.6.0.jar:/opt/drill/jars/3rdparty/postgresql-42.6.0.jar \
apache/drill \
/opt/drill/bin/sqlline -u "jdbc:drill:zk=local" -n admin -p admin
使用
https://drill.apache.org/docs/rdbms-storage-plugin/中提供的说明下载
postgresql-42.6.0.jar
插件。
注意到两件事:
apache drill> SHOW SCHEMAS;
+--------------------+
| SCHEMA_NAME |
+--------------------+
| dfs.default |
| dfs.root |
| dfs.tmp |
| information_schema |
| sys |
| cp.default |
+--------------------+
6 rows selected (0.104 seconds)
和
apache drill> use pgdb;
Error: VALIDATION ERROR: Schema [pgdb] is not valid with respect to either root schema or current default schema.
Current default schema: No default schema selected
[Error Id: 3fffb76d-92f8-4c17-97e7-1d5f022a9ee1 ] (state=,code=0)
apache drill>
在WebUI上,我在存储选项卡下的“启用存储插件”上没有看到rdbms插件。
我做错了什么?
请尝试使用提供的 /opt/drill/bin/drill-embedded 启动嵌入式 Drill,以防某些初始化未进行。
看来你必须先启用存储插件。在右侧的 Web UI 中找到 RDBMS 插件并手动启用它。