Python 변환의 구성과 실행 방식
Python transforms는 Foundry의 배치 및 증분 데이터 파이프라인을 코드로 정의합니다. 입력과 출력 자산, 계산 함수와 실행 자원을 한 변환에 묶고 Pipeline에 등록합니다. 공유 라이브러리, 데이터 기대 조건, 파일 및 미디어 처리와 외부 시스템 호출도 사용할 수 있습니다.
단일 노드와 분산 실행
새 @transform.using(...) 구문은 기본적으로 단일 노드에서 실행합니다. Polars, Pandas, DuckDB와 Arrow 등으로 데이터를 읽고 결과를 write_table()에 전달할 수 있습니다.
Spark가 필요한 작업은 @transform.spark.using(...)으로 선택합니다. 입력에서 PySpark DataFrame을 읽고 write_dataframe()으로 씁니다. 단순 표 입력과 출력 하나에는 @transform_df도 사용할 수 있습니다. PySpark 열과 행 연산에서 선택, 필터, 조인과 집계 표현식을 확인할 수 있습니다.
같은 Python 코드라고 실행 자원과 지원 기능이 모두 같지는 않습니다. 엔진 선택에서 데이터 크기, 메모리, 증분 API와 모델 기능을 비교하고 자원 설정을 적용합니다.
변환과 파이프라인
변환 정의는 decorator의 입출력 이름과 함수 인자를 맞추는 데서 시작합니다. 함수가 반환하는 일반 Python 값이 아니라 출력 핸들에 실제로 쓴 결과가 데이터셋이 됩니다. 여러 출력을 선언할 수도 있습니다.
Pipeline 등록은 어떤 출력에 어떤 코드를 실행할지 Foundry에 알립니다. 기본 템플릿은 datasets 패키지에서 변환들을 자동 발견합니다. 입출력 집합은 CI에서 확정하므로 빌드를 시작할 때마다 다른 자산 이름을 임의로 선택할 수는 없습니다.
프로젝트 구조의 setup.py, Pipeline entry point와 Conda recipe를 함께 유지해야 등록과 실행 환경이 연결됩니다.
데이터 처리 범위
일반 표 외에 원시 파일, 미디어 집합과 모델을 입력으로 사용할 수 있습니다. Iceberg 변환은 TableInput, TableOutput과 런타임의 Iceberg 핸들을 사용합니다. 가상 테이블은 엔진에 따라 Foundry 안에서 읽거나 외부 시스템으로 계산을 내려보낼 수 있습니다.
외부 변환은 허용한 소스를 통해 외부 API를 호출합니다. 프로젝트 권한, 보안 표지와 외부 통신 설정을 함께 충족해야 하며 일반 입력 데이터셋을 선언하는 것만으로 외부 접근 권한이 생기지는 않습니다.
LLM 및 학습된 모델 호출, 미디어 집합 처리와 데이터 기대 조건은 단일 노드와 Spark의 지원 범위가 다릅니다. 실행 비용과 입력의 증분 상태까지 포함하여 설계합니다.
시작과 운영
운석 데이터 튜토리얼은 필터, 평균 집계, 조인과 반복 변환 생성을 다룹니다. API 구문 이전은 현재 구문과 계속 지원하는 Legacy 구문 및 Databricks Connect의 차이를 설명합니다.
Python 지원 일정에 맞춰 환경을 유지합니다. 운영 빌드는 트랜잭션 안에서 출력을 쓰고, 명시적으로 중단하지 않은 트랜잭션은 job이 성공하면 commit합니다. 예외를 삼키거나 출력을 쓰지 않은 채 성공시키지 않아야 합니다. 기존 출력을 유지하려면 작업 전체 중단을 사용합니다. 개별 클래스와 메서드의 전체 계약은 Python transforms API를 참고할 수 있습니다.
환경 해석과 설치에서 패키지, 잠금 파일과 공유 라이브러리를 관리합니다. 로컬 개발, 오류 진단과 자원 지표도 이 환경의 실행 방식에 맞춰 확인합니다.
Python 외부의 실행 환경이 필요하면 컨테이너 변환과 사이드카를 사용합니다. 단일 노드 변환은 BYOC로 이미지 안의 프로그램을 실행할 수 있고, Spark 변환은 executor별 사이드카와 HTTP 또는 공유 볼륨으로 통신할 수 있습니다.
단위 테스트는 변환의 필터 조건, 결과값과 스키마를 확인합니다. 플랫폼 입출력 핸들을 대체하더라도 실제 엔진의 계산 결과를 독립적인 기대 데이터와 비교해야 합니다.
출력의 설명과 타입 클래스는 열 메타데이터로 전달합니다. 코드와 함께 배포할 YAML이나 CSV 설정은 패키지 리소스에 포함합니다.
FoundryConnector는 대화형 실행 환경에서 서비스 구성과 인증 정보를 사용해 입력 및 출력 핸들을 만들고 등록한 변환을 실행하는 API입니다.