SuperAPI AI 工具集

elasticsearch-file-ingest

数据与分析

查看项目

更新于 10-16 06:22

技能介绍

用途:把大型数据文件(NDJSON、CSV、Parquet、Arrow IPC)以流式方式导入 Elasticsearch,支持导入过程中的自定义转换。

主要能力:流式处理大文件避免内存溢出;声明可在普通硬件上达到每秒 5 万+文档;支持 NDJSON、CSV、Parquet、Arrow IPC;导入时用 JavaScript 函数做转换(富化、拆分、过滤);支持通配符批量导入多个文件(如 logs/*.json);支持把一条源文档拆成多条目标文档。

前提与安装:需要可访问的 Elasticsearch 8.x 或 9.x 与 Node.js 22+。技能自带 scripts/ 与 package.json,先在该目录运行 npm install。连接仅通过环境变量配置,凭证不得作为命令行参数传入。可选方式包括 Elastic Cloud(ELASTICSEARCH_CLOUD_ID 与 ELASTICSEARCH_API_KEY)、URL+API Key、Basic 认证,或本地开发;私有 CA 可用 NODE_EXTRA_CA_CERTS 指向 CA 包。

使用方式:先用 node scripts/ingest.js test 验证连接,通过后再导入。例如 node scripts/ingest.js ingest --file /absolute/path/to/users.csv --source-format csv --target users,或用 cat 管道经 --stdin 读取 NDJSON/CSV。可选 --mappings 指定映射、--transform 指定转换脚本、--delete-index 删除已存在目标索引、--pipeline 指定摄取管道。

限制:不得将 --infer-mappings 与 --source-format 同用,否则会双重解析导致空索引;推断应单独使用。--delete-index 等破坏性操作须用户明确确认。测试失败时输出配置选项并停止,不得排查凭证;不得回显或记录凭证变量。重索引/迁移、实时摄取、企业管道、内置转换等场景应改用其他工具。官方文档未提供收费与价格信息。