다음을 통해 공유


자습서: parquet 형식으로 Event Hubs 데이터를 캡처하고 Azure Synapse Analytics를 사용하여 분석

이 자습서는 Stream Analytics 코드 없는 편집기를 사용하여 Event Hubs 데이터를 parquet 형식으로 Azure Data Lake Storage Gen2에 캡처하는 작업을 만드는 방법을 보여줍니다.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 이벤트 허브에 샘플 이벤트를 보내는 이벤트 생성기 배포
  • 코드 없는 편집기를 사용하여 Stream Analytics 작업 만들기
  • 입력 데이터 및 스키마 검토
  • 이벤트 허브 데이터를 캡처할 Azure Data Lake Storage Gen2 구성
  • Stream Analytics 작업 실행
  • Azure Synapse Analytics를 사용하여 parquet 파일 쿼리

필수 조건

시작하기 전에 다음 단계를 완료해야 합니다.

코드 없는 편집기를 사용하여 Stream Analytics 작업 만들기

  1. TollApp 이벤트 생성기가 배포된 리소스 그룹을 찾습니다.

  2. Azure Event Hubs 네임스페이스를 선택합니다.

  3. Event Hubs 네임스페이스 페이지에서 왼쪽의 엔터티 아래에 있는 Event Hubs를 선택합니다.

  4. entrystream 인스턴스를 선택합니다.

    Screenshot showing the selection of the event hub.

  5. Event Hubs 인스턴스 페이지에서 왼쪽 메뉴의 기능 섹션에 있는 데이터 프로세스를 선택합니다.

  6. Capture data to ADLS Gen2 in Parquet format 타일의 시작을 선택합니다.

    Screenshot showing the selection of the **Capture data to ADLS Gen2 in Parquet format** tile.

  7. 작업 이름을 parquetcapture로 지정하고 만들기를 선택합니다.

    Screenshot of the New Stream Analytics job page.

  8. 이벤트 허브 구성 페이지에서 다음 설정을 확인한 다음 연결을 선택합니다.

    • 소비자 그룹: 기본값

    • 입력 데이터의 직렬화 형식: JSON

    • 작업에서 이벤트 허브에 연결하는 데 사용할 인증 모드: 연결 문자열

      Screenshot of the configuration page for your event hub.

  9. 몇 초 내에 샘플 입력 데이터와 스키마가 표시됩니다. 필드를 삭제하거나, 필드 이름을 바꾸거나, 데이터 형식을 변경하도록 선택할 수 있습니다.

    Screenshot showing the fields and preview of data.

  10. 캔버스에서 Azure Data Lake Storage Gen2 타일을 선택하고 지정하여 구성합니다.

    • Azure Data Lake Gen2 계정이 있는 구독
    • 스토리지 계정 이름으로, 필수 구성 요소 섹션에서 수행된 Azure Synapse Analytics 작업 영역에 사용되는 것과 동일한 ADLS Gen2 계정이어야 합니다.
    • parquet 파일을 만들 컨테이너입니다.
    • 경로 패턴이 {date}/{time}으로 설정되었습니다.
    • 기본값 yyyy-mm-ddHH인 날짜 및 시간 패턴입니다.
    • 연결을 선택합니다

    Screenshot showing the configuration settings for the Data Lake Storage.

  11. 위쪽 리본에서 저장을 선택하여 작업을 저장한 다음 시작을 선택하여 작업을 실행합니다. 작업이 시작되면 오른쪽 모서리에서 X를 선택하여 Stream Analytics 작업 페이지를 닫습니다.

    Screenshot showing the Start Stream Analytics Job page.

  12. 그러면 코드 없는 편집기를 사용하여 만든 모든 Stream Analytics 작업 목록이 표시됩니다. 그리고 2분 이내에 작업이 실행 중 상태로 이동합니다. 페이지에서 새로 고침 단추를 선택하여 상태가 생성됨 ->시작 -> 실행 중으로 변경되는 것을 확인합니다.

    Screenshot showing the list of Stream Analytics jobs.

Azure Data Lake Storage Gen 2 계정에서 출력 보기

  1. 이전 단계에서 사용한 Azure Data Lake Storage Gen2 계정을 찾습니다.

  2. 이전 단계에서 만든 컨테이너를 선택합니다. 이전 단계에서 사용된 {date}/{time} 경로 패턴을 기반으로 만든 parquet 파일이 표시됩니다.

    Screenshot showing the captured parquet files in Azure Data Lake Storage Gen 2.

Azure Synapse Analytics를 사용하여 Parquet 형식으로 캡처된 데이터 쿼리

Azure Synapse Spark 2를 사용하여 쿼리

  1. Azure Synapse Analytics 작업 영역을 찾고 Synapse Studio 엽니다.

  2. 서버리스 Apache Spark 풀이 아직 없는 경우 작업 영역에 만듭니다.

  3. Synapse Studio에서 개발 허브로 이동하여 새 Notebook을 만듭니다.

  4. 새 코드 셀을 만들고, 다음 코드를 해당 셀에 입력합니다. 컨테이너 및 adlsname을 이전 단계에서 사용된 컨테이너 및 ADLS Gen2 계정의 이름으로 바꿉니다.

    %%pyspark
    df = spark.read.load('abfss://container@adlsname.dfs.core.windows.net/*/*/*.parquet', format='parquet')
    display(df.limit(10))
    df.count()
    df.printSchema()
    
  5. 도구 모음에 있는 연결 대상의 경우 드롭다운 목록에서 Spark 풀을 선택합니다.

  6. 실행을 다시 선택하여 결과를 확인합니다.

    Screenshot of spark run results in Azure Synapse Analytics.

Azure Synapse 서버리스 SQL 사용하여 쿼리

  1. 개발 허브에서 새 SQL 스크립트를 만듭니다.

    Screenshot showing the Develop page with new SQL script menu selected.

  2. 다음 스크립트를 붙여넣고 기본 제공 서버리스 SQL 엔드포인트를 사용하여 실행합니다. 컨테이너 및 adlsname을 이전 단계에서 사용된 컨테이너 및 ADLS Gen2 계정의 이름으로 바꿉니다.

    SELECT
        TOP 100 *
    FROM
        OPENROWSET(
            BULK 'https://adlsname.dfs.core.windows.net/container/*/*/*.parquet',
            FORMAT='PARQUET'
        ) AS [result]
    

    Screenshot of SQL script results in Azure Synapse Analytics.

리소스 정리

  1. Event Hubs 인스턴스를 찾고 프로세스 데이터 섹션에서 Stream Analytics의 작업 목록을 확인합니다. 실행 중인 작업 중지
  2. TollApp 이벤트 생성기를 배포하는 동안 사용한 리소스 그룹으로 이동합니다.
  3. 리소스 그룹 삭제를 선택합니다. 삭제를 확인할 리소스 그룹의 이름을 입력합니다.

다음 단계

이 자습서에서는 코드 없는 편집기를 사용하여 Stream Analytics 작업을 만들어 Event Hubs 데이터 스트림을 parquet 형식으로 캡처하는 방법을 알아보았습니다. 그런 다음 Azure Synapse Analytics를 사용하여 Synapse Spark 및 Synapse SQL을 모두 사용하여 parquet 파일을 쿼리했습니다.