Show HN: Hamilton UI – 데이터 파이프라인을 위한 관측성(observability), 계보(lineage) 및
요약
Apache Hamilton UI는 데이터 파이프라인의 관측성, 계보 및 카탈로그 기능을 제공하는 새로운 도구입니다. 개발 및 운영 환경에서 데이터 흐름을 모니터링하고 디버깅하여 소프트웨어 개발 생명주기 전반의 효율성을 높이는 것을 목표로 합니다.
핵심 포인트
- 데이터/아티팩트의 실행 추적 및 관측성 제공
- 코드와 데이터 간의 연결 관계(계보) 시각화
- 실행 결과 및 성능 비교를 위한 카탈로그 기능
- Docker를 활용한 간편한 로컬 설정 및 배포 지원
이곳에는 새로운 Apache Hamilton UI를 위한 코드가 포함되어 있습니다. 시작하기 및 기능에 대한 개요는 이 문서를 참조하십시오. 더 자세한 포스트와 소개를 보려면 저희 블로그 포스트를 확인하세요.
Apache Hamilton UI는 다음과 같은 기능을 제공하는 시스템입니다:
-
관련 메타데이터를 포함한 실행 추적 (Execution tracking)
-
이를 저장 및 관리하기 위한 영구 데이터베이스 (Persistent database) 제공
-
읽기/쓰기/인증을 허용하는 서버 제공
-
데이터/아티팩트 관측성 (Data/artifact observability): 웹 인터페이스를 통해 Apache Hamilton 실행 및 특정 함수 결과/코드에 대한 텔레메트리(telemetry)/관측성(observability)을 제공합니다.
-
계보 및 출처 (Lineage & provenance): 코드와 데이터가 어떻게 연결되어 있는지 빠르게 검사할 수 있습니다.
-
카탈로그 (Catalog): 모든 것이 관측되고 카탈로그화되어, 무엇이 존재하고 언제 실행되었는지 빠르게 검색하고 찾을 수 있습니다.
이 UI는 개발 (development) 및 운영 (production) 환경 모두에서 Apache Hamilton 데이터 흐름(dataflows)을 모니터링/디버깅하기 위한 것입니다. 목표는 데이터 흐름 작성자가 소프트웨어 개발 생명주기(software development lifecycle)의 모든 단계에서 더 빠르게 이동할 수 있도록 하는 것입니다.
이러한 기능 중 일부에 대한 개요를 보려면 이 짧은 영상을 시청하십시오.
무엇이 느린지 확인(왼쪽), 오류를 정확히 파악(가운데), 실행 성능 비교(오른쪽)
실행에 대한 데이터 시각화(왼쪽), 실행에 사용된 코드 추적(가운데), 실행 간 데이터 비교(오른쪽)
연결 방식 확인: 상류/하류(upstream/downstream)가 무엇인지(왼쪽), 코드를 시각적으로 탐색(오른쪽)
생성된 아티팩트 이해(왼쪽), 피처(features) 및 사용 시점 찾기(오른쪽)
설정 방법에 대한 이 영상 가이드를 시청할 수 있습니다.
Docker가 실행 중인지 확인하십시오:
# 아직 클론하지 않았다면 저장소를 클론하세요
git clone https://github.com/apache/hamilton
# UI 디렉토리로 이동하세요
...
Docker가 실행되면 http://localhost:8242로 이동하여 이메일과 프로젝트를 생성한 다음, Apache Hamilton과 통합하는 지침을 따르십시오.
더 자세한 가이드는 여기서 찾을 수 있습니다.
아키텍처는 간단합니다.
트래킹 서버(tracking server)는 Postgres에 데이터를 저장하며, 모든 Blob 데이터는 S3에 저장합니다. 로컬 모드(local mode)에서는 Docker 볼륨(Docker volume)에 저장됩니다. 프론트엔드(frontend)는 간단한 React 애플리케이션입니다. 몇 가지 인증/ACL(Access Control List) 기능이 있지만, 기본값은 로컬/미인증(open) 상태입니다. 더 맞춤화된 인증이 필요한 경우 저희에게 문의해 주세요.
구조에는 UI를 CLI에서 쉽게 배포하고 서비스할 수 있도록 하기 위한 약간의 기교가 포함되어 있습니다.
backend/hamilton_ui에서 backend/server로 연결되는 심볼릭 링크(symlink)를 생성하여, Django의 구조를 따르면서 동시에 hamilton_ui로 임포트(import)할 수 있도록 했습니다. (이 부분은 언젠가 변경되어야 하겠지만, 지금은 그럴 가치가 없습니다).
배포하려면 UI 디렉토리에 있는 admin.py 스크립트를 사용하십시오.
이 스크립트는 다음을 수행합니다:
- 프론트엔드(frontend) 빌드
- 빌드된 파일을
build/디렉토리로 복사 - PyPI의
apache-hamilton-ui패키지로 게시
그 후 apache-hamilton[ui]를 설치한 뒤 hamilton ui 명령어로 실행할 수 있습니다. 참고로, 이를 실행하려면 pip install apache-hamilton[sdk]로 설치할 수 있는 hamilton_sdk 패키지가 필요합니다.
개발 시에는 다음을 실행해야 합니다:
cd hamilton/ui
./dev.sh --build # 전체 빌드
./dev.sh # Docker 이미지를 가져오되 로컬 코드를 사용
프론트엔드 빌드를 위해서는 Docker에 약 8GB의 메모리가 할당되어야 합니다. 이 문제에 직면한다면 Docker 메모리 할당량을 9GB 이상으로 높이십시오.
프로덕션(production) 빌드를 위해서는 다음을 실행해야 합니다:
cd hamilton/ui
./run.sh # Docker에서 가져와 실행
./run.sh --build # 프로덕션용 이미지 재빌드
Docker 이미지에 불필요한 파일이 추가되지 않도록 backend/dist/ 디렉토리를 정리하는 것이 좋습니다.
Docker Hub에 푸시(push)하는 방법:
# 필요한 경우 태그 재설정(retag)
docker tag local-image:tagname dagworks/ui-backend:VERSION
# 빌드된 이미지 푸시
...
# 필요한 경우 태그 재설정(retag)
docker tag local-image:tagname dagworks/ui-frontend:VERSION
# 빌드된 이미지 푸시
...
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Show HN (AI)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기