Kopírování dat z PostgreSQL pomocí služby Azure Data Factory nebo Synapse Analytics

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

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 s přehledem aktivity kopírování, který představuje obecný přehled aktivity kopírování.

Důležité

Nový konektor PostgreSQL poskytuje vylepšenou nativní podporu PostgreSQL a lepší výkon. Pokud ve svém řešení používáte starší konektor PostgreSQL, podporuje se pouze zpětnou kompatibilitu, přečtěte si článek o konektoru PostgreSQL (starší verze ).

Podporované funkce

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

Podporované funkce IR
aktivita Copy (zdroj/-) (1) (2)
Aktivita Lookup (1) (2)

(1) Prostředí Azure Integration Runtime (2) Místní prostředí 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 7.4 a vyšší.

Požadavky

Pokud se vaše úložiště dat nachází uvnitř místní sítě, virtuální sítě Azure nebo amazonového privátního cloudu, musíte nakonfigurovat místní prostředí Integration Runtime pro připojení k němu.

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 prostředí Azure Integration Runtime.

K přístupu k místní síti bez nutnosti instalace a konfigurace místního prostředí Integration Runtime můžete také použít funkci Runtime integrace spravované virtuální sítě ve službě Azure Data Factory.

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.

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

Začínáme

K provedení aktivita Copy s kanálem můžete použít jeden z následujících nástrojů nebo sad SDK:

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

Pomocí následujícího postupu vytvořte propojenou službu s PostgreSQL v uživatelském rozhraní webu Azure Portal.

  1. Přejděte na kartu Správa v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a pak 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 o konfiguraci Připojení oru

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 Povinní účastníci
type 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. No
database Databáze PostgreSQL, ke které se chcete připojit. Ano
username Uživatelské jméno, se kterým se chcete spojit. Nevyžaduje se, pokud používáte IntegratedSecurity. Ano
Heslo Heslo pro připojení. Nevyžaduje se, pokud používáte IntegratedSecurity. Ano
sslMode Určuje, jestli se používá protokol SSL, v závislosti na podpoře serveru.
- Zákaz: 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.
- Preferujte: Upřednostněte připojení SSL, pokud je server umožňuje, ale povolte připojení bez SSL.
- Vyžadovat: Selhání připojení, pokud server nepodporuje PROTOKOL SSL.
- Verify-ca: Selhání připojení, pokud server nepodporuje SSL. Ověřuje také certifikát serveru.
- Ověření úplné: Selhání připojení, pokud server nepodporuje PROTOKOL SSL. Ověřuje také certifikát serveru s názvem hostitele.
Možnosti: Zakázat (0) / Povolit (1) / Preferovat (2) (výchozí) / Vyžadovat (3) / Verify-ca (4) / Verify-full (5)
No
authenticationType Typ ověřování pro připojení k databázi. Podporuje pouze Basic. Ano
connectVia Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Další informace najdete v části Požadavky . Pokud není zadaný, použije výchozí prostředí Azure Integration Runtime. No
Další vlastnosti připojení:
schema Nastaví cestu hledání schématu. No
Sdružování Určuje, jestli se má použít sdružování připojení. No
Connectiontimeout 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 No
Commandtimeout 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. No
trustServerCertificate Zda má certifikát serveru důvěřovat bez jeho ověření. No
sslCertificate Umístění klientského certifikátu, který se má odeslat na server. No
sslKey Umístění klientského klíče pro klientský certifikát, který se má odeslat na server. No
sslPassword Heslo pro klíč pro klientský certifikát. No
readBufferSize Určuje velikost interní vyrovnávací paměti Npgsql používá při čtení. Zvýšení může zvýšit výkon při přenosu velkých hodnot z databáze. No
logParameters Pokud je tato možnost povolená, zaprotokolují se hodnoty parametrů při spuštění příkazů. No
timezone Získá nebo nastaví časové pásmo relace. No
encoding Získá nebo nastaví kódování .NET, které se použije k kódování nebo dekódování dat řetězce PostgreSQL. No

Poznámka:

Pokud chcete mít úplné ověření SSL prostřednictvím připojení ODBC při použití místního prostředí 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. Na serverech SHIR umístěte správný certifikát pro PostgreSQL do složky C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt. V tomto případě ovladač ODBC hledá > certifikát SSL k ověření, když se připojí k databázi.
  3. V připojení datové továrny použijte připojení typu ODBC s připojovací řetězec odkazující 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"
        }
    }
}

Příklad: Uložení hesla ve službě 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 Povinní účastníci
type Vlastnost typu datové sady musí být nastavená na: PostgreSqlV2Table. Ano
schema Název schématu Ne (pokud je zadán dotaz ve zdroji aktivity)
table 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 zadaná datová sada, je stále podporovaná tak, jak je, zatímco se navrhuje používat novou datovou sadu.

Vlastnosti aktivity kopírování

Ú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, podporují se v části zdroje aktivity kopírování následující vlastnosti:

Vlastnost Popis Povinní účastníci
type Vlastnost typu zdroje aktivity kopírování musí být nastavená na: PostgreSqlV2Source. Ano
query 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)

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\""
            },
            "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ě. Informace o tom, jak aktivita kopírování mapuje zdrojové schéma a datový typ na jímku, najdete v mapování schématu schématu a datového typu schématu schématu a datového typu.

Datový typ PostgreSql Dočasný datový typ služby Dočasný datový typ služby pro PostgreSQL (starší verze)
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
NumbericArray String String
DateArray String String
Range String String
Bpchar String String

Vlastnosti aktivity vyhledávání

Podrobnosti o vlastnostech najdete v aktivitě Vyhledávání.

Upgrade propojené služby PostgreSQL

Tady jsou kroky, které vám pomůžou upgradovat propojenou službu 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 nejnovější propojenou službu PostgreSQL se liší od mapování datového typu pro starší verzi. 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 a PostgreSQL (starší verze)

Následující tabulka ukazuje rozdíly v mapování datových typů mezi PostgreSQL a PostgreSQL (starší verze).

Datový typ PostgreSQL Dočasný datový typ služby pro PostgreSQL Dočasný datový typ služby pro PostgreSQL (starší verze)
Peníze Desetinná čárka String
Časové razítko s časovým pásmem DateTime String
Čas s časovým pásmem DateTimeOffset String
Interval TimeSpan String
BigDecimal Nepodporováno Jako alternativu použijte to_char() funkci k převodu BigDecimal na String. String

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