源配置
Quickwit 可以从一个或多个来源将数据插入到索引中。
可以在创建索引后使用 CLI 命令 quickwit source create
添加来源。
也可以使用 quickwit source enable/disable
子命令启用或禁用来源。
来源是通过一个称为来源配置的对象声明的,该对象定义了来源的设置。它由多个参数组成:
- 来源 ID
- 来源类型
- 来源参数
- 输入格式
- 每个索引器的最大管道数(可选)
- 期望的管道数(可选)
- 转换参数(可选)
Source ID
来源 ID 是一个字符串,用于在索引内唯一标识来源。它只能包含大写或小写的 ASCII 字母、数字、连字符 (-
) 和下划线 (_
)。最后,它必须以字母开头,并且至少包含 3 个字符,但不超过 255 个。
Source type
来源类型指定了正在配置的来源种类。截至版本 0.5,可用的来源类型有 ingest-api
、kafka
、kinesis
和 pulsar
。file
类型也受支持,但仅用于从 CLI 进行本地摄入。
Source parameters
来源参数指示如何连接到数据存储,并且特定于来源类型。
File source
文件来源从包含由新行分隔的 JSON 对象(NDJSON)的文件中读取数据。如果文件名以 .gz
后缀结尾,则支持 Gzip 压缩。
Ingest a single file (CLI only)
要摄入特定文件,请直接在临时 CLI 进程中运行索引:
./quickwit tool local-ingest --index <index> --input-path <input-path>
本地文件和对象文件都受支持,前提是环境已使用适当的权限进行配置。有一个教程可供参考 这里。
基于通知的文件摄入 (Beta)
Quickwit 可以自动摄入所有上传到 S3 存储桶的新文件。这需要创建并配置一个 SQS 通知队列。一个完整的示例可以在 这个教程 中找到。
notifications
参数接受一个通知设置数组。目前每个来源可以配置一 个通知器,并且仅支持 SQS 通知 type
。
SQS notifications
参数项所需的字段:
type
:sqs
queue_url
: SQS 队列的完整 URL(例如https://sqs.us-east-1.amazonaws.com/123456789012/queue-name
)message_type
: 消息负载的格式,可以是s3_notification
: 一个 S3 事件通知raw_uri
: 包含文件对象 URI 的消息(例如s3://mybucket/mykey
)
使用 CLI 向索引添加带有 SQS 通知的文件来源
cat << EOF > source-config.yaml
version: 0.8
source_id: my-sqs-file-source
source_type: file
num_pipelines: 2
params:
notifications:
- type: sqs
queue_url: https://sqs.us-east-1.amazonaws.com/123456789012/queue-name
message_type: s3_notification
EOF
./quickwit source create --index my-index --source-config source-config.yaml
Ingest API source
Ingest API 来源从 Ingest API 读取数据。此来源会在创建索引时自动生成,不能删除或禁用。
Kafka source
Kafka 来源从 Kafka 流中读取数据。流中的每条消息必须包含一个 JSON 对象。
有一个教程可供参考 这里。