본문 바로가기

전체 글111

MLflow - Tracking Servers 이제까지 로컬에 저장하는 방법만 살펴봤지만, 실제 개발에서는 tracking 결과물을 로컬에 저장하지는 않음 원격 저장소에 저장 -> MLflow의 tracking URI로 기록물을 가져와서 사용하는 방식 import mlflow mlflow.set_tracking_uri("file:///tmp/my_tracking") tracking_uri = mlflow.get_tracking_uri() print("Current tracking uri: {}".format(tracking_uri)) 로컬 (file:/my/local/dir) 데이터베이스 (+://:@:/) mysql, mssql, sqlite, postgresql 지원 HTTP 서버 (https://my-server:5000) Databricks .. 2023. 7. 23.
[Postgresql, Redshift] 데이터 현황 확인하기 데이터 웨어하우스의 경우 PK Uniqueness를 보장하지 않는 경우가 많다. PK Uniqueness를 보장하기 위해선 레코드 하나하나 다 검사하면서 처리해야 하는데, 그렇게 되면 메모리를 너무 많이 잡아먹기 때문. 데이터 웨어하우스에는 수만건의 데이터를 적재해야 하는 경우가 많은데, 그렇게 할 경우 너무 많은 시간과 비용을 차지하게 된다. 최소한의 방법으로 PK Uniqueness를 확인하는 방법을 정리한다. 여기에선 아주 간단한 버전만 알아보고, 다음 포스팅에서 조금 더 심화된 내용을 다룰 예정 + 그 외 데이터 엔지니어링 시작 전 확인해보면 좋을 것들을 함께 정리! 중복 데이터 있는지 확인하기 (PK에 대해서 실행하면 특히 좋음) -- 아래 두 쿼리의 결과를 비교하기 SELECT COUNT(1).. 2023. 6. 27.
FastAPI: 데이터베이스 연결의 이해 본 글은 "FastAPI를 사용한 파이썬 웹 개발" 내용의 일부를 토대로 정리한 글입니다. SQL과 애플리케이션 코드를 연동하기 위해선 SQLModel 라이브러리를 설치해야 한다. SQLModel 라이브러리는 FastAPI 개발자가 만들었으며, pydantic과 SQLAlchemy를 기반으로 한다. 테이블 테이블은 데이터베이스에 저장된 데이터를 가지고 있는 객체. SQLModel을 사용해서 테이블을 생성하려면 테이블 모델 클래스를 먼저 정의해야 함. pydantic 모델처럼 테이블을 정의하지만, SQLModel의 서브 클래스로 정의해야 함. 클래스 정의는 table이란 설정 변수를 갖는데, 이를 통해 해당 클래스가 SQLModel 테이블이라는 것을 인식할 수 있음. 모델 클래스 안에 정의된 변수는 따로 .. 2023. 6. 23.
[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 - 3주차: 데이터 파이프라인을 만들 때 고려해야 할 점 데이터 파이프라인을 만들 때 고려해야 할 점 이상과 현실 간의 괴리 이상 혹은 환상 내가 만든 데이터 파이프라인은 문제 없이 동작할 것이다 내가 만든 데이터 파이프라인을 관리하는 것은 어렵지 않을 것이다 현실 혹은 실상 데이터 파이프라인은 많은 이유로 실패함 코드 버그 데이터 소스상의 이슈 데이터 파이프라인들 간의 의존도에 이해도 부족 데이터 파이프라인의 수가 늘어나면 유지보수 비용이 기하급수적으로 늘어남 데이터 소스 간의 의존도가 생기면서 더 복잡해짐. 만일 마케팅 채널 정보가 업데이트가 안 된다면 마케팅 관련 모든 정보들이 갱신되지 않음 more tables needs to be managed (source of truth, search cost, …) Best Practice 1 가능하면 데이터가 .. 2023. 6. 22.