모델 기록 및 메타데이터
이 가이드에서는 Manufacturing Data Engine (MDE)에서 레코드와 메타데이터를 모델링하는 방법을 설명합니다.
레코드는 센서 판독값, 이벤트와 같은 제조 프로세스에 관한 사실을 캡처하고 메타데이터는 이러한 사실을 맥락화하여 메타데이터 속성별로 '슬라이스 및 다이스'할 수 있도록 지원합니다. 메타데이터는 제조 항목의 원본 데이터 소스 역할도 합니다.
전체 MDE 제품군 (MDE와 Manufacturing Connect (MC)의 조합)을 사용하는 경우 MDE에서 빠르게 시작할 수 있는 패키지를 제공하므로 데이터 모델링에 관한 이 섹션을 건너뛸 수 있습니다. 하지만 다른 데이터 소스를 통합하는 경우 읽어보는 것이 좋습니다.
일반 권장사항
메타데이터 모델링을 시작하기 전에 다음 사항을 이해해야 합니다.
- 다운스트림 사용자의 데이터 소비 요구사항 여기에는 필요한 데이터와 데이터 사용 계획을 이해하는 것이 포함됩니다. 다운스트림 사용자와 만나 목표, 핵심성과지표 (KPI), 사용 사례, 분석 요구사항, 데이터 품질 표준에 대해 질문하면 됩니다.
- 기본 소스 데이터의 현실 여기에는 데이터 품질, 데이터 구조, 데이터 계보를 이해하는 것이 포함됩니다. 소스 시스템 전문가와 만나 개략적인 데이터 프로파일링을 수행하면 됩니다.
- 기술 데이터 통합 요구사항 여기에는 MDE가 지원해야 하는 데이터 통합 인터페이스와 이름 지정 규칙을 비롯하여 준수해야 하는 기술 요구사항을 이해하는 것이 포함됩니다.
다음은 다운스트림 사용자의 소비 요구사항을 파악하기 위해 할 수 있는 구체적인 작업입니다.
- 다운스트림 사용자와 만나 목표 이해:
- 데이터를 통해 무엇을 달성하려고 하나요?
- KPI는 무엇인가요?
- 다운스트림 사용자에게 사용 사례 묻기:
- 데이터를 어떻게 사용할 계획인가요?
- 어떤 보고서를 실행하고 싶어 하나요?
- 어떤 분석을 실행하려고 하나요?
- 다운스트림 사용자의 분석 요구사항 이해하기:
- 어떤 종류의 데이터를 분석해야 할까요?
- 데이터를 얼마나 자주 분석해야 하나요?
- 다운스트림 사용자에게 데이터 품질 표준에 대해 문의:
- 어느 정도의 데이터 품질이 허용되는지
- 데이터가 기준을 충족하도록 하려면 어떤 조치를 취해야 하나요?
기본 소스 데이터의 실제 상황을 파악하기 위해 할 수 있는 구체적인 작업은 다음과 같습니다.
- 소스 시스템 전문가와 상담:
- 소스 시스템의 데이터 품질은 어떤가요?
- 데이터 구조는 무엇인가요?
- 데이터 계보란 무엇인가요?
- 개략적인 데이터 프로파일링 실행:
- 이렇게 하면 누락된 값, 중복 레코드, 잘못된 데이터 유형과 같은 데이터의 잠재적인 문제를 식별할 수 있습니다.
메타데이터 모델링
메타데이터를 모델링할 때는 다음 세 가지 주요 질문을 고려해야 합니다.
- 어떤 메타데이터를 삽입된 메타데이터로 처리해야 하고 어떤 메타데이터를 클라우드 메타데이터로 처리해야 하나요?
- 클라우드 메타데이터의 경우 어떤 버킷을 만들어야 하나요?
- 클라우드 메타데이터 버킷의 스키마는 무엇이어야 하나요?
삽입된 메타데이터와 클라우드 메타데이터 중에서 선택
일부 컨텍스트 정보를 삽입된 메타데이터로 모델링할지 아니면 클라우드 메타데이터로 모델링할지 결정할 때 적용해야 하는 주요 결정 기준은 변화의 속도입니다.
삽입된 메타데이터는 빠르게 변경되는 메타데이터에 가장 적합합니다. 여기에는 거래 ID나 자동 증분 카운터와 같은 메타데이터가 포함됩니다.
반면, 클라우드 메타데이터는 자산 메타데이터와 같이 느린 속도로 변경되는 메타데이터에 가장 적합합니다. MDE는 버킷별 메타데이터 인스턴스의 기록을 추적하고 BigQuery와 같이 이를 지원하는 싱크에 메타데이터를 씁니다. 이를 통해 자연 키별 메타데이터 인스턴스의 기록을 탐색할 수 있으며, Looker와 같은 비즈니스 인텔리전스 (BI) 도구에서 전체 레코드 테이블을 순회하지 않고도 속성 값의 고유한 목록을 가져올 수 있습니다.
클라우드 메타데이터 버킷 모델링
버킷은 일부 컨텍스트 도메인을 모델링합니다. 예를 들어 ISA-95 애셋 계층 구조 구현은 제조 기업의 실제 애셋 계층 구조를 모델링합니다. 컨텍스트 도메인의 경계를 따라 메타데이터 버킷을 모델링해야 합니다. 예를 들어 asset 버킷에 애셋 컨텍스트 (ISA-95 구현으로 표현됨)를 모델링하고 machine-status 버킷에 머신 상태를 모델링할 수 있습니다.
태그 또는 임의의 레코드 그룹에 컨텍스트를 부여해야 하는지도 고려해야 합니다.
태그 버킷은 태그 관련 메타데이터에 선택해야 하고 레코드 버킷은 다른 유형의 메타데이터에 선택해야 합니다.
일반적으로 계층적 도메인 메타데이터는 동일한 버킷에 모델링하는 것이 좋습니다. 예를 들어 태그가 속한 머신의 속성 (예: 머신에 설치된 센서의 제조업체)은 두 개의 별도 버킷 (태그 버킷 및 머신 버킷)으로 모델링할 수 있지만 일반적으로 이러한 계층적 관계는 단일 버킷으로 모델링하는 것이 좋습니다.
계층 구조를 여러 별도의 측정기준으로 분할하는 좋은 이유는 다양한 세부사항 수준에서 레코드를 메타데이터와 연결할 수 있기 때문입니다. 예를 들어 센서 수준 세분성으로 데이터를 전송하는 데이터 소스와 머신 수준 세분성으로 데이터를 전송하는 데이터 소스를 통합하는 경우 머신별 데이터를 자체 버킷으로 분리해야 합니다.
클라우드 메타데이터 버킷 스키마 구성
버킷의 스키마는 버킷에 있는 메타데이터 인스턴스의 허용되는 구조를 결정합니다. 스키마는 데이터 품질을 향상하며, 특정 버킷이 모델링하는 항목을 설명하는 데 사용할 수 있는 필드를 정의할 수 있습니다. 버킷에서 허용하거나 요구해야 하는 필드는 소스에서 제공하는 데이터와 선택한 버킷 채우기 및 레코드 연결 전략에 따라 크게 달라집니다.
에지에서 메타데이터 버킷을 동적으로 채우는 경우 스키마를 정의할 때 소스 메시지의 메타데이터 가용성을 고려해야 합니다. 데이터 적합성과 수집 용이성도 고려해야 합니다. 메타데이터 버킷 스키마가 구체적일수록, 필수 필드가 많을수록 결과 메타데이터 인스턴스가 더 일관됩니다. 하지만 이로 인해 파서가 메시지 간의 구조적 차이를 해결해야 하는 요구사항도 높아집니다.
반면 버킷 스키마가 더 일반적일수록 (예: 특정 객체 속성을 정의하는 대신 메타데이터 속성이 '객체'일 수 있다고 지정) 파서의 메타데이터 변환 및 조화 요구사항이 낮아집니다. 하지만 이 경우 메타데이터 일관성 및 적합성이 저하될 수 있습니다.
버킷 스키마를 설계할 때 고려해야 하는 또 다른 중요한 사항은 버킷의 세분성입니다. API를 통해 메타데이터 인스턴스를 만드는 경우 자연 키가 에지에서 수신할 데이터보다 더 세부적이거나 더 대략적이지 않은지 확인합니다. 예를 들어 머신 수준에서 에지로부터 상태 이벤트를 수신하지만 애셋 버킷에 센서 세부사항의 인스턴스가 포함된 경우 이 버킷의 메타데이터 인스턴스에 레코드를 연결할 수 없습니다. 대신 머신 수준 세부사항으로 인스턴스가 포함된 버킷이 필요합니다.
레코드 모델링
메타데이터를 모델링할 때는 다음과 같은 두 가지 핵심 질문을 고려해야 합니다.
- 어떤 유형을 만들까요?
- 유형은 어떻게 구성해야 하나요?
모델링 유형
유형은 함께 저장하고 공통 메타데이터 집합으로 설명하며 데이터 필드에 공통 제약 조건을 설정하려는 의미론적 및 구조적으로 유사한 레코드를 설명합니다.
이를 염두에 두고 유형은 동일한 세분성(세부정보 수준)으로 레코드를 캡처해야 합니다. 일반적으로 이는 일부 제조 프로세스, 작업 또는 작업 집합을 중심으로 유형을 구조화하는 것을 의미합니다. 예를 들어 'machine-state' 레코드의 유형과 'sensor-readings'의 유형을 만들 수 있습니다.
또한 가장 원자적인 수준에서 데이터를 유지하고 MDE로 전송하기 전에 데이터를 사전 집계하지 않는 것이 좋습니다. 원자적 데이터에서 집계를 빌드할 수 있으므로 쿼리 유연성을 최대한 활용할 수 있습니다.
유형 구성
유형을 구성할 때 고려해야 할 주요 사항은 다음과 같습니다.
- 어떤 메타데이터 버킷이 특정 유형의 레코드를 설명해야 하나요? 필수인가요, 선택사항인가요?
- 데이터 필드의 스키마는 무엇이어야 하나요?
유형의 메타데이터 구성
메타데이터 버킷 버전을 유형과 연결할 수 있습니다. 버전과 유형을 연결하면 런타임에 해당 유형의 레코드가 연결의 required 필드 값에 따라 지정된 버킷 버전의 메타데이터 인스턴스에 연결될 수 있습니다(may) 또는 연결되어야 합니다(must).
유형에 연결할 버킷과 연결을 required로 분류할지 여부는 여러 고려사항에 따라 결정됩니다. 데이터 소비자의 컨텍스트 요구사항, 에지에서 수신하는 컨텍스트, 데이터 품질, 에지 데이터 소스가 필요한 컨텍스트를 제공하지 않는 경우 원본 데이터에 대한 액세스를 고려해야 합니다.
메타데이터 버킷 연결에 required 플래그를 설정하면 데이터의 일관성이 향상되지만, 에지에서 메타데이터를 제공하지 못하거나 아직 생성되지 않은 기본 키의 메타데이터 인스턴스를 처리하는 방법을 고려해야 합니다. 이러한 경우 MDE가 메시지를 거부하고 데드 레터 대기열로 이동하도록 하거나, 전체 컨텍스트화된 인스턴스로 연결되는 링크가 생성되지 않는 경우 버킷에 일반 Not Available 메타데이터 인스턴스를 만들어 레코드를 연결할 수 있습니다.
유형의 데이터 필드 구성
DISCRETE_DATA_SERIES 및 CONTINUOUS_DATA_SERIES에서 데이터 필드를 구성하면 데이터 필드에서 일관된 객체 구조를 얻을 수 있습니다. 데이터 필드를 정의할 때는 소스 데이터를 프로파일링하고 파서가 정의된 스키마에 대해 검증되는 프로토 레코드를 생성할 수 있는지 확인해야 합니다.