当前位置: 首页 > backend >正文

开源数据发现平台: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引用。

例如创建生产环境配置:

  1. 继承 Config 类创建 ProdConfig
  2. 置于 search_service.config 模块
  3. 设置环境变量:
    SEARCH_SVC_CONFIG_MODULE_CLASS=search_service.config.ProdConfig

更多配置加载机制参见 Flask 文档。

开发者指南

代码规范

  • PEP 8:遵循 Python 代码风格指南

  • 类型提示:使用类型标注增强可读性

API 文档

基于 OpenApi 3.0.2 的 Swagger 文档通过 Flasgger 生成。API 变更时请同步更新文档。访问 localhost:5001/apidocs/ 查看文档(当前仅支持本地配置环境)。

风险提示与免责声明
本文内容基于公开信息研究整理,不构成任何形式的投资建议。历史表现不应作为未来收益保证,市场存在不可预见的波动风险。投资者需结合自身财务状况及风险承受能力独立决策,并自行承担交易结果。作者及发布方不对任何依据本文操作导致的损失承担法律责任。市场有风险,投资须谨慎。

http://www.xdnf.cn/news/18029.html

相关文章:

  • SparkSQL性能优化实践指南
  • gRPC网络模型详解
  • 从0开始学习Java+AI知识点总结-17.web基础知识(数据库)
  • ARM汇编代码新手入门
  • 【人工智能99问】残差链接是什么,是如何起作用的?(28/99)
  • C语言相关简单数据结构:双向链表
  • 影刀 RAP 迁移华为云备忘录数据到得到笔记
  • C++编程实战:高效解决算法与数据结构问题
  • Python多线程、锁、多进程、异步编程
  • 自动驾驶中的传感器技术34——Lidar(9)
  • Python训练营打卡Day35-复习日
  • 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(五)
  • Pandas 和 NumPy的区别和联系
  • 安卓开发中遇到Medium Phone API 36.0 is already running as process XXX.
  • RK3568平台开发系列讲解:PCIE trainning失败怎么办
  • 计算机网络 OSI 七层模型和 TCP 五层模型
  • day43_2025-08-17
  • git stash临时保存工作区
  • Talk2BEV论文速读
  • Next.js跟React关系(Next.js是基于React库的全栈框架)(文件系统路由、服务端渲染SSR、静态生成SSG、增量静态再生ISR、API路由)
  • 【Python】-- 机器学习项目 - 基于KNN算法的鸢尾花分类
  • 基于飞算JavaAI实现布隆过滤器防止缓存穿透:原理、实践与全流程解析
  • HTTP0.9/1.0/1.1/2.0
  • 免费照片压缩网站
  • Android原生(Kotlin)与Flutter混合开发 - 设备控制与状态同步解决方案
  • Visual Studio Code 基础设置指南
  • C++ 特殊类设计与单例模式解析
  • 云计算-K8s 实战:Pod、安全上下文、HPA 、CRD、网络策略、亲和性等功能配置实操指南
  • 天地图开发的优点
  • Leaflet赋能:WebGIS视角下的省域区县天气可视化实战攻略