주요 컨텐츠로 이동
Lakehouse

IP 함수가 정식 출시되어 레이크하우스에 고성능 네트워크 분석 기능을 제공합니다.

작성자: Michael Andersen , 벤자민 매튜

  • Databricks에는 이제 IPv4 및 IPv6 주소와 CIDR 블록을 파싱, 검증, 표준화 및 조인할 수 있는 기본 내장 IP 함수 제품군이 포함되어 있어, UDF나 정규식(regex), 불안정한 비트 연산이 필요하지 않습니다.
  • 최고 수준의 SQL, PySpark 및 Scala 함수가 Photon에서 최적화되어 까다로운 네트워크 워크로드를 몇 분이 아닌 몇 초 만에 실행할 수 있습니다.
    일대일 벤치마크 테스트에서 Databricks는 다른 선도적인 클라우드 데이터 웨어하우스보다 IP CIDR 조인을 최대 3.1배 더 빠르게, 최대 6.4배 더 저렴하게 완료했습니다.
  • 현재 Databricks Runtime 18 LTS 이상에서 정식 버전으로 제공됩니다.

IP 데이터는 웨어하우징 데이터입니다

모든 방화벽, 로드 밸런서, VPN, CDN 에지, DNS 리졸버, Kubernetes 클러스터 및 애플리케이션 서버는 모두 한 가지 핵심 요소를 기준으로 레코드 스트림을 내보냅니다. 바로 IP 주소입니다. 대기업의 경우 이러한 스트림은 다 함께 하루에 수백억 개의 이벤트를 생성하며 위협 탐지, 사기 조사, 네트워크 옵저버빌리티 등 조직이 실행하는 가장 가치 있는 분석의 기반이 됩니다. 역사적으로 업계에서는 이러한 네트워크 옵저버빌리티 사용 사례를 특수 스택이 필요한 특수 사용 사례로 취급하여 사일로화, 거버넌스 파편화 및 벤더 종속(lock-in)을 초래했습니다.

이제 상황이 달라집니다. 오늘부로 IP 함수(IP Functions)가 정식 출시(GA)되었습니다. 이번 출시를 통해 IP 주소 분석은 레이크하우스에서 최고 수준의 고성능 SQL 워크로드로 자리 잡게 되었으며, 보안 팀은 단일 거버넌스 모델 하에 다른 분석 데이터와 함께 대용량 IP 데이터를 파싱, 보강 및 분석할 수 있게 되었습니다.

네트워크 분석이 까다로웠던 이유

과거에는 SQL에서 IP 주소를 처리하기가 생각보다 매우 까다로웠습니다. IPv4 주소는 문자열처럼 보이지만 32비트 정수처럼 작동하고, IPv6는 128비트입니다. 10.0.0.0/8과 같은 CIDR 블록은 단순한 값이 아니라 1,600만 개의 주소 범위를 나타냅니다. "이 IP가 해당 서브넷에 포함되어 있는가?"라는 질문은 텍스트 뒤에 숨겨진 범위 포함 여부를 판단해야 하는 문제입니다.

네이티브 지원이 없었기 때문에 팀들은 몇 가지 불안정한 패턴 중 하나를 선택해야만 했고, 이는 정확성, 성능 또는 유지 관리 편의성을 희생하는 결과를 낳았습니다.

일반적인 해결 방법

감수해야 하는 비용

문자열에서 옥텟을 추출하기 위한 정규식(Regex) 파싱

느리고 취약하며, 잘못된 형식이나 IPv6 입력에 대해 오류 없이 잘못된 결과를 반환함

주소를 정수로 변환하기 위한 수동 비트 연산

작성자만 이해할 수 있는 가독성 낮은 SQL, v4/v6 경계에서 작동하지 않음

CIDR 포함 여부 확인을 위한 사용자 정의 함수(UDF)

벡터화 및 쿼리 옵티마이저 인식을 저해함. 플래너가 푸시다운(push down)하거나 브로드캐스트할 수 없는 블랙박스가 됨

외부 파이프라인에서 CIDR을 범위로 미리 확장

유지 관리해야 할 별도의 파이프라인 발생

IPv6를 완전히 제외

현대 트래픽의 상당 부분이 분석에서 소리 없이 제외됨

그 결과는 모두에게 손해였습니다. SQL만 사용하는 분석가는 절차적 코드가 필요하다는 이유로 기본적인 IP 필터링을 수행할 수 없었습니다. 데이터 엔지니어는 UDF 라이브러리와 CIDR 확장 작업을 유지 관리하는 데 시간을 허비했습니다. 무엇보다도 위협 인텔리전스 및 geo-IP 테이블을 기반으로 수십억 개의 이벤트를 보강하는 것과 같은 중요한 워크로드는 비즈니스에서 단 몇 분 만에 답을 필요로 할 때 1시간 이상 소요되곤 했습니다. 페타바이트 규모에서 이러한 시간 차이는 진행 중인 침입을 실시간으로 잡아내느냐, 아니면 사후 분석 보고서에서 확인하느냐의 차이를 만듭니다.

SQL에 내장된 네이티브 IP 함수

Databricks는 네트워크 데이터를 레이크하우스의 핵심 요소로 만들어 주는 완전한 빌트인 IP 함수 세트를 도입합니다. 이 함수들은 IPv4와 IPv6를 일관되게 처리하고, 사람이 읽을 수 있는 STRING 형식과 압축된 BINARY 형식을 모두 지원하며, CIDR 표기법을 네이티브로 이해합니다. 또한 엔진 자체에 구현되어 있어 옵티마이저와 Photon이 이를 가속화할 수 있습니다.

아래 예시는 원시 네트워크 플로우 로그를 위협 인텔리전스로 보강한 다음, 수많은 대상 및 포트를 스캔하는 의심스러운 소스 네트워크를 식별하는 과정을 보여줍니다. 이전에는 커스텀 파싱 로직과 맞춤형 IP 라이브러리가 필요했던 작업을 이제 네이티브 IP 및 CIDR 연산을 사용하여 SQL에서 직접 표현할 수 있습니다.

UDF도, 정규식도, 복잡한 정수 변환도 필요 없습니다. 분석가가 실제로 묻고자 하는 질문 그대로 직관적으로 읽힙니다.

제공되는 함수

정식 출시(GA) 버전에는 IP 데이터를 파싱, 정규화, 검사 및 조인하는 데 필요한 전체 툴킷이 포함되어 있습니다.

포함 여부 및 조인

  • ip_cidr_contains(cidr, needle) - IP 주소 또는 다른 CIDR 블록이 특정 CIDR 블록 내에 포함되는지 테스트합니다. 이는 CIDR 블록 조인 및 대용량 필터링의 기반이 되는 단일 조건자(predicate)이며, 전체 최적화 작업의 핵심이 되는 함수입니다.

파싱 및 표준화(Canonicalization)

  • ip_host(ip) - IPv4 또는 IPv6 주소를 표준 형식으로 정규화합니다(예: 2001:0db8:0000::1을 2001:db8::1로 축소).
  • ip_cidr(cidr) - CIDR 블록의 표준 표현을 생성합니다.

CIDR 검사

  • ip_network(cidr) / ip_network_first(cidr) - CIDR 블록의 첫 번째(네트워크) 주소를 반환합니다.
  • ip_network_last(cidr) - CIDR 블록의 마지막 주소를 반환합니다.
  • ip_prefix_length(cidr) - 접두사 길이(/ 뒤의 숫자)를 반환합니다.
  • ip_version(ip_or_cidr) - 4 또는 6을 반환하므로 특별한 예외 처리 없이 혼합 프로토콜 주소를 분기 처리할 수 있습니다.

표현 변환 - 성능 향상용

  • ip_as_binary(ip_or_cidr) - 주소 또는 CIDR을 표준적이고 압축된 이진 형식(IPv4의 경우 4바이트, IPv6의 경우 16바이트)으로 변환합니다. BINARY을 기준으로 저장하고 조인하면 반복적인 파싱을 방지하고 스토리지 용량을 줄일 수 있습니다.
  • ip_as_string(ip_or_cidr) - 보고서 작성을 위해 이진 표현을 다시 사람이 읽을 수 있는 텍스트로 변환합니다.

정리되지 않은 데이터를 위한 안전한 변형 함수

  • try_ip_host(ip), try_ip_cidr(cidr), try_ip_as_binary(ip_or_cidr), try_ip_as_string(ip_or_cidr) - 기존 함수와 동일하지만, 잘못된 입력에 대해 오류를 발생시키는 대신 NULL을 반환합니다. 일부 레코드가 항상 손상되어 있는 원시 로그를 수집할 때 필수적이며, 단 하나의 잘못된 행 때문에 10억 행 규모의 작업이 실패하는 것을 방지합니다.

이러한 네이티브 함수는 다른 SQL과 자연스럽게 결합되며, 별도의 설정 없이 모든 SQL 사용자가 사용할 수 있습니다. 또한 옵티마이저가 이를 이해하므로 뛰어난 성능 향상이 가능해집니다.

기업의 GenAI, Data 및 Cloud 플랫폼 개발을 지원하는 Rearc는 대규모 고객을 위한 네트워크 옵저버빌리티 사용 사례를 구축하기 위해 IP 함수(IP Functions)를 활용하고 있습니다.

저희는 성능과 비용 효율성이 매우 중요한, 하루 30TB 이상의 데이터를 정기적으로 처리하는 대형 금융 기업을 위한 제품을 구축했습니다. Databricks 엔진에 내장된 기본 IP 함수 덕분에 SQL에서 직접 IP 데이터를 파싱, 검증, 조인할 수 있었으며, 기존의 임시(ad-hoc) 구현을 훨씬 더 우아하고 유지 관리하기 쉬운 방식으로 대체할 수 있었습니다. 이 함수들은 엔진에 내장되어 있기 때문에, 이 규모에서 워크로드가 요구하는 성능을 저해하지 않으면서도 이러한 이점을 얻을 수 있었습니다. 덕분에 레이크하우스에서의 네트워크 분석을 더 간단하고 빠르게 제공할 수 있게 되었습니다." —Dara Kharabi, Rearc의 AI & 데이터 부문 실무 리드

페타바이트 규모를 위한 설계: 분 단위가 아닌 초 단위

일반적인 IP 분석의 과제는 훨씬 더 넓은 범위 내에서 단일 주소 또는 하위 CIDR을 찾는 것입니다. 이는 대규모로 위협을 신속하게 감지하고, 사기를 조사하며, 네트워크 활동을 모니터링하는 데 매우 중요합니다. 이 사용 사례는 범위 조인(range join)에 해당하는데, 표준 조인 알고리즘은 동등성(equality)에 의존하기 때문에 기존 엔진들은 역사적으로 이 작업에 어려움을 겪어왔습니다. Databricks 엔진은  ip_cidr_contains을(를) 통해 IP 주소에 최적화된 범위 조인을 지원합니다. 

Databricks의 ip_cidr_contains은(는) 모든 규모의 프로브(즉, '바늘') 및 블록(즉, '건초더미') 테이블에서 가격과 속도 모두 기존 데이터 웨어하우스보다 뛰어난 성능을 발휘합니다. 저희는 5가지 대표적인 시나리오를 통해 ip_cidr_contains의 벤치마크를 수행했습니다:

시나리오

프로브 테이블 크기 
(즉, 바늘의 수)

CIDR 블록 테이블 크기 
(즉, 건초더미의 수)

엄선된 차단 목록(denylist)과 조인된 팀의 일일 액세스 로그

1,000만 개의 IP

1,000개 블록

중간 수준의 위협 인텔리전스와 조인된 대형 고객의 일일 활동

10억 개의 IP

10만 개 블록

알려진 클라우드 제공업체 범위 세트와 한 분기 분량의 방화벽 및 VPN 로그 상호 연관 분석

100억 개의 IP

100만 개 블록

통합 ID 위험 테이블과 모든 인증 이벤트를 매칭하는 대기업

100억 개의 IP

500만 개 블록

더 큰 규모의 위협 인텔리전스와 조인된 일주일간의 트래픽

100억 개의 IP

1,000만 개 블록

결과에 따르면 규모가 커지더라도 Databricks의 IP 함수 성능이 경쟁사보다 훨씬 뛰어납니다. 프로브 수가 100억 개의 IP 주소를 초과하고 블록 수가 100만 개의 CIDR을 넘어서면 쿼리 속도가 정체되기 시작합니다. 

실행당 상대적 비용 차트

비용 격차도 마찬가지로 극명합니다. 워크로드가 확장되더라도 Databricks는 여전히 2배에서 최대 6.4배 더 저렴합니다.

실행당 상대적 비용 차트

Stanby는 외부 시스템이 아닌 레이크하우스에서 직접 네트워크 모니터링 사용 사례를 실행하는 것의 가치를 빠르게 확인했습니다:

"Databricks의 기본 IP 함수 덕분에 SQL에서 직접 IP 및 CIDR 데이터를 작업할 수 있게 되었습니다. 이제 더 이상 불안정한 문자열 파싱이나 수동 비트 연산 논리에 의존하지 않습니다. IP 데이터를 일급 SQL 작업으로 파싱, 검증, 조인할 수 있게 되면서 팀의 작업이 더 간단해지고 유지 관리가 쉬워졌습니다. 레이크하우스의 나머지 데이터와 함께 네트워크 및 트래픽 분석을 실행하는 데 아주 자연스럽게 어우러집니다."—Stanby, 데이터 엔지니어링 리더

궁극적으로, 이러한 고성능 IP 함수를 통해 완전히 새로운 종류의 네트워크 워크로드를 레이크하우스에 직접 구축할 수 있습니다.

이를 통해 가능해지는 것들

빠르고 기본적인 내장형 IP 함수 덕분에 이전에는 레이크하우스에서 처리할 수 없었던 전체 워크로드를 레이크하우스로 이전할 수 있습니다:

  • 대규모 CIDR 강화 조인 - 모든 이벤트에 GeoIP, ASN, 위협 인텔리전스 또는 소유권 메타데이터를 몇 초 만에 태깅하여 다운스트림 감지 및 조사 쿼리가 강화된 데이터를 대상으로 실행되도록 합니다.
  • 대용량 실시간 필터링 - "지난 24시간 동안 이 의심스러운 /16에서 발생한 모든 연결 표시"가 배치 작업 대신 대화형 쿼리로 바뀝니다.
  • 통합 IPv4 및 IPv6 분석 - 혼합 프로토콜 테이블이 즉시 지원되므로 최신 트래픽이 누락되지 않고 분석됩니다.
  • CIDR-in-CIDR 매칭 - 네트워크 토폴로지 및 정책 분석을 위해 IP-in-CIDR과 동일한 성능으로 전체 서브넷이 다른 서브넷에 포함되는지 여부를 확인합니다.
  • 일급 SQL 접근성 - 분석가는 절차적 코드나 UDF 라이브러리 없이 일반 SQL만으로 IP 필터링 및 조인을 수행할 수 있습니다.

이러한 함수가 레이크하우스에서 기본적으로 지원되므로, 이러한 네트워크 워크로드는 기업의 나머지 부서와 거버넌스가 적용된 단일 데이터 복사본을 공유하게 됩니다. 라이선스를 취득하고 보안을 유지하며 동기화해야 하는 별도의 특화된 시스템이 필요하지 않습니다.

지금 시작하기

기본 IP 함수는 현재 Databricks Runtime LTS 이상 버전에서 정식 출시(GA) 되어 사용할 수 있습니다. 

전체 함수 목록과 시그니처는 IP 함수 참조 문서를 확인하세요. 네트워크 파이어호스(firehose)는 항상 가장 큰 데이터 세트 중 하나였습니다. 이제 마침내 다른 분석 데이터와 동일한 위치에 둘 수 있습니다.

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

최신 게시물을 이메일로 받아보세요

블로그를 구독하고 최신 게시물을 이메일로 받아보세요.