Delen via


Gegevens kopiëren en transformeren in Azure Database for PostgreSQL met behulp van Azure Data Factory of Synapse Analytics

Van toepassing op: Azure Data Factory Azure Synapse Analytics

Aanbeveling

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In dit artikel wordt beschreven hoe u kopieeractiviteit gebruikt in Azure Data Factory- en Synapse Analytics-pijplijnen om gegevens van en naar Azure Database for PostgreSQL te kopiëren. En hoe u gegevensstroom gebruikt om gegevens te transformeren in Azure Database for PostgreSQL. Lees de inleidende artikelen voor Azure Data Factory en Synapse Analytics voor meer informatie.

Belangrijk

Azure Database for PostgreSQL versie 2.0 biedt verbeterde systeemeigen ondersteuning voor Azure Database for PostgreSQL. Als u azure Database for PostgreSQL versie 1.0 in uw oplossing gebruikt, wordt u aangeraden om uw Azure Database for PostgreSQL-connector zo snel mogelijk te upgraden.

Deze connector is gespecialiseerd voor de Azure Database for PostgreSQL-service. Als u gegevens wilt kopiëren uit een algemene PostgreSQL-database die zich on-premises of in de cloud bevindt, gebruikt u de PostgreSQL-connector.

Ondersteunde mogelijkheden

Deze Azure Database for PostgreSQL-connector wordt ondersteund voor de volgende mogelijkheden:

Ondersteunde mogelijkheden IR Beheerd privé-eindpunt Ondersteunde versies van de connector
Kopieeractiviteit (bron/doel) (1) (2) 1.0 & 2.0
Het in kaart brengen van de datastroom (bron/sink) (1) 1.0 & 2.0
Zoekactiviteit (1) (2) 1.0 & 2.0
Scriptactiviteit (1) (2) 2.0

(1) Azure-integratieruntime (2) Zelfgehoste integratieruntime

De drie activiteiten werken op Azure Database for PostgreSQL Single Server, Flexible Server en Azure Cosmos DB for PostgreSQL.

Belangrijk

Azure Database for PostgreSQL Single Server wordt buiten gebruik gesteld op 28 maart 2025. Migreer naar Flexible Server vóór die datum. Raadpleeg dit artikel en de veelgestelde vragen voor de migratierichtlijnen.

Aan de slag

Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:

Een gekoppelde service maken voor Azure Database for PostgreSQL met behulp van de gebruikersinterface

Gebruik de volgende stappen om een gekoppelde service te maken voor Azure Database for PostgreSQL in de gebruikersinterface van Azure Portal.

  1. Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en selecteer vervolgens Nieuw:

  2. Zoek naar PostgreSQL en selecteer de Azure-database voor PostgreSQL-connector.

    Selecteer de Azure Database for PostgreSQL-connector.

  3. Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.

    Configureer een gekoppelde service voor Azure Database for PostgreSQL.

Details van de configuratie van de connector

De volgende secties bevatten details over eigenschappen die worden gebruikt voor het definiëren van Data Factory-entiteiten die specifiek zijn voor Azure Database for PostgreSQL-connector.

Eigenschappen van gekoppelde service

De Azure Database for PostgreSQL-connector versie 2.0 ondersteunt TRANSPORT Layer Security (TLS) 1.3 en meerdere SSL-modi (Secured Socket Layer). Raadpleeg deze sectie om de versie van uw Azure SQL Database-connector te upgraden vanaf versie 1.0. Raadpleeg de desbetreffende secties voor de details van de eigendom.

Versie 2.0

De volgende eigenschappen worden ondersteund voor de gekoppelde Azure Database for PostgreSQL-service wanneer u versie 2.0 toepast:

Vastgoed Beschrijving Verplicht
soort De typeeigenschap moet worden ingesteld op: AzurePostgreSql. Ja
Versie De versie die je opgeeft. De waarde is 2.0. Ja
authenticatietype Selecteren uit basis-, service-principal-, door het systeem toegewezen beheerde identiteit of door de gebruiker toegewezen verificatietypen voor beheerde identiteit Ja
bedieningscomputer Hiermee geeft u de hostnaam en optioneel poort waarop Azure Database for PostgreSQL wordt uitgevoerd. Ja
poort/haven De TCP-poort van de Azure Database for PostgreSQL-server. De standaardwaarde is 5432. Nee.
gegevensbank De naam van de Azure Database for PostgreSQL-database waarmee u verbinding wilt maken. Ja
ssl-mode Bepaalt of SSL wordt gebruikt, afhankelijk van serverondersteuning.
- Uitschakelen: SSL is uitgeschakeld. Als de server SSL vereist, mislukt de verbinding.
- Toestaan: Geef de voorkeur aan niet-SSL-verbindingen als de server deze toestaat, maar SSL-verbindingen toestaan.
- Geef de voorkeur aan SSL-verbindingen als de server deze toestaat, maar sta ook verbindingen zonder SSL toe.
- Vereisen: de verbinding mislukt als de server geen ondersteuning biedt voor SSL.
- Verify-ca: De verbinding mislukt als de server SSL niet ondersteunt. Controleert ook het servercertificaat.
- Controleer volledig: de verbinding mislukt als de server geen ondersteuning biedt voor SSL. Controleert ook het servercertificaat met de naam van de host.
Opties: Uitschakelen (0) / Toestaan (1) / Voorkeur (2) (standaard) / Vereisen (3) / Verify-ca (4) / Verify-full (5)
Nee.
connectVia Deze eigenschap vertegenwoordigt de integration runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt Azure Integration Runtime of zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een privénetwerk bevindt). Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. Nee.
Aanvullende verbindingseigenschappen:
overzicht Hiermee stelt u het zoekpad voor schema's in. Nee.
Bundeling Of groepsgewijze verbindingen moeten worden gebruikt. Nee.
verbindingstijdlimiet De tijd die moet worden gewacht (in seconden) tijdens het tot stand brengen van een verbinding voordat de poging wordt beëindigd en er een fout wordt gegenereerd. Nee.
opdrachtTimeout De tijd die moet worden gewacht (in seconden) tijdens het uitvoeren van een opdracht voordat de poging wordt beëindigd en er een fout wordt gegenereerd. Ingesteld op nul voor oneindigheid. Nee.
vertrouwServercertificaat Of u het servercertificaat vertrouwt zonder het te valideren. Nee.
leesbuffergrootte Bepaalt de grootte van de interne buffer die Npgsql gebruikt bij het lezen. Verhogen kan de prestaties verbeteren als u grote waarden uit de database overdraagt. Nee.
tijdzone Hiermee haalt u de sessietijdzone op of stelt u deze in. Nee.
codering Hiermee haalt u de .NET-codering op voor codering/decodering van PostgreSQL-tekenreeksgegevens of stelt u deze in. Nee.

Basisverificatie

Vastgoed Beschrijving Verplicht
gebruikersnaam De gebruikersnaam waarmee u verbinding wilt maken. Niet vereist als u IntegratedSecurity gebruikt. Ja
wachtwoord Het wachtwoord waarmee u verbinding wilt maken. Niet vereist als u IntegratedSecurity gebruikt. Markeer dit veld als SecureString om het veilig op te slaan. U kunt ook verwijzen naar een geheim dat is opgeslagen in Azure Key Vault. Ja

Voorbeeld:

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": "5432",
            "database": "<database name>",
            "sslMode": 2,
            "username": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        }
    }
}

Voorbeeld:

Wachtwoord opslaan in Azure Key Vault

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": "5432",
            "database": "<database name>",
            "sslMode": 2,
            "username": "<user name>",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        }
    }
}

Door het systeem toegewezen beheerde identiteitverificatie

Een data factory of Synapse-werkruimte kan worden gekoppeld aan een door het systeem toegewezen beheerde identiteit die de service vertegenwoordigt bij het verifiëren van andere resources in Azure. U kunt deze beheerde identiteit gebruiken voor Azure Database for PostgreSQL-verificatie. De aangewezen factory of Synapse-werkruimte kan met behulp van deze identiteit gegevens openen en kopiëren van of naar uw database.

Volg de stappen om door het systeem toegewezen beheerde identiteit te gebruiken:

  1. Een data factory of Synapse-werkruimte kan worden gekoppeld aan een door het systeem toegewezen beheerde identiteit. Meer informatie. Een door het systeem toegewezen beheerde identiteit genereren

  2. De Azure-gegevens voor PostgreSQL met door het systeem toegewezen beheerde identiteit aan.

    Schermopname van de door het systeem toegewezen beheerde identiteitconfiguratie in de Azure Database for PostgreSQL-server.

  3. In uw Azure Database voor PostgreSQL-resource binnen Beveiliging

    1. Selecteer verificatie-

    2. Selecteer alleen Microsoft Entra-verificatie of PostgreSQL en Microsoft Entra-verificatie als authenticatiemethode.

    3. Selecteer + Microsoft Entra-beheerders toevoegen

    4. De door het systeem toegewezen beheerde identiteit voor de Azure Data Factory-resource toevoegen als een van de Microsoft Entra-beheerders

      Schermopname van het toevoegen van door het systeem toegewezen beheerde identiteit in de Azure Database for PostgreSQL-configuratie.

  4. Configureer een gekoppelde Azure-database voor PostgreSQL-service.

Voorbeeld:

{
    "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"
        }
    }
}

Opmerking

Dit verificatietype wordt niet ondersteund voor de zelf-hostende Integration Runtime.

Door de gebruiker toegewezen beheerde identiteitverificatie

Een data factory of Synapse-werkruimte kan worden gekoppeld aan een door de gebruiker toegewezen beheerde identiteit die de service vertegenwoordigt bij het verifiëren van andere resources in Azure. U kunt deze beheerde identiteit gebruiken voor Azure Database for PostgreSQL-verificatie. De aangewezen factory of Synapse-werkruimte kan met behulp van deze identiteit gegevens openen en kopiëren van of naar uw database.

Als u door de gebruiker toegewezen beheerde identiteitverificatie wilt gebruiken, geeft u naast de algemene eigenschappen die in de vorige sectie worden beschreven, de volgende eigenschappen op:

Vastgoed Beschrijving Verplicht
bewijs van bevoegdheid Geef de door de gebruiker toegewezen beheerde identiteit op als referentieobject. Ja

U moet ook de stappen volgen:

  1. Zorg ervoor dat u een resource voor door de gebruiker toegewezen beheerde identiteit maakt in Azure Portal. Voor meer informatie gaat u naar Door de gebruiker toegewezen beheerde identiteiten beheren

  2. De door de gebruiker toegewezen beheerde identiteit toewijzen aan uw Azure-database voor PostgreSQL-resource

    1. In uw Azure-database voor PostgreSQL-serverbron onder Beveiliging

    2. Selecteer verificatie-

    3. Controleer of de verificatiemethode alleen Microsoft Entra-verificatie is of PostgreSQL- en Microsoft Entra-verificatie

    4. Selecteer de optie + Microsoft Entra-beheerders toevoegen en kies uw door de gebruiker toegewezen beheerde identiteit

      Schermopname van de door de gebruiker toegewezen beheerde identiteitconfiguratie in de Azure-database voor PostgreSQL-server.

  3. De door de gebruiker toegewezen beheerde identiteit toewijzen aan uw Azure Data Factory-resource

    1. Selecteer Instellingen en vervolgens Beheerde identiteiten

    2. Op het tabblad Door de gebruiker toegewezen. Selecteer de + Toevoegen link en kies uw door de gebruiker beheerde identiteit

      Schermopname van de door de gebruiker toegewezen beheerde identiteitconfiguratie in de Azure Data Factory-resource.

  4. Configureer een gekoppelde Azure-database voor PostgreSQL-service.

Voorbeeld:

{
    "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"
            }
        }
    }
}

Authenticatie van service-principal

Vastgoed Beschrijving Verplicht
gebruikersnaam De weergavenaam van de serviceprincipal Ja
huurder De tenant waarop de Azure Database for PostgreSQL-server zich bevindt Ja
Serviceprincipaal-ID Applicatie-id van service-principal Ja
servicehoofdreferentietype Selecteren of het certificaat van de service-principal of de sleutel van de service-principal de gewenste verificatiemethode is
- ServicePrincipalCert: ingesteld op service-principalcertificaat voor service-principalcertificaat.
- ServicePrincipalKey: ingesteld op service-principalsleutel voor verificatie van de service-principalsleutel.
Ja
servicePrincipalKey Waarde van het cliëntgeheim. Wordt gebruikt wanneer de sleutel van de service-principal is geselecteerd Ja
azureCloudType Selecteer het Azure-cloudtype van uw Azure Database for PostgreSQL-server Ja
serviceprincipalIngevoerdCertificaat Certificaatbestand voor service-principal Ja
ServicePrincipalEmbeddedCertWachtwoord Certificaatwachtwoord voor service-principal indien nodig Nee.

Voorbeeld:

Service-principal-sleutel

{
    "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,
            "username": "<service principal name>",
            "authenticationType": "<authentication type>",
            "tenant": "<tenant>",
            "servicePrincipalId": "<service principal ID>",
            "azureCloudType": "<azure cloud type>",
            "servicePrincipalCredentialType": "<service principal type>",
            "servicePrincipalKey": "<service principal key>"
        }
    }
}

Voorbeeld:

Serviceprincipalcertificaat

{
    "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,
            "username": "<service principal name>",
            "authenticationType": "<authentication type>",
            "tenant": "<tenant>",
            "servicePrincipalId": "<service principal ID>",
            "azureCloudType": "<azure cloud type>",
            "servicePrincipalCredentialType": "<service principal type>",
            "servicePrincipalEmbeddedCert": "<service principal certificate>",
            "servicePrincipalEmbeddedCertPassword": "<service principal embedded certificate password>"
        }
    }
}

Opmerking

Microsoft Entra ID-verificatie met behulp van service-principal en door de gebruiker toegewezen beheerde identiteit wordt ondersteund op de zelf-gehoste Integration Runtime versie 5.50 of hoger.

Versie 1.0

De volgende eigenschappen worden ondersteund voor de gekoppelde Azure Database for PostgreSQL-service wanneer u versie 1.0 toepast:

Vastgoed Beschrijving Verplicht
soort De typeeigenschap moet worden ingesteld op: AzurePostgreSql. Ja
Versie De versie die je opgeeft. De waarde is 1.0. Ja
verbindingsstring Een Npgsql-verbindingsreeks om verbinding te maken met Azure Database for PostgreSQL.
U kunt ook een wachtwoord in Azure Key Vault plaatsen en de password configuratie uit de verbindingsreeks halen. Zie de volgende voorbeelden en sla referentiële gegevens op in Azure Key Vault voor meer informatie.
Ja
connectVia Deze eigenschap vertegenwoordigt de integration runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt Azure Integration Runtime of zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een privénetwerk bevindt). Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. Nee.

Een typische verbindingsreeks is host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>. Hier volgen meer eigenschappen die u per geval kunt instellen:

Vastgoed Beschrijving Opties Verplicht
EncryptionMethod (EM) De methode die het stuurprogramma gebruikt om gegevens te versleutelen die worden verzonden tussen het stuurprogramma en de databaseserver. Bijvoorbeeld EncryptionMethod=<0/1/6>; 0 (geen versleuteling ) (standaard) / 1 (SSL) / 6 (RequestSSL) Nee.
ValidateServerCertificate (VSC) Bepaalt of het stuurprogramma het certificaat valideert dat door de databaseserver wordt verzonden wanneer SSL-versleuteling is ingeschakeld (Encryption Method=1). Bijvoorbeeld ValidateServerCertificate=<0/1>; 0 (uitgeschakeld) (standaard) / 1 (ingeschakeld) Nee.

Voorbeeld:

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "1.0",
        "typeProperties": {
            "connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>"
        }
    }
}

Voorbeeld:

Wachtwoord opslaan in Azure Key Vault

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "1.0",
        "typeProperties": {
            "connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        }
    }
}

Eigenschappen van gegevensset

Zie Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets. Deze sectie bevat een lijst met eigenschappen die azure Database for PostgreSQL ondersteunt in gegevenssets.

Als u gegevens uit Azure Database for PostgreSQL wilt kopiëren, stelt u de typeeigenschap van de gegevensset in op AzurePostgreSqlTable. De volgende eigenschappen worden ondersteund:

Vastgoed Beschrijving Verplicht
soort De typeeigenschap van de gegevensset moet worden ingesteld op AzurePostgreSqlTable. Ja
overzicht Naam van het schema. Nee (als 'query' in de bron van de activiteit staat vermeld)
tafel Naam van de tabel/weergave. Nee (als 'query' in de bron van de activiteit staat vermeld)
tabelnaam Naam van de tabel. Deze eigenschap wordt ondersteund voor compatibiliteit met eerdere versies. Gebruik schema en table voor nieuwe workload. Nee (als 'query' in de bron van de activiteit staat vermeld)

Voorbeeld:

{
    "name": "AzurePostgreSqlDataset",
    "properties": {
        "type": "AzurePostgreSqlTable",
        "linkedServiceName": {
            "referenceName": "<AzurePostgreSql linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

Eigenschappen van de kopieeractiviteit

Zie Pijplijnen en activiteiten voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door een Azure Database for PostgreSQL-bron.

Azure Database for PostgreSql als bron

Als u gegevens wilt kopiëren uit Azure Database for PostgreSQL, stelt u het brontype in de kopieeractiviteit in op AzurePostgreSqlSource. De volgende eigenschappen worden ondersteund in de sectie bron van kopieeractiviteit:

Vastgoed Beschrijving Verplicht
soort De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op AzurePostgreSqlSource Ja
zoekopdracht Gebruik de aangepaste SQL-query om gegevens te lezen. Bijvoorbeeld: SELECT * FROM mytable of SELECT * FROM "MyTable". Opmerking in PostgreSQL: de naam van de entiteit wordt behandeld als niet hoofdlettergevoelig als deze niet wordt geciteerd. Nee (als de eigenschap tableName in de gegevensset is opgegeven)
querytimeout De wachttijd voordat de poging om een opdracht uit te voeren wordt beëindigd en een fout genereert, is de standaardwaarde 120 minuten. Als de parameter voor deze eigenschap is ingesteld, zijn toegestane waarden tijdspanne, zoals '02:00:00' (120 minuten). Zie CommandTimeoutvoor meer informatie. Nee.
partitie-opties Hiermee geeft u de opties voor gegevenspartitionering op die worden gebruikt voor het laden van gegevens uit Azure SQL Database.
Toegestane waarden zijn: Geen (standaard), PhysicalPartitionsOfTable en DynamicRange.
Wanneer een partitieoptie is ingeschakeld (dat wil niet None), wordt de mate van parallelle uitvoering om gegevens uit een Azure SQL Database gelijktijdig te laden, bepaald door de parallelCopies instelling voor de kopieeractiviteit.
Nee.
partitie-instellingen Geef de groep van de instellingen voor gegevenspartitionering op.
Toepassen wanneer de partitieoptie niet Noneis.
Nee.
Onder partitionSettings:
partitienamen De lijst met fysieke partities die moeten worden gekopieerd.
Toepassen wanneer de partitieoptie is PhysicalPartitionsOfTable. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfTabularPartitionName aan de WHERE-component. Zie de sectie Parallel kopiëren uit Azure Database for PostgreSQL voor een voorbeeld.
Nee.
partitiekolomnaam Geef de naam op van de bronkolom in geheel getal of datum/datum/tijd -type (int, smallintbigint, date, of timestamp without time zonetimestamp with time zonetime without time zone) dat wordt gebruikt door bereikpartitionering voor parallelle kopie. Als deze niet is opgegeven, wordt de primaire sleutel van de tabel automatisch gedetecteerd en gebruikt als partitiekolom.
Toepassen wanneer de partitieoptie is DynamicRange. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfRangePartitionColumnName aan de WHERE-component. Zie de sectie Parallel kopiëren uit Azure Database for PostgreSQL voor een voorbeeld.
Nee.
partitieBovensteGrens De maximale waarde van de partitiekolom voor het kopiëren van gegevens.
Toepassen wanneer de partitieoptie is DynamicRange. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfRangePartitionUpbound aan de WHERE-component. Zie de sectie Parallel kopiëren uit Azure Database for PostgreSQL voor een voorbeeld.
Nee.
partitieondergrens De minimale waarde van de partitiekolom om gegevens uit te kopiëren.
Toepassen wanneer de partitieoptie is DynamicRange. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfRangePartitionLowbound aan de WHERE-component. Zie de sectie Parallel kopiëren uit Azure Database for PostgreSQL voor een voorbeeld.
Nee.

Voorbeeld:

"activities":[
    {
        "name": "CopyFromAzurePostgreSql",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<AzurePostgreSql input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzurePostgreSqlSource",
                "query": "<custom query e.g. SELECT * FROM mytable>",
                "queryTimeout": "00:10:00"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Azure Database for PostgreSQL als sink

Als u gegevens wilt kopiëren naar Azure Database for PostgreSQL, stelt u het sinktype in de kopieeractiviteit in op SqlSink. De volgende eigenschappen worden ondersteund in de sink-sectie van de kopieeractiviteit.

Vastgoed Beschrijving Verplicht Connector-ondersteuningsversie
soort De typeeigenschap van de sink van de kopiëeractiviteit moet worden ingesteld op AzurePostgreSQLSink. Ja Versie 1.0 en versie 2.0
preCopyScript Geef in elke uitvoering een SQL-query op voor de kopieeractiviteit die moet worden uitgevoerd voordat u gegevens naar Azure Database for PostgreSQL schrijft. U kunt deze eigenschap gebruiken om de vooraf geladen gegevens op te schonen. Nee. Versie 1.0 en versie 2.0
writeMethod De methode die wordt gebruikt voor het schrijven van gegevens naar Azure Database for PostgreSQL.
Toegestane waarden zijn: CopyCommand (standaard, wat beter presteert), BulkInsert en Upsert (alleen versie 2.0).
Nee. Versie 1.0 en versie 2.0
upsertSettings Geef de groep van de instellingen voor schrijfgedrag op.
Toepassen wanneer de optie WriteBehavior is Upsert.
Nee. Versie 2.0
Onder upsertSettings:
toetsen/sleutels Geef de kolomnamen op voor unieke rijidentificatie. U kunt één sleutel of een reeks sleutels gebruiken. Sleutels moeten een primaire sleutel of een unieke kolom zijn. Als deze niet is opgegeven, wordt de primaire sleutel gebruikt. Nee. Versie 2.0
schrijfbatchgrootte Het aantal rijen dat per batch in Azure Database for PostgreSQL is geladen.
Toegestane waarde is een geheel getal dat het aantal rijen aangeeft.
Nee (standaard is 1.000.000) Versie 1.0 en versie 2.0
writeBatchTimeout Wachttijd voordat de batchinvoegbewerking is voltooid voordat er een time-out optreedt.
Toegestane waarden zijn tijdspantekenreeksen. Een voorbeeld is 00:30:00 (30 minuten).
Nee (standaard is 00:30:00) Versie 1.0 en versie 2.0

Voorbeeld 1: Opdracht kopiëren

"activities":[
    {
        "name": "CopyToAzureDatabaseForPostgreSQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure PostgreSQL output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzurePostgreSqlSink",
                "preCopyScript": "<custom SQL script>",
                "writeMethod": "CopyCommand",
                "writeBatchSize": 1000000
            }
        }
    }
]

Voorbeeld 2: Upsert-gegevens

"activities":[
    {
        "name": "CopyToAzureDatabaseForPostgreSQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure PostgreSQL output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzurePostgreSQLSink",
                "writeMethod": "Upsert",
                "upsertSettings": {
                    "keys": [
                        "<column name>"
                    ]
                },
            }
        }
    }
]

Gegevens bijwerken of toevoegen

Kopieeractiviteit ondersteunt systeemeigen upsert-bewerkingen. Als u een upsert wilt uitvoeren, moet de gebruiker sleutelkolom(s) opgeven die primaire sleutels of unieke kolommen zijn. Als de gebruiker geen sleutelkolom(en) opgeeft, worden primaire-sleutelkolom(s) in de sinktabel gebruikt. De kopieeractiviteit wijzigt de niet-sleutelkolom(men) in de sinktabel, waarbij de sleutelkolomwaarden overeenkomen met die in de brontabel; anders worden de gegevens opnieuw ingevoegd.

Parallel kopiëren vanuit Azure Database for PostgreSQL

De Azure Database for PostgreSQL-connector biedt bij het kopiëren van gegevens de mogelijkheid voor ingebouwde gegevenspartitionering om gegevens parallel te kopiëren. U vindt opties voor gegevenspartitionering op het tabblad Bron van de kopieeractiviteit.

Schermopname van partitieopties

Wanneer u een gepartitioneerde kopie inschakelt, voert de kopieeractiviteit parallelle query's uit op uw Azure Database for PostgreSQL-bron om gegevens per partitie te laden. De parallelle graad wordt bepaald door de parallelCopies instelling voor de kopieeractiviteit. Als u bijvoorbeeld instelt op parallelCopies vier, genereert de service gelijktijdig vier query's en voert deze uit op basis van de opgegeven partitieoptie en -instellingen. Elke query haalt een deel van de gegevens op uit uw Azure Database for PostgreSQL.

U wordt aangeraden parallelle kopie met gegevenspartitionering in te schakelen, met name wanneer u grote hoeveelheden gegevens uit uw Azure Database for PostgreSQL laadt. Hier volgen voorgestelde configuraties voor verschillende scenario's. Wanneer u gegevens kopieert naar een bestandsgegevensarchief, is het raadzaam om naar een map te schrijven als meerdere bestanden (alleen mapnaam opgeven), in welk geval de prestaties beter zijn dan schrijven naar één bestand.

Scenariobeschrijving Voorgestelde instellingen
Volledige belasting van grote tabel, met fysieke partities. Partitieoptie: fysieke partities van de tabel.

Tijdens de uitvoering detecteert de service automatisch de fysieke partities en kopieert de gegevens per partitie.
Volledige lading van een grote tabel, zonder fysieke partities, maar met een integer kolom voor gegevenspartitionering. Partitieopties: Dynamische bereikspartitie.
Partitiekolom: Geef de kolom op die wordt gebruikt om gegevens te partitioneren. Als dit niet is opgegeven, wordt de primaire sleutelkolom gebruikt.
Laad een grote hoeveelheid gegevens met behulp van een aangepaste query, met fysieke partities. Partitieoptie: fysieke partities van de tabel.
Query: SELECT * FROM ?AdfTabularPartitionName WHERE <your_additional_where_clause>.
Partitienaam: geef een of meer partitienamen op waaruit gegevens moeten worden gekopieerd. Als dit niet is opgegeven, detecteert de service automatisch de fysieke partities in de tabel die u hebt opgegeven in de PostgreSQL-gegevensset.

Tijdens de uitvoering vervangt de service ?AdfTabularPartitionName door de werkelijke partitienaam en verzendt deze naar Azure Database for PostgreSQL.
Laad een grote hoeveelheid gegevens met behulp van een aangepaste query, zonder fysieke partities, terwijl je een integer kolom voor gegevenspartitionering gebruikt. Partitieopties: Dynamische bereikspartitie.
Query: SELECT * FROM ?AdfTabularPartitionName WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Partitiekolom: Geef de kolom op die wordt gebruikt om gegevens te partitioneren. U kunt partitioneren op basis van de kolom met een geheel getal of een datum/datum/tijd-gegevenstype.
Bovengrens en partitieondergrens partitioneren: geef op of u wilt filteren op partitiekolom om alleen gegevens op te halen tussen het onderste en bovenste bereik.

Tijdens de uitvoering vervangt de service ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbounden ?AdfRangePartitionLowbound door de werkelijke kolomnaam en waardebereiken voor elke partitie en verzendt deze naar Azure Database for PostgreSQL.
Als de partitiekolom 'ID' bijvoorbeeld is ingesteld met de ondergrens 1 en de bovengrens als 80, waarbij parallelle kopie is ingesteld als 4, haalt de service gegevens op met vier partities. Hun id's liggen tussen [1.20], [21, 40], [41, 60] en [61, 80], respectievelijk.

Aanbevolen procedures voor het laden van gegevens met partitieoptie:

  1. Kies een onderscheidende kolom als partitiekolom (zoals primaire sleutel of unieke sleutel) om scheeftrekken van gegevens te voorkomen.
  2. Als de tabel een ingebouwde partitie heeft, gebruikt u de partitieoptie Fysieke partities van de tabel om betere prestaties te krijgen.
  3. Als u Azure Integration Runtime gebruikt om gegevens te kopiëren, kunt u grotere 'Gegevensintegratie-eenheden (DIU)' (>4) instellen om meer rekenresources te gebruiken. Controleer de toepasselijke scenario's daar.
  4. 'Mate van kopieerparallellisme' bepaalt de partitienummers. Als dit getal te groot wordt ingesteld, kan dat de prestaties negatief beïnvloeden. U wordt aangeraden dit nummer in te stellen als (DIU of het aantal zelf-hostende IR-knooppunten) * (2 tot en met 4).

Voorbeeld: volledige belasting van grote tabellen met fysieke partities

"source": {
    "type": "AzurePostgreSqlSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

Voorbeeld: query met dynamische bereikspartitie

"source": {
    "type": "AzurePostgreSqlSource",
    "query": "SELECT * FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
        "partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
    }
}

Mapping-eigenschappen van de gegevensstroom

Wanneer u gegevens omzet in de gegevensstroom voor mapping, kunt u tabellen schrijven en lezen vanuit Azure Database voor PostgreSQL. Voor meer informatie, zie de brontransformatie en sinktransformatie in gegevensstromen voor mapping. U kunt ervoor kiezen om een Azure Database for PostgreSQL-gegevensset of een inline gegevensset te gebruiken als bron- en doeltype.

Opmerking

Momenteel wordt alleen basisverificatie ondersteund voor zowel V1- als V2-versies van de Azure Database for PostgreSQL-connector in toewijzingsgegevensstromen.

Brontransformatie

De onderstaande tabel bevat de eigenschappen die worden ondersteund door de Bron van Azure Database for PostgreSQL. U kunt deze eigenschappen bewerken op het tabblad Bronopties .

Naam Beschrijving Verplicht Toegestane waarden Gegevensstroomscript-eigenschap
Tabel Als u Tabel als invoer selecteert, haalt de gegevensstroom alle gegevens op uit de tabel die is opgegeven in de gegevensset. Nee. - (alleen voor inline dataset)
tabelnaam
Zoekopdracht Als u Query als invoer selecteert, geef dan een SQL-query op om gegevens uit bron op te halen, zodat elke tabel in de gegevensset die u opgeeft overschreven wordt. Het gebruik van query's is een uitstekende manier om rijen te verminderen voor tests of zoekacties.

Order By-component wordt niet ondersteund, maar u kunt een volledige SELECT FROM-instructie instellen. U kunt ook door de gebruiker gedefinieerde tabelfuncties gebruiken. select * from udfGetData() is een UDF in SQL die een tabel retourneert die u in de gegevensstroom kunt gebruiken.
Queryvoorbeeld: select * from mytable where customerId > 1000 and customerId < 2000 of select * from "MyTable". Opmerking in PostgreSQL: de naam van de entiteit wordt behandeld als niet hoofdlettergevoelig als deze niet wordt geciteerd.
Nee. Snaar / Touwtje zoekopdracht
Schemanaam Als u Opgeslagen procedure als invoer selecteert, geeft u een schemanaam van de opgeslagen procedure op of selecteert u Vernieuwen om de service te vragen de schemanamen te detecteren. Nee. Snaar / Touwtje schemanaam
Opgeslagen procedure Als u Opgeslagen procedure als invoer selecteert, geeft u een naam op van de opgeslagen procedure om gegevens uit de brontabel te lezen of selecteert u Vernieuwen om de service te vragen de namen van de procedure te detecteren. Ja (als u Opgeslagen procedure als invoer selecteert) Snaar / Touwtje procedurenaam
Procedureparameters Als u Opgeslagen procedure als invoer selecteert, geeft u invoerparameters op voor de opgeslagen procedure in de volgorde die in de procedure is ingesteld of selecteert u Importeren om alle procedureparameters te importeren met behulp van het formulier @paraName. Nee. Array Ingangen
Batchgrootte Geef een batchgrootte op om grote gegevens in batches te segmenteren. Nee. Geheel getal batchgrootte
Isolatieniveau Kies een van de volgende isolatieniveaus:
- Vastgelegd lezen
- Niet-verzonden lezen (standaard)
- Herhaalbare leesbewerking
-Serializable
- Geen (isolatieniveau negeren)
Nee. READ_COMMITTED
LEZEN_ONGECOMMITTEERD
REPEATABLE_READ
SERIALISEERBAAR
GEEN
isolatieniveau

Voorbeeld van Azure Database for PostgreSQL-bronscript

Wanneer u Azure Database for PostgreSQL als brontype gebruikt, is het bijbehorende gegevensstroomscript:

source(allowSchemaDrift: true,
    validateSchema: false,
    isolationLevel: 'READ_UNCOMMITTED',
    query: 'select * from mytable',
    format: 'query') ~> AzurePostgreSQLSource

Afvoertransformatie

De onderstaande tabel bevat de eigenschappen die worden ondersteund door de Sink van Azure Database for PostgreSQL. U kunt deze eigenschappen bewerken op het tabblad Sink-opties .

Naam Beschrijving Verplicht Toegestane waarden Gegevensstroomscript-eigenschap
Update-methode Geef op welke bewerkingen zijn toegestaan op uw databasebestemming. De standaardinstelling is om alleen invoegingen toe te staan.
Als u rijen wilt bijwerken, toevoegen of verwijderen, is een Alter row-transformatie vereist om rijen voor deze acties te taggen.
Ja true of false te verwijderen
invoegbaar
kan worden bijgewerkt
bijwerkbaar en invoegbaar
Sleutelkolommen Voor updates, upserts en verwijderingen moeten sleutelkolommen worden ingesteld om te bepalen welke rij moet worden gewijzigd.
De kolomnaam die je als sleutel kiest, wordt gebruikt als onderdeel van volgende acties, zoals bijvoorbeeld updaten, upserten en verwijderen. Daarom moet u een kolom kiezen die bestaat in de "Sink-mapping".
Nee. Array toetsen/sleutels
Overslaan van het schrijven van sleutelkolommen Als u de waarde niet naar de sleutelkolom wilt schrijven, selecteert u 'Schrijfsleutelkolommen overslaan'. Nee. true of false skipKeyWrites
Tabelactie Bepaalt of alle rijen uit de doeltabel opnieuw moeten worden gemaakt of verwijderd voordat u schrijft.
- Geen: Er wordt geen wijziging aan de tabel aangebracht.
- Opnieuw maken: de tabel wordt verwijderd en opnieuw gemaakt. Vereist als u dynamisch een nieuwe tabel maakt.
- Trunceren: Alle rijen uit de doeltabel worden verwijderd.
Nee. true of false recreëren
afkappen
Batchgrootte Geef op hoeveel rijen er in elke batch worden geschreven. Grotere batchgrootten verbeteren compressie en geheugenoptimalisatie, maar risico op geheugenuitzonderingen bij het opslaan van gegevens in de cache. Nee. Geheel getal batchgrootte
Gebruikersdatabaseschema selecteren Standaard wordt een tijdelijke tabel gemaakt onder het sinkschema als fasering. U kunt ook de optie Sink-schema gebruiken uitschakelen en in plaats daarvan een schemanaam opgeven waaronder Data Factory een faseringstabel maakt om upstreamgegevens te laden en deze automatisch op te schonen na voltooiing. Zorg ervoor dat u een tabelmachtiging hebt gemaakt in de database en dat u de machtiging voor het schema wijzigt. Nee. Snaar / Touwtje stagingSchemaName
Pre- en post-SQL-scripts Geef SQL-scripts met meerdere regels op die worden uitgevoerd vóór (voorverwerking) en na (naverwerking) gegevens naar uw Sink-database worden geschreven. Nee. Snaar / Touwtje preSQLs
postSQLs

Aanbeveling

  1. Splits enkele batchscripts met meerdere opdrachten in meerdere batches.
  2. Alleen DDL-instructies (Data Definition Language) en DML-instructies (Data Definition Language) die een eenvoudig aantal updates retourneren, kunnen worden uitgevoerd als onderdeel van een batch. Meer informatie over het uitvoeren van batchbewerkingen
  • Incrementeel extraheren inschakelen: gebruik deze optie om ADF te laten weten dat alleen rijen moeten worden verwerkt die zijn gewijzigd sinds de laatste keer dat de pijplijn is uitgevoerd.

  • Incrementele kolom: Wanneer u de functie incrementeel extraheren gebruikt, moet u de datum/tijd of numerieke kolom kiezen die u wilt gebruiken als het watermerk in de brontabel.

  • Begin met lezen vanaf het begin: Door deze optie in te stellen met incrementele extractie, wordt ADF geïnstrueerd om bij de eerste uitvoering van een pijplijn met ingeschakelde incrementele extractie alle rijen te lezen.

Voorbeeld van Azure Database for PostgreSQL-sink-script

Wanneer u Azure Database for PostgreSQL als sinktype gebruikt, is het bijbehorende gegevensstroomscript:

IncomingStream sink(allowSchemaDrift: true,
    validateSchema: false,
    deletable:false,
    insertable:true,
    updateable:true,
    upsertable:true,
    keys:['keyColumn'],
    format: 'table',
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> AzurePostgreSqlSink

Script-activiteit

Belangrijk

Scriptactiviteit wordt alleen ondersteund in de versie 2.0-connector.

Belangrijk

Instructies voor meerdere query's met behulp van uitvoerparameters worden niet ondersteund. Het wordt aanbevolen om uitvoerquery's op te splitsen in afzonderlijke scriptblokken binnen dezelfde of andere scriptactiviteit.

Statements voor meerdere query's met behulp van positionele parameters worden niet ondersteund. Het wordt aanbevolen om positionele query's op te splitsen in afzonderlijke scriptblokken binnen dezelfde of andere scriptactiviteit.

Zie Scriptactiviteit voor meer informatie over scriptactiviteit.

Eigenschappen van opzoekactiviteit

Zie Lookup-activiteit voor meer informatie over de eigenschappen.

De connector voor Azure Database voor PostgreSQL bijwerken

Selecteer op de pagina Gekoppelde service bewerken2.0 onder Versie en configureer de gekoppelde service door te verwijzen naar de eigenschappen van de gekoppelde service versie 2.0.

Zie Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.