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
Napiwek
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żywania działania kopiowania w potokach usługi Azure Data Factory i usługi Synapse Analytics do kopiowania danych z bazy danych PostgreSQL. Jest on oparty na artykule omówienie działania kopiowania, który przedstawia ogólne omówienie działania kopiowania.
Ważne
Łącznik PostgreSQL V1 jest na etapie usuwania. Zaleca się uaktualnienie łącznika PostgreSQL z wersji 1 do wersji 2.
Obsługiwane możliwości
Ten łącznik PostgreSQL jest obsługiwany w następujących funkcjach:
| Obsługiwane możliwości | środowisko IR |
|---|---|
| Kopiowanie (źródło/-) | (1) (2) |
| Działanie wyszukiwania | (1) (2) |
(1) Środowisko Azure Integration Runtime (2) Self-hosted Integration Runtime
Aby uzyskać listę magazynów danych obsługiwanych jako źródła/ujścia przez działanie kopiowania, zobacz tabelę Obsługiwane magazyny danych.
W szczególności ten łącznik PostgreSQL obsługuje program PostgreSQL w wersji 12 lub nowszej.
Wymagania wstępne
Jeśli magazyn danych znajduje się wewnątrz sieci lokalnej, wirtualnej sieci platformy Azure lub Amazon Virtual Private Cloud, musisz skonfigurować samodzielnie hostowane środowisko Integration Runtime, aby się z nim połączyć.
Jeśli magazyn danych jest zarządzaną usługą danych w chmurze, możesz użyć środowiska Azure Integration Runtime. Jeśli dostęp jest ograniczony do adresów IP zatwierdzonych w regułach zapory, możesz dodać adresy IP środowiska Azure Integration Runtime do listy dozwolonych.
Możesz również użyć zarządzanego środowiska uruchomieniowego integracji z wirtualną siecią w usłudze Azure Data Factory, aby uzyskać dostęp do sieci lokalnej bez instalowania i konfigurowania samodzielnie hostowanego środowiska uruchomieniowego integracji.
Aby uzyskać więcej informacji na temat mechanizmów zabezpieczeń sieci i opcji obsługiwanych przez usługę Data Factory, zobacz Strategie dostępu do danych.
Środowisko Integration Runtime udostępnia wbudowany sterownik PostgreSQL, począwszy od wersji 3.7, dlatego nie trzeba ręcznie instalować żadnego sterownika.
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 bazą danych PostgreSQL przy użyciu interfejsu użytkownika
Wykonaj poniższe kroki, aby utworzyć połączoną usługę z bazą danych 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 kliknij pozycję Nowy:
Wyszukaj Postgre i wybierz łącznik 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 PostgreSQL.
Właściwości połączonej usługi
Następujące właściwości są obsługiwane w przypadku połączonej usługi PostgreSQL:
| Własność | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type musi być ustawiona na: PostgreSqlV2 | Tak |
| serwer | Określa nazwę hosta — i opcjonalnie port — na którym działa program PostgreSQL. | Tak |
| port | Port TCP serwera PostgreSQL. | Nie. |
| baza danych | Baza danych PostgreSQL, z którą należy nawiązać połączenie. | Tak |
| 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. | 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: Przerwij próbę połączenia, jeśli serwer nie obsługuje SSL. - Verify-ca: Nie można nawiązać połączenia, jeśli serwer nie obsługuje protokołu SSL. Sprawdza również certyfikat serwera. - Weryfikacja pełna: Nie można nawiązać połączenia, 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. |
| typ uwierzytelniania | Typ uwierzytelniania na potrzeby nawiązywania połączenia z bazą danych. Obsługuje tylko warstwę Podstawowa. | Tak |
| connectVia | Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Dowiedz się więcej w sekcji Wymagania wstępne . 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. |
| certyfikat SSL | Lokalizacja certyfikatu klienta do wysłania na serwer. | Nie. |
| klucz SSL | Lokalizacja klucza dla certyfikatu klienta, który ma być wysłany do serwera. | Nie. |
| hasło SSL | Hasło klucza certyfikatu klienta. | 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. |
| parametry logowania | Po włączeniu wartości parametrów są rejestrowane po wykonaniu poleceń. | Nie. |
| strefa czasowa | Pobiera lub ustawia strefę czasową sesji. | Nie. |
| kodowanie | Pobiera lub ustawia kodowanie .NET, które będzie używane do kodowania/dekodowania danych ciągu PostgreSQL. | Nie. |
Uwaga
Aby mieć pełną weryfikację SSL za pośrednictwem połączenia ODBC w przypadku korzystania z własnego środowiska Integration Runtime, należy jawnie użyć połączenia typu ODBC zamiast łącznika PostgreSQL i ukończyć następującą konfigurację:
- Skonfiguruj DSN na dowolnych serwerach SHIR.
- Umieść odpowiedni certyfikat dla bazy danych PostgreSQL w folderze C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt na serwerach SHIR. W tym miejscu sterownik ODBC szuka > certyfikatu SSL, aby sprawdzić, kiedy nawiązuje połączenie z bazą danych.
- W połączeniu z fabryką danych użyj połączenia typu ODBC z parametrami połączenia wskazującymi nazwę DSN utworzoną na serwerach SHIR.
Przykład:
{
"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"
}
}
}
Przykład: przechowywanie hasła w usłudze 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"
}
}
}
Właściwości zestawu danych
Pełna lista sekcji i właściwości dostępnych do definiowania zestawów danych znajduje się w artykule dotyczącym zestawów danych. Ta sekcja zawiera listę właściwości obsługiwanych przez zestaw danych PostgreSQL.
Aby skopiować dane z bazy danych PostgreSQL, obsługiwane są następujące właściwości:
| Własność | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type zestawu danych musi być ustawiona na: PostgreSqlV2Table | Tak |
| schemat | Nazwa schematu. | Nie (jeśli w źródle aktywności określono "zapytanie") |
| tabela | Nazwa tabeli. | Nie (jeśli w źródle aktywności określono "zapytanie") |
Przykład
{
"name": "PostgreSQLDataset",
"properties":
{
"type": "PostgreSqlV2Table",
"linkedServiceName": {
"referenceName": "<PostgreSQL linked service name>",
"type": "LinkedServiceReference"
},
"annotations": [],
"schema": [],
"typeProperties": {
"schema": "<schema name>",
"table": "<table name>"
}
}
}
Jeśli używasz RelationalTable wpisanego zestawu danych, nadal jest on obsługiwany bez zmian, jednak zaleca się korzystanie z nowego zestawu danych w przyszłości.
Właściwości działania kopiowania
Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania działań, odnieś się do artykułu Pipelines. Ta sekcja zawiera listę właściwości obsługiwanych przez źródło postgreSQL.
PostgreSQL jako źródło
Aby skopiować dane z PostgreSQL, w sekcji źródła działania kopiowania obsługiwane są następujące właściwości:
| Własność | Opis | Wymagane |
|---|---|---|
| typ | Właściwość typu źródła aktywności kopiowania musi być ustawiona na: PostgreSqlV2Source | Tak |
| kwerenda | Użyj niestandardowego zapytania SQL, aby odczytać dane. Na przykład: "query": "SELECT * FROM \"MySchema\".\"MyTable\"". |
Nie (jeśli określono "tableName" w zestawie danych) |
| 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. Jeśli obie commandTimeout opcje i queryTimeout są skonfigurowane, queryTimeout pierwszeństwo ma. |
Nie. |
Uwaga
W nazwach schematów i tabel uwzględniana jest wielkość liter. Umieść je w „cudzysłowie” w zapytaniu.
Przykład:
"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\"",
"queryTimeout": "00:10:00"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Jeśli używasz RelationalSource wpisanego źródła, nadal jest obsługiwana w taki sposób, jak jest, podczas gdy sugerowane jest użycie nowego źródła w przyszłości.
Mapowanie typów danych dla bazy danych PostgreSQL
Podczas kopiowania danych z bazy danych PostgreSQL następujące mapowania są używane z typów danych PostgreSQL do tymczasowych typów danych używanych wewnętrznie przez usługę. Zobacz Mapowania schematu i typu danych, aby dowiedzieć się, jak działanie kopiowania mapuje schemat źródłowy i typ danych na ujście.
| Typ danych PostgreSQL | Typ danych usługi tymczasowej dla bazy danych PostgreSQL w wersji 2 | Typ danych usługi tymczasowej dla bazy danych PostgreSQL W wersji 1 |
|---|---|---|
SmallInt |
Int16 |
Int16 |
Integer |
Int32 |
Int32 |
BigInt |
Int64 |
Int64 |
Decimal (Precyzja <= 28) |
Decimal |
Decimal |
Decimal (Precyzja > 28) |
Nieobsługiwane | 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 |
NumericArray |
String |
String |
DateArray |
String |
String |
Range |
String |
String |
Bpchar |
String |
String |
Właściwości działania wyszukiwania
Aby dowiedzieć się szczegółów dotyczących właściwości, sprawdź aktywność Wyszukiwania.
Uaktualnianie łącznika PostgreSQL
Poniżej przedstawiono kroki ułatwiające uaktualnienie łącznika PostgreSQL:
Utwórz nową połączoną usługę PostgreSQL i skonfiguruj ją, odwołując się do właściwości połączonej usługi.
Mapowanie typu danych dla łącznika PostgreSQL V2 różni się od tego dla wersji 1. Aby poznać najnowsze mapowanie typów danych, zobacz Mapowanie typów danych dla bazy danych PostgreSQL.
Różnice między bazą danych PostgreSQL w wersji 2 i V1
W poniższej tabeli przedstawiono różnice mapowania typów danych między programem PostgreSQL V2 i V1.
| Typ danych PostgreSQL | Typ danych usługi tymczasowej dla bazy danych PostgreSQL w wersji 2 | Typ danych usługi tymczasowej dla bazy danych PostgreSQL W wersji 1 |
|---|---|---|
| Pieniądze | Dziesiętne | Sznurek |
| Sygnatura czasowa ze strefą czasową | Data i Czas | Sznurek |
| Czas ze strefą czasową | PrzesunięcieDatyICzasu | Sznurek |
| Interwał | przedział_czasu | Sznurek |
| BigDecimal | Nie jest obsługiwane. Alternatywnie możesz użyć funkcji to_char(), aby przekonwertować BigDecimal na ciąg. |
Sznurek |
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.