funkcje optymalizacji wydajności działanie Kopiuj

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 funkcje optymalizacji wydajności działania kopiowania, które można wykorzystać w potokach usług Azure Data Factory i Synapse.

Konfigurowanie funkcji wydajności za pomocą interfejsu użytkownika

Po wybraniu działanie Kopiuj na kanwie edytora potoków i wybraniu karty Ustawienia w obszarze konfiguracji działania poniżej kanwy zostaną wyświetlone opcje konfigurowania wszystkich funkcji wydajności opisanych poniżej.

Shows the Copy activity performance features on the Settings tab for the activity in the pipeline editor.

Jednostki integracji danych

Jednostka Integracja danych to miara reprezentująca moc (kombinację procesora CPU, pamięci i alokacji zasobów sieciowych) pojedynczej jednostki w usłudze. jednostka Integracja danych dotyczy tylkoŚrodowisko Azure Integration Runtime, ale nie własne środowisko Integration Runtime.

Dozwolone jednostki DIU umożliwiające uruchomienie działania kopiowania wynosi od 2 do 256. Jeśli nie zostanie określony lub wybierzesz opcję "Automatycznie" w interfejsie użytkownika, usługa dynamicznie stosuje optymalne ustawienie DIU na podstawie pary ujścia źródła i wzorca danych. W poniższej tabeli wymieniono obsługiwane zakresy jednostek DIU i domyślne zachowanie w różnych scenariuszach kopiowania:

Scenariusz kopiowania Obsługiwany zakres jednostek DIU Domyślne jednostki DIU określane przez usługę
Między magazynami plików - Kopiowanie z lub do pojedynczego pliku: 2–4
- Kopiowanie z i do wielu plików: 2–256 w zależności od liczby i rozmiaru plików

Jeśli na przykład skopiujesz dane z folderu z 4 dużymi plikami i zdecydujesz się zachować hierarchię, maksymalna efektywna jednostka DIU wynosi 16; jeśli zdecydujesz się scalić plik, maksymalna efektywna diu wynosi 4.
Od 4 do 32 w zależności od liczby i rozmiaru plików
Z magazynu plików do magazynu plików spoza magazynu plików - Kopiowanie z pojedynczego pliku: 2–4
- Kopiowanie z wielu plików: 2–256 w zależności od liczby i rozmiaru plików

Jeśli na przykład skopiujesz dane z folderu z 4 dużymi plikami, maksymalna efektywna diu wynosi 16.
- Skopiuj do usługi Azure SQL Database lub Azure Cosmos DB: od 4 do 16 w zależności od warstwy ujścia (JEDNOSTEK DTU/JEDNOSTEK RU) i wzorca pliku źródłowego
- Skopiuj do usługi Azure Synapse Analytics przy użyciu technologii PolyBase lub instrukcji COPY: 2
- Inny scenariusz: 4
Z magazynu niezwiązanego z plikami do magazynu plików - Kopiowanie z magazynów danych z włączoną opcją partycji (w tym usługi Azure Database for PostgreSQL, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, Oracle, Netezza, SQL Server i Teradata): 2–256 podczas zapisywania w folderze i 2–4 podczas zapisywania w jednym pliku. Uwaga na partycję danych źródłowych może używać maksymalnie 4 jednostek DIU.
- Inne scenariusze: 2–4
- Kopiowanie z interfejsu REST lub HTTP: 1
- Kopiowanie z usługi Amazon Redshift przy użyciu funkcji UNLOAD: 2
- Inny scenariusz: 4
Między magazynami niezwiązanych z plikami - Kopiowanie z magazynów danych z włączoną opcją partycji (w tym usługi Azure Database for PostgreSQL, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, Oracle, Netezza, SQL Server i Teradata): 2–256 podczas zapisywania w folderze i 2–4 podczas zapisywania w jednym pliku. Uwaga na partycję danych źródłowych może używać maksymalnie 4 jednostek DIU.
- Inne scenariusze: 2–4
- Kopiowanie z interfejsu REST lub HTTP: 1
- Inny scenariusz: 4

Jednostki DIU używane dla każdego przebiegu kopiowania są widoczne w widoku monitorowania działania kopiowania lub danych wyjściowych działania. Aby uzyskać więcej informacji, zobacz działanie Kopiuj monitorowanie. Aby zastąpić tę wartość domyślną, określ wartość właściwości dataIntegrationUnits w następujący sposób. Rzeczywista liczba jednostek DIU używanych przez operację kopiowania w czasie wykonywania jest równa lub mniejsza niż skonfigurowana wartość w zależności od wzorca danych.

Opłata za liczbę używanych jednostek DIU * czas trwania kopiowania * cena jednostkowa/diu-godzina zostanie naliczona. Zobacz bieżące ceny tutaj. Lokalna waluta i oddzielne rabaty mogą być stosowane na typ subskrypcji.

Przykład:

"activities":[
    {
        "name": "Sample copy activity",
        "type": "Copy",
        "inputs": [...],
        "outputs": [...],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
            },
            "sink": {
                "type": "AzureDataLakeStoreSink"
            },
            "dataIntegrationUnits": 128
        }
    }
]

Skalowalność własnego środowiska Integration Runtime

Jeśli chcesz uzyskać większą przepływność, możesz skalować w górę lub skalować własne środowisko IR w poziomie:

  • Jeśli procesor CPU i dostępna pamięć w węźle Własnego środowiska IR nie są w pełni wykorzystywane, ale wykonywanie współbieżnych zadań osiąga limit, należy skalować w górę przez zwiększenie liczby współbieżnych zadań, które mogą być uruchamiane w węźle. Aby uzyskać instrukcje, zobacz tutaj .
  • Jeśli z drugiej strony procesor CPU jest wysoki w węźle Własnego środowiska IR lub dostępna pamięć jest niska, możesz dodać nowy węzeł, aby ułatwić skalowanie obciążenia między wieloma węzłami. Aby uzyskać instrukcje, zobacz tutaj .

Należy pamiętać, że w następujących scenariuszach wykonywanie pojedynczego działania kopiowania może korzystać z wielu węzłów własnego środowiska IR:

Kopiowanie równoległe

Możesz ustawić kopię równoległą (parallelCopies właściwość w definicji JSON działanie Kopiuj lub Degree of parallelism ustawienie na karcie Ustawienia właściwości działanie Kopiuj w interfejsie użytkownika) w działaniu kopiowania, aby wskazać równoległość działania kopiowania do użycia. Tę właściwość można traktować jako maksymalną liczbę wątków w działaniu kopiowania, które są odczytywane ze źródła lub zapisu w magazynach danych ujścia równolegle.

Kopia równoległa jest ortogonalna do węzłów Integracja danych Units lub Self-hosted IR. Jest on liowany we wszystkich węzłach jednostki DIU lub własnego środowiska IR.

Dla każdego przebiegu działania kopiowania usługa domyślnie dynamicznie stosuje optymalne ustawienie kopiowania równoległego na podstawie pary źródła ujścia i wzorca danych.

Napiwek

Domyślne zachowanie kopiowania równoległego zwykle zapewnia najlepszą przepływność, która jest automatycznie określana przez usługę na podstawie pary ujścia źródła, wzorca danych i liczby jednostek DIU lub liczby procesorów CPU/pamięci/węzła własnego środowiska IR. Zapoznaj się z artykułem Rozwiązywanie problemów z wydajnością działania kopiowania w przypadku dostosowywania kopiowania równoległego.

W poniższej tabeli wymieniono zachowanie kopiowania równoległego:

Scenariusz kopiowania Zachowanie kopiowania równoległego
Między magazynami plików parallelCopies określa równoległość na poziomie pliku. Fragmentowanie w każdym pliku odbywa się automatycznie i w sposób niewidoczny. Zaprojektowano go tak, aby używać najlepszego odpowiedniego rozmiaru fragmentu dla danego typu magazynu danych w celu równoległego ładowania danych.

Rzeczywista liczba równoległych kopii używanych w czasie wykonywania kopiowania wynosi nie więcej niż liczba posiadanych plików. Jeśli zachowanie kopiowania jest scalanePlik w ujście plików, działanie kopiowania nie może korzystać z równoległości na poziomie pliku.
Z magazynu plików do magazynu plików spoza magazynu plików — Podczas kopiowania danych do usługi Azure SQL Database lub Azure Cosmos DB domyślna kopia równoległa zależy również od warstwy ujścia (liczba jednostek DTU/JEDNOSTEK RU).
— Podczas kopiowania danych do tabeli platformy Azure domyślna kopia równoległa to 4.
Z magazynu niezwiązanego z plikami do magazynu plików — Podczas kopiowania danych z magazynu danych z włączoną opcją partycji (w tym azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, Oracle, Amazon RDS for Oracle, Netezza, SAP HANA, SAP Open Hub, SAP Table, SQL Server, Amazon RDS for SQL Server i Teradata), domyślna kopia równoległa to 4. Rzeczywista liczba równoległych kopii używanych w czasie wykonywania kopiowania wynosi nie więcej niż liczba posiadanych partycji danych. W przypadku używania własnego środowiska Integration Runtime i kopiowania do usługi Azure Blob/ADLS Gen2 należy pamiętać, że maksymalna efektywna kopia równoległa wynosi 4 lub 5 na węzeł środowiska IR.
— W przypadku innych scenariuszy kopiowanie równoległe nie działa. Nawet jeśli jest określony równoległość, nie jest stosowany.
Między magazynami niezwiązanych z plikami — Podczas kopiowania danych do usługi Azure SQL Database lub Azure Cosmos DB domyślna kopia równoległa zależy również od warstwy ujścia (liczba jednostek DTU/JEDNOSTEK RU).
— Podczas kopiowania danych z magazynu danych z włączoną opcją partycji (w tym azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, Oracle, Amazon RDS for Oracle, Netezza, SAP HANA, SAP Open Hub, SAP Table, SQL Server, Amazon RDS for SQL Server i Teradata), domyślna kopia równoległa to 4.
— Podczas kopiowania danych do tabeli platformy Azure domyślna kopia równoległa to 4.

Aby kontrolować obciążenie maszyn hostujących magazyny danych lub dostosować wydajność kopiowania, możesz zastąpić wartość domyślną i określić wartość właściwości parallelCopies . Wartość musi być liczbą całkowitą większą lub równą 1. W czasie wykonywania w celu uzyskania najlepszej wydajności działanie kopiowania używa wartości mniejszej niż lub równej ustawionej wartości.

Po określeniu parallelCopies wartości właściwości weź pod uwagę wzrost obciążenia magazynu danych źródła i ujścia. Rozważ również zwiększenie obciążenia własnego środowiska Integration Runtime, jeśli działanie kopiowania jest przez niego uprawnione. Ten wzrost obciążenia występuje szczególnie w przypadku wielu działań lub współbieżnych uruchomień tych samych działań, które są uruchamiane względem tego samego magazynu danych. Jeśli zauważysz, że magazyn danych lub własne środowisko Integration Runtime jest przeciążone obciążeniem, zmniejsz parallelCopies wartość, aby zmniejszyć obciążenie.

Przykład:

"activities":[
    {
        "name": "Sample copy activity",
        "type": "Copy",
        "inputs": [...],
        "outputs": [...],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
            },
            "sink": {
                "type": "AzureDataLakeStoreSink"
            },
            "parallelCopies": 32
        }
    }
]

Kopia etapowa

Podczas kopiowania danych ze źródłowego magazynu danych do magazynu danych ujścia możesz użyć usługi Azure Blob Storage lub Azure Data Lake Storage Gen2 jako tymczasowego magazynu przejściowego. Przemieszczanie jest szczególnie przydatne w następujących przypadkach:

  • Chcesz pozyskiwać dane z różnych magazynów danych do usługi Azure Synapse Analytics za pośrednictwem technologii PolyBase, kopiować dane z/do usługi Snowflake lub pozyskiwać dane z usługi Amazon Redshift/HDFS wydajnie. Dowiedz się więcej na stronie:
  • Nie chcesz otwierać portów innych niż port 80 i port 443 w zaporze z powodu firmowych zasad IT. Na przykład podczas kopiowania danych z lokalnego magazynu danych do usługi Azure SQL Database lub usługi Azure Synapse Analytics należy aktywować wychodzącą komunikację TCP na porcie 1433 zarówno dla zapory systemu Windows, jak i zapory firmowej. W tym scenariuszu kopiowanie etapowe może skorzystać z własnego środowiska Integration Runtime, aby najpierw skopiować dane do magazynu przejściowego za pośrednictwem protokołu HTTP lub HTTPS na porcie 443, a następnie załadować dane ze środowiska przejściowego do usługi SQL Database lub Azure Synapse Analytics. W tym przepływie nie trzeba włączać portu 1433.
  • Czasami wykonanie hybrydowego przenoszenia danych (czyli skopiowanie z lokalnego magazynu danych do magazynu danych w chmurze) za pośrednictwem powolnego połączenia sieciowego. Aby zwiększyć wydajność, można użyć kopiowania etapowego w celu skompresowania danych lokalnych, dzięki czemu przeniesienie danych do przejściowego magazynu danych w chmurze zajmuje mniej czasu. Następnie można dekompresować dane w magazynie przejściowym przed załadowaniem do docelowego magazynu danych.

Jak działa kopiowanie etapowe

Po aktywowaniu funkcji przejściowej najpierw dane są kopiowane ze źródłowego magazynu danych do magazynu przejściowego (bring your own Azure Blob or Azure Data Lake Storage Gen2). Następnie dane są kopiowane z przemieszczania do magazynu danych ujścia. Działanie kopiowania automatycznie zarządza przepływem dwuetapowym, a także czyści tymczasowe dane z magazynu przejściowego po zakończeniu przenoszenia danych.

Staged copy

Musisz przyznać uprawnienie do usuwania do usługi Azure Data Factory w magazynie przejściowym, aby dane tymczasowe mogły być czyszczone po uruchomieniu działania kopiowania.

Po aktywowaniu przenoszenia danych przy użyciu magazynu przejściowego można określić, czy dane mają być skompresowane przed przeniesieniem danych ze źródłowego magazynu danych do magazynu przejściowego, a następnie dekompresowanego przed przeniesieniem danych z tymczasowego lub przejściowego magazynu danych do magazynu danych ujścia.

Obecnie nie można kopiować danych między dwoma magazynami danych połączonymi za pośrednictwem różnych własnych adresów IP ani z kopią etapową. W takim scenariuszu można skonfigurować dwa jawnie łańcuchowe działania kopiowania w celu skopiowania ze źródła do przemieszczania, a następnie z przemieszczania do ujścia.

Konfigurowanie

Skonfiguruj ustawienie enableStaging w działaniu kopiowania, aby określić, czy dane mają być przygotowane w magazynie przed załadowaniem ich do docelowego magazynu danych. Po ustawieniu opcji enableStaging na TRUEwartość określ dodatkowe właściwości wymienione w poniższej tabeli.

Właściwości Description Domyślna wartość Wymagania
enableStaging Określ, czy chcesz skopiować dane za pośrednictwem tymczasowego magazynu przejściowego. Fałsz Nie.
linkedServiceName Określ nazwę połączonej usługi Azure Blob Storage lub Azure Data Lake Storage Gen2 , która odwołuje się do wystąpienia usługi Storage używanego jako tymczasowy magazyn przejściowy. Nie dotyczy Tak, gdy ustawienie enableStaging ma wartość TRUE
path Określ ścieżkę, która ma zawierać dane etapowe. Jeśli nie podasz ścieżki, usługa utworzy kontener do przechowywania danych tymczasowych. Nie dotyczy Nie.
enableCompression Określa, czy dane mają być skompresowane przed skopiowanie ich do miejsca docelowego. To ustawienie zmniejsza ilość przesyłanych danych. Fałsz Nie.

Uwaga

Jeśli używasz kopiowania etapowego z włączoną kompresją, jednostka usługi lub uwierzytelnianie MSI dla przejściowej połączonej usługi obiektów blob nie jest obsługiwane.

Oto przykładowa definicja działania kopiowania z właściwościami opisanymi w poprzedniej tabeli:

"activities":[
    {
        "name": "CopyActivityWithStaging",
        "type": "Copy",
        "inputs": [...],
        "outputs": [...],
        "typeProperties": {
            "source": {
                "type": "OracleSource",
            },
            "sink": {
                "type": "SqlDWSink"
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                },
                "path": "stagingcontainer/path"
            }
        }
    }
]

Wpływ na rozliczenia kopiowania etapowego

Opłaty są naliczane na podstawie dwóch kroków: czasu trwania kopiowania i typu kopiowania.

  • Jeśli używasz przemieszczania podczas kopiowania w chmurze, który kopiuje dane z magazynu danych w chmurze do innego magazynu danych w chmurze, oba etapy obsługiwane przez środowisko Azure Integration Runtime, są naliczane opłaty za [łączny czas trwania kopiowania za krok 1 i krok 2] x [cena jednostkowa kopiowania w chmurze].
  • W przypadku korzystania ze przemieszczania podczas kopiowania hybrydowego, który kopiuje dane z lokalnego magazynu danych do magazynu danych w chmurze, jeden etap z uprawnieniami własnego środowiska Integration Runtime, naliczana jest opłata za [czas trwania kopiowania hybrydowego] x [cena jednostkowa kopiowania hybrydowego] + [czas trwania kopiowania w chmurze] x [cena jednostkowa kopiowania w chmurze].

Zobacz inne artykuły dotyczące działań kopiowania: