開源數據發現平臺:Amundsen 第1部分:基礎入門與本地環境設置

在這里插入圖片描述

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

2.1 準備工作

2.1.1 系統要求

操作系統支持

  • Linux(Ubuntu 22.04+/CentOS Stream 9+)
  • macOS(Monterey 12+)
  • Windows(需啟用WSL 2)

硬件最低配置

資源類型最低要求說明
CPU4核需支持虛擬化
內存16GB建議預留4GB給Docker
磁盤空間30GB用于存儲鏡像和元數據

驗證命令(Linux/macOS)

# 查看CPU核心數
nproc# 查看可用內存(GB)
free -g

2.1.2 工具安裝指南

Docker 引擎安裝

# Ubuntu 22.04 安裝命令
sudo apt update
sudo apt install docker.io
sudo systemctl enable --now docker# 驗證安裝(需顯示Docker版本)
docker --version  # 預期 >=28.0.0

Docker Compose 安裝

# Docker Compose 2.x 已內置于 Docker CLI,無需單獨下載
# 驗證安裝
docker compose version  # 預期 >=2.29.0

2.1.3 環境兼容性驗證

步驟1:檢測虛擬化支持

# Linux 檢查內核模塊
lsmod | grep kvm# macOS 檢查HyperKit
hyperkit -h

步驟2:測試Docker運行

# 運行測試容器
docker run hello-world# 預期輸出:
# Hello from Docker!
# This message shows your installation appears to be working correctly.

步驟3:資源分配檢查

# 確認Docker資源限制(需滿足最低要求)
docker info | grep -E "Total Memory|CPUs"

2.1.4 獲取 Amundsen

# 運行以下命令克隆該 repo 及其子模塊
git clone --recursive https://github.com/amundsen-io/amundsen.git
cd amundsen

2.2 本地環境搭建

2.2.1 啟動Amundsen服務棧

執行啟動命令

# For Neo4j Backend
docker compose -f docker-amundsen.yml up -d

重要:macOS (Apple Silicon M1/M2/M3)

  1. 安裝 Rosetta 2
sudo softwareupdate --install-rosetta --agree-to-license
  1. 修改 docker-compose.yml
services:neo4j:image: neo4j:3.5.26
+        platform: linux/amd64amundsensearch:image: amundsendev/amundsen-search:4.0.2
+        platform: linux/amd64    amundsenmetadata:image: amundsendev/amundsen-metadata:3.11.0
+        platform: linux/amd64amundsenfrontend:image: amundsendev/amundsen-frontend:4.2.0
+        platform: linux/amd64ports:
-            - 5000:5000
+            - 5003:5000

macOS 自帶的「控制中心」(Control Center) 進程 ControlCe 系統啟動后會自動監聽 5000 端口

預期輸出

[+] Running 8/8? Network amundsen_amundsennet  Created? Volume "amundsen_neo4j_data"  Created? Volume "amundsen_es_data"     Created? Container es_amundsen         Started? Container neo4j_amundsen      Started? Container amundsenmetadata    Started? Container amundsensearch      Started? Container amundsenfrontend    Started

2.2.2 驗證容器狀態

檢查容器運行狀態

# docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
docker compose -f docker-amundsen.yml ps --format \"table {{.Service}}\t{{.Status}}\t{{.Ports}}"NAMES              STATUS         PORTS
amundsenfrontend   Up 8 minutes   0.0.0.0:5000->5000/tcp, [::]:5003->5000/tcp
amundsensearch     Up 8 minutes   0.0.0.0:5001->5000/tcp, [::]:5001->5000/tcp
amundsenmetadata   Up 8 minutes   0.0.0.0:5002->5000/tcp, [::]:5002->5000/tcp
es_amundsen        Up 8 minutes   0.0.0.0:9200->9200/tcp, [::]:9200->9200/tcp
neo4j_amundsen     Up 8 minutes   0.0.0.0:7474->7474/tcp, [::]:7474->7474/tcp, 0.0.0.0:7687->7687/tcp, [::]:7687->7687/tcp

健康檢查:所有容器需顯示 (Up) 狀態。若出現 starting 或 unhealthy 超過 3 分鐘,請查看 2.2.3 節診斷。

2.2.3 日志監控與問題診斷

查看實時日志

# 監控所有容器日志(Ctrl+C退出)
docker compose -f docker-amundsen.yml logs -f

關鍵啟動成功標記

frontend    | INFO:waitress:Serving on http://0.0.0.0:5000
metadata    | INFO:uvicorn.error:Application startup complete
search      | INFO:amundsen_search:Connected to ES 8.x
neo4j       | INFO  Started Neo4j 3.x (port 7474 & 7687 ready)

常見錯誤處理

# 端口沖突(如5000被占用)
ERROR: for frontend Cannot start service...: driver failed programming external connectivity# 解決方案:
# 1. 停止占用端口的進程
# 2. 或修改docker-amundsen.yml端口映射
#    ports: - "新端口:5000"

2.2.4 服務端口驗證

手動訪問關鍵端點

服務測試URL預期響應
Frontendhttp://localhost:5000Amundsen登錄頁面
Searchhttp://localhost:5001/healthcheckJSON格式節點信息
Metadatahttp://localhost:5002/healthcheckJSON格式節點信息
Elasticsearchhttp://localhost:9200JSON格式節點信息
Neo4jhttp://localhost:7474數據庫管理界面

自動化驗證腳本

#!/usr/bin/env bash
set -eecho "Search health:"
curl -s http://localhost:5001/healthcheck | jq -r '.status' | grep -q ok && echo OK || exit 1echo "Metadata health:"
curl -s http://localhost:5002/healthcheck | jq -r '.status' | grep -q ok && echo OK || exit 1echo "Elasticsearch cluster:"
curl -s http://localhost:9200/_cluster/health | jq -r '.status' | grep -q green && echo OK || exit 1echo "Neo4j ready:"
docker exec neo4j_amundsen cypher-shell -u neo4j -p test "RETURN 1;" >/dev/null && echo OK || exit 1echo "All services healthy!"

重要提示:首次啟動需等待2-3分鐘完成初始化(Elasticsearch索引創建/Neo4j約束設置)。Apple Silicon Mac 用戶首次拉取鏡像可能額外耗時。

2.2.5 環境重置操作

停止并清理環境

# 1. 優雅停止所有容器并自動移除網絡
docker compose -f docker-amundsen.yml down# 2. 徹底刪除數據卷(重置到初始狀態)
docker compose -f docker-amundsen.yml down --volumes

如需保留數據,僅執行 docker compose -f docker-amundsen.yml down 即可,卷將保留在本地。

2.3 初始訪問與界面導覽

2.3.1 登錄Amundsen實例

默認免登錄
在這里插入圖片描述

2.3.2 核心功能區解析

主頁布局

頂部導航欄
搜索框
通知圖標
用戶菜單
主體區域
搜索篩選區
熱門表列表
近期瀏覽記錄

1. 全局搜索欄
在這里插入圖片描述

  • 位置:頁面頂部中央
  • 功能:
    • 輸入關鍵詞實時檢索表/列/儀表板(如 test
    • 支持過濾器(數據庫類型/標簽/所有者/域)

2. 導航菜單
在這里插入圖片描述

菜單項功能描述
Browse按數據庫分層瀏覽表(默認展示Neo4j中的表)
Announcements系統公告(測試環境為空)
My Profile用戶個人數據資產(書簽/擁有表/關注資源)

左側菜單已支持可折疊及鍵盤快捷鍵導航。

3. 表詳情頁功能區

訪問路徑:搜索 → 點擊表名 → 進入詳情頁
在這里插入圖片描述
在這里插入圖片描述

表標題
描述編輯
所有者管理
列信息
類型/描述/統計信息
血緣標簽
上游表
下游表
協作區
添加書簽
撰寫評論
查詢使用示例
SQL示例/使用頻率

已支持列級數據質量評分(Great Expectations 集成)。

2.3.3 關鍵交互操作

添加表描述

  1. 在表詳情頁點擊 “Description” 旁的編輯圖標

    注:支持 Markdown 語法。

  2. 輸入文本:This is a test table
  3. 點擊 “Update”
  4. 驗證:刷新頁面后描述持久化顯示

添加書簽

  1. 在表詳情頁點擊 “Bookmark” 星標圖標
  2. 驗證:
    • 星標變為實心
    • “My Profile” → “Bookmarks” 出現該表

查看血緣關系

  1. 在表詳情頁點擊 “Lineage” 標簽
  2. 界面顯示:
    • 上游數據源(如 source_db.raw_table
    • 下游依賴(如 analytics.report_table

    注:支持列級血緣與 OpenLineage 標準集成,默認展示 Airflow DAG 依賴。

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

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

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

相關文章

Linux編程--進程

1、基本概念:進程:是程序動態執行的過程,包括創建、調度、消亡程序:存放在外存中一段數據的集合虛擬地址:進程使用的邏輯地址,有操作系統管理,不直接對應物理內存物理地址:實際內存的…

【開源工具】基于硬件指紋的“一機一碼”軟件授權系統全實現(附完整源碼)

?? 緊急預警!你的軟件正在被白嫖?這套Python軟件加密授權方案讓破解者當場崩潰 ?? 個人主頁:創客白澤 - CSDN博客 ?? 系列專欄:??《Python開源項目實戰》 ?? 熱愛不止于代碼,熱情源自每一個靈感閃現的夜晚。愿以開源之火,點亮前行之路。 ?? 希望大家多多支持…

機器學習算法篇(八)-------svm支持向量機

目錄 ??1. SVM 的核心原理(必須掌握)?? ??2. Python 中的實踐重點?? ??(1) Scikit-learn 的 SVM 實現?? ??(2) 數據預處理?? ??(3) 模型評估與調優?? ??3. 學習側重點優先級?? ??4. 經典案例實踐方向?? ??5. 學習…

發票查驗接口接收參數說明-PHP語言集成-財務管理

發票驗真服務接口可實時聯網核驗發票真偽,查驗一致時返回全票面信息。其支持核驗增值稅發票管理系統開具發票的真偽,且能進行發票批量查驗,當日開具的發票當日即可查驗。同時,結合發票識別接口可實現自動識別發票信息核驗&#xf…

Uniapp物聯網平臺登錄與溫濕度監測系統

下面是一個完整的Uniapp物聯網平臺實現,包含登錄功能和溫濕度監測系統。這個解決方案采用現代化UI設計,模擬了物聯網平臺的核心功能。文章末尾提供源碼下載。 系統功能說明 這個Uniapp物聯網平臺登錄與溫濕度監測系統包含以下核心功能: 1.…

【企業架構】TOGAF概念之四(終結)

導讀:學習TOGAF(The Open Group Architecture Framework,開放組架構框架)相關概念的意義和價值,體現在它為企業架構(Enterprise Architecture, EA)實踐提供了標準化方法論、跨領域協同框架、戰略…

centos 怎么部署 vscode 網頁版

安裝編譯工具 下載適用于 linux 版本的 rpm 格式文件 下載 Visual Studio Tools - 免費安裝 Windows、Mac、Linux 拷貝路徑,下載文件 wget https://vscode.download.prss.microsoft.com/dbazure/download/stable/e3550cfac4b63ca4eafca7b601f0d2885817fd1f/code…

sql的關鍵字 limit 和offset

核心概念LIMIT (限制): 指定查詢最多返回多少行記錄。OFFSET (偏移): 指定在開始返回記錄之前要跳過多少行記錄。它定義了結果集的起始點。核心前提: 必須 使用 ORDER BY 子句來確保分頁結果的順序穩定和可預測。示例: 假設 employees 表有 100 條記錄&a…

git config的配置全局或局部倉庫的參數: local, global, system

git config的范圍參數: local, global, system1. --local: 作用于當前倉庫2. --global: 作用于當前用戶的全局范圍的 Git 倉庫3. --system: 作用于系統范圍內的 Git 倉庫4. 注意事項參考鏈接1. --local: 作用于當前倉庫 --local: 這個參數的作用范圍是當前倉庫。其配置的參數保…

應用系統連達夢數據庫報“服務器模式不匹配”的根源與修復方案

近期遇到很多個應用系統連接達夢數據庫報“服務器模式不匹配”的問題,省流直接說文章結論通常兩種場景 初次連接達夢數據庫時報服務器模式不匹配,可能是配置文件中LOGIN_MODE參數配置與數據庫狀態不一致導致連接失敗應用系統正常運行負載大或者偶發報服務…

git:分支

分支命名可以使用斜杠(/)構建分層命名方案不能以減號(-)開頭,分層的命名不能以點(.)開頭不能使用連接兩個點(.)不能包括空格或其他空白字符以及~ ^ : ? * [列出分支名稱 git branch 列出本地版本庫的分支git branch -r 列出遠程跟蹤分支git branch -a …

T05_卷積神經網絡

全連接網絡存的弊端 以MINST數字識別為例,創建一個4層全連接網絡層,輸入為28x28,中間三個隱藏層的節點數都是 256,輸出節點數是10。通過summary()函數打印出模型每一層的參數量,計算總的參數量超過34萬個網絡參數&…

區塊鏈在可信空間智能合約中的應用

區塊鏈在可信數據空間的智能合約應用,通過去中心化信任機制、自動化執行、可驗證計算等特性,正在重塑數據存儲、共享、交易和治理的模式。以下是其核心應用方向、關鍵技術及落地案例的深度解析: 一、核心應用方向 1. 數據確權與授權管理 應用場景 個人數據主權:用戶通過智…

pycharm配置python解釋器教程

一個解釋器對應一個環境,無論是conda環境或是Python環境。python環境的解釋器的路徑形如"D:\Python3.12\python.exe",conda環境的解釋器的路徑形如"D:\anaconda3\envs\opencv\python.exe"。 如何在Pycharm中設置解釋器 打開pycharm&…

C#教程之NPOI讀寫excel文件XLS,XLSX格式

NPOI 是開源的 POI 項目的.NET版,可以用來讀寫Excel,Word,PPT文件。僅需處理 XLS/XLSX 格式的文本和數字讀寫,最少需要加載 2 個核心 DLL:NPOI.dll包含所有格式的通用接口(IWorkbook、ISheet、IRow、ICell …

Perforce P4 Git 連接器

Perforce P4 Git連接器將Git代碼庫與數字資產集中存儲于Perforce P4(前身為Helix Core),為所有數字資產(源碼二進制文件)構建單一事實來源。 突破代碼庫與文件限制 當藝術家、開發者及工程師組成的大型團隊僅使用Git時…

day10_尋找用戶推薦人

一、題目給出一張customer表,里面有id(客戶id)——主鍵,name(客戶姓名),referee_id(推薦人客戶id)三個字段二、題目要求1、找出被id不是2的用戶推薦的客戶姓名2、沒有被任…

python爬蟲(三)----Selenium

目錄 1. Selenium 1.1 Selenium是啥 1.2 安裝chrom Driver 1.3 selenium 使用 1.4 selenium元素定位 1.5 訪問元素信息 1.6 交互 2. Phantomjs、Chrom handless 1. Selenium 1.1 Selenium是啥 自動化Web瀏覽器操作 主要用于Web應用程序的測試 支持多操作系統、多瀏覽器…

《事務隔離級別與 MVCC 機制深度剖析》

🔍 事務隔離級別與 MVCC 機制深度剖析 🧠 前言 在高并發場景下,數據庫事務是保證數據一致性的基石。但在 MySQL InnoDB 中,事務的隔離級別、鎖策略、MVCC(多版本并發控制)之間的配合,常常是面…

20250814,通義萬相,無限生成權限(慢速)

今天看小紅書,發現通義萬相可以免費生成慢速圖片。研究一下每天10分用完后,按鈕就變成0,但是可以點擊這個0,進入排隊慢速生成狀態。原來通義萬相的收費主要是用來提速的(快速出圖),不著急的話也…