跳转到主要内容

查询服务器配置

配置文件 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 to false.
  • 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>"