Udostępnij za pośrednictwem


Konfigurowanie usługi Azure SQL Database w działaniu kopiowania

W tym artykule opisano sposób używania działania kopiowania w potoku danych do kopiowania danych z i do usługi Azure SQL Database.

Obsługiwana konfiguracja

Aby skonfigurować każdą zakładkę w działaniu kopiowania, przejdź do odpowiednich sekcji poniżej.

Ogólne

Zapoznaj się z ustawieniami ogólnymi i, aby uzyskać wskazówki dotyczące konfigurowania karty ustawień ogólnych.

Źródło

Następujące właściwości są obsługiwane dla usługi Azure SQL Database na karcie źródła działania kopiowania.

Zrzut ekranu przedstawiający zakładkę źródłową i listę właściwości.

Następujące właściwości są wymagane:

  • Typ magazynu danych: wybierz External.
  • połączenie: wybierz połączenie usługi Azure SQL Database z listy połączeń. Jeśli połączenie nie istnieje, utwórz nowe połączenie usługi Azure SQL Database, wybierając pozycję Nowy.
  • Typ połączenia: wybierz Azure SQL Database.
  • tabela: wybierz tabelę w bazie danych z listy rozwijanej. Możesz też sprawdzić Edytuj, aby ręcznie wprowadzić nazwę tabeli.
  • Wyświetl dane: Wybierz Podgląd danych, aby zobaczyć dane w tabeli.

W obszarze Advancedmożna określić następujące pola:

  • Użyjzapytań: możesz wybrać tabelę, zapytanie, lub procedurę składowaną. Poniższa lista zawiera opis konfiguracji każdego ustawienia:

    • Tabela: odczytaj dane z tabeli, którą określiłeś w Tabela, jeśli wybierzesz ten przycisk.

    • Zapytanie: określ niestandardowe zapytanie SQL do odczytu danych. Przykładem jest select * from MyTable. Możesz też wybrać ikonę ołówka, aby edytować w edytorze kodu.

      Zrzut ekranu przedstawiający wybieranie zapytania.

    • Procedura Składowana: Użyj procedury składowanej, aby odczytać dane z tabeli źródłowej. Ostatnią instrukcją SQL w procedurze składowanej musi być instrukcja SELECT.

      • Nazwa procedury składowanej: wybierz procedurę składowaną lub podaj jej nazwę ręcznie podczas zaznaczania pola wyboru Edytuj, aby odczytywać dane z tabeli źródłowej.

      • parametry procedury składowanej: określ wartości parametrów procedury składowanej. Dozwolone wartości to pary nazw lub wartości. Nazwy i pisownia parametrów muszą być zgodne z nazwami i pisownią parametrów procedury składowanej.

        Zrzut ekranu przedstawiający ustawienia procedury składowanej.

  • limit czasu zapytania (w minutach): określ limit czasu wykonywania polecenia zapytania, wartość domyślna to 120 minut. Jeśli parametr jest ustawiony dla tej właściwości, dozwolone wartości to przedział czasu, taki jak "02:00:00" (120 minut).

    zrzut ekranu przedstawiający ustawienia limitu czasu zapytania.

  • poziom izolacji: określa zachowanie blokowania transakcji dla źródła SQL. Dozwolone wartości to: None, ReadCommitted, ReadUncommitted, RepeatableRead, Serializablelub Snapshot. Jeśli nie zostanie określony, zostanie użyty poziom izolacji None. Aby uzyskać więcej informacji, zobacz IsolationLevel Enum.

    Zrzut ekranu przedstawiający ustawienia poziomu izolacji.

  • Opcja partycji: Określ opcje partycjonowania danych używane do ładowania danych z usługi Azure SQL Database. Dozwolone wartości to: Brak (wartość domyślna), fizyczne partycje tabelii zakres dynamiczny. Po włączeniu opcji partycji (czyli nie None), stopień równoległości ładowania danych z usługi Azure SQL Database jest kontrolowany przez ustawienie kopiowania równoległego w operacji kopiowania.

    Zrzut ekranu przedstawiający ustawienia opcji Partycji.

    • Brak: wybierz to ustawienie, aby nie używać partycji.

    • fizyczne partycje tabeli: w przypadku korzystania z partycji fizycznej kolumna partycji i mechanizm są automatycznie określane na podstawie fizycznej definicji tabeli.

    • Zakres dynamiczny: Kiedy używasz zapytania z włączoną równoległością, konieczne jest użycie parametru partycjonowania zakresu (?DfDynamicRangePartitionCondition). Przykładowe zapytanie: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.

      • Nazwa kolumny partycji: Określ nazwę kolumny źródłowej o typie liczba całkowita lub data/czas (int, smallint, bigint, date, smalldatetime, datetime, datetime2lub datetimeoffset) używanej do partycjonowania zakresu na potrzeby kopiowania równoległego. Jeśli nie zostanie określony, indeks lub klucz podstawowy tabeli jest automatycznie wykrywany i używany jako kolumna partycji.
      • Górna granica partycji: określ maksymalną 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 są partycjonowane i kopiowane.
      • Partition lower bound: Określ minimalną 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 są partycjonowane i kopiowane.
  • dodatkowe kolumny: dodaj więcej kolumn danych, aby przechowywać ścieżkę względną plików źródłowych lub wartość statyczną. Wyrażenie jest obsługiwane w przypadku tego drugiego. Aby uzyskać więcej informacji, zobacz Dodawanie dodatkowych kolumn podczas kopiowania.

Cel

Następujące właściwości są obsługiwane dla usługi Azure SQL Database na karcie Docelowej działania kopiowania.

zrzut ekranu przedstawiający zakładkę Miejsce docelowe.

Następujące właściwości są wymagane:

  • Typ magazynu danych: Wybierz Zewnętrzny.
  • połączenie: wybierz połączenie usługi Azure SQL Database z listy połączeń. Jeśli połączenie nie istnieje, utwórz nowe połączenie usługi Azure SQL Database, wybierając pozycję Nowy.
  • Typ połączenia: wybierz Azure SQL Database.
  • tabela: wybierz tabelę w bazie danych z listy rozwijanej. Możesz też sprawdzić Edytuj, aby ręcznie wprowadzić nazwę tabeli.
  • Podgląd danych: Wybierz Podgląd danych, aby zobaczyć podgląd danych w swojej tabeli.

W obszarze Advancedmożna określić następujące pola:

  • zachowanie zapisu: definiuje zachowanie zapisu, gdy źródłem są pliki z magazynu danych opartego na plikach. Możesz wybrać Wstaw, Upsert lub Procedura składowana.

    zrzut ekranu przedstawiający kartę zachowania zapisu.

    • Wstaw: wybierz tę opcję, jeśli dane źródłowe mają wstawki.

    • Upsert: Wybierz tę opcję, jeśli dane źródłowe zawierają zarówno nowe wstawki, jak i aktualizacje.

      • Użyj bazy danych TempDB: określ, czy używać globalnej tabeli tymczasowej, czy stałej tabeli fizycznej jako tabeli pośredniej dla operacji upsert. Domyślnie usługa używa globalnej tabeli tymczasowej jako tabeli pośredniej, a to pole wyboru jest zaznaczone.

        Zrzut ekranu przedstawiający zaznaczenie opcji Użyj TempDB.

      • wybierz schemat bazy danych użytkownika: jeśli pole wyboru Użyj bazy danych TempDB nie jest zaznaczone, określ schemat tymczasowy do utworzenia tabeli tymczasowej, jeśli jest używana tabela fizyczna.

        Notatka

        Musisz mieć uprawnienia do tworzenia i usuwania tabel. Domyślnie tabela tymczasowa będzie współdzielić ten sam schemat co tabela docelowa.

        Zrzut ekranu przedstawiający brak zaznaczenia opcji Użyj bazy danych TempDB.

      • Kolumny klucza: Określ nazwy kolumn dla jednoznacznej identyfikacji wierszy. Można użyć pojedynczego klucza lub serii kluczy. Jeśli nie zostanie określony, używany jest klucz podstawowy.

    • procedura składowana: użyj procedury składowanej, która definiuje sposób stosowania danych źródłowych do tabeli docelowej. Ta procedura składowana jest wywoływana nawsadowe .

      • Nazwa procedury składowanej: wybierz procedurę składowaną lub określ nazwę procedury składowanej ręcznie podczas zaznaczania pola Edytuj, aby odczytywać dane z tabeli źródłowej.

      • parametry procedury składowanej: określ wartości parametrów procedury składowanej. Dozwolone wartości to pary nazw lub wartości. Nazwy i wielkość liter parametrów muszą być zgodne z nazwami i wielkością liter parametrów procedury składowanej.

        Zrzut ekranu przedstawiający ustawienia procedury składowanej.

  • zbiorcze wstawianie blokady tabeli: wybierz pozycję Tak lub Nie. Użyj tego ustawienia, aby zwiększyć wydajność kopiowania podczas operacji zbiorczego wstawiania do tabeli bez indeksu z wielu klientów. Aby uzyskać więcej informacji, przejdź do BULK INSERT (Transact-SQL)

  • opcja Tabela: określa, czy automatycznie utworzyć tabelę docelową, jeśli tabela nie istnieje na podstawie schematu źródłowego. Wybierz pozycję None lub Automatycznie utwórz tabelę. Automatyczne tworzenie tabeli nie jest obsługiwane, gdy miejsce docelowe określa procedurę składowaną.

  • Skrypt przed-kopiowania: Określ skrypt do wykonania w ramach działania kopiowania przed zapisaniem danych do tabeli docelowej w każdym przebiegu. Za pomocą tej właściwości można wyczyścić wstępnie załadowane dane.

  • limit czasu zapisu wsadowego: określ czas oczekiwania na zakończenie operacji wstawiania wsadowego przed upływem limitu czasu. Dozwolona wartość to przedział czasu. Wartość domyślna to "00:30:00" (30 minut).

  • Zapisuj rozmiar partii: określ liczbę wierszy do wstawienia 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.

  • Maksymalna liczba współbieżnych połączeń: Określ górny limit połączeń współbieżnych ustanowionych w magazynie danych w trakcie wykonywania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne.

  • Wyłącz analizę metryk wydajności: to ustawienie służy do zbierania metryk, takich jak DTU, DWU, RU itd., w celu optymalizacji wydajności kopiowania i zaleceń. Jeśli interesuje Cię to zachowanie, zaznacz to pole wyboru.

Mapowanie

W przypadku konfiguracji zakładki Mapowanie , jeśli nie zastosujesz usługi Azure SQL Database z funkcją automatycznego tworzenia tabel jako miejsca docelowego, przejdź do Mapowanie.

Jeśli zastosujesz usługę Azure SQL Database z opcją automatycznego tworzenia tabel jako cel, oprócz konfiguracji w mapowanie, możesz edytować typ kolumn docelowych. Po wybraniu Importuj schematymożna określić typ kolumny w miejscu docelowym.

Na przykład typ kolumny ID w źródle jest int i można zmienić go na typ zmiennoprzecinkowy podczas mapowania na kolumnę docelową.

Zrzut ekranu przedstawiający typ kolumny docelowej mapowania.

Ustawienia

Aby skonfigurować kartę Ustawienia, przejdź do Konfiguracja innych ustawień na karcie Ustawienia.

Kopiowanie równoległe z usługi Azure SQL Database

Łącznik usługi Azure SQL Database 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ła aktywności kopiowania.

Po włączeniu kopii partycjonowanej działanie kopiowania uruchamia zapytania równoległe względem źródła usługi Azure SQL Database w celu załadowania danych według partycji. Stopień równoległy jest kontrolowany przez Stopień równoległości kopiowania na karcie ustawień działania kopiowania. Jeśli na przykład ustawisz stopień równoległości kopiowania na cztery, usługa jednocześnie generuje i uruchamia cztery zapytania na podstawie określonej opcji partycji i ustawień, a każde zapytanie pobiera część danych z usługi Azure SQL Database.

Zaleca się włączenie kopiowania równoległego przy użyciu partycjonowania danych, szczególnie w przypadku ładowania dużej ilości danych z usługi Azure SQL Database. 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 wczytywanie z dużej tabeli z fizycznymi partycjami. Opcja Partycji: Fizyczne partycje 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 tej kwerendy.
Pełne ładowanie z dużej tabeli, bez partycji fizycznych, przy użyciu liczby całkowitej lub kolumny typu datetime na potrzeby partycjonowania danych. opcje partycji: partycja zakresu dynamicznego.
Kolumna partycji (opcjonalnie): określ kolumnę używaną do partycjonowania danych. Jeśli nic nie zostanie określone, użyta zostanie kolumna indeksu lub klucza podstawowego.
Partycja górna granica i partycja dolna granica (opcjonalnie): określ, czy chcesz określić 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łania kopiowania automatycznie wykrywają wartości.

Jeśli na przykład kolumna partycji "ID" ma zakres wartości z zakresu od 1 do 100, a dolna granica to 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.
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: partycja zakresu dynamicznego.
Query: 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 określić przesunięcie partycji. Nie jest to przeznaczone do filtrowania wierszy w tabeli, wszystkie wiersze w wyniku zapytania zostaną partycjonowane i skopiowane. Jeśli parametr nie zostanie określony, funkcja kopiowania automatycznie wykryje wartość.

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 równoległym kopiowaniem 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:
• Wykonaj zapytanie dotyczące całej tabeli:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
• Kwerenda z tabeli z zaznaczeniem kolumny i dodatkowymi filtrami klauzuli where:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Kwerenda z podzapytaniami:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Zapytanie z partycją w podzapytaniu:
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:

  • Wybierz charakterystyczną kolumnę jako kolumnę partycji (np. klucz podstawowy lub unikatowy klucz), aby uniknąć niesymetryczności danych.
  • Jeśli tabela ma wbudowaną partycję, użyj opcji partycji partycje fizyczne tabeli, aby uzyskać lepszą wydajność.

Przykładowe zapytanie do sprawdzania partycji fizycznej

SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, pf.name AS PartitionFunctionName, c.name AS ColumnName, iif(pf.name is null, 'no', 'yes') 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.partition_schemes ps ON i.data_space_id = ps.data_space_id 
LEFT JOIN sys.partition_functions pf ON pf.function_id = ps.function_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", jak pokazano poniżej.

wynik zapytania Sql.

Podsumowanie tabeli

Poniższe tabele zawierają więcej informacji na temat działania kopiowania w usłudze Azure SQL Database.

Źródło

Nazwa Opis Wartość Wymagane Właściwość skryptu JSON
Typ magazynu danych Typ magazynu danych. Zewnętrzny Tak /
połączenia Połączenie ze źródłowym magazynem danych. <twoje połączenie> Tak połączenie
typ połączenia Typ połączenia. Wybierz pozycję Azure SQL Database. Azure SQL Database Tak /
Tabela Tabela danych źródłowych. <nazwę tabeli docelowej> Tak schemat
stół
Użyj zapytania Niestandardowe zapytanie SQL służące do odczytywania danych. • Brak
•Zapytanie
• Procedura składowana
Nie

• sqlReaderQuery
• sqlReaderStoredProcedureName, storedProcedureParameters
limit czasu zapytania Limit czasu wykonywania polecenia zapytania, wartość domyślna to 120 minut. przedział czasu Nie queryTimeout
poziom izolacji Określa zachowanie blokowania transakcji dla źródła SQL. • Żaden
• ReadCommitted (Odczyt Zatwierdzony)
• ReadUncommitted
• Powtarzalny odczyt
• Seryjny
•Migawka
Nie poziom izolacji
opcja partycji Opcje partycjonowania danych używane do ładowania danych z usługi Azure SQL Database. • Żaden
• Fizyczne partycje tabeli
• Zakres dynamiczny
Nie partitionOption:
• FizycznePartycjeTabeli
• DynamicRange
dodatkowe kolumny Dodaj więcej kolumn danych, aby przechowywać ścieżkę względną plików źródłowych lub wartość statyczną. Wyrażenie jest obsługiwane w przypadku tych ostatnich. •Nazwa
•Wartość
Nie dodatkoweKolumny:
•nazwa
•wartość

Cel

Nazwa Opis Wartość Wymagane Właściwość skryptu JSON
Typ magazynu danych Typ magazynu danych. Zewnętrzne Tak /
połączenia Twoje połączenie z docelowym magazynem danych. <twoje połączenie > Tak połączenie
typ połączenia Typ połączenia. Wybierz pozycję Azure SQL Database. Azure SQL Database Tak /
Tabela Twoja docelowa tabela danych. <nazwa twojej tabeli docelowej> Tak schemat
stół
zachowanie podczas zapisu Definiuje zachowanie zapisu, gdy źródłem są pliki z magazynu danych opartego na plikach. • Wstawiać
• Upsert (dodawanie lub aktualizowanie danych)
• Procedura składowana
Nie writeBehavior:
• wstaw
• dodanie lub aktualizacja (upsert)
• sqlWriterStoredProcedureName, sqlWriterTableType, storedProcedureParameters
zbiorcze wstawianie blokady tabeli To ustawienie umożliwia zwiększenie wydajności kopiowania podczas operacji masowego wstawiania do tabeli bez indeksu z wykorzystaniem wielu klientów. Tak lub nie Nie sqlWriterUseTableLock:
prawda lub fałsz
opcja tabeli Określa, czy tabela docelowa ma zostać automatycznie utworzona, jeśli nie istnieje na podstawie schematu źródłowego. • Żaden
• Automatyczne tworzenie tabeli
Nie OpcjaTabeli:
• AutomatyczneTworzenie
Skrypt przed kopiowaniem Skrypt zadania kopiowania do wykonania przed zapisaniem danych w tabeli docelowej podczas każdorazowego uruchomienia. Za pomocą tej właściwości można wyczyścić wstępnie załadowane dane. <skryptu wstępnego kopiowania>
(ciąg)
Nie preCopyScript
zapisywanie limitu czasu wsadowego Czas oczekiwania na zakończenie operacji wstawiania wsadowego przed upływem limitu czasu. Dozwolona wartość to przedział czasu. Wartość domyślna to "00:30:00" (30 minut). przedział czasu Nie writeBatchTimeout
wielkość partii zapisu Liczba wierszy do wstawiania do tabeli SQL na partię. Domyślnie usługa dynamicznie określa odpowiedni rozmiar partii na podstawie rozmiaru wiersza. <liczba wierszy>
(liczba całkowita)
Nie writeBatchSize
maksymalna liczba współbieżnych połączeń Górny limit połączeń współbieżnych ustanowionych z magazynem danych w trakcie wykonywania aktywności. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. <górny limit połączeń współbieżnych>
(liczba całkowita)
Nie maksymalna liczba równoczesnych połączeń
Wyłączanie analizy metryk wydajności To ustawienie służy do zbierania metryk, takich jak DTU, DWU, RU itd., na potrzeby optymalizacji wydajności kopiowania i zaleceń. Jeśli interesuje Cię to zachowanie, zaznacz to pole wyboru. zaznacz lub usuń zaznaczenie Nie wyłączZbieranieMetryk
prawda lub fałsz