配置 GreptimeDB
GreptimeDB 提供了层次化的配置能力,按照下列优先顺序来生效配置(每个项目都会覆盖下面的项目):
- Greptime 命令行选项
- 配置文件选项
- 环境变量
- 默认值
你只需要设置所需的配置项。 GreptimeDB 将为未配置的任何设置分配默认值。
如何设置配置项
Greptime 命令行选项
你可以使用命令行参数指定多个配置项。 例如,以配置的 HTTP 地址启动 GreptimeDB 的独立模式:
greptime standalone start --http-addr 127.0.0.1:4000
有关 Greptime 命令行支持的所有选项,请参阅 GreptimeDB 命令行界面。
配置文件选项
你可以在 TOML 文件中指定配置项。
例如,创建一个名为 standalone.example.toml
的配置文件,如下所示:
[storage]
type = "File"
data_home = "/tmp/greptimedb/"
然后使用命令行参数 -c [file_path]
指定配置文件。
greptime [standalone | frontend | datanode | metasrv] start -c config/standalone.example.toml
例如以 standalone 模式启动 GreptimeDB:
greptime standalone start -c standalone.example.toml
示例文件
以下是每个 GreptimeDB 组件的示例配置文件,包括所有可用配置项。 在实际场景中,你只需要配置所需的选项,不需要像示例文件中那样配置所有选项。
环境变量
配置文件中的每个项目都可以映射到环境变量。
例如,使用环境变量设置数据节点的 data_home
配置项:
# ...
[storage]
data_home = "/data/greptimedb"
# ...
使用以下 shell 命令以以下格式设置环境变量:
export GREPTIMEDB_DATANODE__STORAGE__DATA_HOME=/data/greptimedb
环境变量规则
-
每个环境变量应具有组件前缀,例如:
GREPTIMEDB_FRONTEND
GREPTIMEDB_METASRV
GREPTIMEDB_DATANODE
GREPTIMEDB_STANDALONE
-
使用**双下划线
__
**作为分隔符。例如,数据结构storage.data_home
转换为STORAGE__DATA_HOME
。
环境变量还接受以逗号 ,
分隔的列表,例如:
GREPTIMEDB_METASRV__META_CLIENT__METASRV_ADDRS=127.0.0.1:3001,127.0.0.1:3002,127.0.0.1:3003
协议选项
协议选项适用于 frontend
和 standalone
子命令,它指定了协议服务器地址和其他协议相关的选项。
下面的示例配置包含了所有协议选项的默认值。
你可以在配置文件中更改这些值或禁用某些协议。
例如禁用 OpenTSDB 协议支持,可以将 enable
参数设置为 false
。
请注意,为了保障数据库的正常工作,无法禁用 HTTP 和 gRPC 协议。
[http]
addr = "127.0.0.1:4000"
timeout = "30s"
body_limit = "64MB"
[grpc]
addr = "127.0.0.1:4001"
runtime_size = 8
[mysql]
enable = true
addr = "127.0.0.1:4002"
runtime_size = 2
[mysql.tls]
mode = "disable"
cert_path = ""
key_path = ""
[postgres]
enable = true
addr = "127.0.0.1:4003"
runtime_size = 2
[postgres.tls]
mode = "disable"
cert_path = ""
key_path = ""
[opentsdb]
enable = true
[influxdb]
enable = true
[prom_store]
enable = true
下表描述了每个选项的详细信息:
选项 | 键 | 类型 | 描述 |
---|---|---|---|
http | HTTP 服务器选项 | ||
addr | 字符串 | 服务器地址,默认为 "127.0.0.1:4000" | |
timeout | 字符串 | HTTP 请求超时时间,默认为 "30s" | |
body_limit | 字符串 | HTTP 最大体积大小,默认为 "64MB" | |
is_strict_mode | 布尔值 | 是否启用协议的严格校验模式,启用会轻微影响性能,默认为 false | |
grpc | gRPC 服务器选项 | ||
addr | 字符串 | 服务器地址,默认为 "127.0.0.1:4001" | |
runtime_size | 整数 | 服务器工作线程数量,默认为 8 | |
mysql | MySQL 服务器选项 | ||
enable | 布尔值 | 是否启用 MySQL 协议,默认为 true | |
addr | 字符串 | 服务器地址,默认为 "127.0.0.1:4002" | |
runtime_size | 整数 | 服务器工作线程数量,默认为 2 | |
influxdb | InfluxDB 协议选项 | ||
enable | 布尔值 | 是否在 HTTP API 中启用 InfluxDB 协议,默认为 true | |
opentsdb | OpenTSDB 协议选项 | ||
enable | 布尔值 | 是否启用 OpenTSDB 协议,默认为 true | |
prom_store | Prometheus 远程存储选项 | ||
enable | 布尔值 | 是否在 HTTP API 中启用 Prometheus 远程读写,默认为 true | |
with_metric_engine | 布尔值 | 是否在 Prometheus 远程写入中使用 Metric Engine,默认为 true | |
postgres | PostgresSQL 服务器选项 | ||
enable | 布尔值 | 是否启用 PostgresSQL 协议,默认为 true | |
addr | 字符串 | 服务器地址,默认为 "127.0.0.1:4003" | |
runtime_size | 整数 | 服务器工作线程数量,默认为 2 |
存储选项
存储
选项在 datanode
和 standalone
模式下有效,它指定了数据库数据目录和其他存储相关的选项。
GreptimeDB 支持将数据保存在本地文件系统, AWS S3 以及其兼容服务(比如 MinIO、digitalocean space、腾讯 COS、百度对象存储(BOS)等),Azure Blob Storage 和阿里云 OSS。
选项 | 键 | 类型 | 描述 |
---|---|---|---|
storage | 存储选项 | ||
type | 字符串 | 存储类型,支持 "File","S3" 和 "Oss" 等. | |
File | 本地文件存储选项,当 type="File" 时有效 | ||
data_home | 字符串 | 数据库存储根目录,默认为 "/tmp/greptimedb" | |
S3 | AWS S3 存储选项,当 type="S3" 时有效 | ||
bucket | 字符串 | S3 桶名称 | |
root | 字符串 | S3 桶中的根路径 | |
endpoint | 字符串 | S3 的 API 端点 | |
region | 字符串 | S3 区域 | |
access_key_id | 字符串 | S3 访问密钥 id | |
secret_access_key | 字符串 | S3 秘密访问密钥 | |
Oss | 阿里云 OSS 存储选项,当 type="Oss" 时有效 | ||
bucket | 字符串 | OSS 桶名称 | |
root | 字符串 | OSS 桶中的根路径 | |
endpoint | 字符串 | OSS 的 API 端点 | |
access_key_id | 字符串 | OSS 访问密钥 id | |
secret_access_key | 字符串 | OSS 秘密访问密钥 | |
Azblob | Azure Blob 存储选项,当 type="Azblob" 时有效 | ||
container | 字符串 | 容器名称 | |
root | 字符串 | 容器中的根路径 | |
endpoint | 字符串 | Azure Blob 存储的 API 端点 | |
account_name | 字符串 | Azure Blob 存储的账户名 | |
account_key | 字符串 | 访问密钥 | |
sas_token | 字符串 | 共享访问签名 | |
Gsc | Google Cloud Storage 存储选项,当 type="Gsc" 时有效 | ||
root | 字符串 | Gsc 桶中的根路径 | |
bucket | 字符串 | Gsc 桶名称 | |
scope | 字符串 | Gsc 权限 | |
credential_path | 字符串 | Gsc 访问证书 | |
endpoint | 字符串 | GSC 的 API 端点 |
文件存储配置范例:
[storage]
type = "File"
data_home = "/tmp/greptimedb/"
s3 配置范例:
[storage]
type = "S3"
bucket = "test_greptimedb"
root = "/greptimedb"
access_key_id = "<access key id>"
secret_access_key = "<secret access key>"