다음을 통해 공유


Azure Synapse Data Explorer 풀에서 스트리밍 수집 구성(미리 보기)

스트리밍 수집은 수집과 쿼리 사이에 짧은 대기 시간이 필요할 때 데이터를 로드하는 데 유용합니다. 다음 시나리오에서 스트리밍 수집을 사용하는 것이 좋습니다.

  • 1초 미만의 대기 시간이 필요합니다.
  • 각 테이블로의 데이터 스트림이 비교적 작지만(초당 몇 개의 레코드) 전체 데이터 수집 볼륨은 높은(초당 수천 개의 레코드) 많은 테이블의 운영 처리를 최적화합니다.

각 테이블로의 데이터 스트림이 높은 경우(시간당 4GB 이상) 일괄 수집을 사용하는 것이 좋습니다.

수집 방법에 대한 자세한 내용은 데이터 수집 개요을 참조하세요.

적절한 스트리밍 수집 유형 선택

두 가지 스트리밍 수집 유형이 지원됩니다.

수집 유형 Description
Event Hub 또는 IoT Hub 허브는 테이블 스트리밍 데이터 원본으로 구성됩니다.
이러한 설정에 대한 내용은 Event Hub를 참조하세요.
사용자 지정 수집 사용자 지정 수집을 사용하려면 Azure Synapse Data Explorer 클라이언트 라이브러리 중 하나를 사용하는 애플리케이션을 작성해야 합니다.
이 항목의 정보를 사용하여 사용자 지정 수집을 구성합니다. C# 스트리밍 수집 샘플 애플리케이션이 유용할 수도 있습니다.

다음 표를 사용하여 환경에 적합한 수집 유형을 선택합니다.

조건 Event Hub/IoT Hub 사용자 지정 수집
수집 시작과 쿼리에 사용할 수 있는 데이터 사이의 데이터 지연 더 긴 지연 더 짧은 지연
개발 오버헤드 빠르고 쉬운 설정, 개발 오버헤드 없음 데이터를 수집하고, 오류를 처리하고, 데이터 일관성을 보장하는 애플리케이션을 만들기 위한 개발 오버헤드 높음

참고 항목

Synapse 작업 영역에서 데이터 반출 보호가 사용된 관리형 가상 네트워크를 사용하는 경우 Event Hub에서 데이터 탐색기 풀로의 데이터 수집이 작동하지 않습니다.

필수 구성 요소

  • Azure 구독 평가판 Azure 계정을 만듭니다.

  • Synapse Studio 또는 Azure Portal을 사용하여 Data Explorer 풀 만들기

  • Data Explorer 데이터베이스를 만듭니다.

    1. Synapse Studio의 왼쪽 창에서 데이터를 선택합니다.

    2. +(새 리소스 추가) >Data Explorer 풀을 선택하고 다음 정보를 사용합니다.

      설정 제안 값 설명
      풀 이름 contosodataexplorer 사용할 Data Explorer 풀의 이름
      이름 TestDatabase 데이터베이스 이름은 클러스터 내에서 고유해야 합니다.
      기본 보존 기간 365 데이터를 쿼리에 사용할 수 있도록 보장되는 시간 범위(일)입니다. 시간 범위는 데이터가 수집된 시간부터 측정됩니다.
      기본 캐시 기간 31 자주 쿼리되는 데이터를 장기 스토리지가 아닌 SSD 스토리지 또는 RAM에 보관할 수 있는 시간 범위(일)입니다.
    3. 만들기를 선택하여 데이터베이스를 만듭니다. 만들기에는 일반적으로 채 1분이 소요되지 않습니다.

  • 쿼리 및 데이터 수집 엔드포인트를 가져옵니다.
    1. Synapse Studio의 왼쪽 창에서 관리>Data Explorer 풀을 차례로 선택합니다.

    2. 세부 정보를 보는 데 사용할 Data Explorer 풀을 선택합니다.

      Screenshot of the Data Explorer pools screen, showing the list of existing pools.

    3. 쿼리 및 데이터 수집 엔드포인트를 기록해 둡니다. Data Explorer 풀에 대한 연결을 구성할 때 쿼리 엔드포인트를 클러스터로 사용합니다. 데이터 수집을 위해 SDK를 구성할 때 데이터 수집 엔드포인트를 사용합니다.

      Screenshot of the Data Explorer pools properties pane, showing the Query and Data Ingestion URI addresses.

성능 및 운영 고려 사항

스트리밍 수집에 영향을 줄 수 있는 주요 요소는 다음과 같습니다.

  • 컴퓨팅 사양: 데이터 탐색기 풀 크기가 증가함에 따라 스트리밍 수집 성능 및 용량이 확장됩니다. 동시 수집 요청 수는 코어당 6개로 제한됩니다. 예를 들어 컴퓨팅 최적화(대형) 및 스토리지 최적화(대형)와 같은 16코어 워크로드 유형의 경우 지원되는 최대 로드는 96개의 동시 수집 요청입니다. 컴퓨팅 최적화(초소형)와 같은 2코어 워크로드 유형의 경우 지원되는 최대 로드는 12개의 동시 수집 요청입니다.
  • 데이터 크기 제한: 스트리밍 수집 요청에 대한 데이터 크기 제한은 4MB입니다.
  • 스키마 업데이트: 테이블 만들기/수정 및 수집 매핑과 같은 스키마 업데이트에는 스트리밍 수집 서비스의 경우 최대 5분이 걸릴 수 있습니다. 자세한 내용은 스트리밍 수집 및 스키마 변경을 참조하세요.
  • SSD 용량: Data Explorer 풀에서 스트리밍 수집을 사용하도록 설정하면 스트리밍을 통해 데이터가 수집되지 않는 경우에도 Data Explorer 풀 컴퓨터의 로컬 SSD 디스크 일부를 수집 데이터 스트리밍에 사용하고 핫 캐시에 사용할 수 있는 스토리지를 줄입니다.

데이터 탐색기 풀에서 스트리밍 수집 사용

스트리밍 수집을 사용하려면 먼저 Data Explorer 풀에서 기능을 사용하도록 설정하고 스트리밍 수집 정책을 정의해야 합니다. Data Explorer 풀을 만들 때 기능을 사용하도록 설정하거나 기존 Data Explorer 풀에 추가할 수 있습니다.

Warning

스트리밍 수집을 사용하도록 설정하기 전에 제한 사항을 검토하세요.

새 Data Explorer 풀을 만드는 동안 스트리밍 수집 사용

Azure Synapse Studio 또는 Azure Portal를 사용하여 새 Data Explorer 풀을 만드는 동안 스트리밍 수집을 사용하도록 설정할 수 있습니다.

Synapse Studio를 사용하여 Data Explorer 풀 만들기의 단계를 통해 Data Explorer 풀을 만드는 동안 추가 설정 탭에서 스트리밍 수집>사용을 선택합니다.

Enable streaming ingestion while creating a Data Explorer pool in Azure Synapse Data Explorer.

기존 Data Explorer 풀에서 스트리밍 수집 사용

기존 Data Explorer 풀이 있는 경우 Azure Portal를 사용하여 스트리밍 수집을 사용하도록 설정할 수 있습니다.

  1. Azure Portal에서 Data Explorer 풀로 이동합니다.
  2. 설정에서 구성을 선택합니다.
  3. 구성 창에서 켜기를 선택하여 스트리밍 수집을 사용하도록 설정합니다.
  4. 저장을 선택합니다.

대상 테이블 만들기 및 정책 정의

스트리밍 수집 데이터를 수신하는 테이블을 만들고 Azure Synapse Studio 또는 Azure Portal을 사용하여 관련 정책을 정의합니다.

  1. Synapse Studio의 왼쪽 창에서 개발을 선택합니다.

  2. KQL 스크립트에서 +(새 리소스 추가) >KQL 스크립트를 선택합니다. 오른쪽 창에서 스크립트 이름을 지정할 수 있습니다.

  3. 연결 대상 메뉴에서 contosodataexplorer를 선택합니다.

  4. 데이터베이스 사용 메뉴에서 TestDatabase를 선택합니다.

  5. 다음 명령을 붙여넣고 실행을 선택하여 테이블을 만듭니다.

    .create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
    
  6. 다음 명령 중 하나를 쿼리 창에 복사하고 실행을 선택합니다. 여기서 만든 테이블 또는 테이블이 포함된 데이터베이스에서 스트리밍 수집 정책을 정의합니다.

    데이터베이스 수준에서 정의된 정책은 데이터베이스의 모든 기존 테이블 및 미래 테이블에 적용됩니다.

    • 만든 테이블에 대한 정책을 정의하려면 다음을 사용합니다.

      .alter table TestTable policy streamingingestion enable
      
    • 만든 테이블이 포함된 데이터베이스에 대한 정책을 정의하려면 다음을 사용합니다.

      .alter database StreamingTestDb policy streamingingestion enable
      

데이터를 Data Explorer 풀에 수집하는 스트리밍 수집 애플리케이션 만들기

기본 설정 언어를 사용하여 데이터를 Data Explorer 풀에 수집하는 애플리케이션을 만듭니다. poolPath 변수의 경우 사전 요구 사항에 기록해둔 쿼리 엔드포인트를 사용합니다.

using Kusto.Data;
using Kusto.Ingest;
using System.IO;
using Kusto.Data.Common;

namespace StreamingIngestion
{
    class Program
    {
        static void Main(string[] args)
        {
            string poolPath = "https://<Poolname>.<WorkspaceName>.kusto.windows.net";
            string appId = "<appId>";
            string appKey = "<appKey>";
            string appTenant = "<appTenant>";
            string dbName = "<dbName>";
            string tableName = "<tableName>";

            // Create Kusto connection string with App Authentication
            var csb =
                new KustoConnectionStringBuilder(poolPath)
                    .WithAadApplicationKeyAuthentication(
                        applicationClientId: appId,
                        applicationKey: appKey,
                        authority: appTenant
                    );

            // Create a disposable client that will execute the ingestion
            using (IKustoIngestClient client = KustoIngestFactory.CreateStreamingIngestClient(csb))
            {
                // Initialize client properties
                var ingestionProperties =
                    new KustoIngestionProperties(
                        databaseName: dbName,
                        tableName: tableName
                    );

                // Ingest from a compressed file
                var fileStream = File.Open("MyFile.gz", FileMode.Open);
                // Create source options
                var sourceOptions = new StreamSourceOptions()
                {
                    CompressionType = DataSourceCompressionType.GZip,
                };
                // Ingest from stream
                var status = client.IngestFromStreamAsync(fileStream, ingestionProperties, sourceOptions).GetAwaiter().GetResult();
            }
        }
    }
}

Data Explorer 풀에서 스트리밍 수집 사용 안 함

Warning

스트리밍 수집을 사용하지 않도록 설정하는 데 몇 시간이 걸릴 수 있습니다.

Data Explorer 풀에서 스트리밍 수집을 사용하지 않도록 설정하기 전에 모든 관련 테이블과 데이터베이스에서 스트리밍 수집 정책을 삭제합니다. 스트리밍 수집 정책을 제거하면 Data Explorer 풀 내에서 데이터 다시 정렬이 트리거됩니다. 스트리밍 수집 데이터는 초기 스토리지에서 열 저장소(익스텐트 또는 분할)의 영구 스토리지로 이동됩니다. 이 프로세스는 초기 스토리지의 데이터 양에 따라 몇 초에서 몇 시간까지 걸릴 수 있습니다.

스트리밍 수집 정책 삭제

Azure Synapse Studio 또는 Azure Portal을 사용하여 스트리밍 수집 정책을 삭제할 수 있습니다.

  1. Synapse Studio의 왼쪽 창에서 개발을 선택합니다.

  2. KQL 스크립트에서 +(새 리소스 추가) >KQL 스크립트를 선택합니다. 오른쪽 창에서 스크립트 이름을 지정할 수 있습니다.

  3. 연결 대상 메뉴에서 contosodataexplorer를 선택합니다.

  4. 데이터베이스 사용 메뉴에서 TestDatabase를 선택합니다.

  5. 다음 명령을 붙여넣고 실행을 선택하여 테이블을 만듭니다.

    .delete table TestTable policy streamingingestion
    
  6. Azure Portal에서 Data Explorer 풀로 이동합니다.

  7. 설정에서 구성을 선택합니다.

  8. 구성 창에서 켜기를 선택하여 스트리밍 수집을 사용하도록 설정합니다.

  9. 저장을 선택합니다.

제한 사항

  • 데이터베이스 자체나 해당 테이블에 스트리밍 수집 정책이 정의되고 사용하도록 설정된 경우 데이터베이스에서 데이터베이스 커서가 지원되지 않습니다.
  • 스트리밍 수집에 사용하려면 데이터 매핑미리 만들어야 합니다. 개별 스트리밍 수집 요청은 인라인 데이터 매핑을 수용하지 않습니다.
  • 스트리밍 수집 데이터에는 익스텐트 태그를 설정할 수 없습니다.
  • 업데이트 정책 업데이트 정책은 원본 테이블에서 새로 수집된 데이터만 참조할 수 있으며 데이터베이스의 다른 데이터나 테이블은 참조할 수 없습니다.
  • 스트리밍 수집이 데이터베이스의 테이블에서 사용되는 경우 이 데이터베이스는 팔로워 데이터베이스의 리더로 사용되거나 Azure Synapse Analytics Data Share의 데이터 공급자로 사용될 수 없습니다.

다음 단계