Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              GÄLLER FÖR: Azure Data Factory
 Azure Data Factory  Azure Synapse Analytics
 Azure Synapse Analytics
Tips
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Den här artikeln beskriver hur du använder pipelines för kopieringsaktivitet i Azure Data Factory och Synapse Analytics för att kopiera data från en PostgreSQL-databas. Den bygger på översiktsartikeln kopieringsaktivitet som presenterar en allmän översikt över aktiviteten.
Viktigt!
PostgreSQL V1-anslutningsappen är i borttagningsfasen. Du rekommenderas att uppgradera PostgreSQL-anslutningsappen från V1 till V2.
Funktioner som stöds
Den här PostgreSQL-anslutningsappen stöds för följande funktioner:
| Funktioner som stöds | Infrarött | 
|---|---|
| Kopieringsaktivitet (källa/-) | (1) (2) | 
| Sökningsaktivitet | (1) (2) | 
(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning
En lista över datalager som stöds som källor/mottagare av kopieringsaktiviteten finns i tabellen Datalager som stöds.
Mer specifikt stöder den här PostgreSQL-anslutningsappen PostgreSQL version 12 och senare.
Förutsättningar
Om ditt datalager finns i ett lokalt nätverk, ett virtuellt Azure-nätverk eller Amazon Virtual Private Cloud måste du konfigurera en lokalt installerad integrationskörning för att ansluta till det.
Om ditt datalager är en hanterad molndatatjänst kan du använda Azure Integration Runtime. Om åtkomsten är begränsad till IP-adresser som är godkända i brandväggsreglerna kan du lägga till Azure Integration Runtime-IP-adresser i listan över tillåtna.
Du kan också använda funktionen för integrering av hanterade virtuella nätverk i Azure Data Factory för att få åtkomst till det lokala nätverket utan att installera och konfigurera en lokalt installerad integrationskörning.
Mer information om de nätverkssäkerhetsmekanismer och alternativ som stöds av Data Factory finns i Strategier för dataåtkomst.
Integration Runtime tillhandahåller en inbyggd PostgreSQL-drivrutin från och med version 3.7. Därför behöver du inte installera någon drivrutin manuellt.
Komma igång
Om du vill utföra kopieringsaktiviteten med en pipeline kan du använda något av följande verktyg eller SDK:er:
- Data kopieringsverktyget
- Azure Portal
- .NET SDK
- Python SDK
- Azure PowerShell
- REST-API
- mall för Azure Resource Manager
Skapa en länkad tjänst till PostgreSQL med hjälp av användargränssnittet
Använd följande steg för att skapa en länkad tjänst till PostgreSQL i Azure Portal användargränssnittet.
- Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och klicka sedan på Ny: 
- Sök efter Postgre och välj PostgreSQL-anslutningsappen.   
- Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.   
Konfigurationsinformation för anslutningsprogram
Följande avsnitt innehåller information om egenskaper som används för att definiera Data Factory-entiteter som är specifika för PostgreSQL-anslutningstjänsten.
Länkade tjänstegenskaper
Följande egenskaper stöds för postgreSQL-länkad tjänst:
| Fastighet | Beskrivning | Obligatoriskt | 
|---|---|---|
| typ | Typegenskapen måste anges till: PostgreSqlV2 | Ja | 
| server | Anger värdnamnet – och eventuellt port – som PostgreSQL körs på. | Ja | 
| port/hamn | TCP-porten för PostgreSQL-servern. | Nej | 
| databas | PostgreSQL-databasen att ansluta till. | Ja | 
| användarnamn | Användarnamnet som ska anslutas till. Krävs inte om du använder IntegratedSecurity. | Ja | 
| lösenord | Lösenordet som ska anslutas till. Krävs inte om du använder IntegratedSecurity. | Ja | 
| ssl-läge | Styr om SSL används, beroende på serversupport. - Inaktivera: SSL är inaktiverat. Om servern kräver SSL misslyckas anslutningen. - Tillåt: Föredrar icke-SSL-anslutningar om servern tillåter dem, men tillåter SSL-anslutningar. - Föredrar: Föredrar SSL-anslutningar om servern tillåter dem, men tillåter anslutningar utan SSL. - Kräv: Anslutningen misslyckas om servern inte stöder SSL. - Verify-ca: Anslutningen misslyckas om servern inte stöder SSL. Verifierar även servercertifikatet. - Verifiera: Anslutningen misslyckas om servern inte stöder SSL. Verifierar även att servercertifikatet stämmer överens med värdens namn. Alternativ: Inaktivera (0) / Tillåt (1) / Föredrar (2) (standard) / Kräv (3) / Verify-ca (4) / Verifiera fullständig (5) | Nej | 
| autentiseringstyp | Autentiseringstyp för att ansluta till databasen. Stöder endast Basic. | Ja | 
| connectVia | Integration Runtime som ska användas för att ansluta till datalagret. Läs mer i avsnittet Förutsättningar . Om den inte anges använder den standardkörningen för Azure-integrering. | Nej | 
| Ytterligare anslutningsegenskaper: | ||
| Schemat | Anger sökvägen till schemasökningen. | Nej | 
| sammanslagning | Om anslutningspooler ska användas. | Nej | 
| anslutningstidsgräns | Tiden att vänta (i sekunder) när du försöker upprätta en anslutning innan du avslutar försöket och genererar ett fel. | Nej | 
| kommandoTidsgräns | Tiden att vänta (i sekunder) när du försöker köra ett kommando innan du avslutar försöket och genererar ett fel. Ställ in på noll för oändligheten. | Nej | 
| litaPåServercertifikat | Om du vill lita på servercertifikatet utan att verifiera det. | Nej | 
| SSL-certifikat | Plats för ett klientcertifikat som ska skickas till servern. | Nej | 
| SSL-nyckel | Plats för en klientnyckel för ett klientcertifikat som ska skickas till servern. | Nej | 
| ssl-lösenord | Lösenord för en nyckel för ett klientcertifikat. | Nej | 
| läsbuffertstorlek | Avgör storleken på den interna buffert som Npgsql använder vid läsning. Att öka kan förbättra prestanda om du överför stora värden från databasen. | Nej | 
| logParameters | När det är aktiverat loggas parametervärden när kommandon körs. | Nej | 
| tidszon | Hämtar eller ställer in sessionens tidszon. | Nej | 
| kodning | Hämtar eller anger den .NET-kodning som ska användas för att koda/avkoda PostgreSQL-strängdata. | Nej | 
Kommentar
För att kunna ha fullständig SSL-verifiering via ODBC-anslutningen när du använder den lokalt installerade integrationskörningen måste du använda en ODBC-typanslutning i stället för PostgreSQL-anslutningsappen explicit och slutföra följande konfiguration:
- Konfigurera DSN på alla SHIR-servrar.
- Placera rätt certifikat för PostgreSQL i C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt på SHIR-servrarna. Det är här ODBC-drivrutinen letar efter > SSL-certifikatet för att verifiera när den ansluter till databasen.
- I datafabriksanslutningen använder du en ODBC-typanslutning, där din anslutningssträng pekar på det DSN som du skapade på SHIR-servrarna.
Exempel:
{
    "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"
        }
    }
}
Exempel: Lagra lösenord i 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"
        }
    }
}
Egenskaper för datauppsättning
En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i artikeln datauppsättningar . Det här avsnittet innehåller en lista över egenskaper som stöds av PostgreSQL-datauppsättningen.
Följande egenskaper stöds för att kopiera data från PostgreSQL:
| Fastighet | Beskrivning | Obligatoriskt | 
|---|---|---|
| typ | Datamängdens typegenskap måste anges till: PostgreSqlV2Table | Ja | 
| Schemat | Namnet på schemat. | Nej (om "fråga" i aktivitetskällan har angetts) | 
| bord | Tabellens namn. | Nej (om "fråga" i aktivitetskällan har angetts) | 
Exempel
{
    "name": "PostgreSQLDataset",
    "properties":
    {
        "type": "PostgreSqlV2Table",
        "linkedServiceName": {
            "referenceName": "<PostgreSQL linked service name>",
            "type": "LinkedServiceReference"
        },
        "annotations": [],
        "schema": [],
        "typeProperties": {
            "schema": "<schema name>",
            "table": "<table name>"
        }
    }
}
Om du använder RelationalTable en typ av datauppsättning stöds den fortfarande som den är, medan du rekommenderas att använda den nya framöver.
Kopiera egenskaper för aktivitet
En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i artikeln Pipelines . Det här avsnittet innehåller en lista över egenskaper som stöds av PostgreSQL-källan.
PostgreSQL som källa
Om du vill kopiera data från PostgreSQL stöds följande egenskaper i avsnittet kopieringsaktivitetskälla:
| Fastighet | Beskrivning | Obligatoriskt | 
|---|---|---|
| typ | Typegenskapen för kopieringsaktivitetskällan måste anges till: PostgreSqlV2Source | Ja | 
| förfrågan | Använd den anpassade SQL-frågan för att läsa data. Exempel: "query": "SELECT * FROM \"MySchema\".\"MyTable\"". | Nej (om "tableName" har specificerats i datauppsättningen) | 
| förfråganTidsgräns | Väntetiden innan ett försök att köra ett kommando avslutas och ett fel genereras är som standard 120 minuter. Om parametern har angetts för den här egenskapen är tillåtna värden tidsintervall, till exempel "02:00:00" (120 minuter). Mer information finns i CommandTimeout. Om både commandTimeoutochqueryTimeoutär konfigurerade harqueryTimeoutföreträde. | Nej | 
Kommentar
Schema- och tabellnamn är skiftlägeskänsliga. Omslut dem med "" (dubbla citattecken) i sökfrågan.
Exempel:
"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>"
            }
        }
    }
]
Om du använde en typad källa med RelationalSource stöds den fortfarande som den är, men det rekommenderas att du använder den nya i framtiden.
Datatypsmappning för PostgreSQL
När du kopierar data från PostgreSQL används följande mappningar från PostgreSQL-datatyper till mellanliggande datatyper som används av tjänsten internt. Se Schema- och datatypmappningar för att lära dig mer om hur kopieringsaktivitet mappar källschemat och datatypen till mottagaren.
| PostgreSQL-datatyp | Tillfällig tjänstdatatyp för PostgreSQL V2 | Tillfällig tjänstdatatyp för PostgreSQL V1 | 
|---|---|---|
| SmallInt | Int16 | Int16 | 
| Integer | Int32 | Int32 | 
| BigInt | Int64 | Int64 | 
| Decimal(Noggrannhet <= 28) | Decimal | Decimal | 
| Decimal(Precision > 28) | Inte stödd | 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 | 
Egenskaper för sökaktivitet
Mer information om egenskaperna finns i Sökningsaktivitet.
Uppgradera PostgreSQL-anslutningsappen
Här följer steg som hjälper dig att uppgradera postgreSQL-anslutningsappen:
- Skapa en ny Länkad PostgreSQL-tjänst och konfigurera den genom att referera till länkade tjänstegenskaper. 
- Datatypsmappningen för PostgreSQL V2-anslutningsappen skiljer sig från den för V1. Information om den senaste datatypsmappningen finns i Datatypsmappning för PostgreSQL. 
Skillnader mellan PostgreSQL V2 och V1
Tabellen nedan visar skillnaderna i datatypsmappning mellan PostgreSQL V2 och V1.
| PostgreSQL-datatyp | Tillfällig tjänstdatatyp för PostgreSQL V2 | Tillfällig tjänstdatatyp för PostgreSQL V1 | 
|---|---|---|
| Pengar | Decimal | Sträng | 
| Tidsstämpel med tidszon | Datum/tid | Sträng | 
| Tid med tidszon | DateTimeOffset (tidpunkt med tidsförskjutning) | Sträng | 
| Intervall | Tidsintervall | Sträng | 
| BigDecimal | Stöds ej. Du kan också använda to_char()funktionen för att konvertera BigDecimal till String. | Sträng | 
Relaterat innehåll
För en lista över datalager som stöds som källor och mål av kopieringsaktiviteten, se stödda datalager.
 
              
              