开源数据发现平台:Amundsen Search Service 搜索服务

Amundsen 是一个数据发现和元数据引擎,旨在提高数据分析师、数据科学家和工程师与数据交互时的生产力。目前,它通过索引数据资源(表格、仪表板、数据流等)并基于使用模式(例如,查询频率高的表格会优先于查询频率低的表格)提供页面排名式的搜索功能来实现这一目标。您可以将其视为数据版的 Google 搜索。该项目以挪威探险家罗尔德·阿蒙森 (Roald Amundsen) 的名字命名,他是第一个发现南极的人。

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

文档

从发行版启动搜索服务

bash 复制代码
$ 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

从源码启动搜索服务

bash 复制代码
$ 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 启动服务

bash 复制代码
$ 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 等生产级服务器。

bash 复制代码
$ 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 文档

开发者指南

代码规范

API 文档

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

风险提示与免责声明

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

相关推荐
船长@Quant4 天前
开源数据发现平台:Amundsen Frontend Service 安装 & 开发者指南
元数据管理·amundsen·元数据发现·元数据协作·数据血缘分析·数据目录构建·数据资产搜索
船长@Quant7 天前
元数据管理与数据治理平台:Apache Atlas 基本搜索 Basic Search
hadoop·数据治理·元数据管理·数据血缘·gdpr合规·apache atlas
moton20176 个月前
一.数据治理理论架构
大数据·数据仓库·数据治理·etl·数据湖·元数据管理·主数据管理
PersistJiao8 个月前
4.基于 Couchbase 构建数据仓库的元数据管理方案
元数据管理
PersistJiao8 个月前
基于 Couchbase 数据仓库元数据管理的可行性方案
数据仓库·元数据管理·数据血缘
青云交8 个月前
大数据新视界 -- Hive 元数据管理:核心元数据的深度解析(上)(27 / 30)
hive·sql·元数据管理·数据目录·核心元数据·元数据存储·元数据操作·大数据管理基石
Aloudata1 年前
算子级血缘在金融数据环境的实践应用
元数据管理·数据血缘·主动元数据·数据链路
一切如来心秘密1 年前
元数据管理和数据目录对于现代数据平台的重要性——Lakehouse架构(四)
大数据·元数据管理
沛沛老爹2 年前
玩转大数据19:数据治理与元数据管理策略
大数据·数据治理·数据策略·元数据管理·数据质量控制·数据生命周期管理