Gegevens kopiëren uit PostgreSQL met behulp van Azure Data Factory of Synapse Analytics
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
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 de kopieeractiviteit in Azure Data Factory- en Synapse Analytics-pijplijnen gebruikt om gegevens uit een PostgreSQL-database te kopiëren. Het is gebaseerd op het artikel over het overzicht van kopieeractiviteiten met een algemeen overzicht van de kopieeractiviteit.
Belangrijk
De nieuwe PostgreSQL-connector biedt verbeterde systeemeigen PostgreSQL-ondersteuning. Als u de verouderde PostgreSQL-connector in uw oplossing gebruikt, moet u uw PostgreSQL-connector vóór 31 oktober 2024 upgraden. Raadpleeg deze sectie voor meer informatie over het verschil tussen de verouderde en de nieuwste versie.
Ondersteunde mogelijkheden
Deze PostgreSQL-connector wordt ondersteund voor de volgende mogelijkheden:
Ondersteunde mogelijkheden | IR |
---|---|
Copy-activiteit (bron/-) | (1) (2) |
Activiteit Lookup | (1) (2) |
(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime
Zie de tabel Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen/sinks door de kopieeractiviteit.
Deze PostgreSQL-connector ondersteunt met name PostgreSQL versie 7.4 en hoger.
Vereisten
Als uw gegevensarchief zich in een on-premises netwerk, een virtueel Azure-netwerk of een virtuele particuliere cloud van Amazon bevindt, moet u een zelf-hostende Integration Runtime configureren om er verbinding mee te maken.
Als uw gegevensarchief een beheerde cloudgegevensservice is, kunt u De Azure Integration Runtime gebruiken. Als de toegang is beperkt tot IP-adressen die zijn goedgekeurd in de firewallregels, kunt u IP-adressen van Azure Integration Runtime toevoegen aan de acceptatielijst.
U kunt ook de beheerde functie voor integratieruntime voor virtuele netwerken in Azure Data Factory gebruiken om toegang te krijgen tot het on-premises netwerk zonder een zelf-hostende Integration Runtime te installeren en te configureren.
Zie Strategieën voor gegevenstoegang voor meer informatie over de netwerkbeveiligingsmechanismen en -opties die door Data Factory worden ondersteund.
Integration Runtime biedt een ingebouwd PostgreSQL-stuurprogramma vanaf versie 3.7. Daarom hoeft u geen stuurprogramma handmatig te installeren.
Aan de slag
Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:
- Het hulpprogramma voor het kopiëren van gegevens
- Azure Portal
- De .NET-SDK
- De Python-SDK
- Azure PowerShell
- De REST API
- Een Azure Resource Manager-sjabloon
Een gekoppelde service maken voor PostgreSQL met behulp van de gebruikersinterface
Gebruik de volgende stappen om een gekoppelde service te maken voor 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 klik vervolgens op Nieuw:
Zoek naar Postgre en selecteer de PostgreSQL-connector.
Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.
Configuratiedetails van connector
De volgende secties bevatten details over eigenschappen die worden gebruikt voor het definiëren van Data Factory-entiteiten die specifiek zijn voor PostgreSQL-connector.
Eigenschappen van gekoppelde service
De volgende eigenschappen worden ondersteund voor de gekoppelde PostgreSQL-service:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap moet worden ingesteld op: PostgreSqlV2 | Ja |
server | Hiermee geeft u de hostnaam - en eventueel poort - waarop PostgreSQL wordt uitgevoerd. | Ja |
poort | De TCP-poort van de PostgreSQL-server. | Nee |
database | De PostgreSQL-database waarmee u verbinding wilt maken. | Ja |
gebruikersnaam | De gebruikersnaam waarmee u verbinding wilt maken. Niet vereist als u IntegratedSecurity gebruikt. | Ja |
password | Het wachtwoord waarmee u verbinding wilt maken. Niet vereist als u IntegratedSecurity gebruikt. | Ja |
sslMode | 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. - Liever SSL-verbindingen als de server deze toestaat, maar verbindingen zonder SSL toestaan. - Vereisen: mislukt de verbinding als de server geen ondersteuning biedt voor SSL. - Verify-ca: mislukt de verbinding als de server ssl niet ondersteunt. Controleert ook het servercertificaat. - Controleer volledig: mislukt de verbinding 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 |
authenticationType | Verificatietype voor het maken van verbinding met de database. Ondersteunt alleen Basic. | Ja |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Meer informatie vindt u in de sectie Vereisten . Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. | Nee |
Aanvullende verbindingseigenschappen: | ||
schema | Hiermee stelt u het zoekpad voor schema's in. | Nee |
Bundeling | Of groepsgewijze verbindingen moeten worden gebruikt. | Nee |
connectionTimeout | 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 |
commandTimeout | 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 |
trustServerCertificate | Of u het servercertificaat vertrouwt zonder het te valideren. | Nee |
sslCertificate | Locatie van een clientcertificaat dat naar de server moet worden verzonden. | Nee |
sslKey | Locatie van een clientsleutel voor een clientcertificaat dat naar de server moet worden verzonden. | Nee |
sslPassword | Wachtwoord voor een sleutel voor een clientcertificaat. | Nee |
readBufferSize | 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 |
logParameters | Wanneer deze functie is ingeschakeld, worden parameterwaarden geregistreerd wanneer opdrachten worden uitgevoerd. | Nee |
timezone | Hiermee haalt u de sessietijdzone op of stelt u deze in. | Nee |
codering | Hiermee haalt u de .NET-codering op die wordt gebruikt voor het coderen/decoderen van PostgreSQL-tekenreeksgegevens. | Nr. |
Notitie
Als u volledige SSL-verificatie wilt hebben via de ODBC-verbinding wanneer u de zelf-hostende Integration Runtime gebruikt, moet u expliciet een ODBC-typeverbinding gebruiken in plaats van de PostgreSQL-connector en de volgende configuratie voltooien:
- Stel de DSN in op SHIR-servers.
- Plaats het juiste certificaat voor PostgreSQL in C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt op de SHIR-servers. Hier zoekt het ODBC-stuurprogramma naar > het SSL-certificaat om te controleren wanneer het verbinding maakt met de database.
- Gebruik in uw data factory-verbinding een ODBC-typeverbinding met uw verbindingsreeks die verwijst naar de DSN die u hebt gemaakt op uw SHIR-servers.
Voorbeeld:
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSqlV2",
"typeProperties": {
"server": "<server>",
"port": 5432,
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"sslmode": <sslmode>,
"authenticationType": "Basic"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Voorbeeld: wachtwoord opslaan in Azure Key Vault
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSqlV2",
"typeProperties": {
"server": "<server>",
"port": 5432,
"database": "<database>",
"username": "<username>",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
"sslmode": <sslmode>,
"authenticationType": "Basic"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Eigenschappen van gegevensset
Zie het artikel 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 worden ondersteund door postgreSQL-gegevensset.
Als u gegevens uit PostgreSQL wilt kopiëren, worden de volgende eigenschappen ondersteund:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap van de gegevensset moet worden ingesteld op: PostgreSqlV2Table | Ja |
schema | Naam van het schema. | Nee (als 'query' in de activiteitsbron is opgegeven) |
table | Naam van de tabel. | Nee (als 'query' in de activiteitsbron is opgegeven) |
Voorbeeld
{
"name": "PostgreSQLDataset",
"properties":
{
"type": "PostgreSqlV2Table",
"linkedServiceName": {
"referenceName": "<PostgreSQL linked service name>",
"type": "LinkedServiceReference"
},
"annotations": [],
"schema": [],
"typeProperties": {
"schema": "<schema name>",
"table": "<table name>"
}
}
}
Als u RelationalTable
getypte gegevensset gebruikt, wordt deze nog steeds ondersteund, terwijl u wordt aangeraden de nieuwe gegevensset te gebruiken.
Eigenschappen van de kopieeractiviteit
Zie het artikel Pijplijnen 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 de PostgreSQL-bron.
PostgreSQL als bron
Als u gegevens uit PostgreSQL wilt kopiëren, worden de volgende eigenschappen ondersteund in de sectie bron van kopieeractiviteit:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op: PostgreSqlV2Source | Ja |
query | Gebruik de aangepaste SQL-query om gegevens te lezen. Voorbeeld: "query": "SELECT * FROM \"MySchema\".\"MyTable\"" . |
Nee (als 'tableName' in de gegevensset is opgegeven) |
Notitie
Schema- en tabelnamen zijn hoofdlettergevoelig. Plaats deze tussen ""
(dubbele aanhalingstekens) in de query.
Voorbeeld:
"activities":[
{
"name": "CopyFromPostgreSQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<PostgreSQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "PostgreSqlV2Source",
"query": "SELECT * FROM \"MySchema\".\"MyTable\""
},
"sink": {
"type": "<sink type>"
}
}
}
]
Als u RelationalSource
getypte bron gebruikt, wordt deze nog steeds ondersteund, terwijl u wordt aangeraden de nieuwe bron te gebruiken.
Toewijzing van gegevenstypen voor PostgreSQL
Bij het kopiëren van gegevens uit PostgreSQL worden de volgende toewijzingen gebruikt van PostgreSQL-gegevenstypen naar tussentijdse gegevenstypen die intern door de service worden gebruikt. Zie Schema- en gegevenstypetoewijzingen voor meer informatie over hoe kopieeractiviteit het bronschema en het gegevenstype toewijst aan de sink.
PostgreSql-gegevenstype | Tussentijdse servicegegevenstype | Tussentijdse servicegegevenstype voor PostgreSQL (verouderd) |
---|---|---|
SmallInt |
Int16 |
Int16 |
Integer |
Int32 |
Int32 |
BigInt |
Int64 |
Int64 |
Decimal (Precisie <= 28) |
Decimal |
Decimal |
Decimal (Precisie > 28) |
Niet-ondersteunde | String |
Numeric |
Decimal |
Decimal |
Real |
Single |
Single |
Double |
Double |
Double |
SmallSerial |
Int16 |
Int16 |
Serial |
Int32 |
Int32 |
BigSerial |
Int64 |
Int64 |
Money |
Decimal |
String |
Char |
String |
String |
Varchar |
String |
String |
Text |
String |
String |
Bytea |
Byte[] |
Byte[] |
Timestamp |
DateTime |
DateTime |
Timestamp with time zone |
DateTime |
String |
Date |
DateTime |
DateTime |
Time |
TimeSpan |
TimeSpan |
Time with time zone |
DateTimeOffset |
String |
Interval |
TimeSpan |
String |
Boolean |
Boolean |
Boolean |
Point |
String |
String |
Line |
String |
String |
Iseg |
String |
String |
Box |
String |
String |
Path |
String |
String |
Polygon |
String |
String |
Circle |
String |
String |
Cidr |
String |
String |
Inet |
String |
String |
Macaddr |
String |
String |
Macaddr8 |
String |
String |
Tsvector |
String |
String |
Tsquery |
String |
String |
UUID |
Guid |
Guid |
Json |
String |
String |
Jsonb |
String |
String |
Array |
String |
String |
Bit |
Byte[] |
Byte[] |
Bit varying |
Byte[] |
Byte[] |
XML |
String |
String |
IntArray |
String |
String |
TextArray |
String |
String |
NumbericArray |
String |
String |
DateArray |
String |
String |
Range |
String |
String |
Bpchar |
String |
String |
Eigenschappen van opzoekactiviteit
Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.
De gekoppelde PostgreSQL-service upgraden
Hier volgen stappen waarmee u uw gekoppelde PostgreSQL-service kunt upgraden:
Maak een nieuwe gekoppelde PostgreSQL-service en configureer deze door te verwijzen naar de eigenschappen van de gekoppelde service.
De toewijzing van het gegevenstype voor de meest recente gekoppelde PostgreSQL-service verschilt van die voor de verouderde versie. Zie Gegevenstypetoewijzing voor PostgreSQL voor meer informatie over de meest recente toewijzing van gegevenstypen.
Verschillen tussen PostgreSQL en PostgreSQL (verouderd)
In de onderstaande tabel ziet u de verschillen tussen de toewijzing van gegevenstypen tussen PostgreSQL en PostgreSQL (verouderd).
PostgreSQL-gegevenstype | Tussentijdse servicegegevenstype voor PostgreSQL | Tussentijdse servicegegevenstype voor PostgreSQL (verouderd) |
---|---|---|
Money | Decimaal | String |
Tijdstempel met tijdzone | Datum en tijd | String |
Tijd met tijdzone | DateTimeOffset | String |
Interval | TimeSpan | String |
BigDecimal | Wordt niet ondersteund. Als alternatief kunt u de to_char() functie gebruiken om BigDecimal te converteren naar String. |
String |
Gerelateerde inhoud
Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.