Amundsen——實現數據發現與協作的平台

一、Amundsen的概述

Amundsen是由在Lyft工作的數據開發人員在解決數據發現和協作問題時開發的一個開源項目。該項目的目標是為數據方面工作人員更好地使用公司的數據提供支持,降低他們與數據之間的門檻,從而增加數據的可視性和可用性。

Amundsen的核心在於它實現了一個能夠讓人工智能、機器學習、數據科學、工程人員等方面的人員找到他們所需要的數據,協作開發模型和為新用戶創建他們自己的數據服務的平台。

二、Amundsen實現的數據發現功能

Amundsen的發現模塊是一個核心重點,它能夠快速找到有價值的數據資源。用戶可以使用Amundsen網站或者通過API訪問數據源。這個模塊可以從多個方面幫你發現你需要的數據資源,包括:

1、數據擁有者信息:除了相關的數據集元數據之外,Amundsen還可以展示關於數據擁有者的信息。通過這些信息,用戶可以了解數據集是由哪個團隊開發。”,
“2、准入信息:這是另一個有用的特性,通過它,用戶可了解如何訪問數據集、使用什麼憑證和訪問等等。”,
“3、端對端執行的圖-開發工程師可以在這裡展示他們如何開發數據集的過程。這裡包括了一些工程的核心代碼。”,
“4、最近的查詢信息:Amundsen還會記錄用戶在數據集上查詢的情況,這有助於增加他們對數據集的了解。”,
“5、數據預覽:Amundsen還可以為數據集提供一個查看顯著數據點的數據預覽功能,這對於對數據形式有要求的人群非常有用。”,
“6、數據資源統計:Amundsen也會統計那些頻繁被使用的資源和那些棄用的資源,幫助數據團隊思考如何為可使用度高的資源制定清晰的開發優先級。”,
“7、標籤:數據集可以被標記,以便認領、發現和過濾。

三、Amundsen的協作功能

除了數據發現模塊之外,Amundsen還提供了一些重要的協作功能,讓開發團隊之間的協作變得更加容易和高效。

1、markdown檔案:數據持有人可以使Amundsen頁面成為實驗室筆記或使用說明。Markdown功能可以實現本地格式良好的評論和代碼示例,例如python代碼示例。”,
“2、數據集的評論:每個數據集頁面都可以通過評論部分進行評論,從而使維護人員可以與其他人員進行溝通,說服和建議等等。”,
“3、貢獻圖表:最近誰對特定的數據集進行了修復,更改或破壞性修改可以通過貢獻圖表展示,這使得對於其他具有相似興趣的貢獻者更容易進行交流和協作。”,
“4、誰正在使用這個數據集?:Amundsen還會展示該數據集的近期使用情況,並給出這個數據集是由哪些有權限的用戶進行訪問的。

四、Amundsen的代碼示例

from typing import Any, Dict, List, Optional, Tuple

from pyhocon import ConfigFactory, ConfigTree
from sqlalchemy import or_, and_, text
from sqlalchemy.orm import Session, Query

from metadata_service.entity.table_detail import TableColumn, Table
from metadata_service.exception import NotFoundException
from metadata_service.proxy import get_proxy_client
from metadata_service.util import UserResourceRel
from metadata_service.util.db import create_engine
from metadata_service.util.helper import (
    get_user_id_from_user_email, get_user_email_domain,
    get_user_profile_by_user_id, UserException)
from metadata_service.db import (
    DEFAULT_PAGE_SIZE, make_offset_limit_clause, Pagination)
from metadata_service.entity.popular_table import PopularTable
from metadata_service.entity.resource_type import ResourceType

class TableColumnDao:
    """
    SQLAlchemy Data Access Object for TableColumn
    """
    def __init__(self, config: ConfigTree) -> None:
        self.db = create_engine(config)

    def _get_query(self, session: Session) -> Query:
        """
        Get the common query object with all model`s joined
        :param session:
        :return:
        """
        return session.query(TableColumn, Table.name)\
            .join(Table, and_(
                or_(TableColumn.table_id == Table.id,
                    TableColumn.table_id == Table.original_id)
        ))

    def get_table_columns(self, table_uri: str) -> List[TableColumn]:
        """
        Return the details columns of a table
        :param table_uri:
        :return:
        """
        with self.db.connect() as conn:
            query = self._get_query(Session(bind=conn))
            columns = query.filter(Table.uri == table_uri).all()
            if not columns:
                raise NotFoundException('TableColumns '
                    f'for table_uri: {table_uri} not found')

            return [column.TableColumn for column in columns]

五、Amundsen的優點

Amundsen已經被證明是一個非常有用的平台,對於數據方面的工作人員來說有如下的優點:

1、便於數據發現:Amundsen可以為開發人員提供方便快捷的數據發現流程,它可以幫助他們找到他們所需要的數據資源。同時,該平台還提供了一些其他的功能,例如數據資源擁有者細節、數據源准入信息、端到端的執行圖、標籤等等。通過這些功能,用戶可以輕鬆找到自己需要的數據資源

2、提高協作效率:Amundsen提供了許多協作功能,可以幫助用戶更好地協作開發和共享自己的數據資源。如markdown文件、評論、貢獻表,以及最近使用該數據集的用戶等等。通過這些功能,用戶可以更好地互相溝通和協作,提高開發效率。

六、Amundsen的局限性

Amundsen雖然是一個功能非常強大的平台,但是它仍然有一些局限性:

1、支持的數據類型不夠多;

2、還是需要用戶手動去記錄使用數據集並為數據集添加有價值的描述和標籤等數據點。

七、結論

綜合來說,Amundsen是一個功能強大的平台,對於數據工作人員來說非常有用。它可以為用戶提供快速的數據發現功能,並提供了多種協作功能,可以幫助用戶更好地協作開發和共享自己的數據資源,提高開發效率。不過它也存在局限性,例如它只支持有限的數據類型,用戶仍需手動為數據集添加有意義的描述和標籤等數據點。總之,Amundsen的優點遠遠大於局限性,值得嘗試使用。

原創文章,作者:TMJA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/136589.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TMJA的頭像TMJA
上一篇 2024-10-04 00:16
下一篇 2024-10-04 00:16

相關推薦

  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python能否跨平台

    Python作為一門高級編程語言,是一種跨平台的編程語言。下面從多個方面探討Python能否跨平台。 一、Python的跨平台性 Python可以在Windows、Linux、Ma…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • Python兩張表數據匹配

    本篇文章將詳細闡述如何使用Python將兩張表格中的數據匹配。以下是具體的解決方法。 一、數據匹配的概念 在生活和工作中,我們常常需要對多組數據進行比對和匹配。在數據量較小的情況下…

    編程 2025-04-29
  • Python爬取公交數據

    本文將從以下幾個方面詳細闡述python爬取公交數據的方法: 一、準備工作 1、安裝相關庫 import requests from bs4 import BeautifulSou…

    編程 2025-04-29
  • Python數據標準差標準化

    本文將為大家詳細講述Python中的數據標準差標準化,以及涉及到的相關知識。 一、什麼是數據標準差標準化 數據標準差標準化是數據處理中的一種方法,通過對數據進行標準差標準化可以將不…

    編程 2025-04-29
  • 如何使用Python讀取CSV數據

    在數據分析、數據挖掘和機器學習等領域,CSV文件是一種非常常見的文件格式。Python作為一種廣泛使用的編程語言,也提供了方便易用的CSV讀取庫。本文將介紹如何使用Python讀取…

    編程 2025-04-29
  • Python根據表格數據生成折線圖

    本文將介紹如何使用Python根據表格數據生成折線圖。折線圖是一種常見的數據可視化圖表形式,可以用來展示數據的趨勢和變化。Python是一種流行的編程語言,其強大的數據分析和可視化…

    編程 2025-04-29

發表回復

登錄後才能評論