Delen via


Gegevens kopiëren uit PostgreSQL V2 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 de kopieeractiviteit in Azure Data Factory- en Synapse Analytics-pijplijnen gebruikt om gegevens uit een PostgreSQL-database te kopiëren. Het bouwt voort op het artikel overzicht van kopieeractiviteiten dat een algemeen overzicht van kopieeractiviteit presenteert.

Belangrijk

De PostgreSQL V1-connector bevindt zich in de verwijderingsfase. U wordt aangeraden de PostgreSQL-connector van V1 naar V2 te upgraden.

Ondersteunde mogelijkheden

Deze PostgreSQL-connector wordt ondersteund voor de volgende mogelijkheden:

Ondersteunde mogelijkheden IR
Kopieeractiviteit (bron/-) (1) (2)
Zoekactiviteit (1) (2)

(1) Azure-integratieruntime (2) Zelfgehoste integratieruntime

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 12 en hoger.

Vereiste voorwaarden

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.

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 PostgreSQL-connector.

Eigenschappen van gekoppelde service

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

Vastgoed Beschrijving Verplicht
soort De typeeigenschap moet worden ingesteld op: PostgreSqlV2 Ja
bedieningscomputer Hiermee geeft u de hostnaam - en eventueel poort - waarop PostgreSQL wordt uitgevoerd. Ja
poort/haven De TCP-poort van de PostgreSQL-server. Nee.
gegevensbank De PostgreSQL-database waarmee u verbinding wilt maken. Ja
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. 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.
- Geef de voorkeur aan SSL-verbindingen als de server deze toestaat, maar sta ook verbindingen zonder SSL toe.
- Vereisen: Laat de verbinding mislukken 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.
authenticatietype Verificatietype voor het maken van verbinding met de database. Ondersteunt alleen Basic. Ja
connectVia De Integration Runtime die gebruikt moet worden om verbinding te maken met de datastore. Raadpleeg de sectie Vereisten voor meer informatie. 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.
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.
vertrouwServercertificaat Of u het servercertificaat vertrouwt zonder het te valideren. Nee.
ssl-certificaat Locatie van een clientcertificaat dat naar de server moet worden verzonden. Nee.
SSL-sleutel Locatie van een clientsleutel voor een clientcertificaat dat naar de server moet worden verzonden. Nee.
sslWachtwoord Wachtwoord voor een sleutel voor een clientcertificaat. 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.
logparameters Wanneer deze functie is ingeschakeld, worden parameterwaarden geregistreerd wanneer opdrachten worden uitgevoerd. Nee.
tijdzone 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. Nee.

Opmerking

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

Voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van datasets, zie het artikel 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:

Vastgoed Beschrijving Verplicht
soort De typeeigenschap van de gegevensset moet worden ingesteld op: PostgreSqlV2Table Ja
overzicht Naam van het schema. Nee (als 'query' in de bron van de activiteit staat vermeld)
tafel Naam van de tabel. Nee (als 'query' in de bron van de activiteit staat vermeld)

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:

Vastgoed Beschrijving Verplicht
soort De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op: PostgreSqlV2Source Ja
zoekopdracht Gebruik de aangepaste SQL-query om gegevens te lezen. Voorbeeld: "query": "SELECT * FROM \"MySchema\".\"MyTable\"". Nee (als '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.
Als zowel commandTimeout als queryTimeout zijn geconfigureerd, heeft queryTimeout voorrang.
Nee.

Opmerking

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\"",
                "queryTimeout": "00:10:00"
            },
            "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 voor PostgreSQL V2 Tussentijdse servicegegevenstype voor PostgreSQL V1
SmallInt Int16 Int16
Integer Int32 Int32
BigInt Int64 Int64
Decimal (Precisie <= 28) Decimal Decimal
Decimal (Precisie > 28) Niet ondersteund 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
NumericArray String String
DateArray String String
Range String String
Bpchar String String

Eigenschappen van opzoekactiviteit

Om meer te weten te komen over de eigenschappen, raadpleegt u Lookup activity.

De PostgreSQL-connector upgraden

Hier volgen stappen waarmee u uw PostgreSQL-connector 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 PostgreSQL V2-connector verschilt van die voor V1. Zie Gegevenstypetoewijzing voor PostgreSQL voor meer informatie over de meest recente toewijzing van gegevenstypen.

Verschillen tussen PostgreSQL V2 en V1

In de onderstaande tabel ziet u de verschillen in de toewijzing van gegevenstypen tussen PostgreSQL V2 en V1.

PostgreSQL-gegevenstype Tussentijdse servicegegevenstype voor PostgreSQL V2 Tussentijdse servicegegevenstype voor PostgreSQL V1
Geld Decimaal Snaar / Touwtje
Tijdstempel met tijdzone Datum/tijd Snaar / Touwtje
Tijd met tijdzone DatumTijdOffset Snaar / Touwtje
Tijdsegment Tijdsduur Snaar / Touwtje
BigDecimal Wordt niet ondersteund. Als alternatief kunt u de to_char() functie gebruiken om BigDecimal te converteren naar String. Snaar / Touwtje

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