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

Azure Blob Storage
Azure Data Explorer
Azure Event Hubs
Azure 기능
Azure IoT Hub

자동차 OEM에는 시험 사용을 수행하고 R&D 엔지니어에게 시험 사용 진단 데이터를 가져오는 시간을 최소화하는 솔루션이 필요합니다. 차량이 점차 자동화될수록 소프트웨어 수명 주기는 더 짧아지고 디지털 피드백 루프는 더 빨라집니다. 새로운 기술은 데이터 액세스를 민주화하고 R&D 엔지니어에게 시험 사용 진단 데이터에 대한 거의 실시간 인사이트를 제공할 수 있습니다. 보안 데이터를 공유하면 OEM과 공급업체의 협업이 향상되어 개발 주기를 더욱 단축할 수 있습니다.

이 예제 워크로드는 원격 분석 및 일괄 테스트 드라이브 데이터 수집 시나리오와 관련이 있습니다. 워크로드는 진단 데이터를 처리하는 데이터 플랫폼과 시각화 및 보고용 커넥터에 중점을 둡니다.

아키텍처

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

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

데이터 흐름

  1. Azure IoT Hub는 라이브 원시 원격 분석 데이터(A)를 수집하고 차량에서 기록된 데이터 파일(B)을 업로드합니다.

  2. IoT Hub는 원격 분석을 JSON(JavaScript Object Notation)으로 디코딩하고 Azure Event Hubs에 게시하는 Azure Functions 앱에 라이브 원격 분석(A)을 보냅니다.

    IoT Hub는 기록된 데이터 파일(B)을 Azure Blob Storage에 보냅니다. 파일 업로드가 완료되면 데이터를 디코딩하고 수집에 적합한 CSV(쉼표로 구분된 값) 형식으로 Blob Storage에 디코딩된 파일을 쓰는 Functions 앱을 트리거합니다.

  3. Azure Data Explorer는 Event Hubs(A)에서 디코딩된 JSON 원격 분석 데이터를 원시 원격 분석 테이블에 수집하고 Blob Storage에서 디코딩된 CSV 파일(B)을 수집합니다.

  4. Azure Data Explorer는 Update 함수를 사용하여 JSON 데이터를 적절한 행 형식으로 확장하고 데이터를 보강합니다. 예를 들어 함수는 지리 공간적 분석을 지원하기 위해 위치 데이터를 클러스터합니다.

  5. 데이터 과학자와 R&D 엔지니어는 KQL(Kusto 쿼리 언어) 기능을 사용하여 사용자 정의 함수로 저장하는 분석 사용 사례를 빌드합니다. KQL 함수에는 집계, 시계열 분석, 지리 공간적 클러스터링, 기간 지정 및 ML(기계 학습) 플러그 인이 포함됩니다.

  6. Power BI는 동적 쿼리를 사용하여 사용자 정의 쿼리로 시각화를 만듭니다. Azure Data Explorer용 Grafana 데이터 원본 플러그 인은 근 실시간 업데이트를 위해 사용자 정의 쿼리를 사용합니다.

  7. Azure App Service 앱은 Azure Maps 데이터 원본 렌더링 기능을 사용하여 GeoJSON 형식을 사용하는 사용자 정의 쿼리 결과를 시각화합니다.

  8. Azure API Management를 통해 차량에서 저장된 원시 데이터 파일과 타사 데이터 수집 정책을 관리하는 구성 API에 액세스할 수 있습니다.

Azure Data Explorer 스키마

데이터를 추출, 확장 및 보강하는 Azure Data Explorer 함수 및 메서드를 보여주는 다이어그램.

  1. Update() 함수는 다음과 같은 메서드를 사용합니다.

    • mv-expand() - JSON 구조에 저장된 복잡한 값을 개별 신호가 있는 행으로 확장합니다.
    • geo_point_to_h3cell() 또는 geo_point_to_geohash() - 지리 공간적 분석을 위해 위도 및 경도를 지오해시로 변환합니다.
    • todouble()tostring() - 동적 JSON 개체에서 추출된 값을 적절한 데이터 형식으로 캐스팅합니다.
  2. 마지막으로 알려진 집합 메타데이터 값 뷰는 수집의 일부로 다른 뷰를 조인하여 컨텍스트를 제공합니다. 기록 집합 메타데이터는 새 사용 사례에서 원시 원격 분석을 다시 처리해야 하는 경우에 유용합니다.

  3. 필요한 경우 신호 중복 제거의 구체화된 뷰는 take_any() 메서드를 사용하여 신호를 중복 제거합니다.

  4. 마지막으로 알려진 신호 값의 구체화된 뷰는 실시간 보고를 위해 타임스탬프에서 arg_max() 메서드를 사용합니다.

  5. 저해상도로 처리된 신호의 구체화된 뷰는 시간별 및 일별과 같이 사전 정의된 bin을 사용하여 집합 전체에서 보고를 단순화합니다.

  6. DetectAnomaly() 등과 같이 저장된 플러그 인 함수는 데이터 계열에서 변칙을 찾습니다. 자동 클러스터와 같은 ML 플러그 인은 불연속 특성의 일반적인 패턴을 찾습니다.

  7. GetGeospatial() 함수는 지오해시별로 그룹화된 신호를 포함하는 GeoJSON 파일을 생성합니다.

구성 요소

다음 주요 기술은 이 워크로드를 구현합니다.

대안

Azure Batch는 복잡한 파일 디코딩에 좋은 대안입니다. 이 시나리오에는 파일 버전 또는 형식에 따라 서로 다른 디코딩 알고리즘이 필요한 300MB 이상의 파일이 많이 있습니다.

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

  1. 기록된 데이터 파일을 Blob Storage에 업로드하면 Functions 앱이 디코딩을 예약하도록 트리거됩니다.
  2. Functions 앱은 파일 형식, 크기 및 필수 디코딩 알고리즘을 고려하여 일괄 처리 작업을 만듭니다. 앱은 풀에서 적합한 VM(가상 머신)을 선택하고 작업을 시작합니다.
  3. 작업이 완료되면 Batch는 디코딩된 결과 파일을 Blob Storage에 다시 씁니다. 이 파일은 Azure Data Explorer를 지원하는 형식으로 직접 수집하는 데 적합합니다.
  4. 디코딩된 신호 파일을 Blob Storage에 업로드하면 Azure Data Explorer를 데이터를 수집하는 함수가 트리거됩니다. 이 함수는 필요한 경우 테이블 및 데이터 매핑을 만들고 수집 프로세스를 시작합니다.
  5. Azure Data Explorer는 Blob Storage에서 데이터 파일을 직접 수집합니다.

이 방법에는 다음과 같은 이점이 있습니다.

  • Azure Functions 및 Batch 풀은 확장성 있는 데이터 처리 태스크를 강력하고 효율적으로 처리할 수 있습니다.
  • 일괄 처리 풀은 통계 처리 통계, 태스크 큐 및 일괄 처리 풀 상태에 대한 인사이트를 제공합니다. 상태를 시각화하고, 문제를 감지하고, 실패한 태스크를 다시 실행할 수 있습니다.
  • Azure Functions와 Azure Batch를 함께 사용하면 Docker 컨테이너에서 플러그 앤 플레이 처리에 유용합니다.

시나리오 정보

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

차량 기능의 유효성을 검사하고 변칙 및 오류를 분석하려면 EKU(전자 제어 장치), 컴퓨터 노드, CAN(Controller Area Network), 이더넷과 같은 차량 통신 버스 및 센서에서 기가바이트의 진단 데이터를 캡처해야 합니다. 과거에는 차량의 소형 데이터 로거 서버가 진단 데이터를 로컬에 MDF(마스터 데이터베이스 파일), MFX(Multimedia Fusion Extension), CSV 또는 JSON 파일로 저장했습니다. 시험 사용이 완료되면 서버는 진단 데이터를 데이터 센터에 업로드하여 처리하고 분석을 위해 R&D 엔지니어에게 제공했습니다. 이 프로세스에는 몇 시간 또는 며칠이 걸리기도 했습니다. 비교적 최신 시나리오에서는 MQTT(Message Queuing Telemetry Transport) 기반 동기 데이터 스트림 또는 근 실시간 파일 업로드와 같은 원격 분석 수집 패턴을 사용합니다.

잠재적인 사용 사례

  • 차량 관리는 여러 테스트 시나리오에 걸쳐 각 차량의 성능과 수집된 데이터를 평가합니다.
  • 시스템 및 구성 요소 유효성 검사에서는 수집된 차량 데이터를 사용하여 차량 구성 요소의 동작이 주행 내내 작동 경계를 벗어나지 않는지 확인합니다.
  • 변칙 검색은 일반적인 기준 패턴과 관련된 센서 값의 편차 패턴을 실시간으로 찾습니다.
  • 근본 원인 분석은 클러스터링 알고리즘과 같은 ML 플러그 인을 사용하여 여러 차원에서 값이 분포되는 변화를 식별합니다.
  • 예측 유지 관리는 여러 데이터 원본, 보강된 위치 데이터 및 원격 분석을 결합하여 구성 요소 오류 시간을 예측합니다.
  • 지속 가능성 평가는 운전자 동작 및 에너지 사용량을 통해 차량이 작동하는 환경적 영향을 평가합니다.

고려 사항

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

안정성

안정성은 애플리케이션이 고객에 대한 약속을 충족할 수 있도록 합니다. 자세한 내용은 안정성 핵심 요소 개요를 참조하세요.

  • Azure 가용성 영역은 동일한 Azure 지역 내의 고유한 물리적 위치입니다. 가용성 영역은 Azure Data Explorer 컴퓨팅 클러스터 및 데이터를 부분적인 지역 오류로부터 보호할 수 있습니다.
  • Azure Data Explorer의 BCDR(비즈니스 연속성 및 재해 복구)을 사용하면 중단되었던 비즈니스를 계속 운영할 수 있습니다.
  • 컴퓨팅 리소스를 프로덕션 및 비프로덕션 사용 사례로 구분하려면 Azure Data Explorer의 팔로워 데이터베이스를 사용해 보세요.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.

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

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

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

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

  • 원시 및 신호 테이블에 대한 핫 캐시 및 콜드 스토리지를 올바르게 구성합니다. 핫 데이터 캐시는 RAM 또는 SSD에 저장되며 향상된 성능을 제공합니다. 그러나 콜드 데이터는 45배 저렴합니다. 사용 사례에 적합한 핫 캐시 정책(예: 30일)을 설정합니다.
  • 원시 및 신호 테이블에서 보존 정책을 설정합니다. 신호 데이터의 영향을 받지 않는 시기(예: 365일 후)를 확인하고 이에 따라 보존 정책을 설정합니다.
  • 분석과 관련된 신호를 고려합니다.
  • 마지막으로 알려진 신호 값, 중복 제거된 신호, 다운샘플링된 신호를 쿼리할 때 구체화된 뷰를 사용합니다. 구체화된 뷰는 각 쿼리에서 원본 테이블을 집계할 때보다 적은 리소스를 사용합니다.
  • 실시간 데이터 분석 요구 사항을 고려합니다. 라이브 원격 분석 테이블에 대한 스트리밍 수집을 설정하면 수집과 쿼리 간의 대기 시간은 1초 미만이지만 CPU 주기가 늘어나 더 많은 비용이 발생합니다.

성능 효율성

성능 효율성은 사용자 요구를 충족하기 위해 효율적으로 규모를 조정하는 워크로드의 기능입니다. 자세한 내용은 성능 효율성 핵심 요소 개요를 참조하세요.

  • 기록된 데이터 파일의 수와 크기가 하루에 1,000개 또는 300MB보다 큰 경우 디코딩에 Azure Batch를 사용하는 것이 좋습니다.
  • 수집한 후 추가 테이블에 저장한 후 일반적인 계산 및 분석을 수행하는 것이 좋습니다.

시나리오 배포

Azure Data Explorer를 배포하고 MDF 파일을 수집하려면 무료 인스턴스를 배포하고, MDF 파일을 구문 분석하고, 몇 가지 기본 쿼리를 수집하고 수행하는 방법을 설명하는 단계별 자습서를 따를 수 있습니다.

참가자

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

주요 작성자:

기타 기여자:

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

다음 단계