Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GILT FÜR: Azure Data Factory
Azure Synapse Analytics
Tipp
Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!
In diesem Artikel wird beschrieben, wie Sie "Copy Activity" in Azure Data Factory- und Synapse Analytics-Pipelines verwenden, um Daten aus und in die Azure-Datenbank für PostgreSQL zu kopieren. Und wie Sie Datenfluss verwenden, um Daten in Azure-Datenbank für PostgreSQL zu transformieren. Weitere Informationen finden Sie in dem Einführungsartikel zu Azure Data Factory oder Azure Synapse Analytics.
Von Bedeutung
Die Azure-Datenbank für PostgreSQL, Version 2.0, bietet verbesserte native Azure-Datenbank für PostgreSQL-Unterstützung. Wenn Sie die Azure-Datenbank für PostgreSQL, Version 1.0, in Ihrer Lösung verwenden, empfiehlt es sich, Ihre Azure-Datenbank für PostgreSQL-Connector möglichst bequem zu aktualisieren .
Dieser Connector ist speziell auf den Dienst Azure Database for PostgreSQL ausgelegt. Wenn Sie Daten aus einer generischen PostgreSQL-Datenbank in der lokalen Umgebung oder in der Cloud kopieren möchten, verwenden Sie den PostgreSQL-Connector.
Unterstützte Funktionen
Dieser Azure Database for PostgreSQL-Connector wird für folgende Funktionen unterstützt:
Unterstützte Funktionen | IR | Verwalteter privater Endpunkt |
---|---|---|
Kopieraktivität (Quelle/Senke) | (1) (2) | ✓ |
Zuordnungsdatenfluss (Quelle/Senke) | (1) | ✓ |
Lookup-Aktivität | (1) (2) | ✓ |
① Azure Integration Runtime ② Selbstgehostete Integration Runtime
Die drei Aktivitäten arbeiten an Azure Database für PostgreSQL Single Server, Flexible Server und Azure Cosmos DB für PostgreSQL.
Von Bedeutung
Azure Database for PostgreSQL Single Server wird am 28. März 2025 eingestellt. Migrieren Sie nach diesem Datum zu flexiblem Server. Sie können sich auf diesen Artikel und häufig gestellte Fragen zu den Migrationsleitfäden beziehen.
Erste Schritte
Sie können eines der folgenden Tools oder SDKs verwenden, um die Kopieraktivität mit einer Pipeline zu verwenden:
- Das Tool „Daten kopieren“
- Azure-Portal
- Das .NET SDK
- Das Python SDK
- Azure PowerShell
- Die REST-API
- Die Azure Resource Manager-Vorlage
Erstellen eines mit Azure Database for PostgreSQL verknüpften Diensts über die Benutzeroberfläche
Führen Sie die folgenden Schritte aus, um einen mit Azure Database for PostgreSQL verknüpften Dienst in der Benutzeroberfläche des Azure-Portals zu erstellen.
Navigieren Sie in Ihrem Azure Data Factory- oder Synapse-Arbeitsbereich zur Registerkarte „Verwalten“, und wählen Sie „Verknüpfte Dienste“ und anschließend „Neu“ aus:
Suchen Sie nach PostgreSQL, und wählen Sie den Azure Database for PostgreSQL-Connector aus.
Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.
Details zur Connectorkonfiguration
Die folgenden Abschnitte enthalten Details zu Eigenschaften, die zum Definieren von Data Factory-Entitäten für den Azure Database for PostgreSQL-Connector verwendet werden.
Eigenschaften des verknüpften Diensts
Die Azure-Datenbank für PostgreSQL Connector Version 2.0 unterstützt transport Layer Security (TLS) 1.3 und mehrere SSL-Modi (Secured Socket Layer). In diesem Abschnitt erfahren Sie, wie Sie Ihre Azure SQL-Datenbankconnectorversion von Version 1.0 aktualisieren. Einzelheiten zur Eigenschaft finden Sie in den entsprechenden Abschnitten.
Version 2.0
Die folgenden Eigenschaften werden für den verknüpften Azure-Datenbankdienst für PostgreSQL unterstützt, wenn Sie Version 2.0 anwenden:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Die type-Eigenschaft muss auf Folgendes festgelegt werden: AzurePostgreSql. | Ja |
Ausgabe | Die von Ihnen angegebene Version. Der Wert ist 2.0 . |
Ja |
Authentifizierungstyp | Wählen Sie aus den Authentifizierungstypen Basis, Dienstprinzipal, vom System zugewiesene verwaltete Identität oder vom Benutzer zugewiesene verwaltete Identität. | Ja |
Server | Gibt den Hostnamen und optional den Port an, auf dem die Azure Database für PostgreSQL ausgeführt wird. | Ja |
Hafen | Der TCP-Port der Azure-Datenbank für PostgreSQL-Server. Der Standardwert ist 5432 . |
Nein |
Datenbank | Der Name der Azure-Datenbank für PostgreSQL, mit der eine Verbindung hergestellt werden soll. | Ja |
SSL-Modus | Steuert, ob SSL verwendet wird, je nach Serverunterstützung - Disable: SSL ist deaktiviert. Wenn der Server SSL erfordert, schlägt die Verbindung fehl. - Allow: Nicht-SSL-Verbindungen werden bevorzugt, wenn der Server sie zulässt, aber SSL-Verbindungen werden zugelassen. - Prefer: SSL-Verbindungen werden bevorzugt, wenn der Server sie zulässt, aber Verbindungen ohne SSL werden zugelassen. - Erforderlich: Die Verbindung schlägt fehl, wenn der Server SSL nicht unterstützt. - Verify-ca: Die Verbindung schlägt fehl, wenn der Server SSL nicht unterstützt. Überprüft außerdem das Serverzertifikat - Überprüfen Sie vollständig: Die Verbindung schlägt fehl, wenn der Server SSL nicht unterstützt. Überprüft außerdem das Serverzertifikat mit dem Namen des Hosts Optionen: Disable (0) / Allow (1) / Prefer (2) (Standard) / Require (3) / Verify-ca (4) / Verify-full (5) |
Nein |
connectVia | Diese Eigenschaft gibt die Integration Runtime an, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet wird. Sie können die Azure-Integrationslaufzeit oder selbstgehostete Integrationslaufzeit verwenden (sofern sich Ihr Datenspeicher in einem privaten Netzwerk befindet). Wenn keine Option angegeben ist, wird die standardmäßige Azure Integration Runtime verwendet. | Nein |
Zusätzliche Verbindungseigenschaften: | ||
Schema | Legt den Schema-Suchpfad fest | Nein |
vereinigend | Gibt an, ob Verbindungspooling verwendet werden soll | Nein |
VerbindungsZeitüberschreitung | Die Wartezeit (in Sekunden) beim Versuch, eine Verbindung herzustellen, bevor der Versuch beendet und ein Fehler erzeugt wird. | Nein |
commandTimeout | Die Zeit (in Sekunden), die beim Ausführen eines Befehls gewartet werden soll, bis der Versuch beendet und ein Fehler generiert wird. Legen Sie für die Unendlichkeit Null fest. | Nein |
trustServerZertifikat | Gibt an, ob dem Serverzertifikat vertraut werden soll, ohne es zu überprüfen | Nein |
readBufferSize | Bestimmt die Größe des internen Puffers, den Npgsql beim Lesen verwendet. Die Erhöhung kann die Leistung verbessern, wenn große Werte aus der Datenbank übertragen werden. | Nein |
Zeitzone | Ruft die Zeitzone der Sitzung ab oder legt sie fest | Nein |
Kodierung | Dient zum Abrufen oder Festlegen der .NET-Codierung für die Codierung/Decodierung von PostgreSQL-Zeichenfolgendaten. | Nein |
Standardauthentifizierung
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Benutzername | Der Benutzername, mit dem eine Verbindung hergestellt werden soll. Ist bei Verwendung von IntegratedSecurity nicht erforderlich | Ja |
Kennwort | Das Kennwort, mit dem eine Verbindung hergestellt werden soll. Ist bei Verwendung von IntegratedSecurity nicht erforderlich Markieren Sie dieses Feld als SecureString, um es sicher zu speichern. Alternativ können Sie auf ein in Azure Key Vault gespeichertes Geheimnis verweisen. | Ja |
Beispiel:
{
"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>"
}
}
}
}
Beispiel:
Speichern des Kennworts 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>"
}
}
}
}
Authentifizierung mit einer systemseitig zugewiesenen verwalteten Identität
Ein Data Factory- oder Synapse-Arbeitsbereich kann einer vom System zugewiesenen verwalteten Identität zugeordnet werden, die den Dienst darstellt, wenn er für andere Ressourcen in Azure authentifiziert wird. Sie können diese verwaltete Identität für die Azure-Datenbank für die PostgreSQL-Authentifizierung verwenden. Die angegebenen Factory oder Synapse Arbeitsbereiche können mittels dieser Identität auf Daten zugreifen und Daten aus der oder in die Datenbank kopieren.
Führen Sie die schritte aus, um vom System zugewiesene verwaltete Identität zu verwenden:
Eine Datenfabrik oder ein Synapse-Arbeitsbereich kann einer vom System zugewiesenen verwalteten Identität zugeordnet werden. Weitere Informationen, Generieren von vom System zugewiesener verwalteter Identität
Die Azure-Daten für PostgreSQL mit der systemseitig zugewiesenen verwalteten Identität auf Ein.
In Ihrer Azure-Datenbank für PostgreSQL-Ressource unter "Sicherheit"
Wählen Sie Authentifizierung
Wählen Sie entweder nur die Microsoft Entra-Authentifizierung oder die Methode der PostgreSQL- und Microsoft Entra-Authentifizierung aus .
Auswählen + Hinzufügen von Microsoft Entra-Administratoren
Hinzufügen der systemseitig zugewiesenen verwalteten Identität für die Azure Data Factory-Ressource als einer der Microsoft Entra-Admins
Konfigurieren Sie eine Azure-Datenbank für einen mit PostgreSQL verknüpften Dienst.
Beispiel:
{
"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"
}
}
}
Authentifizierung mit einer benutzerseitig zugewiesenen verwalteten Identität
Ein Data Factory- oder Synapse-Arbeitsbereich kann einer vom Benutzer zugewiesenen verwalteten Identität zugeordnet werden, die den Dienst darstellt, wenn er für andere Ressourcen in Azure authentifiziert wird. Sie können diese verwaltete Identität für die Azure-Datenbank für die PostgreSQL-Authentifizierung verwenden. Die angegebenen Factory oder Synapse Arbeitsbereiche können mittels dieser Identität auf Daten zugreifen und Daten aus der oder in die Datenbank kopieren.
Um die vom Benutzer zugewiesene verwaltete Identitätsauthentifizierung zu verwenden, geben Sie zusätzlich zu den im vorherigen Abschnitt beschriebenen allgemeinen Eigenschaften die folgenden Eigenschaften an:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Berechtigungsnachweis | Geben Sie die vom Benutzer zugewiesene verwaltete Identität als Anmeldeobjekt an. | Ja |
Sie müssen auch die Schritte ausführen:
Stellen Sie sicher, dass Sie eine vom Benutzer zugewiesene verwaltete Identitätsressource im Azure-Portal erstellen. Weitere Informationen finden Sie unter Verwalten von vom Benutzer zugewiesenen verwalteten Identitäten
Weisen Sie die vom Benutzer zugewiesene verwaltete Identität Ihrer Azure-Datenbankressource für PostgreSQL zu.
In Ihrer Azure-Datenbank für die PostgreSQL-Serverressource unter Sicherheit
Wählen Sie Authentifizierung
Überprüfen, ob es sich bei der Authentifizierungsmethode nur um die Microsoft Entra-Authentifizierung oder die PostgreSQL- und Microsoft Entra-Authentifizierung handelt
Wählen Sie den Link "Microsoft Entra-Administratoren hinzufügen " aus, und wählen Sie Ihre vom Benutzer zugewiesene verwaltete Identität aus.
Zuweisen der vom Benutzer zugewiesenen verwalteten Identität zu Ihrer Azure Data Factory-Ressource
Konfigurieren Sie eine Azure-Datenbank für einen mit PostgreSQL verknüpften Dienst.
Beispiel:
{
"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"
}
}
}
}
Dienstprinzipalauthentifizierung
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Benutzername | Der Anzeigename des Dienstprinzipals | Ja |
Mieter | Der Mandant, in dem sich der Azure DB for PostgreSQL-Server befindet | Ja |
servicePrincipalId | Anwendungs-ID des Dienstprinzipals | Ja |
servicePrincipalCredentialType | Wählen Sie aus, ob das Dienstprinzipalzertifikat oder der Dienstprinzipalschlüssel die gewünschte Authentifizierungsmethode ist. - ServicePrincipalCert: Auf Dienstprinzipalzertifikat für Dienstprinzipalzertifikate festlegen. - ServicePrincipalKey: Auf Dienstprinzipalschlüssel für die Dienstprinzipalschlüsselauthentifizierung festlegen. |
Ja |
servicePrincipalKey | Wert für den geheimen Clientschlüssel Wird verwendet, wenn der Dienstprinzipalschlüssel ausgewählt ist | Ja |
azureCloudType | Wählen Sie den Azure-Cloudtyp Ihrer Azure-Datenbank für PostgreSQL-Server aus. | Ja |
servicePrincipalEmbeddedCert | Dienstprinzipal-Zertifikatdatei | Ja |
servicePrincipalEmbeddedCertPassword | Dienstprinzipal-Zertifikatkennwort, sofern erforderlich | Nein |
Beispiel:
Dienstprinzipalschlüssel
{
"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>"
}
}
}
Beispiel:
Dienstprinzipalzertifikat
{
"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>"
}
}
}
Version 1.0
Die folgenden Eigenschaften werden für den verknüpften Azure-Datenbankdienst für PostgreSQL unterstützt, wenn Sie Version 1.0 anwenden:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Die type-Eigenschaft muss auf Folgendes festgelegt werden: AzurePostgreSql. | Ja |
Ausgabe | Die von Ihnen angegebene Version. Der Wert ist 1.0 . |
Ja |
connectionZeichenfolge | Eine Npgsql-Verbindungszeichenfolge zum Herstellen einer Verbindung mit Der Azure-Datenbank für PostgreSQL. Sie können auch ein Kennwort in Azure Key Vault speichern und die password -Konfiguration aus der Verbindungszeichenfolge pullen. Weitere Informationen finden Sie in den folgenden Beispielen sowie unter Speichern von Anmeldeinformationen in Azure Key Vault. |
Ja |
connectVia | Diese Eigenschaft gibt die Integration Runtime an, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet wird. Sie können die Azure-Integrationslaufzeit oder selbstgehostete Integrationslaufzeit verwenden (sofern sich Ihr Datenspeicher in einem privaten Netzwerk befindet). Wenn keine Option angegeben ist, wird die standardmäßige Azure Integration Runtime verwendet. | Nein |
Eine typische Verbindungszeichenfolge ist host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>
. Weitere Eigenschaften, die Sie für Ihren Fall festlegen können:
Eigenschaft | Beschreibung | Tastatur | Erforderlich |
---|---|---|---|
EncryptionMethod (EM) | Diese Methode wird vom Treiber verwendet, um Daten zu verschlüsseln, die zwischen dem Treiber und dem Datenbankserver gesendet werden. Zum Beispiel, EncryptionMethod=<0/1/6>; |
0 (keine Verschlüsselung) (Standard) / 1 (SSL) / 6 (RequestSSL) | Nein |
ValidateServerCertificate (VSC) | Bestimmt, ob der Treiber das Zertifikat überprüft, das vom Datenbankserver gesendet wird, wenn die SSL-Verschlüsselung aktiviert ist (Encryption Method=1). Zum Beispiel, ValidateServerCertificate=<0/1>; |
0 (Deaktiviert) (Standard) / 1 (Aktiviert) | Nein |
Beispiel:
{
"name": "AzurePostgreSqlLinkedService",
"properties": {
"type": "AzurePostgreSql",
"version": "1.0",
"typeProperties": {
"connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>"
}
}
}
Beispiel:
Speichern des Kennworts 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>"
}
}
}
}
Dataset-Eigenschaften
Eine vollständige Liste mit den Abschnitten und Eigenschaften, die zum Definieren von Datasets zur Verfügung stehen, finden Sie im Artikel zu Datasets. Dieser Abschnitt enthält eine Liste der Eigenschaften, die Azure Database for PostgreSQL in Datasets unterstützt.
Legen Sie die „type“-Eigenschaft des Datasets auf AzurePostgreSQLTable fest, um Daten aus Azure Database for PostgreSQL zu kopieren. Folgende Eigenschaften werden unterstützt:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Die Typeigenschaft des Datasets muss auf AzurePostgreSqlTable festgelegt werden. | Ja |
Schema | Name des Schemas. | Nein (wenn „query“ in der Aktivitätsquelle angegeben ist) |
Tisch | Name der Tabelle/Ansicht. | Nein (wenn „query“ in der Aktivitätsquelle angegeben ist) |
Tabellenname | Name der Tabelle. Diese Eigenschaft wird aus Gründen der Abwärtskompatibilität weiterhin unterstützt. Verwenden Sie für eine neue Workload schema und table . |
Nein (wenn „query“ in der Aktivitätsquelle angegeben ist) |
Beispiel:
{
"name": "AzurePostgreSqlDataset",
"properties": {
"type": "AzurePostgreSqlTable",
"linkedServiceName": {
"referenceName": "<AzurePostgreSql linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
}
}
}
Eigenschaften der Kopieraktivität
Eine vollständige Liste der verfügbaren Abschnitte und Eigenschaften zum Definieren von Aktivitäten finden Sie unter Pipelines. Dieser Abschnitt enthält eine Liste mit den Eigenschaften, die in einer Azure Database for PostgreSQL-Quelle unterstützt werden.
Azure-Datenbank für PostgreSQL als Quelle
Legen Sie zum Kopieren von Daten aus Azure Database for PostgreSQL den Quelltyp in der Kopieraktivität auf AzureMySqlSource fest. Folgende Eigenschaften werden im Abschnitt source der Kopieraktivität unterstützt:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Die type-Eigenschaft der Quelle der Kopieraktivität muss auf AzurePostgreSqlSource festgelegt werden. | Ja |
Abfrage | Verwendet die benutzerdefinierte SQL-Abfrage zum Lesen von Daten. Beispiel: SELECT * FROM mytable oder SELECT * FROM "MyTable" . Beachten Sie, dass in PostgreSQL bei einem Entitätsnamen ohne Anführungszeichen die Groß-/Kleinschreibung nicht berücksichtigt wird. |
Nein (wenn die tableName-Eigenschaft im Dataset angegeben ist) |
queryTimeout | Die Wartezeit, bevor der Versuch, einen Befehl auszuführen, beendet und ein Fehler generiert wird (der Standardwert ist 120 Minuten). Wenn für diese Eigenschaft ein Parameter festgelegt ist, sind Zeitspannen als Werte (Timespan-Werte) zulässig, z. B. „02:00:00“ (120 Minuten). Weitere Informationen finden Sie unter CommandTimeout. | Nein |
Partitionierungsoptionen | Hiermit werden die Datenpartitionierungsoptionen angegeben, mit denen Daten aus Azure SQL-Datenbank geladen werden. Zulässige Werte sind: None (Standardwert), PhysicalPartitionsOfTable und DynamicRange. Wenn eine Partitionierungsoption aktiviert ist (d.h. nicht None ), wird der Parallelitätsgrad für das gleichzeitige Laden von Daten aus einer Oracle-Datenbank durch die Einstellung parallelCopies der Kopieraktivität gesteuert. |
Nein |
Partitionseinstellungen | Geben Sie die Gruppe der Einstellungen für die Datenpartitionierung an. Verwenden Sie diese Option, wenn die Partitionsoption nicht None lautet. |
Nein |
Unter partitionSettings : |
||
Partitionsnamen | Die Liste der physischen Partitionen, die kopiert werden müssen. Verwenden Sie diese Option, wenn die Partitionsoption PhysicalPartitionsOfTable lautet. Wenn Sie die Quelldaten mithilfe einer Abfrage abrufen, integrieren Sie ?AdfTabularPartitionName in die WHERE-Klausel. Ein Beispiel finden Sie im Abschnitt Paralleles Kopieren aus Azure Database for PostgreSQL. |
Nein |
partitionColumnName | Geben Sie den Namen der Quellspalte, der von der Bereichspartitionierung für paralleles Kopieren verwendet wird, als „integer“ oder „date/datetime“ (int , smallint , bigint , date , timestamp without time zone , timestamp with time zone oder time without time zone ) an. Ohne Angabe wird der Primärschlüssel der Tabelle automatisch erkannt und als Partitionsspalte verwendet.Verwenden Sie diese Option, wenn die Partitionsoption DynamicRange lautet. Wenn Sie die Quelldaten mithilfe einer Abfrage abrufen, integrieren Sie ?AdfRangePartitionColumnName in die WHERE-Klausel. Ein Beispiel finden Sie im Abschnitt Paralleles Kopieren aus Azure Database for PostgreSQL. |
Nein |
partitionUpperBound | Der Höchstwert der Partitionsspalte zum Herauskopieren von Daten Verwenden Sie diese Option, wenn die Partitionsoption DynamicRange lautet. Wenn Sie die Quelldaten mithilfe einer Abfrage abrufen, integrieren Sie ?AdfRangePartitionUpbound in die WHERE-Klausel. Ein Beispiel finden Sie im Abschnitt Paralleles Kopieren aus Azure Database for PostgreSQL. |
Nein |
Partitionsuntergrenze | Der Mindestwert der Partitionsspalte zum Exportieren von Daten. Verwenden Sie diese Option, wenn die Partitionsoption DynamicRange lautet. Wenn Sie die Quelldaten mithilfe einer Abfrage abrufen, integrieren Sie ?AdfRangePartitionLowbound in die WHERE-Klausel. Ein Beispiel finden Sie im Abschnitt Paralleles Kopieren aus Azure Database for PostgreSQL. |
Nein |
Beispiel:
"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 Senke
Beim Kopieren von Daten nach Azure Database for PostgreSQL werden im Abschnitt sink der Kopieraktivität folgende Eigenschaften unterstützt:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Die type-Eigenschaft der Senke der Kopieraktivität muss auf AzurePostgreSqlSink festgelegt sein. | Ja |
preCopyScript | Geben Sie eine SQL-Abfrage für die Kopieraktivität an, die bei jeder Ausführung ausgeführt wird, bevor Daten in Azure Database for PostgreSQL geschrieben werden. Sie können diese Eigenschaft nutzen, um die vorab geladenen Daten zu bereinigen. | Nein |
writeMethod | Die Methode zum Schreiben von Daten in Azure Database for PostgreSQL. Zulässige Werte: CopyCommand (Standardeinstellung mit höherer Leistung), BulkInsert. |
Nein |
writeBatchSize | Die Anzahl von Zeilen, die pro Batch in Azure Database for PostgreSQL geladen werden. Als Wert ist ein Integer zulässig, der die Anzahl der Zeilen angibt. |
Nein (Standardwert: 1.000.000) |
writeBatchTimeout | Die Wartezeit für den Abschluss der Batcheinfügung, bis das Timeout wirksam wird. Zulässige Werte sind Timespan-Zeichenfolgen. Beispiel: 00:30:00 (30 Minuten). |
Nein (Standardwert: 00:30:00) |
Beispiel:
"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
}
}
}
]
Paralleles Kopieren aus Azure Database for PostgreSQL
Der Connector für Azure SQL-Datenbank in der Kopieraktivität verfügt über eine integrierte Datenpartitionierung zum parallelen Kopieren von Daten. Die Datenpartitionierungsoptionen befinden sich auf der Registerkarte Quelle der Kopieraktivität.
Wenn Sie das partitionierte Kopieren aktivieren, führt die Kopieraktivität parallele Abfragen für Ihre Azure SQL-Datenbank-Quelle aus, um Daten in Partitionen zu laden. Der Parallelitätsgrad wird über die Einstellung parallelCopies
der Kopieraktivität gesteuert. Wenn Sie beispielsweise parallelCopies
auf vier setzen, generiert der Dienst gleichzeitig vier Abfragen auf der Grundlage der von Ihnen angegebenen Partitionsoption und -einstellungen und führt sie aus, wobei jede Abfrage einen Teil der Daten aus Ihrer Azure SQL-Datenbank abruft.
Sie werden empfohlen, parallele Kopie mit Datenpartitionierung zu aktivieren, insbesondere wenn Sie große Datenmengen aus Ihrer Azure-Datenbank für PostgreSQL laden. Im Anschluss finden Sie empfohlene Konfigurationen für verschiedene Szenarien. Beim Kopieren von Daten in einen dateibasierten Datenspeicher empfiehlt es sich, in einen Ordner als mehrere Dateien zu schreiben (nur den Ordnernamen angeben), in diesem Fall ist die Leistung besser als das Schreiben in eine einzelne Datei.
Szenario | Empfohlene Einstellungen |
---|---|
Vollständiges Laden aus einer großen Tabelle mit physischen Partitionen |
Partitionsoption: Physische Partitionen der Tabelle. Während der Ausführung erkennt der Dienst automatisch die physischen Partitionen und kopiert Daten nach Partitionen. |
Vollständiges Laden aus einer großen Tabelle ohne physische Partitionen, aber mit einer Integerspalte für die Datenpartitionierung |
Partitionsoptionen: Dynamische Bereichspartitionierung Partitionsspalte: Geben Sie die Spalte für die Datenpartitionierung an. Ohne Angabe wird die Primärschlüsselspalte verwendet. |
Laden einer großen Datenmenge unter Verwendung einer benutzerdefinierten Abfrage mit physischen Partitionen |
Partitionsoption: Physische Partitionen der Tabelle. Abfrage: SELECT * FROM ?AdfTabularPartitionName WHERE <your_additional_where_clause> Partitionsname: Geben Sie mindestens einen Partitionsnamen an, aus dem Daten kopiert werden sollen. Wenn keine Angabe erfolgt, erkennt der Dienst automatisch die physischen Partitionen in der Tabelle, die Sie im PostgreSQL-Dataset angegeben haben. Während der Ausführung ersetzt der Dienst ?AdfTabularPartitionName mit dem tatsächlichen Partitionsnamen und sendet an Azure DB for PostgreSQL. |
Laden einer großen Datenmenge unter Verwendung einer benutzerdefinierten Abfrage ohne physische Partitionen, aber mit einer Integerspalte für die Datenpartitionierung |
Partitionsoptionen: Dynamische Bereichspartitionierung Abfrage: SELECT * FROM ?AdfTabularPartitionName WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause> Partitionsspalte: Geben Sie die Spalte für die Datenpartitionierung an. Sie können eine Partition für die Spalte mit einem Integer- oder date/datetime-Datentyp erstellen. Obergrenze der Partition und Untergrenze der Partition: Geben Sie an, ob Sie anhand der Partitionsspalte filtern möchten, um nur Daten zwischen der Ober- und der Untergrenze zu erhalten. Während der Ausführung ersetzt der Dienst ?AdfRangePartitionColumnName , ?AdfRangePartitionUpbound und ?AdfRangePartitionLowbound mit dem tatsächlichen Spaltennamen und den Wertbereichen für jede Partition und sendet an Azure DB for PostgreSQL. Wenn z. B. für Ihre Partitionsspalte „ID“ die untere Grenze auf 1 und die obere Grenze auf 80 festgelegt ist und die Parallelkopie auf 4 eingestellt ist, ruft der Dienst Daten nach vier Partitionen ab. Die ID-Bereiche sehen dann wie folgt aus: [1–20], [21–40], [41–60] und [61–80]. |
Bewährte Methoden zum Laden von Daten mit Partitionierungsoption:
- Wählen Sie eine aussagekräftige Spalte als Partitionsspalte (wie Primärschlüssel oder eindeutiger Schlüssel), um Datenabweichungen zu vermeiden.
- Wenn die Tabelle eine integrierte Partition aufweist, verwenden Sie die Partitionsoption „Physikalische Partitionen der Tabelle“, um eine bessere Leistung zu erzielen.
- Wenn Sie Azure Integration Runtime zum Kopieren von Daten verwenden, können Sie größere „Datenintegrationseinheiten (Data Integration Units, DIU)“ festlegen (> 4), um mehr Computingressourcen zu nutzen. Prüfen Sie dort die anwendbaren Szenarien.
- "Der Grad der Kopierparallelität bestimmt die Partitionsnummern. Eine zu große Zahl kann manchmal die Leistung beeinträchtigen." Empfehlen Sie, diese Zahl als (DIU oder Anzahl von selbst gehosteten IR-Knoten) * (2 bis 4) festzulegen.
Beispiel: Vollständiges Laden aus einer großen Tabelle mit physischen Partitionen
"source": {
"type": "AzurePostgreSqlSource",
"partitionOption": "PhysicalPartitionsOfTable"
}
Beispiel: Abfrage mit dynamischer Bereichspartition
"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>"
}
}
Eigenschaften von Mapping Data Flow
Beim Transformieren von Daten im Zuordnungsdatenfluss können Sie Tabellen in Azure Database for PostgreSQL lesen und in diese schreiben. Weitere Informationen finden Sie unter Quellentransformation und Senkentransformation in Zuordnungsdatenflüssen. Sie können ein Azure Database for PostgreSQL-Dataset oder ein Inlinedataset als Quell- und Senkentyp verwenden.
Quellentransformation
In der folgenden Tabelle sind die von der Azure Database for PostgreSQL-Quelle unterstützten Eigenschaften aufgeführt. Sie können diese Eigenschaften auf der Registerkarte Quelloptionen bearbeiten.
Name | Beschreibung | Erforderlich | Zulässige Werte | Datenflussskript-Eigenschaft |
---|---|---|---|---|
Tabelle | Wenn Sie „Tabelle“ als Eingabe auswählen, ruft der Datenfluss alle Daten aus der im Dataset angegebenen Tabelle ab. | Nein | - |
(nur für Inlinedataset) Tabellenname |
Abfrage | Wenn Sie „Abfrage“ als Eingabe auswählen, geben Sie eine SQL-Abfrage zum Abrufen von Daten aus der Quelle an, die Vorrang vor jeder im Dataset angegebenen Tabelle hat. Die Verwendung von Abfragen stellt eine gute Möglichkeit dar, um die Zeilen für Tests oder Suchvorgänge zu verringern. Order By-Klausel wird nicht unterstützt, Sie können jedoch eine vollständige SELECT FROM-Anweisung festlegen. Sie können auch benutzerdefinierte Tabellenfunktionen verwenden. select * from udfGetData() ist eine benutzerdefinierte Funktion in SQL, mit der eine Tabelle zurückgegeben wird, die Sie im Datenfluss verwenden können. Abfragebeispiel: select * from mytable where customerId > 1000 and customerId < 2000 oder select * from "MyTable" . Beachten Sie, dass in PostgreSQL bei einem Entitätsnamen ohne Anführungszeichen die Groß-/Kleinschreibung nicht berücksichtigt wird. |
Nein | Schnur | Abfrage |
Schemaname | Wenn Sie „Gespeicherte Prozedur als Eingabe“ auswählen, geben Sie einen Schemanamen der gespeicherten Prozedur an, oder wählen Sie „Aktualisieren“ aus, um den Dienst aufzufordern, die Schemanamen zu ermitteln. | Nein | Schnur | schemaName |
Gespeicherte Prozedur | Wenn Sie „Gespeicherte Prozedur als Eingabe“ auswählen, geben Sie einen Namen der gespeicherten Prozedur an, um Daten aus der Quelltabelle zu lesen, oder wählen Sie „Aktualisieren“ aus, um den Dienst aufzufordern, die Prozedurnamen zu ermitteln. | Ja (wenn Sie „Gespeicherte Prozedur als Eingabe“ auswählen) | Schnur | procedureName |
Prozedurparameter | Wenn Sie „Gespeicherte Prozedur als Eingabe“ auswählen, geben Sie alle Eingabeparameter für die gespeicherte Prozedur in der in der Prozedur festgelegten Reihenfolge an, oder wählen Sie „Importieren“ aus, um alle Prozedurparameter mithilfe des Formulars @paraName zu importieren. |
Nein | Anordnung | Eingaben |
Batchgröße | Geben Sie eine Batchgröße an, um große Datenmengen in Batches zu segmentieren. | Nein | Ganze Zahl | Batchgröße |
Isolationsstufe | Wählen Sie eine der folgenden Isolationsstufen aus: – Lesen zugesichert – Lesen nicht zugesichert (Standard) – Wiederholbarer Lesevorgang – Serialisierbar – Keine (Isolationsstufe ignorieren) |
Nein | READ_COMMITTED READ_UNCOMMITTED Wiederholbarer_Lesevorgang (REPEATABLE_READ) SERIALISIERBAR NICHTS |
Isolationsebene |
Azure Database for PostgreSQL: Beispiel für ein Quellskript
Wenn Sie Azure Database for PostgreSQL als Quelltyp verwenden, sieht das zugehörige Datenflussskript wie folgt aus:
source(allowSchemaDrift: true,
validateSchema: false,
isolationLevel: 'READ_UNCOMMITTED',
query: 'select * from mytable',
format: 'query') ~> AzurePostgreSQLSource
Senkentransformation
In der folgenden Tabelle sind die von der Azure Database for PostgreSQL-Senke unterstützten Eigenschaften aufgeführt. Sie können diese Eigenschaften auf der Registerkarte Senkenoptionen bearbeiten.
Name | Beschreibung | Erforderlich | Zulässige Werte | Datenflussskript-Eigenschaft |
---|---|---|---|---|
Updatemethode | Geben Sie an, welche Vorgänge für das Datenbankziel zulässig sind. Standardmäßig sind lediglich Einfügevorgänge zulässig. Um Aktualisierungs-, Upsert- oder Löschaktionen auf Zeilen anzuwenden, muss eine Zeilenänderungstransformation zum Kennzeichnen von Zeilen für diese Aktionen erfolgen. |
Ja |
true oder false |
löschbar Insertierbaren aktualisierbar Upsertable |
Schlüsselspalten | Für Update-, Upsert- und Löschvorgänge müssen Schlüsselspalten festgelegt werden, um die Zeile zu bestimmen, die geändert werden soll. Der Spaltenname, den Sie als Schlüssel auswählen, wird als Teil der nachfolgenden Update-, Upsert- und Löschvorgänge verwendet. Daher müssen Sie eine Spalte auswählen, die in der Senkenzuordnung vorhanden ist. |
Nein | Anordnung | Schlüssel |
Schreiben von Schlüsselspalten überspringen | Wenn Sie den Wert nicht in die Schlüsselspalte schreiben möchten, wählen Sie „Schreiben von Schlüsselspalten überspringen“ aus. | Nein |
true oder false |
skipKeyWrites |
Aktion table | Bestimmt, ob alle Zeilen vor dem Schreiben neu erstellt oder aus der Zieltabelle entfernt werden sollen. - Keine: Für die Tabelle wird keine Aktion ausgeführt. - Neu erstellen: Die Tabelle wird gelöscht und neu erstellt. Erforderlich, wenn eine neue Tabelle dynamisch erstellt wird. - Abschneiden: Alle Zeilen werden aus der Zieltabelle entfernt. |
Nein |
true oder false |
Neu erstellen abschneiden |
Batchgröße | Geben Sie an, wie viele Zeilen in die einzelnen Batches geschrieben werden. Durch größere Batches werden zwar Komprimierung und Arbeitsspeicheroptimierung verbessert, beim Zwischenspeichern von Daten besteht aber die Gefahr, dass Ausnahmen wegen unzureichenden Arbeitsspeichers auftreten. | Nein | Ganze Zahl | Batchgröße |
Benutzerdatenbankschema auswählen | Standardmäßig wird eine temporäre Tabelle unter dem Senkenschema als Staging erstellt. Alternativ können Sie die Option Senkenschema verwenden deaktivieren, und stattdessen einen Schemanamen angeben, unter dem Data Factory eine Stagingtabelle erstellt, um vorgelagerte Daten zu laden und diese automatisch nach Abschluss zu löschen. Stellen Sie sicher, dass Sie Tabellenberechtigungen in der Datenbank erstellen und die Berechtigung für das Schema ändern. | Nein | Schnur | stagingSchemaName |
Pre- und Post-SQL-Skripts | Geben Sie mehrzeilige SQL-Skripts an, die vor (Vorverarbeitung) und nachdem die Daten in Ihre Senk-Datenbank geschrieben wurden (Nachverarbeitung), ausgeführt werden. | Nein | Schnur | preSQLs postSQLs |
Tipp
- Teilen sie einzelne Batchskripts mit mehreren Befehlen in mehrere Batches auf.
- In einem Batch können nur DDL- (Data Definition Language) und DML-Anweisungen (Data Manipulation Language) ausgeführt werden, die eine einfache Updatezählung zurückgeben. Weitere Informationen finden Sie unter Ausführen von Batchvorgängen.
Inkrementelles Extrahieren aktivieren: Verwenden Sie diese Option, um ADF anweisen, nur Zeilen zu verarbeiten, die seit der letzten Ausführung der Pipeline geändert wurden.
Inkrementelle Spalte: Wenn Sie die inkrementelle Extraktfunktion verwenden, müssen Sie die Datums-/Uhrzeitspalte oder numerische Spalte auswählen, die Sie als Wasserzeichen in der Quelltabelle verwenden möchten.
Beginnen Sie mit dem Lesen von Anfang: Wenn Sie diese Option mit inkrementeller Extraktion festlegen, weist dies ADF an, bei der ersten Ausführung einer Pipeline mit aktivierter inkrementeller Extraktion alle Zeilen zu lesen.
Azure Database for PostgreSQL: Beispiel für ein Senkenskript
Wenn Sie Azure Database for PostgreSQL als Senkentyp verwenden, sieht das zugehörige Datenflussskript wie folgt aus:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
deletable:false,
insertable:true,
updateable:true,
upsertable:true,
keys:['keyColumn'],
format: 'table',
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> AzurePostgreSqlSink
Eigenschaften der Lookup-Aktivität
Weitere Informationen zu den Eigenschaften finden Sie unter Lookup-Aktivität in Azure Data Factory.
Upgrade der Azure-Datenbank für PostgreSQL-Connector
Wählen Sie auf der Seite "Verknüpften Dienst bearbeiten " die Option 2.0 unter "Version " aus, und konfigurieren Sie den verknüpften Dienst, indem Sie auf die Verknüpften Diensteigenschaften Version 2.0 verweisen.
Zugehöriger Inhalt
Eine Liste der Datenspeicher, die als Quelles und Senken für die Kopieraktivität unterstützt werden, finden Sie in Unterstützte Datenspeicher.