Databricks

MLOps 란 MLOps는 머신러닝 시스템을 위한 자동화된 프로세스이다. 좀더 자세히 말하자면, 머신러닝 모델을 효과적으로 배포하고, 성능을 향상시키기 위한 절차들이다. MLOps 는 아래의 DevOps, DataOps, ModelOps 를 포함하게 되기도 한다. MLOps 파이프라인의 코드 변경이 일어난 경우 진행되는 CICD 작업 (DevOps), 모델 학습에 필요한 데이터를 수집하고, 가공하는 파이프라인 (DataOps), 모델을 학습하고 배포하는 단계의 파이프라인 (ModelOps) 로 이루어지게 된다. MLOps 에서 모델의 스테이징 단계 특히, MLOps 에서 Model 은 크게 세 단계로 나뉘게 된다. 어플리케이션 배포 전략과 유사하게 어떻게 정의하느냐에 따라 달라질 수 있지만, Databr..
회사에 입사하고 나서 처음으로 프로덕션 환경에서 데이터 파이프 라인을 구축하고 배포한 경험을 정리해보고자 한다. 사실 프로젝트 끝난지는 한달정도가 되어가는데.. 내일 새로운 빅데이터 플랫폼 구축 프로젝트가 시작되기 전에 나의 첫 프로젝트를 먼저 회고해보기로 했다. 나는 6개월짜리 Databricks 기반의 빅데이터 플랫폼을 구축하는 프로젝트에서 데이터 엔지니어링을 담당했다.실제로는 4개월 정도 참여했으나, 프로젝트가 특이하게도 1차 배포 - 2차 배포 + 운영 의 프로세스로 진행되어 운좋게도 인프라 구축부터 파이프라인 개발, 운영 모니터링 과정의 ETL 파이프라인 개발의 한 cycle을 경험할 수 있었다. 총 4개월 - 길면 길고 짧다면 짧지만 - 동안 택시도 타고 주말도 반납하면서 실전에서 부딪히며 느..
최근 다양한 이기종 Database에서 Cloud 환경의 Delta Lake 로의 데이터 마이그레이션 일을 spark 로 진행하고 있다. JDBC 연결로 Spark 에서 데이터 read & write 작업을 할 때 발생했던 data skew 현상과 이를 트러블 슈팅했던 경험을 공유하고자 한다. Spark JDBC 연결 spark 에서 jdbc 연결을 통해 Database 의 table 데이터를 read 하는 작업은 아래와 같다. 별다른 추가 옵션을 주지 않고 spark 가 알아서 분산 처리를 할 것을 기대하고 다음과 같은 코드로 데이터를 읽어오는 작업을 하였다. 사용한 인스턴스는 Databricks 에서 aws ec2 r5.large 인스턴스 (core 2, 16GB) 로 driver node, work..
Delta Live Table 이란? Databricks 에서 데이터 파이프라인을 관리하고 자동화하는 서비스이다. Delta Lake 및 Spark 와 연동되어 스트리밍 방식과 배치 방식을 모두 제공한다. DLT 는 console에서 오토 스케일링, 스케줄링, 알림 기능을 제공한다. Delta Live Table 으로 파이프라인을 구성할 때는 databricks 에서 제공하는 dlt 라이브러리를 사용해야 하며, 일반 spark cluster 가 아닌 Delta Live Table Pipeline 에서 구성 및 실행해야 한다는 특징이 있다. Delta Live Table 가 등장하게된 배경은 Python 뿐만 아니라 SQL 쿼리로도 '스트리밍' 처리를 할 수 있게 한다는 아이디어에서 나왔다고 한다. 엔지니..
현 회사에서 데이터 엔지니어링 프로젝트를 위해 Databricks 플랫폼을 구축하고 파이프라인을 개발하는 일을 담당하고 있다. Databricks의 기능에 대해 한국어로 잘 정리된 기술 블로그가 보이지 않아서, Databricks를 어떻게 하면 제대로 쓸 수 있을지 투고해보려고 한다. Databricks 플랫폼에서 데이터 카탈로그에 해당하는 Unity Catalog 에 대해 정리해보려고 한다. 데이터 카탈로그 , 그 이전에 데이터 가버넌스 우선 데이터 가버넌스라는 개념은 조직 내에 데이터 자산의 품질, 보안, 접근성, 일관성을 관리하고 제어하는 정책들을 말한다. 데이터 가버넌스에는 다음과 같은 활동들이 있다. 데이터 표준과 정책 설정 데이터 품질 관리 데이터 및 개인 정보 보호 데이터 관리에 대한 책임 ..
https://docs.databricks.com/en/delta/merge.html#language-python Databricks documentation docs.databricks.com 데이터를 증분적재해야 하는 경우 merge() 혹은 MERGE INTO sql 문을 사용할 수 있다. [Python Code Snippet] (targetDF.alias("t") # DeltaTable 이 Target이 되어야 한다. .merge(sourceDF.alias("s"), "s.key = t.key") # merge 조건을 정한다. Source는 DataFrame이다. .whenMatchedUpdateAll() # key값이 동일한 경우 모두 변경 반영 .whenNotMatchedInsertAll() ..
Spark 스터디를 시작하면서 실습환경이 필요했는데 현재 회사에서 데이터브릭스를 사용하니까, Spark 개인 공부도 동일한 환경에서 공부를 하면 좋을 것 같아서 데이터브릭스로 결정했다. 그런데 클라우드 서비스인 만큼 과금을 주의해야 하므로 무료 버전 Databricks Community Edition 을 찾아보게 되었다. 시작 방법은 간단한데 데이터브릭스가 상당히 교묘하게 숨겨놔서 주의해야 한다 ! 나와 같은 사람들이 있을 것 같아서 공유한다. https://www.databricks.com/try-databricks Try Databricks - Unified Data Analytics Platform for Data Engineering Discover why businesses are turning..
실제 프로덕션 환경에서는 유저 데이터 등 유출되면 치명적인 데이터가 있다. 이러한 보안 문제를 해결 하기 위해, Databricks Workspace를 구성할 때 인터넷을 거치지 않는 private link 구성을 활용했다. 위의 그림처럼, Control Plane 과 Data Plane 간의 통신을 구성하기 위해서 AWS Private Link 를 사용하여 구성했다. 크게 2가지로, Secure Cluster Connectivity 를 위한 VPC endpoint 와 REST APIs 를 위한 VPC endpoint 를 생성해주면된다. 참고로 Front-end VPC endpoint 는 따로 생성해주어도 괜찮지만, 사실 Backend REST API와 동일한 서비스이므로 같은 VPC endpoint 를..
minjiwoo
'Databricks' 태그의 글 목록