開源數據發現平臺:Amundsen 快速上手指南

在這里插入圖片描述

Amundsen 是一個數據發現和元數據引擎,旨在提高數據分析師、數據科學家和工程師與數據交互時的生產力。目前,它通過索引數據資源(表格、儀表板、數據流等)并基于使用模式(例如,查詢頻率高的表格會優先于查詢頻率低的表格)提供頁面排名式的搜索功能來實現這一目標。您可以將其視為數據版的 Google 搜索。該項目以挪威探險家羅爾德·阿蒙森 (Roald Amundsen) 的名字命名,他是第一個發現南極的人。

1.1 Amundsen簡介

1.1.1 核心定位:開源數據發現平臺

  • 官方定義

    “Amundsen is a metadata driven application for improving the productivity of data analysts, data scientists and engineers when interacting with data.”
    (來源:Amundsen GitHub)

    • 關鍵解析
      • 元數據驅動:以元數據(數據描述、血緣、使用記錄等)為核心構建功能。
      • 提升數據生產力:解決數據從業者(分析師/科學家/工程師)的“數據發現難”問題。
  • 產品本質
    • 非數據存儲或處理引擎,而是 數據目錄(Data Catalog) —— 用于集中管理、索引和探索數據資產。

1.1.2 核心價值:數據民主化與協作

  • 元數據管理
    • 統一視圖:聚合分散的元數據(表結構、血緣、所有權),形成可搜索的目錄。
    • 減少重復工作:避免用戶手動維護電子表格或離線文檔。
  • 數據民主化
    • 降低數據發現門檻:通過關鍵詞搜索、過濾、排名和個性化推薦,讓非技術用戶快速定位數據。
    • 協作閉環:支持用戶添加描述、標簽、所有權聲明、常見查詢片段(如GitHub的協作模式)。

1.1.3 起源與設計原則

  • 誕生背景(源自Lyft工程博客):
    • Lyft為解決內部數據資產混亂問題于2019年開源,目前由 LF AI & Data Foundation 托管,仍保持 非商業化產品 治理模式。
  • 設計原則(官方架構文檔):
    1. 簡單優先:UI輕量易用(類Google搜索界面)。
    2. 可擴展性:微服務架構,支持通過 Databuilder 框架自定義元數據采集任務,支持 Elasticsearch/OpenSearch、PostgreSQL/MySQL、AWS Neptune、Neo4j 作為后端存儲。
    3. 社區驅動:由用戶貢獻迭代,核心維護者來自 Airbnb、Apple、Dremio、Stripe 等組織。

1.1.4 與其他工具對比

工具核心差異點
Atlas與 Hadoop 生態深度耦合,偏重安全與治理;Amundsen 輕量且 UI 友好。
DataHub原生支持流式元數據(Kafka)、GraphQL API;Amundsen 更早專注“搜索體驗優化”。
OpenMetadata同屬 Apache 開源目錄,側重元數據事件流與治理工作流;Amundsen 專注于搜索與協作體驗。

1.2 學習目標與范圍

1.2.1 適用人群與學習路徑

目標讀者

  • 數據從業者(分析師/工程師/科學家)
  • 希望零成本快速體驗開源數據目錄的初學者
  • 需理解元數據管理核心概念的技術愛好者

學習路徑設計

本地環境搭建
核心概念解析
基礎功能實操
自定義數據源實踐
端到端應用
  1. 漸進式實踐:從 Docker Compose 環境啟動 → 元數據注入 → 搜索/瀏覽 → 血緣協作
  2. 最小化技術棧:僅需基礎 Python/Docker Desktop/Docker Compose 知識

1.2.2 您將掌握的技能

能力維度具體成果
環境管理在個人電腦運行 Amundsen 全套服務(Frontend+Metadata+Search+Neo4j)
概念理解解析元數據模型/搜索排名原理/血緣協作邏輯
核心操作完成數據攝取 → 關鍵詞搜索 → 表詳情解讀 → 書簽添加的全流程
擴展實踐將本地 SQLite 數據庫注入為可發現的數據資產

1.2.3 內容邊界說明

為保障學習效率,本指南:

  • ? 專注:個人本地環境(非生產部署)
  • ? 簡化:使用官方默認配置 docker-amundsen.yml(非企業級優化)
  • ? 開放:所有代碼/配置源自 Amundsen GitHub
  • ? 不包含:云服務集成、大規模集群運維、商業定制化案例

1.3 官方資源概覽

1.3.1 核心學習資源

GitHub 主倉庫

  • 地址:https://github.com/amundsen-io/amundsen
  • 內容:
    • 源代碼(Frontend / Metadata / Search / Databuilder)
    • Docker 配置(docker-compose.yml)

官方文檔站點

  • 地址:https://www.amundsen.io/amundsen/
  • 關鍵文檔:
    • 安裝指南(Installation)
      圖片
    • 架構說明(Architecture)
      圖片
    • Databuilder 用法(Data Ingestion)
      圖片

社區支持渠道

  • Slack 工作組:amundsen-workspace
  • 問題討論區:GitHub Issues

1.3.2 學習前提知識

基礎工具能力

  • Docker 與 Docker Compose:
    • 容器創建/啟停命令(docker run, docker-compose up, docker-compose down
    • 日志查看(docker logs
  • Python 基礎:
    • 理解 Python 腳本結構(如 Databuilder 示例)
    • 包安裝(pip install

核心概念認知

  • 元數據基礎:表(Table)、列(Column)、血緣(Lineage)定義
  • 搜索引擎基礎:Elasticsearch 索引概念(非運維級)

A. 術語表

元數據 (Metadata)

定義:描述數據的數據(data about data)
Amundsen上下文

  • 表結構(名稱/列/類型/列描述)
  • 數據血緣關系
  • 表使用統計信息(查詢次數/活躍用戶)
  • 數據質量評分(SLA、Freshness、Completeness)

“Metadata is information about the data assets”
—— Amundsen Architecture Doc

元數據攝取 (Metadata Ingestion)

定義:從數據源提取元數據并加載到目錄系統的過程
技術流程

提取
轉換
加載
索引
數據源
Databuilder
清洗/增強
Neo4j
Elasticsearch

實現方式

  • 批處理作業(Airflow DAG 定時執行)
  • 流式攝取(Kafka Connect / Flink CDC)
  • 支持 CSV / SQL / RDBMS / Hive / Glue / dbt / Iceberg 等源

血緣追蹤 (Lineage Tracking)

定義:記錄數據從源頭到終端的完整流動路徑
Amundsen實現

# Neo4j 血緣關系模型
(:Table)-[:UPSTREAM]->(:Table)
(:Table)-[:COLUMN_UPSTREAM]->(:Column)
(:Dashboard)-[:DASHBOARD_UPSTREAM]->(:Table)

核心價值

  • 影響分析(上游變更影響范圍)
  • 故障溯源(數據異常定位)
  • 合規審計(數據來源證明)
  • 成本歸因(下游資源消耗追蹤)

數據目錄 (Data Catalog)

定義:集中化管理企業數據資產的元數據存儲庫
核心能力

  • 數據發現(全文搜索 / 過濾器 / 推薦)
  • 元數據管理(描述 / 標簽 / 所有權 / 生命周期)
  • 協作功能(書簽 / 評論 / 通知 / 審批)
  • 權限控制(表級 / 列級 / 行級)

“A metadata driven data discovery and catalog platform”
—— Amundsen Homepage

數據民主化 (Data Democratization)

定義:使非技術人員能夠自主發現和使用數據
實現機制

  • 類 Google 搜索界面(智能提示 / 分面搜索)
  • 業務友好的元數據描述(術語表集成)
  • 可視化血緣關系圖(列級血緣 / 分區血緣)
  • 數據預覽(采樣 / 統計摘要)
  • 自然語言查詢(與 LLM 集成)

效果衡量

  • 數據團隊查詢需求下降
  • 業務用戶自助分析比例上升
  • 數據資產利用率提升

BM25 排序 (BM25 Ranking)

定義:基于 BM25 概率模型的搜索結果評分算法
公式

score(D,Q)=∑i=1nIDF(qi)?f(qi,D)(k1+1)f(qi,D)+k1(1?b+b?∣D∣avgdl)\text{score}(D,Q)=\sum_{i=1}^{n}\text{IDF}(q_i)\cdot\frac{f(q_i,D)\,(k_1+1)}{f(q_i,D)+k_1\left(1-b+b\cdot\dfrac{|D|}{\text{avgdl}}\right)} score(D,Q)=i=1n?IDF(qi?)?f(qi?,D)+k1?(1?b+b?avgdlD?)f(qi?,D)(k1?+1)?

其中

  • IDF(qi)=ln??(N?n(qi)+0.5n(qi)+0.5)\text{IDF}(q_i)=\ln\!\left(\dfrac{N-n(q_i)+0.5}{n(q_i)+0.5}\right)IDF(qi?)=ln(n(qi?)+0.5N?n(qi?)+0.5?)
  • f(qi,D)f(q_i,D)f(qi?,D):詞項 qiq_iqi? 在文檔 DDD 中的詞頻
  • ∣D∣|D|D:文檔 DDD 的長度(詞項總數)
  • avgdl\text{avgdl}avgdl:整個索引的平均文檔長度
  • k1=1.2k_1=1.2k1?=1.2b=0.75b=0.75b=0.75 為 Elasticsearch/OpenSearch 的默認值 。

Amundsen應用

  • 檢索引擎:Elasticsearch / OpenSearch 默認 BM25
  • 字段權重:表名(10×) > 描述(5×) > 列名(1×)
  • 業務因子:黃金表 +15% 權重、最近更新 +10% 權重

可擴展架構 (Extensible Architecture)

定義:通過插件化設計支持功能擴展
Amundsen實現點

# 自定義提取器示例
from amundsen_common.models.table import TableMetadata
from databuilder.extractor.base_extractor import Extractorclass CustomExtractor(Extractor):def extract(self) -> TableMetadata:# 實現特定邏輯return table_metadata

擴展方向

  • 新數據源支持(Flink / Trino / Snowflake)
  • 存儲后端替換(PostgreSQL / Amazon Neptune)
  • 分析引擎集成(Superset / Mode / Tableau)
  • 身份認證插件(Okta / Auth0 / Azure AD)

元數據模型 (Metadata Model)

定義:描述元數據實體及關系的抽象結構
Amundsen核心實體

TableColumnUserTagBadgeWatermarkDashboardDashboardChartcontainsownsupstreamtagged_byhas_badgehas_watermarkcontainsreferences

設計原則

  • 全局唯一鍵標識資源(格式:database://cluster.schema/table)
  • 輕量化關系(無屬性邊,屬性存節點)
  • Schema Registry 保證向后兼容

協作式元數據 (Collaborative Metadata)

定義:通過用戶協作生成的元數據
典型形式

  • 表/列描述(Markdown 支持 / 富文本)
  • 數據質量標記(SLA、異常、棄用)
  • 使用建議注釋(查詢示例 / 最佳實踐)
  • 業務術語(與 DataHub Business Glossary 對齊)

Amundsen實現

  • 類 Wiki 的編輯系統(版本歷史 / 差異對比)
  • 變更通知(Slack / Teams / Email)
  • 審批工作流(Owner 審核 / Steward 審批)

風險提示與免責聲明
本文內容基于公開信息研究整理,不構成任何形式的投資建議。歷史表現不應作為未來收益保證,市場存在不可預見的波動風險。投資者需結合自身財務狀況及風險承受能力獨立決策,并自行承擔交易結果。作者及發布方不對任何依據本文操作導致的損失承擔法律責任。市場有風險,投資須謹慎。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918920.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918920.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918920.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【密碼學實戰】國密SM2算法介紹及加解密/簽名代碼實現示例

引言 在信息安全領域,密碼算法是數據保護的核心基石。2010 年,中國國家密碼管理局發布了 SM2 橢圓曲線公鑰密碼算法,作為國產密碼標準的核心成員,它憑借高效安全的特性,逐步替代 RSA 等國際算法,廣泛應用于…

QT開發中如何加載第三方dll文件

文章目錄🔧 一、隱式加載(靜態鏈接)操作步驟:?? 二、顯式加載(動態鏈接,推薦使用QLibrary)操作步驟:💻 三、直接調用Windows API(僅Windows)??…

后端學習資料 持續更新中

數據庫: 該網址包含:圖解MySql, 看明白誰也問不倒你~ 圖解計算機網絡、操作系統、計算機組成、MySQL、Redis,讓天下沒有難懂的八股文!https://xiaolincoding.com/

《嵌入式Linux應用編程(六):并發編程基礎:多進程exec函數族及多線程基礎》

一、exec函數族在一個進程里面執行另一個文件本質&#xff1a;將文本區的指令代碼替換成exec要執行的指令#include <unistd.h>參數&#xff1a;path:要執行的可執行文件的路徑和名稱arg:執行該可執行文件時需要傳遞的參數NULL&#xff1a;參數傳遞結束標志 返回值&#x…

【121頁PPT】智慧方案智慧綜合體智能化設計方案(附下載方式)

篇幅所限&#xff0c;本文只提供部分資料內容&#xff0c;完整資料請看下面鏈接 https://download.csdn.net/download/2501_92808859/91654007 資料解讀&#xff1a;【121頁PPT】智慧方案智慧綜合體智能化設計方案 詳細資料請看本解讀文章的最后內容 一、項目概述與智能化總…

Linux網絡基礎(一)

目錄 計算機網絡背景 網絡發展 初識 "協議" 網絡協議初識 協議分層 軟件分層的好處 打電話例子 OSI七層模型 TCP/IP五層(或四層)模型 參考資料 再識協議 為什么要有 TCP/IP 協議&#xff1f; 什么是 TCP/IP 協議&#xff1f; TCP/IP 協議與操作系統的關系(宏觀上&…

MySQL多表查詢案例

多表查詢本文介紹了多表查詢中的表關系概念和操作方法。主要內容包括&#xff1a;1.三種表關系類型&#xff08;一對多、多對多、一對一&#xff09;及其實現方式&#xff1b;2.多表查詢的四種連接方式&#xff08;內連接、左外連接、右外連接、自連接&#xff09;及語法&#…

Dify 從入門到精通(第 36/100 篇):Dify 的插件生態擴展

Dify 從入門到精通&#xff08;第 36/100 篇&#xff09;&#xff1a;Dify 的插件生態擴展 Dify 入門到精通系列文章目錄 第一篇《Dify 究竟是什么&#xff1f;真能開啟低代碼 AI 應用開發的未來&#xff1f;》介紹了 Dify 的定位與優勢第二篇《Dify 的核心組件&#xff1a;從…

【已解決】在Spring Boot工程中,若未識別到resources/db文件夾下的SQL文件

在Spring Boot工程中&#xff0c;若未識別到resources/db文件夾下的SQL文件&#xff0c;通常與資源路徑配置、構建工具設置或代碼加載方式有關。以下是逐步排查和解決方案&#xff1a;??1. 確認SQL文件存放路徑??Spring Boot默認從類路徑&#xff08;classpath:&#xff09…

【Java】網絡編程(4)

1. 再談 UDP 報文長度&#xff1a;也是 2 個字節&#xff0c; 0 - 65535&#xff0c;也就是 64 kb。這表示一個 UDP 數據包一次最多只能傳輸 64 kb 的數據校驗和&#xff1a;驗證數據是否在傳輸過程中發生修改。數據在傳輸過程中可能受到信號干擾&#xff0c;發生 “比特翻轉”…

QT(事件)

一、事件前言事件是QT的三大機制之一&#xff0c;一定程度上信號和槽也屬于事件的一種 QT中的事件指哪些&#xff1a;窗口關閉&#xff0c;窗口顯示&#xff0c;敲擊鍵盤&#xff0c;點擊鼠標左鍵、鼠標右鍵、鼠標滾輪&#xff0c;文件拖放等等1、事件循環QT中的所有事件&#…

基于 Vue2+Quill 的富文本編輯器全方案:功能實現與樣式優化

在 Web 開發中&#xff0c;富文本編輯器是內容管理系統、博客平臺等應用的核心組件。本文將詳細介紹如何基于 Vue 和 Quill 構建一個功能完善、樣式精美的富文本編輯器&#xff0c;重點解決字體字號選項冗長、樣式不美觀及功能完整性問題&#xff0c;提供可直接部署使用的完整方…

C#內嵌字符串格式化輸出

內嵌字符串格式輸出 double speedOfLight 299792.458;System.Globalization.CultureInfo.CurrentCulture System.Globalization.CultureInfo.GetCultureInfo("nl-NL"); string messageInCurrentCulture $"The speed of light is {speedOfLight:N3} km/s.&quo…

ThreeJS程序化生成城市大場景底座(性能測試)

一、簡介基于矢量geojson數據構建建筑、植被、道路等&#xff0c;實現城市場景底座。涉及渲染的性能優化無非就是眾所周知的那些事兒。視錐剔除、mesh合并、減少draw call、四叉樹、八叉樹、數據壓縮、WebWorker、著色器優化等。下面是對東莞市數十萬建筑以及海量3D樹的渲染測試…

?電風扇離線語音芯片方案設計與應用場景:基于 8 腳 MCU 與 WTK6900P 的創新融合

?電風扇離線語音芯片方案設計與應用場景&#xff1a;基于 8 腳 MCU 與 WTK6900P 的創新融合一、引言在智能家居領域蓬勃發展的當下&#xff0c;用戶對于家電產品的智能化和便捷性需求日益增長。傳統的電風扇控制方式&#xff0c;如按鍵操作或遙控器控制&#xff0c;在某些場景…

(第四篇)spring cloud之Consul注冊中心

目錄 一、介紹 二、安裝 三、整合代碼使用 1、創建服務提供者8006 2、創建服務消費者80 3、Eureka、zookeeper和consul的異同點 一、介紹 Consul 是一套開源的分布式服務發現和配置管理系統&#xff0c;由 HashiCorp 公司用 Go 語言開發。它提供了微服務系統中的服務治理…

NAT 和 PNAT

核心概念與背景 IPv4 地址枯竭&#xff1a; IPv4 地址空間有限&#xff08;約 42.9 億個&#xff09;&#xff0c;早已分配殆盡。NAT/PNAT 是緩解此問題的最重要、最廣泛部署的技術。私有 IP 地址空間&#xff1a; IANA 保留了三個 IPv4 地址段專供私有網絡內部使用&#xff08…

windows系統創建FTP服務

一丶開啟FTP功能 控制面板->程序與功能->啟用或關閉windows功能->Internet Information Services->勾選FTP服務器二丶創建FTP服務 1丶控制面板->windows工具->Internet Information Services (IIS) 管理器2丶網站->添加FTP站點->輸入對應內容3丶點擊新…

DeepSeek補全IBM MQ 9.4 REST API 執行命令的PPT

DeepSeek補全了我在網上找到的PPT的一頁內容&#xff0c;幫了大忙了。人機協同&#xff0c;人工智能可以協助人更好的做事。下面的內容是講解IBM MQ REST API 執行IBM MQ命令的PPT: MQSC for REST Tailored RESTful support for individual MQ objects and actions are in the …

【swift】SwiftUI動畫卡頓全解:GeometryReader濫用檢測與Canvas繪制替代方案

SwiftUI動畫卡頓全解&#xff1a;GeometryReader濫用檢測與Canvas繪制替代方案一、GeometryReader的性能陷阱深度解析1. 布局計算機制2. 動畫中的災難性表現二、GeometryReader濫用檢測系統1. 靜態代碼分析器2. 運行時性能監控三、Canvas繪制優化方案1. 基礎Canvas實現2. 性能優…