Configurare un runtime di integrazione self-hosted come proxy per un Azure-SSIS IR

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

Questo articolo descrive come eseguire pacchetti di SQL Server Integration Services (SSIS) in Azure-SSIS Integration Runtime (Azure-SSIS IR) con un runtime di integrazione self-hosted (runtime di integrazione self-hosted) configurato come proxy.

Con questa funzionalità è possibile accedere ai dati ed eseguire attività in locale senza dover aggiungere Azure-SSIS Integration Runtime a una rete virtuale. La funzionalità è utile quando la rete aziendale ha una configurazione troppo complessa o un criterio troppo restrittivo per l'inserimento di Azure-SSIS Integration Runtime.

Al momento questa funzionalità può essere abilitata solo nell'attività Flusso di dati SSIS e le attività Esegui SQL/processi.

Abilitata nell'attività Flusso di dati, questa funzionalità verrà suddivisa in due attività di gestione temporanea ogni volta che si applicano:

  • Attività di gestione temporanea locale: questa attività esegue il componente del flusso di dati che si connette a un archivio dati locale nel runtime di integrazione self-hosted. Sposta i dati dall'archivio dati locale in un'area di gestione temporanea nell'Archiviazione BLOB di Azure o viceversa.
  • Attività di gestione temporanea cloud: questa attività esegue il componente del flusso di dati che non si connette a un archivio dati locale in Azure-SSIS Integration Runtime. Sposta i dati dall'area di gestione temporanea nell'Archiviazione BLOB di Azure a un archivio dati cloud o viceversa.

Se l'attività Flusso di dati sposta i dati dall'ambiente locale al cloud, la prima e la seconda attività di gestione temporanea saranno rispettivamente attività locali e di gestione temporanea cloud. Se l'attività Flusso di dati sposta i dati dal cloud all'ambiente locale, la prima e la seconda attività di gestione temporanea saranno rispettivamente attività di gestione temporanea cloud e locali. Se l'attività Flusso di dati sposta i dati dall'ambiente locale all'ambiente locale, la prima e la seconda attività di gestione temporanea saranno entrambe attività di gestione temporanea locali. Se l'attività Flusso di dati sposta i dati dal cloud al cloud, questa funzionalità non è applicabile.

Abilitata nelle attività Esegui SQL/processi, questa funzionalità verrà eseguita nel runtime di integrazione self-hosted.

Altri vantaggi e funzionalità di questa funzionalità consentono, ad esempio, di configurare il runtime di integrazione self-hosted nelle aree non ancora supportate da Azure-SSIS Integration Runtime e di consentire l'indirizzo IP statico pubblico del runtime di integrazione self-hosted nel firewall delle origini dati.

Preparare il runtime di integrazione self-hosted

Per usare questa funzionalità, creare prima una data factory e configurare un runtime di integrazione SSIS di Azure. Se non è già stato fatto, seguire le istruzioni riportate in Configurare Azure-SSIS Integration Runtime.

Si configura quindi il runtime di integrazione self-hosted nella stessa data factory in cui è configurato Azure-SSIS Integration Runtime. A tale scopo, vedere Creare un runtime di integrazione self-hosted.

Infine, è possibile scaricare e installare la versione più recente del runtime di integrazione self-hosted, nonché i driver e il runtime aggiuntivi, nel computer locale o nella macchina virtuale di Azure, come indicato di seguito:

  • Scaricare e installare la versione più recente del runtime di integrazione self-hosted.

  • Abilitare l'esecuzione di pacchetti SSIS nel nodo del runtime di integrazione self-hosted se la versione del runtime di integrazione self-hosted è 5.28.0 o successiva.

    La proprietà ExecuteSsisPackage è stata introdotta dalla versione 5.28.0 del runtime di integrazione self-hosted. Usare l'azione della riga di comando del runtime di integrazione self-hosted seguente per abilitare o disabilitare l'esecuzione del pacchetto SSIS:

    • -EnableExecuteSsisPackage Abilitare l'esecuzione del pacchetto SSIS nel nodo del runtime di integrazione self-hosted.

    • -DisableExecuteSsisPackage Disabilita l'esecuzione del pacchetto SSIS nel nodo del runtime di integrazione self-hosted.

    • -GetExecuteSsisPackage

    I dettagli della riga di comando del runtime di integrazione self-hosted fanno riferimento a Configurare un runtime di integrazione self-hosted esistente tramite PowerShell locale.

    Il nodo del runtime di integrazione self-hosted appena installato con la versione 5.28.0 o successiva, la proprietà ExecuteSsisPackage è disabilitata per impostazione predefinita.

    Il nodo del runtime di integrazione self-hosted esistente è stato aggiornato alla versione 5.28.0 o successiva, la proprietà ExecuteSsisPackage è abilitata per impostazione predefinita

  • Se si usano i connettori OLEDB (Object Linking and Embedding Database), Open Database Connectivity (ODBC) o ADO.NET nei pacchetti, scaricare e installare i driver pertinenti nello stesso computer in cui è installato il runtime di integrazione self-hosted, se non è già stato fatto.

    Se si usa la versione precedente del driver OLEDB per SQL Server (SQL Server Native Client [SQLNCLI]), scaricare la versione a 64 bit.

    Se si usa la versione più recente del driver OLEDB per SQL Server (MSOLEDBSQL), scaricare la versione a 64 bit.

    Se si usano driver OLEDB/ODBC/ADO.NET per altri sistemi di database, ad esempio PostgreSQL, MySQL, Oracle e così via, è possibile scaricare le versioni a 64 bit dai rispettivi siti Web.

  • Se si usano i componenti del flusso di dati di Azure Feature Pack nei pacchetti, scaricare e installare Il Feature Pack di Azure per SQL Server 2017 nello stesso computer in cui è installato il runtime di integrazione self-hosted, se non è già stato fatto.

  • Se non è già stato fatto, scaricare e installare la versione a 64 bit del runtime di Visual C++ (VC) nello stesso computer in cui è installato il runtime di integrazione self-hosted.

Abilitare l'autenticazione di Windows per le attività locali

Se le attività di gestione temporanea locali e le attività Esegui SQL/processi nel runtime di integrazione self-hosted richiedono l'autenticazione di Windows, è necessario configurare anche la funzionalità di autenticazione di Windows in Azure-SSIS Integration Runtime.

Le attività di gestione temporanea locale e le attività Esegui SQL/processi verranno richiamate con l'account del servizio runtime di integrazione self-hosted (NT SERVICE\DIAHostService, per impostazione predefinita) e gli archivi dati saranno accessibili con l'account di autenticazione di Windows. Entrambi gli account richiedono l'assegnazione di determinati criteri di sicurezza. Nel computer del runtime di integrazione self-hosted passare a Criteri di sicurezza locali>Criteri locali>Assegnazione diritti utente, quindi eseguire le operazioni seguenti:

  1. Assegnare all'account del servizio runtime di integrazione self-hosted i criteri Regolare le quote di memoria di un processo e Sostituire un token a livello di processo. Questa operazione dovrebbe verificarsi automaticamente quando si installa il runtime di integrazione self-hosted con l'account del servizio predefinito. In caso contrario, assegnare questi criteri manualmente. Se si usa un account di servizio diverso, assegnarvi gli stessi criteri.

  2. Assegnare il criterio Accesso come servizio all'account di autenticazione di Windows.

Preparare il servizio collegato Archiviazione BLOB di Azure per la gestione temporanea

Se non è già stato fatto, creare un servizio collegato Archiviazione BLOB di Azure nella stessa data factory in cui è configurato Azure-SSIS Integration Runtime. Per fare ciò, vedere Crea un servizio collegato Azure Data Factory. Assicurarsi di eseguire le operazioni seguenti:

  • Alla voce Archivio dati selezionare Archiviazione BLOB di Azure.
  • Alla voce Connetti tramite runtime di integrazione selezionare AutoResolveIntegrationRuntime (non il runtime di integrazione self-hosted, che è possibile ignorare), quindi usare Azure-SSIS Integration Runtime per recuperare le credenziali di accesso dell'Archiviazione BLOB di Azure.
  • Per Metodo di autenticazione, selezionare Chiave dell'account, URI di firma di accesso condiviso, Entità servizio, Identità gestita o Identità gestita assegnata dall'utente.

Suggerimento

Se l'istanza di Data Factory è abilitata per Git, un servizio collegato senza autenticazione della chiave non verrà pubblicato immediatamente, il che significa che non è possibile salvare il runtime di integrazione che dipende dal servizio collegato nel ramo di funzionalità. L'autenticazione con chiave dell'account o URI di firma di accesso condiviso pubblicherà immediatamente il servizio collegato.

Suggerimento

Se si seleziona il metodo Entità servizio, concedere all'entità servizio almeno un ruolo Collaboratore ai dati dei BLOB di archiviazione. Per altre informazioni, vedere Connettore di Archiviazione BLOB di Azure. Se si seleziona il metodo Identità gestita/Identità gestita assegnata dall'utente, concedere all'identità gestita assegnata dall'utente o dal sistema specificato per ADF un ruolo appropriato per accedere all'Archiviazione BLOB di Azure. Per altre informazioni, vedere Accedere ad Archiviazione BLOB di Azure usando l'autenticazione di Microsoft Entra con l'identità gestita assegnata dal sistema o dall'utente specificato per ADF.

Preparare il servizio collegato all'Archiviazione BLOB di Azure per la gestione temporanea

Configurare Azure-SSIS Integration Runtime con il runtime di integrazione self-hosted come proxy

Dopo aver preparato il runtime di integrazione self-hosted e il servizio collegato Archiviazione BLOB di Azure per la gestione temporanea, è ora possibile configurare il runtime di integrazione SSIS nuovo o esistente con il runtime di integrazione self-hosted come proxy nel portale o nell'app di Data Factory. Prima di eseguire questa operazione, tuttavia, se Azure-SSIS Integration Runtime esistente è già in esecuzione, è possibile arrestare, modificare e quindi riavviarlo.

  1. Nel riquadro Configurazione runtime di integrazione ignorare le pagine Impostazioni generali e Impostazioni distribuzione selezionando il pulsante Continua.

  2. Nella pagina Impostazioni avanzate eseguire le operazioni seguenti:

    1. Selezionare la casella di controllo Configura il runtime di integrazione self-hosted come proxy per l'istanza di Azure-SSIS Integration Runtime.

    2. Nell'elenco a discesa Runtime di integrazione self-hosted selezionare il runtime di integrazione self-hosted esistente come proxy per Azure-SSIS IR.

    3. Nell'elenco a discesa Servizio collegato archiviazione di gestione temporanea selezionare il servizio collegato ad Archiviazione BLOB di Azure esistente o crearne uno nuovo per la gestione temporanea.

    4. Nella casella Percorso di gestione temporanea specificare un contenitore BLOB nell'account di archiviazione di Azure selezionato o lasciarlo vuoto per usare un contenitore predefinito per la gestione temporanea.

    5. Selezionare il pulsante Continua.

    Impostazioni avanzate con un runtime di integrazione self-hosted

È anche possibile configurare Azure-SSIS Integration Runtime nuovo o esistente con il runtime di integrazione self-hosted come proxy usando 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

Abilitare i pacchetti SSIS per l'uso di un proxy

Usando la versione più recente di SSDT come estensione progetti SSIS per Visual Studio o un programma di installazione autonomo, è possibile trovare una nuova ConnectByProxy proprietà nelle gestioni connessioni per i componenti del flusso di dati supportati e la proprietà ExecuteOnProxy nelle attività Esegui SQL/processi.

Quando si progettano nuovi pacchetti contenenti attività Flusso di dati con componenti che accedono ai dati locali, è possibile abilitare la proprietà ConnectByProxy impostandola su True nel riquadro Proprietà delle gestioni di connessione pertinenti.

Quando si progettano nuovi pacchetti contenenti le attività Esegui SQL/processi in locale, è possibile abilitare la proprietà ExecuteOnProxy impostandola su True nel riquadro Proprietà delle attività pertinenti.

Abilitare la proprietà ConnectByProxy/ExecuteOnProxy

È anche possibile abilitare le proprietà ConnectByProxy/ExecuteOnProxy quando si eseguono pacchetti esistenti, senza doverli modificare manualmente uno alla volta. Sono disponibili due opzioni:

  • Opzione A: aprire, ricompilare e ridistribuire il progetto contenente tali pacchetti con la versione più recente di SSDT da eseguire nel proprio Azure-SSIS Integration Runtime. È quindi possibile abilitare la proprietà ConnectByProxy impostandola su True per le gestioni di connessione pertinenti visualizzate nella scheda Gestioni connessione della finestra popupEsegui pacchetto quando si eseguono pacchetti da SSMS.

    Abilitare la proprietà ConnectByProxy/ExecuteOnProxy2

    È anche possibile abilitare la proprietà ConnectByProxy impostandola su True per le gestioni di connessione pertinenti visualizzate nella scheda Gestioni connessione dell'attività Esegui pacchetto SSIS quando si eseguono pacchetti nelle pipeline di Data Factory.

    Enable ConnectByProxy/ExecuteOnProxy property3

  • Opzione B: ridistribuire il progetto contenente tali pacchetti da eseguire nel runtime di integrazione SSIS. È quindi possibile abilitare le proprietà ConnectByProxy/ExecuteOnProxy specificando i relativi percorsi delle proprietà, \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy], e impostandoli su True come override delle proprietà nella scheda Avanzate della finestra popup di Esegui pacchetto quando si eseguono pacchetti da SSMS.

    Enable ConnectByProxy/ExecuteOnProxy property4

    È anche possibile abilitare le proprietà ConnectByProxy/ExecuteOnProxy specificando i relativi percorsi delle proprietà, \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy], e impostandoli su True come override delle proprietà nella scheda Override proprietà dell'attività Esegui pacchetto SSIS quando si eseguono pacchetti nelle pipeline di Data Factory.

    Abilitare la proprietà ConnectByProxy/ExecuteOnProxy5

Eseguire il debug delle attività locali e delle attività di gestione temporanea cloud

Nel runtime di integrazione self-hosted è possibile trovare i log di runtime nella cartella C:\ProgramData\SSISTelemetry e i log di esecuzione delle attività di gestione temporanea locali e delle attività Esegui SQL/processi nella cartella C:\ProgramData\SSISTelemetry\ExecutionLog. È possibile trovare i log di esecuzione delle attività di gestione temporanea del cloud nel database SSISDB, i percorsi dei file di registrazione specificati o Monitoraggio di Azure, a seconda che i pacchetti siano archiviati in SSISDB; è possibile abilitare l'integrazione di Monitoraggio di Azure e così via. È anche possibile trovare gli ID univoci delle attività di gestione temporanea locali nei log di esecuzione delle attività di gestione temporanea cloud.

ID univoco della prima attività di gestione temporanea

Se sono stati generati ticket di supporto clienti, è possibile selezionare il pulsante Invia log nella scheda Diagnostica di Microsoft Integration Runtime Configuration Manager installato nel runtime di integrazione self-hosted affinché vengano inviati i log di operazione/esecuzione recenti per l'analisi.

Fatturazione per le attività locali e le attività di gestione temporanea cloud

Le attività di gestione temporanea locali e le attività Esegui SQL/processi eseguite nel runtime di integrazione self-hosted vengono fatturate separatamente, esattamente come vengono fatturate tutte le attività di spostamento dati eseguite in un runtime di integrazione self-hosted. Questa opzione è specificata nell'articolo Prezzi della pipeline di dati di Azure Data Factory.

Le attività di gestione temporanea cloud eseguite in Azure-SSIS Integration Runtime non vengono fatturate separatamente, ma Azure-SSIS Integration Runtime in esecuzione viene fatturato come specificato nell'articolo Prezzi di Azure-SSIS IR.

Applicare TLS 1.2

Se è necessario accedere agli archivi dati configurati per usare solo il protocollo di rete più sicuro/crittografia più sicuro (TLS 1.2), incluso l'Archiviazione BLOB di Azure per la gestione temporanea, è necessario abilitare solo TLS 1.2 e disabilitare contemporaneamente le versioni SSL/TLS precedenti nel runtime di integrazione self-hosted. A tale scopo è possibile scaricare ed eseguire lo script main.cmd da https://github.com/Azure/Azure-DataFactory/tree/main/SamplesV2/SQLServerIntegrationServices/publicpreview/CustomSetupScript/UserScenarios/TLS%201.2.

Limitazioni correnti

  • Sono attualmente supportati solo i componenti del flusso di dati predefiniti/preinstallati in Azure-SSIS IR Standard Edition, ad eccezione dei componenti Hadoop/Hadoop Distributed File System/DQS. Vedere tutti i componenti predefiniti/preinstallati in Azure-SSIS IR.
  • Attualmente sono supportati solo i componenti del flusso di dati personalizzati/di terze parti scritti in codice gestito (.NET Framework). Tali componenti scritti in codice nativo (C++) non sono attualmente supportati.
  • La modifica dei valori delle variabili nelle attività di gestione temporanea locale e cloud non è attualmente supportata.
  • La modifica dei valori delle variabili di tipo oggetto nelle attività di gestione temporanea locali non verrà riflessa in altre attività.
  • ParameterMapping nell'origine OLEDB non è attualmente supportato. Come soluzione alternativa, usare il comando SQL da variabile come AccessMode e usare Expression per inserire variabili/parametri in un comando SQL. Come un'illustrazione, vedere il pacchetto ParameterMappingSample.dtsx disponibile nella cartella SelfHostedIRProxy/Limitations del contenitore BLOB di anteprima pubblica. Usando Azure Storage Explorer, è possibile connettersi al contenitore BLOB di anteprima pubblica immettendo l'URI di firma di accesso condiviso precedente.

Dopo aver configurato il runtime di integrazione self-hosted come proxy per Azure-SSIS Integration Runtime, è possibile distribuire ed eseguire i pacchetti per accedere ai dati ed eseguire istruzioni/processi SQL in locale come attività Esegui pacchetto SSIS nelle pipeline di Data Factory. Per informazioni su come procedere, vedere Eseguire pacchetti SSIS come attività Esegui pacchetto SSIS nelle pipeline di Data Factory. Vedere anche i blog: Eseguire qualsiasi SQL ovunque in 3 semplici passaggi con SSIS in Azure Data Factory ed Eseguire qualsiasi processo ovunque in 3 semplici passaggi con SSIS in Azure Data Factory.