다음을 통해 공유


비 실시간 대시보드 참조 아키텍처

이 참조 아키텍처는 Azure에서 빌드할 수 있는 간단한 분석 파이프라인을 나타냅니다. 실시간 분석을 필요로 하는 데이터를 추적하지 않고, 대신 수시로(매일, 매주, 격주, 매월) 검토 세션을 수행할 계획을 수립하는 경우 활용할 수 있습니다. 프레젠테이션 계층은 원하는 대로 사용자 지정할 수 있는 대시보드입니다. 게임을 개발하는 동안이나 프로덕션 환경에서 이를 사용할 수 있습니다.

소규모로 분석을 수집

이 문서에서는 GitHub의 이 샘플에 사용된 아키텍처에 대해 설명합니다. 이 참조 아키텍처의 코드는 지침을 위한 예제일 뿐이며 프로덕션 환경에서 사용하기 위해서는 일부 코드를 최적화해야 할 수 있습니다.

아키텍처 다이어그램

N실시간 대시보드 참조 아키텍처

관련 서비스

  • Azure 함수 - 디바이스 클라이언트에서 이벤트를 수신하는 API로 사용됩니다.
  • Azure 이벤트 허브 - 분석 파이프라인에 맞게 조정된 서비스로서, 구성 또는 관리 오버 헤드가 거의 없이 간단하게 사용할 수 있습니다. 또한 나중에 실시간으로 이벤트를 처리하도록 결정한 경우에도 이 옵션을 사용할 수 있습니다.
  • Azure Databricks - 데이터를 Azure Event Hubs 캡처(AVRO 형식)에서 JSON 파일로 변환하고 데이터를 Power BI와 호환되는 CSV 파일로 변환합니다. 효율적으로 데이터를 Azure Event Hubs에서 Azure Blob Storage로 스트리밍하는 것은 매우 작은 규모가 아닌 한 간단한 작업이 아닙니다.
  • Azure Blob Storage - 대량의 비구조적 데이터를 저장하는 데 최적화되었습니다.
  • Power BI - 완전히 사용자 지정 가능한 대시보드입니다. Azure는 IBM SPSS 또는 Tableau와 같은 다른 데이터 시각화 제품과 통합될 수 있지만, 현재는 이러한 제품이 Azure Blob Storage와 직접 연결되지 않습니다. 이러한 데이터 시각화 제품을 사용하는 데 관심이 있는 경우 다음과 같이 Azure SQL Data Warehouse를 활용하는 대체 아키텍처를 알아보세요.

단계별 설명

  1. 디바이스 클라이언트에서 Azure 함수를 호출합니다. 또는 가상 머신을 부하 분산 장치와 함께 사용할 수 있습니다.
  2. Azure 함수에서 Azure Event Hubs로 데이터를 전송합니다.
  3. 기본 제공 이벤트 허브 캡처를 사용하여 데이터를 포함하는 AVRO 파일이 생성됩니다.
  4. Azure Databricks 작업은 AVRO 파일에서 데이터를 읽고 페이로드에 있는 JSON 이벤트를 추출합니다. Azure Databricks는 데이터 준비를 수행하고 출력(CSV 파일)을 Azure Blob Storage에 배치합니다.
  5. Power BI 는 Azure Blob Storage에 저장된 CSV 파일을 읽고 대시보드/보고서에 표시합니다.

배포 템플릿

다음 단추를 클릭하여 프로젝트를 Azure 구독에 배포합니다.

이 작업은 Azure 구독에 대한 azuredeploy.json ARM 템플릿 파일의 템플릿 배포를 트리거합니다. 그러면 필요한 Azure 리소스가 만들어집니다. 이로 인해 Azure 계정에 요금이 부과될 수 있습니다.

Azure 서비스에 대한 명명 규칙 및 제한 사항을 요약하는 섹션이 포함된 일반 지침 문서를 확인하세요.

참고

ARM 템플릿이 작동하는 방식에 관심이 있는 경우 이 참조 아키텍처에 활용된 각 서비스에서 Azure Resource Manager 템플릿 설명서를 참조하세요.

샘플 프로젝트에서 Azure 서비스에 연결할 수 있도록 다음 함수 애플리케이션 설정을 추가합니다.

  • EVENTHUB_CONNECTION_STRING - 만들어진 Azure 이벤트 허브 네임스페이스에 대한 연결 문자열입니다.

그런 다음 포털 또는 API를 통해 Azure Databricks 클러스터를 시작합니다.

그런 다음 DBFS를 사용하여 Azure Storage 계정을 탑재하거나, API를 직접 사용하기 위한 액세스 키를 설정합니다. 자세한 내용은 Azure Databricks에서 Azure Blob Storage에 액세스하는 방법에 대한 문서를 참조하세요. 권장되는 경로는 암호를 활용하고 컨테이너 또는 컨테이너 내 폴더를 탑재한 다음, 파일을 로컬 파일처럼 액세스하는 것입니다.

마지막으로, 앞서 만든 Azure Databricks 클러스터에서 사용할 폴더로 이동한 다음(또는 새로 만듦), 가져오기, URL을 차례로 선택하고 이 스크립트를 사용하여 노트북을 가져옵니다.

Azure Functions를 로컬로 실행하려면 다음과 동일한 앱 설정을 사용하여 local.settings.json 파일을 업데이트합니다.

구현 세부 정보

향후 게임 업데이트에서 추적된 매개 변수가 개선되면 버전 번호를 포함하는 것이 도움이 될 것입니다.

이벤트 허브 파티션

Azure 이벤트 허브 요구 사항과 파티션 수를 선택하기 위한 경험 법칙을 이해하려면 일반 지침 설명서를 참조하세요.

Blob 스토리지 성능 및 제한

Azure 스토리지 계정의 제한과 스로틀링 방지 방법에 대해 자세히 알아보려면 일반 지침 설명서를 참조하세요.

API

이 참조 아키텍처에서는 사용자가 서버 부하 분산 및 크기 조정을 고려할 필요가 없도록 API가 Azure 함수(서버리스)를 통해 구현됩니다. Azure 함수의 입력은 HTTP 트리거가 되고 출력은 이벤트 허브가 됩니다.

[return: EventHub("ehnrtanalytics-output", Connection = "EventHubConnectionAppSetting")]
    public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log)

Azure Databricks 작업

목표는 Azure Databricks 클러스터가 실행되는 시간을 최소한으로 유지하는 것입니다. 클러스터를 몇 분 동안 비활성 상태를 유지할 경우 종료하도록 설정합니다. 그런 다음 Azure Databricks 노트북을 예약합니다(예: 매일).

Power BI 대시보드

Azure Blob Storage에서 정보를 가져와 시각화를 위해 데이터를 준비하는 단계의 목록은 다음과 같습니다.

  1. Power BI를 엽니다.
  2. 데이터 가져오기를 선택하고 Azure를 선택합니다.
  3. Azure Blob Storage를 선택합니다.
  4. URL을 묻는 메시지가 표시됩니다. URL은 Azure Portal에서 찾을 수 있습니다.
    1. 리소스 그룹을 엽니다.
    2. 스토리지 계정을 선택합니다.
    3. Blobs를 선택합니다(왼쪽 메뉴에서 Blob 서비스 아래).
    4. 경로를 선택합니다(이 예제의 경우 ehcapture-analytics).
    5. 마지막으로 속성 섹션에서 해당 URL을 찾을 수 있습니다.
  5. 스토리지 계정 키를 묻는 메시지가 표시됩니다(Azure Portal에서 찾을 수 있음).
    1. 리소스 그룹을 엽니다.
    2. 스토리지 계정을 선택합니다.
    3. 액세스 키를 선택합니다(왼쪽 메뉴에서 설정 아래).
    4. 키만 복사합니다(연결 문자열은 제외).
  6. 그러면 Power BI가 Azure Blob Storage와 연결하고 검색된 일부 파일의 미리 보기를 표시합니다. 로드를 클릭합니다.
  7. 데이터를 마사지하려면:
    1. 쿼리 편집을 선택합니다.
    2. 이름 열을 CSV로 필터링하여 이 파일 형식만 표시되도록 합니다.
    3. 콘텐츠 열에서 파일 결합 아이콘(두 개의 화살표가 아래쪽을 가리키는 것처럼 보임)을 클릭합니다.
    4. 팝업 대화 상자가 표시되면 확인 단추를 클릭합니다.
    5. 닫은 후 적용합니다.
  8. 쿼리에 표시할 필드를 선택하고 사용 가능한 Power BI 시각화에서 대시보드에 추가하기 시작합니다.

보안 고려 사항

이벤트 허브 또는 Cognitive Services 연결 문자열을 함수의 원본에 하드 코딩하지 마세요. 대신, 적어도 함수 앱 설정을 활용하거나 더 강력한 보안을 위해 Key Vault를 사용하세요. Key Vault를 만드는 방법, 함수에 관리되는 서비스 ID를 사용하는 방법, 마지막으로 함수에서 Key Vault에 저장된 암호를 읽는 방법을 설명하는 자습서가 있습니다.

이벤트 허브 인증 및 보안 모델 개요를 검토하고 연습에 포함하여 채팅 서버만 이벤트 허브에 연결할 수 있도록 합니다.

최적화 고려 사항

Azure Blob Storage에 저장된 blob을 "더 쿨한" 스토리지 계층으로 전환하거나(핫 계층에서 쿨 계층으로, 핫 계층에서 보관으로 또는 쿨 계층에서 보관으로), Azure Blob Storage 수명 주기 관리 정책을 사용하여 수명 주기 종료 시 blob을 삭제하여 성능 및 비용을 최적화할 수 있습니다.

대안

Azure DatabricksAzure HDInsight로 바꾸는 것을 고려할 수 있습니다. 이 시나리오에서 중요한 차이점은 Azure Databricks는 클러스터 실행/중지를 사용자 대신 처리하지만 Azure HDInsight를 사용하는 경우 사용자가 직접 처리해야 한다는 것입니다.

대규모로 분석을 수집

아키텍처 다이어그램

LAzure SQL Data Warehouse를 사용한 대규모 분석

구현 세부 정보

Azure Event Hubs 캡처Azure Event Grid를 활용하면 플레이어가 Azure SQL Data Warehouse로 전송하는 데이터를 가져올 수 있습니다. SQL Data Warehouse에서 Power BI를 사용하는 방법을 포함하여 전체 단계별 연습을 보려면 Azure Functions를 사용하여 캡처한 이벤트 허브 데이터를 SQL Data Warehouse로 마이그레이션을 참조하세요.

배포 템플릿

다음 단추를 클릭하여 프로젝트를 Azure 구독에 배포합니다.

Deploy using an Azure Resource Manager template

이 작업은 Azure 구독에 대한 EventHubsDataMigration.json ARM 템플릿 파일의 템플릿 배포를 트리거합니다. 이는 필요한 Azure 리소스를 만듭니다.

Azure 서비스에 대한 명명 규칙 및 제한 사항을 요약하는 문서가 포함된 일반 지침 문서를 참조하세요.

Azure Databricks 및 Azure HDInsight 포함

필요한 경우, 스튜디오에서 새로 대두되는 기술과 도구를 활용하여 웨어하우스 외부에서 데이터를 준비할 수 있습니다.

  • Azure Databricks를 사용할 경우 데이터 과학자는 다양한 언어로 Databricks Runtime의 전체 기능을 사용하여 사용자의 게임이 성장함에 따라 크기를 조정할 수 있는 ETL(추출, 변환, 로드) 프로세스를 개발하고 Azure SQL Data Warehouse에 직접 데이터를 쓸 수 있습니다.
  • 또는 Azure SQL Data Warehouse를 Azure HDInsight와 연결하여 게임에서 생성된 구조적 또는 비구조화적 데이터에 대해 대규모로 신속한 대화형 SQL 쿼리를 수행할 수도 있습니다.

추가 리소스 및 샘플

가격

Azure 구독이 없는 경우 무료 계정을 만들어 12개월 무료 서비스를 시작합니다. 이러한 서비스의 제한을 초과하지 않는 한 Azure 무료 계정에서 무료로 제공하는 서비스에 대해서는 요금이 부과되지 않습니다. Azure Portal을 통해 또는 사용량 파일을 통해 사용량을 확인하는 방법을 알아보세요.

이러한 참조 아키텍처를 실행하는 동안 사용되는 Azure 서비스의 비용은 사용자가 부담합니다. 전체 금액은 사용량에 따라 달라집니다. 참조 아키텍처에 사용된 각 서비스에 대한 가격 웹 페이지를 참조하세요.

Azure 가격 계산기를 사용하여 사용하려는 Azure 서비스에 대한 비용을 구성하고 예측할 수도 있습니다. 가격은 추정치이며 실제 가격 견적이 아닙니다. 실제 가격은 구매 날짜, 결제 통화, 사용자가 Microsoft와 체결하는 계약 유형에 따라 다를 수 있습니다. 가격에 대한 추가 정보는 Microsoft 영업 담당자에게 문의하세요.