주요 컨텐츠로 이동

새로운 UC Python UDF 기능에 대한 지원 발표

사용자 정의 SQL UDF를 사용자 정의 의존성, 일괄 실행, UC 서비스 자격증명으로 강화하세요

Announcing support for New UC Python UDF Features

Published: June 23, 2025

제품3분 소요

Summary

  • 사용자 정의 Python 의존성과 함께 UC Python UDF 실행
  • UC Python UDF는 더 빠르고 유연한 실행을 위해 배치 모드를 지원
  • Unity Catalog 서비스 자격증명을 사용하여 UC Python UDF에서 클라우드 서비스에 액세스

Unity Catalog Python 사용자 정의 함수 (UC Python UDFs)는 현대의 데이터 웨어하우징에서 점점 더 많이 사용되며, 수천 개의 조직에서 매일 수백만 개의 쿼리를 실행합니다. 이 함수들은 사용자가 클러스터, SQL 웨어하우스 및 DLT를 포함한 모든 Unity Catalog 활성화 컴퓨트에서 Python의 전체 기능을 활용할 수 있게 해줍니다.

AWS, Azure, GCP에서 Unity Catalog 클러스터를 실행하는 Databricks Runtime 16.3, SQL 웨어하우스 (2025.15)를 사용하여 UC Python UDF에 대한 여러 개선 사항을 공개 미리보기에서 사용할 수 있게 되었다는 소식을 기쁘게 생각합니다. 그리고 서버리스 노트북과 워크플로우:

  • Unity Catalog Volumes 또는 외부 소스에서 설치된 사용자 정의 Python 의존성에 대한 지원.
  • 더 많은 유연성과 향상된 성능을 제공하는 배치 입력 모드.
  • Unity Catalog Service Credentials를 사용하여 외부 클라우드 서비스에 안전하게 액세스.

이러한 각 기능들은 SQL에서 직접 데이터와 외부 시스템을 다루는 새로운 가능성을 열어줍니다. 아래에서, 우리는 세부 사항과 예시를 살펴볼 것입니다.

UC Python UDF에서 사용자 정의 의존성 사용

이제 사용자는 UC Python UDF에서 사용자 정의 Python 의존성을 설치하고 사용할 수 있습니다. 이 패키지들은 PyPI, Unity Catalog Volumes, 그리고 blob 저장소에서 설치할 수 있습니다. 아래의 예제 함수는 PyPI에서 pycryptodome을 설치하여 SHA3-256 해시를 반환합니다:

이 기능을 사용하면 안정적인 Python 환경을 정의하고, 보일러플레이트 코드를 피하며, UC Python UDFs의 기능을 세션 기반 PySpark UDFs에 가깝게 가져올 수 있습니다. Databricks Runtime 16.3부터 사용 가능한 의존성 설치는 SQL 웨어하우스, 서버리스 노트북 및 워크플로우에서 가능합니다.

배치 UC Python UDF 소개

UC Python UDFs는 이제 데이터의 배치에서 작동하는 함수를 허용하며, 이는 PySpark에서의 벡터화된 Python UDFs와 유사합니다. 새로운 함수 인터페이스는 향상된 유연성을 제공하고 여러 가지 이점을 제공합니다:

  • 일괄 실행은 사용자에게 더 많은 유연성을 제공합니다: UDF는 배치 간에 상태를 유지할 수 있습니다. 즉, 시작할 때 비싼 초기화 작업을 한 번만 수행합니다.
  • pandas 시리즈에서 벡터화된 연산을 활용하는 UDF는 행 단위 실행에 비해 성능을 향상시킬 수 있습니다.
  • 아래의 클라우드 함수 호출 예시에서 보여지는 것처럼, 배치 데이터를 클라우드 서비스에 전송하는 것은 한 번에 한 행씩 호출하는 것보다 더 비용 효율적일 수 있습니다.

이제 AWS, Azure, 그리고 GCP에서 사용할 수 있는 배치 UC Python UDFs는 Pandas UDFs 또는 Vectorized Python UDFs로도 알려져 있습니다. UC Python UDF를 PARAMETER STYLE PANDAS로 표시하고 HANDLER 함수를 이름으로 호출하도록 지정하여 소개합니다. 핸들러 함수는 pandas 시리즈의 반복자를 받는 Python 함수로, 각 pandas 시리즈는 하나의 배치에 해당합니다. 핸들러 함수들은 pandas_udf API와 호환됩니다.

예를 들어, 아래의 UDF는 시작할 때 다운로드한 JSON 객체 매핑을 기반으로 주별 인구를 계산합니다:

Unity Catalog Service Credential 접근

이제 사용자는 Unity Catalog service credentials 를 배치 UC Python UDF에서 효율적이고 안전하게 외부 클라우드 서비스에 액세스하는 데 활용할 수 있습니다. 이 기능은 사용자가 SQL에서 직접 클라우드 서비스와 상호 작용할 수 있게 합니다.

UC Service Credentials는 Unity Catalog에서 관리되는 객체입니다. 이들은 키-값 저장소, 키 관리 서비스, 또는 클라우드 함수와 같은 어떤 클라우드 서비스에도 접근을 제공할 수 있습니다. UC 서비스 자격증명은 모든 주요 클라우드에서 사용할 수 있으며 현재 배치 UC Python UDFs에서 접근할 수 있습니다. 일반 UC Python UDF에 대한 지원은 향후 제공될 예정입니다.

서비스 자격증명은 UDF 정의에서 CREDENTIALS 절을 사용하여 배치 UC Python UDF에 사용할 수 있습니다 (AWS, Azure, GCP).

예시: Batch UC Python UDF에서 클라우드 함수 호출

우리의 예시에서는 Batch UC Python UDF에서 클라우드 함수를 호출할 것입니다. 이 기능은 기존 함수와의 원활한 통합을 가능하게 하며, 어떤 기본 컨테이너, 프로그래밍 언어, 또는 환경이든 사용할 수 있게 합니다.

Unity 카탈로그를 사용하면 서비스 자격증명과 UDF 객체 모두에 대한 효과적인 관리를 구현할 수 있습니다. 위의 그림에서, Alice 는 UDF의 소유자이자 정의자입니다. Alice는 UDF에 대한 EXECUTE 권한을 Bob에게 부여할 수 있습니다. Bob이 UDF를 호출하면, Unity Catalog Lakeguard 는 Alice의 서비스 자격증명 권한으로 UDF를 실행하면서 Bob이 서비스 자격증명에 직접 액세스하지 못하게 보장합니다. UDFs는 자격증명에 접근하기 위해 정의하는 사용자의 권한을 사용할 것입니다.

세 가지 주요 클라우드 모두 지원되지만, 이 예시에서는 AWS에 초점을 맞추겠습니다. 다음에서는 람다 함수를 생성하고 호출하는 단계를 살펴보겠습니다.

UC 서비스 자격증명 생성하기

사전 요구사항으로, 람다 함수를 실행할 적절한 권한을 가진 UC Service Credential을 설정해야 합니다. 이를 위해,mycredential 이라는 서비스 자격증명을 설정하는 지침을 따릅니다. 또한, 우리는 AWSLambdaRole 정책을 첨부하여 우리의 역할이 함수를 호출할 수 있도록 허용합니다.

람다 함수 생성

두 번째 단계에서는 AWS UI를 통해 AWS Lambda 함수를 생성합니다. 우리의 예시 Lambda HashValuesFunctionNodenodejs20.x 에서 실행됩니다 그리고 입력 데이터의 해시를 계산합니다:

배치 UC Python UDF에서 람다 호출

세 번째 단계에서는 이제 람다 함수를 호출하는 배치 UC Python UDF를 작성할 수 있습니다. 아래의 UDF는 CREDENTIALS 절에서 그것들을 지정함으로써 서비스 자격증명을 사용할 수 있게 합니다. UDF는 각 입력 배치에 대해 Lambda 함수를 호출하며, 전체 배치의 데이터로 클라우드 함수를 호출하는 것이 행 단위로 호출하는 것보다 비용 효율적일 수 있습니다. 이 예시는 또한 Spark의 TaskContext에서 호출하는 사용자의 이름을 Lambda 함수로 전달하는 방법을 보여줍니다. 이는 속성 부여에 유용할 수 있습니다:

지금 시작해 보세요!

Unity Catalog에서 향상된 Python UDF의 Public Preview를 시도해 보세요 – 의존성을 설치하거나, 배치 입력 모드를 활용하거나, UC 서비스 자격증명을 사용해 보세요!

UC Compute와 Spark 제품 및 엔지니어링 팀이 6월 9일부터 12일까지 샌프란시스코의 Moscone Center에서 열리는 Data + AI Summit에 참여하세요! 데이터와 AI 거버넌스 및 보안의 최신 혁신에 대한 첫 번째 시선을 가져보세요. 지금 등록하여 자리를 확보하세요!

 

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요