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

W przypadku konfiguracji każdej karty w działaniu kopiowania przejdź odpowiednio do poniższych sekcji.

Ogólne

Zapoznaj się ze wskazówkami dotyczącymi ustawień ogólnych, aby skonfigurować kartę Ustawienia ogólne.

Źródło

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

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

Wymaganenastępujące właściwości:

  • Typ magazynu danych: wybierz pozycję Zewnętrzne.
  • Połączenie ion: 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łączenie ion: wybierz pozycję Azure SQL Database.
  • Tabela: wybierz tabelę w bazie danych z listy rozwijanej. Możesz też ręcznie zaznaczyć pozycję Edytuj , aby wprowadzić nazwę tabeli.
  • Dane podglądu: wybierz pozycję Podgląd danych, aby wyświetlić podgląd danych w tabeli.

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

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

    • Tabela: odczyt danych z tabeli określonej w tabeli w przypadku wybrania tego przycisku.

    • Zapytanie: określ niestandardowe zapytanie SQL do odczytu danych. Może to być na przykład 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, która odczytuje dane z tabeli źródłowej. Ostatnia instrukcja SQL musi być instrukcją SELECT w procedurze składowanej.

      • Nazwa procedury składowanej: wybierz procedurę składowaną lub ręcznie określ nazwę procedury składowanej podczas sprawdzania 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ą parametrów procedury składowanej.

        Zrzut ekranu przedstawiający ustawienia procedury składowanej.

  • Limit czasu zapytania (minuty): 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: Brak, ReadCommitted, ReadUncommitted, RepeatableRead, Serializable lub Snapshot. Jeśli nie zostanie określony, zostanie użyty poziom izolacji Brak . Aby uzyskać więcej informacji, zapoznaj się z wyliczeniem IsolationLevel.

    Zrzut ekranu przedstawiający ustawienia na poziomie 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), Partycje fizyczne tabeli i Zakres dynamiczny. Jeśli opcja partycji jest włączona (czyli nie brak), stopień równoległości równoczesnego ładowania danych z usługi Azure SQL Database jest kontrolowany przez ustawienie kopiowania równoległego w działaniu kopiowania .

    Zrzut ekranu przedstawiający ustawienia opcji Partycji.

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

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

    • Zakres dynamiczny: w przypadku używania zapytania z włączonym równoległym parametrem?DfDynamicRangePartitionCondition partycji zakresu () jest wymagany. Przykładowe zapytanie: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.

      • Nazwa kolumny partycji: określ nazwę kolumny źródłowej w liczbach całkowitych lub typ daty/daty/godziny (int, smallint, smalldatetimebigintdatetimedate, datetime2lub datetimeoffset) używany przez partycjonowanie 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.
      • Dolna granica partycji: 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 tych ostatnich. Aby uzyskać więcej informacji, zobacz Dodawanie dodatkowych kolumn podczas kopiowania.

Element docelowy

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

Zrzut ekranu przedstawiający kartę Miejsce docelowe.

Wymaganenastępujące właściwości:

  • Typ magazynu danych: wybierz pozycję Zewnętrzne.
  • Połączenie ion: 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łączenie ion: wybierz pozycję Azure SQL Database.
  • Tabela: wybierz tabelę w bazie danych z listy rozwijanej. Możesz też ręcznie zaznaczyć pozycję Edytuj , aby wprowadzić nazwę tabeli.
  • Dane podglądu: wybierz pozycję Podgląd danych, aby wyświetlić podgląd danych w tabeli.

W obszarze Zaawansowane moż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ć opcję Wstaw, Upsert lub Procedurę składowaną.

    Zrzut ekranu przedstawiający kartę zachowania zapisu.

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

    • Upsert: wybierz tę opcję, jeśli dane źródłowe mają zarówno operacje wstawiania, jak i aktualizacji.

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

        Zrzut ekranu przedstawiający wybieranie pozycji Użyj bazy danych 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.

        Uwaga

        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 opcję Nie wybieraj pozycji Użyj bazy danych TempDB.

      • Kolumny kluczy: określ nazwy kolumn dla unikatowej 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 na partię.

      • Nazwa procedury składowanej: wybierz procedurę składowaną lub ręcznie określ nazwę procedury składowanej podczas sprawdzania 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ą parametrów procedury składowanej.

        Zrzut ekranu przedstawiający ustawienia procedury składowanej.

  • Zbiorcze wstawianie blokady tabeli: wybierz pozycję Tak lub Nie. To ustawienie umożliwia zwiększenie wydajności kopiowania podczas operacji wstawiania zbiorczego w tabeli bez indeksu z wielu klientów. Aby uzyskać więcej informacji, zobacz BULK INSERT (Transact-SQL)

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

  • Skrypt wstępny: określ skrypt działania kopiowania do wykonania przed zapisaniem danych w 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 przekroczeniem limitu czasu. Dozwolona wartość to przedział czasu. Wartość domyślna to "00:30:00" (30 minut).

  • Rozmiar partii zapisu: 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 połączeń współbieżnych: określ górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas uruchamiania 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., na potrzeby optymalizacji wydajności i zaleceń dotyczących kopiowania. Jeśli interesuje Cię to zachowanie, zaznacz to pole wyboru.

Mapowanie

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

Jeśli zastosujesz usługę Azure SQL Database z automatycznie utworzoną tabelą jako lokalizacją docelową, z wyjątkiem konfiguracji w obszarze Mapowanie, możesz edytować typ kolumn docelowych. Po wybraniu pozycji Importuj schematy moż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 uzyskać Ustawienia konfiguracji karty, przejdź do sekcji Konfigurowanie 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ło działania 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 opcję 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 ładowanie z dużej tabeli z partycjami fizycznymi. 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 tego zapytania.
Pełne ładowanie z dużej tabeli, bez partycji fizycznych, podczas gdy z liczbą całkowitą lub kolumną datetime na potrzeby partycjonowania danych. Opcje partycji: partycja zakresu dynamicznego.
Kolumna partycji (opcjonalnie): określ kolumnę używaną do partycjonowania danych. Jeśli nie zostanie określony, zostanie użyta kolumna indeksu lub klucza podstawowego.
Górna granica partycji i dolna granica partycji (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 zostanie określony, działania kopiowania automatycznie wykrywają 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: partycja zakresu dynamicznego.
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 określić krok partycji. Nie jest to przeznaczone do filtrowania wierszy w tabeli, wszystkie wiersze w wyniku zapytania zostaną partycjonowane i skopiowane. Jeśli nie zostanie określony, działanie kopiowania automatycznie wykrywa 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 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:
• 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 Partycja 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/nazwisko Opis Wartość Wymagania Właściwość skryptu JSON
Typ magazynu danych Typ magazynu danych. Zewnętrzne Tak /
Połączenie Połączenie ze źródłowym magazynem danych. <połączenie> Tak połączenie
Connection type (Typ połączenia) Typ połączenia. Wybierz pozycję Azure SQL Database. Azure SQL Database Tak /
Tabela Tabela danych źródłowych. <nazwa tabeli docelowej> Tak Schematu
table
Korzystanie z zapytania Niestandardowe zapytanie SQL służące do odczytywania danych. •Brak
•Kwerendy
• Procedura składowana
Nie.

• sqlReaderQuery
• sqlReaderStoredProcedureName, storedProcedureParameters
Limit czasu zapytania Limit czasu wykonywania polecenia zapytania, wartość domyślna to 120 minut. zakres czasu Nie. Querytimeout
Poziom izolacji Określa zachowanie blokowania transakcji dla źródła SQL. •Brak
•Readcommitted
•Readuncommitted
•Repeatableread
•Serializacji
•Migawka
Nie. Isolationlevel
Opcja partycji Opcje partycjonowania danych używane do ładowania danych z usługi Azure SQL Database. •Brak
• Fizyczne partycje tabeli
• Zakres dynamiczny
Nie. Partitionoption:
• PhysicalPartitionsOfTable
• 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. additionalColumns:
•Nazwa
•Wartość

Element docelowy

Nazwa/nazwisko Opis Wartość Wymagania Właściwość skryptu JSON
Typ magazynu danych Typ magazynu danych. Zewnętrzne Tak /
Połączenie Połączenie z docelowym magazynem danych. <połączenie > Tak połączenie
Connection type (Typ połączenia) Typ połączenia. Wybierz pozycję Azure SQL Database. Azure SQL Database Tak /
Tabela Docelowa tabela danych. <nazwa tabeli docelowej> Tak Schematu
table
Zachowanie zapisu Definiuje zachowanie zapisu, gdy źródłem są pliki z magazynu danych opartego na plikach. •Wstawić
• Upsert
• Procedura składowana
Nie. writeBehavior:
•Wstawić
• upsert
• sqlWriterStoredProcedureName, sqlWriterTableType, storedProcedureParameters
Zbiorcze wstawianie blokady tabeli To ustawienie umożliwia zwiększenie wydajności kopiowania podczas operacji wstawiania zbiorczego w tabeli bez indeksu z 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. •Brak
• Automatyczne tworzenie tabeli
Nie. tableOption:
• AutoTworzenie
Skrypt wstępny Skrypt działania kopiowania do wykonania przed zapisaniem danych w tabeli docelowej w każdym przebiegu. Za pomocą tej właściwości można wyczyścić wstępnie załadowane dane. <skrypt wstępny>
(ciąg)
Nie. preCopyScript
Limit czasu zapisu 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). zakres czasu Nie. writeBatchTimeout
Rozmiar 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 połączeń współbieżnych Górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas uruchamiania działania. 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. maxConcurrent Połączenie ions
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. disableMetricsCollection:
prawda lub fałsz