Dela via


Kopiera data från PostgreSQL V1 med Azure Data Factory eller Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

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 för kopieringsaktivitet som visar en allmän översikt över kopieringsaktiviteten.

Viktigt!

PostgreSQL V2-anslutningsappen ger förbättrat inbyggt PostgreSQL-stöd. Om du använder PostgreSQL V1-anslutningsappen i din lösning uppgraderar du Din PostgreSQL-anslutningsapp eftersom V1 är i slutfasen av supporten. Mer information om skillnaden mellan V2 och V1 finns i det här avsnittet .

Funktioner som stöds

Den här PostgreSQL-anslutningsappen stöds för följande funktioner:

Funktioner som stöds IR
aktiviteten Kopiera (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 7.4 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 aktiviteten Kopiera med en pipeline kan du använda något av följande verktyg eller SDK:er:

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.

  1. 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:

  2. Sök efter Postgre och välj PostgreSQL-anslutningsappen.

    Skärmbild som visar Välj PostgreSQL-anslutningsappen.

  3. Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.

    Skärmbild som visar Konfigurera en länkad tjänst till PostgreSQL.

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:

Property Beskrivning Obligatoriskt
type Typegenskapen måste anges till: PostgreSql Ja
connectionString En ODBC-anslutningssträng för att ansluta till Azure Database for PostgreSQL.
Du kan också lägga till lösenord i Azure Key Vault och hämta konfigurationen password från anslutningssträng. Mer information finns i följande exempel och artikeln Lagra autentiseringsuppgifter i Azure Key Vault .
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

En typisk anslutningssträng är Server=<server>;Database=<database>;Port=<port>;UID=<username>;Password=<Password>. Fler egenskaper som du kan ange per ditt ärende:

Property beskrivning Alternativ Obligatoriskt
EncryptionMethod (EM) Den metod som drivrutinen använder för att kryptera data som skickas mellan drivrutinen och databasservern. T.ex. EncryptionMethod=<0/1/6>; 0 (Ingen kryptering) (standard) / 1 (SSL) / 6 (RequestSSL) Nej
ValidateServerCertificate (VSC) Avgör om drivrutinen validerar certifikatet som skickas av databasservern när SSL-kryptering är aktiverat (krypteringsmetod=1). T.ex. ValidateServerCertificate=<0/1>; 0 (inaktiverad) (standard) /1 (aktiverad) 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:

  1. Konfigurera DSN på alla SHIR-servrar.
  2. 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.
  3. 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": "PostgreSql",
        "typeProperties": {
            "connectionString": "Server=<server>;Database=<database>;Port=<port>;UID=<username>;Password=<Password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exempel: Lagra lösenord i Azure Key Vault

{
    "name": "PostgreSqlLinkedService",
    "properties": {
        "type": "PostgreSql",
        "typeProperties": {
            "connectionString": "Server=<server>;Database=<database>;Port=<port>;UID=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Om du använder den länkade PostgreSQL-tjänsten med följande nyttolast stöds den fortfarande som den är, medan du rekommenderas att använda den nya framöver.

Tidigare nyttolast:

{
    "name": "PostgreSqlLinkedService",
    "properties": {
        "type": "PostgreSql",
        "typeProperties": {
            "server": "<server>",
            "database": "<database>",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "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:

Property Beskrivning Obligatoriskt
type Typegenskapen för datamängden måste anges till: PostgreSqlTable Ja
schema Namnet på schemat. Nej (om "fråga" i aktivitetskällan har angetts)
table Tabellens namn. Nej (om "fråga" i aktivitetskällan har angetts)
tableName Namnet på tabellen med schemat. Den här egenskapen stöds för bakåtkompatibilitet. Använd schema och table för ny arbetsbelastning. Nej (om "fråga" i aktivitetskällan har angetts)

Exempel

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

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:

Property Beskrivning Obligatoriskt
type Typegenskapen för kopieringsaktivitetskällan måste anges till: PostgreSqlSource Ja
query Använd den anpassade SQL-frågan för att läsa data. Exempel: "query": "SELECT * FROM \"MySchema\".\"MyTable\"". Nej (om "tableName" i datauppsättningen har angetts)

Kommentar

Schema- och tabellnamn är skiftlägeskänsliga. Omsluta dem i "" (dubbla citattecken) i frå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": "PostgreSqlSource",
                "query": "SELECT * FROM \"MySchema\".\"MyTable\""
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Om du använde RelationalSource en typbaserad källa stöds den fortfarande som den är, medan du rekommenderas att använda den nya framöver.

Egenskaper för uppslagsaktivitet

Mer information om egenskaperna finns i Sökningsaktivitet.

En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i datalager som stöds.