Kopiowanie i przekształcanie danych w Azure Synapse Analytics przy użyciu potoków Azure Data Factory lub Synapse

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Wskazówka

Data Factory w usłudze Microsoft Fabric jest następną generacją Azure Data Factory z prostszą architekturą, wbudowaną sztuczną inteligencją i nowymi funkcjami. Jeśli dopiero zaczynasz integrować dane, zacznij od Fabric Data Factory. Istniejące obciążenia ADF można zaktualizować do Fabric, aby uzyskać dostęp do nowych możliwości w zakresie nauki o danych, analiz w czasie rzeczywistym oraz raportowania.

W tym artykule opisano sposób używania działania kopiowania w potokach Azure Data Factory lub Synapse do kopiowania danych z i do Azure Synapse Analytics oraz używania Data Flow do przekształcania danych w Azure Data Lake Storage Gen2. Aby dowiedzieć się więcej o Azure Data Factory, przeczytaj artykuł introduktoryczne.

Obsługiwane możliwości

Ten łącznik Azure Synapse Analytics jest obsługiwany w następujących możliwościach:

Obsługiwane możliwości środowisko IR Zarządzany prywatny punkt końcowy
Copy activity (źródło/ujście) (1) (2)
Mapowanie przepływu danych (źródło/ujście) (1)
Działanie Lookup (1) (2)
Działanie GetMetadata (1) (2)
Działanie skryptu (1) (2)
Działanie procedury składowanej (1) (2)

(1) Środowisko uruchomieniowe Azure (2) Środowisko uruchomieniowe lokalnie hostowane

W przypadku Copy activity ten łącznik Azure Synapse Analytics obsługuje następujące funkcje:

  • Kopiuj dane przy użyciu uwierzytelniania SQL i uwierzytelniania tokenu aplikacji Microsoft Entra za pomocą jednostki usługi lub zarządzanych tożsamości dla zasobów Azure.
  • Jako źródło pobierz dane przy użyciu zapytania SQL lub procedury składowanej. Możesz również wybrać równoległą kopię ze źródła Azure Synapse Analytics. Aby uzyskać szczegółowe informacje, zobacz kopię Parallel z sekcji Azure Synapse Analytics.
  • Jako źródło, załaduj dane przy użyciu polecenia COPY, programu PolyBase lub wstawiania zbiorczego. Zalecamy użycie instrukcji COPY lub technologii PolyBase w celu uzyskania lepszej wydajności kopiowania. Łącznik obsługuje również automatyczne tworzenie tabeli docelowej przy użyciu funkcji DISTRIBUTION = ROUND_ROBIN, jeśli nie istnieje na podstawie schematu źródłowego.

Ważne

Jeśli dane są kopiowane przy użyciu Azure Integration Runtime, skonfiguruj regułę zapory na poziomie serwera aby usługi Azure mogły uzyskiwać dostęp do logicznego serwera SQL. Jeśli skopiujesz dane przy użyciu własnego środowiska Integration Runtime, skonfiguruj zaporę tak, aby zezwalała na odpowiedni zakres adresów IP. Ten zakres obejmuje adres IP maszyny używany do nawiązywania połączenia z Azure Synapse Analytics.

Wprowadzenie

Wskazówka

Aby uzyskać najlepszą wydajność, użyj instrukcji PolyBase lub COPY, aby załadować dane do Azure Synapse Analytics. Sekcje Użycie PolyBase do ładowania danych do Azure Synapse Analytics i Użycie instrukcji COPY do ładowania danych do Azure Synapse Analytics zawierają szczegółowe informacje. Aby zapoznać się z przewodnikiem z przypadkiem użycia, zobacz Załaduj 1 TB do Azure Synapse Analytics w mniej niż 15 minut przy użyciu Azure Data Factory.

Aby wykonać działanie kopiowania za pomocą potoku, możesz użyć jednego z następujących narzędzi lub zestawów SDK:

Tworzenie połączonej usługi Azure Synapse Analytics przy użyciu interfejsu użytkownika

Wykonaj poniższe kroki, aby utworzyć połączoną usługę Azure Synapse Analytics w interfejsie użytkownika portalu Azure.

  1. Przejdź do karty Zarządzanie w obszarze roboczym Azure Data Factory lub Synapse i wybierz pozycję Połączone usługi, a następnie kliknij pozycję Nowy:

  2. Wyszukaj opcję Synapse i wybierz łącznik Azure Synapse Analytics.

    Zrzut ekranu przedstawiający łącznik Azure Synapse Analytics.

  3. Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.

    Zrzut ekranu konfiguracji połączonej usługi Azure Synapse Analytics.

Szczegóły konfiguracji łącznika

Poniższe sekcje zawierają szczegółowe informacje o właściwościach definiujących jednostki potoków w usłudze Data Factory i Synapse, charakterystyczne dla łącznika Azure Synapse Analytics.

Właściwości połączonej usługi

Łącznik Azure Synapse Analytics Recommended obsługuje protokół TLS 1.3. Zapoznaj się z tą sekcją, aby uaktualnić wersję łącznika Azure Synapse Analytics z wersji Legacy. Aby uzyskać szczegółowe informacje o właściwościach, należy odnieść się do odpowiednich sekcji.

Wskazówka

Podczas tworzenia połączonej usługi dla serverless puli SQL w Azure Synapse z poziomu portalu Azure:

  1. W polu Metoda wyboru konta wybierz pozycję Wprowadź ręcznie.
  2. Wklej pełną nazwę domeny bezserwerowego punktu końcowego. Tę pozycję można znaleźć na stronie Przeglądu portalu Azure dla obszaru roboczego usługi Synapse we właściwościach w obszarze Bezserwerowy punkt końcowy SQL. Na przykład myserver-ondemand.sql-azuresynapse.net.
  3. W polu Nazwa bazy danych podaj nazwę bazy danych w bezserwerowej puli SQL.

Wskazówka

Jeśli wystąpi błąd z kodem błędu "UserErrorFailedToConnectToSqlServer", a komunikat taki jak "Limit sesji dla bazy danych to XXX i został osiągnięty"., dodaj Pooling=false do connection string i spróbuj ponownie.

Te ogólne właściwości są obsługiwane dla usługi powiązanej Azure Synapse Analytics podczas stosowania wersji Recommended:

Właściwości Opis Wymagane
typ Właściwość type musi być ustawiona na AzureSqlDW. Tak
serwer Nazwa lub adres sieciowy wystąpienia programu SQL Server, z którym chcesz nawiązać połączenie. Tak
baza danych Nazwa bazy danych. Tak
typ uwierzytelniania Typ używany do uwierzytelniania. Dozwolone wartości to SQL (wartość domyślna), ServicePrincipal, SystemAssignedManagedIdentity, UserAssignedManagedIdentity. Przejdź do odpowiedniej sekcji uwierzytelniania dotyczącej określonych właściwości i wymagań wstępnych. Tak
szyfrować Określ, czy szyfrowanie TLS jest wymagane dla wszystkich danych wysyłanych między klientem a serwerem. Opcje: obowiązkowe (dla wartości true, domyślnie)/opcjonalne (dla wartości false)/ścisłe. Nie.
ZaufajCertyfikatowiSerwera Określ, czy kanał zostanie zaszyfrowany podczas pomijania łańcucha certyfikatów w celu zweryfikowania zaufania. Nie.
hostNameInCertificate Nazwa hosta do użycia podczas weryfikowania certyfikatu serwera dla połączenia. Jeśli nie zostanie określona, nazwa serwera jest używana do weryfikacji certyfikatu. Nie.
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska uruchomieniowego integracji Azure albo własnego środowiska uruchomieniowego integracji, jeśli magazyn danych znajduje się w sieci prywatnej. Jeśli nie zostanie to określone, zostanie użyta Azure Integration Runtime domyślna. Nie.

Aby uzyskać dodatkowe właściwości połączenia, zobacz poniższą tabelę:

Właściwości Opis Wymagane
zamiar aplikacji Typ obciążenia aplikacji podczas nawiązywania połączenia z serwerem. Dozwolone wartości to ReadOnly i ReadWrite. Nie.
connectTimeout Czas oczekiwania na połączenie z serwerem (w sekundach) przed zakończeniem próby i wygenerowaniem błędu. Nie.
connectRetryCount Liczba ponownych połączeń podjęta po zidentyfikowaniu błędu bezczynności połączenia. Wartość powinna być liczbą całkowitą z zakresu od 0 do 255. Nie.
connectRetryInterval Czas (w sekundach) między każdą ponowną próbą nawiązania połączenia po zidentyfikowaniu błędu bezczynności połączenia. Wartość powinna być liczbą całkowitą z zakresu od 1 do 60. Nie.
loadBalanceTimeout Minimalny czas (w sekundach), przez jaki połączenie może istnieć w puli połączeń przed jego zamknięciem. Nie.
commandTimeout Domyślny czas oczekiwania (w sekundach) przed zakończeniem próby wykonania polecenia i wygenerowaniem błędu. Nie.
zintegrowaneBezpieczeństwo Dozwolone wartości to true lub false. Podczas określania false parametru określ, czy nazwa użytkownika i hasło są określone w połączeniu. Podczas określania true wskazuje, czy bieżące poświadczenia konta Windows są używane do uwierzytelniania. Nie.
failoverPartner Nazwa lub adres serwera partnerskiego do nawiązania połączenia, jeśli serwer podstawowy nie działa. Nie.
maksymalnyRozmiarPuli Maksymalna liczba połączeń dozwolonych w puli połączeń dla określonego połączenia. Nie.
minPoolSize (Minimalny rozmiar puli) Minimalna liczba połączeń dozwolonych w puli połączeń dla określonego połączenia. Nie.
multipleActiveResultSets Dozwolone wartości to true lub false. Po określeniu trueparametru aplikacja może obsługiwać wiele aktywnych zestawów wyników (MARS). Po określeniu falseparametru aplikacja musi przetworzyć lub anulować wszystkie zestawy wyników z jednej partii, zanim będzie mogła wykonać inne partie w tym połączeniu. Nie.
multiSubnetFailover Dozwolone wartości to true lub false. Jeśli Twoja aplikacja łączy się z AlwaysOn availability group (AG) znajdującą się w różnych podsieciach, ustawienie tej właściwości na true pozwala na szybsze wykrywanie i nawiązywanie połączenia z aktualnie aktywnym serwerem. Nie.
rozmiar pakietu Rozmiar pakietów sieciowych w bajtach używanych do komunikacji z instancją serwera. Nie.
Buforowanie Dozwolone wartości to true lub false. Po określeniu parametru true, połączenie zostanie włączone do puli. Po określeniu falseparametru połączenie zostanie jawnie otwarte przy każdym żądaniu połączenia. Nie.

Uwierzytelnianie SQL

Aby użyć uwierzytelniania SQL, oprócz właściwości ogólnych opisanych w poprzedniej sekcji, określ następujące właściwości:

Właściwości Opis Wymagane
userName Nazwa użytkownika używana do nawiązywania połączenia z serwerem. 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 tajemnicy przechowywanej w Azure Key Vault. Tak

Przykład: używanie uwierzytelniania SQL

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Example: hasło w Azure Key Vault

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Uwierzytelnianie głównego elementu usługi

Aby użyć uwierzytelniania podmiotu usługi, oprócz właściwości ogólnych opisanych w poprzedniej sekcji, określ następujące właściwości:

Właściwości Opis Wymagane
IdentyfikatorPodmiotuUsługowego Określ identyfikator klienta aplikacji. Tak
servicePrincipalCredential Poświadczenie jednostki usługi. Określ klucz aplikacji. Oznacz to pole jako SecureString do bezpiecznego przechowywania lub aby odwołać się do tajnego wpisu przechowywanego w Azure Key Vault. Tak
dzierżawa Określ informacje o dzierżawie (nazwę domeny lub identyfikator dzierżawy), w ramach których znajduje się aplikacja. Możesz go pobrać, umieszczając wskaźnik myszy w prawym górnym rogu portalu Azure. Tak
azureCloudType W przypadku uwierzytelniania za pomocą jednostki usługi określ typ środowiska chmury Azure, w którym zarejestrowano aplikację Microsoft Entra.
Dozwolone wartości to AzurePublic, , AzureChinaAzureUsGovernmenti AzureGermany. Domyślnie używane jest środowisko chmury obliczeniowej fabryki danych lub potoku Synapse.
Nie.

Należy również wykonać poniższe kroki:

  1. Tworzenie aplikacji Microsoft Entra z portalu Azure. Zanotuj nazwę aplikacji i następujące wartości, które definiują połączoną usługę:

    • Identyfikator aplikacji
    • Klucz aplikacji
    • Identyfikator dzierżawy
  2. Udostępnij administratora Microsoft Entra dla serwera w portalu Azure, jeśli jeszcze tego nie zrobiłeś. Administrator Microsoft Entra może być użytkownikiem Microsoft Entra lub grupą Microsoft Entra. Jeśli przyznasz grupie rolę administratora tożsamości zarządzanej, pomiń kroki 3 i 4. Administrator będzie miał pełny dostęp do bazy danych.

  3. Utwórz użytkowników zawartej bazy danych dla jednostki usługi. Połącz się z magazynem danych, do lub z którego chcesz skopiować dane, przy użyciu takich narzędzi jak SSMS, za pomocą tożsamości Microsoft Entra, która ma co najmniej uprawnienie ALTER ANY USER. Uruchom następujący kod T-SQL:

    CREATE USER [your_application_name] FROM EXTERNAL PROVIDER;
    
  4. Przyznaj jednostce usługi wymagane uprawnienia , tak jak zwykle w przypadku użytkowników SQL lub innych użytkowników. Uruchom poniższy kod lub zapoznaj się z więcej opcji tutaj. Jeśli chcesz załadować dane przy użyciu technologii PolyBase, zapoznaj się z wymaganymi uprawnieniami bazy danych.

    EXEC sp_addrolemember db_owner, [your application name];
    
  5. Konfiguruj połączoną usługę Azure Synapse Analytics w obszarze roboczym Azure Data Factory lub Synapse.

Przykład połączonej usługi korzystającej z uwierzytelniania jednostki usługi

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "connectionString": "Server=tcp:<servername>.database.windows.net,1433;Database=<databasename>;Connection Timeout=30",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredential": {
                "type": "SecureString",
                "value": "<application key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Tożsamości zarządzane przypisane przez system na potrzeby uwierzytelniania zasobów Azure

Obszar roboczy fabryki danych lub usługi Synapse może być skojarzony z tożsamością zarządzaną przypisaną przez system dla zasobów Azure które reprezentują zasób. Tej tożsamości zarządzanej można użyć do uwierzytelniania Azure Synapse Analytics. Wyznaczony zasób może uzyskiwać dostęp do danych i kopiować je z lub do magazynu danych przy użyciu tej tożsamości.

Aby użyć uwierzytelniania za pomocą tożsamości zarządzanej przez system, określ właściwości ogólne opisane w poprzedniej sekcji i wykonaj następujące kroki.

  1. Przygotuj administratora Microsoft Entra dla swojego serwera w portalu Azure, jeśli jeszcze tego nie zrobiono. Administrator Microsoft Entra może być użytkownikiem Microsoft Entra lub grupą Microsoft Entra. Jeśli przydzielisz grupie tożsamość zarządzaną, przypisaną przez system, rolę administratora, pomiń kroki 3 i 4. Administrator będzie miał pełny dostęp do bazy danych.

  2. Utwórz użytkowników bazy danych ograniczonej dla tożsamości zarządzanej przypisanej przez system. Połącz się z magazynem danych, do lub z którego chcesz skopiować dane, przy użyciu takich narzędzi jak SSMS, za pomocą tożsamości Microsoft Entra, która ma co najmniej uprawnienie ALTER ANY USER. Uruchom następujący kod T-SQL.

    CREATE USER [your_resource_name] FROM EXTERNAL PROVIDER;
    
  3. Udziel przypisanej przez system tożsamości zarządzanej wymaganych uprawnień , tak jak zwykle dla użytkowników SQL i innych użytkowników. Uruchom poniższy kod lub zapoznaj się z więcej opcji tutaj. Jeśli chcesz załadować dane przy użyciu technologii PolyBase, zapoznaj się z wymaganymi uprawnieniami bazy danych.

    EXEC sp_addrolemember db_owner, [your_resource_name];
    
  4. Konfiguruj połączoną usługę Azure Synapse Analytics.

Przykład:

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SystemAssignedManagedIdentity"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Uwierzytelnianie przypisanej przez użytkownika tożsamości zarządzanej

Obszar roboczy fabryki danych lub usługi Synapse może być skojarzony z tożsamościami zarządzanymi przypisanymi przez użytkownika, które reprezentują zasób. Tej tożsamości zarządzanej można użyć do uwierzytelniania Azure Synapse Analytics. Wyznaczony zasób może uzyskiwać dostęp do danych i kopiować je z lub do magazynu danych przy użyciu tej tożsamości.

Aby użyć uwierzytelniania przy użyciu zarządzanej tożsamości przypisanej przez użytkownika, oprócz opisanych w poprzedniej sekcji właściwości ogólnych, określ następujące właściwości:

Właściwości Opis Wymagane
dane logowania Określ tożsamość zarządzaną przypisaną przez użytkownika jako obiekt poświadczeń. Tak

Należy również wykonać poniższe kroki:

  1. Przygotuj administratora Microsoft Entra dla swojego serwera w portalu Azure, jeśli jeszcze tego nie zrobiono. Administrator Microsoft Entra może być użytkownikiem Microsoft Entra lub grupą Microsoft Entra. Jeśli przyznasz grupie rolę administratora dla tożsamości zarządzanej przypisanej przez użytkownika, pomiń ten krok 3. Administrator będzie miał pełny dostęp do bazy danych.

  2. Tworzenie użytkowników bazy danych z restrykcjami dla przypisanej tożsamości zarządzanej przez użytkownika. Połącz się z magazynem danych, do lub z którego chcesz skopiować dane, przy użyciu takich narzędzi jak SSMS, za pomocą tożsamości Microsoft Entra, która ma co najmniej uprawnienie ALTER ANY USER. Uruchom następujący kod T-SQL.

    CREATE USER [your_resource_name] FROM EXTERNAL PROVIDER;
    
  3. Utwórz jedną lub wiele tożsamości zarządzanych przypisanych przez użytkownika i przyznaj tożsamości zarządzanej przypisanej przez użytkownika wymagane uprawnienia , tak jak zwykle dla użytkowników SQL i innych. Uruchom poniższy kod lub zapoznaj się z więcej opcji tutaj. Jeśli chcesz załadować dane przy użyciu technologii PolyBase, zapoznaj się z wymaganymi uprawnieniami bazy danych.

    EXEC sp_addrolemember db_owner, [your_resource_name];
    
  4. Przypisz jedną lub wiele tożsamości zarządzanych przez użytkownika do fabryki danych i utwórz poświadczenia dla każdej z tych tożsamości.

  5. Konfiguruj połączoną usługę Azure Synapse Analytics.

Przykład

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "UserAssignedManagedIdentity",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Starsza wersja

Te właściwości ogólne są obsługiwane w przypadku połączonej usługi Azure Synapse Analytics podczas stosowania Legacy wersji:

Właściwości Opis Wymagane
typ Właściwość type musi być ustawiona na AzureSqlDW. Tak
Parametry połączenia Określ informacje wymagane do połączenia z instancją Azure Synapse Analytics w celu właściwości connectionString.
Oznacz to pole jako element SecureString, aby przechowywać je bezpiecznie. Możesz również umieścić hasło/klucz jednostki usługi w Azure Key Vault, a jeśli używane jest uwierzytelnianie SQL, wyciągnij konfigurację password z connection string. Aby uzyskać więcej szczegółów, zobacz artykuł Przechowywanie poświadczeń w Azure Key Vault.
Tak
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska uruchomieniowego integracji Azure albo własnego środowiska uruchomieniowego integracji, jeśli magazyn danych znajduje się w sieci prywatnej. Jeśli nie zostanie to określone, zostanie użyta Azure Integration Runtime domyślna. Nie.

W przypadku różnych typów uwierzytelniania zapoznaj się z następującymi sekcjami dotyczącymi odpowiednio określonych właściwości i wymagań wstępnych:

Uwierzytelnianie SQL dla starszej wersji

Aby użyć uwierzytelniania SQL, określ właściwości ogólne opisane w poprzedniej sekcji.

Uwierzytelnianie podmiotu usługi dla starszej wersji

Aby użyć uwierzytelniania podmiotu usługi, oprócz właściwości ogólnych opisanych w poprzedniej sekcji, określ następujące właściwości:

Właściwości Opis Wymagane
IdentyfikatorPodmiotuUsługowego Określ identyfikator klienta aplikacji. Tak
servicePrincipalKey Określ klucz aplikacji. Oznacz to pole jako SecureString, aby przechowywać je bezpiecznie lub odwołaj się do sekretu przechowywanego w Azure Key Vault. Tak
dzierżawa Określ informacje o dzierżawie, takie jak nazwa domeny lub identyfikator dzierżawy, w którym znajduje się aplikacja. Pobierz go, umieszczając wskaźnik myszy w prawym górnym rogu portalu Azure. Tak
azureCloudType W przypadku uwierzytelniania za pomocą jednostki usługi określ typ środowiska chmury Azure, w którym zarejestrowano aplikację Microsoft Entra.
Dozwolone wartości to AzurePublic, AzureChina, AzureUsGovernment i AzureGermany. Domyślnie używane jest środowisko chmury obliczeniowej fabryki danych lub potoku Synapse.
Nie.

Należy również wykonać kroki opisane w temacie Uwierzytelnianie jednostki usługi, aby udzielić odpowiedniego uprawnienia.

Uwierzytelnianie zarządzanej tożsamości przypisanej przez system dla wersji starszej

Aby użyć uwierzytelniania tożsamości zarządzanej przypisanej przez system, wykonaj ten sam krok, który zaleca się w sekcji Uwierzytelnianie tożsamości zarządzanej przypisanej przez system.

Uwierzytelnianie zarządzanej tożsamości przez użytkownika dla starszej wersji

Aby użyć uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika, wykonaj ten sam krok co dla zalecanej wersji w sekcji Uwierzytelnianie tożsamości zarządzanej przypisanej przez użytkownika.

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 artykuł Zestawy danych.

Następujące właściwości są obsługiwane w przypadku zestawu danych Azure Synapse Analytics:

Właściwości Opis Wymagane
typ Właściwość type zestawu danych musi być ustawiona na AzureSqlDWTable. Tak
schemat Nazwa schematu. Nie dla źródła, Tak dla ujścia
tabela Nazwa tabeli/widoku. Nie dla źródła, Tak dla ujścia
tableName Nazwa tabeli/widoku z schematem bazy danych. Ta właściwość jest obsługiwana w celu zapewnienia kompatybilności z poprzednimi wersjami. W przypadku nowego obciążenia roboczego użyj elementów schema i table. Nie dla źródła, Tak dla ujścia

Przykład właściwości zestawu danych

{
    "name": "AzureSQLDWDataset",
    "properties":
    {
        "type": "AzureSqlDWTable",
        "linkedServiceName": {
            "referenceName": "<Azure Synapse Analytics linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "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 artykuł Pipelines (Potoki ). Ta sekcja zawiera listę właściwości obsługiwanych przez źródło i ujście Azure Synapse Analytics.

Azure Synapse Analytics jako źródło

Wskazówka

Aby wydajnie ładować dane z Azure Synapse Analytics przy użyciu partycjonowania danych, dowiedz się więcej na temat Równoległe kopiowanie z Azure Synapse Analytics.

Aby skopiować dane z Azure Synapse Analytics, ustaw właściwość type w źródle działania kopiowania na wartość SqlDWSource. Następujące właściwości są obsługiwane w sekcji Źródło działania kopiowania:

Właściwości Opis Wymagane
typ Właściwość type źródła działania kopiowania musi być ustawiona na SqlDWSource. Tak
sqlReaderQuery Użyj niestandardowego zapytania SQL, aby odczytać dane. Przykład: select * from MyTable. Nie.
sqlReaderStoredProcedureName Nazwa procedury składowanej, która odczytuje dane z tabeli źródłowej. Ostatnia instrukcja SQL musi być instrukcją SELECT w procedurze składowanej. Nie.
parametryProcedurySkładowanej Parametry procedury składowanej.
Dozwolone wartości to pary nazw lub wartości. Nazwy parametrów i wielkość liter w ich nazwach muszą być zgodne z nazwami i wielkością liter parametrów procedury składowanej.
Nie.
poziom izolacji Określa zachowanie blokowania transakcji dla źródła SQL. Dozwolone wartości to: ReadCommitted, ReadUncommitted, RepeatableRead, Serializable, Snapshot. Jeśli nie zostanie określony, zostanie użyty domyślny poziom izolacji bazy danych. Aby uzyskać więcej informacji, zobacz system.data.isolationlevel. Nie.
opcjePodziału Określa opcje partycjonowania danych używane do ładowania danych z Azure Synapse Analytics.
Dozwolone wartości to: Brak (wartość domyślna), PhysicalPartitionsOfTable i DynamicRange.
Po włączeniu opcji partycji (czyli nie None), stopień równoległości równoczesnego ładowania danych z Azure Synapse Analytics 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:
partitionColumnName Określ nazwę kolumny źródłowej o typie liczby całkowitej lub daty/czasu (int, smallint, bigint, date, smalldatetime, datetime, datetime2, lub datetimeoffset), która będzie używana do partycjonowania zakresu dla kopiowania równoległego. Jeśli nie zostanie określony, indeks lub klucz podstawowy tabeli jest wykrywany automatycznie i używany jako kolumna partycji.
Zastosuj, gdy opcja partycji to DynamicRange. Jeśli używasz zapytania do pobierania danych źródłowych, ustaw ?DfDynamicRangePartitionCondition w klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopiowanie równoległe z bazy danych SQL.
Nie.
partitionUpperBound Maksymalna wartość kolumny partycji dla podziału zakresu partycji. Ta wartość służy do decydowania o kroku partycji, a nie do filtrowania wierszy w tabeli. Wszystkie wiersze w tabeli lub wyniku zapytania zostaną częściowo podzielone i skopiowane. Jeśli wartość nie zostanie określona, działanie kopiowania automatycznie ją wykryje.
Zastosuj, gdy opcja partycji to DynamicRange. Aby zapoznać się z przykładem, zobacz sekcję Kopiowanie równoległe z bazy danych SQL.
Nie.
dolna granica partycji Minimalna wartość kolumny partycji dla podziału zakresu partycji. Ta wartość służy do decydowania o kroku partycji, a nie do filtrowania wierszy w tabeli. Wszystkie wiersze w tabeli lub wyniku zapytania zostaną częściowo podzielone i skopiowane. Jeśli wartość nie zostanie określona, działanie kopiowania automatycznie ją wykryje.
Zastosuj, gdy opcja partycji to DynamicRange. Aby zapoznać się z przykładem, zobacz sekcję Kopiowanie równoległe z bazy danych SQL.
Nie.

Zwróć uwagę na następujący punkt:

  • W przypadku używania procedury składowanej w źródle do pobierania danych należy pamiętać, że procedura składowana jest zaprojektowana jako zwracanie innego schematu po przekazaniu innej wartości parametru, może wystąpić błąd lub nieoczekiwany wynik podczas importowania schematu z interfejsu użytkownika lub kopiowania danych do bazy danych SQL z automatycznym tworzeniem tabeli.

Przykład: używanie zapytania SQL

"activities":[
    {
        "name": "CopyFromAzureSQLDW",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Synapse Analytics input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlDWSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Przykład: używanie procedury składowanej

"activities":[
    {
        "name": "CopyFromAzureSQLDW",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Synapse Analytics input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlDWSource",
                "sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
                "storedProcedureParameters": {
                    "stringData": { "value": "str3" },
                    "identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Przykładowa procedura składowana:

CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
    @stringData varchar(20),
    @identifier int
)
AS
SET NOCOUNT ON;
BEGIN
    select *
    from dbo.UnitTestSrcTable
    where dbo.UnitTestSrcTable.stringData != stringData
    and dbo.UnitTestSrcTable.identifier != identifier
END
GO

Azure Synapse Analytics jako ujście

potoki Azure Data Factory i Synapse obsługują trzy sposoby ładowania danych do Azure Synapse Analytics.

Najszybszym i najbardziej skalowalnym sposobem ładowania danych jest instrukcja COPY lub technologia PolyBase.

Aby skopiować dane do Azure Synapse Analytics, ustaw typ ujścia w działaniu kopiowania na wartość SqlDWSink. Następujące właściwości są obsługiwane w sekcji działania kopiowania odbiornika:

Właściwości Opis Wymagane
typ Właściwość type ujścia działania kopiowania musi być ustawiona na SqlDWSink. Tak
allowPolyBase Wskazuje, czy używać technologii PolyBase do ładowania danych do Azure Synapse Analytics. allowCopyCommand i allowPolyBase nie mogą być jednocześnie prawdziwe.

Zobacz sekcję Użyj program PolyBase do ładowania danych do sekcji Azure Synapse Analytics, aby uzyskać szczegółowe informacje o ograniczeniach i szczegółach.

Dozwolone wartości to True i False (wartość domyślna).
L.p.
Zastosuj podczas korzystania z PolyBase.
polyBaseSettings Grupa właściwości, które można określić, gdy allowPolybase właściwość jest ustawiona na wartość true. L.p.
Zastosuj podczas korzystania z PolyBase.
zezwólNaKopiowaniePolecenia Wskazuje, czy należy użyć instrukcji COPY w celu załadowania danych do Azure Synapse Analytics. allowCopyCommand i allowPolyBase nie mogą być jednocześnie prawdziwe.

Zobacz sekcję Używanie instrukcji COPY do ładowania danych do Azure Synapse Analytics, aby uzyskać informacje o ograniczeniach i szczegóły.

Dozwolone wartości to True i False (wartość domyślna).
L.p.
Zastosuj w przypadku korzystania z funkcji COPY.
kopiujUstawieniaPolecenia Grupa właściwości, które można określić, gdy allowCopyCommand właściwość jest ustawiona na wartość TRUE. L.p.
Zastosuj w przypadku korzystania z funkcji COPY.
writeBatchSize Liczba wierszy do wstawiania do tabeli SQL na partię.

Dozwolona wartość to liczba całkowita (liczba wierszy). Domyślnie usługa dynamicznie określa odpowiedni rozmiar partii na podstawie rozmiaru wiersza.
L.p.
Zastosuj w przypadku użycia operacji wstawiania zbiorczego.
writeBatchTimeout Czas oczekiwania na ukończenie operacji wstawiania, operacji upsert i procedury składowanej przed przekroczeniem limitu czasu.
Dozwolone wartości są dla przedziału czasu. Przykładem jest "00:30:00" przez 30 minut. Jeśli żadna wartość nie zostanie określona, limit czasu zostanie domyślnie określony na "00:30:00".
L.p.
Zastosuj w przypadku użycia operacji wstawiania zbiorczego.
preCopyScript Określ zapytanie SQL dla działania kopiowania, które ma zostać uruchomione przed zapisaniem danych w Azure Synapse Analytics w każdym uruchomieniu. Użyj tej właściwości, aby wyczyścić wstępnie załadowane dane. Nie.
opcjaTabeli Określa, czy automatycznie utworzyć tabelę ujścia, jeśli nie istnieje, na podstawie schematu źródłowego. Dozwolone wartości to: none (wartość domyślna), autoCreate. Nie.
wyłączZbieranieMetryk Usługa zbiera metryki, takie jak DWUs Azure Synapse Analytics, w celu optymalizacji wydajności kopiowania i udzielania zaleceń, które powodują dodatkowy dostęp do bazy danych master. Jeśli interesuje Cię to zachowanie, określ true , aby go wyłączyć. Nie (wartość domyślna to false)
maksymalnaLiczbaJednoczesnychPołączeń Górny limit połączeń współbieżnych nawiązanych z magazynem danych podczas przebiegu działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. Nie.
WriteBehavior Określ zachowanie zapisu dla działania kopiowania w celu załadowania danych do Azure Synapse Analytics.
Dozwolona wartość to Insert i Upsert. Domyślnie usługa używa wstawiania do ładowania danych.
Nie.
upsertSettings Określ grupę ustawień zachowania zapisu.
Zastosuj, gdy opcja WriteBehavior ma wartość Upsert.
Nie.
W obszarze upsertSettings:
klucze Określ nazwy kolumn dla unikalnej identyfikacji wierszy. Można użyć pojedynczego klucza lub serii kluczy. Jeśli nie zostanie określony, używany jest klucz podstawowy. Nie.
interimSchemaName Określ schemat tymczasowy do tworzenia tabeli tymczasowej. Uwaga: użytkownik musi mieć uprawnienia do tworzenia i usuwania tabeli. Domyślnie tabela tymczasowa będzie współdzielić ten sam schemat co tabela ujścia. Nie.

Przykład 1: Azure Synapse Analytics odbiornik

"sink": {
    "type": "SqlDWSink",
    "allowPolyBase": true,
    "polyBaseSettings":
    {
        "rejectType": "percentage",
        "rejectValue": 10.0,
        "rejectSampleValue": 100,
        "useTypeDefault": true
    }
}

Przykład 2: Upsertowanie danych

"sink": {
    "type": "SqlDWSink",
    "writeBehavior": "Upsert",
    "upsertSettings": {
        "keys": [
             "<column name>"
        ],
        "interimSchemaName": "<interim schema name>"
    },
}

Kopiowanie równoległe z Azure Synapse Analytics

Łącznik Azure Synapse Analytics 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.

Zrzut ekranu przedstawiający opcje partycji

Po włączeniu kopii partycjonowanej działanie kopiowania uruchamia zapytania równoległe względem źródła Azure Synapse Analytics w celu załadowania danych według partycji. Stopień przetwarzania równoległego jest kontrolowany przez ustawienie w ramach działania kopiowania parallelCopies. Jeśli na przykład ustawisz parallelCopies na cztery, usługa równoczesnie generuje i uruchamia cztery zapytania na podstawie określonej opcji partycji i ustawień, a każde zapytanie pobiera część danych z Azure Synapse Analytics.

Zaleca się włączenie kopiowania równoległego przy użyciu partycjonowania danych, szczególnie w przypadku ładowania dużej ilości danych z Azure Synapse Analytics. Poniżej przedstawiono sugerowane konfiguracje dla różnych scenariuszy. Podczas kopiowania danych do magazynu danych opartego na plikach zaleca się zapisywanie w folderze jako wielu plików (tylko określ nazwę folderu), w tym przypadku wydajność jest lepsza niż zapisywanie w jednym pliku.

Scenariusz Sugerowane ustawienia
Pełne ładowanie z dużej tabeli z fizycznymi partycjami. Opcja partycji: Fizyczne podziały tabeli.

Podczas wykonywania usługa automatycznie wykrywa partycje fizyczne i kopiuje dane według partycji.

Aby sprawdzić, czy tabela ma partycję fizyczną, czy nie, możesz odwołać się do tego zapytania.
Pełne ładowanie z dużej tabeli, bez partycji fizycznych, z zastosowaniem kolumny liczbowej całkowitej lub datetime do partycjonowania danych. Opcje partycji: dynamiczne partycjonowanie zakresu.
Kolumna partycji (opcjonalnie): określ kolumnę używaną do partycjonowania danych. Jeśli nie określono, zostanie użyta kolumna indeksu lub kolumna klucza podstawowego.
Górna granica partycji i dolna granica partycji (opcjonalnie): Określ, czy chcesz ustalić krok partycji. Nie dotyczy to filtrowania wierszy w tabeli. Wszystkie wiersze w tabeli zostaną podzielone na partycje i skopiowane. Jeśli nie zostaną określone, działanie kopiowania automatycznie wykryje wartości.

Jeśli na przykład kolumna partycji "ID" zawiera wartości z zakresu od 1 do 100, a dolna granica zostanie ustawiona na wartość 20, a górna granica to 80, z kopią równoległą jako 4, usługa pobiera dane według 4 partycji — identyfikatory w zakresie <=20, [21, 50], [51, 80] i >=81.
Załaduj dużą ilość danych przy użyciu zapytania niestandardowego, bez partycji fizycznych, natomiast z liczbą całkowitą lub kolumną date/datetime na potrzeby partycjonowania danych. Opcje partycji: dynamiczne partycjonowanie zakresu.
Zapytanie: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Kolumna partycji: określ kolumnę używaną do partycjonowania danych.
Górna granica partycji i dolna granica partycji (opcjonalnie): Określ, czy chcesz ustalić krok partycji. Nie jest to przeznaczone do filtrowania wierszy w tabeli, wszystkie wiersze w wyniku zapytania zostaną partycjonowane i skopiowane. Jeśli wartość nie zostanie określona, działanie kopiowania automatycznie ją wykryje.

Jeśli na przykład kolumna partycji "ID" zawiera wartości z zakresu od 1 do 100, a dolna granica zostanie ustawiona jako 20 i górna granica jako 80, z kopią równoległą jako 4, usługa pobiera dane według 4 partycji — identyfikatory w zakresie <=20, [21, 50], [51, 80] i >=81.

Poniżej przedstawiono więcej przykładowych zapytań dla różnych scenariuszy:
1. Wykonaj zapytanie względem całej tabeli:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
2. Kwerenda z tabeli z zaznaczeniem kolumny i dodatkowymi filtrami klauzuli where:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
3. Kwerenda z podzapytaniami:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
4. Kwerenda z partycją w zapytaniu podrzędnym:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Najlepsze rozwiązania dotyczące ładowania danych z opcją partycji:

  1. Wybierz charakterystyczną kolumnę jako kolumnę partycji (np. klucz podstawowy lub unikatowy klucz), aby uniknąć niesymetryczności danych.
  2. Jeśli tabela ma wbudowaną partycję, użyj opcji partycji "Partycje fizyczne tabeli", aby uzyskać lepszą wydajność.
  3. Jeśli używasz Azure Integration Runtime do kopiowania danych, możesz ustawić większe "Data Integration Units (DIU)" (>4), aby wykorzystać więcej zasobów obliczeniowych. Sprawdź odpowiednie scenariusze tam.
  4. "Stopień równoległości kopiowania" określa liczby partycji; ustawienie tej liczby zbyt wysoko może czasami obniżyć wydajność. Zaleca się ustawienie tej liczby jako (DIU lub liczba węzłów IR hostowanych lokalnie) * (od 2 do 4)."
  5. Uwaga: Azure Synapse Analytics może w danym momencie wykonać maksymalnie 32 zapytania; ustawienie zbyt dużej wartości dla "Stopień równoległości kopiowania" może spowodować ograniczenie przepustowości w usłudze Synapse.

Przykład: pełne ładowanie z dużej tabeli z partycjami fizycznymi

"source": {
    "type": "SqlDWSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

Przykład: zapytanie z dynamicznym podziałem na zakresy

"source": {
    "type": "SqlDWSource",
    "query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition 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>"
    }
}

Przykładowe zapytanie do sprawdzania partycji fizycznej

SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, c.name AS ColumnName, CASE WHEN c.name IS NULL THEN 'no' ELSE 'yes' END AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
LEFT JOIN sys.types AS y ON c.system_type_id = y.system_type_id
WHERE s.name='[your schema]' AND t.name = '[your table name]'

Jeśli tabela ma partycję fizyczną, zostanie wyświetlona wartość "HasPartition" jako "tak".

Użyj instrukcji COPY, aby załadować dane do Azure Synapse Analytics

Użycie instrukcji COPY to prosty i elastyczny sposób ładowania danych do Azure Synapse Analytics z wysoką przepływnością. Aby dowiedzieć się więcej, zobacz Zbiorcze ładowanie danych przy użyciu instrukcji COPY

  • Jeśli dane źródłowe są w Azure Blob lub Azure Data Lake Storage Gen2, a format jest zgodny z instrukcją COPY, można użyć czynności kopiowania, aby bezpośrednio wywołać instrukcję COPY, aby Azure Synapse Analytics mogło pobierać dane ze źródła. Aby uzyskać szczegółowe informacje, zobacz Kopiowanie bezpośrednie przy użyciu instrukcji COPY.
  • Jeśli źródłowy magazyn danych i format nie są pierwotnie obsługiwane przez instrukcję COPY, użyj funkcji kopiowania etapowego przy użyciu funkcji instrukcji COPY. Funkcja kopiowania etapowego zapewnia również lepszą przepływność. Automatycznie konwertuje dane na format zgodny z instrukcją COPY, przechowuje dane w usłudze Azure Blob Storage, a następnie wywołuje instrukcję COPY, aby załadować dane do Azure Synapse Analytics.

Wskazówka

W przypadku używania instrukcji COPY z Azure Integration Runtime obowiązująca wartość Data Integration Units (DIU) zawsze wynosi 2. Dostrajanie jednostek DIU nie wpływa na wydajność, ponieważ ładowanie danych z magazynu jest obsługiwane przez aparat Azure Synapse.

Bezpośrednie kopiowanie za pomocą polecenia COPY

Polecenie COPY w Azure Synapse Analytics obsługuje bezpośrednio Azure Blob Storage i Azure Data Lake Storage Gen2. Jeśli dane źródłowe spełniają kryteria opisane w tej sekcji, użyj instrukcji COPY, aby skopiować bezpośrednio ze źródłowego magazynu danych do Azure Synapse Analytics. W przeciwnym razie użyj kopiowania etapowego przy użyciu instrukcji COPY. Usługa sprawdza ustawienia i kończy się niepowodzeniem działania kopiowania, jeśli kryteria nie zostały spełnione.

  1. Źródłowa usługa powiązana i format mają następujące typy oraz metody uwierzytelniania.

    Obsługiwany typ magazynu danych źródłowych Obsługiwany format Obsługiwany typ uwierzytelniania źródłowego
    Azure Blob Tekst rozdzielany ogranicznikami Uwierzytelnianie klucza konta, uwierzytelnianie za pomocą sygnatury dostępu współdzielonego, uwierzytelnianie jednostki usługi (przy użyciu klucza usługi ServicePrincipalKey), uwierzytelnianie tożsamości zarządzanej przypisanej przez system
      Parkiet Uwierzytelnianie klucza konta, uwierzytelnianie za pomocą sygnatury dostępu współdzielonego
      ORK Uwierzytelnianie klucza konta, uwierzytelnianie za pomocą sygnatury dostępu współdzielonego
    Azure Data Lake Storage Gen2 Tekst rozdzielany ogranicznikami
    Parkiet
    ORK
    Uwierzytelnianie klucza konta, uwierzytelnianie jednostki usługi (przy użyciu klucza usługi ServicePrincipalKey), uwierzytelnianie sygnatury dostępu współdzielonego, uwierzytelnianie tożsamości zarządzanej przypisanej przez system

    Ważne

    • Korzystając z uwierzytelniania tożsamości zarządzanej dla połączonej usługi magazynu, zapoznaj się z wymaganymi konfiguracjami Azure Blob i Azure Data Lake Storage Gen2.
    • Jeśli Azure Storage jest skonfigurowany z punktem końcowym usługi sieci wirtualnej (VNet), musisz użyć uwierzytelniania tożsamości zarządzanej z włączoną funkcją "zezwalaj na zaufaną usługę Microsoft" na koncie magazynu. Odnieś się do Impact of using VNet Service Endpoints with Azure Storage.
  2. Ustawienia formatu są następujące:

    1. W przypadku Parquet: compression może być bez kompresji, Snappy lub GZip.
    2. Dla ORC: compression może być bez kompresji, zlib lub Snappy.
    3. W przypadku rozdzielanego tekstu:
      1. rowDelimiter jest jawnie ustawiana jako pojedynczy znak lub "\r\n", wartość domyślna nie jest obsługiwana.
      2. nullValue jest pozostawiony jako domyślny lub ustawiony na pusty ciąg ("").
      3. encodingName jest pozostawiony jako domyślny lub ustawiony na utf-8 lub utf-16.
      4. escapeChar musi być taka sama jak quoteChar, i nie jest pusta.
      5. skipLineCount jest pozostawiona jako domyślna lub ustawiona na 0.
      6. compression może być bez kompresji lub GZip.
  3. Jeśli źródłem jest folder, recursive w operacji kopiowania musi mieć ustawioną wartość true i wildcardFilename musi mieć * lub *.*.

  4. wildcardFolderPath, wildcardFilename (inne niż *lub *.*), modifiedDateTimeStart, modifiedDateTimeEnd, prefixenablePartitionDiscovery i additionalColumns nie są określone.

Następujące ustawienia instrukcji COPY są obsługiwane przez allowCopyCommand w działaniu kopiowania:

Właściwości Opis Wymagane
wartości domyślne Określa wartości domyślne dla każdej kolumny docelowej w Azure Synapse Analytics. Wartości domyślne we właściwości zastępują ograniczenie DOMYŚLNE ustawione w magazynie danych, a kolumna tożsamości nie może mieć wartości domyślnej. Nie.
dodatkoweOpcje Dodatkowe opcje, które zostaną przekazane do instrukcji COPY Azure Synapse Analytics bezpośrednio wewnątrz klauzuli "WITH" w instrukcji COPY. Podaj wartość zgodnie z potrzebami, aby dopasować się do wymagań instrukcji COPY. Nie.
"activities":[
    {
        "name": "CopyFromAzureBlobToSQLDataWarehouseViaCOPY",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "ParquetDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ParquetSource",
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                }
            },
            "sink": {
                "type": "SqlDWSink",
                "allowCopyCommand": true,
                "copyCommandSettings": {
                    "defaultValues": [
                        {
                            "columnName": "col_string",
                            "defaultValue": "DefaultStringValue"
                        }
                    ],
                    "additionalOptions": {
                        "MAXERRORS": "10000",
                        "DATEFORMAT": "'ymd'"
                    }
                }
            },
            "enableSkipIncompatibleRow": true
        }
    }
]

Kopiowanie etapowe przy użyciu instrukcji COPY

Jeśli dane źródłowe nie są natywnie zgodne z poleceniem COPY, włącz kopiowanie danych za pośrednictwem tymczasowego obiektu blob w Azure lub Azure Data Lake Storage Gen2 (nie może to być magazynowanie Azure Premium Storage). W takim przypadku usługa automatycznie konwertuje dane w celu spełnienia wymagań dotyczących formatu danych instrukcji COPY. Następnie wywołuje instrukcję COPY w celu załadowania danych do Azure Synapse Analytics. Na koniec czyści dane tymczasowe z pamięci. Zobacz Kopiowanie ze stagingu, aby uzyskać szczegółowe informacje na temat kopiowania danych za pomocą stagingu.

Aby użyć tej funkcji, utwórz połączoną usługę Azure Blob Storage lub Azure Data Lake Storage Gen2 przy użyciu klucza konta lub uwierzytelniania tożsamości zarządzanej przez system, która odnosi się do konta magazynu Azure jako magazynu tymczasowego.

Ważne

  • Korzystając z uwierzytelniania tożsamości zarządzanej dla usługi powiązanej w środowisku przejściowym, dowiedz się, jakie są wymagane konfiguracje dla Azure Blob i Azure Data Lake Storage Gen2. Musisz również udzielić uprawnień tożsamości zarządzanej obszaru roboczego Azure Synapse Analytics w Azure Blob Storage przejściowym lub na koncie Azure Data Lake Storage Gen2. Aby dowiedzieć się, jak udzielić tego uprawnienia, zobacz Udzielanie uprawnień tożsamości zarządzanej obszaru roboczego.
  • Jeśli tymczasowa pamięć Azure jest skonfigurowana z punktem końcowym usługi VNet, należy użyć uwierzytelniania tożsamości zarządzanej z włączoną funkcją "zezwalaj na zaufaną usługę Microsoft" na koncie magazynu, zapoznaj się z artykułem Wpływ korzystania z punktów końcowych usługi sieci wirtualnej z Azure Storage.

Ważne

Jeśli przejściowy Azure Storage jest skonfigurowany z zarządzanym prywatnym punktem końcowym i ma włączoną zaporę magazynu, musisz użyć uwierzytelniania tożsamości zarządzanej i przyznać uprawnienia Storage Blob Data Reader dla Synapse SQL Server, aby zapewnić, że będzie on mógł uzyskać dostęp do plików przygotowanych podczas operacji "COPY".

"activities":[
    {
        "name": "CopyFromSQLServerToSQLDataWarehouseViaCOPYstatement",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "SQLServerDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlSource",
            },
            "sink": {
                "type": "SqlDWSink",
                "allowCopyCommand": true
            },
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                }
            }
        }
    }
]

Ładowanie danych do Azure Synapse Analytics przy użyciu technologii PolyBase

Użycie PolyBase to wydajny sposób ładowania dużej ilości danych do Azure Synapse Analytics z wysoką przepływnością. Zobaczysz duży wzrost przepływności przy użyciu technologii PolyBase zamiast domyślnego mechanizmu BULKINSERT.

  • Jeśli dane źródłowe są w Azure blob lub Azure Data Lake Storage Gen2, a format jest zgodny z technologią PolyBase można użyć działania kopiowania, aby bezpośrednio wywołać program PolyBase, aby umożliwić Azure Synapse Analytics ściąganie danych ze źródła. Aby uzyskać szczegółowe informacje, zobacz Direct copy by using PolyBase (Kopiowanie bezpośrednie przy użyciu technologii PolyBase).
  • Jeśli źródłowy magazyn danych i format nie są pierwotnie obsługiwane przez PolyBase, użyj zamiast tego funkcji kopiowania etapowego za pomocą PolyBase. Funkcja kopiowania etapowego zapewnia również lepszą przepływność. Automatycznie konwertuje dane na format zgodny z technologią PolyBase, przechowuje dane w usłudze Azure Blob Storage, a następnie wywołuje program PolyBase w celu załadowania danych do Azure Synapse Analytics.

Wskazówka

Dowiedz się więcej na temat najlepszych rozwiązań dotyczących korzystania z technologii PolyBase. W przypadku korzystania z technologii PolyBase z Azure Integration Runtime skuteczne Data Integration Units (DIU) w przypadku bezpośredniego lub etapowego przechowywania w Synapse zawsze wynosi 2. Dostrajanie jednostki DIU nie wpływa na wydajność, ponieważ ładowanie danych z magazynu jest zasilane przez silnik Synapse.

Następujące ustawienia programu PolyBase są obsługiwane w zadaniu kopiowania polyBaseSettings:

Właściwości Opis Wymagane
rejectValue Określa liczbę lub procent wierszy, które można odrzucić przed niepowodzeniem zapytania.

Dowiedz się więcej o opcjach odrzucania programu PolyBase w sekcji Argumenty Utwórz tabelę zewnętrzną (Transact-SQL).

Dozwolone wartości to 0 (wartość domyślna), 1, 2 itd.
Nie.
typOdrzucenia Określa, czy opcja rejectValue jest wartością literału, czy wartością procentową.

Dozwolone wartości to Wartość (wartość domyślna) i Wartość procentowa.
Nie.
odrzućWartośćPróbki Określa liczbę wierszy do pobrania przed ponownym obliczeniu wartości procentowej odrzuconych wierszy przez program PolyBase.

Dozwolone wartości to 1, 2 itd.
Tak, jeśli parametr rejectType ma wartość procentową.
useTypeDefault Określa sposób obsługi brakujących wartości w rozdzielanych plikach tekstowych, gdy program PolyBase pobiera dane z pliku tekstowego.

Dowiedz się więcej o tej właściwości w sekcji Argumenty w Utwórz format pliku zewnętrznego (Transact-SQL).

Dozwolone wartości to True i False (wartość domyślna).

Nie.

Kopiowanie bezpośrednie przy użyciu technologii PolyBase

Azure Synapse Analytics PolyBase obsługuje Azure Blob i Azure Data Lake Storage Gen2. Jeśli dane źródłowe spełniają kryteria opisane w tej sekcji, użyj programu PolyBase, aby skopiować bezpośrednio ze źródłowego magazynu danych do Azure Synapse Analytics. W przeciwnym razie użyj kopiowania etapowego przy użyciu technologii PolyBase.

Jeśli wymagania nie zostaną spełnione, usługa sprawdza ustawienia i automatycznie wraca do mechanizmu BULKINSERT na potrzeby przenoszenia danych.

  1. Źródłowa usługa połączenia ma następujące typy i metody uwierzytelniania:

    Obsługiwany typ magazynu danych źródłowych Obsługiwany typ uwierzytelniania źródłowego
    Azure Blob Uwierzytelnianie za pomocą klucza konta, uwierzytelnianie tożsamości zarządzanej przypisanej przez system
    Azure Data Lake Storage Gen2 Uwierzytelnianie za pomocą klucza konta, uwierzytelnianie tożsamości zarządzanej przypisanej przez system

    Ważne

    • Korzystając z uwierzytelniania tożsamości zarządzanej dla połączonej usługi magazynu, zapoznaj się z wymaganymi konfiguracjami Azure Blob i Azure Data Lake Storage Gen2.
    • Jeśli Azure Storage jest skonfigurowany z punktem końcowym usługi sieci wirtualnej (VNet), musisz użyć uwierzytelniania tożsamości zarządzanej z włączoną funkcją "zezwalaj na zaufaną usługę Microsoft" na koncie magazynu. Odnieś się do Impact of using VNet Service Endpoints with Azure Storage.
  2. Format danych źródłowych to Parquet, ORC lub tekst rozdzielany, z następującymi konfiguracjami:

    1. Ścieżka folderu nie zawiera filtru z symbolami wieloznacznymi.
    2. Nazwa pliku jest pusta lub wskazuje pojedynczy plik. Jeśli określisz nazwę pliku z symbolami wieloznacznymi w działaniu kopiowania, może to być tylko * lub *.*.
    3. rowDelimiter wartość domyślna, \n, \r\n lub \r.
    4. nullValue jest pozostawiona jako domyślna lub ustawiona na pusty ciąg ("") i treatEmptyAsNull jest pozostawiona jako domyślna lub ustawiona na true.
    5. encodingName jest pozostawiona jako domyślna lub ustawiona na utf-8.
    6. quoteChar, escapeChari skipLineCount nie są określone. Technologia PolyBase umożliwia pomijanie wiersza nagłówka, który można skonfigurować jako firstRowAsHeader.
    7. compression może być bez kompresji, GZip lub Deflate.
  3. Jeśli źródło jest folderem, w działaniu kopiowania wartość recursive musi być ustawiona na true.

  4. wildcardFolderPath, , wildcardFilenamemodifiedDateTimeStartmodifiedDateTimeEndprefixenablePartitionDiscoveryi additionalColumns nie są określone.

Uwaga

Jeśli źródło jest folderem, należy pamiętać, że PolyBase pobiera pliki z folderu i wszystkich jego podfolderów i nie pobiera danych z plików, dla których nazwa pliku zaczyna się od podkreślnika (_) lub kropki (.), zgodnie z dokumentacją pod argumentem LOCATION.

"activities":[
    {
        "name": "CopyFromAzureBlobToSQLDataWarehouseViaPolyBase",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "ParquetDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ParquetSource",
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                }
            },
            "sink": {
                "type": "SqlDWSink",
                "allowPolyBase": true
            }
        }
    }
]

Kopiowanie etapowe przy użyciu technologii PolyBase

Jeśli dane źródłowe nie są natywnie zgodne z technologią PolyBase, włącz kopiowanie danych za pośrednictwem tymczasowego obiektu Azure Blob lub Azure Data Lake Storage Gen2 (nie może to być Azure Premium Storage). W takim przypadku usługa automatycznie konwertuje dane, aby spełniały wymagania dotyczące formatu danych programu PolyBase. Następnie wywołuje program PolyBase w celu załadowania danych do Azure Synapse Analytics. Na koniec czyści dane tymczasowe z pamięci. Zobacz Kopiowanie ze stagingu, aby uzyskać szczegółowe informacje na temat kopiowania danych za pomocą stagingu.

Aby użyć tej funkcji, utwórz połączoną usługę Azure Blob Storage lub Azure Data Lake Storage Gen2 za pomocą uwierzytelniania przy użyciu klucza konta lub tożsamości zarządzanej, które odwołują się do konta magazynu Azure jako tymczasowego magazynu.

Ważne

  • Korzystając z uwierzytelniania tożsamości zarządzanej dla usługi powiązanej w środowisku przejściowym, dowiedz się, jakie są wymagane konfiguracje dla Azure Blob i Azure Data Lake Storage Gen2. Musisz również udzielić uprawnień tożsamości zarządzanej obszaru roboczego Azure Synapse Analytics w Azure Blob Storage przejściowym lub na koncie Azure Data Lake Storage Gen2. Aby dowiedzieć się, jak udzielić tego uprawnienia, zobacz Udzielanie uprawnień tożsamości zarządzanej obszaru roboczego.
  • Jeśli tymczasowa pamięć Azure jest skonfigurowana z punktem końcowym usługi VNet, należy użyć uwierzytelniania tożsamości zarządzanej z włączoną funkcją "zezwalaj na zaufaną usługę Microsoft" na koncie magazynu, zapoznaj się z artykułem Wpływ korzystania z punktów końcowych usługi sieci wirtualnej z Azure Storage.

Ważne

Jeśli przejściowy Azure Storage jest skonfigurowany z zarządzanym prywatnym punktem końcowym i ma włączoną zaporę magazynu, musisz użyć uwierzytelniania z użyciem tożsamości zarządzanej i przyznać uprawnienia roli Storage Blob Data Reader serwerowi Synapse SQL, aby zapewnić dostęp do plików tymczasowych podczas ładowania za pomocą PolyBase.

"activities":[
    {
        "name": "CopyFromSQLServerToSQLDataWarehouseViaPolyBase",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "SQLServerDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlSource",
            },
            "sink": {
                "type": "SqlDWSink",
                "allowPolyBase": true
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                }
            }
        }
    }
]

Najlepsze rozwiązania dotyczące korzystania z technologii PolyBase

** Poniższe sekcje zawierają najlepsze praktyki, oprócz tych praktyk wymienionych w Najlepsze praktyki dotyczące Azure Synapse Analytics.

Wymagane uprawnienie bazy danych

Aby można było używać technologii PolyBase, użytkownik, który ładuje dane do Azure Synapse Analytics musi mieć uprawnienie "CONTROL" w docelowej bazie danych. Jednym ze sposobów osiągnięcia tego celu jest dodanie użytkownika jako członka roli db_owner . Dowiedz się, jak to zrobić w Omówienie Azure Synapse Analytics.

Limity rozmiaru wiersza i typu danych

Obciążenia programu PolyBase są ograniczone do wierszy mniejszych niż 1 MB. Nie można go użyć do załadowania do VARCHR(MAX), NVARCHAR(MAX) lub VARBINARY(MAX). Aby uzyskać więcej informacji, zobacz Azure Synapse Analytics limity pojemności usługi.

Jeśli dane źródłowe mają wiersze większe niż 1 MB, możesz podzielić tabele źródłowe w pionie na kilka małych. Upewnij się, że największy rozmiar każdego wiersza nie przekracza limitu. Mniejsze tabele można następnie załadować przy użyciu technologii PolyBase i scalić je w Azure Synapse Analytics.

Alternatywnie, dla danych z tak szerokimi kolumnami, można załadować dane bez użycia PolyBase, wyłączając ustawienie „zezwalaj na PolyBase”.

Azure Synapse Analytics klasa zasobów

Aby uzyskać najlepszą możliwą przepływność, przypisz większą klasę zasobów do użytkownika, który ładuje dane do Azure Synapse Analytics za pośrednictwem technologii PolyBase.

Rozwiązywanie problemów z programem PolyBase

Ładowanie do kolumny dziesiętnej

Jeśli dane źródłowe są w formacie tekstowym lub w innych magazynach niezgodnych z PolyBase (przy użyciu kopii etapowej i PolyBase), i zawierają pustą wartość do załadowania do dziesiętnej kolumny Azure Synapse Analytics, może wystąpić następujący błąd:

ErrorCode=FailedDbOperation, ......HadoopSqlException: Error converting data type VARCHAR to DECIMAL.....Detailed Message=Empty string can't be converted to DECIMAL.....

Rozwiązaniem jest usunięcie zaznaczenia opcji "Użyj domyślnego typu" i ustawienie jej na wartość 'fałsz' w ustawieniach ujścia działania kopiowania —> PolyBase. "USE_TYPE_DEFAULT" to natywna konfiguracja programu PolyBase, która określa sposób obsługi brakujących wartości w rozdzielanych plikach tekstowych, gdy technologia PolyBase pobiera dane z pliku tekstowego.

Sprawdź właściwość tableName w Azure Synapse Analytics

W poniższej tabeli przedstawiono przykłady sposobu określania właściwości tableName w zestawie danych JSON. Przedstawia kilka kombinacji nazw schematów i tabel.

Schemat bazy danych Nazwa tabeli tableName , właściwość JSON
dbo MyTable MyTable lub dbo.MyTable lub [dbo].[MyTable]
dbo1 MyTable dbo1.MyTable lub [dbo1].[MyTable]
dbo My.Table [My.Table] lub [dbo].[My.Table]
dbo1 My.Table [dbo1]. [My.Table]

Jeśli zostanie wyświetlony następujący błąd, problem może wynikać z wartości określonej dla właściwości tableName. Zapoznaj się z poprzednią tabelą, aby uzyskać prawidłowy sposób określania wartości właściwości tableName JSON.

Type=System.Data.SqlClient.SqlException,Message=Invalid object name 'stg.Account_test'.,Source=.Net SqlClient Data Provider

Kolumny z wartościami domyślnymi

Obecnie funkcja PolyBase akceptuje tylko tę samą liczbę kolumn co w tabeli docelowej. Przykładem jest tabela z czterema kolumnami, w których jedna z nich jest definiowana z wartością domyślną. Dane wejściowe nadal muszą mieć cztery kolumny. Zestaw danych wejściowych z trzema kolumnami zwraca błąd podobny do następującego komunikatu:

All columns of the table must be specified in the INSERT BULK statement.

Wartość NULL jest specjalną formą wartości domyślnej. Jeśli kolumna jest nulowalna, dane wejściowe w blobie dla tej kolumny mogą być puste. Nie może jednak brakować go w wejściowym zestawie danych. Program PolyBase wstawia wartość NULL dla brakujących wartości w Azure Synapse Analytics.

Dostęp do pliku zewnętrznego nie powiódł się

Jeśli zostanie wyświetlony następujący błąd, upewnij się, że używasz uwierzytelniania poprzez tożsamość zarządzaną i że tożsamość zarządzana obszaru roboczego Azure Synapse ma przyznane uprawnienia Czytelnika danych usługi Storage Blob.

Job failed due to reason: at Sink '[SinkName]': shaded.msdataflow.com.microsoft.sqlserver.jdbc.SQLServerException: External file access failed due to internal error: 'Error occurred while accessing HDFS: Java exception raised on call to HdfsBridge_IsDirExist. Java exception message:\r\nHdfsBridge::isDirExist 

Aby uzyskać więcej informacji, zobacz Udzielanie uprawnień tożsamości zarządzanej po utworzeniu obszaru roboczego.

Właściwości odwzorowania przepływu danych

Podczas przekształcania danych w ramach mapowania przepływu danych można odczytywać i zapisywać dane w tabelach usługi Azure Synapse Analytics. Aby uzyskać więcej informacji, zobacz przekształcanie źródła i przekształcanie ujścia w przepływach danych mapowania.

Przekształcanie źródła

Ustawienia specyficzne dla Azure Synapse Analytics są dostępne na karcie Source Options przekształcenia źródłowego.

Dane wejściowe Wybierz, czy wskazujesz źródło w tabeli (odpowiednik Select * from <table-name>) lub wprowadź niestandardowe zapytanie SQL.

Enable Staging Zdecydowanie zaleca się użycie tej opcji w obciążeniach produkcyjnych ze źródłami Azure Synapse Analytics. Po wykonaniu działania przepływu danych ze źródłami Azure Synapse Analytics z przepływu pracy zostanie wyświetlony monit o wybranie konta magazynu lokalizacji tymczasowej, które będzie używane do ładowania danych etapowych. Jest to najszybszy mechanizm ładowania danych z Azure Synapse Analytics.

  • Korzystając z uwierzytelniania tożsamości zarządzanej dla połączonej usługi magazynu, zapoznaj się z wymaganymi konfiguracjami Azure Blob i Azure Data Lake Storage Gen2.
  • Jeśli Azure Storage jest skonfigurowany z punktem końcowym usługi sieci wirtualnej (VNet), musisz użyć uwierzytelniania tożsamości zarządzanej z włączoną funkcją "zezwalaj na zaufaną usługę Microsoft" na koncie magazynu. Odnieś się do Impact of using VNet Service Endpoints with Azure Storage.
  • Jeśli używasz Azure Synapse serverless jako źródła puli SQL, włączenie inscenizacji nie jest obsługiwane.

Zapytanie: w przypadku wybrania pozycji Zapytanie w polu wejściowym wprowadź zapytanie SQL dla źródła. To ustawienie zastępuje dowolną tabelę wybraną w zestawie danych. Klauzule Order By nie są obsługiwane w tym miejscu, ale można ustawić pełną instrukcję SELECT FROM. Można również użyć funkcji tabeli zdefiniowanych przez użytkownika. select * from udfGetData() to UDF w SQL, która zwraca tabelę. To zapytanie utworzy tabelę źródłową, której można użyć w przepływie danych. Korzystanie z zapytań to również doskonały sposób na zmniejszenie liczby wierszy na potrzeby testowania lub wyszukiwania.

Przykład sql: Select * from MyTable where customerId > 1000 and customerId < 2000

Rozmiar partii: wprowadź rozmiar partii, aby podzielić duże dane na odczyty. W przepływach danych to ustawienie będzie używane do ustawiania buforowania kolumn platformy Spark. Jest to pole opcji, które będzie używać wartości domyślnych platformy Spark, jeśli pozostanie puste.

Poziom izolacji: domyślny poziom izolacji dla źródeł SQL w przepływie mapowania danych to "Read Uncommitted". W tym miejscu można zmienić poziom izolacji na jedną z następujących wartości:

  • Odczyt zatwierdzony
  • Odczyt w stanie niezatwierdzonym
  • Powtarzalny odczyt
  • Serializowalny
  • Brak (ignoruj poziom izolacji)

Poziom izolacji

Przekształcenie ujścia

Ustawienia specyficzne dla Azure Synapse Analytics są dostępne na karcie Settings przekształcenia ujścia.

Metoda aktualizacji: określa, jakie operacje są dozwolone w miejscu docelowym bazy danych. Ustawieniem domyślnym jest zezwalanie tylko na wstawianie. Aby zaktualizować, wstawić lub usunąć wiersze, należy przekształcić wiersze za pomocą alter-row, aby je oznaczyć do tych akcji. W przypadku aktualizacji, operacji "upsert" i usuwania należy ustawić jedną lub więcej kolumn klucza w celu określenia, który wiersz ma zostać zmieniony.

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.
  • Utwórz ponownie: tabela zostanie usunięta i utworzona ponownie. Wymagane w przypadku dynamicznego tworzenia nowej tabeli.
  • Obcinanie: wszystkie wiersze z tabeli docelowej zostaną usunięte.

Enable staging: Umożliwia to ładowanie do Azure Synapse Analytics pul SQL przy użyciu polecenia copy i jest zalecane w przypadku większości ujść usługi Synapse. Magazyn przejściowy jest skonfigurowany w działania Execute Data Flow.

  • Korzystając z uwierzytelniania tożsamości zarządzanej dla połączonej usługi magazynu, zapoznaj się z wymaganymi konfiguracjami Azure Blob i Azure Data Lake Storage Gen2.
  • Jeśli Azure Storage jest skonfigurowany z punktem końcowym usługi sieci wirtualnej (VNet), musisz użyć uwierzytelniania tożsamości zarządzanej z włączoną funkcją "zezwalaj na zaufaną usługę Microsoft" na koncie magazynu. Odnieś się do Impact of using VNet Service Endpoints with Azure Storage.

Rozmiar partii: określa liczbę wierszy zapisywanych w każdym zasobniku. Większe rozmiary partii zwiększają kompresję i optymalizację pamięci, ale istnieje ryzyko wystąpienia błędów pamięci podczas buforowania danych.

Użyj schematu docelowego: domyślnie zostanie utworzona tymczasowa tabela w schemacie docelowym jako etap pośredni. Alternatywnie można usunąć zaznaczenie opcji Użyj schematu ujścia, a zamiast tego w obszarze Wybierz schemat bazy danych użytkownika określ nazwę schematu, w którym usługa Data Factory utworzy 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.

Zrzut ekranu przedstawiający przepływ danych

Skrypty wstępne i końcowe SQL: Wprowadź wielowierszowe skrypty SQL, które będą wykonywane przed (przetwarzaniem wstępnym) i po (przetwarzaniu końcowym), gdy dane są zapisywane w bazie danych docelowej.

Zrzut ekranu przedstawiający skrypty wstępnego i końcowego przetwarzania SQL w przepływie danych Azure Synapse Analytics.

Wskazówka

  1. Zaleca się podzielenie pojedynczych skryptów wsadowych z wieloma poleceniami na wiele partii.
  2. 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

Obsługa wierszy z błędami

Podczas zapisywania w Azure Synapse Analytics niektóre wiersze danych mogą zakończyć się niepowodzeniem z powodu ograniczeń ustawionych przez miejsce docelowe. Niektóre typowe błędy to:

  • Ciąg lub dane binarne zostaną skrócone w tabeli
  • Nie można wstawić wartości NULL do kolumny
  • Konwersja nie powiodła się podczas konwertowania wartości na typ danych

Domyślnie uruchomienie przepływu danych zakończy się niepowodzeniem przy pierwszym napotkanym błędzie. Możesz wybrać opcję Kontynuuj przy błędzie , który umożliwia ukończenie przepływu danych, nawet jeśli poszczególne wiersze zawierają błędy. Usługa udostępnia różne opcje obsługi tych wierszy błędów.

Zatwierdzenie transakcji: wybierz, czy dane są zapisywane w jednej transakcji, czy w partiach. Pojedyncza transakcja zapewni lepszą wydajność i żadne zapisane dane nie będą widoczne dla innych do momentu zakończenia transakcji. Transakcje wsadowe mają gorszą wydajność, ale są odpowiednie dla dużych zestawów danych.

Wyprowadzanie odrzuconych danych: Jeśli jest włączone, możesz wyeksportować wiersze błędów do pliku CSV do konta Azure Blob Storage lub Azure Data Lake Storage Gen2 według wyboru. Spowoduje to zapisanie wierszy błędów z trzema dodatkowymi kolumnami: operacją SQL, taką jak INSERT lub UPDATE, kodem błędu przepływu danych i komunikatem o błędzie w wierszu.

Zgłoś powodzenie w przypadku błędu: Jeśli jest włączone, przepływ danych zostanie oznaczony jako zakończony powodzeniem, nawet jeśli zostaną znalezione wiersze błędów.

Diagram przedstawiający obsługę wierszy błędów w przekształceniu ujścia przepływu danych mapowania.

Właściwości czynności wyszukiwania

Aby dowiedzieć się więcej o właściwościach, sprawdź działanie wyszukiwania.

Właściwości działania GetMetadata

Aby dowiedzieć się więcej o właściwościach, sprawdź działanie GetMetadata

Mapowanie typów danych dla Azure Synapse Analytics

Podczas kopiowania danych z Azure Synapse Analytics do lub z niego, używane są następujące mapowania typów danych Azure Synapse Analytics na tymczasowe typy danych Azure Data Factory. Te mapowania są również używane podczas kopiowania danych z lub do Azure Synapse Analytics przy użyciu potoków usługi Synapse, ponieważ potoki implementują również Azure Data Factory w ramach Azure Synapse. Zajrzyj do mapowania schematów i typów danych, aby dowiedzieć się, jak proces Kopiowania mapuje schemat źródłowy i typ danych na miejsce docelowe.

Wskazówka

Zapoznaj się z artykułem Table data types in Azure Synapse Analytics, który opisuje typy danych obsługiwane przez Azure Synapse Analytics oraz obejścia dla typów danych, które nie są obsługiwane.

typ danych Azure Synapse Analytics Typ danych tymczasowych usługi Data Factory
bigint Int64
binarny Bajt[]
bit logiczny
char Ciąg, Znak[]
data DateTime
Data i czas DateTime
datetime2 DateTime
Datetimeoffset DateTimeOffset
Dziesiętne Dziesiętne
Atrybut FILESTREAM (typ varbinary(max)) Bajt[]
float Podwójna precyzja
obraz Bajt[]
int Int32
pieniądze Dziesiętne
nchar Ciąg, Znak[]
liczbowe Dziesiętne
nvarchar Ciąg, Znak[]
rzeczywiste Pojedynczy
rowversion Bajt[]
smalldatetime DateTime
smallint Int16
smallmoney Dziesiętne
czas przedział_czasu
tinyint Byte
unikalny identyfikator Identyfikator GUID
varbinary Bajt[]
varchar Ciąg, Znak[]

Uaktualnianie wersji Azure Synapse Analytics

Aby uaktualnić wersję Azure Synapse Analytics, na stronie Edytuj połączoną usługę wybierz Recommended w obszarze Version i skonfiguruj połączoną usługę, odwołując się do właściwości usługi Linked dla zalecanej wersji.

W poniższej tabeli przedstawiono różnice między Azure Synapse Analytics przy użyciu zalecanej a starszej wersji.

Rekomendowana wersja Starsza wersja
Obsługuj TLS 1.3 za pośrednictwem encrypt jako strict. Protokół TLS 1.3 nie jest obsługiwany.

Aby otrzymać listę magazynów danych obsługiwanych jako źródła i ujścia przez Copy Activity, zobacz obsługiwane magazyny danych i formaty.