편집

다음을 통해 공유


테스트 차량에 대한 데이터 분석

Microsoft Fabric
Azure Data Explorer
Azure Event Hubs
Azure 기능
Azure Event Grid

자동차 OEM(Original Equipment Manufacturer)은 테스트 드라이브와 R&D 엔지니어에게 테스트 드라이브 진단 데이터를 제공하는 데 걸리는 시간을 최소화할 수 있는 솔루션이 필요합니다. 차량이 점차 자동화될수록 소프트웨어 개발 수명 주기는 더 짧아지고 더 빠른 디지털 피드백 루프가 필요합니다. 새로운 기술은 데이터 액세스를 민주화하고 R&D 엔지니어에게 시험 사용 진단 데이터에 대한 근 실시간 인사이트를 제공할 수 있습니다. 데이터 분석에 데이터 과학 및 데이터 엔지니어용 Copilot을 사용하여 인사이트를 얻는 시간을 더 줄입니다. 보안 데이터를 공유하면 OEM과 공급업체의 협업이 향상되어 개발 주기 시간을 줄일 수 있습니다.

이 문서의 지침은 원격 분석 시나리오 및 일괄 테스트 드라이브 데이터 수집 시나리오에 대한 것입니다. 이 아키텍처는 진단 데이터를 처리하는 데이터 플랫폼과 데이터 시각화 및 데이터 보고용 커넥터에 중점을 둡니다.

아키텍처

스트리밍 자동차 데이터 및 파일의 분석 데이터 흐름을 보여주는 다이어그램.

이 문서의 모든 다이어그램이 포함된 PowerPoint 파일을 다운로드합니다.

데이터 흐름

다음 데이터 흐름은 이전 다이어그램에 해당합니다.

  1. 데이터 캡처 디바이스는 차량 네트워크에 연결되고 고해상도 차량 신호 데이터 및 비디오를 수집합니다. (1a) 디바이스는 실시간 원격 분석 메시지를 게시하거나(1b) MQTT 클라이언트를 사용하여 기록된 데이터 파일의 업로드를 Azure Event Grid MQTT Broker 기능에 요청합니다. 이 기능은 클레임 확인 패턴을 사용합니다.

  2. (2a) Event Grid는 라이브 차량 신호 데이터를 Azure Functions 앱으로 라우팅합니다. 이 앱은 차량 신호를 JSON(JavaScript Object Notation) 형식으로 디코딩하고 Eventstream에 게시합니다.

    (2b) Event Grid는 디바이스 클라이언트에서 레이크하우스로의 파일 업로드를 조정합니다. 완료된 파일 업로드는 데이터를 디코딩하고 디코딩된 파일을 parquet 또는 CSV와 같은 수집에 적합한 형식으로 OneLine에 쓰는 파이프라인을 트리거합니다.

  3. (3a) Eventstream은 Eventhouse에서 수집을 위해 디코딩된 JSON 차량 신호를 라우팅합니다.

    (3b) 데이터 파이프라인은 레이크하우스에서 디코딩된 파일의 수집을 트리거합니다.

  4. Eventhouse는 업데이트 정책을 사용하여 데이터를 보강하고 JSON 데이터를 적절한 행 형식으로 확장합니다. 예를 들어 위치 데이터는 지리 공간적 분석에 맞게 클러스터될 수 있습니다. 새 행을 수집할 때마다 실시간 분석 엔진은 연결된 Update() 함수를 호출합니다.

  5. 데이터 엔지니어와 데이터 과학자는 KQL(Kusto 쿼리 언어)을 사용하여 분석 사용 사례를 빌드합니다. 사용자는 자주 사용하는 사례를 공유 가능한 사용자 정의 함수로 저장합니다. 엔지니어는 Copilot 지원을 통해 집계, 시계열 분석, 지리 공간적 클러스터링, 창 및 기계 학습 플러그 인과 같은 기본 제공 KQL 함수를 사용합니다.

  6. R&D 엔지니어와 데이터 과학자는 Notebook을 사용하여 데이터를 분석하고 테스트 및 유효성 검사 사용 사례를 빌드합니다.

    1. R&D 엔지니어는 KQL 쿼리 집합실시간 인텔리전스용 Copilot을 사용하여 대화형 데이터 분석을 수행합니다.

    2. 데이터 엔지니어와 데이터 과학자는 Notebook을 사용하여 분석 프로세스를 저장하고 공유합니다. 엔지니어는 Notebook을 통해 Azure Spark를 사용하여 분석을 실행하고 Git을 사용하여 Notebook 코드를 관리할 수 있습니다. 사용자는 데이터 과학 및 데이터 엔지니어용 Copilot을 활용하여 상황별 코드 제안으로 워크플로를 지원할 수 있습니다.

  7. R&D 엔지니어와 데이터 과학자는 동적 쿼리 또는 실시간 분석 대시보드와 함께 Power BI를 사용하여 비즈니스 사용자와 공유할 시각화를 만들 수 있습니다. 이러한 시각화는 유지 관리의 용이성을 위해 사용자 정의 함수를 호출합니다.

  8. 엔지니어는 Microsoft Fabric에 더 많은 도구를 연결할 수도 있습니다. 예를 들어 Azure Managed Grafana를 Eventhouse에 연결하거나 Eventhouse를 직접 쿼리하는 웹 애플리케이션을 만들 수 있습니다.

  9. 데이터 엔지니어와 R&D 엔지니어는 Data Activator를 사용하여 조건을 모니터링하고 비즈니스 통합을 위한 Power Automate 흐름 트리거와 같은 작업을 트리거하는 Reflex 항목을 만듭니다. 예를 들어 Data Activator는 디바이스의 상태가 저하되는 경우 Teams 채널에 알릴 수 있습니다.

  10. 데이터 수집기 구성을 사용하면 엔지니어가 데이터 캡처 디바이스의 데이터 컬렉션 정책을 변경할 수 있습니다. Azure API Management는 파트너 구성 API를 추상화 및 보호하고 가시성을 제공합니다.

KQL 데이터베이스 스키마

KQL 데이터베이스 및 데이터를 추출, 확장, 보강하는 메서드를 보여주는 다이어그램.

테이블 스키마를 디자인할 때 fact 테이블과 dimension 테이블의 차이점을 고려합니다. 차량 신호는 스트리밍 방식으로 또는 전체 기록의 일부로 점진적으로 추가되고 원격 분석은 변경되지 않기 때문에 원격 분석은 fact 테이블입니다. 집합 메타데이터를 느리게 업데이트되는 fact 테이블로 분류할 수 있습니다.

차량 원격 분석은 원시 테이블에 배치됩니다. 다음 메시지 처리 개념을 사용하여 분석 및 보고를 위한 데이터를 구성할 수 있습니다.

  • 다음과 같은 방법을 사용하여 JSON 원격 분석 파일을 개별 차량 신호 레코드로 확장하는 업데이트 정책을 만듭니다.

    • mv-expand()는 JSON 구조에 저장된 복잡한 값을 개별 신호가 있는 행으로 확장합니다.
    • geo_point_to_h3cell() 또는 geo_point_to_geohash()는 지리 공간적 분석을 위해 위도 및 경도를 지오해시로 변환합니다.
    • todouble()tostring()는 동적 JSON 개체에서 추출된 값을 적절한 데이터 형식으로 캐스팅합니다.
    • lookup는 차원 테이블의 값으로 레코드를 확장합니다.
  • 고유 키 및 타임스탬프에서 집계 함수 take_any()를 사용하여 신호 중복 제거 구체화된 뷰를 만듭니다. 이 구체화된 뷰는 신호를 중복 제거합니다.

  • 타임스탬프에서 집계 함수 arg_max()를 사용하여 마지막으로 알려진 신호 값 구체화된 뷰를 만듭니다. 이 구체화된 보기는 차량의 최신 상태를 제공합니다.

  • 시간별일별과 같은 시간 bin이 있는 요약 연산자를 사용하여 다운샘플링된 신호 구체화된 뷰를 만듭니다. 이 구체화된 뷰는 신호를 집계하고 집합 전체에서 보고를 단순화합니다.

  • 이상 탐지 또는 근본 원인 분석을 제공하는 사용자 정의 함수를 만듭니다.

    • 이상 탐지 및 예측에 시계열 함수를 사용하여 잠재적인 문제를 검색하고 오류를 예측합니다.

    • scan 연산자를 사용하여 데이터에서 시퀀스를 검사, 일치 및 빌드합니다. 엔지니어는 scan 연산자를 사용하여 시퀀스를 검색할 수 있습니다. 예를 들어 특정 이벤트가 발생하는 경우 특정 시간 내에 후속 이벤트가 발생해야 합니다.

    • autocluster와 같은 기계 학습 플러그인을 사용하여 불연속 속성의 일반적인 패턴을 찾습니다.

  • 사용자 정의 함수를 사용하여 지리 공간적 분석을 수행합니다. 지리 공간적 분석 함수를 사용하여 좌표를 적합한 그리드 시스템으로 변환하고 데이터에 대한 집계를 수행합니다.

  • 차량 메타데이터 및 구성에 변경 내용을 저장하는 집합 메타데이터 테이블을 만듭니다. 마지막으로 알려진 집합 메타데이터 값 구체화된 뷰를 만들어 마지막으로 수정된 열을 기반으로 차량의 최신 상태를 저장합니다.

구성 요소

다음 주요 기술은 이 워크로드를 구현합니다. 아키텍처의 각 구성 요소에 대해 가능한 경우 Well-Architected Framework의 관련 서비스 가이드를 사용하세요. 자세한 내용은 Well-Architected Framework 서비스 가이드를 참조하세요.

  • Fabric 실시간 인텔리전스를 사용하면 인사이트를 추출하고 이동 중인 차량 원격 분석을 시각화할 수 있습니다. Eventstream 및 시계열 KQL 데이터베이스를 사용하여 데이터를 저장 및 분석하고 반사 신경을 사용하여 이벤트에 대응할 수 있습니다.

  • Data Activator는 데이터에서 패턴 또는 조건이 변경될 때 작업을 자동화하는 데 사용할 수 있는 코드 없는 도구입니다.

  • Event Grid는 확장성이 뛰어난 완전 관리형 게시/구독 메시지 배포 서비스로, MQTT 프로토콜을 지원합니다. 차량은 Event Grid를 사용하여 토픽을 게시하고 구독할 수 있습니다. 예를 들어 원격 분석을 게시하고 명령 및 제어 메시지를 구독할 수 있습니다.

  • Azure Event Hubs는 짧은 대기 시간으로 초당 수백만 개의 차량 이벤트를 스트리밍하는 데 적합한 실시간 데이터 스트리밍 플랫폼입니다.

  • Functions는 선택한 언어를 사용하여 이벤트 기반 트리거 및 바인딩을 사용하여 대규모 차량 원격 분석 이벤트 처리를 간소화하는 서버리스 솔루션입니다.

  • Azure Managed Grafana는 Grafana Labs의 소프트웨어를 기반으로 하는 데이터 시각화 플랫폼입니다. Microsoft는 Azure Managed Grafana를 관리하고 지원합니다.

  • Azure App Service를 사용하면 Fabric에 저장된 차량 원격 분석 데이터에 대한 액세스를 제공하는 웹앱, 모바일 백 엔드 및 RESTful API를 빌드하고 호스트할 수 있습니다. 이 접근 방식은 소비를 단순화합니다.

  • API Management는 API용 하이브리드 다중 클라우드 관리 플랫폼입니다.

대안

다음 Azure 서비스를 사용하여 이 아키텍처를 구현할 수도 있습니다.

  • Azure Blob Storage는 차량의 기록, 로그 및 비디오와 같은 많은 양의 구조화되지 않은 데이터를 저장합니다. OneLake 스토리지를 대체합니다.

  • Azure Data Explorer는 실시간으로 분석할 수 있는 빠른 완전 관리형 데이터 분석 서비스입니다. Fabric 실시간 인텔리전스 KQL 데이터베이스를 대체합니다.

  • Azure Batch는 복잡한 파일을 디코딩하는 데 사용할 수 있는 대안입니다. 이 시나리오에는 각각 300MB가 넘는 많은 파일이 포함됩니다. 파일에는 파일 버전 또는 파일 형식에 따라 다른 디코딩 알고리즘이 필요합니다. Fabric을 사용하거나 Blob Storage 및 Azure Data Explorer를 사용하여 다음 방법을 구현할 수 있습니다.

복잡한 파일을 디코딩하는 대체 Batch 메서드를 보여주는 다이어그램.

  1. 사용자 또는 녹음 디바이스는 기록된 데이터 파일을 레이크하우스에 업로드합니다. 업로드가 완료되면 디코딩을 예약하는 Functions 앱을 트리거합니다.

  2. 스케줄러는 파일 형식, 파일 크기 및 필수 디코딩 알고리즘에 따라 일괄 작업을 만드는 Functions 앱을 시작합니다. 앱은 풀에서 적합한 크기의 가상 머신을 선택하고 작업을 시작합니다.

  3. Batch는 작업이 완료되면 디코딩된 결과 파일을 레이크하우스에 다시 씁니다. 이 파일은 Eventhouse를 지원하는 형식으로 직접 수집하는 데 적합합니다.

  4. 레이크하우스는 파일 쓰기 시 Eventhouse에 데이터를 수집하는 함수를 트리거합니다. 이 함수는 필요한 경우 테이블 및 데이터 매핑을 만들고 수집 프로세스를 시작합니다.

  5. KQL 데이터베이스는 레이크하우스에서 데이터 파일을 수집합니다.

이 접근 방식에는 다음과 같은 이점이 있습니다.

  • Functions 및 Batch 풀은 확장성 있는 데이터 처리 태스크를 강력하고 효율적으로 처리할 수 있습니다.

  • 일괄 처리 풀은 통계 처리 통계, 태스크 큐 및 일괄 처리 풀 상태에 대한 인사이트를 제공합니다. 상태를 시각화하고, 문제를 감지하고, 실패한 태스크를 다시 실행할 수 있습니다.

  • Functions와 Batch를 함께 사용하면 Docker 컨테이너에서 플러그 앤 플레이 처리에 유용합니다.

  • 스폿 가상 머신을 사용하여 사용량이 많은 시간 동안 파일을 처리할 수 있습니다. 이 방법을 통해 비용을 절감할 수 있습니다.

시나리오 정보

자동차 OEM은 대형 프로토타입 집합 및 테스트 차량을 사용하여 여러 차량 기능을 테스트하고 확인합니다. 실제 운전자와 차량이 필요하고 특정 실제 도로 테스트 시나리오를 여러 번 통과해야 하므로 테스트 절차는 비용이 많이 듭니다. 통합 테스트는 복잡한 시스템에서 전기, 전자 및 기계 구성 요소 간의 상호 작용을 평가하는 데 특히 중요합니다.

차량 기능의 유효성을 검사하고 변칙 및 오류를 분석하려면 EKU(전자 제어 장치), 컴퓨터 노드, CAN(Controller Area Network), 이더넷과 같은 차량 통신 버스 및 센서에서 페타바이트의 진단 데이터를 캡처해야 합니다.

과거에는 차량의 소형 데이터 로거 서버가 진단 데이터를 로컬에 MDF(Measurement Data Format), MFX(Multimedia Fusion Extension), CSV 또는 JSON 파일로 저장했습니다. 시험 사용이 완료된 후 서버는 진단 데이터를 데이터 센터에 업로드하여 처리하고 R&D 엔지니어에게 분석을 위해 전송했습니다. 이 프로세스에는 몇 시간 또는 며칠이 걸리기도 했습니다. 비교적 최신 시나리오에서는 MQTT(Message Queuing Telemetry Transport) 기반 동기 데이터 스트림 또는 근 실시간 파일 업로드와 같은 원격 분석 수집 패턴을 사용합니다.

잠재적인 사용 사례

  • 차량 관리는 여러 테스트 시나리오에 걸쳐 각 차량의 성능과 수집된 데이터를 평가합니다.

  • 시스템 및 구성 요소 유효성 검사에서는 수집된 차량 데이터를 사용하여 차량 구성 요소의 동작이 주행 내내 작동 경계를 벗어나지 않는지 확인합니다.

  • 변칙 검색은 일반적인 기준 패턴과 관련된 센서 값의 편차 패턴을 실시간으로 찾습니다.

  • 근본 원인 분석은 클러스터링 알고리즘과 같은 기계 학습 플러그 인을 사용하여 여러 차원에서 값이 분포되는 변화를 식별합니다.

  • 예측 유지 관리는 여러 데이터 원본, 보강된 위치 데이터 및 차량 신호를 결합하여 구성 요소 오류 시간을 예측합니다.

  • 지속 가능성 평가는 운전자 동작 및 에너지 사용량을 통해 차량이 작동하는 환경적 영향을 평가합니다.

  • 자동차 경주 전, 도중 및 경주 후 차량의 성능을 이해하고 개선합니다.

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

안정성

안정성은 애플리케이션이 고객에 대한 약속을 충족할 수 있도록 합니다. 자세한 내용은 안정성에 대한 디자인 검토 검사 목록을 참조하세요.

  • Azure 가용성 영역은 동일한 Azure 지역 내의 고유한 물리적 위치입니다. 가용성 영역은 Azure Data Explorer 컴퓨팅 클러스터 및 데이터를 부분적인 지역 오류로부터 보호할 수 있습니다.

  • Azure Data Explorer의 BCDR(비즈니스 연속성 및 재해 복구)을 사용하면 중단되었던 비즈니스를 계속 운영할 수 있습니다.

  • 팔로워 데이터베이스는 프로덕션 및 비프로덕션 사용 사례 간에 컴퓨팅 리소스를 구분합니다.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안성에 대한 디자인 검토 검사 목록을 참조하세요.

자동차 OEM과 Microsoft 간의 책임 분담을 이해해야 합니다. 차량에서 OEM은 전체 스택을 소유하지만 데이터가 클라우드로 이동함에 따라 일부 책임은 Microsoft로 이전됩니다. Azure PaaS(Platform-as-a-Service)는 운영 체제를 포함한 물리적 스택에 보안 기능을 기본 제공합니다.

이러한 모든 기능을 통해 자동차 OEM은 차량 원격 분석 데이터에 대한 안전한 환경을 만들 수 있습니다. 자세한 내용은 Fabric의 보안을 참조하세요.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화를 위한 디자인 검토 검사 목록을 참조하세요.

이 솔루션은 다음 사례를 사용하여 비용을 최적화합니다.

  • 원시 및 신호 테이블에 대한 핫 캐시 및 콜드 스토리지를 올바르게 구성합니다. 핫 데이터 캐시는 RAM 또는 SSD에 저장되며 향상된 성능을 제공합니다. 그러나 콜드 데이터는 45배 저렴합니다. 사용 사례에 적합한 핫 캐시 정책(예: 30일)을 설정합니다.

  • 원시 테이블 및 신호 테이블에서 보존 정책을 설정합니다. 신호 데이터의 영향을 받지 않는 시기(예: 365일 후)를 확인하고 이에 따라 보존 정책을 설정합니다.

  • 분석과 관련된 신호를 고려합니다.

  • 마지막으로 알려진 신호 값, 중복 제거된 신호, 다운샘플링된 신호를 쿼리할 때 구체화된 뷰를 사용합니다. 구체화된 뷰는 각 쿼리에서 원본 테이블을 집계할 때보다 적은 리소스를 사용합니다.

  • 실시간 데이터 분석 요구 사항을 고려합니다. 라이브 원격 분석 테이블에 대한 스트리밍 수집을 설정하여 수집과 쿼리 사이에 1초 미만의 대기 시간을 제공합니다. 이 방법을 사용하면 CPU 주기와 비용이 증가합니다.

성능 효율성

성능 효율성은 사용자가 배치된 요구 사항을 효율적인 방식으로 충족하기 위해 워크로드의 크기를 조정할 수 있는 기능입니다. 자세한 내용은 성능 효율성에 대한 디자인 검토 검사 목록을 참조하세요.

  • 기록된 데이터 파일의 수와 크기가 하루에 1,000개 또는 300MB를 초과하는 경우 Batch를 사용하여 디코딩을 수행하는 것이 좋습니다.

  • 수집한 후 추가 테이블에 저장한 후 일반적인 계산 및 분석을 수행하는 것이 좋습니다.

  • KQL 쿼리 모범 사례를 사용하여 쿼리를 더 빠르게 실행할 수 있습니다.

  • where 절을 사용하여 쿼리되는 데이터의 양을 줄이는 시간 창을 정의합니다. 예를 들어 ID 및 신호 이름을 기록하여 필터링하는 경우 일반적인 검색 조건이 시간 기반이 아닌 경우 신호 테이블에 대한 데이터 파티션 정책을 변경하는 것이 좋습니다. KQL 데이터베이스가 수십억 또는 수조 개의 레코드를 포함하도록 확장되면 특히 활성 파티션 정책을 고려할 때 적절한 데이터 여과가 필수적입니다.

Warning

데이터 파티션 정책을 변경하기 전에 지원 팀에 문의하세요.

시나리오 배포

단계별 자습서를 사용하여 이 시나리오를 배포합니다. 이 가이드에서는 무료 인스턴스를 배포하고, MDF 파일을 구문 분석하며, 데이터를 수집하고, 몇 가지 기본 쿼리를 수행하는 방법을 보여줍니다.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

주요 작성자:

기타 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인하세요.

다음 단계