开源数据发现平台:Amundsen Search Service 搜索服务
Amundsen 是一个数据发现和元数据引擎,旨在提高数据分析师、数据科学家和工程师与数据交互时的生产力。目前,它通过索引数据资源(表格、仪表板、数据流等)并基于使用模式(例如,查询频率高的表格会优先于查询频率低的表格)提供页面排名式的搜索功能来实现这一目标。您可以将其视为数据版的 Google 搜索。该项目以挪威探险家罗尔德·阿蒙森 (Roald Amundsen) 的名字命名,他是第一个发现南极的人。
Amundsen Search Service
Amundsen 搜索服务
搜索和文档更新的最新端点是 /v2/search
和 /v2/document
。此 API 仅可与代理类 ElaticsearchProxyV2_1 配合使用。请参考此搜索服务更新文档了解最新变更。
Amundsen 搜索服务提供 RESTful API,负责元数据搜索功能。该服务主要利用 Elasticsearch 实现搜索能力。
默认搜索以下四个索引:
- table_search_index_v2_1
- user_search_index_v2_1
- dashboard_search_index_v2_1
- feature_search_index_v2_1
有关 Amundsen 及其他服务的信息,请参阅README.md。另请查看我们的快速入门指南(含虚拟数据设置)和架构概览。
要求
- Python >= 3.8
- Elasticsearch 支持版本:
- 7.x
- 8.0.0
文档
- https://www.amundsen.io/amundsen
从发行版启动搜索服务
$ venv_path=[虚拟环境路径]
$ python3 -m venv $venv_path
$ source $venv_path/bin/activate
$ python3 setup.py install
$ python3 search_service/search_wsgi.py# 另启终端验证服务状态:
$ curl -v http://localhost:5001/healthcheck
从源码启动搜索服务
$ git clone https://github.com/amundsen-io/amundsen.git
$ cd search
$ venv_path=[虚拟环境路径]
$ python3 -m venv $venv_path
$ source $venv_path/bin/activate
$ pip3 install -e ".[all]" .
$ python3 search_service/search_wsgi.py# 另启终端验证服务状态:
$ curl -v http://localhost:5001/healthcheck
通过 Docker 启动服务
$ docker pull amundsendev/amundsen-search:latest
$ docker run -p 5001:5001 amundsendev/amundsen-search
# 生产环境替代方案(使用 Gunicorn):
$ ## docker run -p 5001:5001 amundsendev/amundsen-search gunicorn --bind 0.0.0.0:5001 search_service.search_wsgi# 另启终端验证服务状态:
$ curl -v http://localhost:5001/healthcheck
生产环境
默认 Flask 使用 Werkzeug 开发服务器,生产环境应使用 Gunicorn 等生产级服务器。
$ pip3 install gunicorn
$ gunicorn search_service.search_wsgi# 另启终端验证服务状态:
$ curl -v http://localhost:8000/healthcheck
更多配置详见Gunicorn 文档。
非本地环境配置
默认搜索服务使用LocalConfig连接本地 Elasticsearch。如需使用其他终端节点,需创建自定义Config类,并通过环境变量:SEARCH_SVC_CONFIG_MODULE_CLASS
引用。
例如创建生产环境配置:
- 继承 Config 类创建 ProdConfig
- 置于 search_service.config 模块
- 设置环境变量:
SEARCH_SVC_CONFIG_MODULE_CLASS=search_service.config.ProdConfig
更多配置加载机制参见 Flask 文档。
开发者指南
代码规范
-
PEP 8:遵循 Python 代码风格指南
-
类型提示:使用类型标注增强可读性
API 文档
基于 OpenApi 3.0.2 的 Swagger 文档通过 Flasgger 生成。API 变更时请同步更新文档。访问 localhost:5001/apidocs/
查看文档(当前仅支持本地配置环境)。
风险提示与免责声明
本文内容基于公开信息研究整理,不构成任何形式的投资建议。历史表现不应作为未来收益保证,市场存在不可预见的波动风险。投资者需结合自身财务状况及风险承受能力独立决策,并自行承担交易结果。作者及发布方不对任何依据本文操作导致的损失承担法律责任。市场有风险,投资须谨慎。