Kopiowanie danych z bazy danych MySQL przy użyciu usługi Azure Data Factory lub Synapse Analytics
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 MySQL. Jest on oparty na artykule omówienie działania kopiowania, który przedstawia ogólne omówienie działania kopiowania.
Uwaga
Aby skopiować dane z usługi Azure Database for MySQL lub do usługi, użyj wyspecjalizowanego łącznika usługi Azure Database for MySQL.
Ważne
Łącznik MySQL korzystający z zalecanej wersji sterownika zapewnia ulepszoną natywną obsługę bazy danych MySQL. Jeśli używasz łącznika ze starszą wersją sterownika, uaktualnij go przed 31 października 2024 r. Zapoznaj się z tą sekcją , aby uzyskać szczegółowe informacje na temat różnicy między starszą i zalecaną wersją.
Obsługiwane możliwości
Ten łącznik MySQL jest obsługiwany w następujących funkcjach:
Obsługiwane możliwości | IR |
---|---|
działanie Kopiuj (źródło/-) | (1) (2) |
Działanie Lookup | (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.
Ten łącznik obsługuje program MySQL w wersji 5.5, 5.6, 5.7, 8.0, 8.1 i 8.2 w ramach zalecanej nowej wersji sterownika w wersji 2 i 5.6, 5.7 i 8.0 dla starszej wersji sterownika.
Wymagania wstępne
Jeśli magazyn danych znajduje się wewnątrz sieci lokalnej, sieci wirtualnej platformy Azure lub chmury prywatnej Amazon Virtual, musisz skonfigurować własne ś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ć funkcji środowiska Integration Runtime zarządzanej sieci wirtualnej w usłudze Azure Data Factory, aby uzyskać dostęp do sieci lokalnej bez instalowania i konfigurowania własnego środowiska Integration Runtime.
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 MySQL począwszy od wersji 3.7, dlatego nie trzeba ręcznie instalować żadnego sterownika.
Wprowadzenie
Aby wykonać działanie Kopiuj za pomocą potoku, możesz użyć jednego z następujących narzędzi lub zestawów SDK:
- Narzędzie do kopiowania danych
- Witryna Azure Portal
- Zestaw SDK platformy .NET
- Zestaw SDK języka Python
- Azure PowerShell
- Interfejs API REST
- Szablon usługi Azure Resource Manager
Tworzenie połączonej usługi z bazą danych MySQL przy użyciu interfejsu użytkownika
Wykonaj poniższe kroki, aby utworzyć połączoną usługę z bazą danych MySQL 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 pozycję MySQL i wybierz łącznik MySQL.
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 MySQL.
Właściwości połączonej usługi
Jeśli używasz zalecanej wersji sterownika, następujące właściwości są obsługiwane w przypadku połączonej usługi MySQL:
Właściwości | Opis | Wymagania |
---|---|---|
type | Właściwość type musi być ustawiona na: MySql | Tak |
driverVersion | Wersja sterownika po wybraniu zalecanej wersji sterownika. Wartość to v2. | Tak |
serwer | Nazwa serwera MySQL. | Tak |
port | Numer portu do nawiązania połączenia z serwerem MySQL. | Nie. |
database | Nazwa bazy danych MySQL. | Tak |
nazwa użytkownika | Nazwa użytkownika. | Tak |
hasło | Hasło dla nazwy użytkownika. 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 |
sslMode | Ta opcja określa, czy sterownik używa szyfrowania TLS i weryfikacji podczas nawiązywania połączenia z bazą danych MySQL. Np. SSLMode=<0/1/2/3/4> .Opcje: WYŁĄCZONE (0) / PREFEROWANE (1) (ustawienie domyślne) / WYMAGANE (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
Tak |
useSystemTrustStore | Ta opcja określa, czy używać certyfikatu urzędu certyfikacji z magazynu zaufania systemu, czy z określonego pliku PEM. Np. UseSystemTrustStore=<0/1> ;Opcje: Włączone (1) / Wyłączone (0) (ustawienie domyślne) |
Nie. |
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. |
Przykład:
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"server": "<server>",
"port": 3306,
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"sslmode": <sslmode>,
"usesystemtruststore": <UseSystemTrustStore>,
"driverVersion": "v2"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Przykład: przechowywanie hasła w usłudze Azure Key Vault
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"server": "<server>",
"port": 3306,
"database": "<database>",
"username": "<username>",
"sslmode": <sslmode>,
"usesystemtruststore": <UseSystemTrustStore>,
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
},
"driverVersion": "v2"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Jeśli używasz starszej wersji sterownika, obsługiwane są następujące właściwości:
Właściwości | Opis | Wymagania |
---|---|---|
type | Właściwość type musi być ustawiona na: MySql | Tak |
Parametry połączenia | Określ informacje potrzebne do nawiązania połączenia z wystąpieniem usługi Azure Database for MySQL. Możesz również umieścić hasło w usłudze Azure Key Vault i ściągnąć konfigurację password z parametry połączenia. Zapoznaj się z poniższymi przykładami i artykułem Store credentials in Azure Key Vault (Przechowywanie poświadczeń w usłudze Azure Key Vault ), aby uzyskać więcej szczegółów. |
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. |
Typowy parametry połączenia to Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>
. Więcej właściwości, które można ustawić w danym przypadku:
Właściwości | Opis | Wymagania |
---|---|---|
sslMode | Ta opcja określa, czy sterownik używa szyfrowania TLS i weryfikacji podczas nawiązywania połączenia z bazą danych MySQL. Np. SSLMode=<0/1/2/3/4> .Opcje: WYŁĄCZONE (0) / PREFEROWANE (1) (ustawienie domyślne) / WYMAGANE (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
Tak |
SslCert | Pełna ścieżka i nazwa pliku pem zawierającego certyfikat SSL używany do udowodnienia tożsamości klienta. Aby określić klucz prywatny do szyfrowania tego certyfikatu przed wysłaniem go do serwera, użyj SSLKey właściwości . |
Tak, jeśli używasz dwukierunkowej weryfikacji SSL. |
Klucz SSLKey | Pełna ścieżka i nazwa pliku zawierającego klucz prywatny używany do szyfrowania certyfikatu po stronie klienta podczas dwukierunkowej weryfikacji SSL. | Tak, jeśli używasz dwukierunkowej weryfikacji SSL. |
useSystemTrustStore | Ta opcja określa, czy używać certyfikatu urzędu certyfikacji z magazynu zaufania systemu, czy z określonego pliku PEM. Np. UseSystemTrustStore=<0/1> ;Opcje: Włączone (1) / Wyłączone (0) (ustawienie domyślne) |
Nie. |
Przykład:
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"connectionString": "Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>"
},
"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 MySQL.
Aby skopiować dane z programu MySQL, obsługiwane są następujące właściwości:
Właściwości | Opis | Wymagania |
---|---|---|
type | Właściwość type zestawu danych musi być ustawiona na: MySqlTable | Tak |
tableName | Nazwa tabeli w bazie danych MySQL. | Nie (jeśli określono "zapytanie" w źródle działania) |
Przykład
{
"name": "MySQLDataset",
"properties":
{
"type": "MySqlTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<MySQL linked service name>",
"type": "LinkedServiceReference"
}
}
}
Jeśli używasz RelationalTable
wpisanego zestawu danych, nadal jest on obsługiwany w stanie rzeczywistym, podczas gdy 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ń, zobacz artykuł Pipelines (Potoki ). Ta sekcja zawiera listę właściwości obsługiwanych przez źródło mySQL.
MySQL jako źródło
Aby skopiować dane z programu MySQL, w sekcji źródła działania kopiowania są obsługiwane następujące właściwości:
Właściwości | Opis | Wymagania |
---|---|---|
type | Właściwość type źródła działania kopiowania musi być ustawiona na: MySqlSource | Tak |
zapytanie | Użyj niestandardowego zapytania SQL, aby odczytać dane. Na przykład: "SELECT * FROM MyTable" . |
Nie (jeśli określono "tableName" w zestawie danych) |
Przykład:
"activities":[
{
"name": "CopyFromMySQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<MySQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MySqlSource",
"query": "SELECT * FROM MyTable"
},
"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 MySQL
Podczas kopiowania danych z programu MySQL następujące mapowania są używane z typów danych MySQL do tymczasowych typów danych używanych przez usługę wewnętrznie. 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 MySQL | Typ danych usługi tymczasowej | Typ danych usługi tymczasowej (dla starszej wersji sterownika) |
---|---|---|
bigint |
Int64 |
Int64 |
bigint unsigned |
Decimal |
Decimal |
bit(1) |
UInt64 |
Boolean |
bit(M), M>1 |
UInt64 |
Byte[] |
blob |
Byte[] |
Byte[] |
bool |
Boolean (Jeśli TreatTinyAsBoolean=false, jest mapowany jako SByte . TreatTinyAsBoolean ma wartość true domyślnie ) |
Int16 |
char |
String |
String |
date |
Datetime |
Datetime |
datetime |
Datetime |
Datetime |
decimal |
Decimal |
Decimal, String |
double |
Double |
Double |
double precision |
Double |
Double |
enum |
String |
String |
float |
Single |
Single |
int |
Int32 |
Int32 |
int unsigned |
Int64 |
Int64 |
integer |
Int32 |
Int32 |
integer unsigned |
Int64 |
Int64 |
JSON |
String |
- |
long varbinary |
Byte[] |
Byte[] |
long varchar |
String |
String |
longblob |
Byte[] |
Byte[] |
longtext |
String |
String |
mediumblob |
Byte[] |
Byte[] |
mediumint |
Int32 |
Int32 |
mediumint unsigned |
Int64 |
Int64 |
mediumtext |
String |
String |
numeric |
Decimal |
Decimal |
real |
Double |
Double |
set |
String |
String |
smallint |
Int16 |
Int16 |
smallint unsigned |
Int32 |
Int32 |
text |
String |
String |
time |
TimeSpan |
TimeSpan |
timestamp |
Datetime |
Datetime |
tinyblob |
Byte[] |
Byte[] |
tinyint |
SByte ( tinyint(1) jest mapowany na Boolean ) |
Int16 |
tinyint unsigned |
Int16 |
Int16 |
tinytext |
String |
String |
varchar |
String |
String |
year |
Int |
Int |
Właściwości działania wyszukiwania
Aby dowiedzieć się więcej o właściwościach, sprawdź działanie Wyszukiwania.
Uaktualnianie łącznika MySQL
Poniżej przedstawiono kroki ułatwiające uaktualnienie łącznika MySQL:
Na stronie Edytowanie połączonej usługi wybierz pozycję Zalecane w obszarze Wersja sterownika i skonfiguruj połączoną usługę, odwołując się do właściwości połączonej usługi.
Mapowanie typu danych dla najnowszej połączonej usługi MySQL różni się od tego w przypadku starszej wersji. Aby dowiedzieć się więcej na temat najnowszego mapowania typów danych, zobacz Mapowanie typów danych dla bazy danych MySQL.
Najnowsza wersja sterownika w wersji 2 obsługuje więcej wersji programu MySQL. Aby uzyskać więcej informacji, zobacz Obsługiwane możliwości.
Najlepsze rozwiązania dotyczące zalecanej wersji łącznika MySQL
W tej sekcji przedstawiono najlepsze rozwiązania dotyczące zalecanej wersji łącznika MySQL.
Nie można załadować klucza SSL
Objawy: Jeśli używasz zalecanej wersji łącznika MySQL z kluczem SSL jako właściwością połączenia, może zostać wyświetlony następujący komunikat o błędzie:
Could not load the client key from your_pem_file: Unrecognized PEM header: -----BEGIN PRIVATE KEY-----
Przyczyna: Zalecana wersja nie może odszyfrować formatu PCKS#8.
Zalecenie: przekonwertuj format PEM na PCKS#1.
Różnice między zalecaną i starszą wersją sterownika
W poniższej tabeli przedstawiono różnice mapowania typów danych między bazą danych MySQL przy użyciu zalecanej i starszej wersji sterownika.
Typ danych MySQL | Typ danych usługi tymczasowej (przy użyciu zalecanej wersji sterownika) | Typ danych usługi tymczasowej (przy użyciu starszej wersji sterownika) |
---|---|---|
bit(1) | UInt64 | Wartość logiczna |
bit(M), M>1 | UInt64 | Bajt[] |
bool | Wartość logiczna | Int16 |
JSON | String | Bajt[] |
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.