주요 컨텐츠로 이동

알루미늄 생산에서의 지속 가능성

그래프프레임을 이용한 배치 추적성 재구성

Sustainability in Aluminum Production

Published: March 21, 2025

제조1분 이내 소요

Summary

  • 운영 체인을 통한 재료 추적의 비즈니스 가치와 일반적인 도전 과제
  • GraphFrames가 운영 체인을 통해 입력 배치와 출력 배치 사이의 계층적 관계를 어떻게 나타내는지
  • Pregel 알고리즘을 사용하여 배치의 전체 계보를 추적하는 방법

지속 가능한 알루미늄 생산 추진: GraphFrames를 이용한 재료 회수 비율 계산 방법

지속 가능한 생산은 오늘날의 제조 시장에서 필수적이게 되었습니다. 2022년 조사 에 따르면, 제조업체의 79%가 구체적인 지속 가능성 목표를 가지고 있다고 국가 제조업협회가 보고했습니다. 알루미늄 시트 및 호일 생산의 세계적인 선두주자 중 한 곳이 이 도전을 직면하고, Databricks를 사용하여 생산 라인 데이터를 분석하였습니다. 이 알루미늄 제조 회사는 제품 품질을 향상시키고, 자원을 최적화하며, 환경 영향을 줄이는 것을 목표로 합니다.

도전 과제: 생산 및 배출 모니터링의 복잡성

알루미늄 생산은 원자재를 완성품으로 변환하는 데 많은 단계가 포함된 복잡한 과정입니다. 이 과정 전반에 걸쳐 지속 가능성을 보장하기 위해, 회사는 시작부터 끝까지 환경 영향을 추적하는 보고 시스템을 개발하였습니다. 이 노력에서 중요한 지표 중 하나는 회수 비율입니다. 이는 폐자재에서 새 제품으로 성공적으로 재활용된 알루미늄의 비율을 나타냅니다. 이를 정확하게 측정하려면, 회사는 먼저 최종 제품을 만드는 데 필요한 각 단계를 식별해야 하며 (예: "배치 추적"), 그 다음 각 단계에서 발생하는 자재 낭비를 계산해야 합니다.

그러나 데이터는 엄청나게 많습니다. 생산 시스템은 최대 40단계의 연결된 생산 배치로 10억 행 이상을 기록했습니다. 전통적인 DataFrame 방법은 이러한 관계를 데이터에서 파싱하는 데 적합하지 않았습니다. 회사는 Pandas UDF를 사용하는 것을 고려했지만, 데이터의 크기와 복잡성이 증가함에 따라 이 UDF들은 성능 제한을 보였습니다. 이렇게 큰 데이터셋에서 깊게 중첩된 관계를 식별하려면 그 관계를 그래프로 모델링해야 했습니다. GraphFrames를 사용하여 구축된 솔루션은 Databricks ML Runtime 에 포함되어 있고 Databricks의 Photon Engine으로 최적화되어, 좋은 성능과 확장성으로 end-to-end 배치 추적을 수행했습니다.

GraphFrames 작업하기

제조 시스템은 단일 원료를 수백 단계의 중간 과정을 거쳐 수백 가지의 최종 제품으로 정제할 수 있습니다. 각각의 하위 프로세스는 자신의 입력 및 출력 자료에 대한 정보를 내보낼 수 있지만, 회복률과 같은 주요 지속 가능성 지표를 측정하려면 end-to-end 순서의 분석이 필요합니다. 목표는 일련의 중간 배치 ID를 통해 출력 배치를 원본 배치에 연결하는 것입니다. 전체 추적이 가능해지면, 우리는 각 단계에서 잃어버린 자료를 결정할 수 있습니다.

입력 및 출력 배치 번호가 있는 제조 공정 데이터
Manufacturing process data with input and output batch numbers

DataFrame에 행으로 저장된 생산 배치를 추적하여 최종 제품의 생산에서 손실된 총 재료를 계산하는 것은 어려울 수 있습니다. DataFrame은 비즈니스 객체 집합에 대한 많은 분석 쿼리에 유용하지만, 복잡한 객체 계층을 모델링하고 분석하는 기능이 부족합니다. GraphFrames는 대규모 객체 계층을 다루는 데 유용한 데이터 구조입니다. 그들은 계층을 그래프 로 모델링합니다:

  1. Vertices 는 비즈니스 객체를 나타냅니다 (예: 제조 공정에서의 Batch A)
  2. 엣지 는 객체 간의 쌍으로 이루어진 관계를 나타냅니다 (예: 배치 A는 배치 B의 원천입니다)

GraphFrames 라이브러리에는 그래프 데이터를 처리하는 데 많은 내장 도구가 있습니다. Pregel이라는 한 종류의 알고리즘은 그래프의 가장자리를 따라 정보를 전송하여 결과를 계산합니다. 배치 추적을 위해, 우리는 Pregel을 사용하여 그래프를 따라 이전 생산 단계의 정보(예: 출력 배치 번호)를 보내, 각 최종 제품에 대한 모든 상류 재료 배치의 전체 목록을 생성했습니다.

Pregel 이해하기

Pregel은 사용자가 고유한 비즈니스 문제에 적합한 사용자 정의, 병렬 메시지 전달 알고리즘을 구축할 수 있게 하는 프레임워크입니다. 각 vertex는 기본값으로 초기화됩니다. 결과는 슈퍼스텝 이라고 불리는 반복을 통해 계산됩니다. 각 superstep에서, 그래프 vertex는:

  1. 이웃에게 메시지를 전달 합니다
  2. 이웃으로부터 받은 메시지 집계
  3. 메시지 처리 하고 내부 상태를 업데이트합니다

Pregel 슈퍼스텝
A Pregel superstep

사용자 정의 함수 (UDFs)는 메시지가 어떻게 전달되고 vertex의 상태를 업데이트하는 데 사용되는지를 제어합니다. 이러한 유연성은 사용자가 다양한 사용 사례에 대해 Pregel 알고리즘을 구현할 수 있게 합니다. 우리의 제조 공정에서 배치를 추적하기 위해, 우리는 입력 배치 번호를 한 vertex에서 다른 vertex로 보냈고, 메시지가 수신되었을 때 각 vertex의 깊이와 원본 배치 번호를 업데이트했습니다.

배치 추적을 위한 함수 정의

Pregel로 배치 추적을 구현하려면, 그래프를 따라 배치 번호를 전송하려고 했습니다. 우리는 메시지 구조를 정의하는 것으로 시작했습니다. 우리의 것은 노드의 깊이, 배치 번호, 그리고 이전 배치 번호(즉, "추적")를 포함했습니다. 메시지 스키마를 정의한 후, 각 정점의 깊이에 따라 부모 배치에서 자식 배치로 메시지가 전송되도록 UDF를 생성했습니다.

메시지 스키마와 메시지 전달 함수를 정의하기
Defining a message schema and a message-passing function

제조 시스템은 여러 입력을 포함할 수 있으므로, 우리는 여러 상류 정점으로부터의 메시지를 처리하는 방법이 필요했습니다. 우리는 각각의 상류 생산 라인에서 받은 배치 번호의 단일 리스트를 수집하는 함수를 만들었습니다.

상류 vertex에서 메시지를 집계하기
Aggregating messages from upstream vertices

마지막으로, 우리는 집계된 배치 번호로 각 정점을 업데이트하는 함수를 만들었습니다.

결과를 사용하여 각 정점의 상태를 업데이트하기
Updating each vertex’s state with the results

데이터 사전 처리

우리의 첫 번째 단계는 데이터셋에서 소스 배치를 식별하는 것이었습니다. 우리는 배치 데이터에서 GraphFrame을 생성하고 inDegrees 속성을 사용하여 각 출력 배치에 대한 입력 배치의 수를 결정했습니다.

입력 배치 수를 얻기 위해 데이터 전처리
Pre-processing data to get the number of input batches

소스 배치를 찾은 후, 우리는 입력에서 출력까지 각 엣지를 따라 배치 번호를 전달하는 Pregel 알고리즘을 구성할 수 있었습니다. 이렇게 하면 모든 배치에 대한 전체 계보가 추적됩니다.

Pregel 알고리즘 실행

아래 이미지는 알고리즘을 실행하고 계보를 추적하기 위해 Pregel 프레임워크 호출을 보여줍니다.

GraphFrames Pregel 프레임워크를 사용합니다
Using the GraphFrames Pregel framework

GraphFrames는 1백만 배치에 대해 Pandas UDFs가 동일한 클러스터에서 실행되는 것에 비해 계층적 순회를 24배(4시간에서 약 10분) 가속화했습니다. 반면에, Pandas UDFs는 작업자 크기를 늘려서만 확장할 수 있었지만, 테스트는 작업자가 클러스터에 추가될 때 GraphFrames가 수평으로 확장됨을 보여주었습니다.

배치 추적 결과
Batch tracing results

결론

Databricks의 GraphFrames 사용은 이 제조업체에게 생산 과정에 대한 더 큰 통찰력을 제공하였습니다. 배치 추적 데이터로부터 개발된 보고를 통해, 운영 관리자는 결함을 조기에 식별하고, 폐기물을 줄이고, 더 일관된 제품 품질을 제공할 수 있습니다. 폐기물과 배출량을 더 정확하게 추적함으로써, 회사는 환경 영향을 최소화하고, 점점 더 엄격해지는 규정을 준수하며, 고객의 가치와 더 잘 부합하게 될 것입니다.

데이터 중심의 솔루션을 받아들임으로써, 이 제조업체는 물품을 생산하는 더 효율적이고 지속 가능한 방법을 찾을 수 있었습니다. GraphFrames는 많은 제조업체가 대규모로 생산 과정을 이해하는 데 사용할 수 있는 편리하고 Spark-native 그래프 기능을 제공합니다.

비즈니스에서 지속 가능성을 추구하는 데 관심이 있으신가요? 시작하려면 우리의 ESG 성과 분석 솔루션 가속기를 확인해 보세요!

 

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

게시물을 놓치지 마세요

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