Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
- Nástroj pro kopírování dat
- portál Azure
- .NET SDK
- Python SDK
- Azure PowerShell
- REST API
- šablona Azure Resource Manager
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.
Přejděte na kartu Spravovat v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a pak vyberte Nový:
Vyhledejte PostgreSQL a vyberte konektor Azure pro databázi PostgreSQL.
Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.
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:
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
Data Azure pro PostgreSQL s spravovanou identitou přiřazenou systémem On.
V prostředku Azure Database for PostgreSQL, v části Security
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ů:
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.
Přiřaďte uživatelsky přiřazenou spravovanou identitu k prostředku Azure pro databáze PostgreSQL.
Přiřaďte uživatelsky přiřazenou spravovanou identitu k prostředku Azure Data Factory
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.
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:
- Zvolte unikátní sloupec jako sloupec oddílu (například primární klíč nebo jedinečný klíč), abyste se vyhnuli zkreslení dat.
- Pokud tabulka má vestavěný oddíl, použijte možnost "Fyzické oddíly tabulky", abyste dosáhli lepšího výkonu.
- 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.
- "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
- Rozdělte dávkové skripty s několika příkazy do více samostatných dávek.
- 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.
Související obsah
Seznam úložišť dat podporovaných jako zdroje a cíle aktivitou kopírování najdete v tématu Podporovaná úložiště dat.