다음을 통해 공유


Azure IoT 데이터 프로세서 미리 보기에서 SQL Server 원본 단계 구성

Important

Azure IoT 작업 미리 보기 - Azure Arc에서 지원되는 Azure IoT 작업은 현재 미리 보기로 제공됩니다. 프로덕션 환경에서는 이 미리 보기 소프트웨어를 사용하면 안 됩니다.

베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

원본 스테이지는 Azure IoT 데이터 프로세서 Preview 파이프라인의 첫 번째 필수 스테이지입니다. 원본 단계는 데이터를 데이터 처리 파이프라인으로 가져오고 추가 처리를 위해 준비합니다. SQL Server 원본 스테이지를 사용하면 사용자 정의 간격으로 Microsoft SQL Server 데이터베이스에서 데이터를 읽을 수 있습니다.

원본 스테이지에서는 다음을 정의합니다.

  • SQL Server에 대한 연결 세부 정보.
  • SQL Server 데이터베이스를 쿼리할 간격. 스테이지는 간격 타이머를 다시 설정하기 전에 결과를 기다립니다.
  • 특정 데이터 처리 요구 사항에 따른 분할 구성.

필수 조건

  • 데이터 프로세서의 작동 인스턴스가 배포됩니다.
  • 필요한 원시 데이터를 모두 사용할 수 있는 SQL Server 데이터베이스는 작동하며 연결할 수 있습니다.

SQL Server 데이터베이스 준비

SQL Server 데이터베이스에서 읽으려면 먼저 파이프라인에서 데이터베이스에 대한 액세스 권한을 부여해야 합니다. Username/Password, Managed identity 또는 Service principal을 사용하여 데이터베이스에 대한 파이프라인을 인증할 수 있습니다. 관리 ID를 사용하면 서비스 주체의 수명 주기나 암호 세부 정보를 관리할 필요가 없다는 장점이 있습니다. 관리 ID는 Azure에서 자동으로 관리되며 할당된 리소스의 수명 주기에 연결됩니다.

클라이언트 암호가 있는 서비스 주체를 만들려면 다음을 수행합니다.

  1. 다음 Azure CLI 명령을 사용하여 서비스 주체를 만듭니다.

    az ad sp create-for-rbac --name <YOUR_SP_NAME> 
    
  2. 이 명령의 출력에는 appId, displayName, password, tenant가 포함됩니다. Microsoft Fabric과 같은 클라우드 리소스에 대한 액세스를 구성하고 비밀을 만들고 파이프라인 대상을 구성할 때 사용할 값을 기록해 둡니다.

    {
        "appId": "<app-id>",
        "displayName": "<name>",
        "password": "<client-secret>",
        "tenant": "<tenant-id>"
    }
    

SQL Server 데이터베이스의 주체 ID에 대한 액세스 권한을 부여하려면 데이터베이스에서 다음 명령을 실행합니다.

CREATE USER processor FROM EXTERNAL PROVIDER WITH OBJECT_ID=<principalId>;

참고 항목

이전 명령을 실행하려면 SQL Server에서 admin으로 등록된 Entra ID를 사용해야 합니다.

원본 단계가 SQL Server 데이터베이스에 연결하려면 인증 세부 정보가 포함된 비밀에 액세스해야 합니다. 비밀을 만들려면:

  1. 다음 명령을 사용하여 서비스 주체를 만들 때, 적어 둔 클라이언트 비밀이 포함된 비밀을 Azure Key Vault에 추가합니다.

    az keyvault secret set --vault-name <your-key-vault-name> --name AccessADXSecret --value <client-secret>
    
  2. Azure IoT 작업 배포에 대한 비밀 관리의 단계에 따라 비밀 참조를 Kubernetes 클러스터에 추가합니다.

SQL Server 원본 구성

SQL Server 원본을 구성하려면

  • SQL Server 데이터베이스의 세부 정보를 제공합니다. 이 구성에는 서버 이름과 데이터를 검색하는 쿼리가 포함됩니다.
  • 인증 방법을 지정합니다. 현재는 사용자 이름/암호 기반 또는 서비스 주체 기반 인증으로 제한됩니다.

다음 표에서는 SQL Server 원본 구성 매개 변수에 대해 설명합니다.

필드 형식 설명 필수 항목 기본값 예시
이름 문자열 원본 스테이지의 고객이 볼 수 있는 이름입니다. Required 해당 없음 erp-database
설명 문자열 원본 스테이지에 대한 고객이 볼 수 있는 설명입니다. 선택 사항 해당 없음 Enterprise database
서버 호스트 문자열 서버에 연결하는 데 사용할 URL입니다. Required 해당 없음 https://contoso.com/some/url/path
서버 포트 정수 서버에서 연결할 포트 번호입니다. Required 1433 1433
인증 Authentication type 서버에 연결하기 위한 인증 방법입니다. None, Username/Password, Managed identity 또는 Service principal 중 하나입니다. 선택 사항 NA Username/Password
사용자 이름/암호 > 사용자 이름 문자열 사용자 이름/암호 인증의 사용자 이름입니다. 해당 없음 myuser
사용자 이름/암호 > 비밀 문자열 Azure Key Vault에 저장된 암호에 대한 참조입니다. AKV_USERNAME_PASSWORD
서비스 주체 > 테넌트 ID 문자열 서비스 주체의 테넌트 ID입니다. 해당 없음 <Tenant ID>
서비스 주체 > 클라이언트 ID 문자열 서비스 주체의 클라이언트 ID입니다. 해당 없음 <Client ID>
서비스 주체 > 비밀 문자열 Azure Key Vault에 저장된 서비스 주체 클라이언트 암호에 대한 참조입니다. 해당 없음 AKV_SERVICE_PRINCIPAL
데이터베이스 문자열 쿼리할 SQL Server 데이터베이스의 이름입니다. Required 해당 없음 erp_db
데이터 쿼리 문자열 데이터베이스에 대해 실행할 쿼리입니다. Required 해당 없음 SELECT * FROM your_table WHERE column_name = foo
쿼리 간격 기간 다음 API 호출 전 대기 시간을 문자열로 표현한 것입니다. Required 10s 24h
데이터 형식 형식 들어오는 데이터의 데이터 형식 Required 해당 없음 {"type": "json"}
분할 분할 원본 스테이지의 분할 구성입니다. Required 해당 없음 파티션 나누기를 참조하세요.

비밀에 대해 자세히 알아보려면 Azure IoT Operations Preview 배포에 대한 비밀 관리를 참조하세요.

참고 항목

SQL Server에서 응답이 없는 경우 요청은 30초 후 시간 초과됩니다.

데이터 형식 선택

데이터 프로세서 파이프라인에서 원본 스테이지의 형식 필드는 들어오는 데이터를 역직렬화하는 방법을 지정합니다. 기본적으로 데이터 프로세서 파이프라인은 들어오는 데이터를 변환하지 않음을 의미하는 raw 형식을 사용합니다. 파이프라인의 Filter 또는 Enrich 스테이지와 많은 데이터 프로세서 기능을 사용하려면 입력 스테이지에서 데이터를 역직렬화해야 합니다. 전체 데이터 프로세서 기능을 사용하기 위해 JSON, jsonStream, MessagePack, CBOR, CSV 또는 Protobuf 형식에서 들어오는 데이터를 데이터 프로세서에서 읽을 수 있는 메시지로 역직렬화하도록 선택할 수 있습니다.

다음 표에서는 다양한 역직렬화 구성 옵션에 대해 설명합니다.

필드 설명 필수 항목 기본값
데이터 형식 데이터 형식의 유형입니다. Raw Raw JSON jsonStream MessagePack CBOR CSV Protobuf

Data Format 필드는 필수이며 해당 값은 다른 필수 필드를 결정합니다.

CSV 메시지를 역직렬화하려면 다음 필드도 지정해야 합니다.

필드 설명 필수 예제
헤더 CSV 데이터에 헤더 줄이 포함되는지 여부입니다. Yes No No
이름 CSV 열 이름입니다. - temp, asset
Path 열 정보가 추가되는 메시지의 jq 경로 입니다. 아니요 - 기본 jq 경로는 열 이름입니다.
데이터 형식 열에 있는 데이터의 데이터 형식 및 데이터 프로세서 파이프라인 내에서 데이터 형식이 표시되는 방식입니다. 아니요 String, Float, Integer, Boolean, Bytes 기본값: String

Protobuf 메시지를 역직렬화하려면 다음 필드도 지정해야 합니다.

필드 설명 필수 예제
설명자 protobuf 정의에 대한 base64로 인코딩된 설명자입니다. - Zhf...
메시지 데이터 형식을 지정하는 데 사용되는 메시지 형식의 이름입니다. - pipeline
Package(패키지) 형식이 정의된 설명자에 있는 패키지의 이름입니다. - schedulerv1

참고 항목

데이터 프로세서는 각 .proto 파일에서 하나의 메시지 형식만 지원합니다.

분할 구성

파이프라인에서 분할하면 들어오는 데이터를 별도의 파티션으로 나눕니다. 분할을 사용하면 파이프라인에서 데이터 병렬 처리를 통해 처리량을 개선하고 대기 시간을 줄일 수 있습니다. 분할 전략은 파이프라인의 다른 스테이지에서 데이터가 처리되는 방식에 영향을 미칩니다. 예를 들어 마지막으로 알려진 값 스테이지 및 집계 스테이지는 각 논리 파티션에서 작동합니다.

데이터를 분할하려면 분할 전략과 사용할 파티션 수를 지정합니다.

필드 설명 필수 항목 기본값 예시
파티션 유형 사용할 분할 유형: 파티션 ID 또는 파티션 Key Required ID ID
파티션 식 들어오는 메시지에서 파티션 ID 또는 파티션 Key를 계산하는 데 사용할 jq 식 입니다. Required 0 .payload.header
파티션 수 데이터 프로세서 파이프라인의 파티션 수입니다. Required 1 1

데이터 프로세서는 들어오는 메시지에 메타데이터를 추가합니다. 들어오는 메시지에서 실행되는 분할 식을 올바르게 지정하는 방법을 이해하려면 데이터 프로세서 메시지 구조 개요를 참조하세요. 기본적으로 파티션 식은 들어오는 모든 데이터를 단일 파티션으로 보내기 위해 ID파티션 형식을 가진 0으로 설정됩니다.

권장 사항 및 자세한 내용은 파티션 나누기란?을 참조하세요.