데이터 엔지니어링 미니 프로젝트미니 프로젝트 - 데이터 엔지니어링 도전!

본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

미니 프로젝트 - 데이터 엔지니어링 도전!

이 콘텐츠는 learn.palantir.com ↗에서도 이용 가능하며, 접근성을 위해 이곳에도 제공됩니다.

당신은 Odyssey라는 제조 회사에서 일하고 있습니다. Odyssey는 전세계에 다양한 제조 공장을 두고 있고, 이 공장들에서는 전자제품 유닛을 생산합니다. 글로벌 공급망의 혼란과 갑작스러운 수요 변화로 인해, 회사는 언제든지 고객에게 전자제품 유닛을 공급할 수 있는지 이해하는 것이 중요해졌습니다. 즉, 그들은 그들의 준비 상태를 이해하고자 합니다.

배경

Odyssey는 그들의 생산을 설명하기 위해 Units, Parts, Assemblies, 그리고 Components라는 용어를 사용합니다:

  • Plant는 전자제품 유닛이 생산되는 제조 사이트입니다.
  • Unit은 Plant에서의 물리적 오브젝트로서,
    • 공급 업체로부터 구매한 Component이거나
    • Component로 구성되어 Plant에서 생산되고, 주문을 통해 고객에게 전달되는 Assembly일 수 있습니다.
  • Part은 unit의 유형입니다. 예를 들어, part는 모든 23인치 볼트의 클래스일 수 있고, unit은 특정 실제 세계의 23인치 볼트에 해당합니다. part는 assembly part 또는 component part일 수 있습니다.

아래의 다이어그램은 이러한 관계를 보여줍니다. Part Blue는 2개의 component part Green과 1개의 component part Yellow로 구성된 assembly part입니다. part를 unit의 청사진으로 생각할 수 있습니다. 오른쪽에는 part Blue의 3개 assembly unit이 보여집니다. 각각은 part Green의 2개와 part Yellow의 1개인 총 3개의 component unit으로 구성되어 있습니다.

유즈케이스: Plant 준비 상태

Plant의 준비 상태를 파악하기 위해, plant 관리자는 Low TargetHigh Target이라는 두 가지 목표를 입력할 수 있는 간단한 워크플로를 원합니다. 이 숫자들은 각각 plant가 각 part에 대해 공급할 수 있는 최소 assembly unit 수와 선호하는 assembly unit 수를 지정합니다. 주어진 part에서 주어진 plant의 Readiness Count는 현재 공급할 수 있는 해당 part 유형의 unit 수입니다. Component unit의 경우, 이는 사용 가능한 unit 수입니다. Assemblies의 경우, 다음의 합계를 기반으로 계산해야 합니다:

  • Available Unit Count: 이미 사용 중이 아닌 plant에 있는 기존 unit.
  • Buildable Unit Count: plant에 있는 기존 사용 가능한 component unit으로 생산될 수 있는 assembly unit 수

part의 Readiness Status는 목표를 기반으로 Readiness Count에 의해 결정됩니다:

  • Below Target - readiness count가 목표에 도달하지 못한 경우
  • At Low Target - readiness count가 low target에 도달하지만 high target에는 도달하지 못한 경우
  • At High Target - readiness count가 high target에 도달한 경우

두 가지 입력 목표에 따라, 관리자는 plant의 각 part에 대한 준비 상태를 확인하고 싶어합니다.

워크플로

당신의 작업은 입력 목표를 기반으로 각 part의 준비 수량과 준비 상태를 계산하는 파이프라인을 구축하는 것입니다. 아래 다이어그램의 원으로 표시된 부분은 프로젝트의 주요 결과물을 나타냅니다.

데이터

Odyssey의 소스 시스템에서 다음과 같은 원시 데이터셋을 이용할 수 있습니다: Part, PartInventory, PartMapping, Plant. 데이터를 탐색하여 어떻게 맞물려 있는지 이해해야 하지만, 다음 정보가 유용할 수 있습니다:

  • Assembly도 Component도 아닌 part는 무시할 수 있습니다.
  • PartMapping 데이터셋은 Assembly part (parent_part_id)를 그들의 구성 Component part (child_part_id)에 매핑하고, 각 유형의 양 (child_part_count)을 나타냅니다.
  • PartInventory 데이터셋은 각 part의 사용 가능한 unit 수를 보여줍니다 (예를 들어, 주문에 첨부되지 않은 Assembly unit과 이미 Assembly unit에 빌드되지 않은 Component unit). part가 이 데이터셋에 없으면 사용 가능한 unit 수는 0임을 의미합니다.

입력

파이프라인은 다음을 입력으로 받아야 합니다:

  • Odyssey의 소스 시스템에서의 원시 데이터셋
  • Pipeline Builder에서 Plant 관리자에 의해 지정된 준비 목표에 대한 수동 입력

Plant 관리자가 데이터를 수동으로 입력하게 하려면, Pipeline Builder의 수동 데이터 입력 기능을 참조하십시오. 수동 입력 테이블은 다음 3개의 열로 구성되어야 합니다:

  • plant_id (스트링, 기본 키)
  • low_target (long)
  • high_target (long)

구현을 테스트하기 위해, 수동 입력 테이블의 첫 번째 행에 초기 값으로 채웁니다:

  • plant_id: "1234"
  • low_target: 10
  • high_target: 50

테이블은 아래의 예제와 같아 보여야 합니다:

결과물

파이프라인은 Ontology 오브젝트 유형을 지원할 수 있는 데이터셋을 출력해야 합니다. 각 데이터셋은 오브젝트 유형의 기본 키 (PK)와 제목 속성이 될 수 있는 열을 포함해야 합니다. 지원해야 하는 3가지 오브젝트 유형은 다음과 같습니다:

  • Assembly Part: 이 오브젝트 유형은 Assembly part를 나타냅니다.
  • Component Part: 이 오브젝트 유형은 Component part를 나타냅니다.
  • Part Readiness: 이 오브젝트 유형은 각 Part (Assembly 또는 Component)에 대한 각 Plant의 준비 정보를 나타냅니다. 즉, 각 part 및 plant 당 한 줄이 있어야 합니다. PK와 제목 외에도, 데이터셋에는 다음 Ontology 속성을 지원할 수 있는 열이 포함되어야 합니다:
    • Readiness Status: Assembly part의 경우 'Below Target', 'At Low Target', 또는 'At High Target' (Component는 null).
    • Readiness Count: 전달 가능한 unit 수 (Assemblies) 또는 사용 가능한 unit 수 (Components).
    • Buildable Unit Count: 기존 사용 가능한 component unit을 기반으로 빌드 될 수 있는 Assembly unit 수 (Component는 null).
    • Available Unit Count.

데이터셋은 오브젝트로 연결 가능해야 합니다. 출력은 이러한 연결을 가능하게 해야하며, 1-1 외래 키, 1-많음 외래 키, 또는 많은-많은 조인 데이터셋으로, 데이터셋 간의 관계에 따라 다릅니다.

Readiness Count 예시

part ABC-720-CB050940를 살펴봅시다:

  • 하나의 unit은 part ABC-000064 REV 00C-x의 2개 unit과 part ABC-000080 Rev 00A-x의 1개 unit으로 구축됩니다.

  • 각 관련 part의 사용 가능한 unit 수는 다음과 같습니다:

    • ABC-720-CB050940 (Assembly): 9
    • ABC-000064 REV 00C-x (Component, 필요 수량 2x): 3686
    • ABC-000080 Rev 00A-x (Component, 필요 수량 1x): 813
  • part ABC-720-CB050940의 대부분의 unit이 기존의 component로부터 빌드 될 수 있는 수는 813입니다. 이는 ABC-000080 Rev 00A-x unit의 수에 제한되기 때문입니다. 따라서 ABC-720-CB050940의 준비 수량은 9 + 813 = 822 unit입니다.

  • low target이 10이고 high target이 50이라면, 이 part는 준비 상태가 At High Target가 될 것입니다.