Condividi tramite


Configurare Database di Azure per PostgreSQL in un'attività di copia

Questo articolo descrive come usare l'attività di copia nella pipeline di dati per copiare dati da e verso Database di Azure per PostgreSQL.

Configurazione supportata

Per la configurazione di ogni scheda nell'attività di copia, consultare rispettivamente le sezioni seguenti.

Generali

Consultare la guida sulle Impostazioni generali per configurare la scheda Impostazioni generali.

Origine

Passare alla scheda Origine per configurare l'origine dell'attività di copia. Per la configurazione dettagliata, vedere il contenuto seguente.

Screenshot che mostra la scheda origine e l'elenco delle proprietà.

Le seguenti tre proprietà sono obbligatorie:

  • Connessione: selezionare una connessione Database di Azure per PostgreSQL dall'elenco delle connessioni. Se non esiste alcuna connessione, creare una nuova connessione al Database di Azure per PostgreSQL.
  • Tipo di connessione: selezionare Database di Azure per PostgreSQL.
  • Usa query: selezionare Tabella per leggere i dati dalla tabella specificata o selezionare Query per leggere i dati usando query.
    • Se si seleziona Tabella:

      • tabella: selezionare la tabella dall'elenco a discesa oppure selezionare Immettere manualmente per immetterla manualmente per leggere i dati.

        Screenshot che mostra Usa query - Tabella.

    • Se si seleziona Query:

      • Query: specificare la query SQL personalizzata per leggere i dati. Ad esempio, SELECT * FROM mytable o SELECT * FROM "MyTable".

        Nota

        In PostgreSQL, il nome dell'entità viene considerato senza distinzione tra maiuscole e minuscole se non è racchiuso tra virgolette.

        Screenshot che mostra Usa query - Query.

In Avanzato è possibile specificare i seguenti campi:

  • timeout query (minuti): Specificare il tempo di attesa prima di terminare il tentativo di eseguire un comando e generare un errore; il valore predefinito è 120 minuti. Se questo parametro è impostato, i valori consentiti sono intervalli di tempo, ad esempio "02:00:00" (120 minuti). Per altre informazioni, vedere CommandTimeout.

  • Opzione di partizione: specificare le opzioni di partizionamento dei dati utilizzate per caricare i dati dal database di Azure per PostgreSQL. Quando è abilitata un'opzione di partizione (ovvero diversa da Nessuna), il grado di parallelismo per caricare contemporaneamente dati da un database di Azure per PostgreSQL è controllato dal Grado di parallelismo della copia nella scheda delle impostazioni dell'attività di copia.

    Se si seleziona Nessuno, si sceglie di non usare la partizione.

    Se si seleziona Partizioni fisiche della tabella:

    • Nomi delle partizioni: specificare l'elenco delle partizioni fisiche da copiare.

      Se si usa una query per recuperare i dati di origine, associare ?AdfTabularPartitionName nella clausola WHERE. Per un esempio, vedere la sezione Copia parallela da Database di Azure per PostgreSQL.

      Screenshot che mostra la configurazione quando si seleziona Partizioni fisiche della tabella.

    Se si seleziona Intervallo dinamico:

    • Nome della colonna di partizione: specificare il nome della colonna di origine in formato intero o di tipo data/datetime (int, smallint, bigint, date, timestamp without time zone, timestamp with time zone o time without time zone) utilizzata dal partizionamento per intervalli per la copia parallela. Se non specificato, la chiave primaria della tabella viene rilevata automaticamente e usata come colonna di partizione.

      Se si usa una query per recuperare i dati di origine, associare ?AdfRangePartitionColumnName nella clausola WHERE. Per un esempio, vedere la sezione Copia parallela da Database di Azure per PostgreSQL.

    • Limite massimo della partizione: specificare il valore massimo della colonna di partizione da cui copiare i dati.

      Se si usa una query per recuperare i dati di origine, associare ?AdfRangePartitionUpbound nella clausola WHERE. Per un esempio, vedere la sezione Copia parallela da Database di Azure per PostgreSQL. .

    • Limite minimo della partizione: specificare il valore minimo della colonna di partizione da cui copiare i dati.

      Se si usa una query per recuperare i dati di origine, associare ?AdfRangePartitionLowbound nella clausola WHERE. Per un esempio, vedere la sezione Copia parallela da Database di Azure per PostgreSQL.

      Screenshot che mostra la configurazione quando si seleziona Intervallo dinamico.

  • Colonne aggiuntive: aggiungere altre colonne di dati per archiviare il percorso relativo o il valore statico dei file di origine. Per quest'ultimo è supportata l'espressione.

Destinazione

Passare alla scheda Destinazione per configurare la destinazione dell'attività di copia. Per la configurazione dettagliata, vedere il contenuto seguente.

Screenshot che mostra la scheda di destinazione e l'elenco delle proprietà.

Le seguenti tre proprietà sono obbligatorie:

  • Connessione: selezionare una connessione Database di Azure per PostgreSQL dall'elenco delle connessioni. Se non esiste alcuna connessione, creare una nuova connessione a un database di Azure per PostgreSQL.
  • Tipo di connessione: selezionare Database di Azure per PostgreSQL.
  • tabella: selezionare la tabella dall'elenco a discesa oppure selezionare Immettere manualmente per inserire i dati.

In Avanzato è possibile specificare i seguenti campi:

  • Metodo di scrittura: selezionare il metodo utilizzato per scrivere i dati nel database di Azure per PostgreSQL. Selezionare tra Comando Copia (impostazione predefinita, più efficiente) e Inserimento in blocco.

  • Script di pre-copia: specificare una query SQL che l'attività di copia deve eseguire prima di scrivere i dati nel Database di Azure per PostgreSQL a ogni esecuzione. È possibile usare questa proprietà per pulire i dati precaricati.

  • Timeout batch di scrittura: specificare il tempo di attesa per il completamento dell'operazione di inserimento batch prima del timeout. I valori consentiti sono intervalli di tempo. Il valore predefinito è 00:30:00 (30 minuti).

  • Dimensione batch di scrittura: specificare il numero di righe caricate nel database di Azure per PostgreSQL per batch. Il valore consentito è un numero intero che rappresenta il numero di righe. Il valore predefinito è 1.000.000.

Mapping

Per la configurazione della scheda Mapping, vedere Configurare i mapping nella scheda Mapping.

Impostazione

Per la configurazione della scheda Impostazioni, vedere Configurare le altre impostazioni nella scheda Impostazioni.

Copia parallela da Database di Azure per PostgreSQL

Il connettore di Database di Azure per PostgreSQL nell'attività Copy fornisce il partizionamento dei dati predefinito per copiare i dati in parallelo. È possibile trovare le opzioni di partizionamento dei dati nella tabella Origine dell'attività di copia.

Quando si abilita la copia partizionata, l'attività Copy esegue query parallele sull'origine di Database di Azure per PostgreSQL per caricare i dati in base alle partizioni. Il grado di parallelismo è controllato dal Grado di parallelismo della copia nella scheda delle impostazioni dell'attività di copia. Ad esempio, se si imposta il Grado di parallelismo della copia su quattro, il servizio genera ed esegue contemporaneamente quattro query in base all'opzione di partizione e alle impostazioni specificate e ogni query recupera una porzione di dati dal Database di Azure per PostgreSQL.

Si consiglia di abilitare la copia parallela con il partizionamento dei dati, specialmente quando si caricano grandi quantità di dati di Database di Azure per PostgreSQL. Di seguito sono riportate le configurazioni consigliate per i diversi scenari: Quando si copiano dati in un archivio dati basato su file, è consigliabile scrivere in una cartella come file multipli (specificare solo il nome della cartella); in tal caso, le prestazioni risultano migliori rispetto alla scrittura in un singolo file.

Scenario Impostazioni consigliate
Caricamento completo da una tabella di grandi dimensioni, con partizioni fisiche. Opzione di partizione: partizioni fisiche della tabella.

Durante l'esecuzione, il servizio rileva automaticamente le partizioni fisiche e copia i dati in base alle partizioni.
Caricamento completo da una tabella di grandi dimensioni, senza partizioni fisiche, con una colonna di numeri interi per il partizionamento dei dati. Opzioni di partizione: intervallo dinamico.
Colonna di partizione: specificare la colonna usata per il partizionamento dei dati. Se non è specificato, viene usata la colonna della chiave primaria.
Caricare una grande quantità di dati usando una query personalizzata, con partizioni fisiche. Opzione di partizione: partizioni fisiche della tabella.
Query: SELECT * FROM ?AdfTabularPartitionName WHERE <your_additional_where_clause>.
Nome partizione: specificare i nomi della partizione da cui copiare i dati. Se non specificato, il servizio rileva automaticamente le partizioni fisiche nella tabella specificata nel set di dati PostgreSQL.

Durante l'esecuzione, il servizio sostituisce ?AdfTabularPartitionName con il nome effettivo della partizione e lo invia a Database di Azure per PostgreSQL.
Caricare una grande quantità di dati usando una query personalizzata, senza partizioni fisiche, con una colonna di numeri interi per il partizionamento dei dati. Opzioni di partizione: intervallo dinamico.
Query: SELECT * FROM ?AdfTabularPartitionName WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Colonna di partizione: specificare la colonna usata per il partizionamento dei dati. È possibile eseguire la partizione rispetto alla colonna con un tipo di dati integer o date/datetime.
Limite massimo della partizione e Limite minimo della partizione: specificare se si desidera filtrare in base alla colonna di partizione per recuperare i dati solo tra l'intervallo inferiore e quello superiore.

Durante l'esecuzione, il servizio sostituisce ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbounde ?AdfRangePartitionLowbound con il nome della colonna e gli intervalli di valori effettivi per ogni partizione e li invia a Database di Azure per PostgreSQL.
Ad esempio, se la colonna di partizione "ID" è impostata con il limite inferiore su 1 e il limite superiore su 80 e la copia parallela su 4, il servizio recupera i dati da 4 partizioni. Gli ID sono rispettivamente compresi tra [1, 20], [21, 40], [41, 60] e [61, 80].

Procedure consigliate per il caricamento di dati con opzione partizione:

  • Scegliere una colonna distintiva come colonna partizione (ad esempio, chiave primaria o chiave univoca) per evitare l'asimmetria dei dati.
  • Se la tabella include una partizione predefinita, usare l'opzione di partizione "Partizioni fisiche della tabella" per ottenere prestazioni migliori.

Riepilogo della tabella

La tabella seguente contiene altre informazioni sull'attività di copia in Database di Azure per PostgreSQL.

Informazioni sull'origine

Nome Descrizione valore Richiesto Proprietà dello script JSON
Connessione Connessione all'archivio dati di origine. < connessione database di Azure per PostgreSQL > connection
Tipo di connessione Tipo di connessione di origine. Database di Azure per PostgreSQL /
Usa query Modalità di lettura dei dati. Applicare Tabella per leggere i dati dalla tabella specificata o applicare Query per leggere i dati usando le query. Tabella
Query
• typeProperties (in typeProperties ->source)
  - schema
  - tabella
• query
Timeout della query (minuti) Il tempo di attesa prima di terminare il tentativo di eseguire un comando e generare un errore, il valore predefinito è 120 minuti. Se il parametro è impostato, i valori consentiti sono intervalli di tempo, ad esempio "02:00:00" (120 minuti). Per ulteriori informazioni, consultare CommandTimeout. timespan No queryTimeout
Nomi delle partizioni Elenco di partizioni fisiche da copiare. Se si usa una query per recuperare i dati di origine, associare ?AdfTabularPartitionName nella clausola WHERE. < nomi delle partizioni > No partitionNames
Nome della colonna di partizione Nome della colonna di origine in formato intero o di tipo data/datetime (int, smallint, bigint, date, timestamp without time zone, timestamp with time zone o time without time zone) utilizzata dal partizionamento per intervalli per la copia parallela. Se non specificato, la chiave primaria della tabella viene rilevata automaticamente e usata come colonna di partizione. < nomi delle colonne di partizione > No partitionColumnName
Limite massimo della partizione Il valore massimo della colonna di partizione da cui copiare i dati. Se si usa una query per recuperare i dati di origine, eseguire l'hook di ?AdfRangePartitionUpbound nella clausola WHERE. < limite massimo della partizione > No partitionUpperBound
Limite minimo della partizione Il valore minimo della colonna di partizione da cui copiare i dati. Se si usa una query per recuperare i dati di origine, eseguire l'hook di ?AdfRangePartitionLowbound nella clausola WHERE. < limite minimo della partizione > No partitionLowerBound
Colonne aggiuntive Aggiungere altre colonne di dati per archiviare il percorso relativo o il valore statico dei file di origine. Per quest'ultimo è supportata l'espressione. • Name
• Valore
No additionalColumns:
• nome
• valore

Informazioni sulla destinazione

Nome Descrizione valore Richiesto Proprietà dello script JSON
Connessione Connessione all'archivio dati di destinazione. < connessione database di Azure per PostgreSQL > connection
Tipo di connessione Tipo di connessione di destinazione. Database di Azure per PostgreSQL /
Tabella Tabella dati di destinazione per scrivere dati. < nome della tabella di destinazione > typeProperties (in typeProperties ->sink):
  - schema
  - tabella
Metodo di scrittura Metodo usato per scrivere i dati in Database di Azure per PostgreSQL. Comando COPY (impostazione predefinita)
Inserimento in blocco
No writeMethod:
• CopyCommand
• BulkInsert
Script di pre-copia Una query SQL per l'attività di copia da eseguire prima di scrivere i dati nel Database di Azure per PostgreSQL a ogni esecuzione. È possibile usare questa proprietà per pulire i dati precaricati. < script di pre-copia > No preCopyScript
Timeout del batch di scrittura Tempo di attesa per il completamento dell'operazione di inserimento batch prima del timeout. timespan
(il valore predefinito è 00:30:00 - 30 minuti)
No writeBatchTimeout
Dimensione del batch di scrittura Numero di righe caricate in Database di Azure per PostgreSQL per batch. integer
(il valore predefinito è 1.000.000)
No writeBatchSize