SQL용 Azure Synapse Link의 제한 사항 및 알려진 문제

이 문서에는 SQL용 Azure Synapse Link의 제한 사항알려진 문제가 나열되어 있습니다.

제한 사항

다음 섹션에는 SQL용 Azure Synapse Link에 대한 제한 사항이 나열되어 있습니다.

Azure SQL Database 및 SQL Server 2022

  • 원본 테이블에는 기본 키가 있어야 합니다.
  • 쓰기 가능한 기본 복제본은 SQL용 Azure Synapse Link의 데이터 원본으로만 지원됩니다.
  • 다음 데이터 형식은 원본 테이블의 기본 키를 지원하지 않습니다.
    • real
    • float
    • hierarchyid
    • sql_variant
    • timestamp
  • 원본 테이블 행 크기는 7,500바이트를 초과할 수 없습니다. 변수 길이 열이 행 외부에 저장되는 테이블의 경우 주 레코드에 24비트 포인터가 저장됩니다.
  • 원본 테이블이 처음에 스냅샷으로 생성될 때 크기가 1MB보다 큰 LOB(큰 개체) 데이터가 포함된 원본 테이블 데이터는 지원되지 않습니다. 이러한 LOB 데이터 형식에는 varchar(max), nvarchar(max), varbinary(max)가 포함됩니다. 오류가 발생하고 데이터가 Azure Synapse Analytics로 내보내지지 않습니다.
  • SQL용 Azure Synapse Link에 사용하도록 설정된 테이블의 최대 열 수는 1,020개입니다(1,024개 아님).
  • 데이터베이스에 여러 링크를 사용할 수 있지만, 지정된 테이블은 여러 링크에 속할 수 없습니다.
  • 데이터베이스 소유자가 매핑된 로그인을 갖고 있지 않으면 링크 연결을 사용하도록 설정할 때 SQL용 Azure Synapse Link에서 오류가 발생합니다. 사용자는 ALTER AUTHORIZATION 명령으로 데이터베이스 소유자를 유효한 사용자로 설정하여 이 문제를 해결할 수 있습니다.
  • 원본 테이블에 Azure Synapse Analytics 전용 SQL 풀에서 지원하지 않는 데이터 형식의 계산 열 또는 열이 포함된 경우 이러한 열은 Azure Synapse Analytics에 복제되지 않습니다. 지원되지 않는 열은 다음과 같습니다.
    • 이미지
    • text
    • xml
    • timestamp
    • sql_variant
    • UDT
    • geometry
    • 지역
  • 단일 링크 연결에 최대 5,000개의 테이블을 추가할 수 있습니다.
  • 다음 테이블 DDL 작업은 SQL용 Azure Synapse Link에 사용하도록 설정된 원본 테이블에서 허용되지 않습니다. 그 외의 DDL 작업은 허용되지만 Azure Synapse Analytics에 복제되지 않습니다.
    • 패턴 전환
    • 열 추가/삭제/변경
    • 기본 키 변경
    • 테이블 드롭/자르기
    • 테이블 이름 변경
  • 명시적 트랜잭션에서(BEGIN TRANSACTIONEND TRANSACTION 문 간의) DDL + DML이 실행되면 해당 테이블의 복제가 링크 연결 내에서 실패합니다.

    참고 항목

    테이블이 링크 연결 수준에서 트랜잭션 일관성에 중요한 경우 [모니터링] 탭에서 Azure Synapse Link 테이블의 상태를 검토하세요.

  • 원본 테이블에 다음 기능이 사용 중인 경우 SQL용 Azure Synapse Link를 사용하도록 설정할 수 없습니다.
    • 변경 데이터 캡처
    • temporal 기록 테이블
    • 상시 암호화
    • 메모리 내 OLTP
    • 열 저장 인덱스
    • 그래프
  • 시스템 테이블은 복제할 수 없습니다.
  • 원본 데이터베이스의 보안 구성은 대상 전용 SQL 풀에 반영되지 않습니다.
  • SQL용 Azure Synapse Link를 사용하도록 설정하면 changefeed라는 새 스키마가 만들어집니다. 이 스키마는 시스템용으로 예약되어 있으므로 사용하지 마세요.
  • UTF8 및 특정 일본어 데이터 정렬과 같이 전용 SQL 풀에서 지원하지 않는 데이터 정렬이 있는 원본 테이블은 복제할 수 없습니다. 다음은 Synapse SQL 풀에서 지원되는 데이터 정렬입니다.
    • 또한 일부 태국어 데이터 정렬은 현재 SQL용 Azure Synapse Link에서 지원되지 않습니다. 이러한 지원되지 않는 데이터 정렬에는 다음이 포함됩니다.
      • Thai100CaseInsensitiveAccentInsensitiveKanaSensitive
      • Thai100CaseInsensitiveAccentSensitiveSupplementaryCharacters
      • Thai100CaseSensitiveAccentInsensitiveKanaSensitive
      • Thai100CaseSensitiveAccentInsensitiveKanaSensitiveWidthSensitiveSupplementaryCharacters
      • Thai100CaseSensitiveAccentSensitiveKanaSensitive
      • Thai100CaseSensitiveAccentSensitiveSupplementaryCharacters
      • ThaiCaseSensitiveAccentInsensitiveWidthSensitive
    • 현재, 링크를 중지할 수 없고 기본 테이블을 복제에서 제거할 수 없는 알려진 문제가 있으므로 데이터 정렬 Latin1_General_BIN2가 지원되지 않습니다.
  • > 370MB의 단일 행 업데이트(오프 페이지 스토리지 포함)는 지원되지 않습니다.
  • Azure SQL Database 또는 SQL Server 2022에서 SQL용 Azure Synapse Link를 사용하도록 설정한 경우 ADR(가속 데이터베이스 복구)의 적극적인 로그 자르기 기능이 자동으로 사용하지 않도록 설정됩니다. SQL용 Azure Synapse Link가 데이터베이스 트랜잭션 로그에 액세스하기 때문입니다. 이 동작은 CDC(변경된 데이터 캡처)와 유사합니다. 활성 트랜잭션은 트랜잭션이 커밋되고 SQL용 Azure Synapse Link가 따라잡거나 트랜잭션이 중단될 때까지 트랜잭션 로그 잘림을 계속 유지합니다. 이로 인해 트랜잭션 로그가 평소보다 많이 채워질 수 있으므로 트랜잭션 로그가 채워지지 않도록 모니터링해야 합니다.

Azure SQL Database만 해당

  • SQL용 Azure Synapse Link는 DTU가 100개 미만인 무료, 기본 또는 표준 계층에서 지원되지 않습니다.
  • SQL용 Azure Synapse Link는 SQL Managed Instance에서 지원되지 않습니다.
  • 서비스 주체는 원본 Azure SQL DB 인증을 지원하지 않으므로, Azure SQL DB 연결된 서비스를 만들 때 SQL 인증, UAMI(사용자가 할당한 관리 ID) 또는 SAMI(서비스 할당 관리 ID)를 선택합니다.
  • Azure SQL Database 논리 서버에 SAMI와 UAMI가 모두 구성된 경우 Azure Synapse Link는 SAMI를 사용합니다.
  • 보조 데이터베이스의 이름이 주 데이터베이스와 다른 경우 GeoDR 장애 조치(failover)가 발생한 후에는 보조 데이터베이스에서 Azure Synapse Link를 사용하도록 설정할 수 없습니다.
  • 데이터베이스에서 Microsoft Entra 사용자로 SQL용 Azure Synapse Link를 사용하도록 설정한 경우 PITR(특정 시점 복원)이 실패합니다. PITR은 데이터베이스에서 SQL용 Azure Synapse Link를 SQL 사용자로 사용하도록 설정하는 경우에만 작동합니다.
  • 데이터베이스를 Microsoft Entra 사용자로 만들고 SQL용 Azure Synapse Link를 사용하도록 설정하면 SQL 인증 사용자는(sysadmin 역할조차도) SQL용 Azure Synapse Link 아티팩트를 사용하지 않도록 설정하거나 변경할 수 없습니다. 그러나 다른 Microsoft Entra 사용자는 같은 데이터베이스에서 SQL용 Azure Synapse Link를 사용하도록/사용하지 않도록 설정할 수 있습니다. 마찬가지로 데이터베이스를 SQL 인증 사용자로 만드는 경우 Microsoft Entra 사용자로 SQL용 Azure Synapse Link를 사용하도록/사용하지 않도록 설정해도 작동하지 않습니다.
  • Azure SQL Database와 Azure Synapse 작업 영역이 별도의 테넌트에 있는 경우 테넌트 간 데이터 복제가 지원되지 않습니다.

SQL Server 2022만 해당

  • 트랜잭션 복제 게시자 또는 배포자인 데이터베이스에서는 SQL용 Azure Synapse Link를 사용할 수 없습니다.
  • 가용성 그룹에 비동기 복제본이 있는 경우 트랜잭션을 모든 복제본에 기록한 후 SQL용 Azure Synapse Link에 게시해야 합니다.
  • SQL용 Azure Synapse Link는 데이터베이스 미러링을 사용하는 데이터베이스에서는 지원되지 않습니다.
  • SQL용 Azure Synapse Link 사용 데이터베이스를 온-프레미스에서 Azure SQL Managed Instance로 복원하는 기능은 지원되지 않습니다.

주의

SQL용 Azure Synapse Link는 Azure SQL Managed Instance 링크도 사용하는 데이터베이스에서 지원되지 않습니다. 이러한 시나리오에서 관리되는 인스턴스가 읽기-쓰기 모드로 전환되면 트랜잭션 로그 가득 참 문제가 발생할 수 있습니다.

알려진 문제

  • 적용 대상 - Azure SQL Database 및 SQL Server 2022용 Azure Synapse Link
  • 문제 - Azure Synapse Analytics 작업 영역을 삭제할 때 실행 중인 링크가 중지되지 않을 수 있으며 이로 인해 원본 데이터베이스가 링크가 여전히 작동 중이라고 생각하고 트랜잭션 로그가 잘리지 않고 채워질 수 있습니다.
  • 해결 방법 - 이 상황을 해결하는 두 가지 방법이 있습니다.
  1. Azure Synapse Analytics 작업 영역을 삭제하기 전에 실행 중인 링크를 중지합니다.
  2. 원본 데이터베이스에서 링크 정의를 수동으로 정리합니다.
    1. 다음 쿼리를 사용하여 중지해야 하는 table_group_id를 찾습니다.
      SELECT table_group_id, workspace_id, synapse_workgroup_name
      FROM [changefeed].[change_feed_table_groups]
      WHERE synapse_workgroup_name = <synapse workspace name>
      
    2. 다음 절차에 따라 식별된 각 링크를 삭제합니다.
      EXEC sys.sp_change_feed_drop_table_group @table_group_id = <table_group_id>
      
    3. 선택 사항으로, 특정 데이터베이스에 대해 모든 테이블 그룹을 사용하지 않도록 설정하는 경우 다음 명령을 사용하여 데이터베이스에서 변경 피드를 사용하지 않도록 설정할 수도 있습니다.
      EXEC sys.sp_change_feed_disable_db
      

최근에 사용하지 않도록 설정한 테이블에서 변경 피드를 다시 사용하도록 설정하면 오류가 표시됩니다. (이는 드문 동작입니다.)

  • 적용 대상 - Azure SQL Database 및 SQL Server 2022용 Azure Synapse Link
  • 문제 - 메타데이터가 아직 정리되지 않고 상태가 DISABLED로 표시된 상태에서 최근에 사용하지 않도록 설정된 테이블을 사용하도록 설정하려고 하면 A table can only be enabled once among all table groups 오류가 발생합니다.
  • 해결 방법 - 사용하지 않도록 설정된 테이블 시스템 프로시저가 완료될 때까지 잠시 기다린 다음 테이블을 다시 사용하도록 설정합니다.
  • 적용 대상 - Azure SQL Database 및 SQL Server 2022용 Azure Synapse Link
  • 문제 - Azure Synapse Link를 사용하도록 설정된 SQL 데이터베이스의 경우 SSDT 가져오기/내보내기 및 추출/배포 작업을 사용하여 새 데이터베이스를 가져오거나 설정할 때 changefeed 스키마 및 사용자가 새 데이터베이스에서 제외되지 않습니다. 그러나 변경 피드에 대한 테이블은 sys.objects에서 is_ms_shipped=1로 표시되고 해당 개체가 SSDT 가져오기/내보내기 및 추출/배포 작업에 포함되지 않기 때문에 DaxFX에서 무시됩니다. 가져온/배포된 데이터베이스에서 Azure Synapse Link를 사용하도록 설정할 때 changefeed 사용자 및 스키마가 이미 존재하는 경우 시스템 저장 프로시저 sys.sp_change_feed_enable_db가 실패합니다. 이 문제는 Azure Synapse Link 변경 피드 기능과 관련되지 않은 changefeed라는 스키마 또는 사용자를 만든 경우 발생합니다.
  • 해결 방법 -
    • changefeed 스키마와 changefeed 사용자를 수동으로 삭제합니다. 그러면 가져온/배포된 데이터베이스에서 Azure Synapse Link를 성공적으로 사용하도록 설정할 수 있습니다.
    • Azure Synapse Link와 관련이 없는 사용자 지정 스키마 또는 changefeed라는 사용자를 데이터베이스에 정의했고 SQL용 Azure Synapse Link를 사용하지 않으려면 changefeed 스키마 또는 사용자를 삭제할 필요가 없습니다.
    • 데이터베이스에 고객 스키마 또는 changefeed라는 사용자를 정의한 경우 현재 이 데이터베이스는 SQL용 Azure Synapse Link에 참여할 수 없습니다.

다음 단계