Limitações e problemas conhecidos com o Link do Azure Synapse para SQL

Este artigo lista as limitações e problemas conhecidos com o Link do Azure Synapse para SQL.

Limitações

As seções a seguir listam as limitações do Link do Azure Synapse para SQL.

Banco de Dados SQL do Azure e SQL Server 2022

  • As tabelas de origem precisam ter chaves primárias.
  • Há suporte apenas para uma réplica primária gravável como a fonte de dados para Link do Azure Synapse para SQL.
  • Não há suporte para os tipos de dados a seguir em chaves primárias nas tabelas de origem.
    • real
    • float
    • hierarchyid
    • sql_variant
    • timestamp
  • O tamanho da linha da tabela de origem não pode ultrapassar 7.500 bytes. Para tabelas em que colunas de comprimento variável são armazenadas fora da linha, um ponteiro de 24 bytes é armazenado no registro principal.
  • Quando as tabelas de origem são inicialmente instantâneos, não há suporte para dados de tabela de origem que contenham dados LOB (objeto grande) com mais de 1 MB de tamanho. Esses tipos de dados LOB incluem: varchar(max), nvarchar(max) e varbinary(max). Um erro é gerado e os dados não são exportados para o Azure Synapse Analytics. Use o procedimento armazenado sp_configure para aumentar o valor máximo configurado para a opção max text repl size, que usa como padrão 64 K. Um valor configurado igual a -1 indica nenhum limite, além do limite imposto pelo tipo de dados.
  • As tabelas habilitadas para o Link do Azure Synapse para SQL podem ter no máximo 1.020 colunas (não 1.024).
  • Embora um banco de dados possa ter vários links habilitados, uma determinada tabela não pode pertencer a vários links.
  • Quando o proprietário de um banco de dados não tiver um logon mapeado, o Link do Azure Synapse para SQL encontra um erro ao habilitar uma conexão de link. O usuário pode definir o proprietário do banco de dados como um usuário válido com o comando ALTER AUTHORIZATION para corrigir esse problema.
  • Se a tabela de origem contiver colunas computadas ou colunas com tipos de dados que não dão suporte a pools de SQL dedicados, as colunas não serão replicadas. As colunas sem suporte incluem as mostradas a seguir.
    • imagem
    • text
    • xml
    • timestamp
    • sql_variant
    • UDT
    • geometria
    • geografia
  • No máximo 5.000 tabelas podem ser adicionadas a uma conexão de link.
  • As operações de DDL (linguagem de definição de dados) da tabela a seguir não são permitidas em tabelas de origem quando elas estão habilitadas para o Link do Azure Synapse para SQL. Todas as outras operações de DDL são permitidas, mas não são replicadas para o Azure Synapse Analytics.
    • Alternar partição
    • Adicionar/remover/alterar coluna
    • Alterar chave primária
    • Remover/truncar tabela
    • Renomear tabela
  • Se a DDL (linguagem de definição de dados) e a DML (linguagem de manipulação de dados) forem executadas em uma transação explícita (entre instruções BEGIN TRANSACTION e END TRANSACTION), ocorrerá uma falha na replicação para tabelas correspondentes na conexão de link.

    Observação

    Se uma tabela for essencial para a consistência transacional no nível da conexão de link, examine o estado da tabela do Link do Azure Synapse na guia Monitoramento.

  • O Link do Azure Synapse para SQL não poderá ser habilitado se um dos recursos a seguir estiver em uso na tabela de origem.
    • Captura de dados de alterações
    • Tabela de histórico temporal
    • Always encrypted
    • Tabelas na memória
    • Índice columnstore
    • Gráfico
  • As tabelas do sistema não podem ser replicadas.
  • A configuração de segurança do banco de dados de origem NÃO será refletida no pool de SQL dedicado de destino.
  • Habilitar o Link do Azure Synapse para SQL cria um novo esquema chamado changefeed. Não use esse esquema, pois ele é reservado para uso do sistema.
  • As tabelas de origem com ordenações sem suporte nos pools de SQL dedicados, como UTF-8 e algumas ordenações em japonês, não podem ser replicadas. Estas são as ordenações com suporte no Pool de SQL do Synapse.
    • Além disso, o Link do Azure Synapse para SQL não dá suporte a algumas ordenações do idioma tailandês:
      • Thai100CaseInsensitiveAccentInsensitiveKanaSensitive
      • Thai100CaseInsensitiveAccentSensitiveSupplementaryCharacters
      • Thai100CaseSensitiveAccentInsensitiveKanaSensitive
      • Thai100CaseSensitiveAccentInsensitiveKanaSensitiveWidthSensitiveSupplementaryCharacters
      • Thai100CaseSensitiveAccentSensitiveKanaSensitive
      • Thai100CaseSensitiveAccentSensitiveSupplementaryCharacters
      • ThaiCaseSensitiveAccentInsensitiveWidthSensitive
    • Atualmente, não há suporte para a ordenação Latin1_General_BIN2, pois há um problema conhecido em que o link não pode ser interrompido nem as tabelas subjacentes podem ser removidas da replicação.
  • Não há suporte para atualizações de linha única (incluindo armazenamento fora da página) de > 370 MB.
  • Quando o Link do Azure Synapse para SQL no Banco de Dados SQL do Azure ou SQL Server 2022 é habilitado, não esqueça que o recurso agressivo de truncamento de log da ADR (Recuperação Acelerada de Banco de Dados) é desabilitado automaticamente. Isso ocorre porque o Link do Azure Synapse para SQL acessa o log de transações do banco de dados. Esse comportamento é semelhante à CDC (Captura de dados de alterações). As transações ativas mantêm o truncamento do log de transações até que a transação seja confirmada e o Link do Azure Synapse para SQL seja atualizado ou anule a transação. Isso pode fazer com que o log de transações seja preenchido mais do que o normal e deve ser monitorado para que o log de transações não seja preenchido.

Banco de Dados SQL do Azure somente

  • Não há suporte para o Link do Azure Synapse para SQL na camada Gratuita, Básica ou Standard com menos de 100 DTUs.
  • Não há suporte para o Link do Azure Synapse para SQL em Instâncias Gerenciadas de SQL.
  • Não há suporte à autenticação da entidade de serviço no BD SQL do Azure de origem. Portanto, ao criar o serviço vinculado do BD SQL do Azure, escolha a autenticação SQL, a UAMI (identidade gerenciada atribuída pelo usuário) ou a SAMI (identidade gerenciada atribuída pelo serviço).
  • Se o servidor lógico do Banco de Dados SQL do Azure tiver um SAMI e uma UAMI configurados, o Link do Azure Synapse usará o SAMI.
  • O Link do Azure Synapse não poderá ser habilitado no banco de dados secundário após um failover de GeoDR se o banco de dados secundário tiver um nome diferente do banco de dados primário.
  • Se você habilitar o Link do Azure Synapse para SQL no seu banco de dados como um usuário do Microsoft Entra, ocorrerá uma falha na PITR (restauração pontual). Ela funciona somente quando você habilita o Link do Azure Synapse para SQL no banco de dados como um usuário de SQL.
  • Se você criar um banco de dados como um usuário do Microsoft Entra e habilitar o Link do Azure Synapse para SQL, um usuário da autenticação SQL (até mesmo a função sysadmin) não poderá desabilitar/alterar o Link do Azure Synapse para artefatos de SQL. No entanto, outro usuário do Microsoft Entra pode habilitar/desabilitar o Link do Azure Synapse para SQL no mesmo banco de dados. De maneira semelhante, se você criar um banco de dados como um usuário da autenticação do SQL, a habilitação/desabilitação do Link do Azure Synapse para SQL como um usuário do Microsoft Entra não funcionará.
  • A replicação de dados entre locatários não é suportada quando um Banco de Dados SQL do Azure e o espaço de trabalho do Azure Synapse estão em locatários separados.

Somente SQL Server 2022

  • O Link do Azure Synapse para SQL não pode ser habilitado em bancos de dados que são fornecedores ou distribuidores de replicação transacional.
  • Com as réplicas assíncronas em um grupo de disponibilidade, as transações precisam ser gravadas em todas as réplicas antes da publicação no Link do Azure Synapse para SQL.
  • Não há suporte para o Link do Azure Synapse para SQL em bancos de dados com o espelhamento de banco de dados habilitado.
  • Não há suporte para a restauração de um Link do Azure Synapse para bancos de dados habilitados para SQL do local para a Instância Gerenciada de SQL do Azure.

Cuidado

Não há suporte para o Link do Azure Synapse para SQL em bancos de dados que também estão usando o Link da Instância Gerenciada de SQL do Azure. Tenha cuidado, pois nesses cenários, quando a instância gerenciada faz a transição para o modo de leitura/gravação, você pode ter problemas de log de transações cheio.

Problemas conhecidos

  • Aplica-se A – Link do Azure Synapse para banco de dados SQL do Azure e SQL Server 2022

  • Problema: quando você exclui um workspace do Azure Synapse Analytics, é possível que os links em execução não sejam interrompidos, o que fará com que o banco de dados de origem considere que o link ainda está funcionando, podendo resultar no truncamento e preenchimento do log de transações.

  • Resolução: há duas resoluções possíveis para essa situação:

    1. Interrompa os links em execução antes de excluir o workspace do Azure Synapse Analytics.
    2. Limpar manualmente a definição do link no banco de dados de origem.
      1. Localize a table_group_id que precisa ser interrompida usando a consulta a seguir.
        SELECT table_group_id, workspace_id, synapse_workgroup_name
        FROM [changefeed].[change_feed_table_groups]
        WHERE synapse_workgroup_name = <synapse workspace name>;
        
      2. Remova cada link identificado usando o procedimento a seguir.
        EXEC sys.sp_change_feed_drop_table_group @table_group_id = <table_group_id>;
        
      3. Opcionalmente, se você estiver desabilitando todos os grupos de tabelas de determinado banco de dados, também poderá desabilitar o feed de alterações no banco de dados com o comando a seguir.
        EXEC sys.sp_change_feed_disable_db;
        

A reabilitação do feed de alterações em uma tabela para a qual ele foi desabilitado recentemente mostrará um erro

  • Aplica-se A – Link do Azure Synapse para banco de dados SQL do Azure e SQL Server 2022
  • Esse é um comportamento incomum.
  • Problema – quando você tenta habilitar uma tabela que foi desabilitada recentemente sem que seus metadados tenham sido limpos e o estado marcado como DESABILITADO, gera um erro informando A table can only be enabled once among all table groups.
  • Resolução – aguarde algum tempo até que o procedimento do sistema de tabela desabilitado seja concluído e tente reabilitar a tabela novamente.
  • Aplica-se A – Link do Azure Synapse para banco de dados SQL do Azure e SQL Server 2022
  • Problema: nos bancos de dados SQL habilitados com o Link do Azure Synapse, quando você usa operações de Importação/Exportação e Extração/Implantação do SSDT para importar/configurar um novo banco de dados, o esquema changefeed e o usuário não são excluídos do novo banco de dados. No entanto, as tabelas do feed de alterações são ignoradas pelo DacFX porque são marcadas como is_ms_shipped=1 em sys.objects e esses objetos nunca são incluídos nas operações de Importação/Exportação e Extração/Implantação do SSDT. Ao habilitar o Link do Azure Synapse no banco de dados importado/implantado, o procedimento armazenado do sistema sys.sp_change_feed_enable_db falha se o usuário e o esquema changefeed já existem. Esse problema também surge se você tiver criado um usuário ou esquema chamado changefeed que não esteja relacionado à funcionalidade do feed de alterações do Link do Azure Synapse.
  • Resolução –
    • Remover manualmente o esquema changefeed e o usuáriochangefeed vazios. Em seguida, o Link do Azure Synapse pode ser habilitado com êxito no banco de dados importado/implantado.
    • Se você definiu um esquema personalizado ou um usuário chamado changefeed em seu banco de dados que não está relacionado ao Link do Azure Synapse e não pretende usar o Link do Azure Synapse para SQL, não é necessário descartar seu esquema ou usuário changefeed.
    • Se você definiu um esquema de cliente ou um usuário chamado changefeed em seu banco de dados, esse banco de dados não pode participar do Link do Azure Synapse para SQL no momento.