Amundsen, 데이터 카탈로그 엔진 사용

5466 단어 Python
이 글은 프리 데이터와 관련된 사람들advent 달력의 일곱 번째 날이다.
데이터 카탈로그를 검색·발견할 수 있는 OSS'아름undsen'을 사용했기 때문에 소개하려고 합니다.

이른바 데이터 디렉터리


데이터 디렉터리는 광범위한 의미를 가지고 있지만 이번에는 이른바 상업 데이터 디렉터리로 사용된다.간단하게 말하면 상업적 이용을 목적으로 하는 기업 내에 저장된 데이터 사전과 같다.테이블 정의와 열 정의의 설명 등.

이른바 Amundsen


Amundsen is a data discovery and metadata engine for improving the productivity of data analysts, data scientists and engineers when interacting with data.
Amundsen은 데이터 분석가, 데이터 과학 및 엔지니어의 생산성을 향상시키는 데이터를 검색할 수 있는 메타데이터 엔진입니다.Amundsen은 다음 그림처럼 마이크로 서비스화되었다.

메타데이터(Sources 등)에서 메타데이터(표 및 패턴 정보)를 가져와 Neo4j와 Elasticsearch에 넣습니다.이 정보에 따르면 Amudsen의 검색엔진 UI(Fronted Service)에서 정보를 확인할 수 있다.

현지에 Amundsen 구축


docker를 준비했기 때문에 로컬에서 간단하게 일어설 수 있습니다.
amundsen의github설치 방법에 자세하게 썼어요. 거기서 확인해 주세요.
$ git clone --recursive [email protected]:amundsen-io/amundsen.git
$ cd (cloneしたamundsenのディレクトリ)
$ docker-compose -f docker-amundsen.yml up

Amundsen에서 추출된 데이터


데이터 패턴 정보를 얻어 Amundsen에 반영하는 Frammework(amundsenbuilder)를 준비했기 때문에 이를 이용해 데이터베이스에서 데이터를 쉽게 얻을 수 있다.
builder에 필요한 패키지를 설치합니다.
$ cd (amundsenbuilderのディレクトリ)
$ python3 -m venv venv
$ source venv/bin/activate  
$ pip3 install -r requirements.txt
$ python3 setup.py install
example 스크립트를 준비했기 때문에 이것을 실행합니다.
sample_data_loader에서 샘플의 csv 파일에서amundsen에 데이터를 불러옵니다.
$ python3 example/scripts/sample_data_loader.py
gle에서 디렉토리를 가져오는 스크립트(sample glue loader.py)도 있습니다.아무것도 바꾸지 않고 실행하면 glue에서 모든 것을 꺼냅니다. 그래서 Filter로 gl data catallog의 Name을 Filter로 변경합니다.
https://github.com/amundsen-io/amundsendatabuilder/blob/master/example/scripts/sample_glue_loader.py#L33
def create_glue_extractor_job(filter_key: []):
   # ~~省略~~
   'extractor.glue.{}'.format(GlueExtractor.FILTER_KEY): filter_key,
   # ~~省略~~

if __name__ == "__main__":
    filter = [{
        'Key': 'Name',
        'Value': 'accounts',
    }] # glueのaccountsでfilter
    glue_job = create_glue_extractor_job(filter)
    glue_job.launch()

    es_job = create_es_publisher_job()
    es_job.launch()

Filter 형식으로 키,Value의 dictkey의object 목록을 건네줍니다.보토 3search_tables을 사용하기 때문에 키와 밸류는 필수다.
실행할 때credential(aws access key id,aws secret access key,token 등)을 미리 발행해야 aws의gulue에 접근할 수 있습니다.
$ python3 example/scripts/sample_glue_loader.py
처리가 끝난 후localhost:5000에서amundsen에 접근하여 데이터 디렉터리가 있는지 확인합니다.
(아래 그림은 실제 얻은 데이터가 아니라 Amundsen의 github 그림입니다.)

사용할 수 있는 곳

  • UI 단순화
  • UI에서 description
  • 편집 가능
  • 데이터의 extract는 데이터builder를 사용하면 매우 편리하다
  • Athena, Bigquery, Glue 등 다양한 데이터 소스에서 간편하게 공동 작업 가능
  • 아쉬운 점/ 앞으로의 기대

  • 일본어는 tag에서 지원되지 않음
  • description 검색을 할 수 없음
  • 누구나 description 편집 가능
  • User당 편집 권한을 변경할 수 없음
  • 표를 통해 편집할 수 없도록 설정할 수 있는 기능이 있지만 config에서 표를 하나씩 정의해야 한다
  • Amundsen은 OSS로 발랄해 보이기 때문에 편리한 기능이 계속 추가된다.
    Amundsen에 대해 설명했습니다.

    좋은 웹페이지 즐겨찾기