Kopírování dat z PostgreSQL V2 pomocí Azure Data Factory nebo Synapse Analytics

VZTAHUJE SE NA: Azure Data Factory Azure Synapse Analytics

Návod

Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.

Tento článek popisuje, jak pomocí aktivity kopírování v kanálech Azure Data Factory a Synapse Analytics kopírovat data z databáze PostgreSQL. Vychází z článku přehled činnosti kopírování, který představuje obecný přehled této činnosti.

Poznámka:

Tento konektor je také k dispozici ve službě Data Factory v Microsoft Fabric. Informace o konfiguraci a funkcích specifických pro Fabric najdete v dokumentaci ke konektoru Fabric PostgreSQL.

Důležité

Konektor PostgreSQL V1 je ve fázi odebrání. Doporučujeme upgradovat konektor PostgreSQL z V1 na V2.

Podporované funkce

Tento konektor PostgreSQL je podporovaný pro následující funkce:

Podporované funkce IR
aktivita Copy (zdroj/-) (1) (2)
Vyhledávací aktivita (1) (2)

(1) Azure Integration Runtime (2) Lokálně hostované Integration Runtime

Seznam úložišť dat podporovaných jako zdroje nebo jímky aktivitou kopírování najdete v tabulce Podporované úložiště dat.

Konkrétně tento konektor PostgreSQL podporuje PostgreSQL verze 12 a vyšší.

Požadavky

Pokud se vaše úložiště dat nachází uvnitř místní sítě, Azure virtuální sítě, nebo Amazon Virtual Private Cloud, musíte pro připojení nakonfigurovat self-hosted Integration Runtime.

Pokud je vaše úložiště dat spravovanou cloudovou datovou službou, můžete použít Azure Integration Runtime. Pokud je přístup omezený na IP adresy schválené v pravidlech brány firewall, můžete do seznamu povolených přidat ip adresy Azure Integration Runtime.

Funkci managed virtual network Integration Runtime můžete také použít v Azure Data Factory pro přístup k místní síti bez nutnosti instalace a konfigurace místního prostředí Integration Runtime.

Další informace o mechanismech zabezpečení sítě a možnostech podporovaných službou Data Factory najdete v tématu Strategie přístupu k datům.

Integration Runtime poskytuje integrovaný ovladač PostgreSQL od verze 3.7, takže nemusíte ručně instalovat žádný ovladač.

Začínáme

K provedení kopírovací činnosti s datovým tokem můžete použít jeden z následujících nástrojů nebo sady SDK:

Vytvoření propojené služby do PostgreSQL pomocí uživatelského rozhraní

Pomocí následujícího postupu vytvořte propojenou službu postgreSQL v uživatelském rozhraní portálu Azure.

  1. Přejděte na kartu Spravovat v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a potom klikněte na Nový:

  2. Vyhledejte Postgre a vyberte konektor PostgreSQL.

    Vyberte konektor PostgreSQL.

  3. Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.

    Nakonfigurujte propojenou službu do PostgreSQL.

Podrobnosti konfigurace konektoru

Následující části obsahují podrobnosti o vlastnostech, které slouží k definování entit služby Data Factory specifických pro konektor PostgreSQL.

Vlastnosti propojené služby

Propojená služba PostgreSQL podporuje následující vlastnosti:

Vlastnost Popis Požadováno
typ Vlastnost typu musí být nastavená na: PostgreSqlV2. Ano
server Určuje název hostitele a volitelně port, na kterém je PostgreSQL spuštěný. Ano
port Port TCP serveru PostgreSQL. Ne
databáze Databáze PostgreSQL, ke které se chcete připojit. Ano
uživatelské jméno Uživatelské jméno, se kterým se chcete spojit. Ano
heslo Heslo pro připojení. Ano
režim SSL Určuje, jestli se používá protokol SSL, v závislosti na podpoře serveru.
- Zakázáno: Protokol SSL je zakázaný. Pokud server vyžaduje protokol SSL, připojení se nezdaří.
- Povolit: Preferujte připojení bez SSL, pokud je server povoluje, ale povolte připojení SSL.
- Upřednostňovaný: Pokud je server umožňuje, upřednostňujte připojení SSL, ale povolte připojení bez SSL.
- Povinné: Selhání připojení, pokud server nepodporuje PROTOKOL SSL.
- Verify_ca: Selhání připojení, pokud server nepodporuje protokol SSL. Ověřuje také certifikát serveru.
- Verify_full: Selhání připojení, pokud server nepodporuje protokol SSL. Ověřuje také certifikát serveru s názvem hostitele.
Možnosti: Zakázáno (0) / Povolit (1) / Preferovaný (2) (Výchozí) / Povinné (3) / Verify_ca (4) / Verify_full (5)
Ne
typ autentizace Typ ověřování pro připojení k databázi. Podporuje pouze Basic. Ano
connectVia Integration Runtime pro připojení k úložišti dat. Další informace najdete v části Požadavky . Pokud není zadaný, použije výchozí Azure Integration Runtime. Ne
Další vlastnosti připojení:
schéma Nastaví cestu hledání schématu. Ne
sdružování Určuje, jestli se má použít sdružování připojení. Ne
časový limit spojení Doba čekání (v sekundách) při pokusu o navázání připojení před ukončením pokusu a vygenerováním chyby Ne
časový limit příkazu Doba čekání (v sekundách) při pokusu o spuštění příkazu před ukončením pokusu a vygenerováním chyby. Nastavte na nulu pro nekonečno. Ne
důvěřovatServerovémuCertifikátu Zda důvěřovat certifikátu serveru, aniž by byl ověřen. Ne
SSL certifikát Umístění klientského certifikátu, který se má odeslat na server. Ne
SSL klíč Umístění klientského klíče pro klientský certifikát, který se má odeslat na server. Ne
heslo SSL Heslo pro klíč pro klientský certifikát. Ne
velikost čtecího bufferu Určuje velikost interní vyrovnávací paměti, kterou Npgsql používá při čtení. Zvýšení může zvýšit výkon při přenosu velkých hodnot z databáze. Ne
parametry logování Pokud je tato možnost povolená, zaprotokolují se hodnoty parametrů při spuštění příkazů. Ne
časové pásmo Získá nebo nastaví časové pásmo relace. Ne
kódování Získá nebo nastaví .NET kódování, které se použije ke kódování a dekódování dat řetězce PostgreSQL. Ne

Poznámka:

Pokud chcete mít úplné ověření SSL prostřednictvím připojení ODBC při použití místního Integration Runtime musíte místo konektoru PostgreSQL explicitně použít připojení typu ODBC a dokončit následující konfiguraci:

  1. Nastavte DSN na všech serverech SHIR.
  2. Vložte správný certifikát pro PostgreSQL do složky C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt na serverech SHIR. V tomto případě ovladač ODBC hledá > certifikát SSL k ověření, když se připojí k databázi.
  3. V připojení vaší datové továrny použijte připojení typu ODBC s připojovacím řetězcem, který odkazuje na DSN, který jste vytvořili na serverech SHIR.

Příklad:

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

Example: uložení hesla do 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"
        }
    }
}

Vlastnosti datové sady

Úplný seznam oddílů a vlastností dostupných pro definování datových sad najdete v článku o datových sadách . Tato část obsahuje seznam vlastností podporovaných datovou sadou PostgreSQL.

Pokud chcete kopírovat data z PostgreSQL, podporují se následující vlastnosti:

Vlastnost Popis Požadováno
typ Vlastnost typu datové sady musí být nastavená na: PostgreSqlV2Table. Ano
schéma Název schématu Ne (pokud je zadán dotaz ve zdroji aktivity)
tabulka Název tabulky. Ne (pokud je zadán dotaz ve zdroji aktivity)

Příklad

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

Pokud jste používali RelationalTable typovanou datovou sadu, je stále podporována ve své současné podobě, přičemž se doporučuje používat novou datovou sadu.

Vlastnosti kopírovací aktivity

Úplný seznam oddílů a vlastností dostupných pro definování aktivit najdete v článku Pipelines . Tato část obsahuje seznam vlastností podporovaných zdrojem PostgreSQL.

PostgreSQL jako zdroj

Pokud chcete kopírovat data z PostgreSQL, v sekci zdroje aktivity kopírování se podporují následující vlastnosti:

Vlastnost Popis Požadováno
typ Vlastnost typu zdroje aktivity kopírování musí být nastavená na: PostgreSqlV2Source. Ano
dotaz Ke čtení dat použijte vlastní dotaz SQL. Například: "query": "SELECT * FROM \"MySchema\".\"MyTable\"". Ne (pokud je v datové sadě zadán název tabulky)
časový limit dotazu Doba čekání před ukončením pokusu o spuštění příkazu a vygenerováním chyby je výchozí 120 minut. Pokud je pro tuto vlastnost nastaven parametr, jsou povolené hodnoty časový rozsah, například 02:00:00 (120 minut). Další informace najdete v tématu CommandTimeout.
commandTimeout Pokud je obojí i queryTimeout nakonfigurované, queryTimeout má přednost.
Ne

Poznámka:

V názvech schémat a tabulek se rozlišují malá a velká písmena. Uzavřete je do "" dotazu (dvojité uvozovky).

Příklad:

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

Pokud jste používali RelationalSource typovaný zdroj, je stále podporovaný tak, jak je, zatímco se navrhuje používat nový zdroj.

Mapování datových typů pro PostgreSQL

Při kopírování dat z PostgreSQL se z datových typů PostgreSQL používají následující mapování k dočasným datovým typům používaným službou interně. Podívejte se na mapování schémat a datových typů, kde se dozvíte, jak aktivita kopírování mapuje zdrojové schéma a datový typ na cíl.

Datový typ PostgreSQL Dočasný datový typ služby pro PostgreSQL V2 Dočasný datový typ služby pro PostgreSQL V1
SmallInt Int16 Int16
Integer Int32 Int32
BigInt Int64 Int64
Decimal (Přesnost <= 28) Decimal Decimal
Decimal (Přesnost > 28) Nepodporované 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

Vlastnosti aktivity vyhledávání

Podrobnosti o vlastnostech najdete v aktivitě Lookup.

Upgrade konektoru PostgreSQL

Tady jsou kroky, které vám pomůžou upgradovat konektor PostgreSQL:

  1. Vytvořte novou propojenou službu PostgreSQL a nakonfigurujte ji pomocí odkazů na vlastnosti propojené služby.

  2. Mapování datových typů pro konektor PostgreSQL V2 se liší od mapování datového typu pro V1. Informace o nejnovějším mapování datových typů najdete v tématu Mapování datových typů pro PostgreSQL.

Rozdíly mezi PostgreSQL V2 a V1

Následující tabulka ukazuje rozdíly v mapování datových typů mezi PostgreSQL V2 a V1.

Datový typ PostgreSQL Dočasný datový typ služby pro PostgreSQL V2 Dočasný datový typ služby pro PostgreSQL V1
Peníze Desítková soustava Řetězec
Časové razítko s časovým pásmem Datum a čas Řetězec
Čas s časovým pásmem Posun data a času Řetězec
Rozmezí Časový rozsah Řetězec
BigDecimal Nepodporováno Jako alternativu použijte to_char() funkci k převodu BigDecimal na String. Řetězec

Seznam úložišť dat podporovaných jako zdroje a jímky aktivitou kopírování najdete v podporovaných úložištích dat.