Azure Stream Analytics의 출력

Azure Stream Analytics 작업은 입력, 쿼리 및 출력으로 구성됩니다. 변환된 데이터를 보낼 수 있는 몇 가지 출력 형식이 있습니다. 이 문서에서는 지원되는 Stream Analytics 출력을 나열합니다. Stream Analytics 쿼리를 디자인할 때 INTO 절을 사용하여 출력의 이름을 참조합니다. 쿼리에 여러 INTO 절을 추가하여 작업당 단일 출력 또는 스트리밍 작업당 여러 출력(필요한 경우)을 사용할 수 있습니다.

Stream Analytics 작업 출력을 만들고, 편집하고, 테스트하려면 Azure Portal, Azure PowerShell, .NET API, REST API, Visual StudioVisual Studio Code를 사용할 수 있습니다.

참고 항목

최상의 로컬 개발 환경을 위해 Visual Studio Code용 Stream Analytics 도구를 사용하는 것이 좋습니다. Visual Studio 2019(버전 2.6.3000.0)용 Stream Analytics 도구에는 알려진 기능 차이가 있으며 앞으로 개선되지 않을 것입니다.

일부 출력 형식은 다음 표와 같이 분할을 지원합니다.

모든 출력은 일괄 처리를 지원하지만 일부 출력 일괄 처리 크기만 명시적으로 설정합니다. 자세한 내용은 출력 일괄 처리 크기 섹션을 참조 하세요 .

출력 형식 분할 보안
Azure Data Explorer 관리 ID
Azure Functions 액세스 키
Azure Synapse Analytics SQL 사용자 인증,
관리 ID
Blob Storage 및 Azure Data Lake Gen2 액세스 키,
관리 ID
Azure Cosmos DB 액세스 키,
관리 ID
Azure Data Lake Storage Gen 2 Microsoft Entra 사용자
관리 ID
Azure Event Hubs 예. 출력 구성에서 파티션 키 열을 설정해야 합니다. 액세스 키,
관리 ID
Kafka(미리 보기) 예. 출력 구성에서 파티션 키 열을 설정해야 합니다. 액세스 키,
관리 ID
Azure Database for PostgreSQL 사용자 이름 및 암호 인증
Power BI 아니요 Microsoft Entra 사용자,
관리 ID
Azure Service Bus 큐 액세스 키,
관리 ID
Azure Service Bus 토픽 액세스 키,
관리 ID
Azure SQL Database 예, 선택 사항입니다. SQL 사용자 인증,
관리 ID
Azure Table Storage 계정 키

Important

Azure Stream Analytics는 의도적으로 삽입 또는 바꾸기 API를 사용합니다. 이 작업은 기존 엔터티를 바꾸거나 테이블에 엔터티가 없을 경우 새 엔터티를 삽입합니다.

분할

Stream Analytics는 Power BI를 제외한 모든 출력에 대한 파티션을 지원합니다. 파티션 키 및 출력 기록기 수에 대한 자세한 내용은 관심 있는 특정 출력 형식에 대한 문서를 참조하세요. 출력 형식에 대한 아티클은 이전 섹션에서 연결됩니다.

또한 파티션의 고급 튜닝을 위해 쿼리에서 (INTO 참조) 절을 사용하여 INTO <partition count> 출력 작성기 수를 제어할 수 있으므로 원하는 작업 토폴로지 달성에 도움이 될 수 있습니다. 출력 어댑터가 분할되지 않은 경우 하나의 입력 파티션에 데이터가 없으면 지연 도착 시간까지 지연됩니다. 이러한 경우 출력이 단일 기록기에 병합되어 파이프라인에서 병목 현상이 발생할 수 있습니다. 지연 도착 정책에 대한 자세한 내용은 Azure Stream Analytics 이벤트 주문 고려 사항을 참조 하세요.

출력 일괄 처리 크기

모든 출력은 일괄 처리를 지원하지만 일부만 일괄 처리 크기를 명시적으로 설정합니다. Azure Stream Analytics는 가변 크기 일괄 처리를 사용하여 이벤트를 처리하고 출력에 씁니다. 일반적으로 Stream Analytics 엔진은 한 번에 하나의 메시지를 작성하지 않으며 효율성을 위해 일괄 처리를 사용합니다. 들어오는 이벤트와 나가는 이벤트의 비율이 높으면 Stream Analytics는 더 큰 일괄 처리를 사용합니다. 송신 속도가 낮으면 더 작은 일괄 처리를 사용하여 대기 시간을 낮게 유지합니다.

Avro 및 Parquet 파일 분할 동작

Stream Analytics 쿼리는 지정된 출력에 대해 여러 스키마를 생성할 수 있습니다. 프로젝션된 열 목록과 해당 형식은 행 단위로 변경될 수 있습니다. 기본적으로 Avro 및 Parquet 형식은 단일 파일의 변수 스키마를 지원하지 않습니다.

변수 스키마가 있는 스트림을 이러한 형식을 사용하여 출력으로 보낼 때 다음 동작이 발생할 수 있습니다.

  • 스키마 변경을 검색할 수 있는 경우 현재 출력 파일이 닫히고 새 출력 파일이 새 스키마에서 초기화됩니다. 이렇게 파일을 분할하면 스키마 변경이 자주 발생할 때 출력 속도가 저하됩니다. 이 동작은 작업의 전반적인 성능에 심각한 영향을 미칠 수 있습니다.
  • 스키마 변경을 검색할 수 없는 경우 행이 거부될 가능성이 높으며 행을 출력할 수 없으므로 작업이 중단됩니다. 중첩 열 또는 다중 형식 배열은 검색되지 않고 거부되는 상황입니다.

Avro 또는 Parquet 형식을 사용하는 출력을 강력한 형식으로 지정하거나 쓰기에 스키마를 지정하는 쿼리를 작성하는 것이 좋습니다(균일한 스키마에 대한 명시적 변환 및 프로젝션).

여러 스키마를 생성해야 하는 경우 WHERE 절을 사용하여 여러 출력을 만들고 레코드를 각 대상으로 분할하는 것이 좋습니다.

Parquet 출력 일괄 처리 창 속성

Azure Resource Manager 템플릿 배포 또는 REST API를 사용하는 경우 두 개의 일괄 처리 창 속성은 다음과 같습니다.

  1. timeWindow

    일괄 처리당 최대 대기 시간입니다. 값은 .의 Timespan문자열이어야 합니다. 예를 들어 00:02:00 2분 동안입니다. 이 시간 이후에는 최소 행 요구 사항이 충족되지 않더라도 일괄 처리가 출력에 기록됩니다. 기본값은 1분이고 허용되는 최대값은 2시간입니다. Blob 출력에 경로 패턴 빈도가 있는 경우 대기 시간은 파티션 시간 범위보다 클 수 없습니다.

  2. sizeWindow

    일괄 처리당 최소 행 수입니다. Parquet의 경우 모든 일괄 처리에서 새 파일을 만듭니다. 현재 기본값은 2,000개 행이고 허용되는 최대 행은 10,000개입니다.

이러한 일괄 처리 창 속성은 API 버전 2017-04-01-preview 이상에서만 지원됩니다. 다음은 REST API 호출에 대한 JSON 페이로드의 예입니다.

"type": "stream",
      "serialization": {
        "type": "Parquet",
        "properties": {}
      },
      "timeWindow": "00:02:00",
      "sizeWindow": "2000",
      "datasource": {
        "type": "Microsoft.Storage/Blob",
        "properties": {
          "storageAccounts" : [
          {
            "accountName": "{accountName}",
            "accountKey": "{accountKey}",
          }
          ],

다음 단계