Skip to main content

存储配置

支持的存储提供商

Quickwit 目前支持四种类型的存储提供商:

  • Amazon S3 和 S3 兼容(Garage、MinIO 等)
  • Azure Blob 存储
  • 本地文件存储*
  • Google Cloud Storage(原生 API)

存储 URI

存储 URI 通过 URI “协议” 或 “方案” 来标识不同的存储提供商。Quickwit 支持以下存储 URI 协议:

  • s3:// 用于 Amazon S3 和 S3 兼容
  • azure:// 用于 Azure Blob 存储
  • file:// 用于本地文件系统
  • gs:// 用于 Google Cloud Storage

通常情况下,您可以在任何直观地期望文件路径的地方使用存储 URI 或文件路径。例如:

  • 设置索引的 index_uri 以指定存储提供商和位置;
  • 在节点配置中设置 metastore_uri 以建立基于文件的元数据存储;
  • 作为命令行参数传递文件路径。

本地文件存储 URI

Quickwit 将常规文件路径解释为本地文件系统 URI。允许使用相对文件路径,并且它们相对于当前工作目录(CWD)进行解析。可以使用 ~ 作为快捷方式来引用用户的主目录。以下是有效的本地文件系统 URI:

- /var/quickwit
- file:///var/quickwit
- /home/quickwit/data
- ~/data
- ./quickwit
caution

当使用 file:// 协议时,需要第三个 / 来表示绝对路径。例如,URI file://home/quickwit/ 被解释为 ./home/quickwit

存储配置

此部分包含针对每个存储提供商的一个配置子部分。如果未显式设置存储配置参数,则 Quickwit 依赖于存储提供商 SDK(Azure SDK for RustAWS SDK for Rust)提供的默认值。

S3 存储配置

属性描述默认值
flavor可选的存储风味。可用的风味包括 digital_oceangaragegcsminio
access_key_idAWS 访问密钥 ID。
secret_access_keyAWS 密钥访问密钥。
region发送请求的 AWS 区域。us-east-1(SDK 默认值)
endpoint与 S3 兼容提供商一起使用的自定义端点。SDK 默认值
force_path_style_access禁用 虚拟主机风格请求。某些 S3 兼容提供商(Ceph、MinIO)要求使用。false
disable_multi_object_delete禁用 多对象删除请求。某些 S3 兼容提供商(GCS)要求使用。false
disable_multipart_upload禁用 多部分上传对象。某些 S3 兼容提供商(GCS)要求使用。false
warning

将凭证硬编码到配置文件中是不安全的,强烈不建议这样做。优先考虑您的存储后端可能提供的替代认证方法。

环境变量

环境变量描述
QW_S3_ENDPOINT自定义 S3 端点。
QW_S3_MAX_CONCURRENCY限制对 S3 的并发请求数量。

Storage flavors(存储风味)

Storage flavors 确保 Quickwit 通过自动配置适当的设置与偏离 S3 API 的存储提供商正确工作。可用的风味包括:

  • digital_ocean
  • garage
  • gcs
  • minio

Digital Ocean

Digital Ocean flavor (digital_ocean) 强制使用路径风格访问,并关闭多对象删除请求。

Garage flavor

Garage flavor (garage) 覆盖 region 参数为 garage 并强制使用路径风格访问。

Google Cloud Storage

Google Cloud Storage flavor (gcs) 关闭多对象删除请求和多部分上传。

MinIO flavor

MinIO flavor (minio) 强制使用路径风格访问。

Google Cloud Storage 的存储配置 YAML 格式示例:

storage:
s3:
flavor: gcs
region: us-east1
endpoint: https://storage.googleapis.com

Azure 存储配置

属性描述默认值
accountAzure 存储账户名称。
access_keyAzure 存储账户访问密钥。

环境变量

环境变量描述
QW_AZURE_STORAGE_ACCOUNTAzure Blob 存储账户名称。
QW_AZURE_STORAGE_ACCESS_KEYAzure Blob 存储账户访问密钥。

Azure 的存储配置 YAML 格式示例:

storage:
azure:
account: your-azure-account-name
access_key: your-azure-access-key

各种对象存储提供商的存储配置示例

Garage

Garage 是一个为自托管定制的开源分布式对象存储服务。

storage:
s3:
flavor: garage
endpoint: http://127.0.0.1:3900

MinIO

MinIO 是一种高性能的对象存储。

storage:
s3:
flavor: minio
endpoint: http://127.0.0.1:9000

注意:default_index_root_uri 或索引 URI 不包含端点,您应该将其设置为典型的 S3 路径,如 s3://indexes