Kopírování a transformace dat v Azure Database for PostgreSQL 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 a do Azure Database for PostgreSQL. A jak pomocí Tok dat transformovat data v Azure Database for PostgreSQL. Další informace najdete v úvodních článcích pro Azure Data Factory a Synapse Analytics.

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 Azure Database for PostgreSQL.

Důležité

Azure Database for PostgreSQL verze 2.0 poskytuje vylepšenou nativní podporu Azure Database for PostgreSQL. Pokud ve svém řešení používáte Azure Database for PostgreSQL verze 1.0, doporučujeme upgradovat konektor Azure Database for PostgreSQL co nejdříve.

Tento konektor je specializovaný pro službu Azure Database for PostgreSQL. Ke kopírování dat z obecné databáze PostgreSQL umístěné místně nebo v cloudu použijte konektor PostgreSQL.

Podporované funkce

Tento konektor Azure Database for PostgreSQL podporuje následující funkce:

Podporované funkce IR Spravovaný privátní koncový bod Podporované verze konektoru
aktivita Copy (zdroj/jímka) (1) (2) 1.0 & 2.0
Mapování toku dat (zdroj/jímka) (1) 1.0 & 2.0
Aktivita Vyhledávání (1) (2) 1.0 & 2.0
Aktivita skriptu (1) (2) 2.0

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

Tři aktivity pracují na Azure Database for PostgreSQL Single Server, Flexible Server a Azure Cosmos DB for PostgreSQL.

Důležité

Azure Database for PostgreSQL Single Server bude ukončen 28. března 2025. Do tohoto data migrujte na flexibilní server. Pokyny k migraci najdete v tomto článku a nejčastějších dotazech .

Začínáme

K provedení aktivity kopírování pomocí datového kanálu můžete použít jeden z následujících nástrojů nebo sad SDK:

Vytvoření propojené služby pro Azure Database for PostgreSQL pomocí uživatelského rozhraní

V uživatelském rozhraní portálu Azure použijte následující postup k vytvoření propojené služby s PostgreSQL databázovým serverem v Azure.

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

  2. Vyhledejte PostgreSQL a vyberte konektor Azure pro databázi PostgreSQL.

     Vyberte databázi Azure pro konektor PostgreSQL.

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

    Konfigurujte propojenou službu pro Azure databázi PostgreSQL.

Podrobnosti konfigurace konektoru

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

Vlastnosti služby pro propojení

Konektor Azure Database for PostgreSQL verze 2.0 podporuje protokol TLS (Transport Layer Security) 1.3 a několik režimů SSL (Secure Socket Layer). Pokud chcete upgradovat verzi konektoru Azure SQL Database z verze 1.0, přečtěte si tuto section. Podrobnosti o nemovitosti najdete v odpovídajících oddílech.

Verze 2.0

Následující vlastnosti jsou podporovány pro propojenou službu Azure Database for PostgreSQL při použití verze 2.0:

Nemovitost Popis Povinné
typ Vlastnost typu musí být nastavená na: AzurePostgreSql. Ano
verze Zadaná verze. Hodnota je 2.0. Ano
typ autentizace Vyberte základní, instanční objekt, spravovanou identitu přiřazenou systémem nebo typy ověřování spravované identity přiřazené uživatelem. Ano
server Určuje název hostitele a volitelně port, na kterém je spuštěný Azure Database for PostgreSQL. Ano
port TCP portu Azure Database for PostgreSQL serveru. Výchozí hodnota je 5432. Ne
databáze Název Azure Database for PostgreSQL databáze, ke které se chcete připojit. 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é: Připojení selže, pokud server nepodporuje protokol SSL.
- Verify_ca: Připojení selže, pokud server nepodporuje protokol SSL. Ověřuje také certifikát serveru.
- Verify_full: Připojení selže, 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
connectVia Tato vlastnost představuje prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Můžete použít Azure Integration Runtime nebo Integration Runtime v místním prostředí (pokud je vaše úložiště dat umístěné v privátní síti). Pokud není zadaný, použije výchozí Azure Integration Runtime. Ne
Další vlastnosti připojení:
schéma Nastaví cestu hledání schématu. Ne
seskupování Určuje, jestli se má použít sdružování připojení. Ne
časový limit připojení 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ěřovatCertifikátuServeru Má se důvěřovat serverovému certifikátu bez jeho ověření? 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
časové pásmo Získá nebo nastaví časové pásmo relace. Ne
kódování Získá nebo nastaví kódování .NET pro kódování a dekódování dat řetězce PostgreSQL. Ne

Základní ověřování

Nemovitost Popis Povinné
uživatelské jméno 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. Označte toto pole jako SecureString , abyste ho bezpečně uložili. Nebo můžete odložit tajný kód uložený v Azure Key Vault. Ano

Příklad:

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": "5432",
            "database": "<database name>",
            "sslMode": 2,
            "username": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        }
    }
}

Příklad:

Storové heslo v Azure Key Vault

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": "5432",
            "database": "<database name>",
            "sslMode": 2,
            "username": "<user name>",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        }
    }
}

Ověřování spravované identity přiřazené systémem

Datová továrna nebo pracovní prostor Synapse může být přidružen k spravované identitě přiřazené systémem, která představuje službu při ověřování vůči jiným prostředkům v Azure. Tuto spravovanou identitu můžete použít pro Azure databázi pro ověřování PostgreSQL. Předem určený pracovní prostor továrny nebo Synapse může přistupovat k datům v databázi a kopírovat je pomocí této identity.

Pokud chcete použít spravovanou identitu přiřazenou systémem, postupujte takto:

  1. Datovou továrnu nebo pracovní prostor Synapse je možné přidružit ke spravované identitě přiřazené systémem. Další informace, vytvoření spravované identity přidělené systémem

  2. Data Azure pro PostgreSQL s spravovanou identitou přiřazenou systémem On.

    Snímek obrazovky konfigurace spravované identity přiřazené systémem v databázi Azure pro server PostgreSQL.

  3. V prostředku Azure Database for PostgreSQL, v části Security

    1. Vyberte ověřování

    2. Vyberte buď metodu ověřování Microsoft Entra nebo metodu ověřování PostgreSQL a Microsoft Entra.

    3. Vyberte + Přidat správce Microsoft Entra

    4. Přidejte systémem přiřazenou spravovanou identitu pro prostředek Azure Data Factory jako jednoho ze správců Microsoft Entra.

      Snímek obrazovky s přidáním spravované identity přiřazené systémem v konfiguraci Azure Database for PostgreSQL.

  4. Nakonfigurujte databázi Azure pro propojenou službu PostgreSQL.

Příklad:

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "authenticationType": "SystemAssignedManagedIdentity"
        }
    }
}

Poznámka:

Tento typ ověřování není podporován v místním prostředí Integration Runtime.

Ověřování spravované identity přiřazené uživatelem

Pracovní prostor datové továrny nebo Synapse lze přidružit k uživatelem přiřazené spravované identitě, která představuje službu během ověřování u dalších prostředků v Azure. Tuto spravovanou identitu můžete použít pro Azure databázi pro ověřování PostgreSQL. Předem určený pracovní prostor továrny nebo Synapse může přistupovat k datům v databázi a kopírovat je pomocí této identity.

Pokud chcete použít ověřování spravované identity přiřazené uživatelem, kromě obecných vlastností popsaných v předchozí části zadejte následující vlastnosti:

Nemovitost Popis Povinné
přihlašovací údaje Jako objekt přihlašovacích údajů zadejte spravovanou identitu přiřazenou uživatelem. Ano

Musíte také postupovat podle kroků:

  1. Ujistěte se, že vytvoříte prostředek Spravovaná identita přiřazená uživatelem v Azure portálu. Další informace najdete v tématu Správa spravovaných identit přiřazených uživatelem.

  2. Přiřaďte uživatelsky přiřazenou spravovanou identitu k prostředku Azure pro databáze PostgreSQL.

    1. V prostředku serveru Azure pro PostgreSQL v části týkající se Security

    2. Vyberte ověřování

    3. Ověřte, zda je metoda ověřování pouze Microsoft Entra ověřování nebo PostgreSQL a Microsoft Entra ověřování.

    4. Vyberte odkaz + Přidat správce Microsoft Entra a vyberte spravovanou identitu přiřazenou uživatelem.

      Screenshot konfigurace spravované identity přiřazené uživatelem v databázi Azure pro server PostgreSQL.

  3. Přiřaďte uživatelsky přiřazenou spravovanou identitu k prostředku Azure Data Factory

    1. Vyberte Nastavení a pak Spravované identity.

    2. Na kartě Přiřazené uživatelem . Vyberte odkaz + Přidat a vyberte identitu spravovanou uživatelem.

      Snímek obrazovky nastavení identity spravované uživatelem v prostředku Azure Data Factory.

  4. Nakonfigurujte databázi Azure pro propojenou službu PostgreSQL.

Příklad:

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "authenticationType": "UserAssignedManagedIdentity",
            "credential": {
                "referenceName": "<your credential>",
                "type": "CredentialReference"
            }
        }
    }
}

Ověřování servisního principála

Nemovitost Popis Povinné
uživatelské jméno Zobrazovaný název objektu služby Ano
klient Tenant, na kterém se nachází Azure Database for PostgreSQL server Ano
Identifikátor hlavní služby ID aplikace služebního principála Ano
Typ přihlašovacích údajů služby Principal Vyberte, jestli je preferovanou metodou ověřování certifikát služebního objektu nebo klíč služebního objektu.
- ServicePrincipalCert: Nastavte na certifikát pro hlavní instanci pro hlavní instanci (service principal).
- ServicePrincipalKey: Nastavte hodnotu na klíč hlavního poskytovatele služeb pro ověřování klíčem hlavního poskytovatele služeb.
Ano
Klíč hlavního služby (servicePrincipalKey) Hodnota klientského tajemství. Používá se při výběru klíče hlavní služby. Ano
typ cloudu Azure Vyberte typ cloudu Azure vašeho Azure Database for PostgreSQL serveru. Ano
vestavěný certifikát hlavní služby Soubor certifikátu služebního principálu Ano
heslo zabudovaného certifikátu principála služby Heslo certifikátu servisního účtu v případě potřeby Ne

Příklad:

Klíč objektu služby

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "username": "<service principal name>",
            "authenticationType": "<authentication type>",
            "tenant": "<tenant>",
            "servicePrincipalId": "<service principal ID>",
            "azureCloudType": "<azure cloud type>",
            "servicePrincipalCredentialType": "<service principal type>",
            "servicePrincipalKey": "<service principal key>"
        }
    }
}

Příklad:

Certifikát servisního objektu

{
    "name": "AzurePostgreSqlLinkedService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "AzurePostgreSql",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>",
            "port": 5432,
            "database": "<database name>",
            "sslMode": 2,
            "username": "<service principal name>",
            "authenticationType": "<authentication type>",
            "tenant": "<tenant>",
            "servicePrincipalId": "<service principal ID>",
            "azureCloudType": "<azure cloud type>",
            "servicePrincipalCredentialType": "<service principal type>",
            "servicePrincipalEmbeddedCert": "<service principal certificate>",
            "servicePrincipalEmbeddedCertPassword": "<service principal embedded certificate password>"
        }
    }
}

Poznámka:

Microsoft Entra ID ověřování pomocí principálu služby a uživatelsky přiřazené spravované identity je podporováno na samostatně hostovaném Integration Runtime verze 5.50 nebo vyšší.

Verze 1.0

Následující vlastnosti jsou podporovány pro propojenou službu Azure Database for PostgreSQL při použití verze 1.0:

Nemovitost Popis Povinné
typ Vlastnost typu musí být nastavená na: AzurePostgreSql. Ano
verze Zadaná verze. Hodnota je 1.0. Ano
connection string Řetězec připojení Npgsql pro připojení k Azure Database for PostgreSQL.
Můžete také vložit heslo do Azure Key Vault a stáhnout konfiguraci password z připojovací řetězec. Další podrobnosti najdete v následujících ukázkách a uložení přihlašovacích údajů do Azure Key Vault.
Ano
connectVia Tato vlastnost představuje prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Můžete použít Azure Integration Runtime nebo Integration Runtime v místním prostředí (pokud je vaše úložiště dat umístěné v privátní síti). Pokud není zadaný, použije výchozí Azure Integration Runtime. Ne

Typický připojovací řetězec je host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>. Tady jsou další vlastnosti, které můžete nastavit pro každý případ:

Nemovitost Popis Možnosti Povinné
EncryptionMethod (EM) Metoda, pomocí které ovladač šifruje data odesílaná mezi ovladačem a databázovým serverem. Například EncryptionMethod=<0/1/6>; 0 (bez šifrování) (výchozí) / 1 (SSL) / 6 (RequestSSL) Ne
ValidateServerCertificate (VSC) Určuje, jestli ovladač ověří certifikát odeslaný databázovým serverem, když je povolené šifrování SSL (Metoda šifrování =1). Například ValidateServerCertificate=<0/1>; 0 (zakázáno) (výchozí) / 1 (povoleno) Ne

Příklad:

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "1.0",
        "typeProperties": {
            "connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>"
        }
    }
}

Příklad:

Storové heslo v Azure Key Vault

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "version": "1.0",
        "typeProperties": {
            "connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        }
    }
}

Vlastnosti datové sady

Úplný seznam oddílů a vlastností dostupných pro definování datových sad najdete v tématu Datové sady. Tato část obsahuje seznam vlastností, které Azure Database for PostgreSQL podporují v datových sadách.

Pokud chcete kopírovat data z Azure Database for PostgreSQL, nastavte vlastnost typu datové sady na AzurePostgreSqlTable. Podporují se následující vlastnosti:

Nemovitost Popis Povinné
typ Vlastnost typu datové sady musí být nastavená na AzurePostgreSqlTable. Ano
schéma Název schématu Ne (pokud je zadán dotaz ve zdroji aktivity)
tabulka Název tabulky nebo zobrazení Ne (pokud je zadán dotaz ve zdroji aktivity)
názevTabulky Název tabulky. Tato vlastnost je podporována pro zpětnou kompatibilitu. Pro nové úlohy použijte schema a table. Ne (pokud je zadán dotaz ve zdroji aktivity)

Příklad:

{
    "name": "AzurePostgreSqlDataset",
    "properties": {
        "type": "AzurePostgreSqlTable",
        "linkedServiceName": {
            "referenceName": "<AzurePostgreSql linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

Vlastnosti kopírovací aktivity

Úplný seznam sekcí a vlastností, které lze použít k definování aktivit, najdete v tématu Kanály a aktivity. Tato část obsahuje seznam vlastností podporovaných zdrojem Azure Database for PostgreSQL.

Azure Database for PostgreSql jako zdroj

Pokud chcete kopírovat data z Azure Database for PostgreSQL, nastavte typ zdroje v aktivitě kopírování na AzurePostgreSqlSource. V části aktivity kopírování zdroj jsou podporovány následující vlastnosti:

Nemovitost Popis Povinné
typ Vlastnost typu zdroje aktivity kopírování musí být nastavená na AzurePostgreSqlSource. Ano
dotaz Ke čtení dat použijte vlastní dotaz SQL. Například: SELECT * FROM mytable nebo SELECT * FROM "MyTable". Všimněte si, že v PostgreSQL je název entity považován za nerozlišující velká a malá písmena, pokud není uzavřen v uvozovkách. Ne (pokud je zadána vlastnost tableName v datové sadě)
č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. Ne
možnosti oddílu Určuje možnosti dělení dat používané k načtení dat z Azure SQL Database.
Povolené hodnoty jsou: None (výchozí), PhysicalPartitionsOfTable a DynamicRange.
Pokud je povolená možnost oddílu (tj. ne None), je stupeň paralelismu souběžného načítání dat z Azure SQL Database řízen nastavením parallelCopies aktivity kopírování.
Ne
nastavení oddílu Zadejte skupinu nastavení pro dělení dat.
Pokud nastavení oddílu není None, aplikujte.
Ne
V části partitionSettings:
partitionNames Seznam fyzických oddílů, které je potřeba zkopírovat.
Použijte, když je možnost oddílu PhysicalPartitionsOfTable. Pokud k načtení zdrojových dat použijete dotaz, zahrňte ?AdfTabularPartitionName do klauzule WHERE. Příklad najdete v části Paralelní kopie z Azure Database for PostgreSQL.
Ne
název sloupce oddílu Zadejte název zdrojového sloupce v celočíselném typu nebo typu date/datetime (int, smallint, bigint, date, timestamp without time zone, timestamp with time zone nebo time without time zone), který se použije pro rozdělení podle rozsahu pro paralelní kopírování. Pokud není zadáno, primární klíč tabulky se automaticky rozpozná a použije jako sloupec oddílení.
Použijte, když je možnost oddílu DynamicRange. Pokud k načtení zdrojových dat použijete dotaz, zahrňte ?AdfRangePartitionColumnName do klauzule WHERE. Příklad najdete v části Paralelní kopie z Azure Database for PostgreSQL.
Ne
horní mez partitionu Maximální hodnota sloupce oddílu pro zkopírování dat.
Použijte, když je možnost oddílu DynamicRange. Pokud k načtení zdrojových dat použijete dotaz, zahrňte ?AdfRangePartitionUpbound do klauzule WHERE. Příklad najdete v části Paralelní kopie z Azure Database for PostgreSQL.
Ne
partitionLowerBound Minimální hodnota sloupce oddílu pro zkopírování dat.
Použijte, když je možnost oddílu DynamicRange. Pokud k načtení zdrojových dat použijete dotaz, zahrňte ?AdfRangePartitionLowbound do klauzule WHERE. Příklad najdete v části Paralelní kopie z Azure Database for PostgreSQL.
Ne

Příklad:

"activities":[
    {
        "name": "CopyFromAzurePostgreSql",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<AzurePostgreSql input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzurePostgreSqlSource",
                "query": "<custom query e.g. SELECT * FROM mytable>",
                "queryTimeout": "00:10:00"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Azure Database for PostgreSQL jako jímka

Pokud chcete zkopírovat data do Azure Database for PostgreSQL, nastavte typ jímky v aktivitě kopírování na SqlSink. V sekci jímky aktivity kopírování jsou podporovány následující vlastnosti:

Nemovitost Popis Povinné Verze podpory konektoru
typ Vlastnost typu jímky aktivity kopírování musí být nastavena na AzurePostgreSQLSink. Ano Verze 1.0 a verze 2.0
preCopyScript Před zápisem dat do Azure Database for PostgreSQL v každém spuštění zadejte dotaz SQL pro aktivitu kopírování. Tuto vlastnost můžete použít k vyčištění předem načtených dat. Ne Verze 1.0 a verze 2.0
Methoda zápisu Metoda použitá k zápisu dat do Azure Database for PostgreSQL.
Povolené hodnoty jsou: CopyCommand (výchozí, což je výkonnější), BulkInsert a Upsert (pouze verze 2.0).
Ne Verze 1.0 a verze 2.0
upsertSettings Zadejte skupinu nastavení pro chování při zápisu.
Použít, když je možnost WriteBehavior Upsert.
Ne Verze 2.0
V části upsertSettings:
klíče Zadejte názvy sloupců pro jedinečnou identifikaci řádků. Můžete použít jeden klíč nebo řadu klíčů. Klíče by měly být primárním klíčem nebo jedinečným sloupcem. Pokud není zadaný, použije se primární klíč. Ne Verze 2.0
writeBatchSize Počet řádků načtených do Azure Database for PostgreSQL na dávku.
Povolená hodnota je celé číslo, které představuje počet řádků.
Ne (výchozí hodnota je 1 000 000) Verze 1.0 a verze 2.0
writeBatchTimeout Čekací doba na dokončení operace dávkového vložení před vypršením časového limitu.
Povolené hodnoty jsou řetězce představující časový interval. Příklad je 00:30:00 (30 minut).
Ne (výchozí hodnota je 00:30:00) Verze 1.0 a verze 2.0

Příklad 1: Kopírovat příkaz

"activities":[
    {
        "name": "CopyToAzureDatabaseForPostgreSQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure PostgreSQL output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzurePostgreSqlSink",
                "preCopyScript": "<custom SQL script>",
                "writeMethod": "CopyCommand",
                "writeBatchSize": 1000000
            }
        }
    }
]

Příklad 2: Upsert data

"activities":[
    {
        "name": "CopyToAzureDatabaseForPostgreSQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure PostgreSQL output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzurePostgreSQLSink",
                "writeMethod": "Upsert",
                "upsertSettings": {
                    "keys": [
                        "<column name>"
                    ]
                },
            }
        }
    }
]

Vložit nebo aktualizovat data

aktivita Copy nativně podporuje operace upsertu. Aby uživatel mohl provést upsert, měl by poskytnout klíčové sloupce, které jsou buď primárními klíči, nebo jedinečnými sloupci. Pokud uživatel nezadá klíčové sloupce, použijí se sloupce primárních klíčů v tabulce jímky. Aktivita kopírování aktualizuje sloupce bez klíčů v tabulce jímky, kde hodnoty klíčových sloupců odpovídají sloupcům ve zdrojové tabulce; jinak vloží nová data.

Paralelní kopírování z Azure Database for PostgreSQL

Konektor Azure Database for PostgreSQL v aktivitě kopírování poskytuje integrované dělení dat pro paralelní kopírování dat. Možnosti dělení dat najdete na kartě Zdroj kopírovací aktivity.

Snímek obrazovky s možnostmi rozdělení

Když povolíte dělené kopírování, aktivita kopírování spouští paralelní dotazy na váš zdroj Azure Database for PostgreSQL za účelem načtení dat podle oddílů. Paralelní úroveň je řízena nastavením parallelCopies aktivity kopírování. Pokud například nastavíte parallelCopies na čtyři, služba současně generuje a spouští čtyři dotazy na základě zadané možnosti a nastavení oddílu a každý dotaz načte část dat z vašeho Azure Database for PostgreSQL.

Doporučujeme povolit paralelní kopírování s dělením dat, zejména pokud načítáte velké množství dat z Azure Database for PostgreSQL. Následující konfigurace jsou navržené pro různé scénáře. Při kopírování dat do souborového úložiště dat doporučujeme zapisovat do složky jako více souborů (zadat pouze název složky), v takovém případě je výkon lepší než zápis do jednoho souboru.

Scénář Navrhovaná nastavení
Úplné načtení z velké tabulky s fyzickými particemi Možnost partitionu: Fyzické oddíly tabulky.

Během provádění služba automaticky rozpozná fyzické oddíly a kopíruje data podle oddílů.
Úplné načtení z velké tabulky bez fyzických oddílů, ale s celočíselným sloupcem pro dělení dat. Možnosti oddílení: Dynamické oddílení rozsahu
Partiční sloupec: Zadejte sloupec použitý k rozdělení dat. Pokud není zadaný, použije se sloupec primárního klíče.
Načtěte velké množství dat pomocí vlastního dotazu s fyzickým dělením. Možnost partitionu: Fyzické oddíly tabulky.
Dotaz: SELECT * FROM ?AdfTabularPartitionName WHERE <your_additional_where_clause>.
Název oddílu: Zadejte jeden nebo více názvů oddílů, ze které chcete kopírovat data. Pokud není zadaný, služba automaticky rozpozná fyzické oddíly v tabulce, kterou jste zadali v datové sadě PostgreSQL.

Během provádění služba nahradí ?AdfTabularPartitionName skutečným názvem oddílu a odešle Azure Database for PostgreSQL.
Načtěte velké množství dat pomocí vlastního dotazu, bez fyzických oddílů, ale s použitím celočíselného sloupce pro dělení dat. Možnosti oddílení: Dynamické oddílení rozsahu
Dotaz: SELECT * FROM ?AdfTabularPartitionName WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Partiční sloupec: Zadejte sloupec použitý k rozdělení dat. Můžete provést rozdělení podle sloupce s datovým typem celé číslo nebo datum/datum a čas.
Horní mez oddílu a dolní mez oddílu: Určete, jestli chcete filtrovat podle sloupce oddílu a načítat data pouze mezi dolním a horním rozsahem.

Během provádění služba nahradí ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbound a ?AdfRangePartitionLowbound skutečným názvem sloupce a rozsahy hodnot pro každý oddíl a odešle Azure Database for PostgreSQL.
Například, pokud je sloupec pro oddíl „ID“ nastaven s dolní hranicí 1 a horní hranicí 80 a paralelní kopie je nastavena na 4, služba načítá data ve čtyřech oddílech. Jejich ID jsou mezi [1,20], [21, 40], [41, 60] a [61, 80], v uvedeném pořadí.

Osvědčené postupy pro načtení dat s volbou partice:

  1. Zvolte unikátní sloupec jako sloupec oddílu (například primární klíč nebo jedinečný klíč), abyste se vyhnuli zkreslení dat.
  2. Pokud tabulka má vestavěný oddíl, použijte možnost "Fyzické oddíly tabulky", abyste dosáhli lepšího výkonu.
  3. Pokud ke kopírování dat používáte Azure Integration Runtime, můžete nastavit větší jednotky integrace dat Data Integration Units (DIU)" (>4) tak, aby využívaly více výpočetních prostředků. Zkontrolujte tam příslušné scénáře.
  4. "Stupeň paralelismu kopírování" řídí čísla oddílů, a pokud je toto číslo nastaveno příliš velké, může negativně ovlivnit výkon. Doporučujeme nastavit toto číslo jako (DIU nebo počet uzlů místního prostředí IR) * (2 až 4).

Příklad: Úplné načtení z velké tabulky s fyzickými oddíly

"source": {
    "type": "AzurePostgreSqlSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

Příklad: Dotaz s dynamickým rozsahovým dělením

"source": {
    "type": "AzurePostgreSqlSource",
    "query": "SELECT * FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
        "partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
    }
}

Mapování vlastností toku dat

Při transformaci dat při mapování toku dat můžete číst a zapisovat do tabulek z Azure Database for PostgreSQL. Další informace najdete v tématu transformace zdroje a transformace jímky v mapování toků dat. Jako typ zdroje a jímky můžete použít datovou sadu Azure Database for PostgreSQL nebo datovou sadu inline.

Transformace zdroje

V následující tabulce jsou uvedeny vlastnosti podporované Azure Database for PostgreSQL zdrojem. Tyto vlastnosti můžete upravit na kartě Možnosti zdroje.

Název Popis Povinné Povolené hodnoty Vlastnost skriptu toku dat
Tabulka Pokud jako vstup vyberete tabulku, tok dat načte všechna data z tabulky zadané v datové sadě. Ne - (pouze pro vnořenou datovou sadu)
názevTabulky
Dotaz Pokud jako vstup vyberete Dotaz, zadejte dotaz SQL pro načtení dat ze zdroje, který přepíše jakoukoli tabulku, kterou zadáte v datové sadě. Použití dotazů je skvělý způsob, jak snížit počet řádků pro testování nebo vyhledávání.

Klauzule Order By není podporovaná, ale můžete nastavit úplný příkaz SELECT FROM. Můžete také použít uživatelem definované funkce tabulek. select * from udfGetData() je UDF v SQL, která vrací tabulku, kterou můžete použít v toku dat.
Příklad dotazu: select * from mytable where customerId > 1000 and customerId < 2000 nebo select * from "MyTable". Všimněte si, že v PostgreSQL je název entity považován za nerozlišující velká a malá písmena, pokud není uzavřen v uvozovkách.
Ne Řetězec dotaz
Název schématu Pokud jako vstup vyberete Uložená procedura, zadejte název schématu uložené procedury nebo vyberte Aktualizovat a požádejte službu o zjištění názvů schémat. Ne Řetězec název schématu
Uložená procedura Pokud jako vstup vyberete Uložená procedura, zadejte název uložené procedury pro čtení dat ze zdrojové tabulky nebo vyberte Aktualizovat a požádejte službu o zjištění názvů procedur. Ano (pokud jako vstup vyberete uloženou proceduru) Řetězec názevProcedury
Parametry procedury Pokud jako vstup vyberete Uložená procedura, zadejte všechny vstupní parametry pro uloženou proceduru v pořadí nastaveném v rámci procedury, nebo vyberte importovat všechny parametry procedury pomocí formuláře @paraName. Ne Pole vstupy
Velikost dávky Zadejte velikost dávky pro rozdělení velkých dat na části. Ne Celé číslo velikost dávky
Úroveň izolace Zvolte jednu z následujících úrovní izolace:
- Přečteno potvrzeno
– Nepotvrzené čtení (výchozí)
- Opakovatelné čtení
-Serializovatelný
– Žádné (ignorovat úroveň izolace)
Ne No improvements are necessary in this context as keeping the original English term is common practice in technical translations related to IT and databases.
číst_nezávazně
Opakovatelně číst (REPEATABLE_READ)
SERIALIZOVATELNÝ
ŽÁDNÝ
úroveň izolace

příklad zdrojového skriptu Azure Database for PostgreSQL

Pokud jako zdrojový typ použijete Azure Database for PostgreSQL, skript k toku dat je následující:

source(allowSchemaDrift: true,
    validateSchema: false,
    isolationLevel: 'READ_UNCOMMITTED',
    query: 'select * from mytable',
    format: 'query') ~> AzurePostgreSQLSource

Transformace jímky

Následující tabulka uvádí vlastnosti podporované Azure Database for PostgreSQL jímkou. Tyto vlastnosti můžete upravit na kartě Možnosti jímky.

Název Popis Povinné Povolené hodnoty Vlastnost skriptu toku dat
Metoda aktualizace Určete, jaké operace jsou povolené v cíli databáze. Výchozí hodnota je povolit pouze vkládání.
Pokud chcete aktualizovat, vložit nebo odstranit řádky, k označení řádků pro tyto akce je potřeba úprava řádku.
Ano true nebo false odstranitelný
vložitelné
aktualizovatelné
vložitelné nebo aktualizovatelné
Klíčové sloupce Aby bylo možné provádět operace aktualizace, upsert a odstranění, je třeba nastavit klíčové sloupce, které určují, který řádek se má změnit.
Název sloupce, který vyberete jako klíč, se použije jako součást následné aktualizace, upsertu a odstranění. Proto je nutné vybrat sloupec, který existuje v mapování jímky.
Ne Pole klíče
Vynechání zadávání klíčových sloupců Pokud chcete hodnotu nezapsat do klíčového sloupce, vyberte Přeskočit psaní klíčových sloupců. Ne true nebo false přeskočit zápisy klíčů
Operace s tabulkou Určuje, zda se mají před zápisem znovu vytvořit nebo odebrat všechny řádky z cílové tabulky.
- Žádné: V tabulce není provedena žádná akce.
- Znovu vytvořte: Tabulka se odstraní a bude znovu vytvořena. Vyžaduje se při dynamickém vytváření nové tabulky.
- Trunkovat: Všechny řádky z cílové tabulky budou odstraněny.
Ne true nebo false znovu vytvořit
zkrátit
Velikost dávky Určete, kolik řádků se zapisuje při každém zpracování dávky. Větší velikosti dávek zlepšují kompresi a optimalizaci paměti, ale při ukládání dat do mezipaměti riskují výjimky z paměti. Ne Celé číslo velikost dávky
Výběr schématu databáze uživatele Ve výchozím nastavení se ve schématu jímky vytvoří dočasná tabulka jako pracovní. Alternativně můžete zrušit zaškrtnutí možnosti Použít schéma jímky a místo toho zadat název schématu, pod kterým Služba Data Factory vytvoří přípravnou tabulku pro načtení nadřazených dat a automaticky je po dokončení vyčistí. Ujistěte se, že máte v databázi oprávnění k vytvoření tabulky, a upravte oprávnění ke schématu. Ne Řetězec název schématu stagingu
Skripty před a po SQL Zadejte víceřádkové skripty SQL, které se spustí před (předzpracováním) a po (postzpracováním) zápisu dat do cílové databáze. Ne Řetězec předsqls
postSQLs

Návod

  1. Rozdělte dávkové skripty s několika příkazy do více samostatných dávek.
  2. Příkazy jazyka pro definici dat (DDL) a jazyka pro manipulaci s daty (DML), které vracejí jednoduchý počet aktualizací provedených operací, lze spustit pouze jako součást dávky. Další informace o provádění dávkových operací
  • Povolit přírůstkové extrahování: Pomocí této možnosti můžete službě ADF sdělit, aby zpracovávala pouze řádky, které se změnily od posledního spuštění datového kanálu.

  • Přírůstkový sloupec: Při použití funkce přírůstkového extrakce musíte zvolit sloupec data a času nebo číselného sloupce, který chcete použít jako vodoznak ve zdrojové tabulce.

  • Začněte číst od začátku: Nastavení této možnosti s přírůstkovým extrahováním dává ADF pokyn ke čtení všech řádků při prvním spuštění kanálu se zapnutým přírůstkovým extrahováním.

Příklad skriptu jímky Azure Database for PostgreSQL

Pokud jako typ jímky použijete Azure Database for PostgreSQL, přidružený skript toku dat:

IncomingStream sink(allowSchemaDrift: true,
    validateSchema: false,
    deletable:false,
    insertable:true,
    updateable:true,
    upsertable:true,
    keys:['keyColumn'],
    format: 'table',
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> AzurePostgreSqlSink

Aktivita skriptu

Důležité

Aktivita skriptu je podporována pouze v konektoru verze 2.0.

Důležité

Příkazy s více dotazy používající výstupní parametry se nepodporují. Doporučujeme rozdělit všechny výstupní dotazy do samostatných bloků skriptu ve stejné nebo jiné aktivitě skriptu.

Příkazy s více dotazy používající poziční parametry se nepodporují. Doporučujeme rozdělit všechny poziční dotazy do samostatných bloků skriptů ve stejné nebo jiné aktivitě skriptu.

Další informace o aktivitě skriptu naleznete v tématu Aktivita skriptu.

Vlastnosti aktivity vyhledávání

Další informace o vlastnostech naleznete v Lookup activity.

Upgrade konektoru Azure Database pro PostgreSQL

Na stránce Upravit propojenou službu vyberte v části Verze2.0 a nakonfigurujte propojenou službu odkazem na vlastnosti propojené služby verze 2.0.

Seznam úložišť dat podporovaných jako zdroje a cíle aktivitou kopírování najdete v tématu Podporovaná úložiště dat.