Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Azure Data Factory
Azure Synapse Analytics
Aanbeveling
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
In dit artikel wordt beschreven hoe u kopieeractiviteit gebruikt in Azure Data Factory- en Synapse Analytics-pijplijnen om gegevens van en naar Azure Database for PostgreSQL te kopiëren. En hoe u gegevensstroom gebruikt om gegevens te transformeren in Azure Database for PostgreSQL. Lees de inleidende artikelen voor Azure Data Factory en Synapse Analytics voor meer informatie.
Belangrijk
Azure Database for PostgreSQL versie 2.0 biedt verbeterde systeemeigen ondersteuning voor Azure Database for PostgreSQL. Als u azure Database for PostgreSQL versie 1.0 in uw oplossing gebruikt, wordt u aangeraden om uw Azure Database for PostgreSQL-connector zo snel mogelijk te upgraden.
Deze connector is gespecialiseerd voor de Azure Database for PostgreSQL-service. Als u gegevens wilt kopiëren uit een algemene PostgreSQL-database die zich on-premises of in de cloud bevindt, gebruikt u de PostgreSQL-connector.
Ondersteunde mogelijkheden
Deze Azure Database for PostgreSQL-connector wordt ondersteund voor de volgende mogelijkheden:
| Ondersteunde mogelijkheden | IR | Beheerd privé-eindpunt | Ondersteunde versies van de connector |
|---|---|---|---|
| Kopieeractiviteit (bron/doel) | (1) (2) | ✓ | 1.0 & 2.0 |
| Het in kaart brengen van de datastroom (bron/sink) | (1) | ✓ | 1.0 & 2.0 |
| Zoekactiviteit | (1) (2) | ✓ | 1.0 & 2.0 |
| Scriptactiviteit | (1) (2) | ✓ | 2.0 |
(1) Azure-integratieruntime (2) Zelfgehoste integratieruntime
De drie activiteiten werken op Azure Database for PostgreSQL Single Server, Flexible Server en Azure Cosmos DB for PostgreSQL.
Belangrijk
Azure Database for PostgreSQL Single Server wordt buiten gebruik gesteld op 28 maart 2025. Migreer naar Flexible Server vóór die datum. Raadpleeg dit artikel en de veelgestelde vragen voor de migratierichtlijnen.
Aan de slag
Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:
- Hulpprogramma Gegevens kopiëren
- Azure-portal
- .NET SDK
- Python SDK
- Azure PowerShell
- REST API
- Azure Resource Manager-sjabloon
Een gekoppelde service maken voor Azure Database for PostgreSQL met behulp van de gebruikersinterface
Gebruik de volgende stappen om een gekoppelde service te maken voor Azure Database for PostgreSQL in de gebruikersinterface van Azure Portal.
Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en selecteer vervolgens Nieuw:
Zoek naar PostgreSQL en selecteer de Azure-database voor PostgreSQL-connector.
Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.
Details van de configuratie van de connector
De volgende secties bevatten details over eigenschappen die worden gebruikt voor het definiëren van Data Factory-entiteiten die specifiek zijn voor Azure Database for PostgreSQL-connector.
Eigenschappen van gekoppelde service
De Azure Database for PostgreSQL-connector versie 2.0 ondersteunt TRANSPORT Layer Security (TLS) 1.3 en meerdere SSL-modi (Secured Socket Layer). Raadpleeg deze sectie om de versie van uw Azure SQL Database-connector te upgraden vanaf versie 1.0. Raadpleeg de desbetreffende secties voor de details van de eigendom.
Versie 2.0
De volgende eigenschappen worden ondersteund voor de gekoppelde Azure Database for PostgreSQL-service wanneer u versie 2.0 toepast:
| Vastgoed | Beschrijving | Verplicht |
|---|---|---|
| soort | De typeeigenschap moet worden ingesteld op: AzurePostgreSql. | Ja |
| Versie | De versie die je opgeeft. De waarde is 2.0. |
Ja |
| authenticatietype | Selecteren uit basis-, service-principal-, door het systeem toegewezen beheerde identiteit of door de gebruiker toegewezen verificatietypen voor beheerde identiteit | Ja |
| bedieningscomputer | Hiermee geeft u de hostnaam en optioneel poort waarop Azure Database for PostgreSQL wordt uitgevoerd. | Ja |
| poort/haven | De TCP-poort van de Azure Database for PostgreSQL-server. De standaardwaarde is 5432. |
Nee. |
| gegevensbank | De naam van de Azure Database for PostgreSQL-database waarmee u verbinding wilt maken. | Ja |
| ssl-mode | Bepaalt of SSL wordt gebruikt, afhankelijk van serverondersteuning. - Uitschakelen: SSL is uitgeschakeld. Als de server SSL vereist, mislukt de verbinding. - Toestaan: Geef de voorkeur aan niet-SSL-verbindingen als de server deze toestaat, maar SSL-verbindingen toestaan. - Geef de voorkeur aan SSL-verbindingen als de server deze toestaat, maar sta ook verbindingen zonder SSL toe. - Vereisen: de verbinding mislukt als de server geen ondersteuning biedt voor SSL. - Verify-ca: De verbinding mislukt als de server SSL niet ondersteunt. Controleert ook het servercertificaat. - Controleer volledig: de verbinding mislukt als de server geen ondersteuning biedt voor SSL. Controleert ook het servercertificaat met de naam van de host. Opties: Uitschakelen (0) / Toestaan (1) / Voorkeur (2) (standaard) / Vereisen (3) / Verify-ca (4) / Verify-full (5) |
Nee. |
| connectVia | Deze eigenschap vertegenwoordigt de integration runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt Azure Integration Runtime of zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een privénetwerk bevindt). Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. | Nee. |
| Aanvullende verbindingseigenschappen: | ||
| overzicht | Hiermee stelt u het zoekpad voor schema's in. | Nee. |
| Bundeling | Of groepsgewijze verbindingen moeten worden gebruikt. | Nee. |
| verbindingstijdlimiet | De tijd die moet worden gewacht (in seconden) tijdens het tot stand brengen van een verbinding voordat de poging wordt beëindigd en er een fout wordt gegenereerd. | Nee. |
| opdrachtTimeout | De tijd die moet worden gewacht (in seconden) tijdens het uitvoeren van een opdracht voordat de poging wordt beëindigd en er een fout wordt gegenereerd. Ingesteld op nul voor oneindigheid. | Nee. |
| vertrouwServercertificaat | Of u het servercertificaat vertrouwt zonder het te valideren. | Nee. |
| leesbuffergrootte | Bepaalt de grootte van de interne buffer die Npgsql gebruikt bij het lezen. Verhogen kan de prestaties verbeteren als u grote waarden uit de database overdraagt. | Nee. |
| tijdzone | Hiermee haalt u de sessietijdzone op of stelt u deze in. | Nee. |
| codering | Hiermee haalt u de .NET-codering op voor codering/decodering van PostgreSQL-tekenreeksgegevens of stelt u deze in. | Nee. |
Basisverificatie
| Vastgoed | Beschrijving | Verplicht |
|---|---|---|
| gebruikersnaam | De gebruikersnaam waarmee u verbinding wilt maken. Niet vereist als u IntegratedSecurity gebruikt. | Ja |
| wachtwoord | Het wachtwoord waarmee u verbinding wilt maken. Niet vereist als u IntegratedSecurity gebruikt. Markeer dit veld als SecureString om het veilig op te slaan. U kunt ook verwijzen naar een geheim dat is opgeslagen in Azure Key Vault. | Ja |
Voorbeeld:
{
"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>"
}
}
}
}
Voorbeeld:
Wachtwoord opslaan in 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>"
}
}
}
}
Door het systeem toegewezen beheerde identiteitverificatie
Een data factory of Synapse-werkruimte kan worden gekoppeld aan een door het systeem toegewezen beheerde identiteit die de service vertegenwoordigt bij het verifiëren van andere resources in Azure. U kunt deze beheerde identiteit gebruiken voor Azure Database for PostgreSQL-verificatie. De aangewezen factory of Synapse-werkruimte kan met behulp van deze identiteit gegevens openen en kopiëren van of naar uw database.
Volg de stappen om door het systeem toegewezen beheerde identiteit te gebruiken:
Een data factory of Synapse-werkruimte kan worden gekoppeld aan een door het systeem toegewezen beheerde identiteit. Meer informatie. Een door het systeem toegewezen beheerde identiteit genereren
De Azure-gegevens voor PostgreSQL met door het systeem toegewezen beheerde identiteit aan.
In uw Azure Database voor PostgreSQL-resource binnen Beveiliging
Selecteer verificatie-
Selecteer alleen Microsoft Entra-verificatie of PostgreSQL en Microsoft Entra-verificatie als authenticatiemethode.
Selecteer + Microsoft Entra-beheerders toevoegen
De door het systeem toegewezen beheerde identiteit voor de Azure Data Factory-resource toevoegen als een van de Microsoft Entra-beheerders
Configureer een gekoppelde Azure-database voor PostgreSQL-service.
Voorbeeld:
{
"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"
}
}
}
Opmerking
Dit verificatietype wordt niet ondersteund voor de zelf-hostende Integration Runtime.
Door de gebruiker toegewezen beheerde identiteitverificatie
Een data factory of Synapse-werkruimte kan worden gekoppeld aan een door de gebruiker toegewezen beheerde identiteit die de service vertegenwoordigt bij het verifiëren van andere resources in Azure. U kunt deze beheerde identiteit gebruiken voor Azure Database for PostgreSQL-verificatie. De aangewezen factory of Synapse-werkruimte kan met behulp van deze identiteit gegevens openen en kopiëren van of naar uw database.
Als u door de gebruiker toegewezen beheerde identiteitverificatie wilt gebruiken, geeft u naast de algemene eigenschappen die in de vorige sectie worden beschreven, de volgende eigenschappen op:
| Vastgoed | Beschrijving | Verplicht |
|---|---|---|
| bewijs van bevoegdheid | Geef de door de gebruiker toegewezen beheerde identiteit op als referentieobject. | Ja |
U moet ook de stappen volgen:
Zorg ervoor dat u een resource voor door de gebruiker toegewezen beheerde identiteit maakt in Azure Portal. Voor meer informatie gaat u naar Door de gebruiker toegewezen beheerde identiteiten beheren
De door de gebruiker toegewezen beheerde identiteit toewijzen aan uw Azure-database voor PostgreSQL-resource
In uw Azure-database voor PostgreSQL-serverbron onder Beveiliging
Selecteer verificatie-
Controleer of de verificatiemethode alleen Microsoft Entra-verificatie is of PostgreSQL- en Microsoft Entra-verificatie
Selecteer de optie + Microsoft Entra-beheerders toevoegen en kies uw door de gebruiker toegewezen beheerde identiteit
De door de gebruiker toegewezen beheerde identiteit toewijzen aan uw Azure Data Factory-resource
Configureer een gekoppelde Azure-database voor PostgreSQL-service.
Voorbeeld:
{
"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"
}
}
}
}
Authenticatie van service-principal
| Vastgoed | Beschrijving | Verplicht |
|---|---|---|
| gebruikersnaam | De weergavenaam van de serviceprincipal | Ja |
| huurder | De tenant waarop de Azure Database for PostgreSQL-server zich bevindt | Ja |
| Serviceprincipaal-ID | Applicatie-id van service-principal | Ja |
| servicehoofdreferentietype | Selecteren of het certificaat van de service-principal of de sleutel van de service-principal de gewenste verificatiemethode is - ServicePrincipalCert: ingesteld op service-principalcertificaat voor service-principalcertificaat. - ServicePrincipalKey: ingesteld op service-principalsleutel voor verificatie van de service-principalsleutel. |
Ja |
| servicePrincipalKey | Waarde van het cliëntgeheim. Wordt gebruikt wanneer de sleutel van de service-principal is geselecteerd | Ja |
| azureCloudType | Selecteer het Azure-cloudtype van uw Azure Database for PostgreSQL-server | Ja |
| serviceprincipalIngevoerdCertificaat | Certificaatbestand voor service-principal | Ja |
| ServicePrincipalEmbeddedCertWachtwoord | Certificaatwachtwoord voor service-principal indien nodig | Nee. |
Voorbeeld:
Service-principal-sleutel
{
"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>"
}
}
}
Voorbeeld:
Serviceprincipalcertificaat
{
"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>"
}
}
}
Opmerking
Microsoft Entra ID-verificatie met behulp van service-principal en door de gebruiker toegewezen beheerde identiteit wordt ondersteund op de zelf-gehoste Integration Runtime versie 5.50 of hoger.
Versie 1.0
De volgende eigenschappen worden ondersteund voor de gekoppelde Azure Database for PostgreSQL-service wanneer u versie 1.0 toepast:
| Vastgoed | Beschrijving | Verplicht |
|---|---|---|
| soort | De typeeigenschap moet worden ingesteld op: AzurePostgreSql. | Ja |
| Versie | De versie die je opgeeft. De waarde is 1.0. |
Ja |
| verbindingsstring | Een Npgsql-verbindingsreeks om verbinding te maken met Azure Database for PostgreSQL. U kunt ook een wachtwoord in Azure Key Vault plaatsen en de password configuratie uit de verbindingsreeks halen. Zie de volgende voorbeelden en sla referentiële gegevens op in Azure Key Vault voor meer informatie. |
Ja |
| connectVia | Deze eigenschap vertegenwoordigt de integration runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt Azure Integration Runtime of zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een privénetwerk bevindt). Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. | Nee. |
Een typische verbindingsreeks is host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>. Hier volgen meer eigenschappen die u per geval kunt instellen:
| Vastgoed | Beschrijving | Opties | Verplicht |
|---|---|---|---|
| EncryptionMethod (EM) | De methode die het stuurprogramma gebruikt om gegevens te versleutelen die worden verzonden tussen het stuurprogramma en de databaseserver. Bijvoorbeeld EncryptionMethod=<0/1/6>; |
0 (geen versleuteling ) (standaard) / 1 (SSL) / 6 (RequestSSL) | Nee. |
| ValidateServerCertificate (VSC) | Bepaalt of het stuurprogramma het certificaat valideert dat door de databaseserver wordt verzonden wanneer SSL-versleuteling is ingeschakeld (Encryption Method=1). Bijvoorbeeld ValidateServerCertificate=<0/1>; |
0 (uitgeschakeld) (standaard) / 1 (ingeschakeld) | Nee. |
Voorbeeld:
{
"name": "AzurePostgreSqlLinkedService",
"properties": {
"type": "AzurePostgreSql",
"version": "1.0",
"typeProperties": {
"connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>"
}
}
}
Voorbeeld:
Wachtwoord opslaan in 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>"
}
}
}
}
Eigenschappen van gegevensset
Zie Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets. Deze sectie bevat een lijst met eigenschappen die azure Database for PostgreSQL ondersteunt in gegevenssets.
Als u gegevens uit Azure Database for PostgreSQL wilt kopiëren, stelt u de typeeigenschap van de gegevensset in op AzurePostgreSqlTable. De volgende eigenschappen worden ondersteund:
| Vastgoed | Beschrijving | Verplicht |
|---|---|---|
| soort | De typeeigenschap van de gegevensset moet worden ingesteld op AzurePostgreSqlTable. | Ja |
| overzicht | Naam van het schema. | Nee (als 'query' in de bron van de activiteit staat vermeld) |
| tafel | Naam van de tabel/weergave. | Nee (als 'query' in de bron van de activiteit staat vermeld) |
| tabelnaam | Naam van de tabel. Deze eigenschap wordt ondersteund voor compatibiliteit met eerdere versies. Gebruik schema en table voor nieuwe workload. |
Nee (als 'query' in de bron van de activiteit staat vermeld) |
Voorbeeld:
{
"name": "AzurePostgreSqlDataset",
"properties": {
"type": "AzurePostgreSqlTable",
"linkedServiceName": {
"referenceName": "<AzurePostgreSql linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
}
}
}
Eigenschappen van de kopieeractiviteit
Zie Pijplijnen en activiteiten voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door een Azure Database for PostgreSQL-bron.
Azure Database for PostgreSql als bron
Als u gegevens wilt kopiëren uit Azure Database for PostgreSQL, stelt u het brontype in de kopieeractiviteit in op AzurePostgreSqlSource. De volgende eigenschappen worden ondersteund in de sectie bron van kopieeractiviteit:
| Vastgoed | Beschrijving | Verplicht |
|---|---|---|
| soort | De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op AzurePostgreSqlSource | Ja |
| zoekopdracht | Gebruik de aangepaste SQL-query om gegevens te lezen. Bijvoorbeeld: SELECT * FROM mytable of SELECT * FROM "MyTable". Opmerking in PostgreSQL: de naam van de entiteit wordt behandeld als niet hoofdlettergevoelig als deze niet wordt geciteerd. |
Nee (als de eigenschap tableName in de gegevensset is opgegeven) |
| querytimeout | De wachttijd voordat de poging om een opdracht uit te voeren wordt beëindigd en een fout genereert, is de standaardwaarde 120 minuten. Als de parameter voor deze eigenschap is ingesteld, zijn toegestane waarden tijdspanne, zoals '02:00:00' (120 minuten). Zie CommandTimeoutvoor meer informatie. | Nee. |
| partitie-opties | Hiermee geeft u de opties voor gegevenspartitionering op die worden gebruikt voor het laden van gegevens uit Azure SQL Database. Toegestane waarden zijn: Geen (standaard), PhysicalPartitionsOfTable en DynamicRange. Wanneer een partitieoptie is ingeschakeld (dat wil niet None), wordt de mate van parallelle uitvoering om gegevens uit een Azure SQL Database gelijktijdig te laden, bepaald door de parallelCopies instelling voor de kopieeractiviteit. |
Nee. |
| partitie-instellingen | Geef de groep van de instellingen voor gegevenspartitionering op. Toepassen wanneer de partitieoptie niet Noneis. |
Nee. |
Onder partitionSettings: |
||
| partitienamen | De lijst met fysieke partities die moeten worden gekopieerd. Toepassen wanneer de partitieoptie is PhysicalPartitionsOfTable. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfTabularPartitionName aan de WHERE-component. Zie de sectie Parallel kopiëren uit Azure Database for PostgreSQL voor een voorbeeld. |
Nee. |
| partitiekolomnaam | Geef de naam op van de bronkolom in geheel getal of datum/datum/tijd -type (int, smallintbigint, date, of timestamp without time zonetimestamp with time zonetime without time zone) dat wordt gebruikt door bereikpartitionering voor parallelle kopie. Als deze niet is opgegeven, wordt de primaire sleutel van de tabel automatisch gedetecteerd en gebruikt als partitiekolom.Toepassen wanneer de partitieoptie is DynamicRange. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfRangePartitionColumnName aan de WHERE-component. Zie de sectie Parallel kopiëren uit Azure Database for PostgreSQL voor een voorbeeld. |
Nee. |
| partitieBovensteGrens | De maximale waarde van de partitiekolom voor het kopiëren van gegevens. Toepassen wanneer de partitieoptie is DynamicRange. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfRangePartitionUpbound aan de WHERE-component. Zie de sectie Parallel kopiëren uit Azure Database for PostgreSQL voor een voorbeeld. |
Nee. |
| partitieondergrens | De minimale waarde van de partitiekolom om gegevens uit te kopiëren. Toepassen wanneer de partitieoptie is DynamicRange. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfRangePartitionLowbound aan de WHERE-component. Zie de sectie Parallel kopiëren uit Azure Database for PostgreSQL voor een voorbeeld. |
Nee. |
Voorbeeld:
"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 als sink
Als u gegevens wilt kopiëren naar Azure Database for PostgreSQL, stelt u het sinktype in de kopieeractiviteit in op SqlSink. De volgende eigenschappen worden ondersteund in de sink-sectie van de kopieeractiviteit.
| Vastgoed | Beschrijving | Verplicht | Connector-ondersteuningsversie |
|---|---|---|---|
| soort | De typeeigenschap van de sink van de kopiëeractiviteit moet worden ingesteld op AzurePostgreSQLSink. | Ja | Versie 1.0 en versie 2.0 |
| preCopyScript | Geef in elke uitvoering een SQL-query op voor de kopieeractiviteit die moet worden uitgevoerd voordat u gegevens naar Azure Database for PostgreSQL schrijft. U kunt deze eigenschap gebruiken om de vooraf geladen gegevens op te schonen. | Nee. | Versie 1.0 en versie 2.0 |
| writeMethod | De methode die wordt gebruikt voor het schrijven van gegevens naar Azure Database for PostgreSQL. Toegestane waarden zijn: CopyCommand (standaard, wat beter presteert), BulkInsert en Upsert (alleen versie 2.0). |
Nee. | Versie 1.0 en versie 2.0 |
| upsertSettings | Geef de groep van de instellingen voor schrijfgedrag op. Toepassen wanneer de optie WriteBehavior is Upsert. |
Nee. | Versie 2.0 |
Onder upsertSettings: |
|||
| toetsen/sleutels | Geef de kolomnamen op voor unieke rijidentificatie. U kunt één sleutel of een reeks sleutels gebruiken. Sleutels moeten een primaire sleutel of een unieke kolom zijn. Als deze niet is opgegeven, wordt de primaire sleutel gebruikt. | Nee. | Versie 2.0 |
| schrijfbatchgrootte | Het aantal rijen dat per batch in Azure Database for PostgreSQL is geladen. Toegestane waarde is een geheel getal dat het aantal rijen aangeeft. |
Nee (standaard is 1.000.000) | Versie 1.0 en versie 2.0 |
| writeBatchTimeout | Wachttijd voordat de batchinvoegbewerking is voltooid voordat er een time-out optreedt. Toegestane waarden zijn tijdspantekenreeksen. Een voorbeeld is 00:30:00 (30 minuten). |
Nee (standaard is 00:30:00) | Versie 1.0 en versie 2.0 |
Voorbeeld 1: Opdracht kopiëren
"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
}
}
}
]
Voorbeeld 2: Upsert-gegevens
"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>"
]
},
}
}
}
]
Gegevens bijwerken of toevoegen
Kopieeractiviteit ondersteunt systeemeigen upsert-bewerkingen. Als u een upsert wilt uitvoeren, moet de gebruiker sleutelkolom(s) opgeven die primaire sleutels of unieke kolommen zijn. Als de gebruiker geen sleutelkolom(en) opgeeft, worden primaire-sleutelkolom(s) in de sinktabel gebruikt. De kopieeractiviteit wijzigt de niet-sleutelkolom(men) in de sinktabel, waarbij de sleutelkolomwaarden overeenkomen met die in de brontabel; anders worden de gegevens opnieuw ingevoegd.
Parallel kopiëren vanuit Azure Database for PostgreSQL
De Azure Database for PostgreSQL-connector biedt bij het kopiëren van gegevens de mogelijkheid voor ingebouwde gegevenspartitionering om gegevens parallel te kopiëren. U vindt opties voor gegevenspartitionering op het tabblad Bron van de kopieeractiviteit.
Wanneer u een gepartitioneerde kopie inschakelt, voert de kopieeractiviteit parallelle query's uit op uw Azure Database for PostgreSQL-bron om gegevens per partitie te laden. De parallelle graad wordt bepaald door de parallelCopies instelling voor de kopieeractiviteit. Als u bijvoorbeeld instelt op parallelCopies vier, genereert de service gelijktijdig vier query's en voert deze uit op basis van de opgegeven partitieoptie en -instellingen. Elke query haalt een deel van de gegevens op uit uw Azure Database for PostgreSQL.
U wordt aangeraden parallelle kopie met gegevenspartitionering in te schakelen, met name wanneer u grote hoeveelheden gegevens uit uw Azure Database for PostgreSQL laadt. Hier volgen voorgestelde configuraties voor verschillende scenario's. Wanneer u gegevens kopieert naar een bestandsgegevensarchief, is het raadzaam om naar een map te schrijven als meerdere bestanden (alleen mapnaam opgeven), in welk geval de prestaties beter zijn dan schrijven naar één bestand.
| Scenariobeschrijving | Voorgestelde instellingen |
|---|---|
| Volledige belasting van grote tabel, met fysieke partities. |
Partitieoptie: fysieke partities van de tabel. Tijdens de uitvoering detecteert de service automatisch de fysieke partities en kopieert de gegevens per partitie. |
| Volledige lading van een grote tabel, zonder fysieke partities, maar met een integer kolom voor gegevenspartitionering. |
Partitieopties: Dynamische bereikspartitie. Partitiekolom: Geef de kolom op die wordt gebruikt om gegevens te partitioneren. Als dit niet is opgegeven, wordt de primaire sleutelkolom gebruikt. |
| Laad een grote hoeveelheid gegevens met behulp van een aangepaste query, met fysieke partities. |
Partitieoptie: fysieke partities van de tabel. Query: SELECT * FROM ?AdfTabularPartitionName WHERE <your_additional_where_clause>.Partitienaam: geef een of meer partitienamen op waaruit gegevens moeten worden gekopieerd. Als dit niet is opgegeven, detecteert de service automatisch de fysieke partities in de tabel die u hebt opgegeven in de PostgreSQL-gegevensset. Tijdens de uitvoering vervangt de service ?AdfTabularPartitionName door de werkelijke partitienaam en verzendt deze naar Azure Database for PostgreSQL. |
| Laad een grote hoeveelheid gegevens met behulp van een aangepaste query, zonder fysieke partities, terwijl je een integer kolom voor gegevenspartitionering gebruikt. |
Partitieopties: Dynamische bereikspartitie. Query: SELECT * FROM ?AdfTabularPartitionName WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.Partitiekolom: Geef de kolom op die wordt gebruikt om gegevens te partitioneren. U kunt partitioneren op basis van de kolom met een geheel getal of een datum/datum/tijd-gegevenstype. Bovengrens en partitieondergrens partitioneren: geef op of u wilt filteren op partitiekolom om alleen gegevens op te halen tussen het onderste en bovenste bereik. Tijdens de uitvoering vervangt de service ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbounden ?AdfRangePartitionLowbound door de werkelijke kolomnaam en waardebereiken voor elke partitie en verzendt deze naar Azure Database for PostgreSQL. Als de partitiekolom 'ID' bijvoorbeeld is ingesteld met de ondergrens 1 en de bovengrens als 80, waarbij parallelle kopie is ingesteld als 4, haalt de service gegevens op met vier partities. Hun id's liggen tussen [1.20], [21, 40], [41, 60] en [61, 80], respectievelijk. |
Aanbevolen procedures voor het laden van gegevens met partitieoptie:
- Kies een onderscheidende kolom als partitiekolom (zoals primaire sleutel of unieke sleutel) om scheeftrekken van gegevens te voorkomen.
- Als de tabel een ingebouwde partitie heeft, gebruikt u de partitieoptie Fysieke partities van de tabel om betere prestaties te krijgen.
- Als u Azure Integration Runtime gebruikt om gegevens te kopiëren, kunt u grotere 'Gegevensintegratie-eenheden (DIU)' (>4) instellen om meer rekenresources te gebruiken. Controleer de toepasselijke scenario's daar.
- 'Mate van kopieerparallellisme' bepaalt de partitienummers. Als dit getal te groot wordt ingesteld, kan dat de prestaties negatief beïnvloeden. U wordt aangeraden dit nummer in te stellen als (DIU of het aantal zelf-hostende IR-knooppunten) * (2 tot en met 4).
Voorbeeld: volledige belasting van grote tabellen met fysieke partities
"source": {
"type": "AzurePostgreSqlSource",
"partitionOption": "PhysicalPartitionsOfTable"
}
Voorbeeld: query met dynamische bereikspartitie
"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>"
}
}
Mapping-eigenschappen van de gegevensstroom
Wanneer u gegevens omzet in de gegevensstroom voor mapping, kunt u tabellen schrijven en lezen vanuit Azure Database voor PostgreSQL. Voor meer informatie, zie de brontransformatie en sinktransformatie in gegevensstromen voor mapping. U kunt ervoor kiezen om een Azure Database for PostgreSQL-gegevensset of een inline gegevensset te gebruiken als bron- en doeltype.
Opmerking
Momenteel wordt alleen basisverificatie ondersteund voor zowel V1- als V2-versies van de Azure Database for PostgreSQL-connector in toewijzingsgegevensstromen.
Brontransformatie
De onderstaande tabel bevat de eigenschappen die worden ondersteund door de Bron van Azure Database for PostgreSQL. U kunt deze eigenschappen bewerken op het tabblad Bronopties .
| Naam | Beschrijving | Verplicht | Toegestane waarden | Gegevensstroomscript-eigenschap |
|---|---|---|---|---|
| Tabel | Als u Tabel als invoer selecteert, haalt de gegevensstroom alle gegevens op uit de tabel die is opgegeven in de gegevensset. | Nee. | - |
(alleen voor inline dataset) tabelnaam |
| Zoekopdracht | Als u Query als invoer selecteert, geef dan een SQL-query op om gegevens uit bron op te halen, zodat elke tabel in de gegevensset die u opgeeft overschreven wordt. Het gebruik van query's is een uitstekende manier om rijen te verminderen voor tests of zoekacties. Order By-component wordt niet ondersteund, maar u kunt een volledige SELECT FROM-instructie instellen. U kunt ook door de gebruiker gedefinieerde tabelfuncties gebruiken. select * from udfGetData() is een UDF in SQL die een tabel retourneert die u in de gegevensstroom kunt gebruiken. Queryvoorbeeld: select * from mytable where customerId > 1000 and customerId < 2000 of select * from "MyTable". Opmerking in PostgreSQL: de naam van de entiteit wordt behandeld als niet hoofdlettergevoelig als deze niet wordt geciteerd. |
Nee. | Snaar / Touwtje | zoekopdracht |
| Schemanaam | Als u Opgeslagen procedure als invoer selecteert, geeft u een schemanaam van de opgeslagen procedure op of selecteert u Vernieuwen om de service te vragen de schemanamen te detecteren. | Nee. | Snaar / Touwtje | schemanaam |
| Opgeslagen procedure | Als u Opgeslagen procedure als invoer selecteert, geeft u een naam op van de opgeslagen procedure om gegevens uit de brontabel te lezen of selecteert u Vernieuwen om de service te vragen de namen van de procedure te detecteren. | Ja (als u Opgeslagen procedure als invoer selecteert) | Snaar / Touwtje | procedurenaam |
| Procedureparameters | Als u Opgeslagen procedure als invoer selecteert, geeft u invoerparameters op voor de opgeslagen procedure in de volgorde die in de procedure is ingesteld of selecteert u Importeren om alle procedureparameters te importeren met behulp van het formulier @paraName. |
Nee. | Array | Ingangen |
| Batchgrootte | Geef een batchgrootte op om grote gegevens in batches te segmenteren. | Nee. | Geheel getal | batchgrootte |
| Isolatieniveau | Kies een van de volgende isolatieniveaus: - Vastgelegd lezen - Niet-verzonden lezen (standaard) - Herhaalbare leesbewerking -Serializable - Geen (isolatieniveau negeren) |
Nee. | READ_COMMITTED LEZEN_ONGECOMMITTEERD REPEATABLE_READ SERIALISEERBAAR GEEN |
isolatieniveau |
Voorbeeld van Azure Database for PostgreSQL-bronscript
Wanneer u Azure Database for PostgreSQL als brontype gebruikt, is het bijbehorende gegevensstroomscript:
source(allowSchemaDrift: true,
validateSchema: false,
isolationLevel: 'READ_UNCOMMITTED',
query: 'select * from mytable',
format: 'query') ~> AzurePostgreSQLSource
Afvoertransformatie
De onderstaande tabel bevat de eigenschappen die worden ondersteund door de Sink van Azure Database for PostgreSQL. U kunt deze eigenschappen bewerken op het tabblad Sink-opties .
| Naam | Beschrijving | Verplicht | Toegestane waarden | Gegevensstroomscript-eigenschap |
|---|---|---|---|---|
| Update-methode | Geef op welke bewerkingen zijn toegestaan op uw databasebestemming. De standaardinstelling is om alleen invoegingen toe te staan. Als u rijen wilt bijwerken, toevoegen of verwijderen, is een Alter row-transformatie vereist om rijen voor deze acties te taggen. |
Ja |
true of false |
te verwijderen invoegbaar kan worden bijgewerkt bijwerkbaar en invoegbaar |
| Sleutelkolommen | Voor updates, upserts en verwijderingen moeten sleutelkolommen worden ingesteld om te bepalen welke rij moet worden gewijzigd. De kolomnaam die je als sleutel kiest, wordt gebruikt als onderdeel van volgende acties, zoals bijvoorbeeld updaten, upserten en verwijderen. Daarom moet u een kolom kiezen die bestaat in de "Sink-mapping". |
Nee. | Array | toetsen/sleutels |
| Overslaan van het schrijven van sleutelkolommen | Als u de waarde niet naar de sleutelkolom wilt schrijven, selecteert u 'Schrijfsleutelkolommen overslaan'. | Nee. |
true of false |
skipKeyWrites |
| Tabelactie | Bepaalt of alle rijen uit de doeltabel opnieuw moeten worden gemaakt of verwijderd voordat u schrijft. - Geen: Er wordt geen wijziging aan de tabel aangebracht. - Opnieuw maken: de tabel wordt verwijderd en opnieuw gemaakt. Vereist als u dynamisch een nieuwe tabel maakt. - Trunceren: Alle rijen uit de doeltabel worden verwijderd. |
Nee. |
true of false |
recreëren afkappen |
| Batchgrootte | Geef op hoeveel rijen er in elke batch worden geschreven. Grotere batchgrootten verbeteren compressie en geheugenoptimalisatie, maar risico op geheugenuitzonderingen bij het opslaan van gegevens in de cache. | Nee. | Geheel getal | batchgrootte |
| Gebruikersdatabaseschema selecteren | Standaard wordt een tijdelijke tabel gemaakt onder het sinkschema als fasering. U kunt ook de optie Sink-schema gebruiken uitschakelen en in plaats daarvan een schemanaam opgeven waaronder Data Factory een faseringstabel maakt om upstreamgegevens te laden en deze automatisch op te schonen na voltooiing. Zorg ervoor dat u een tabelmachtiging hebt gemaakt in de database en dat u de machtiging voor het schema wijzigt. | Nee. | Snaar / Touwtje | stagingSchemaName |
| Pre- en post-SQL-scripts | Geef SQL-scripts met meerdere regels op die worden uitgevoerd vóór (voorverwerking) en na (naverwerking) gegevens naar uw Sink-database worden geschreven. | Nee. | Snaar / Touwtje | preSQLs postSQLs |
Aanbeveling
- Splits enkele batchscripts met meerdere opdrachten in meerdere batches.
- Alleen DDL-instructies (Data Definition Language) en DML-instructies (Data Definition Language) die een eenvoudig aantal updates retourneren, kunnen worden uitgevoerd als onderdeel van een batch. Meer informatie over het uitvoeren van batchbewerkingen
Incrementeel extraheren inschakelen: gebruik deze optie om ADF te laten weten dat alleen rijen moeten worden verwerkt die zijn gewijzigd sinds de laatste keer dat de pijplijn is uitgevoerd.
Incrementele kolom: Wanneer u de functie incrementeel extraheren gebruikt, moet u de datum/tijd of numerieke kolom kiezen die u wilt gebruiken als het watermerk in de brontabel.
Begin met lezen vanaf het begin: Door deze optie in te stellen met incrementele extractie, wordt ADF geïnstrueerd om bij de eerste uitvoering van een pijplijn met ingeschakelde incrementele extractie alle rijen te lezen.
Voorbeeld van Azure Database for PostgreSQL-sink-script
Wanneer u Azure Database for PostgreSQL als sinktype gebruikt, is het bijbehorende gegevensstroomscript:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
deletable:false,
insertable:true,
updateable:true,
upsertable:true,
keys:['keyColumn'],
format: 'table',
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> AzurePostgreSqlSink
Script-activiteit
Belangrijk
Scriptactiviteit wordt alleen ondersteund in de versie 2.0-connector.
Belangrijk
Instructies voor meerdere query's met behulp van uitvoerparameters worden niet ondersteund. Het wordt aanbevolen om uitvoerquery's op te splitsen in afzonderlijke scriptblokken binnen dezelfde of andere scriptactiviteit.
Statements voor meerdere query's met behulp van positionele parameters worden niet ondersteund. Het wordt aanbevolen om positionele query's op te splitsen in afzonderlijke scriptblokken binnen dezelfde of andere scriptactiviteit.
Zie Scriptactiviteit voor meer informatie over scriptactiviteit.
Eigenschappen van opzoekactiviteit
Zie Lookup-activiteit voor meer informatie over de eigenschappen.
De connector voor Azure Database voor PostgreSQL bijwerken
Selecteer op de pagina Gekoppelde service bewerken2.0 onder Versie en configureer de gekoppelde service door te verwijzen naar de eigenschappen van de gekoppelde service versie 2.0.
Verwante inhoud
Zie Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.