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

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

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

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

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

Esse recurso só pode ser habilitado em SSIS Data Flow Task e Execute SQL/Process Tasks por enquanto.

Ativado na Tarefa de Fluxo de Dados, esse recurso o dividirá em duas tarefas de preparo quando aplicável:

  • Tarefa de preparo local: esta 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 em seu Armazenamento de Blobs do Azure ou vice-versa.
  • Tarefa de preparo na nuvem: esta tarefa executa o componente de fluxo de dados que não se conecta a um armazenamento de dados local no IR do Azure-SSIS. Ele move dados da área de preparo em seu Armazenamento de Blob do Azure para um armazenamento de dados na nuvem ou vice-versa.

Se sua Tarefa de Fluxo de Dados mover dados do local para a nuvem, a primeira e a segunda tarefas de preparo serão tarefas locais e de preparo na nuvem, respectivamente. Se a sua Tarefa de Fluxo de Dados mover dados da nuvem para o local, a primeira e a segunda tarefas de preparo serão tarefas de preparo na nuvem e no local, respectivamente. Se sua 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 locais. Se a sua Tarefa de Fluxo de Dados mover dados da nuvem para a nuvem, esse recurso não será aplicável.

Ativado em Executar SQL/Tarefas de Processo, esse recurso irá executá-los em seu IR auto-hospedado.

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

Preparar o IR auto-hospedado

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

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

Finalmente, você baixa e instala a versão mais recente do IR auto-hospedado, bem como os drivers adicionais e o tempo de execução, em sua máquina local ou máquina virtual (VM) do Azure, da seguinte maneira:

  • Baixe e instale a versão mais recente do IR auto-hospedado.

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

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

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

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

    • -GetExecuteSsisPackage

    Os detalhes da linha de comando de 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 versão 5.28.0 ou posterior, a propriedade ExecuteSsisPackage está desabilitada por padrão.

    Nó 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 OLEDB (Object Linking and Embedding Database), ODBC (Open Database Connectivity) ou conectores ADO.NET em seus pacotes, baixe e instale os drivers relevantes na mesma máquina 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 drivers OLEDB/ODBC/ADO.NET para outros sistemas de banco de dados, como PostgreSQL, MySQL, Oracle e assim por diante, 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, baixe e instale o Azure Feature Pack para SQL Server 2017 na mesma máquina em que seu IR auto-hospedado está instalado, se você ainda não tiver feito isso.

  • Se você ainda não tiver feito isso, baixe e instale a versão de 64 bits do tempo de execução do Visual C++ (VC) na mesma máquina onde seu IR auto-hospedado está instalado.

Habilitar a autenticação do Windows para tarefas locais

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

Suas tarefas de preparo local e Executar SQL/Tarefas de Processo serão invocadas com a conta de serviço de IR auto-hospedada (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. Na máquina de IR auto-hospedada, vá para Atribuição de Direitos de Usuário de Políticas>Locais de Política>de Segurança Local e 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 à conta de serviço de IR auto-hospedada. Isso deve ocorrer automaticamente quando você instala seu 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 Fazer logon como serviço à conta de Autenticação do Windows.

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

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

  • Para Armazenamento de Dados, selecione Armazenamento de Blob do Azure.
  • Para Conectar via tempo de execução de integração, selecione AutoResolveIntegrationRuntime (não seu IR auto-hospedado), para que possamos ignorá-lo e usar seu IR do Azure-SSIS em vez disso para buscar credenciais de acesso para seu Armazenamento de Blob do Azure.
  • Para Método de autenticação, selecione Chave de conta, URI SAS, Entidade de serviço, Identidade gerenciada ou Identidade gerenciada atribuída pelo usuário.

Gorjeta

Se sua instância de 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 poderá salvar o tempo de execução de integração que depende do serviço vinculado em sua ramificação de recurso. A autenticação com chave de conta ou URI SAS publicará imediatamente o serviço vinculado.

Gorjeta

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

Prepare the Azure Blob storage-linked service for staging

Configurar um IR do Azure-SSIS com seu IR auto-hospedado como um proxy

Depois de preparar seu IR auto-hospedado e o serviço vinculado do Armazenamento de Blob do Azure para preparação, agora você pode configurar seu IR do Azure-SSIS novo ou existente com o IR auto-hospedado como um proxy em seu portal ou aplicativo de fábrica de dados. Antes de fazer isso, porém, se o IR existente do Azure-SSIS já estiver em execução, você poderá parar, editar e reiniciá-lo.

  1. No painel de configuração do tempo de execução da integração, ignore 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. Marque a caixa de seleção Configurar o Tempo de Execução de Integração Auto-Hospedado como um proxy para seu Tempo de Execução de Integração do Azure-SSIS.

    2. Na lista suspensa Self-Hosted Integration Runtime, selecione seu IR auto-hospedado existente como um proxy para o IR do Azure-SSIS.

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

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

    5. Selecione o botão Continuar .

    Advanced settings with a self-hosted IR

Você também pode configurar seu IR do Azure-SSIS 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 SSIS para usar um proxy

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

Ao criar novos pacotes contendo Tarefas de Fluxo de Dados com componentes que acessam dados no local, você pode habilitar a propriedade definindo-a ConnectByProxy como True no painel Propriedades dos gerenciadores de conexões relevantes.

Ao criar novos pacotes contendo Executar SQL/Processar Tarefas executadas localmente, você pode habilitar a ExecuteOnProxy propriedade definindo-a como True no painel Propriedades das próprias tarefas relevantes.

Enable ConnectByProxy/ExecuteOnProxy property

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

  • Opção A: Abra, reconstrua e reimplante o projeto que contém esses pacotes com o SSDT mais recente para ser executado em seu IR do Azure-SSIS. Em seguida, você pode habilitar a propriedade definindo-a ConnectByProxy como True para os gerenciadores de conexões relevantes que aparecem na guia Gerenciadores de Conexões da janela pop-up Executar Pacote quando estiver executando pacotes do SSMS.

    Enable ConnectByProxy/ExecuteOnProxy property2

    Você também pode habilitar a propriedade 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ê estiver executando pacotes em pipelines do Data Factory.ConnectByProxy

    Enable ConnectByProxy/ExecuteOnProxy property3

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

    Enable ConnectByProxy/ExecuteOnProxy property4

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

    Enable 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 tempo de execução na pasta C:\ProgramData\SSISTelemetry e os logs de execução de tarefas de preparo locais e Executar tarefas SQL/Process na pasta C:\ProgramData\SSISTelemetry\ExecutionLog. Você pode encontrar os logs de execução de tarefas de preparo na nuvem em seu SSISDB, caminhos de arquivo de log especificados ou Azure Monitor, dependendo se você armazena seus pacotes no SSISDB, habilita a integração do Azure Monitor, etc. Você também pode encontrar as IDs exclusivas de tarefas de preparo locais nos logs de execução de tarefas de preparo na nuvem.

Unique ID of the first staging task

Se você gerou tíquetes de suporte ao cliente, pode selecionar o botão Enviar logs na guia Diagnóstico do Microsoft Integration Runtime Configuration Manager instalado em seu IR auto-hospedado para enviar logs de operação/execução recentes para que possamos investigar.

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

As tarefas de preparo local e Executar SQL/Tarefas de processo que são executadas em seu IR auto-hospedado são cobradas separadamente, assim como todas as atividades de movimentação de dados executadas em um IR auto-hospedado são cobradas. Isso é especificado no artigo de preços do pipeline de dados do Azure Data Factory.

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

Impor TLS 1.2

Se você precisar acessar armazenamentos de dados que foram configurados para usar apenas a criptografia mais forte/protocolo de rede mais seguro (TLS 1.2), incluindo seu Armazenamento de Blob do Azure para preparação, deverá habilitar apenas o TLS 1.2 e desabilitar versões SSL/TLS mais antigas ao mesmo tempo em seu IR auto-hospedado. Para fazer isso, você pode baixar e executar o script main.cmd que fornecemos na pasta CustomSetupScript/UserScenarios/TLS 1.2 do nosso contêiner de blob de visualização pública. Usando o Gerenciador de Armazenamento do Azure, você pode se conectar ao nosso contêiner de blob de visualização pública inserindo o seguinte URI SAS:

https://ssisazurefileshare.blob.core.windows.net/publicpreview?sp=rl&st=2020-03-25T04:00:00Z&se=2025-03-25T04:00:00Z&sv=2019-02-02&sr=c&sig=WAD3DATezJjhBCO3ezrQ7TUZ8syEUxZZtGIhhP6Pt4I%3D

Limitações atuais

  • Apenas os componentes de fluxo de dados que são internos/pré-instalados no Azure-SSIS IR Standard Edition, exceto componentes Hadoop/HDFS/DQS, são suportados no momento, consulte todos os componentes internos/pré-instalados no IR do Azure-SSIS.
  • Apenas componentes de fluxo de dados personalizados/de terceiros que são escritos em código gerenciado (.NET Framework) são suportados atualmente - aqueles escritos em código nativo (C++) não são suportados no momento.
  • No momento, não há suporte para a alteração de valores de variáveis em tarefas locais e de preparo na nuvem.
  • A alteração de valores variáveis de objeto de tipo em tarefas de preparo local não será refletida em outras tarefas.
  • ParameterMapping no código-fonte OLEDB não é suportado no momento. Como solução alternativa, use SQL Command From Variable como AccessModee use Expression para inserir suas variáveis/parâmetros em um comando SQL. Como ilustração, consulte o pacote ParameterMappingSample.dtsx que pode ser encontrado na pasta SelfHostedIRProxy/Limitations do nosso contêiner de blob de visualização pública. Usando o Gerenciador de Armazenamento do Azure, você pode se conectar ao nosso contêiner de blob de visualização pública inserindo o URI SAS acima.

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