Condividi tramite


Configurare un runtime di integrazione self-hosted come proxy per 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) su un Azure-SSIS Integration Runtime (Azure-SSIS IR) con un runtime di integrazione self-hosted (self-hosted IR) 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 nell'attività Esegui SQL/elaborazione.

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 in Archiviazione BLOB di Azure o viceversa.
  • Attività di gestione temporanea del cloud: questa attività esegue il componente del flusso di dati che non si connette a un archivio dati locale in Azure-SSIS IR. 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 staging saranno rispettivamente attività di staging on-premise e attività di staging cloud. Se l'attività Flusso di dati sposta i dati dal cloud all'ambiente locale, la prima e la seconda fase di staging saranno rispettivamente quella cloud e quella locale. Se l'attività di flusso di dati sposta i dati da un ambiente locale a un altro, allora 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 per le attività Esegui SQL/Esegui processo, questa funzionalità le eseguirà 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 utilizzare questa funzionalità, creare innanzitutto una data factory e configurarvi Azure-SSIS IR. Se non è già stato fatto, seguire le istruzioni riportate in Configurare Azure-SSIS Integration Runtime.

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

Infine, è possibile scaricare e installare la versione più recente dell'IR self-hosted, nonché i driver e il runtime aggiuntivi, nella macchina locale o nella macchina virtuale di Azure, come segue:

  • 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 a partire dalla versione 5.28.0 del runtime di integrazione self-hosted. Usare la seguente azione della riga di comando del runtime di integrazione self-hosted 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 Disabilitare 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 IR self-hosted appena installato con la versione 5.28.0 o successiva ha la proprietà ExecuteSsisPackage disabilitata per impostazione predefinita.

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

  • Se nei pacchetti si usano i connettori OLEDB (Object Linking and Embedding Database), ODBC (Open Database Connectivity) o ADO.NET, scaricare e installare i driver pertinenti sullo 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 usi i componenti del flusso di dati di Azure Feature Pack nei pacchetti, scarica e installa Azure Feature Pack per SQL Server 2017 sullo stesso computer in cui è installato il runtime di integrazione self-hosted, se non lo hai già 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 pre-elaborazione locali e le attività Esegui SQL/processi sul tuo IR self-hosted richiedono l'autenticazione di Windows, è necessario configurare anche la funzionalità di autenticazione di Windows nel tuo Azure-SSIS IR.

Le attività di gestione temporanea locale e le attività Esegui SQL/Esegui processo verranno richiamate con l'account di servizio del 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. Sul computer del runtime di integrazione self-hosted, andare su Criteri di sicurezza locali>Criteri locali>Assegnazione diritti utente, quindi eseguire le seguenti operazioni:

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

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

Preparare alla gestione temporanea il servizio collegato di Archiviazione BLOB di Azure

Se non è già stato fatto, creare un servizio collegato di Archiviazione BLOB di Azure nella stessa data factory in cui è configurato Azure-SSIS IR. 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) in modo da poterlo ignorare e usare invece Azure-SSIS IR per recuperare le credenziali di accesso per il tuo Azure Blob Storage.
  • Per Metodo di autenticazione, selezionare Chiave dell'account, URI SAS, Principale del 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 l'Account Key o SAS URI pubblicherà immediatamente il servizio collegato.

Suggerimento

Se si seleziona il metodo Entità servizio, concedere all'entità servizio almeno un ruolo di Collaboratore ai dati del 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 ulteriori informazioni, vedere Accesso ad Azure Blob Storage utilizzando l'autenticazione Microsoft Entra con l'identità gestita assegnata al sistema o all'utente specificato per il tuo ADF.

Preparare il servizio collegato all'Archiviazione BLOB di Azure per la pre-elaborazione

Configurare un Azure-SSIS Integration Runtime utilizzando il proprio runtime di integrazione self-hosted come proxy

Dopo aver preparato il runtime di integrazione self-hosted e il servizio collegato di Archiviazione BLOB di Azure per la gestione temporanea, è ora possibile configurare Azure-SSIS IR nuovo o esistente con il runtime di integrazione self-hosted come proxy nel portale o nell'app della 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 Configurare un runtime di integrazione self-hosted come proxy per Azure-SSIS Integration Runtime.

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

    3. Nell'elenco a discesa Servizio collegato di archiviazione di gestione temporanea, selezionare un servizio collegato di 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, sia come estensione SSIS Projects per Visual Studio che come installer autonomo, è possibile trovare una nuova ConnectByProxy proprietà nei gestori di connessione per i componenti del flusso di dati supportati e una proprietà ExecuteOnProxy nelle attività di Esegui attività SQL/processo.

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 per eseguirlo sul SSIS IR. È 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à on-premise e delle attività di staging 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/Esegui processo 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 staging

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 staging cloud

Le attività di staging locale e le attività Esegui SQL/processi eseguite nel runtime di integrazione self-hosted vengono fatturate separatamente, esattamente come 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/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à applicata 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 blob container di anteprima pubblica immettendo l'URI SAS sopra indicato.

Dopo aver configurato il runtime di integrazione self-hosted come proxy per Azure-SSIS IR, è possibile distribuire ed eseguire i pacchetti per accedere ai dati o eseguire istruzioni/processi SQL locali, come attività Esegui pacchetto SSIS nelle pipeline di Data Factory. Per scoprire come, 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.