查询服务器配置
配置文件 databend-query.toml
用来配置 Databend 查询服务器。 此外,您还可以用脚本 databend-query
对查询服务器进行更多配置。 更多信息,请参阅脚本的帮助信息:
./databend-query -h
此主题讲解配置文件 databend-query.toml
中的设置项。
tip
你可以在 GitHub 上找到适用于一些典型部署场景的样本配置文件。 这些文件是为内部测试而创建的。 请不要擅自修改。 但如果你有类似的部署,最好在编辑你自己的配置文件时参考它们。
1. 日志配置
log.file
- on:开启或关闭
文件
日志。 默认为true
。 - dir:存储日志文件的路径。
- level:日志级别(DEBUG | INFO | ERROR)。 默认为
INFO
。 - format:日志格式。 Defaults to
json
.json
: Databend 输出日志格式为 JSON 格式。text
: Databend 输出纯文本日志。
log.stderr
- on:开启或禁用
stderr
日志。 Defaults tofalse
. - level:日志级别(DEBUG | INFO | ERROR)。 默认为
DEBUG
。 - format:日志格式。 Defaults to
text
.text
:Databend 输出纯文本日志。json
: Databend 输出日志格式为 JSON 格式。
2. Meta 服务配置
username
- 连接到 Meta 服务的用户名。
- 默认:
"root"
。 - 环境变量:
META_USERNAME
。
password
- 连接到 Meta 服务的密码。 Databend 建议使用环境变量来提供密码。
- 默认:
"root"
。 - 环境变量:
META_PASWORD
。
endpoints
- 设置此查询服务器可以连接的一个或多个 Meta 服务器端点。 在集群中尽可能包含多个 Meta 服务器作为备份,如
["192.168.0.1:9191", "192.168.0.2:9191"]
。 - 此设置仅在 Databend 集群模式下生效。 独立模式的 Databend 不需要配置此项。
- 默认:
["0.0.0.0:9191"]
。 - 环境变量:
META_ENDPOINTS
client_timeout_in_second
- 设置停止尝试连接 Meta 服务器之前的等待时间(秒)。
- 默认值: 60
auto_sync_interval
- 设置此查询服务器在集群内自动与 Meta 服务器同步的频率(秒),以检查它们是否可用。
- 要禁用同步,请将其设置为 0。
- 此设置仅在 Databend 集群模式下生效。 独立模式的 Databend 不需要配置此项。
- 默认值: 60
3. 查询配置
admin_api_address
- 为管理 databend-query 所监听的 IP 地址和端口,例如
0.0.0.0::8080
。 - 默认:
"127.0.0.1:8080"
。 - 环境变量:
QUERY_ADMIN_API_ADDRESS
metric_api_address
- Prometheus 扫描的 IP 地址和监听端口,例如
0.0.0::7070
。 - 默认:
"127.0.0.1:7070"
- 环境变量:
QUERY_METRIC_API_ADDRESS
flight_api_address
- 用于监听 databend-query 集群排序数据的 IP 地址和端口,例如
0.0.0.0::9090
。 - 默认:
"127.0.0.1:9090"
- 环境变量:
QUERY_FLIGHT_API_ADDRESS
mysql_handler_host
- MySQL Handler 的监听 IP 地址,例如
0.0.0.0
。 - 默认:
"127.0.0.1"
- 环境变量:
QUERY_MYSQL_HANDLER_HOST
mysql_handler_port
- MySQL Handler 的监听 IP 端口,例如
3307
。 - 默认:
3307
- 环境变量:
QUERY_MYSQL_HANDLER_PORT
clickhouse_handler_host
- ClickHouse Handler 的监听 IP 地址,例如
0.0.0.0
。 - 默认:
"127.0.0.1"
- 环境变量:
QUERY_CLICKHOUSE_HANDLER_HOST
clickhouse_http_handler_host
- ClickHouse HTTP Handler 的监听 IP 地址,例如
0.0.0.0
。 - 默认:
"127.0.0.1"
- 环境变量:
QUERY_CLICKHOUSE_HTTP_HANDLER_HOST
clickhouse_http_handler_port
- ClickHouse HTTP Handler 的监听 IP 端口,例如
8124
。 - 默认:
8124
- 环境变量:
QUERY_CLICKHOUSE_HTTP_HANDLER_PORT
tenant_id
- 租户唯一的标识符。存储租户元数据时会用到此 ID。
- 默认:
"admin"
- 环境变量:
QUERY_TENANT_ID
cluster_id
- 标识此 databend-query 节点所属的集群。
- 默认:
""
- 环境变量:
QUERY_CLUSTER_ID
4. 存储配置
type
- 设置查询服务器的存储类型,必须是
"fs"
,"s3"
,"azblob"
或"obs"
其中之一。 - 默认:
""
- 环境变量:
STORAGE_TYPE
- 必填。
storage.s3
bucket
- AWS S3 Bucket 名称
- 默认:
""
- 环境变量:
STORAGE_S3_BUCKET
- 必填。
endpoint_url
- AWS S3(或MinIO,S3兼容对象存储) 端点URL,例如
"https://s3.amazonaws.com"
。 - 默认:
"https://s3.amazonaws.com"
- 环境变量:
STORAGE_S3_ENDPOINT_URL
access_key_id
- AWS S3 access_key_id。
- 默认:
""
- 环境变量:
STORAGE_S3_ACCESS_KEY_ID
- 必填。
secret_access_key
- AWS S3 secret_access_key。
- 默认:
""
- 环境变量:
STORAGE_S3SECRET_ACCESS_KEY
- 必填。
storage.azblob
endpoint_url
- Azure Blob Storage 端点 URL, 例如,
"https://<your-storage-account-name>.blob.core.windows.net"
。 - 默认:
""
- 环境变量:
STORAGE_AZBLOB_ENDPOINT_URL
- 必填。
container
- Azure Blob Storage 容器名称。
- 默认:
""
- 环境变量:
STORAGE_AZBLOB_CONTAINER
- 必填。
account_name
- Azure Blob Storage 帐户名称。
- 默认:
""
- 环境变量:
STORAGE_AZBLOB_ACCOUNT_NAME
- 必填。
account_key
- Azure Blob Storage 账户密钥。
- 默认:
""
- 环境变量:
STORAGE_AZBLOB_ACCOUNT_KEY
- 必填。
storage.obs
bucket
- OBS bucket 名称。
- 默认:
""
- 环境变量:
STORAGE_OBS_BUCKET
- 必填。
endpoint_url
- OBS 端点 URL,例如,
"https://obs.cn-north-4.myhuaweicloud.com"
。 - 默认:
""
- 信使变量:
STORAGE_OBS_ENDPOINT_URL
- 必填。
access_key_id
- OBS access_key_id。
- 默认:
""
- 环境变量:
STORAGE_OBS_ACCESS_KEY_ID
- 必填。
secret_access_key
- OBS secret_access_key。
- 默认:
""
- 环境变量:
STORAGE_OBS_SECRET_ACCESS_KEY
- 必填。
配置文件示例
为了方便体验,以下将所有主机设置为 0.0.0.0。 生产环境设置主机时要谨慎。
databend-query.toml
# Logging
[log.file]
on = true
dir = "./.datanend/logs"
level = "INFO"
format = "json"
[log.stderr]
on = false
level = "DEBUG"
format = "text"
# Meta Service
[meta]
endpoints = ["0.0.0.0:9191"]
username = "root"
password = "root"
client_timeout_in_second = 60
auto_sync_interval = 60
[query]
# For admin RESET API.
admin_api_address = "0.0.0.0:8001"
# Metrics.
metric_api_address = "0.0.0.0:7071"
# Cluster flight RPC.
flight_api_address = "0.0.0.0:9091"
# Query MySQL Handler.
mysql_handler_host = "0.0.0.0"
mysql_handler_port = 3307
# Query ClickHouse Handler.
clickhouse_handler_host = "0.0.0.0"
clickhouse_handler_port = 9001
# Query HTTP Handler.
http_handler_host = "0.0.0.0"
http_handler_port = 8000
tenant_id = "tenant1"
cluster_id = "cluster1"
[storage]
# s3
type = "s3"
[storage.s3]
bucket = "databend"
endpoint_url = "https://s3.amazonaws.com"
access_key_id = "<your-key-id>"
secret_access_key = "<your-access-key>"