Configurar um IR auto-hospedado como proxy para um Azure-SSIS IR

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Este artigo descreve como executar pacotes do SSIS (SQL Server Integration Services) em um Azure-SSIS IR (Azure-SSIS Integration Runtime) com um IR auto-hospedado (runtime de integração auto-hospedada) configurado como um proxy.

Com esse recurso, você pode acessar dados e executar tarefas no local sem precisar unir seu Azure-SSIS IR a uma rede virtual. O recurso é útil quando sua rede corporativa tem uma configuração muito complexa ou uma política muito restritiva para você injetar seu Azure-SSIS IR.

Este recurso só pode ser habilitado na tarefa de Fluxo de Dados do SSIS e em Executar tarefas SQL/Process por enquanto.

Habilitado na tarefa de Fluxo de Dados, esse recurso vai dividi-la em duas tarefas de preparo sempre que relevante:

  • Tarefa de preparo local: essa tarefa executa o componente de fluxo de dados que se conecta a um armazenamento de dados local em seu IR auto-hospedado. Ele move dados do armazenamento de dados local para uma área de preparo no Armazenamento de Blobs do Azure ou vice-versa.
  • Tarefa de preparo na nuvem: essa tarefa executa o componente de fluxo de dados que não se conecta a um armazenamento de dados local em seu Azure-SSIS IR. Ele move dados da área de preparo no Armazenamento de Blobs do Azure para um armazenamento de dados na nuvem ou vice-versa.

Se a tarefa de Fluxo de Dados mover dados no local para a nuvem, a primeira e a segunda tarefas de preparo serão respectivamente tarefa de preparo no local e tarefa de preparo na nuvem. Se a tarefa de Fluxo de Dados mover dados da nuvem para o local, a primeira e a segunda tarefas de preparo serão respectivamente tarefa de preparo na nuvem e tarefa de preparo no local. Se a tarefa de Fluxo de Dados mover dados do local para o local, a primeira e a segunda tarefas de preparo serão ambas tarefas de preparo no local. Se a tarefa de Fluxo de Dados mover dados da nuvem para a nuvem, esse recurso não se aplica.

Habilitado nas tarefas Executar SQL/processo, esse recurso vai executá-las em seu IR auto-hospedado.

Outros benefícios e funcionalidades desse recurso permitem, por exemplo, configurar o IR auto-hospedado em regiões que ainda não têm suporte do Azure-SSIS IR, e permitir o endereço IP estático público do seu IR auto-hospedado no firewall de suas fontes de dados.

Prepare o IR auto-hospedado

Para usar esse recurso, primeiro você cria um data factory e configura um Azure-SSIS IR nele. Se você ainda não tiver feito isso, siga as instruções em Configurar um Azure-SSIS IR.

Em seguida, você configura o IR auto-hospedado no mesmo data factory em que o Azure-SSIS IR está configurado. Para fazer isso, consulte Criar um IR auto-hospedado.

Por fim, você faz o download e instala a versão mais recente do IR auto-hospedado, bem como dos drivers e do runtime adicionais, em seu computador local ou máquina virtual (VM) do Azure, da seguinte maneira:

  • Faça o download e instale a versão mais recente do IR auto-hospedado.

  • Habilite a execução do pacote SSIS no nó de runtime de integração auto-hospedada se a versão do IR auto-hospedada for 5.28.0 ou posterior.

    A propriedade ExecuteSsisPackage foi introduzida recentemente na versão 5.28.0 do IR auto-hospedada. Use a ação de linha de comando do IR auto-hospedada abaixo para habilitar ou desabilitar a execução do pacote SSIS:

    • -EnableExecuteSsisPackage Habilitar a execução do pacote SSIS no nó IR auto-hospedado.

    • -DisableExecuteSsisPackage Desabilitar a execução do pacote SSIS no nó IR auto-hospedado.

    • -GetExecuteSsisPackage

    Os detalhes da linha de comando do IR auto-hospedado referem-se a Configurar um IR auto-hospedado existente por meio do PowerShell local.

    Nó IR auto-hospedado recém-instalado com a versão 5.28.0 ou posterior, a propriedade ExecuteSsisPackage é desabilitada por padrão.

    Nó de IR auto-hospedado existente atualizado para a versão 5.28.0 ou posterior, a propriedade ExecuteSsisPackage está habilitada por padrão

  • Se você usar o OLEDB (Banco de Dados de Vinculação e Incorporação de Objeto), ODBC (Open Database Connectivity) ou conectores ADO.NET em seus pacotes, baixe e instale os drivers relevantes no mesmo computador em que o IR auto-hospedado está instalado, se ainda não tiver feito isso.

    Se você usar a versão anterior do driver OLEDB para SQL Server (SQL Server Native Client [SQLNCLI]), baixe a versão de 64 bits.

    Se você usar a versão mais recente do driver OLEDB para SQL Server (MSOLEDBSQL), baixe a versão de 64 bits.

    Se você usar os drivers OLEDB/ODBC/ADO.NET para outros sistemas de banco de dados, como PostgreSQL, MySQL, Oracle, entre outros, você poderá baixar as versões de 64 bits de seus sites.

  • Se você usar componentes de fluxo de dados do Azure Feature Pack em seus pacotes, faça o download e instale o Azure Feature Pack para SQL Server 2017 no mesmo computador em que o IR auto-hospedado está instalado, caso ainda não tenha feito isso.

  • Se você ainda não fez isso, baixe e instale a versão de 64 bits do runtime do Visual C++ (VC) no mesmo computador em que o IR auto-hospedado está instalado.

Habilitar autenticação do Windows para tarefas locais

Se as tarefas de preparo local e Executar tarefas de SQL/processo no seu IR auto-hospedado exigirem autenticação do Windows, você também deverá configurar o recurso de autenticação do Windows no seu Azure-SSIS IR.

Suas tarefas de preparo local e Executar tarefas de SQL/processo serão invocadas com a conta de serviço do IR auto-hospedado (NT SERVICE\DIAHostService, por padrão) e seus armazenamentos de dados serão acessados com a conta de autenticação do Windows. Ambas as contas exigem que determinadas políticas de segurança sejam atribuídas a elas. No computador do IR auto-hospedado, vá para Política de Segurança Local>Políticas Locais>Atribuição de Direitos de Usuárioe, em seguida, faça o seguinte:

  1. Atribua as políticas Ajustar cotas de memória para um processo e Substituir um token de nível de processo para a conta de serviço de IR auto-hospedado. Isso deve ocorrer automaticamente quando você instala o IR auto-hospedado com a conta de serviço padrão. Caso contrário, atribua essas políticas manualmente. Se você usar uma conta de serviço diferente, atribua as mesmas políticas a ela.

  2. Atribua a política de Logon como um serviço à conta de Autenticação do Windows.

Preparar o serviço vinculado do Armazenamento de Blobs do Azure para processo de preparo

Se você ainda não tiver feito isso, crie um serviço vinculado do Armazenamento de Blobs do Azure na mesma data factory em que o Azure-SSIS IR está configurado. Para fazer isso, confira Criar um serviço vinculado do Azure Data Factory. Faça o seguinte:

  • Para Armazenamento de Dados, selecione Armazenamento de Blobs do Azure.
  • Para Conectar por meio do runtime de integração, selecione AutoResolveIntegrationRuntime (não o IR auto-hospedado), para podermos ignorá-lo e usar o Azure-SSIS IR para buscar credenciais de acesso para o Armazenamento de Blobs do Azure.
  • Para Método de autenticação, escolha Chave de conta, URI SAS, Entidade de serviço, Identidade gerenciada ou Identidade gerenciada atribuída pelo usuário.

Dica

Se a instância do data factory estiver habilitada para Git, um serviço vinculado sem autenticação de chave não será publicado imediatamente, o que significa que você não pode salvar o runtime de integração que depende do serviço vinculado em seu branch de recursos. A autenticação com chave de conta ou SAS URI publicará imediatamente o serviço vinculado.

Dica

Se você selecionar o método de Entidade de Serviço, conceda à sua entidade de serviço pelo menos uma função de Colaborador de Dados de Blob de Armazenamento. Para obter mais informações, consulte o conector do Armazenamento de Blobs do Azure. Se você escolher o método de identidade gerenciada/atribuída pelo usuário de identidade gerenciada, conceda ao sistema especificado/identidade gerenciada atribuída pelo usuário para o ADF uma função adequada para acessar o Armazenamento de Blobs do Azure. Para obter mais informações, veja Acessar o Armazenamento de Blobs do Azure usando a autenticação Microsoft Entra com o sistema especificado/identidade gerenciada atribuída pelo usuário para seu ADF.

Preparar o serviço vinculado do armazenamento de Blobs do Azure para processo de preparo

Configurar um Azure-SSIS IR com o IR auto-hospedado como um proxy

Após preparar seu IR auto-hospedado e o serviço vinculado de Armazenamento de Blobs do Azure para o processo de preparo, você pode configurar o Azure-SSIS IR novo ou existente com o IR auto-hospedado como um proxy no seu portal do data factory ou aplicativo. No entanto, antes de fazer isso, se o Azure-SSIS IR existente já estiver em execução, você poderá parar, editar e reiniciá-lo.

  1. No painel Configuração do runtime de integração, pule as páginas Configurações gerais e Configurações de implantação selecionando o botão Continuar.

  2. Na página Configurações Avançadas, faça o seguinte:

    1. Selecione a caixa de seleção Configure o Runtime de Integração Auto-Hospedada como um proxy para o Azure-SSIS Integration Runtime.

    2. Na lista suspensa Runtime de Integração Auto-Hospedada, selecione o IR auto-hospedado como proxy do Azure-SSIS IR.

    3. Na lista suspensa Serviço vinculado de armazenamento de preparo, selecione o serviço vinculado existente do Armazenamento de Blobs do Azure ou crie um novo para preparo.

    4. Na caixa Caminho de preparo, especifique um contêiner de blob em sua conta do Armazenamento do Microsoft Azure selecionada ou deixe em branco para usar um padrão para preparo.

    5. Selecione o botão Continuar.

    Configurações avançadas com um IR auto-hospedado

Você também pode configurar o Azure-SSIS IR novo ou existente com o IR auto-hospedado como um proxy usando o PowerShell.

$ResourceGroupName = "[your Azure resource group name]"
$DataFactoryName = "[your data factory name]"
$AzureSSISName = "[your Azure-SSIS IR name]"
# Self-hosted integration runtime info - This can be configured as a proxy for on-premises data access 
$DataProxyIntegrationRuntimeName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingLinkedServiceName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingPath = "" # OPTIONAL to configure a proxy for on-premises data access 

# Add self-hosted integration runtime parameters if you configure a proxy for on-premises data access
if(![string]::IsNullOrEmpty($DataProxyIntegrationRuntimeName) -and ![string]::IsNullOrEmpty($DataProxyStagingLinkedServiceName))
{
    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
        -DataFactoryName $DataFactoryName `
        -Name $AzureSSISName `
        -DataProxyIntegrationRuntimeName $DataProxyIntegrationRuntimeName `
        -DataProxyStagingLinkedServiceName $DataProxyStagingLinkedServiceName

    if(![string]::IsNullOrEmpty($DataProxyStagingPath))
    {
        Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
            -DataFactoryName $DataFactoryName `
            -Name $AzureSSISName `
            -DataProxyStagingPath $DataProxyStagingPath
    }
}
Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -Force

Habilitar pacotes do SSIS para usar um proxy

Usando o SSDT mais recente como a extensão de Projetos do SSIS para Visual Studio ou um instalador autônomo, você pode encontrar uma nova propriedade ConnectByProxy nos gerenciadores de conexões para componentes de fluxo de dados com suporte e propriedade ExecuteOnProxy em Executar tarefas de SQL/processo.

Quando cria novos pacotes que contêm tarefas de Fluxo de Dados com componentes que acessam dados no local, você pode habilitar a propriedade ConnectByProxy definindo-a como True no painel Propriedades dos gerenciadores de conexões relevantes.

Quando cria novos pacotes que contêm Executar tarefas de SQL/processo que são executadas no local, você pode habilitar a propriedade ExecuteOnProxy definindo-a como True no painel Propriedades das próprias tarefas relevantes.

Habilitar a propriedade ConnectByProxy/ExecuteOnProxy

Você também pode habilitar as propriedades ConnectByProxy/ExecuteOnProxy ao executar pacotes existentes, sem precisar alterá-las uma por uma manualmente. Há duas opções:

  • Opção A: Abra, recompile e reimplante o projeto que contém os pacotes com os SSDT mais recentes para executar em seu Azure-SSIS IR. Você também pode habilitar a propriedade ConnectByProxy definindo-a como True para os gerenciadores de conexões relevantes que aparecem na guia Gerenciadores de Conexões da janela pop-up Executar Pacote quando você executa pacotes do SSMS.

    Habilitar ConnectByProxy/ExecuteOnProxy property2

    Você também pode habilitar a propriedade ConnectByProxy definindo-a como True para os gerenciadores de conexões relevantes que aparecem na guia Gerenciadores de Conexões da atividade Executar Pacote SSIS quando você executa pacotes em pipelines do Data Factory.

    Habilitar ConnectByProxy/ExecuteOnProxy property3

  • Opção B: Reimplante o projeto que contém esses pacotes para executar no SSIS IR. Em seguida, você pode habilitar as propriedades ConnectByProxy/ExecuteOnProxy fornecendo seus caminhos de propriedade, \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy], e configurando-as como True como substituições de propriedade na guia Avançado da janela pop-up Executar Pacote quando você executa pacotes do SSMS.

    Habilitar ConnectByProxy/ExecuteOnProxy property4

    Você também pode habilitar as propriedades ConnectByProxy/ExecuteOnProxy fornecendo seus caminhos de propriedade, \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy], e configurando-as como True como substituições de propriedade na guia Substituições de Propriedade da atividade Executar Pacote SSIS quando você executa pacotes em pipelines do Data Factory.

    Habilitar ConnectByProxy/ExecuteOnProxy property5

Depurar as tarefas locais e as tarefas de preparo na nuvem

Em seu IR auto-hospedado, você pode encontrar os logs de runtime na pasta C:\ProgramData\SSISTelemetry e os logs de execução de tarefas de preparo local e Executar tarefas do SQL/processo na pasta C:\ProgramData\SSISTelemetry\ExecutionLog. Você pode encontrar os logs de execução das tarefas de preparo na nuvem em seu SSISDB, caminhos do arquivo de log especificados ou no Azure Monitor, dependendo se você armazena seus pacotes no SSISDB, habilita a Integração de Azure Monitor, etc. Você também pode encontrar as IDs exclusivas das tarefas de preparo local nos logs de execução das tarefas de preparo na nuvem.

ID exclusiva da primeira tarefa de preparo

Se você tiver gerado tíquetes de suporte ao cliente, você pode selecionar o botão Enviar logs na guia Diagnóstico do Gerenciador de Configurações do Microsoft Integration Runtime que está instalado em seu IR auto-hospedado para enviar logs de operação/execução recentes para investigação.

Cobrança das tarefas locais e tarefas de preparo na nuvem

As tarefas de preparo local e Executar tarefas do SQL/processo que são executadas em seu IR auto-hospedado são cobradas separadamente, da mesma forma que quaisquer atividades de movimentação de dados executadas em um IR auto-hospedado são cobradas. Isso é especificado no artigo Preço do pipeline de dados do Azure Data Factory.

As tarefas de preparo na nuvem que são executadas no Azure-SSIS IR não são cobradas separadamente, mas o Azure-SSIS IR em execução é cobrado conforme especificado no artigo de Preços do Azure-SSIS IR.

Impor TLS 1.2

Se você precisar acessar os armazenamentos de dados que foram configurados para usar apenas o protocolo de rede mais seguro/criptografia mais forte (TLS 1.2), incluindo o Armazenamento de Blobs do Azure para preparação, você deverá habilitar apenas o TLS 1.2 e desabilitar versões mais antigas do SSL/TLS ao mesmo tempo em seu IR auto-hospedado. Para fazer isso, você pode baixar e executar o script main.cmd em https://github.com/Azure/Azure-DataFactory/tree/main/SamplesV2/SQLServerIntegrationServices/publicpreview/CustomSetupScript/UserScenarios/TLS%201.2.

Limitações atuais

  • Somente os componentes de fluxo de dados internos/pré-instalados no Azure-SSIS IR Standard Edition, exceto os componentes Hadoop/HDFS/DQS, têm suporte no momento, confira todos componentes internos/pré-instalados no Azure-SSIS IR.
  • Somente componentes de fluxo de dados personalizados/de terceiros gravados em código gerenciado (.NET Framework) têm suporte atualmente - aqueles escritos no código nativo (C++) não têm suporte atualmente.
  • No momento, não há suporte para a alteração de valores de variáveis em tarefas de preparo local e na nuvem.
  • A alteração de valores de variáveis do objeto de tipo em tarefas de preparo local não será refletida em outras tarefas.
  • No momento, não há suporte para ParameterMapping na origem OLEDB. Como alternativa, use o Comando SQL da Variável como AccessMode e use Expression para inserir variáveis/parâmetros em um comando SQL. A título de ilustração, consulte o pacote ParameterMappingSample.dtsx que pode ser encontrado na pasta SelfHostedIRProxy/Limitations do nosso contêiner de blob de versão preliminar. Usando o Gerenciador de Armazenamento do Microsoft Azure, você pode se conectar ao nosso contêiner de blob de versão preliminar inserindo o URI de SAS acima.

Depois de configurar o IR auto-hospedado como um proxy para o Azure-SSIS IR, você poderá implantar e executar seus pacotes para acessar dados e/ou executar instruções/processos SQL no local como atividades de Execução de Pacote SSIS nos pipelines do Data Factory. Para saber como, consulte Execute seus pacotes SSIS como atividades de execução de pacote SSIS em pipelines Data Factory. Confira também nossos blogs: Executar qualquer SQL em qualquer lugar com três etapas fáceis usando o SSIS no Azure Data Factory e Executar qualquer processo em qualquer lugar com três etapas fáceis usando o SSIS no Azure Data Factory.