Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY:
Azure Data Factory
Azure Synapse Analytics
Wskazówka
Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !
W tym artykule opisano sposób użycia działania kopiowania w potokach usługi Azure Data Factory i usługi Synapse Analytics w celu kopiowania danych z i do usługi Azure Database for PostgreSQL. I jak używać przepływu danych do przekształcania danych w usłudze Azure Database for PostgreSQL. Aby dowiedzieć się więcej, przeczytaj artykuły wprowadzające dotyczące usług Azure Data Factory i Synapse Analytics.
Ważne
Usługa Azure Database for PostgreSQL w wersji 2.0 zapewnia ulepszoną natywną obsługę usługi Azure Database for PostgreSQL. Jeśli używasz usługi Azure Database for PostgreSQL w wersji 1.0 w swoim rozwiązaniu, zaleca się uaktualnienie łącznika usługi Azure Database for PostgreSQL jak najszybciej.
Ten łącznik jest przeznaczony dla usługi Azure Database for PostgreSQL. Aby skopiować dane z ogólnej bazy danych PostgreSQL znajdującej się lokalnie lub w chmurze, użyj łącznika PostgreSQL.
Obsługiwane możliwości
Ten łącznik usługi Azure Database for PostgreSQL jest obsługiwany dla następujących funkcji:
| Obsługiwane możliwości | środowisko IR | Zarządzany prywatny punkt końcowy | Obsługiwane wersje łącznika |
|---|---|---|---|
| Działanie kopiowania (źródło/ujście) | (1) (2) | ✓ | 1.0 i 2.0 |
| Mapowanie przepływu danych (źródło/ujście) | (1) | ✓ | 1.0 i 2.0 |
| Aktywność wyszukiwania | (1) (2) | ✓ | 1.0 i 2.0 |
| Działanie skryptu | (1) (2) | ✓ | 2.0 |
(1) Środowisko uruchomieniowe Azure (2) Lokalne środowisko uruchomieniowe
Trzy działania działają na pojedynczym serwerze usługi Azure Database for PostgreSQL, serwerze elastycznym i usłudze Azure Cosmos DB for PostgreSQL.
Ważne
Pojedynczy serwer usługi Azure Database for PostgreSQL zostanie wycofany 28 marca 2025 r. Przeprowadź migrację do elastycznego serwera przed tym terminem. Aby uzyskać wskazówki dotyczące migracji, zapoznaj się z tym artykułem i często zadawanymi pytaniami .
Wprowadzenie
Aby wykonać działanie kopiowania za pomocą pipeline'u, możesz użyć jednego z następujących narzędzi lub zestawów SDK:
- Narzędzie do kopiowania danych
- Portal Azure
- zestawu SDK platformy .NET
- Zestaw SDK dla języka Python
- Azure PowerShell
- API REST
- Szablon usługi Azure Resource Manager
Tworzenie połączonej usługi z usługą Azure Database for PostgreSQL przy użyciu interfejsu użytkownika
Wykonaj poniższe kroki, aby utworzyć połączoną usługę z usługą Azure Database for PostgreSQL w interfejsie użytkownika witryny Azure Portal.
Przejdź do karty Zarządzanie w obszarze roboczym usługi Azure Data Factory lub Synapse i wybierz pozycję Połączone usługi, a następnie wybierz pozycję Nowe:
Wyszukaj PostgreSQL i wybierz łącznik dla Azure Database for PostgreSQL.
Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.
Szczegóły konfiguracji łącznika
Poniższe sekcje zawierają szczegółowe informacje o właściwościach używanych do definiowania jednostek usługi Data Factory specyficznych dla łącznika usługi Azure Database for PostgreSQL.
Właściwości połączonej usługi
Łącznik usługi Azure Database for PostgreSQL w wersji 2.0 obsługuje tryby Transport Layer Security (TLS) 1.3 i wiele trybów protokołu SSL (Secured Socket Layer). Zapoznaj się z tą sekcją , aby uaktualnić wersję łącznika usługi Azure SQL Database z wersji 1.0. Aby uzyskać informacje szczegółowe dotyczące nieruchomości, zobacz odpowiednie sekcje.
Wersja 2.0
Następujące właściwości są obsługiwane w przypadku połączonej usługi Azure Database for PostgreSQL w przypadku zastosowania wersji 2.0:
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type musi być ustawiona na: AzurePostgreSql. | Tak |
| wersja | Wersja, którą określisz. Wartość to 2.0. |
Tak |
| Typ uwierzytelniania | Wybierz spośród podstawowego, głównego użytkownika usługi, tożsamości zarządzanej przypisanej przez system lub tożsamości zarządzanej przypisanej przez użytkownika typu uwierzytelniania. | Tak |
| serwer | Określa nazwę hosta i opcjonalnie port, na którym działa usługa Azure Database for PostgreSQL. | Tak |
| port | Port TCP serwera usługi Azure Database for PostgreSQL. Wartość domyślna to 5432. |
Nie. |
| baza danych | Nazwa bazy danych usługi Azure Database for PostgreSQL do nawiązania połączenia. | Tak |
| tryb SSL | Określa, czy protokół SSL jest używany, w zależności od obsługi serwera. - Wyłącz: protokół SSL jest wyłączony. Jeśli serwer wymaga protokołu SSL, połączenie zakończy się niepowodzeniem. - Zezwalaj: preferuj połączenia inne niż SSL, jeśli zezwala na nie serwer, ale zezwalaj na połączenia SSL. - Preferuj: Preferuj połączenia SSL, jeśli serwer zezwala na nie, ale zezwalaj na połączenia bez protokołu SSL. - Wymagaj: połączenie nie powiedzie się, jeśli serwer nie obsługuje protokołu SSL. - Verify-ca: Połączenie nie powiedzie się, jeśli serwer nie obsługuje protokołu SSL. Sprawdza również certyfikat serwera. - Weryfikacja pełna: połączenie nie powiedzie się, jeśli serwer nie obsługuje protokołu SSL. Sprawdza również certyfikat serwera z nazwą hosta. Opcje: Wyłącz (0) / Zezwalaj (1) / Preferuj (2) (ustawienie domyślne) / Wymagaj (3) / Verify-ca (4) / Verify-full (5) |
Nie. |
| connectVia | Ta właściwość reprezentuje środowisko Integration Runtime , które ma być używane do nawiązywania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime (jeśli magazyn danych znajduje się w sieci prywatnej). Jeśli nie zostanie określony, używa domyślnego środowiska Azure Integration Runtime. | Nie. |
| Dodatkowe właściwości połączenia: | ||
| schemat | Ustawia ścieżkę wyszukiwania schematu. | Nie. |
| Łączenie | Czy powinno się używać buforowania połączeń? | Nie. |
| czas oczekiwania na połączenie | Czas oczekiwania (w sekundach) podczas próby nawiązania połączenia przed zakończeniem próby i wygenerowaniem błędu. | Nie. |
| Limit czasu wykonywania polecenia | Czas oczekiwania (w sekundach) podczas próby wykonania polecenia przed zakończeniem próby i wygenerowaniem błędu. Ustaw wartość zero dla nieskończoności. | Nie. |
| zaufajCertyfikatowiSerwera | Czy ufać certyfikatowi serwera bez sprawdzania jego poprawności. | Nie. |
| readBufferSize (rozmiar bufora) | Określa rozmiar wewnętrznego buforu Npgsql używany podczas odczytywania. Zwiększenie może poprawić wydajność przy transferze dużych wartości z bazy danych. | Nie. |
| strefa czasowa | Pobiera lub ustawia strefę czasową sesji. | Nie. |
| kodowanie | Pobiera lub ustawia kodowanie .NET na potrzeby kodowania/dekodowania danych ciągu PostgreSQL. | Nie. |
uwierzytelnianie podstawowe
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| nazwa użytkownika | Nazwa użytkownika do nawiązania połączenia. Nie jest wymagane w przypadku używania funkcji IntegratedSecurity. | Tak |
| hasło | Hasło do nawiązania połączenia. Nie jest wymagane w przypadku używania funkcji IntegratedSecurity. Oznacz to pole jako SecureString , aby bezpiecznie je przechowywać. Możesz też odwołać się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. | Tak |
Przykład:
{
"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>"
}
}
}
}
Przykład:
Przechowywanie hasła w usłudze 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>"
}
}
}
}
Uwierzytelnianie tożsamości zarządzanej, nadanej przez system
Obszar roboczy fabryki danych lub usługi Synapse może być skojarzony z tożsamością zarządzaną przypisaną przez system , która reprezentuje usługę podczas uwierzytelniania w innych zasobach na platformie Azure. Tej tożsamości zarządzanej można użyć do uwierzytelniania usługi Azure Database for PostgreSQL. Wyznaczona fabryka lub obszar roboczy usługi Synapse mogą uzyskiwać dostęp do danych lub do bazy danych oraz kopiować je przy użyciu tej tożsamości.
Aby użyć tożsamości zarządzanej przypisanej przez system, wykonaj następujące kroki:
Fabrykę danych lub obszar roboczy usługi Synapse można skojarzyć z tożsamością zarządzaną przypisaną przez system. Dowiedz się więcej, Generowanie tożsamości zarządzanej przypisanej przez system
Dane Azure dla PostgreSQL z przypisaną przez system zarządzaną tożsamością Włączone.
W zasobie usługi Azure Database for PostgreSQL w obszarze Zabezpieczenia
Wybierz Uwierzytelnianie
Wybierz metodę uwierzytelniania: tylko uwierzytelnianie Entra firmy Microsoft lub uwierzytelnianie PostgreSQL i Microsoft Entra.
Wybierz + Dodaj administratorów Microsoft Entra
Dodaj tożsamość zarządzaną przypisaną przez system dla zasobu usługi Azure Data Factory jako jednego z administratorów Microsoft Entra
Skonfigurować połączoną usługę bazy danych Azure dla PostgreSQL.
Przykład:
{
"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"
}
}
}
Uwaga / Notatka
Ten typ uwierzytelniania nie jest obsługiwany w własnym środowisku Integration Runtime.
Uwierzytelnianie zarządzanej tożsamości przypisanej przez użytkownika
Obszar roboczy fabryki danych lub usługi Synapse może być skojarzony z tożsamością zarządzaną przypisaną przez użytkownika , która reprezentuje usługę podczas uwierzytelniania w innych zasobach na platformie Azure. Tej tożsamości zarządzanej można użyć do uwierzytelniania usługi Azure Database for PostgreSQL. Wyznaczona fabryka lub obszar roboczy usługi Synapse mogą uzyskiwać dostęp do danych lub do bazy danych oraz kopiować je przy użyciu tej tożsamości.
Aby użyć uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika, oprócz właściwości ogólnych opisanych w poprzedniej sekcji, określ następujące właściwości:
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| poświadczenie | Określ tożsamość zarządzaną przypisaną przez użytkownika jako obiekt poświadczeń. | Tak |
Należy również wykonać następujące czynności:
Pamiętaj, aby utworzyć zasób tożsamości zarządzanej przypisanej przez użytkownika w witrynie Azure Portal. Aby dowiedzieć się więcej, zobacz Zarządzanie tożsamościami zarządzanymi przypisanymi przez użytkownika
Przypisz tożsamość zarządzaną przypisaną przez użytkownika do zasobu Azure Database for PostgreSQL
W zasobie serwera usługi Azure Database for PostgreSQL w obszarze Zabezpieczenia
Wybierz Uwierzytelnianie
Sprawdź, czy metoda uwierzytelniania to tylko uwierzytelnianie Microsoft Entra czy uwierzytelnianie PostgreSQL i Microsoft Entra
Wybierz łącze + Dodaj administratorów Microsoft Entra i wybierz przypisaną przez użytkownika tożsamość zarządzaną.
Przypisywanie tożsamości zarządzanej przypisanej przez użytkownika do zasobu usługi Azure Data Factory
Skonfigurować połączoną usługę bazy danych Azure dla PostgreSQL.
Przykład:
{
"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"
}
}
}
}
Uwierzytelnianie głównego elementu usługi
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| nazwa użytkownika | Nazwa wyświetlana jednostki usługi | Tak |
| dzierżawa | Tenant, w którym znajduje się serwer Azure Database for PostgreSQL | Tak |
| IdentyfikatorGłównegoSerwisu | Identyfikator aplikacji jednostki usługi | Tak |
| typUwierzytelnieniaPodmiotuUsługi | Wybierz, czy certyfikat jednostki usługi lub klucz jednostki usługi jest żądaną metodą uwierzytelniania - ServicePrincipalCert: ustaw wartość na certyfikat jednostki usługi dla certyfikatu jednostki usługi. - ServicePrincipalKey: Ustaw klucz jednostki usługi dla uwierzytelniania za pomocą klucza jednostki usługi. |
Tak |
| klucz Głównego Usługodawcy | Wartość tajemnicy klienta. Używany podczas wybierania klucza jednostki usługi | Tak |
| azureCloudType (typ chmury Azure) | Wybierz typ chmury platformy Azure serwera usługi Azure Database for PostgreSQL | Tak |
| certyfikat osadzony głównego serwisu | Plik certyfikatu jednostki usługi | Tak |
| servicePrincipalEmbeddedCertPassword | W razie potrzeby hasło certyfikatu głównego użytkownika usługi | Nie. |
Przykład:
Klucz Service Principal
{
"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>"
}
}
}
Przykład:
Certyfikat podmiotu usługi
{
"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>"
}
}
}
Uwaga / Notatka
Uwierzytelnianie identyfikatora Entra firmy Microsoft przy użyciu jednostki usługi i tożsamości zarządzanej przypisanej przez użytkownika jest obsługiwane w środowisku Integration Runtime własnym w wersji 5.50 lub nowszej.
Wersja 1.0
Podczas stosowania wersji 1.0 obsługiwane są następujące właściwości połączonej usługi Azure Database for PostgreSQL:
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type musi być ustawiona na: AzurePostgreSql. | Tak |
| wersja | Wersja, którą określisz. Wartość to 1.0. |
Tak |
| Parametry połączenia | Parametry połączenia serwera Npgsql służące do nawiązywania połączenia z usługą Azure Database for PostgreSQL. Możesz również umieścić hasło w usłudze Azure Key Vault i wydobyć password konfigurację z ciągu połączenia. Aby uzyskać więcej informacji, zobacz poniższe przykłady i przechowuj poświadczenia w usłudze Azure Key Vault. |
Tak |
| connectVia | Ta właściwość reprezentuje środowisko Integration Runtime , które ma być używane do nawiązywania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime (jeśli magazyn danych znajduje się w sieci prywatnej). Jeśli nie zostanie określony, używa domyślnego środowiska Azure Integration Runtime. | Nie. |
Typowy parametry połączenia to host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>. Poniżej przedstawiono więcej właściwości, które można ustawić dla danego przypadku:
| Nieruchomość | Opis | Opcje | Wymagane |
|---|---|---|---|
| EncryptionMethod (EM) | Metoda używana przez sterownik do szyfrowania danych wysyłanych między sterownikiem a serwerem bazy danych. Na przykład EncryptionMethod=<0/1/6>; |
0 (bez szyfrowania) (ustawienie domyślne) / 1 (SSL) / 6 (RequestSSL) | Nie. |
| ValidateServerCertificate (VSC) | Określa, czy sterownik weryfikuje certyfikat wysyłany przez serwer bazy danych po włączeniu szyfrowania SSL (Metoda szyfrowania=1). Na przykład ValidateServerCertificate=<0/1>; |
0 (wyłączone) (ustawienie domyślne) / 1 (włączone) | Nie. |
Przykład:
{
"name": "AzurePostgreSqlLinkedService",
"properties": {
"type": "AzurePostgreSql",
"version": "1.0",
"typeProperties": {
"connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>"
}
}
}
Przykład:
Przechowywanie hasła w usłudze 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>"
}
}
}
}
Właściwości zestawu danych
Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania zestawów danych, zobacz Zestawy danych. Ta sekcja zawiera listę właściwości obsługiwanych przez usługę Azure Database for PostgreSQL w zestawach danych.
Aby skopiować dane z usługi Azure Database for PostgreSQL, ustaw właściwość type zestawu danych na AzurePostgreSqlTable. Obsługiwane są następujące właściwości:
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type zbioru danych musi być ustawiona na AzurePostgreSqlTable. | Tak |
| schemat | Nazwa schematu. | Nie (jeśli w źródle aktywności określono "zapytanie") |
| tabela | Nazwa tabeli/widoku. | Nie (jeśli w źródle aktywności określono "zapytanie") |
| nazwaTabeli | Nazwa tabeli. Ta właściwość jest obsługiwana w celu zapewnienia zgodności z poprzednimi wersjami. W przypadku nowego obciążenia użyj schema i table. |
Nie (jeśli w źródle aktywności określono "zapytanie") |
Przykład:
{
"name": "AzurePostgreSqlDataset",
"properties": {
"type": "AzurePostgreSqlTable",
"linkedServiceName": {
"referenceName": "<AzurePostgreSql linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
}
}
}
Właściwości działania kopiowania
Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania działań, zobacz Potoki i działania. Ta sekcja zawiera listę właściwości obsługiwanych przez źródło usługi Azure Database for PostgreSQL.
Usługa Azure Database for PostgreSql jako źródło
Aby skopiować dane z usługi Azure Database for PostgreSQL, ustaw typ źródła w działaniu kopiowania na AzurePostgreSqlSource. Następujące właściwości są obsługiwane w sekcji źródło działania kopiowania:
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type źródła działania kopiowania musi być ustawiona na Wartość AzurePostgreSqlSource | Tak |
| kwerenda | Użyj niestandardowego zapytania SQL, aby odczytać dane. Na przykład: SELECT * FROM mytable lub SELECT * FROM "MyTable". W PostgreSQL, należy zauważyć, że nazwa obiektu jest traktowana jako nie uwzględniająca wielkości liter, jeśli nie jest ujęta w cudzysłów. |
Nie (jeśli właściwość tableName w zestawie danych jest określona) |
| limit czasu zapytania | Czas oczekiwania przed zakończeniem próby wykonania polecenia i wygenerowaniem błędu wartość domyślna to 120 minut. Jeśli parametr jest ustawiony dla tej właściwości, dozwolone wartości są przedziałem czasu, takim jak "02:00:00" (120 minut). Aby uzyskać więcej informacji, zobacz CommandTimeout. | Nie. |
| opcje podziału | Określa opcje partycjonowania danych używane do ładowania danych z usługi Azure SQL Database. Dozwolone wartości to: Brak (wartość domyślna), PhysicalPartitionsOfTable i DynamicRange. Jeśli opcja partycji jest włączona (czyli nie None), stopień równoległości podczas równoczesnego ładowania danych z usługi Azure SQL Database jest kontrolowany przez ustawienie parallelCopies w działaniu kopiowania. |
Nie. |
| ustawienia partycji | Określ grupę ustawień partycjonowania danych. Zastosuj, gdy opcja partycji nie jest None. |
Nie. |
W obszarze partitionSettings: |
||
| nazwy partycji | Lista partycji fizycznych, które należy skopiować. Zastosuj, gdy opcja partycji to PhysicalPartitionsOfTable. Jeśli używasz zapytania do pobierania danych źródłowych, wstaw ?AdfTabularPartitionName w klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopia równoległa z usługi Azure Database for PostgreSQL . |
Nie. |
| nazwa kolumny partycji | Określ nazwę kolumny źródłowej o typie liczbowym lub daty/czasu (int, smallint, bigint, date, timestamp without time zone, timestamp with time zone lub time without time zone), które będą używane przez partycjonowanie zakresu na potrzeby kopiowania równoległego. Jeśli klucz podstawowy tabeli nie zostanie określony, zostanie on automatycznie wykryty i użyty jako kolumna partycji.Zastosuj, gdy opcja partycji to DynamicRange. Jeśli używasz zapytania do pobierania danych źródłowych, wstaw ?AdfRangePartitionColumnName w klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopia równoległa z usługi Azure Database for PostgreSQL . |
Nie. |
| górna granica partycji | Maksymalna wartość kolumny partycji do skopiowania danych. Zastosuj, gdy opcja partycji to DynamicRange. Jeśli używasz zapytania do pobierania danych źródłowych, wstaw ?AdfRangePartitionUpbound w klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopia równoległa z usługi Azure Database for PostgreSQL . |
Nie. |
| dolna granica partycji | Minimalna wartość kolumny partycji do skopiowania danych. Zastosuj, gdy opcja partycji to DynamicRange. Jeśli używasz zapytania do pobierania danych źródłowych, wstaw ?AdfRangePartitionLowbound w klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopia równoległa z usługi Azure Database for PostgreSQL . |
Nie. |
Przykład:
"activities":[
{
"name": "CopyFromAzurePostgreSql",
"type": "Copy",
"inputs": [
{
"referenceName": "<AzurePostgreSql input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzurePostgreSqlSource",
"query": "<custom query e.g. SELECT * FROM mytable>",
"queryTimeout": "00:10:00"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Azure Database for PostgreSQL jako ujście
Aby skopiować dane do usługi Azure Database for PostgreSQL, ustaw typ ujścia w działaniu kopiowania na sqlSink. Następujące właściwości są obsługiwane w sekcji ujścia działania kopiowania:
| Nieruchomość | Opis | Wymagane | Wersja obsługi łącznika |
|---|---|---|---|
| typ | Właściwość typ końca działania kopiowania musi być ustawiona na AzurePostgreSQLSink. | Tak | Wersja 1.0 i wersja 2.0 |
| preCopyScript | Określ zapytanie SQL dla działania kopiowania do wykonania przed zapisaniem danych w usłudze Azure Database for PostgreSQL w każdym uruchomieniu. Za pomocą tej właściwości można wyczyścić wstępnie załadowane dane. | Nie. | Wersja 1.0 i wersja 2.0 |
| writeMethod | Metoda używana do zapisywania danych w usłudze Azure Database for PostgreSQL. Dozwolone wartości to: CopyCommand (wartość domyślna, która jest bardziej wydajna), BulkInsert i Upsert (tylko wersja 2.0). |
Nie. | Wersja 1.0 i wersja 2.0 |
| upsertSettings | Określ grupę ustawień zachowania zapisu. Zastosuj, gdy opcja WriteBehavior ma wartość Upsert. |
Nie. | Wersja 2.0 |
W obszarze upsertSettings: |
|||
| klucze | Określ nazwy kolumn dla unikatowej identyfikacji wierszy. Można użyć pojedynczego klucza lub serii kluczy. Klucze muszą być kluczem podstawowym lub unikalną kolumną. Jeśli nie zostanie określony, używany jest klucz podstawowy. | Nie. | Wersja 2.0 |
| writeBatchSize | Liczba wierszy załadowanych do usługi Azure Database for PostgreSQL na partię. Dozwolona wartość to liczba całkowita reprezentująca liczbę wierszy. |
Nie (wartość domyślna to 1000 000) | Wersja 1.0 i wersja 2.0 |
| writeBatchTimeout | Czas oczekiwania na zakończenie operacji wsadowego wstawiania przed przekroczeniem limitu czasu. Dozwolone wartości to ciągi znaków określające przedziały czasu. Przykładem jest 00:30:00 (30 minut). |
Nie (wartość domyślna to 00:30:00) | Wersja 1.0 i wersja 2.0 |
Przykład 1. Polecenie kopiowania
"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
}
}
}
]
Przykład 2: Aktualizacja lub wstawianie danych
"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>"
]
},
}
}
}
]
Aktualizuj lub dodaj dane
Działanie kopiowania obsługuje operacje upsert w sposób natywny. Aby wykonać operację upsert, użytkownik powinien podać kolumny kluczy, które są kluczami podstawowymi lub unikatowymi. Jeśli użytkownik nie udostępnia kolumn kluczy, zostaną użyte kolumny klucza podstawowego w tabeli ujścia. Działanie kopiowania spowoduje zaktualizowanie kolumn innych niż klucz w tabeli ujścia, w której wartości kolumny klucza są zgodne z wartościami w tabeli źródłowej; w przeciwnym razie wstawi nowe dane.
Kopiowanie równoległe z usługi Azure Database for PostgreSQL
Łącznik usługi Azure Database for PostgreSQL w działaniu kopiowania zapewnia wbudowane partycjonowanie danych w celu równoległego kopiowania danych. Opcje partycjonowania danych można znaleźć na karcie Źródło działania kopiowania.
Po włączeniu kopii partycjonowanej działanie kopiowania uruchamia zapytania równoległe względem źródła usługi Azure Database for PostgreSQL w celu załadowania danych według partycji. Stopień równoległości jest kontrolowany przez ustawienie parallelCopies na działaniu kopiowania. Jeśli na przykład ustawisz parallelCopies na cztery, usługa równocześnie generuje i uruchamia cztery zapytania w oparciu o określoną opcję partycji i ustawienia, a każde zapytanie pobiera część danych z bazy danych Azure dla PostgreSQL.
Zaleca się włączenie kopiowania równoległego przy użyciu partycjonowania danych, szczególnie w przypadku ładowania dużej ilości danych z usługi Azure Database for PostgreSQL. Poniżej przedstawiono sugerowane konfiguracje dla różnych scenariuszy. Podczas kopiowania danych do magazynu danych opartego na plikach zaleca się zapisanie w folderze jako wielu plików (tylko określenie nazwy folderu), w którym przypadku wydajność jest lepsza niż zapisywanie w jednym pliku.
| Scenariusz | Sugerowane ustawienia |
|---|---|
| Pełne ładowanie dużej tabeli z fizycznymi partycjami. |
Opcja partycjonowania: fizyczne partycje tabeli. Podczas wykonywania usługa automatycznie wykrywa partycje fizyczne i kopiuje dane według partycji. |
| Pełne ładowanie z dużej tabeli, bez partycji fizycznych, ale z kolumną całkowitą na potrzeby partycjonowania danych. |
Opcje partycji: partycja zakresu dynamicznego. Kolumna partycji: określ kolumnę używaną do partycjonowania danych. Jeśli nic nie zostanie określone, zostanie użyta kolumna klucza podstawowego. |
| Dużą ilość danych ładuj przy użyciu zapytania niestandardowego z wykorzystaniem partycji fizycznych. |
Opcja partycjonowania: fizyczne partycje tabeli. Zapytanie: SELECT * FROM ?AdfTabularPartitionName WHERE <your_additional_where_clause>.Nazwa partycji: określ co najmniej jedną nazwę partycji do skopiowania danych. Jeśli parametr nie zostanie określony, usługa automatycznie wykryje partycje fizyczne dla tabeli określonej w zestawie danych PostgreSQL. Podczas wykonywania usługa zastępuje ?AdfTabularPartitionName rzeczywistą nazwą partycji i wysyła do usługi Azure Database for PostgreSQL. |
| Załaduj dużą ilość danych przy użyciu zapytania niestandardowego, bez partycji fizycznych, natomiast z kolumną całkowitą na potrzeby partycjonowania danych. |
Opcje partycji: partycja zakresu dynamicznego. Zapytanie: SELECT * FROM ?AdfTabularPartitionName WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.Kolumna partycji: określ kolumnę używaną do partycjonowania danych. Możesz dokonać partycji kolumny według typu danych: całkowitego, daty lub daty/czasu. Górna granica partycji i dolna granica partycji: określ, czy chcesz filtrować względem kolumny partycji, aby pobrać dane tylko między dolnym i górnym zakresem. Podczas wykonywania usługa zastępuje ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbound i ?AdfRangePartitionLowbound rzeczywistymi nazwami kolumn i zakresami wartości dla każdej partycji i wysyła do Azure Database for PostgreSQL. Jeśli na przykład kolumnę partycji "ID" ustawiono z dolną granicą jako 1 i górną granicą jako 80, przy ustawieniu liczby kopii równoległych na 4, usługa pobiera dane w czterech partycjach. Ich identyfikatory to odpowiednio [1, 20], [21, 40], [41, 60] i [61, 80]. |
Najlepsze rozwiązania dotyczące ładowania danych z opcją partycji:
- Wybierz charakterystyczną kolumnę jako kolumnę partycji (np. klucz podstawowy lub unikatowy klucz), aby uniknąć niesymetryczności danych.
- Jeśli tabela ma wbudowaną partycję, użyj opcji partycji "Partycje fizyczne tabeli", aby uzyskać lepszą wydajność.
- Jeśli używasz środowiska Azure Integration Runtime do kopiowania danych, możesz ustawić większe wartości "Jednostki integracji danych (DIU)" (>4), aby korzystać z większych zasobów obliczeniowych. Sprawdź odpowiednie dla danego przypadku scenariusze.
- Stopień równoległości kopiowania steruje numerami partycji, a ustawienie tej liczby zbyt dużej czasami wpływa negatywnie na wydajność. Zaleca się ustawienie tej liczby jako (DIU lub liczba samodzielnie hostowanych węzłów IR) * (2 do 4).
Przykład: pełne załadowanie z dużej tabeli z fizycznymi partycjami
"source": {
"type": "AzurePostgreSqlSource",
"partitionOption": "PhysicalPartitionsOfTable"
}
Przykład: zapytanie z dynamicznym zakresem partycji
"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>"
}
}
Mapowanie właściwości przepływu danych
Podczas przekształcania danych w przepływie mapowania danych można odczytywać i zapisywać w tabelach z usługi Azure Database for PostgreSQL. Aby uzyskać więcej informacji, zobacz transformację źródła i transformację ujścia w przepływach danych mapowania. Możesz użyć zestawu danych usługi Azure Database for PostgreSQL lub wbudowanego zestawu danych jako typu źródła i ujścia.
Uwaga / Notatka
Obecnie w przypadku wersji 1 i 2 łącznika usługi Azure Database for PostgreSQL w przepływach danych mapowania obsługiwane jest tylko uwierzytelnianie podstawowe.
Przekształcanie źródła
Poniższa tabela zawiera listę właściwości obsługiwanych przez źródło usługi Azure Database for PostgreSQL. Te właściwości można edytować na karcie Opcje źródła.
| Nazwa/nazwisko | Opis | Wymagane | Dozwolone wartości | Właściwość skryptu przepływu danych |
|---|---|---|---|---|
| Tabela | Jeśli wybierzesz Tabelę jako dane wejściowe, przepływ danych pobierze wszystkie dane z tabeli określonej w zestawie danych. | Nie. | - |
(tylko w przypadku wbudowanego zestawu danych) nazwaTabeli |
| Zapytanie | Jeśli wybierzesz pozycję Zapytanie jako dane wejściowe, określ zapytanie SQL, aby pobrać dane ze źródła, które zastępuje dowolną tabelę, którą określisz w zestawie danych. Korzystanie z zapytań to doskonały sposób na zmniejszenie liczby wierszy na potrzeby testowania lub wyszukiwania. Klauzula Order By nie jest obsługiwana, ale można ustawić pełną instrukcję SELECT FROM. Można również użyć funkcji tabeli zdefiniowanych przez użytkownika. select * from udfGetData() jest funkcją zdefiniowaną przez użytkownika (UDF) w SQL, która zwraca tabelę do użycia w przepływie danych. Przykład zapytania: select * from mytable where customerId > 1000 and customerId < 2000 lub select * from "MyTable". W PostgreSQL, należy zauważyć, że nazwa obiektu jest traktowana jako nie uwzględniająca wielkości liter, jeśli nie jest ujęta w cudzysłów. |
Nie. | Sznurek | kwerenda |
| Nazwa schematu | Jeśli wybierzesz procedurę składowaną jako dane wejściowe, określ nazwę schematu procedury składowanej lub wybierz pozycję Odśwież, aby poprosić usługę o odnalezienie nazw schematów. | Nie. | Sznurek | nazwa schematu |
| Procedura składowana | Jeśli wybierzesz procedurę składowaną jako dane wejściowe, określ nazwę procedury składowanej do odczytu danych z tabeli źródłowej lub wybierz pozycję Odśwież, aby poprosić usługę o odnalezienie nazw procedur. | Tak (jeśli wybierzesz procedurę składowaną jako dane wejściowe) | Sznurek | nazwaProcedury |
| Parametry procedury | Jeśli wybierzesz procedurę składowaną jako dane wejściowe, określ parametry wejściowe procedury składowanej w kolejności ustawionej w procedurze lub wybierz pozycję Importuj, aby zaimportować wszystkie parametry procedury przy użyciu formularza @paraName. |
Nie. | Tablica | Wejścia |
| Rozmiar partii | Określ rozmiar partii, aby podzielić duże dane na partie. | Nie. | Liczba całkowita | batchSize (rozmiar wsadu) |
| Poziom izolacji | Wybierz jeden z następujących poziomów izolacji: - Odczyt zatwierdzony - Odczyt niezatwierdzony (ustawienie domyślne) - Powtarzalny odczyt -Serializowalny - Brak (ignoruj poziom izolacji) |
Nie. | ODCZYT_ZOBOWIĄZANY READ_UNCOMMITTED (odczyt niezadeklarowany) POWTARZALNY ODCZYT SERIALIZOWALNY ŻADEN |
poziom izolacji |
Przykład skryptu źródłowego usługi Azure Database for PostgreSQL
Jeśli używasz usługi Azure Database for PostgreSQL jako typu źródła, skojarzony skrypt przepływu danych to:
source(allowSchemaDrift: true,
validateSchema: false,
isolationLevel: 'READ_UNCOMMITTED',
query: 'select * from mytable',
format: 'query') ~> AzurePostgreSQLSource
Przekształcenie zlewu
W poniższej tabeli wymieniono właściwości obsługiwane przez odbiornik bazy danych Azure Database for PostgreSQL. Te właściwości można edytować na karcie Opcje przetwarzania.
| Nazwa/nazwisko | Opis | Wymagane | Dozwolone wartości | Właściwość skryptu przepływu danych |
|---|---|---|---|---|
| Metoda aktualizacji | Określ, jakie operacje są dozwolone w miejscu docelowym bazy danych. Ustawieniem domyślnym jest zezwalanie tylko na wstawianie. Aby zaktualizować, dodać lub usunąć wiersze, wymagane jest przekształcenie Alter row do oznaczania wierszy dla tych akcji. |
Tak |
true lub false |
możliwe do usunięcia wstawialny możliwe do aktualizacji możliwość aktualizacji lub dodawania |
| Kolumny kluczy | W przypadku aktualizacji, operacji upsert i usuwania należy ustawić kolumny kluczy, aby określić, który wiersz ma zostać zmieniony. Nazwa kolumny wybrana jako klucz jest używana w ramach kolejnej aktualizacji, czyszczenia danych (upsert), usuwania. W związku z tym należy wybrać kolumnę, która istnieje w mapowaniu ujścia. |
Nie. | Tablica | klucze |
| Pomijaj zapisywanie kolumn kluczy | Jeśli nie chcesz zapisywać wartości w kolumnie klucza, wybierz pozycję "Pomiń pisanie kolumn kluczy". | Nie. |
true lub false |
PomijajZapisyKluczy |
| Działanie tabeli | Określa, czy należy ponownie utworzyć lub usunąć wszystkie wiersze z tabeli docelowej przed zapisem. - Brak: nie przeprowadzono żadnych działań na tabeli. - Odtwórz: tabela zostaje usunięta i odtworzona. Wymagane w przypadku dynamicznego tworzenia nowej tabeli. - Usuwanie danych: Wszystkie wiersze z tabeli docelowej zostaną usunięte. |
Nie. |
true lub false |
odtworzyć obcinać |
| Rozmiar partii | Określ liczbę wierszy zapisywanych w każdej partii. Większe rozmiary partii poprawiają kompresję i optymalizację pamięci, ale niosą ryzyko wystąpienia wyjątków związanych z brakiem pamięci podczas buforowania danych. | Nie. | Liczba całkowita | batchSize (rozmiar wsadu) |
| Wybieranie schematu bazy danych użytkownika | Domyślnie tabela tymczasowa jest tworzona w schemacie docelowym jako tabela przejściowa. Alternatywnie można usunąć zaznaczenie opcji Użyj schematu ujścia , a zamiast tego określić nazwę schematu, w ramach którego usługa Data Factory tworzy tabelę przejściową w celu załadowania danych nadrzędnych i automatycznego czyszczenia ich po zakończeniu. Upewnij się, że masz uprawnienie do tworzenia tabeli w bazie danych i zmień uprawnienia w schemacie. | Nie. | Sznurek | nazwaSchematutestowego |
| Skrypty SQL przed i po | Określ wielowierszowe skrypty SQL, które będą wykonywane przed (wstępne przetwarzanie) i po (przetwarzanie końcowe) zapisaniem danych w bazie danych docelowej. | Nie. | Sznurek | przygotowane zapytania SQL postSQLs |
Wskazówka
- Podziel skrypty jednosadowe z wieloma poleceniami na wiele partii.
- W ramach partii można uruchamiać tylko instrukcje języka DDL (Data Definition Language) i Języka manipulowania danymi (DML), które zwracają prostą liczbę aktualizacji. Dowiedz się więcej na temat wykonywania operacji wsadowych
Włącz wyodrębnianie przyrostowe: Wybierz tę opcję, aby poinformować usługę ADF, że ma przetwarzać tylko wiersze, które uległy zmianie od momentu ostatniego uruchomienia potoku.
Kolumna inkrementalna: podczas korzystania z funkcji ekstrakcji inkrementalnej należy wybrać kolumnę daty/czasu lub kolumnę liczbową, której chcesz używać jako znacznika w tabeli źródłowej.
Rozpocznij odczytywanie od początku: Ustawienie tej opcji w przypadku wyodrębniania przyrostowego powoduje, że podczas pierwszego uruchomienia potoku z włączonym wyodrębnieniem przyrostowym usługa ADF odczytuje wszystkie wiersze.
Przykładowy skrypt ujścia usługi Azure Database for PostgreSQL
Jeśli używasz usługi Azure Database for PostgreSQL jako typu ujścia, skojarzony skrypt przepływu danych to:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
deletable:false,
insertable:true,
updateable:true,
upsertable:true,
keys:['keyColumn'],
format: 'table',
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> AzurePostgreSqlSink
Działanie skryptu
Ważne
Działanie skryptu jest obsługiwane tylko w łączniku w wersji 2.0.
Ważne
Instrukcje z wieloma zapytaniami przy użyciu parametrów wyjściowych nie są obsługiwane. Zaleca się podzielenie zapytań wyjściowych na oddzielne bloki skryptów w ramach tego samego lub innego działania skryptu.
Instrukcje z wieloma zapytaniami przy użyciu parametrów pozycyjnych nie są obsługiwane. Zaleca się podzielenie zapytań pozycyjnych na oddzielne bloki skryptów w ramach tego samego lub innego działania skryptu.
Aby uzyskać więcej informacji na temat działania skryptu, zobacz Działanie skryptu.
Właściwości czynności wyszukiwania
Aby uzyskać więcej informacji na temat właściwości, zobacz Aktywność wyszukiwania.
Uaktualnianie łącznika usługi Azure Database for PostgreSQL
Na stronie Edytowanie połączonej usługi wybierz pozycję 2.0 w obszarze Wersja i skonfiguruj połączoną usługę, odwołując się do właściwości połączonej usługi w wersji 2.0.
Powiązana zawartość
Aby uzyskać listę magazynów danych obsługiwanych jako źródła i ujścia działania kopiowania, zobacz Obsługiwane magazyny danych.