Limitations et problèmes connus liés à Azure Synapse Link pour SQL

Cet article répertorie les limitations et problèmes connus liés à Azure Synapse Link pour SQL.

Limitations

Les sections suivantes répertorient les limitations liées à Azure Synapse Link pour SQL.

Azure SQL Database et SQL Server 2022

  • Les tables sources doivent avoir des clés primaires.
  • Seul un réplica principal accessible en écriture est pris en charge comme source de données pour Azure Synapse Link pour SQL.
  • Les types de données suivants ne sont pas pris en charge pour les clés primaires dans les tables sources :
    • real
    • float
    • hierarchyid
    • sql_variant
    • timestamp
  • La taille de ligne de la table source ne peut pas dépasser 7 500 octets. Pour les tables où les colonnes de longueur variable sont stockées hors ligne, un pointeur de 24 octets est stocké dans l’enregistrement principal.
  • Lorsque vous effectuez une capture instantanée initiale de tables sources, les données de tables sources constituées d’objet volumineux (LOB) de plus de 1 Mo ne sont pas prises en charge. Ces données LOB peuvent être de type varchar(max), nvarchar(max) ou varbinary(max). Une erreur est générée et des données ne sont pas exportées vers Azure Synapse Analytics.
  • Les tables activées pour Azure Synapse Link pour SQL peuvent avoir un maximum de 1 020 colonnes (et non 1 024).
  • Bien qu’une base de données puisse avoir plusieurs liens activés, une table donnée ne peut pas appartenir à plusieurs liens.
  • Lorsqu’un propriétaire de base de données n’a pas de connexion mappée, Azure Synapse Link pour SQL rencontre une erreur lors de l’activation d’une connexion de lien. L’utilisateur peut définir le propriétaire de base de données sur un utilisateur valide avec la commande ALTER AUTHORIZATION pour résoudre ce problème.
  • Si la table source contient des colonnes ou des colonnes calculées avec des types de données qui ne sont pas pris en charge par des pools SQL dédiés Azure Synapse Analytics, ces colonnes ne sont pas répliquées dans Azure Synapse Analytics. Les colonnes non prises en charge sont les suivantes :
    • image
    • texte
    • Xml
    • timestamp
    • sql_variant
    • UDT
    • geometry
    • Geography
  • Un maximum de 5 000 tables peut être ajouté à une connexion de lien unique.
  • Les opérations DDL de table suivantes ne sont pas autorisées sur les tables sources lorsqu’elles sont activées pour Azure Synapse Link pour SQL. Toutes les autres opérations DDL sont autorisées, mais elles ne sont pas répliquées dans Azure Synapse Analytics.
    • Basculer la partition
    • Ajouter/supprimer/modifier une colonne
    • Modifier la clé primaire
    • Supprimer/tronquer la table
    • Renommer la table
  • Si DDL + DML est exécuté dans une transaction explicite (entre des instructions BEGIN TRANSACTION et END TRANSACTION), la réplication pour les tables correspondantes échoue dans la connexion de lien.

    Notes

    Si une table est essentielle pour la cohérence transactionnelle au niveau de la connexion de lien, consultez l’état de la table Azure Synapse Link sous l’onglet Surveillance.

  • Azure Synapse Link pour SQL ne peut pas être activé si l’une des fonctionnalités suivantes est utilisée pour la table source :
    • Capture de données modifiées
    • Table d’historique temporelle
    • Always Encrypted
    • OLTP en mémoire
    • Index de la banque des colonnes
    • Graph
  • Les tables système ne peuvent pas être répliquées.
  • La configuration de sécurité à partir de la base de données source ne sera PAS reflétée dans le pool SQL dédié cible.
  • L’activation d’Azure Synapse Link pour SQL crée un schéma appelé changefeed. N’utilisez pas ce schéma, car il est réservé à l’utilisation du système.
  • Les tables source avec des classements qui ne sont pas pris en charge par les pools SQL dédiés, comme UTF8 et certains classements japonais, ne peuvent pas être répliquées. Voici les classements pris en charge dans un pool Synapse SQL.
    • De plus, certains classements en langue thaï ne sont actuellement pas pris en charge par Azure Synapse Link pour SQL. Ces classements non pris en charge sont les suivants :
      • Thai100CaseInsensitiveAccentInsensitiveKanaSensitive
      • Thai100CaseInsensitiveAccentSensitiveSupplementaryCharacters
      • Thai100CaseSensitiveAccentInsensitiveKanaSensitive
      • Thai100CaseSensitiveAccentInsensitiveKanaSensitiveWidthSensitiveSupplementaryCharacters
      • Thai100CaseSensitiveAccentSensitiveKanaSensitive
      • Thai100CaseSensitiveAccentSensitiveSupplementaryCharacters
      • ThaiCaseSensitiveAccentInsensitiveWidthSensitive
    • Actuellement, le classement Latin1_General_BIN2 n’est pas pris en charge, car il existe un problème connu selon lequel le lien ne peut pas être arrêté ni les tables sous-jacentes supprimées de la réplication.
  • Les mises à jour de ligne uniques (y compris le stockage hors page) de > 370 Mo ne sont pas prises en charge.
  • Lorsque Azure Synapse Link pour SQL sur Azure SQL Database ou SQL Server 2022 est activé, la fonctionnalité de troncation de journal agressive de la récupération de base de données accélérée (ADR) est automatiquement désactivée. En effet, Azure Synapse Link pour SQL accède au journal des transactions de bases de données. Ce comportement est similaire à la capture des changements de données (CDC). Les transactions actives continuent de conserver la troncation du journal des transactions jusqu’à ce que la transaction valide et qu’Azure Synapse Link pour SQL rattrape ou abandonne la transaction. Cela peut entraîner le remplissage du journal des transactions plus que d’habitude. Il est donc important de surveiller que le journal des transactions ne se remplisse pas.

Azure SQL Database uniquement

  • Azure Synapse Link pour SQL n’est pas pris en charge sur le niveau Gratuit, De base ou Standard avec moins de 100 DTU.
  • Azure Synapse Link pour SQL n’est pas pris en charge sur SQL Managed Instances.
  • Le principal du service n’est pas pris en charge pour l’authentification auprès de la base de données source Azure SQL DB. Lors de la création du service lié Azure SQL, choisissez l’authentification SQL, l’identité managée affectée par l’utilisateur ou l’identité managée affectée par le service (SAMI).
  • Si le serveur logique Azure SQL Database est configuré avec à la fois SAMI et UAMI, Azure Synapse Link utilise SAMI.
  • Azure Synapse Link ne peut pas être activé sur la base de données secondaire une fois qu’un basculement de géo-reprise d’activité après sinistre s’est produit si la base de données secondaire a un nom différent de la base de données primaire.
  • Si vous activez Azure Synapse Link pour SQL sur votre base de données en tant qu’utilisateur Microsoft Entra, la restauration à un instant dans le passé échoue. La RDH fonctionne uniquement lorsque vous activez Azure Synapse Link sur votre base de données en tant qu’utilisateur SQL.
  • Si vous créez une base de données en tant qu’utilisateur Microsoft Entra et activez Azure Synapse Link pour SQL, un utilisateur d’authentification SQL (par exemple, même le rôle sysadmin) ne peut pas désactiver ni modifier les artefacts Azure Synapse Link pour SQL. Toutefois, un autre utilisateur Microsoft Entra peut activer/désactiver Azure Synapse Link pour SQL sur la même base de données. De même, si vous créez une base de données en tant qu’utilisateur avec une authentification SQL, l’activation/la désactivation d’Azure Synapse Link pour SQL en tant qu’utilisateur Microsoft Entra ne fonctionne pas.
  • La réplication de données interlocataires n’est pas prise en charge lorsqu’une base de données Azure SQL et l’espace de travail Azure Synapse se trouvent dans des locataires distincts.

SQL Server 2022 uniquement.

  • Azure Synapse Link pour SQL ne peut pas être activé sur les bases de données qui sont des distributeurs ou des éditeurs de réplication transactionnelle.
  • Avec des réplicas asynchrones dans un groupe de disponibilité, les transactions doivent être écrites dans tous les réplicas avant leur publication dans Azure Synapse Link pour SQL.
  • Azure Synapse Link pour SQL n’est pas pris en charge sur les bases de données avec la mise en miroir de bases de données activée.
  • La restauration d’un lien Azure Synapse Link pour une base de données SQL localement vers Azure SQL Managed Instance n’est pas prise en charge.

Attention

Azure Synapse Link pour SQL n’est pas pris en charge sur les bases de données qui utilisent également un lien Azure SQL Managed Instance. Attention : dans ces scénarios, lorsque l’instance gérée passe en mode lecture-écriture, vous pouvez rencontrer des problèmes de journal complet.

Problèmes connus

  • S’applique à : Azure Synapse Link pour Azure SQL Database et SQL Server 2022
  • Problème : lorsque vous supprimez un espace de travail Azure Synapse Analytics, il est possible que les liens en cours d’exécution ne soient pas arrêtés, ce qui fait que la base de données source pense que le lien est toujours opérationnel. Cela peut entraîner le remplissage du journal qui n’est alors pas tronqué.
  • Résolution : il existe deux solutions possibles à cette situation :
  1. Arrêtez les liens en cours d’exécution avant de supprimer l’espace de travail Azure Synapse Analytics.
  2. Nettoyez manuellement la définition de lien dans la base de données source.
    1. Recherchez le table_group_id qui doit être arrêté à l’aide de la requête suivante :
      SELECT table_group_id, workspace_id, synapse_workgroup_name
      FROM [changefeed].[change_feed_table_groups]
      WHERE synapse_workgroup_name = <synapse workspace name>
      
    2. Supprimez chaque lien identifié à l’aide de la procédure suivante :
      EXEC sys.sp_change_feed_drop_table_group @table_group_id = <table_group_id>
      
    3. Si vous désactivez tous les groupes de tables pour une base de données spécifique, vous pouvez également désactiver le flux de modification sur la base de données avec la commande suivante :
      EXEC sys.sp_change_feed_disable_db
      

Si vous essayez de réactiver le flux de modification sur une table pour laquelle la table a été désactivée récemment, une erreur s’affiche. Il s’agit d’un comportement rare.

  • S’applique à : Azure Synapse Link pour Azure SQL Database et SQL Server 2022
  • Problème : lorsque vous essayez d’activer une table qui a été désactivée récemment avec ses métadonnées qui n’ont pas encore été nettoyées et dont l’état est marqué comme DÉSACTIVÉ, une erreur est générée indiquant A table can only be enabled once among all table groups.
  • Résolution : attendez que la procédure système de table désactivée se termine, puis réessayez de réactiver la table.
  • S’applique à : Azure Synapse Link pour Azure SQL Database et SQL Server 2022
  • Problème : pour les bases de données SQL activées avec Azure Synapse Link, lorsque vous utilisez les opérations d’importation/exportation et d’extraction/déploiement SSDT pour importer/configurer une nouvelle base de données, le schéma et l’utilisateur changefeed ne sont pas exclus de la nouvelle base de données. Toutefois, les tables du flux de modification sont ignorées par DaxFX, car elles sont marquées comme is_ms_shipped=1 dans sys.objects et ces objets n’ont jamais été inclus dans les opérations d’importation/exportation et d’extraction/déploiement SSDT. Lors de l’activation d’Azure Synapse Link sur la base de données importée ou déployée, la procédure sys.sp_change_feed_enable_db stockée sur le système échoue si l’utilisateur changefeed et le schéma existent déjà. Ce problème se produit si vous avez créé un utilisateur ou un schéma nommé changefeed qui n’est pas lié à la fonctionnalité de flux de modification Azure Synapse Link.
  • Résolution :
    • Supprimez manuellement le schéma changefeed l’utilisateur changefeed vides. Ensuite, Azure Synapse Link peut être activé avec succès sur la base de données importée ou déployée.
    • Si vous avez défini un schéma ou un utilisateur personnalisé nommé changefeed dans votre base de données qui n’est pas lié à Azure Synapse Link et que vous n’avez pas l’intention d’utiliser Azure Synapse Link pour SQL, il n’est pas nécessaire de supprimer votre schéma ou votre utilisateur changefeed.
    • Si vous avez défini un schéma client ou un utilisateur nommé changefeed dans votre base de données, cette base de données ne peut pas participer à Azure Synapse Link pour SQL.

Étapes suivantes