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, jak używać aktywności kopiowania w potokach usługi Azure Data Factory lub Synapse Analytics do kopiowania danych z i do usługi Azure Database for MySQL oraz jak używać Przepływu danych do przekształcania danych w usłudze Azure Database for MySQL. Aby dowiedzieć się więcej, przeczytaj artykuły wprowadzające dotyczące usług Azure Data Factory i Synapse Analytics.
Ten łącznik jest przeznaczony dla
Aby skopiować dane z ogólnej bazy danych MySQL znajdującej się lokalnie lub w chmurze, użyj łącznika MySQL.
Wymagania wstępne
Ten szybki start wymaga następujących zasobów i konfiguracji wymienionych poniżej na początek:
- Istniejący pojedynczy serwer usługi Azure Database for MySQL lub serwer elastyczny MySQL z publicznym dostępem lub prywatnym punktem końcowym.
- Włącz opcję Zezwalaj na dostęp publiczny z dowolnej usługi platformy Azure na tym serwerze na stronie sieci serwera MySQL. Umożliwi to korzystanie z programu Data Factory Studio.
Obsługiwane możliwości
Ten konektor usługi Azure Database for MySQL jest obsługiwany w przypadku następujących funkcjonalności:
| Obsługiwane możliwości | środowisko IR | Zarządzany prywatny punkt końcowy |
|---|---|---|
| Działanie kopiowania (źródło/ujście) | (1) (2) | ✓ |
| Mapowanie przepływu danych (źródło/ujście) | (1) | ✓ |
| Działanie Wyszukiwania | (1) (2) | ✓ |
(1) Środowisko Azure Integration Runtime (2) Self-hosted Integration Runtime
Wprowadzenie
Aby wykonać działanie kopiowania za pomocą potoku, 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 MySQL przy użyciu interfejsu użytkownika
Wykonaj poniższe kroki, aby utworzyć połączoną usługę z usługą Azure Database for 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 MySQL i wybierz łącznik Azure Database for 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 usługi Azure Database for MySQL.
Właściwości połączonej usługi
Następujące właściwości są obsługiwane w przypadku połączonej usługi Azure Database for MySQL:
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type musi być ustawiona na: AzureMySql | 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 wydobyć konfigurację password z parametrów połączenia. Zapoznaj się z poniższymi przykładami oraz artykułem "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. 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 Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;PWD=<password>. Więcej właściwości, które można ustawić w danym przypadku:
| Nieruchomość | Opis | Opcje | Wymagane |
|---|---|---|---|
| Tryb SSL | 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> |
WYŁĄCZONE (0) / PREFEROWANE (1) (ustawienie domyślne) / WYMAGANE (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) | Nie. |
| UseSystemTrustStore | Ta opcja określa, czy używać certyfikatu CA z magazynu zaufania systemu, czy z podanego pliku PEM. Np. UseSystemTrustStore=<0/1>; |
Włączone (1) / Wyłączone (0) (ustawienie domyślne) | Nie. |
Przykład:
{
"name": "AzureDatabaseForMySQLLinkedService",
"properties": {
"type": "AzureMySql",
"typeProperties": {
"connectionString": "Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;PWD=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Przykład: przechowywanie hasła w usłudze Azure Key Vault
{
"name": "AzureDatabaseForMySQLLinkedService",
"properties": {
"type": "AzureMySql",
"typeProperties": {
"connectionString": "Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"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 usługi Azure Database for MySQL.
Aby skopiować dane z usługi Azure Database for MySQL, ustaw właściwość type zestawu danych na AzureMySqlTable. Obsługiwane są następujące właściwości:
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type zestawu danych musi być ustawiona na: AzureMySqlTable | Tak |
| nazwaTabeli | Nazwa tabeli w bazie danych MySQL. | Nie (jeśli "zapytanie" jest określone w źródle działania) |
Przykład
{
"name": "AzureMySQLDataset",
"properties": {
"type": "AzureMySqlTable",
"linkedServiceName": {
"referenceName": "<Azure MySQL linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"tableName": "<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 artykuł Pipelines (Potoki). Ta sekcja zawiera listę właściwości obsługiwanych przez źródło i miejsce docelowe bazy danych Azure Database for MySQL.
Usługa Azure Database for MySQL jako źródło
Aby skopiować dane z usługi Azure Database for MySQL, w sekcji źródła działania kopiowania obsługiwane są następujące właściwości:
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type źródła działania kopiowania musi być ustawiona na: AzureMySqlSource | Tak |
| kwerenda | Użyj niestandardowego zapytania SQL, aby odczytać dane. Na przykład: "SELECT * FROM MyTable". |
Nie (jeśli w zestawie danych określono "tableName") |
| queryCommandTimeout | Czas oczekiwania przed przekroczeniem limitu czasu żądania zapytania. Wartość domyślna to 120 minut (02:00:00) | Nie. |
Przykład:
"activities":[
{
"name": "CopyFromAzureDatabaseForMySQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure MySQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzureMySqlSource",
"query": "<custom query e.g. SELECT * FROM MyTable>"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Usługa Azure Database for MySQL jako odbiornik
Aby skopiować dane do usługi Azure Database for MySQL, w sekcji ujścia działania kopiowania są obsługiwane następujące właściwości:
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type ujścia działania kopiowania musi być ustawiona na: AzureMySqlSink | Tak |
| preCopyScript | Określ zapytanie SQL dla działania kopiowania do wykonania przed zapisaniem danych w usłudze Azure Database for MySQL w każdym uruchomieniu. Za pomocą tej właściwości można wyczyścić wstępnie załadowane dane. | Nie. |
| writeBatchSize | Wstawia dane do tabeli usługi Azure Database for MySQL, gdy rozmiar buforu osiągnie wartość writeBatchSize. Dozwolona wartość to liczba całkowita reprezentująca liczbę wierszy. |
Nie (wartość domyślna to 10 000) |
| writeBatchTimeout | Czas oczekiwania na ukończenie operacji wstawiania wsadowego, zanim nastąpi przekroczenie limitu czasu. Dozwolone wartości to przedziały czasu. Przykładem jest 00:30:00 (30 minut). |
Nie (wartość domyślna to 00:00:30) |
Przykład:
"activities":[
{
"name": "CopyToAzureDatabaseForMySQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure MySQL output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzureMySqlSink",
"preCopyScript": "<custom SQL script>",
"writeBatchSize": 100000
}
}
}
]
Właściwości mapowania przepływu danych
Podczas przekształcania danych w danych mapowanych można odczytywać i zapisywać tabele z usługi Azure Database for MySQL. Aby uzyskać więcej informacji, zobacz przekształcanie źródła i przekształcanie ujścia w przepływach danych mapowania. Możesz użyć zestawu danych usługi Azure Database for MySQL lub wbudowanego zestawu danych jako typu źródła i ujścia.
Przekształcanie źródła
W poniższej tabeli wymieniono właściwości obsługiwane przez źródło usługi Azure Database for MySQL. 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 |
|---|---|---|---|---|
| Stół | Jeśli wybierzesz Tabelę jako wejście danych, przepływ danych pobiera 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ą UDF w SQL, która zwraca tabelę, której można użyć w przepływie danych. Przykład zapytania: select * from mytable where customerId > 1000 and customerId < 2000 lub select * from "MyTable". |
Nie. | String | kwerenda |
| 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) | String | procedureName |
| 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. | Integer | batchSize |
| 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. | READ_COMMITTED (poziom izolacji transakcji "odczyt zatwierdzony") READ_UNCOMMITTED (odczyt niezadeklarowany) POWTARZALNY ODCZYT SERIALIZOWALNY BRAK |
poziom izolacji |
Przykładowy skrypt źródłowy usługi Azure Database for MySQL
Jeśli używasz usługi Azure Database for MySQL 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') ~> AzureMySQLSource
Przekształcenie zlewu
W poniższej tabeli wymieniono właściwości obsługiwane przez ujście usługi Azure Database for MySQL. Te właściwości można edytować na karcie Opcje wyjścia.
| 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ć, wprowadzić lub usunąć wiersze, wymagane jest przekształcenie alter wiersza do tagowania ich dla tych akcji. |
Tak |
true lub false |
możliwe do usunięcia wstawialny możliwe do aktualizacji możliwość aktualizacji lub wstawienia |
| Kolumny kluczy | W przypadku aktualizacji, operacji upserts i delete należy ustawić kolumny kluczy, aby określić, który wiersz ma zostać zmieniony. Nazwa kolumny wybranej jako klucz będzie używana w ramach kolejnej aktualizacji, upsert, delete. 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 |
skipKeyWrites |
| Akcja tabeli | Określa, czy należy ponownie utworzyć lub usunąć wszystkie wiersze z tabeli docelowej przed zapisem. - Brak: żadna akcja nie zostanie wykonana w tabeli. - Odtwórz: tabela zostanie usunięta i utworzona ponownie. Wymagane w przypadku dynamicznego tworzenia nowej tabeli. - Obcinanie: 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 istnieje ryzyko wystąpienia wyjątków braku pamięci podczas buforowania danych. | Nie. | Integer | batchSize |
| Skrypty SQL przed i po | Określ wielowierszowe skrypty SQL, które będą wykonywane przed (przetwarzanie wstępne) i po (przetwarzanie końcowe) zapisaniem danych w bazie danych docelowej. | Nie. | String | preSQLs postSQLs |
Napiwek
- Zaleca się podzielenie pojedynczych skryptów wsadowych 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: użyj tej opcji, aby poinformować usługę ADF o przetwarzaniu tylko wierszy, które uległy zmianie od czasu ostatniego wykonania potoku.
Kolumna przyrostowa: w przypadku korzystania z funkcji wyodrębniania przyrostowego należy wybrać kolumnę daty/godziny lub kolumnę liczbową, której chcesz użyć jako znaku wodnego w tabeli źródłowej.
Rozpocznij odczytywanie od początku: ustawienie tej opcji przy użyciu wyodrębniania przyrostowego spowoduje, że usługa ADF odczytuje wszystkie wiersze podczas pierwszego wykonywania potoku z włączonym wyodrębnieniem przyrostowym.
Przykładowy skrypt ujścia usługi Azure Database for MySQL
Jeśli używasz usługi Azure Database for MySQL 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) ~> AzureMySQLSink
Właściwości działania wyszukiwania
Aby dowiedzieć się więcej o właściwościach, sprawdź aktywność Wyszukiwania.
Mapowanie typów danych dla usługi Azure Database for MySQL
Podczas kopiowania danych z usługi Azure Database for MySQL następujące mapowania są używane z typów danych MySQL do tymczasowych typów danych używanych wewnętrznie w usłudze. 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 usługi Azure Database for MySQL | Typ danych usługi tymczasowej |
|---|---|
bigint |
Int64 |
bigint unsigned |
Decimal |
bit |
Boolean |
bit(M), M>1 |
Byte[] |
blob |
Byte[] |
bool |
Int16 |
char |
String |
date |
Datetime |
datetime |
Datetime |
decimal |
Decimal, String |
double |
Double |
double precision |
Double |
enum |
String |
float |
Single |
int |
Int32 |
int unsigned |
Int64 |
integer |
Int32 |
integer unsigned |
Int64 |
long varbinary |
Byte[] |
long varchar |
String |
longblob |
Byte[] |
longtext |
String |
mediumblob |
Byte[] |
mediumint |
Int32 |
mediumint unsigned |
Int64 |
mediumtext |
String |
numeric |
Decimal |
real |
Double |
set |
String |
smallint |
Int16 |
smallint unsigned |
Int32 |
text |
String |
time |
TimeSpan |
timestamp |
Datetime |
tinyblob |
Byte[] |
tinyint |
Int16 |
tinyint unsigned |
Int16 |
tinytext |
String |
varchar |
String |
year |
Int32 |
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.