세 명의 엔지니어 팀이 Octopus Energy의 데이터 파이프라인을 재설계하여 데이터 볼륨을 48배 늘리고 비용을 50배 절감한 방법.
작성자: Saad Ali, David Poulet, Daniel Taylor , Ismail Makhlouf
영국의 에너지 그리드는 수십 년 만에 가장 큰 구조적 변화를 겪고 있습니다. 풍력, 태양광과 같은 재생 에너지의 전력 생산 점유율이 높아짐에 따라 간헐성이 주요 문제가 됩니다. 즉, 햇빛이 비칠 때는 에너지가 저렴하지만 그렇지 않을 때는 비쌉니다.
월별 계량기 판독값과 평균 소비 프로필을 기반으로 구축된 기존 정산 모델은 이러한 신호를 정확하게 가격 책정할 수 없습니다. 신호를 정확하게 가격 책정할 수 없다면 소비자에게 전달할 수 없으며, 수요는 공급과 일치하도록 절대 바뀌지 않습니다.
시장 전체의 반시간별 정산(MHHS)이 규제 대응책입니다. 영국의 모든 가구는 월 2회 계량기 판독에서 하루 48회 판독으로 전환됩니다. 이는 점진적인 변화가 아닙니다. Octopus Energy와 같이 8백만 명 이상의 고객을 보유한 공급업체에게는 모든 마진 계산, 모든 정산 의무 및 모든 상업적 결정을 내리는 데이터 포인트가 48배 증가하는 것입니다.
데이터 엔지니어링의 직접적인 영향은 다음과 같습니다. 재설계하지 않으면 Octopus Energy의 마진 파이프라인 운영을 위한 인프라 비용이 매년 1백만 달러까지 치솟을 것으로 예상되었습니다.
데이터 볼륨이 48배 증가하면 인프라를 더 많이 확보하려는 본능이 생깁니다. Octopus Energy의 마진 데이터 팀에게 그 본능은 곧 실행 불가능하다는 것이 입증되었습니다. 기존 아키텍처에서의 정산일당 예상 비용은 23.63달러로, 과거 평균보다 33배 증가한 수치입니다. 이를 정산 기간 전체에 곱하면 비용은 빠르게 누적됩니다.
그러나 더 근본적인 문제는 컴퓨팅 비용이 아니라 아키텍처 불일치였습니다. 기존 파이프라인은 단일 단위인 월별을 중심으로 구축되었습니다. 청구는 월별로 이루어졌습니다. 정산도 월별로 이루어졌습니다. 전체 파이프라인은 설계상 모놀리식(monolithic)이었습니다.
MHHS는 근본적인 분할을 도입했습니다. 산업 비용 데이터는 이제 반시간별 세분화, 즉 고객당 하루 48개의 데이터 포인트로 도착합니다. EV 및 히트 펌프를 사용하는 스마트 요금제 고객은 반시간별 수익 계산이 필요합니다. 표준 요금제 고객은 여전히 월별로 정산합니다. 이 세 가지를 단일 모놀리식 파이프라인으로 실행하면 실제로 변경된 내용에 관계없이 모든 실행에서 전체 데이터 세트를 처리해야 합니다.
Octopus Energy의 마진 데이터 팀 리더인 Saad Ali는 다음과 같이 말했습니다. "이런 문제에 컴퓨팅 성능만 더한다고 해결되지 않습니다. 처음부터 다시 구축하고 로직을 재고해야 합니다."
팀은 각 스트림을 자연스러운 단위에 맞게 독립적으로 최적화하여 세 개의 전문화된 스트림을 중심으로 재설계했습니다.
정산 - 규제 정산 및 비용 할당을 위한 반시간별 세분화. 산업 요금은 하루 48개의 데이터 포인트이며, 이 스트림은 해당 단위를 정확하게 일치시킵니다.
반시간별 - EV 운전자, 히트 펌프 사용자 및 반시간별 가격 신호가 전체 상업적 제안인 시간별 사용 제품과 같은 스마트 요금제 고객을 위한 반시간별 처리.
월별 - 표준 요금제 고객을 위한 월별 처리. 단위는 변경되지 않았지만 이제 반시간별 데이터와 조정 가능합니다.
"Job of Jobs" 오케스트레이션 패턴은 세 스트림 간의 종속성 및 병렬 실행을 관리합니다. 각 스트림은 독립적으로 조정 가능합니다. 정산에 대한 Spark 최적화가 NHH에 반드시 적합한 것은 아닙니다.
이 세 가지 모두의 기반에는 다운스트림 소비 계층이 있습니다. 이는 계량기 판독값, 스마트 미터 데이터 및 멀티 테라바이트 규모의 산업 흐름을 통합하는 통합된 다중 단위 진실 공급원입니다. 이 계층은 월별 청구와 반시간별 정산 간의 조정 브릿지이며, 프로젝트에서 가장 높은 레버리지 최적화 지점이 되었습니다.
업스트림 소비 테이블에 대한 단순한 접근 방식, 즉 매번 전체 멀티 테라바이트 데이터 세트를 다시 처리하는 것은 새로운 볼륨에서 지속 불가능한 컴퓨팅 비용을 의미했을 것입니다.
Delta Lake의 변경 데이터 피드(CDF)를 통해 이 단위에서 진정한 증분 처리가 가능해졌습니다. 전체 덮어쓰기 대신, 파이프라인은 이제 마지막 실행 이후 실제로 변경된 레코드만 읽습니다. 결과: 실행당 처리된 행이 250억 개에서 3억 개로 감소했습니다. 98.8% 감소입니다.
데이터 최신성은 주간에서 일일로 개선되었습니다. 상업 팀에게 이 변화는 가격 결정이 실제로 이루어지는 단위, 즉 매주가 아니라 매일 아침에 마진 가시성을 확보할 수 있음을 의미합니다.
참고: 아래에 언급된 연간 1백만 달러의 절감액은 업스트림 테이블에 대한 증분 처리로의 전환으로 인한 추가 절감액은 제외됩니다. 전체 효율성 향상은 더 큽니다.
시스템을 통해 48배 더 많은 데이터가 흐르면서 팀은 네 가지 범주에 걸쳐 측정으로 검증된 대상 최적화를 적용했습니다.
계보 및 I/O 감소
조인 및 파티션 조정
최적화 프로그램 신뢰
마지막 요점은 강조할 가치가 있습니다. 불필요한 컴퓨팅 작업을 제거하는 것은 새로운 최적화를 추가하는 것만큼 효과적이었습니다. 측정 없이 Z-Ordering 또는 ANALYZE를 실행하는 경우, 절약하는 것보다 더 많은 비용이 들 수 있습니다.
Databricks Serverless 덕분에 3개월의 배포 기간을 달성할 수 있었습니다. 클러스터 시작 시간이 0이어서 팀은 인프라 프로비저닝을 기다리지 않고 신속하게 반복할 수 있었습니다. 즉, 작성, 실행, 측정, 조정이 가능했습니다.
Serverless UI를 통해 실행을 나란히 비교할 수 있었기 때문에 개별 최적화의 효과를 분리하는 것이 실용적이었습니다.
팀의 말에 따르면, "Serverless 없이는 테스트 및 개발 프로세스를 완료할 수 없었습니다. Serverless UI를 사용하여 병목 현상을 식별하고 다양한 실행 간의 쉬운 비교를 할 수 있었습니다."
| 지표 | 이전 | 이후 | 변경 사항 |
| 실행 당 처리된 행 | 250억 | 3억 | 98.8% 감소 |
| 정산일당 비용(예상 MHHS) | 23.63달러 | 0.48달러 | ~50배 감소 |
| 정산일당 비용(기존 대비) | 0.71달러 | 0.48달러 | 2배 효율성 향상 |
| 월말 실행당 절감액 | - | ~83,000달러 | 최적화되지 않은 예상 대비 |
| 연간 비용 회피 | - | ~1,000,000달러 | 업스트림 절감액 제외 |
| 데이터 최신성 | 주간 | 일간 | 7배 향상 |
| 빌드 시간 | - | 3개월 | 3명 팀 |
정산일당 0.48달러는 MHHS 예상 비용에서 50배 감소한 것뿐만 아니라, 48배 더 많은 데이터 포인트를 처리함에도 불구하고 기존 시스템보다 2배 저렴합니다. 재설계를 통해 규정 준수를 달성했으며 시스템을 대체한 시스템보다 훨씬 더 효율적으로 만들었습니다.
MHHS는 영국의 에너지 규제입니다. 그러나 이를 나타내는 패턴, 즉 규제 또는 비즈니스 이벤트가 더 세분화된 단위로 데이터 볼륨을 증폭시키는 것은 에너지 산업에만 국한되지 않습니다. 시스템이 월별에서 일별로, 일별에서 실시간으로, 또는 집계에서 트랜잭션으로 이동하는 모든 경우에 동일한 역학 관계가 적용됩니다.
Octopus Energy 경험에서 얻은 네 가지 이전 가능한 교훈:
Saad의 말에 따르면: "시스템을 더 빠르고 효율적으로 만듦으로써, 고객이 가장 저렴하고 깨끗한 에너지를 사용할 수 있도록 돕는 더 스마트한 요금제를 제공할 수 있습니다."
비용 절감은 특정 목표를 달성합니다. 고주파 데이터 처리의 경제적 장벽을 제거합니다. 이를 통해 그리드 밸런싱을 제품으로 만들 수 있습니다. 스마트 요금제를 상업적으로 지속 가능하게 만듭니다. 이것이 바로 대규모 데이터 엔지니어링이 에너지 전환과 연결되는 방식입니다. 인프라 오버헤드가 아니라 그 상업적 기반으로서 말입니다.
MHHS 준수가 의무였습니다. 지속 가능한 에너지를 저렴한 옵션으로 만드는 것이 사명입니다. 데이터 엔지니어링은 이 두 가지를 연결하는 것입니다.
———
Saad Ali는 Octopus Energy의 마진 데이터 팀 리더입니다. Ismail Makhlouf, David Poulet, Daniel Taylor는 Databricks의 솔루션 아키텍트입니다.
(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)
블로그를 구독하고 최신 게시물을 이메일로 받아보세요.