Adatok másolása a PostgreSQL-ből az Azure Data Factory vagy a Synapse Analytics használatával

A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!

Ez a cikk azt ismerteti, hogyan használhatja a másolási tevékenységet az Azure Data Factoryben és a Synapse Analytics-folyamatokban az adatok PostgreSQL-adatbázisból való másolásához. A másolási tevékenység áttekintési cikkére épül, amely a másolási tevékenység általános áttekintését mutatja be.

Fontos

Az új PostgreSQL-összekötő továbbfejlesztett natív PostgreSQL-támogatást és jobb teljesítményt biztosít. Ha az örökölt PostgreSQL-összekötőt használja a megoldásban, a támogatott verzió csak a visszamenőleges kompatibilitást szolgálja, tekintse meg a PostgreSQL-összekötő (örökölt) cikkét.

Támogatott képességek

Ez a PostgreSQL-összekötő a következő képességekhez támogatott:

Támogatott képességek IR
Copy tevékenység (forrás/-) (1) (2)
Keresési tevékenység (1) (2)

(1) Azure-integrációs modul (2) Saját üzemeltetésű integrációs modul

A másolási tevékenység által forrásként/fogadóként támogatott adattárak listáját a Támogatott adattárak táblában találja.

Ez a PostgreSQL-összekötő támogatja a PostgreSQL 7.4-es és újabb verzióját.

Előfeltételek

Ha az adattár helyszíni hálózaton, Azure-beli virtuális hálózaton vagy Amazon Virtual Private Cloudon belül található, konfigurálnia kell egy saját üzemeltetésű integrációs modult a csatlakozáshoz.

Ha az adattár felügyelt felhőalapú adatszolgáltatás, használhatja az Azure Integration Runtime-ot. Ha a hozzáférés a tűzfalszabályokban jóváhagyott IP-címekre korlátozódik, hozzáadhat azure integration runtime IP-eket az engedélyezési listához.

Az Azure Data Factory felügyelt virtuális hálózati integrációs moduljával is elérheti a helyszíni hálózatot anélkül, hogy saját üzemeltetésű integrációs modult telepítene és konfigurálna.

A Data Factory által támogatott hálózati biztonsági mechanizmusokkal és lehetőségekkel kapcsolatos további információkért lásd az adathozzáférési stratégiákat.

Az Integrációs modul egy beépített PostgreSQL-illesztőt biztosít a 3.7-es verziótól kezdve, ezért nem kell manuálisan telepítenie az illesztőprogramokat.

Első lépések

A Copy tevékenység folyamattal való végrehajtásához használja az alábbi eszközök vagy SDK-k egyikét:

Társított szolgáltatás létrehozása a PostgreSQL-hez felhasználói felülettel

Az alábbi lépésekkel létrehozhat egy társított szolgáltatást a PostgreSQL-hez az Azure Portal felhasználói felületén.

  1. Keresse meg az Azure Data Factory vagy a Synapse-munkaterület Kezelés lapját, és válassza a Társított szolgáltatások lehetőséget, majd kattintson az Új gombra:

  2. Keresse meg a Postgre-t, és válassza a PostgreSQL-összekötőt.

    Válassza ki a PostgreSQL-összekötőt.

  3. Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új társított szolgáltatást.

    Társított szolgáltatás konfigurálása a PostgreSQL-hez.

Csatlakozás or konfigurációjának részletei

Az alábbi szakaszok a PostgreSQL-összekötőre jellemző Data Factory-entitások meghatározásához használt tulajdonságok részleteit ismertetik.

Társított szolgáltatás tulajdonságai

A PostgreSQL társított szolgáltatáshoz a következő tulajdonságok támogatottak:

Tulajdonság Leírás Kötelező
típus A típustulajdonságnak a következőnek kell lennie: PostgreSqlV2 Igen
kiszolgáló Megadja azt a gazdagépnevet – és opcionálisan portot –, amelyen a PostgreSQL fut. Igen
kikötő A PostgreSQL-kiszolgáló TCP-portja. Nem
adatbázis A PostgreSQL-adatbázis, amelyhez csatlakozni szeretne. Igen
username A csatlakozáshoz használt felhasználónév. Az IntegratedSecurity használata esetén nem kötelező. Igen
jelszó A csatlakozáshoz használt jelszó. Az IntegratedSecurity használata esetén nem kötelező. Igen
sslMode Az SSL használatát a kiszolgáló támogatásától függően szabályozza.
- Letiltás: Az SSL le van tiltva. Ha a kiszolgáló SSL-t igényel, a kapcsolat sikertelen lesz.
- Engedélyezés: Előnyben részesíti a nem SSL-kapcsolatokat, ha a kiszolgáló engedélyezi őket, de engedélyezze az SSL-kapcsolatokat.
- Előnyben részesítjük az SSL-kapcsolatokat, ha a kiszolgáló engedélyezi őket, de ssl nélkül is engedélyezi a kapcsolatokat.
- Kötelező: Sikertelen a kapcsolat, ha a kiszolgáló nem támogatja az SSL-t.
- Ca ellenőrzése: Sikertelen a kapcsolat, ha a kiszolgáló nem támogatja az SSL-t. A kiszolgálótanúsítványt is ellenőrzi.
- Ellenőrizze, hogy megtelt-e a kapcsolat, ha a kiszolgáló nem támogatja az SSL-t. A kiszolgálótanúsítványt a gazdagép nevével is ellenőrzi.
Beállítások: Letiltás (0) / Engedélyezés (1) / Prefer (2) (Alapértelmezett) / Kötelező (3) / Verify-ca (4) / Verify-full (5)
Nem
authenticationType Az adatbázishoz való csatlakozás hitelesítési típusa. Csak az Alapszintű verziót támogatja. Igen
connectVia Az adattárhoz való csatlakozáshoz használandó integrációs modul . További információ az Előfeltételek szakaszból. Ha nincs megadva, az alapértelmezett Azure Integration Runtime-t használja. Nem
További kapcsolati tulajdonságok:
schema Beállítja a séma keresési útvonalát. Nem
Készletezés A kapcsolatkészletezés használata. Nem
connectionTimeout Az a várakozási idő (másodpercben), amikor megpróbál kapcsolatot létesíteni, mielőtt megszakítja a kísérletet, és hibát okozna. Nem
commandTimeout Az a várakozási idő (másodpercben), amikor megpróbál végrehajtani egy parancsot, mielőtt befejezi a kísérletet, és hibát okozna. Állítsa nullára a végtelenhöz. Nem
trustServerCertificate A kiszolgálótanúsítvány hitelesítés nélküli megbízhatósága. Nem
sslCertificate A kiszolgálónak küldendő ügyféltanúsítvány helye. Nem
sslKey A kiszolgálónak küldendő ügyféltanúsítvány ügyfélkulcsának helye. Nem
sslPassword Ügyféltanúsítvány kulcsának jelszava. Nem
readBufferSize Meghatározza a belső puffer Npgsql olvasáskor használt méretét. A növekedés javíthatja a teljesítményt, ha nagy értékeket ad át az adatbázisból. Nem
logParameters Ha engedélyezve van, a parancsok végrehajtásakor a rendszer naplózza a paraméterértékeket. Nem
timezone Lekéri vagy beállítja a munkamenet időzónát. Nem
Kódolás Lekéri vagy beállítja a PostgreSQL-sztringadatok kódolásához/dekódolásához használt .NET-kódolást. Nem

Feljegyzés

Ahhoz, hogy az ODBC-kapcsolaton keresztül teljes KÖRŰ SSL-ellenőrzést lehessen végezni a saját üzemeltetésű integrációs modul használatakor, a PostgreSQL-összekötő helyett kifejezetten ODBC típusú kapcsolatot kell használnia, és végre kell hajtania a következő konfigurációt:

  1. Állítsa be a DSN-t bármely SHIR-kiszolgálón.
  2. Helyezze a Megfelelő tanúsítványt a PostgreSQL-hez a C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt fájlban az SHIR-kiszolgálókon. Itt keresi > az ODBC-illesztő az SSL-tanúsítványt, hogy ellenőrizze, mikor csatlakozik az adatbázishoz.
  3. Az adat-előállítói kapcsolatban használjon ODBC típusú kapcsolatot, és a kapcsolati sztring az SHIR-kiszolgálókon létrehozott DSN-re mutat.

Példa:

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

Példa: jelszó tárolása az Azure Key Vaultban

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

Adathalmaz tulajdonságai

Az adathalmazok meghatározásához elérhető szakaszok és tulajdonságok teljes listáját az adathalmazokról szóló cikkben találja. Ez a szakasz a PostgreSQL-adatkészlet által támogatott tulajdonságok listáját tartalmazza.

Az adatok PostgreSQL-ből való másolásához a következő tulajdonságok támogatottak:

Tulajdonság Leírás Kötelező
típus Az adathalmaz típustulajdonságának a következőnek kell lennie: PostgreSqlV2Table Igen
schema A séma neve. Nem (ha "lekérdezés" van megadva a tevékenységforrásban)
table A tábla neve. Nem (ha "lekérdezés" van megadva a tevékenységforrásban)

Példa

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

Ha gépelt adatkészletet használt RelationalTable , az továbbra is támogatott, miközben a rendszer azt javasolja, hogy használja az újat.

Másolási tevékenység tulajdonságai

A tevékenységek meghatározásához elérhető szakaszok és tulajdonságok teljes listáját a Folyamatok című cikkben találja. Ez a szakasz a PostgreSQL-forrás által támogatott tulajdonságok listáját tartalmazza.

PostgreSQL mint forrás

Ha adatokat szeretne másolni a PostgreSQL-ből, a másolási tevékenység forrás szakaszában az alábbi tulajdonságok támogatottak:

Tulajdonság Leírás Kötelező
típus A másolási tevékenység forrásának típustulajdonságának a következőnek kell lennie: PostgreSqlV2Source Igen
Lekérdezés Az adatok olvasásához használja az egyéni SQL-lekérdezést. Például: "query": "SELECT * FROM \"MySchema\".\"MyTable\"" Nem (ha "tableName" van megadva az adathalmazban)

Feljegyzés

A séma és a táblanevek megkülönböztetik a kis- és nagybetűket. Csatolja őket "" (dupla idézőjelek) a lekérdezésbe.

Példa:

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

Ha gépelt forrást használt RelationalSource , az továbbra is támogatott, miközben a rendszer azt javasolja, hogy használja az újat.

Adattípus-leképezés a PostgreSQL-hez

Amikor adatokat másol a PostgreSQL-ből, a következő leképezéseket használja a PostgreSQL-adattípusoktól a szolgáltatás által belsőleg használt köztes adattípusokig. A séma- és adattípus-leképezések segítségével megtudhatja , hogy a másolási tevékenység hogyan rendeli le a forrásséma és az adattípust a fogadóhoz.

PostgreSql-adattípus Köztes szolgáltatás adattípusa Köztes szolgáltatás adattípusa a PostgreSQL-hez (örökölt)
SmallInt Int16 Int16
Integer Int32 Int32
BigInt Int64 Int64
Decimal (Pontosság <= 28) Decimal Decimal
Decimal (Pontosság > 28) Nem támogatott 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

Keresési tevékenység tulajdonságai

A tulajdonságok részleteinek megismeréséhez tekintse meg a keresési tevékenységet.

A PostgreSQL társított szolgáltatás frissítése

Az alábbi lépések segítenek frissíteni a PostgreSQL társított szolgáltatását:

  1. Hozzon létre egy új PostgreSQL-társított szolgáltatást, és konfigurálja a társított szolgáltatás tulajdonságaira hivatkozva.

  2. A legújabb PostgreSQL társított szolgáltatás adattípus-leképezése eltér az örökölt verzióétól. A legújabb adattípus-megfeleltetés megismeréséhez tekintse meg a PostgreSQL adattípus-leképezését.

A PostgreSQL és a PostgreSQL (örökölt) közötti különbségek

Az alábbi táblázat a PostgreSQL és a PostgreSQL (örökölt) adattípus-leképezési különbségeit mutatja be.

PostgreSQL-adattípus Köztes szolgáltatás adattípusa a PostgreSQL-hez Köztes szolgáltatás adattípusa a PostgreSQL-hez (örökölt)
Pénzt Decimális Sztring
Időbélyeg időzónával Dátum/idő Sztring
Időzóna DateTimeOffset Sztring
Intervallum időtartam Sztring
BigDecimal Nem támogatott. Alternatív megoldásként használja to_char() a függvényt a BigDecimal sztringgé alakításához. Sztring

A másolási tevékenység által forrásként és fogadóként támogatott adattárak listáját a támogatott adattárakban találja.