다음을 통해 공유


Azure Stream Analytics 작업에서 Azure SQL Database 테이블에 쓰기

Azure Stream Analytics는 Azure SQL Database를 스트리밍 쿼리에 대한 출력으로 지원합니다. 이 문서에서는 Azure Portal에서 SQL Database를 Stream Analytics 작업의 출력으로 사용하는 방법을 설명합니다.

필수 조건

  1. Stream Analytics 작업을 만듭니다.

  2. Stream Analytics 작업에서 출력을 기록할 Azure SQL Database를 만듭니다.

SQL Database의 새 테이블에 쓰기

이 섹션에서는 아직 생성되지 않은 Azure SQL Database의 테이블에 쓰기를 수행하기 위해 작업을 구성하는 방법을 설명합니다.

  1. Stream Analytics 작업의 작업 토폴로지에서 출력을 선택합니다. 추가를 클릭하고 SQL Database를 선택합니다.

    Screenshot showing SQL DB output in Stream Analytics.

  2. 작업 쿼리에 사용할 출력 별칭을 선택합니다. 데이터베이스 이름 및 인증 모드를 제공합니다. SQL 출력 구서 옵션에 대해 자세히 알아볼 수 있습니다.

  3. Azure SQL Database에 생성할 테이블 이름을 입력합니다. 저장을 클릭합니다. 참고: 이 출력을 저장해도 SQL Database에 테이블이 생성되지 않습니다. 다음 단계에서는 테이블이 생성되는 시기에 대해 자세히 설명합니다.

    Screenshot showing SQL DB output configuration in Stream Analytics.

  4. 작업 토폴로지에서 쿼리를 선택하고 쿼리의 별칭을 사용하여 이전 단계에서 제공한 테이블 이름에 출력을 기록합니다. 쿼리 테스트를 클릭하여 쿼리 논리를 테스트하고 작업으로 생성할 출력 스키마를 보여 주는 테스트 결과를 확인합니다. 참고: 쿼리를 테스트하려면 입력 원본에 수신 스트리밍 데이터가 있어야 합니다. 그렇지 않으면 샘플 데이터를 업로드하여 쿼리를 테스트할 수 있습니다. Stream Analytics 쿼리 테스트에 대해 자세히 알아볼 수 있습니다.

    Screenshot showing query testing in Stream Analytics.

    Screenshot showing query tests results in Stream Analytics.

  5. SQL 테이블 스키마를 클릭하여 열 이름 및 형식을 확인합니다. 테이블 만들기를 클릭하면 테이블이 SQL 데이터베이스에 생성됩니다.

    Screenshot showing creating a table in SQL database from Stream Analytics.

    다른 스키마를 생성하도록 Stream Analytics 쿼리가 수정된 경우 SQL Database에서 테이블 정의를 수정해야 합니다. 이렇게 하면 싱크에 쓰기를 시도하는 동안 Stream Analytics 작업에서 데이터 변환 오류가 발생하지 않습니다.

  6. 쿼리가 완료되면 개요를 선택하고 작업을 시작합니다. 그런 다음, SQL Database 테이블로 이동하여 스트리밍 쿼리 출력을 볼 수 있습니다.

SQL Database에서 기존 테이블 선택

이 섹션에서는 Azure SQL Database에 이미 있는 테이블에 쓰기를 수행하도록 작업을 구성하는 방법을 설명합니다.

  1. Stream Analytics 작업의 작업 토폴로지에서 출력을 선택합니다. 추가를 클릭하고 SQL Database를 선택합니다.

    Screenshot showing SQL DB output in Stream Analytics.

  2. 작업 쿼리에 사용할 출력 별칭을 선택합니다. 데이터베이스 이름 및 인증 모드를 제공합니다. SQL 출력 구서 옵션에 대해 자세히 알아볼 수 있습니다.

  3. SQL 인증 세부 정보를 입력하여 선택한 SQL Database에서 기존 테이블을 선택할 수 있습니다. 그러면 데이터베이스에서 테이블 이름 목록이 로드됩니다. 목록에서 테이블 이름을 선택하거나 테이블 이름을 수동으로 입력하고 저장합니다.

    Screenshot showing existing table in SQL database.

  4. 작업 토폴로지에서 쿼리를 선택하고 쿼리의 별칭 이름을 사용하여 선택한 테이블에 출력을 씁니다. 쿼리 테스트를 클릭하여 쿼리 논리를 테스트하고 테스트 결과를 확인합니다. 참고: 쿼리를 테스트하려면 이벤트 허브/IoT Hub에 수신 스트리밍 데이터가 있어야 합니다. 그렇지 않으면 샘플 데이터를 업로드하여 쿼리를 테스트할 수 있습니다. Stream Analytics 쿼리 테스트에 대해 자세히 알아볼 수 있습니다.

    Screenshot showing query testing in Stream Analytics.

    Screenshot showing query tests results in Stream Analytics.

  5. SQL 테이블 스키마 탭에서 들어오는 데이터 및 선택한 테이블에서 열 이름과 해당 형식을 볼 수 있습니다. 들어오는 데이터 형식과 선택한 SQL 테이블이 일치하는지 여부에 따라 상태를 볼 수 있습니다. 일치하지 않으면 테이블 스키마와 일치하도록 쿼리를 업데이트하라는 메시지가 표시됩니다.

    Screenshot showing schema comparison in Stream Analytics.

  6. 쿼리가 완료되면 개요를 선택하고 작업을 시작합니다. 그런 다음, SQL Database 테이블로 이동하여 스트리밍 쿼리 출력을 볼 수 있습니다.

공통 데이터 형식 불일치 이유

Stream Analytics 작업의 출력이 SQL Database 테이블에 필요한 열 이름 및 데이터 형식과 일치하는지 확인해야 합니다. 불일치가 있으면 작업에 데이터 변환 오류가 발생하고 SQL 테이블 정의가 변경될 때까지 계속 작업이 다시 시도됩니다. 데이터 변환 오류를 일으키는 해당 출력을 삭제하도록 작업 동작을 변경하고 다음 작업을 계속할 수 있습니다. 가장 일반적인 스키마 불일치 이유는 아래에 설명되어 있습니다.

  • 형식 불일치: 쿼리 및 대상 형식이 호환되지 않습니다. 행이 대상에 삽입되지 않습니다. TRY_CAST()와 같은 변환 함수를 사용하여 쿼리에서 형식을 정렬합니다. 대체 옵션은 SQL 데이터베이스에서 대상 테이블을 변경하는 것입니다.
  • 범위: 대상 유형 범위가 쿼리에 사용된 것보다 상당히 작습니다. 범위를 벗어나는 값이 있는 행은 대상 테이블에 삽입되지 않거나 잘릴 수 있습니다. 대상 열을 더 큰 형식 범위로 변경하는 것이 좋습니다.
  • 암시적: 쿼리 및 대상 형식이 다르지만 호환됩니다. 데이터가 암시적으로 변환되지만 이로 인해 데이터가 손실되거나 실패할 수 있습니다. TRY_CAST()와 같은 변환 함수를 사용하여 쿼리 형식을 정렬하거나 대상 테이블을 변경합니다.
  • 레코드: 이 형식은 아직 이 출력에 지원되지 않습니다. 값은 ‘record’ 문자열로 대체됩니다. 데이터를 구문 분석하거나 UDF를 사용하여 문자열로 변환하는 것이 좋습니다.
  • 배열: 이 형식은 아직 Azure SQL Database에서 기본적으로 지원되지 않습니다. 값은 ‘record’ 문자열로 대체됩니다. 데이터를 구문 분석하거나 UDF를 사용하여 문자열로 변환하는 것이 좋습니다.
  • 대상 테이블에서 열 누락: 이 열이 대상 테이블에 없습니다. 데이터가 삽입되지 않습니다. 필요에 따라 이 열을 대상 테이블에 추가합니다.

다음 단계