Gegevens kopiëren uit PostgreSQL met behulp van Azure Data Factory of Synapse Analytics

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

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 de kopieeractiviteit in Azure Data Factory- en Synapse Analytics-pijplijnen gebruikt om gegevens uit een PostgreSQL-database te kopiëren. Het is gebaseerd op het artikel over het overzicht van kopieeractiviteiten met een algemeen overzicht van de kopieeractiviteit.

Belangrijk

De nieuwe PostgreSQL-connector biedt verbeterde systeemeigen PostgreSQL-ondersteuning en betere prestaties. Als u de verouderde PostgreSQL-connector in uw oplossing gebruikt, die alleen voor achterwaartse compatibiliteit wordt ondersteund, raadpleegt u het artikel PostgreSQL-connector (verouderd).

Ondersteunde mogelijkheden

Deze PostgreSQL-connector wordt ondersteund voor de volgende mogelijkheden:

Ondersteunde mogelijkheden IR
Copy-activiteit (bron/-) (1) (2)
Activiteit Lookup (1) (2)

(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime

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

Deze PostgreSQL-connector ondersteunt met name PostgreSQL versie 7.4 en hoger.

Vereisten

Als uw gegevensarchief zich in een on-premises netwerk, een virtueel Azure-netwerk of een virtuele particuliere cloud van Amazon bevindt, moet u een zelf-hostende Integration Runtime configureren om er verbinding mee te maken.

Als uw gegevensarchief een beheerde cloudgegevensservice is, kunt u De Azure Integration Runtime gebruiken. Als de toegang is beperkt tot IP-adressen die zijn goedgekeurd in de firewallregels, kunt u IP-adressen van Azure Integration Runtime toevoegen aan de acceptatielijst.

U kunt ook de beheerde functie voor integratieruntime voor virtuele netwerken in Azure Data Factory gebruiken om toegang te krijgen tot het on-premises netwerk zonder een zelf-hostende Integration Runtime te installeren en te configureren.

Zie Strategieën voor gegevenstoegang voor meer informatie over de netwerkbeveiligingsmechanismen en -opties die door Data Factory worden ondersteund.

Integration Runtime biedt een ingebouwd PostgreSQL-stuurprogramma vanaf versie 3.7. Daarom hoeft u geen stuurprogramma handmatig te installeren.

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 PostgreSQL met behulp van de gebruikersinterface

Gebruik de volgende stappen om een gekoppelde service te maken voor 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 klik vervolgens op Nieuw:

  2. Zoek naar Postgre en selecteer de PostgreSQL-connector.

    Selecteer de PostgreSQL-connector.

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

    Een gekoppelde service configureren voor PostgreSQL.

configuratiedetails Verbinding maken or

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

Eigenschappen van gekoppelde service

De volgende eigenschappen worden ondersteund voor de gekoppelde PostgreSQL-service:

Eigenschappen Beschrijving Vereist
type De typeeigenschap moet worden ingesteld op: PostgreSqlV2 Ja
server Hiermee geeft u de hostnaam - en eventueel poort - waarop PostgreSQL wordt uitgevoerd. Ja
poort De TCP-poort van de PostgreSQL-server. Nee
database De PostgreSQL-database waarmee u verbinding wilt maken. Ja
gebruikersnaam De gebruikersnaam waarmee u verbinding wilt maken. Niet vereist als u IntegratedSecurity gebruikt. Ja
password Het wachtwoord waarmee u verbinding wilt maken. Niet vereist als u IntegratedSecurity gebruikt. Ja
sslMode 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.
- Liever SSL-verbindingen als de server deze toestaat, maar verbindingen zonder SSL toestaan.
- Vereisen: mislukt de verbinding als de server geen ondersteuning biedt voor SSL.
- Verify-ca: mislukt de verbinding als de server ssl niet ondersteunt. Controleert ook het servercertificaat.
- Controleer volledig: mislukt de verbinding 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
authenticationType Verificatietype voor het maken van verbinding met de database. Ondersteunt alleen Basic. Ja
connectVia De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Meer informatie vindt u in de sectie Vereisten . Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. Nee
Aanvullende verbindingseigenschappen:
schema Hiermee stelt u het zoekpad voor schema's in. Nee
Bundeling Of groepsgewijze verbindingen moeten worden gebruikt. Nee
Connectiontimeout 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
Commandtimeout 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
trustServerCertificate Of u het servercertificaat vertrouwt zonder het te valideren. Nee
sslCertificate Locatie van een clientcertificaat dat naar de server moet worden verzonden. Nee
sslKey Locatie van een clientsleutel voor een clientcertificaat dat naar de server moet worden verzonden. Nee
sslPassword Wachtwoord voor een sleutel voor een clientcertificaat. Nee
readBufferSize 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
logParameters Wanneer deze functie is ingeschakeld, worden parameterwaarden geregistreerd wanneer opdrachten worden uitgevoerd. Nee
timezone Hiermee haalt u de sessietijdzone op of stelt u deze in. Nee
Codering Hiermee haalt u de .NET-codering op die wordt gebruikt voor het coderen/decoderen van PostgreSQL-tekenreeksgegevens. Nr.

Notitie

Als u volledige SSL-verificatie wilt hebben via de ODBC-verbinding wanneer u de zelf-hostende Integration Runtime gebruikt, moet u expliciet een ODBC-typeverbinding gebruiken in plaats van de PostgreSQL-connector en de volgende configuratie voltooien:

  1. Stel de DSN in op SHIR-servers.
  2. Plaats het juiste certificaat voor PostgreSQL in C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt op de SHIR-servers. Hier zoekt het ODBC-stuurprogramma naar > het SSL-certificaat om te controleren wanneer het verbinding maakt met de database.
  3. Gebruik in uw data factory-verbinding een ODBC-typeverbinding met uw verbindingsreeks die verwijst naar de DSN die u hebt gemaakt op uw SHIR-servers.

Voorbeeld:

{
    "name": "PostgreSqlLinkedService",
    "properties": {
        "type": "PostgreSqlV2",
        "typeProperties": {
            "server": "<server>",
            "port": 5432,
            "database": "<database>",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "sslmode": <sslmode>,
            "authenticationType": "Basic"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Voorbeeld: wachtwoord opslaan in Azure Key Vault

{
    "name": "PostgreSqlLinkedService",
    "properties": {
        "type": "PostgreSqlV2",
        "typeProperties": {
            "server": "<server>",
            "port": 5432,
            "database": "<database>",
            "username": "<username>",
            "password": {
                "type": "AzureKeyVaultSecret",
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName>"
            }
            "sslmode": <sslmode>,
            "authenticationType": "Basic"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Eigenschappen van gegevensset

Zie het artikel 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 worden ondersteund door postgreSQL-gegevensset.

Als u gegevens uit PostgreSQL wilt kopiëren, worden de volgende eigenschappen ondersteund:

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de gegevensset moet worden ingesteld op: PostgreSqlV2Table Ja
schema Naam van het schema. Nee (als 'query' in de activiteitsbron is opgegeven)
table Naam van de tabel. Nee (als 'query' in de activiteitsbron is opgegeven)

Voorbeeld

{
    "name": "PostgreSQLDataset",
    "properties":
    {
        "type": "PostgreSqlV2Table",
        "linkedServiceName": {
            "referenceName": "<PostgreSQL linked service name>",
            "type": "LinkedServiceReference"
        },
        "annotations": [],
        "schema": [],
        "typeProperties": {
            "schema": "<schema name>",
            "table": "<table name>"
        }
    }
}

Als u RelationalTable getypte gegevensset gebruikt, wordt deze nog steeds ondersteund, terwijl u wordt aangeraden de nieuwe gegevensset te gebruiken.

Eigenschappen van de kopieeractiviteit

Zie het artikel Pijplijnen 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 de PostgreSQL-bron.

PostgreSQL als bron

Als u gegevens uit PostgreSQL wilt kopiëren, worden de volgende eigenschappen ondersteund in de sectie bron van kopieeractiviteit:

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op: PostgreSqlV2Source Ja
query Gebruik de aangepaste SQL-query om gegevens te lezen. Voorbeeld: "query": "SELECT * FROM \"MySchema\".\"MyTable\"". Nee (als 'tableName' in de gegevensset is opgegeven)

Notitie

Schema- en tabelnamen zijn hoofdlettergevoelig. Plaats deze tussen "" (dubbele aanhalingstekens) in de query.

Voorbeeld:

"activities":[
    {
        "name": "CopyFromPostgreSQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<PostgreSQL input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "PostgreSqlV2Source",
                "query": "SELECT * FROM \"MySchema\".\"MyTable\""
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Als u RelationalSource getypte bron gebruikt, wordt deze nog steeds ondersteund, terwijl u wordt aangeraden de nieuwe bron te gebruiken.

Toewijzing van gegevenstypen voor PostgreSQL

Bij het kopiëren van gegevens uit PostgreSQL worden de volgende toewijzingen gebruikt van PostgreSQL-gegevenstypen naar tussentijdse gegevenstypen die intern door de service worden gebruikt. Zie Schema- en gegevenstypetoewijzingen voor meer informatie over hoe kopieeractiviteit het bronschema en het gegevenstype toewijst aan de sink.

PostgreSql-gegevenstype Tussentijdse servicegegevenstype Tussentijdse servicegegevenstype voor PostgreSQL (verouderd)
SmallInt Int16 Int16
Integer Int32 Int32
BigInt Int64 Int64
Decimal (Precisie <= 28) Decimal Decimal
Decimal (Precisie > 28) Niet-ondersteunde String
Numeric Decimal Decimal
Real Single Single
Double Double Double
SmallSerial Int16 Int16
Serial Int32 Int32
BigSerial Int64 Int64
Money Decimal String
Char String String
Varchar String String
Text String String
Bytea Byte[] Byte[]
Timestamp DateTime DateTime
Timestamp with time zone DateTime String
Date DateTime DateTime
Time TimeSpan TimeSpan
Time with time zone DateTimeOffset String
Interval TimeSpan String
Boolean Boolean Boolean
Point String String
Line String String
Iseg String String
Box String String
Path String String
Polygon String String
Circle String String
Cidr String String
Inet String String
Macaddr String String
Macaddr8 String String
Tsvector String String
Tsquery String String
UUID Guid Guid
Json String String
Jsonb String String
Array String String
Bit Byte[] Byte[]
Bit varying Byte[] Byte[]
XML String String
IntArray String String
TextArray String String
NumbericArray String String
DateArray String String
Range String String
Bpchar String String

Eigenschappen van opzoekactiviteit

Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.

De gekoppelde PostgreSQL-service upgraden

Hier volgen stappen waarmee u uw gekoppelde PostgreSQL-service kunt upgraden:

  1. Maak een nieuwe gekoppelde PostgreSQL-service en configureer deze door te verwijzen naar de eigenschappen van de gekoppelde service.

  2. De toewijzing van het gegevenstype voor de meest recente gekoppelde PostgreSQL-service verschilt van die voor de verouderde versie. Zie Gegevenstypetoewijzing voor PostgreSQL voor meer informatie over de meest recente toewijzing van gegevenstypen.

Verschillen tussen PostgreSQL en PostgreSQL (verouderd)

In de onderstaande tabel ziet u de verschillen tussen de toewijzing van gegevenstypen tussen PostgreSQL en PostgreSQL (verouderd).

PostgreSQL-gegevenstype Tussentijdse servicegegevenstype voor PostgreSQL Tussentijdse servicegegevenstype voor PostgreSQL (verouderd)
Money Decimaal String
Tijdstempel met tijdzone Datum en tijd String
Tijd met tijdzone DateTimeOffset String
Interval TimeSpan String
BigDecimal Wordt niet ondersteund. Als alternatief kunt u de to_char() functie gebruiken om BigDecimal te converteren naar String. String

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