Condividi tramite


Connettere Database di Azure per PostgreSQL ad Azure Data Factory e Synapse Analytics

Importante

Database di Azure per PostgreSQL versione 2.0 offre un supporto migliorato per Database di Azure per PostgreSQL nativo. Se si usa database di Azure per PostgreSQL versione 1.0 nella soluzione, è consigliabile aggiornare il servizio collegato Database di Azure per PostgreSQL al più presto possibile.

Che cos'è Azure Data Factory

Azure Data Factory è un servizio di integrazione dei dati serverless, completamente gestito per orchestrare e rendere operativi complessi e ibridi progetti di estrazione, trasformazione e caricamento (ETL), estrazione, caricamento, trasformazione (ELT) e integrazione dei dati. Un runtime di integrazione di Azure supporta la connessione di archivi dati e servizi di elaborazione con endpoint accessibili pubblicamente. Se si abilita la funzionalità di rete virtuale gestita di un runtime di integrazione di Azure, questa supporta la connessione agli archivi dati usando il servizio di collegamento privato di Azure in ambienti di rete privata.

Azure Data Factory offre un connettore di Database di Azure per PostgreSQL con supporto per varie funzionalità, a seconda del runtime di integrazione selezionato.

Servizio collegato

In Azure Data Factory un servizio collegato è una connessione a un'origine dati. Quando si usa Database di Azure per PostgreSQL, è possibile definire un servizio collegato usando JSON per specificare i dettagli di connessione a livello di codice. Questo approccio è utile per scenari di automazione, controllo della versione e distribuzione. La definizione JSON include proprietà quali il nome del server, il nome del database, il tipo di autenticazione e altri parametri di connessione. Creando un servizio collegato, è possibile connettersi facilmente all'istanza di Database di Azure per PostgreSQL ed eseguire attività di integrazione dei dati in Azure Data Factory.

È possibile creare un servizio collegato usando l'interfaccia utente di Azure Data Factory o a livello di codice tramite JSON. Il servizio collegato consente di connettersi all'istanza di Database di Azure per PostgreSQL ed eseguire attività di integrazione dei dati in Azure Data Factory.

Prerequisiti

Creare un servizio collegato tramite il portale di Azure

È possibile creare un servizio collegato usando l'interfaccia utente di Azure Data Factory o a livello di codice tramite JSON. Il servizio collegato consente di connettersi all'istanza di Database di Azure per PostgreSQL ed eseguire attività di integrazione dei dati in Azure Data Factory.

  1. Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi selezionare Nuovo:

  2. Nella pagina servizi collegati creare un nuovo servizio collegato selezionando + Nuovo. Viene visualizzata una finestra con un elenco di tutti i connettori di Azure Data Factory. Cercare Database di Azure per PostgreSQL, selezionarlo e quindi selezionare Continua.

    Screenshot della ricerca di 'Database di Azure per PostgreSQL' nel nuovo campo del servizio collegato.

  3. Assicurarsi che sia selezionata la versione 2.0 .

    Screenshot della finestra Nuovo servizio collegato per il connettore Database di Azure per PostgreSQL.

Autenticazione

Esistono quattro metodi supportati per l'autenticazione: autenticazione di base, entità servizio, identità gestita assegnata dal sistema e identità gestita assegnata dall'utente.

Autenticazione di base
  1. Selezionare Autenticazione di base come tipo di autenticazione e assicurarsi di immettere i dettagli di connessione dell'istanza del server flessibile di Azure PostgreSQL, tra cui Nome server, Nome utente e Password.

    Screenshot di una nuova finestra del servizio collegato per il connettore Database di Azure per PostgreSQL con il tipo di autenticazione di base.

  2. Selezionare tra Sottoscrizione da Azure o Immettere manualmente nel Metodo di selezione Account

    Selezionare la sottoscrizione di Azure, il nome del server e il nome del database. Immettere anche la porta.

    Screenshot del metodo di selezione account sottoscrizione di Azure.

  3. Immettere il nome utente e la password.

    Screenshot di Nome utente e password.

  4. È ora possibile testare la connessione e creare il servizio collegato

Autenticazione di un'entità servizio

Seguendo i passaggi per la configurazione dell'autenticazione del principale del servizio, è necessario configurare un servizio collegato in Azure Data Factory o Synapse Analytics per connettersi al Database di Azure per PostgreSQL. Il processo prevede la selezione del metodo di autenticazione appropriato, la configurazione dei dettagli della connessione e la verifica della connessione. Assicurarsi di disporre dei prerequisiti e delle autorizzazioni necessari prima di procedere.

  1. Registrare un'app Microsoft Entra e creare un'entità servizio.

  2. Selezionare Principale del Servizio in Tipo di autenticazione.

    Esistono due tipi di credenziali dell'entità servizio e entrambi i metodi dell'entità servizio richiedono valori "Tenant", "ID entità servizio" e "Tipo di cloud di Azure".

    Screenshot della finestra Nuovo servizio collegato per il connettore Database di Azure per PostgreSQL con il tipo di autenticazione dell'entità servizio.

  3. Selezionare tra Dalla sottoscrizione Azure o Immettere manualmente nel metodo di selezione dell'account.

    Selezionare la sottoscrizione di Azure, il nome del server e il nome del database. Immettere anche la porta.

    Screenshot del metodo di selezione account sottoscrizione di Azure.

  4. Immettere il Nome dell'entità servizio, visualizzato anche come Nome visualizzato per la chiave dell'entità servizio.

  5. Selezionare Inline nel metodo di riferimento per l'autenticazione.

    Screenshot del metodo di riferimento per l'autenticazione inline dell'entità servizio.

  6. Immettere il tenant. L'ID tenant si trova in Azure, in cui è stato creato il nome dell'entità servizio.

    Screenshot del tenant dell'entità servizio in Azure.

  7. Immettere l'ID dell'entità servizio. È possibile trovare l'ID client in Azure, dove è stato creato il Nome principale del servizio.

    Screenshot dell'ID entità servizio in Azure.

  8. Selezionare Certificato entità servizio o Chiave entità servizio nel tipo di credenziale dell'entità servizio.

    Certificato di entità servizio L'autenticazione richiede un certificato di entità servizio e, facoltativamente, una password di entità servizio.

    Screenshot della finestra Nuovo servizio collegato per il connettore Database di Azure per PostgreSQL con il tipo di autenticazione del certificato dell'entità servizio.

  9. Selezionare il tipo di cloud di Azure.

  10. È ora possibile testare la connessione e creare il servizio collegato

Autenticazione dell'identità gestita assegnata dal sistema

L'uso dell'identità gestita assegnata dal sistema come tipo di autenticazione nel servizio collegato in Azure Data Factory o Synapse Analytics per connettersi al database di Azure per PostgreSQL richiede la procedura seguente. Il processo prevede la selezione del metodo di autenticazione appropriato, la configurazione dei dettagli della connessione e la verifica della connessione. Assicurarsi di disporre dei prerequisiti e delle autorizzazioni necessari prima di procedere.

  1. Nella risorsa database di Azure per PostgreSQL in Sicurezza

    1. Selezionare Identità.

    2. Assicurarsi che l'identità gestita assegnata dal sistema sia attivata

      Screenshot che mostra la configurazione dell'identità gestita assegnata dal sistema nella risorsa del server di Database di Azure per PostgreSQL.

  2. Nella risorsa di Azure Data Factory,

    1. Selezionare Impostazioni e quindi Identità gestite

    2. Nella scheda Assegnata dal sistema Verificare che lo stato sia Attivato

      Screenshot della configurazione dell'identità gestita assegnata dal sistema nella risorsa di Azure Data Factory.

  3. Nella risorsa database di Azure per PostgreSQL in Sicurezza

    1. Seleziona Autenticazione

    2. Selezionare solo l'autenticazione di Microsoft Entra o postgreSQL e il metodo di autenticazione Microsoft Entra .

    3. Selezionare + Aggiungi amministratori di Microsoft Entra

    4. Aggiungere l'identità gestita assegnata dal sistema per la risorsa Azure Data Factory come uno degli amministratori di Microsoft Entra

      Screenshot dell'aggiunta della configurazione dell'identità gestita assegnata dal sistema di Azure Data Factory nella risorsa Database di Azure per PostgreSQL.

  4. Nel servizio collegato di Azure Data Factory selezionare Identità gestita assegnata dal sistema come tipo di autenticazione.

    Screenshot dell'identità gestita assegnata dal sistema selezionata.

  5. Selezionare tra Dalla sottoscrizione Azure o Immettere manualmente nel metodo di selezione dell'account.

    Selezionare la sottoscrizione di Azure, il nome del server e il nome del database. Immettere anche la porta.

    Screenshot del metodo di selezione account sottoscrizione di Azure.

  6. È ora possibile testare la connessione e creare il servizio collegato

Autenticazione dell'identità gestita assegnata dall'utente

L'uso dell'identità gestita assegnata dall'utente come tipo di autenticazione nel servizio collegato in Azure Data Factory o Synapse Analytics per connettersi al database di Azure per PostgreSQL richiede la procedura seguente. Il processo prevede la selezione del metodo di autenticazione appropriato, la configurazione dei dettagli della connessione e la verifica della connessione. Assicurarsi di disporre dei prerequisiti e delle autorizzazioni necessari prima di procedere.

  1. Creare una risorsa identità gestita assegnata dall'utente nel portale di Azure. Per altre informazioni, vedere Gestire le identità gestite assegnate dall'utente

  2. Assegnare l'identità gestita assegnata dall'utente alla risorsa Database di Azure per PostgreSQL

    1. Nella risorsa del database di Azure per il server PostgreSQL, in Sicurezza

    2. Seleziona Autenticazione

    3. Selezionare solo l'autenticazione di Microsoft Entra o postgreSQL e il metodo di autenticazione Microsoft Entra .

    4. Fare clic su + Aggiungi amministratori di Microsoft Entra e selezionare l'identità gestita assegnata dall'utente

      Screenshot della configurazione dell'identità gestita assegnata dall'utente nel server database di Azure per PostgreSQL.

  3. Assegnare l'identità gestita assegnata dall'utente alla risorsa di Azure Data Factory

    1. Selezionare Impostazioni e quindi Identità gestite

    2. Nella scheda Assegnata dall'utente . Fare clic su + Aggiungi e selezionare l'identità gestita dall'utente

      Screenshot della configurazione dell'identità gestita assegnata dall'utente nella risorsa di Azure Data Factory.

  4. Nel servizio collegato di Azure Data Factory selezionare Identità gestita assegnata dall'utente come tipo di autenticazione

    Screenshot dell'identità gestita assegnata dal sistema selezionata sotto il tipo di autenticazione nel servizio collegato.

  5. Selezionare tra Dalla sottoscrizione Azure o Immettere manualmente nel metodo di selezione dell'account.

    Selezionare la sottoscrizione di Azure, il nome del server e il nome del database. Immettere anche la porta.

    Screenshot del metodo di selezione account sottoscrizione di Azure.

  6. In Credenziali o selezionare una credenziale di identità gestita assegnata dall'utente o crearne una nuova con + Nuovo

    Screenshot del menu a discesa delle credenziali selezionato.

    1. Se è necessario creare una nuova credenziale, selezionare + Nuovo

    2. Assicurarsi che Type sia identità gestita assegnata dall'utente

    3. Selezionare la sottoscrizione di Azure

    4. In Identità gestite assegnate dall'utente. Selezionare in Assegnato a Data Factory l'identità gestita e fare clic su Crea

      Screenshot dell'opzione Crea credenziali con l'identità gestita dall'utente selezionata.

  7. È ora possibile testare la connessione e creare il servizio collegato

Verifica connessione

  1. Dopo aver compilato tutti i campi di connessione necessari, nell'angolo inferiore destro dovrebbe essere visualizzato un pulsante Test connessione . Il pulsante di connessione di test verifica che il servizio collegato possa connettersi al server di Database di Azure per PostgreSQL.

    Screenshot della finestra Nuovo servizio collegato per la connessione di test del connettore Database di Azure per PostgreSQL.

  2. Fare clic sul pulsante Crea

JSON servizio collegato

La tabella seguente descrive le proprietà del servizio collegato per Database di Azure per PostgreSQL. Le proprietà vengono definite in formato JSON, che viene usato per creare il servizio collegato a livello di codice.

Proprietà Descrizione Obbligatorio
nome Nome del servizio collegato. Vedere Regole di denominazione
tipo Tipo del servizio collegato. Deve essere AzurePostgreSql
server Nome host completo per l'istanza del server flessibile del Database di Azure per PostgreSQL
porto Numero di porta dell'istanza del server flessibile del Database di Azure per PostgreSQL
banca dati Nome del database
sslMode Valore numerico che rappresenta la configurazione della connessione SSL. 0 per Disabilitato, 1 per Consenti, 2 per Preferisci, 3 per Richiedi, 4 per VerificaCA e 5 per VerificaCompleta
tipo di autenticazione Specificare l'autenticazione da usare. BasicAuth, ServicePrincipal, SystemAssignedManagedIdentity o UserAssignedManagedIdentity
credenziali Specificare l'identità gestita assegnata dall'utente come oggetto credenziale. Obbligatorio per UserAssignedManagedIdentity. In caso contrario, non è necessario
nome utente nome utente per l'autenticazione di base o nome dell'entità servizio per l'autenticazione dell'entità servizio
parola d’ordine Password del nome utente per l'autenticazione di base Obbligatorio quando BasicAuth. In caso contrario, non è necessario
inquilino ID del locatario Obbligatorio per il tipo di autenticazione ServicePrincipal
ID Principale del Servizio (servicePrincipalId) ID dell'entità servizio Obbligatorio per il tipo di autenticazione ServicePrincipal
tipo di credenziale del servizio principale Tipo di entità servizio. ServicePrincipalCert o ServicePrincipalKey
servicePrincipalEmbeddedCert Certificato dell'entità servizio Obbligatorio quando ServicePrincipalCert. In caso contrario, non è necessario
servicePrincipalEmbeddedCertPassword Password del certificato dell'entità servizio NO
chiavePrincipaleDelServizio Chiave dell'entità servizio Obbligatorio se ServicePrincipalKey è servicePrincipalCredentialType. In caso contrario, non è necessario

A seconda del tipo di autenticazione, i diversi campi richiedono un payload JSON diverso.

Di seguito sono riportati esempi di configurazione JSON per diversi metodi di autenticazione, tra cui autenticazione di base, certificato dell'entità servizio e chiave dell'entità servizio. Questi modelli JSON possono essere personalizzati in base ai requisiti specifici.

Un servizio collegato che usa BasicAuth è definito in formato JSON come indicato di seguito:

{
    "name": "<Name of the linked service>",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server host name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "username": "<Service Principal Name>",
            "authenticationType": "BasicAuth",
            "password": "<username password>"
        }
    }
}

Un servizio collegato che usa il certificato dell'entità servizio viene definito in formato JSON come segue:

{
    "name": "<Name of the linked service>",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server host name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "username": "<Service Principal Name>",
            "authenticationType": "ServicePrincipal",
            "tenant": "<Tenant ID>",
            "servicePrincipalId": "<SP ID>",
            "servicePrincipalCredentialType": "ServicePrincipalCert",
            "servicePrincipalEmbeddedCert": "<Embedded certificate>",
            "servicePrincipalEmbeddedCertPassword": "<Service Principal certificate password>"
        }
    }
}

Un servizio collegato che usa la chiave dell'entità servizio viene definito in formato JSON come segue:

{
    "name": "<Name of the linked service>",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server host name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "username": "<Service Principal Name>",
            "authenticationType": "ServicePrincipal",
            "tenant": "<Tenant ID>",
            "servicePrincipalId": "<SP ID>",
            "servicePrincipalCredentialType": "ServicePrincipalKey",
            "servicePrincipalKey": "<Service Principal Key>"
        }
    }
}

Esempio con identità gestita assegnata dal sistema:

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "authenticationType": "SystemAssignedManagedIdentity"
        }
    }
}

Esempio con identità gestita assegnata dall'utente:

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "authenticationType": "UserAssignedManagedIdentity",
            "credential": {
                "referenceName": "<your credential>",
                "type": "CredentialReference"
            }
        }
    }
}

Creare servizi collegati tramite API

I servizi collegati possono essere creati nel portale di Azure Data Factory tramite l'hub di gestione e qualsiasi attività, set di dati o flussi di dati che vi fanno riferimento.

È possibile creare servizi collegati usando uno di questi strumenti: API .NET, PowerShell, API REST, modello di Azure Resource Manager e portale di Azure.

Quando si crea un servizio collegato, l'utente deve disporre dell'autorizzazione appropriata per il servizio designato. Se non viene concesso un accesso sufficiente, l'utente non può visualizzare le risorse disponibili e deve usare l'opzione di immissione manuale.

Attività

Le attività sono attività all'interno di una pipeline in grado di eseguire attività specifiche. Con l'attività script, gli utenti possono eseguire script PostgreSQL per interrogare o modificare i propri database.