Sdílet prostřednictvím


Konfigurace služby Azure SQL Database v aktivitě kopírování

Tento článek popisuje, jak pomocí aktivity kopírování v datovém kanálu kopírovat data z a do Azure SQL Database.

Podporovaná konfigurace

Konfigurace každé karty v aktivitě kopírování najdete v následujících částech.

OBECNÉ

Informace o konfiguraci karty Obecné nastavení najdete v doprovodných materiálech k obecným nastavením.

Zdroj

Následující vlastnosti jsou podporované pro Službu Azure SQL Database na kartě Zdroj aktivity kopírování.

Snímek obrazovky zobrazující kartu zdroje a seznam vlastností

Jsou vyžadovány následující vlastnosti:

  • Typ úložiště dat: Vyberte externí.
  • Připojení ion: Ze seznamu připojení vyberte připojení ke službě Azure SQL Database. Pokud připojení neexistuje, vytvořte nové připojení ke službě Azure SQL Database výběrem možnosti Nový.
  • typ Připojení: Vyberte Azure SQL Database.
  • Tabulka: V rozevíracím seznamu vyberte tabulku v databázi. Nebo zaškrtněte políčko Upravit a zadejte název tabulky ručně.
  • Náhled dat: Výběrem náhledu dat zobrazíte náhled dat v tabulce.

V části Upřesnit můžete zadat následující pole:

  • Použít dotaz: Můžete zvolit tabulku, dotaz nebo uloženou proceduru. Následující seznam popisuje konfiguraci jednotlivých nastavení:

    • Tabulka: Pokud vyberete toto tlačítko, načtěte data z tabulky, kterou jste zadali v tabulce .

    • Dotaz: Zadejte vlastní dotaz SQL pro čtení dat. Příklad: select * from MyTable. Nebo vyberte ikonu tužky, která se má upravit v editoru kódu.

      Snímek obrazovky znázorňující výběr dotazu

    • Uložená procedura: Použijte uloženou proceduru, která čte data ze zdrojové tabulky. Poslední příkaz SQL musí být příkaz SELECT v uložené proceduře.

      • Název uložené procedury: Vyberte uloženou proceduru nebo zadejte název uložené procedury ručně při zaškrtnutí políčka Upravit pro čtení dat ze zdrojové tabulky.

      • Parametry uložené procedury: Zadejte hodnoty pro parametry uložené procedury. Povolené hodnoty jsou dvojice názvů nebo hodnot. Názvy a velikost písmen parametrů musí odpovídat názvům a velikostem písmen parametrů uložené procedury.

        Snímek obrazovky s nastavením uložené procedury

  • Časový limit dotazu (minuty):Zadejte časový limit pro spuštění příkazu dotazu, výchozí hodnota je 120 minut. Pokud je pro tuto vlastnost nastaven parametr, jsou povolené hodnoty časový rozsah, například 02:00:00 (120 minut).

    Snímek obrazovky s nastavením časového limitu dotazu

  • Úroveň izolace: Určuje chování zamykání transakce pro zdroj SQL. Povolené hodnoty jsou: None, ReadCommitted, ReadUncommitted, RepeatableRead, Serializable nebo Snapshot. Pokud není zadána, použije se úroveň izolace Žádná . Další podrobnosti najdete v výčtu IsolationLevel.

    Snímek obrazovky s nastavením úrovně izolace

  • Možnost oddílu: Zadejte možnosti dělení dat, které se používají k načtení dat z Azure SQL Database. Povolené hodnoty jsou: Žádné (výchozí), fyzické oddíly tabulky a dynamický rozsah. Pokud je povolená možnost oddílu (tj. žádná), je stupeň paralelismu souběžného načítání dat ze služby Azure SQL Database řízen nastavením paralelního kopírování v aktivitě kopírování.

    Snímek obrazovky s nastavením možností oddílu

    • Žádné: Toto nastavení zvolte, pokud nechcete oddíl používat.

    • Fyzické oddíly tabulky: Při použití fyzického oddílu se sloupec a mechanismus oddílu automaticky určí na základě definice fyzické tabulky.

    • Dynamická oblast: Při použití dotazu s povoleným paralelním povolením je potřeba parametr oddílu rozsahu(?DfDynamicRangePartitionCondition). Ukázkový dotaz: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.

      • Název sloupce oddílu: Zadejte název zdrojového sloupce v celočíselném nebo typu date/datetime (int, smallint, bigint, date, smalldatetime, datetime, datetime2, nebo datetimeoffset), který se používá při dělení rozsahu pro paralelní kopírování. Pokud není zadaný, index nebo primární klíč tabulky se automaticky rozdetekuje a použije se jako sloupec oddílu.
      • Horní mez oddílu: Zadejte maximální hodnotu sloupce oddílu pro rozdělení rozsahu oddílů. Tato hodnota se používá k rozhodování o kroku oddílu, nikoli k filtrování řádků v tabulce. Všechny řádky v tabulce nebo výsledku dotazu se rozdělí a zkopírují.
      • Dolní mez oddílu: Zadejte minimální hodnotu sloupce oddílu pro rozdělení rozsahu oddílů. Tato hodnota se používá k rozhodování o kroku oddílu, nikoli k filtrování řádků v tabulce. Všechny řádky v tabulce nebo výsledku dotazu se rozdělí a zkopírují.
  • Další sloupce: Přidejte další datové sloupce pro ukládání relativní cesty nebo statické hodnoty zdrojových souborů. U druhého výrazu se podporuje. Další informace najdete v tématu Přidání dalších sloupců během kopírování.

Cíl

Pro Službu Azure SQL Database na kartě Cíl aktivity kopírování se podporují následující vlastnosti.

Snímek obrazovky zobrazující kartu Cíl

Jsou vyžadovány následující vlastnosti:

  • Typ úložiště dat: Vyberte externí.
  • Připojení ion: Ze seznamu připojení vyberte připojení ke službě Azure SQL Database. Pokud připojení neexistuje, vytvořte nové připojení ke službě Azure SQL Database výběrem možnosti Nový.
  • typ Připojení: Vyberte Azure SQL Database.
  • Tabulka: V rozevíracím seznamu vyberte tabulku v databázi. Nebo zaškrtněte políčko Upravit a zadejte název tabulky ručně.
  • Náhled dat: Výběrem náhledu dat zobrazíte náhled dat v tabulce.

V části Upřesnit můžete zadat následující pole:

  • Chování při zápisu: Definuje chování zápisu, pokud je zdrojem soubory ze souborového úložiště dat. Můžete zvolit Vložit, Upsert nebo Uložená procedura.

    Snímek obrazovky s kartou Chování při zápisu

    • Vložit: Tuto možnost zvolte, pokud zdrojová data obsahuje vložení.

    • Upsert: Tuto možnost zvolte, pokud zdrojová data obsahují vložení i aktualizace.

      • Použití databáze TempDB: Určete, zda se má jako dočasná tabulka pro upsert použít globální dočasná tabulka nebo fyzická tabulka. Ve výchozím nastavení služba používá jako dočasnou tabulku globální dočasnou tabulku a toto políčko je zaškrtnuté.

        Snímek obrazovky znázorňující výběr možnosti Použít databázi tempDB

      • Vyberte schéma databáze uživatelů: Pokud není zaškrtnuté políčko Použít databázi tempDB , zadejte dočasné schéma pro vytvoření dočasné tabulky, pokud se použije fyzická tabulka.

        Poznámka:

        Musíte mít oprávnění k vytváření a odstraňování tabulek. Ve výchozím nastavení bude dočasná tabulka sdílet stejné schéma jako cílová tabulka.

        Snímek obrazovky zobrazující možnost Nepoužívat databázi TempDB

      • Klíčové sloupce: Zadejte názvy sloupců pro jedinečnou identifikaci řádků. Můžete použít jeden klíč nebo řadu klíčů. Pokud není zadaný, použije se primární klíč.

    • Uložená procedura: Použijte uloženou proceduru, která definuje, jak použít zdrojová data do cílové tabulky. Tato uložená procedura se vyvolá na dávku.

      • Název uložené procedury: Vyberte uloženou proceduru nebo zadejte název uložené procedury ručně při zaškrtnutí políčka Upravit pro čtení dat ze zdrojové tabulky.

      • Parametry uložené procedury: Zadejte hodnoty pro parametry uložené procedury. Povolené hodnoty jsou dvojice názvů nebo hodnot. Názvy a velikost písmen parametrů musí odpovídat názvům a velikostem písmen parametrů uložené procedury.

        Snímek obrazovky s nastavením uložené procedury

  • Zámek hromadného vložení tabulky: Zvolte Ano nebo Ne. Toto nastavení použijte ke zlepšení výkonu kopírování během hromadné operace vložení v tabulce bez indexu z více klientů. Další informace najdete v tématu BULK INSERT (Transact-SQL).

  • Možnost Tabulka: Určuje, jestli se má cílová tabulka vytvořit automaticky, pokud tabulka neexistuje na základě zdrojového schématu. Zvolte Žádné nebo Automaticky vytvořit tabulku. Automatické vytváření tabulek není podporováno, pokud cíl určuje uloženou proceduru.

  • Skript předběžného kopírování: Zadejte skript pro aktivitu kopírování, který se má spustit před zápisem dat do cílové tabulky v každém spuštění. Tuto vlastnost můžete použít k vyčištění předem načtených dat.

  • Časový limit dávky zápisu: Zadejte dobu čekání na dokončení operace dávkového vložení, než vyprší časový limit. Povolená hodnota je časový rozsah. Výchozí hodnota je 00:30:00 (30 minut).

  • Velikost dávky zápisu: Zadejte počet řádků, které se mají vložit do tabulky SQL na dávku. Povolená hodnota je celé číslo (počet řádků). Ve výchozím nastavení služba dynamicky určuje odpovídající velikost dávky na základě velikosti řádku.

  • Maximální počet souběžných připojení: Zadejte horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity. Zadejte hodnotu pouze v případech, kdy chcete omezit souběžná připojení.

  • Zakázat analýzu metrik výkonu: Toto nastavení slouží ke shromažďování metrik, jako jsou DTU, DWU, RU atd., pro optimalizaci výkonu kopírování a doporučení. Pokud máte obavy o toto chování, zaškrtněte toto políčko.

mapování.

Pokud pro konfiguraci karty Mapování nepoužijete Azure SQL Database s automatickým vytvořením tabulky jako vaším cílem, přejděte na Mapování.

Pokud jako cíl použijete Azure SQL Database s automaticky vytvořit tabulku s výjimkou konfigurace v mapování, můžete typ cílových sloupců upravit. Po výběru schémat importu můžete zadat typ sloupce v cíli.

Například typ sloupce ID ve zdroji je int a můžete ho změnit na typ float při mapování na cílový sloupec.

Snímek obrazovky s mapováním typu cílového sloupce

Nastavení

V případě konfigurace karty Nastavení přejděte na Konfigurovat další nastavení na kartě Nastavení.

Paralelní kopírování ze služby Azure SQL Database

Konektor Služby Azure SQL Database v aktivitě kopírování poskytuje integrované dělení dat pro paralelní kopírování dat. Možnosti dělení dat najdete na kartě Zdroj aktivity kopírování.

Když povolíte dělené kopírování, aktivita kopírování spouští paralelní dotazy na zdroj služby Azure SQL Database, aby načetla data podle oddílů. Paralelní stupeň je řízen stupněm paralelismu kopírování na kartě nastavení aktivity kopírování. Pokud například nastavíte stupeň paralelismu kopírování na čtyři, služba souběžně vygeneruje a spouští čtyři dotazy na základě zadané možnosti a nastavení oddílu a každý dotaz načte část dat ze služby Azure SQL Database.

Doporučujeme povolit paralelní kopírování s dělením dat, zejména pokud načítáte velké množství dat ze služby Azure SQL Database. Následující konfigurace jsou navržené pro různé scénáře. Při kopírování dat do souborového úložiště dat se doporučuje zapisovat do složky jako více souborů (zadat pouze název složky), v takovém případě je výkon lepší než zápis do jednoho souboru.

Scénář Navrhovaná nastavení
Úplné načtení z velké tabulky s fyzickými oddíly Možnost oddílu: Fyzické oddíly tabulky.

Během provádění služba automaticky rozpozná fyzické oddíly a kopíruje data podle oddílů.

Pokud chcete zkontrolovat, jestli tabulka obsahuje fyzický oddíl nebo ne, můžete odkazovat na tento dotaz.
Úplné načtení z velké tabulky bez fyzických oddílů, zatímco s celočíselnou nebo datetime sloupcem pro dělení dat. Možnosti oddílu: Oddíl dynamického rozsahu
Sloupec oddílu (volitelné): Zadejte sloupec použitý k dělení dat. Pokud není zadaný, použije se sloupec indexu nebo primárního klíče.
Horní mez oddílu a dolní mez oddílu (volitelné): Určete, jestli chcete určit krok oddílu. To není pro filtrování řádků v tabulce, všechny řádky v tabulce budou rozděleny a zkopírovány. Pokud není zadáno, aktivity kopírování automaticky detekují hodnoty.

Pokud má například sloupec oddílu ID hodnoty od 1 do 100 a dolní mez nastavíte jako 20 a horní mez jako 80, přičemž paralelní kopírování je 4, služba načte data o 4 oddílech – ID v rozsahu <=20, [21, 50], [51, 80] a >=81.
Načtěte velké množství dat pomocí vlastního dotazu bez fyzických oddílů, zatímco s celočíselnou nebo datem a datem a časem pro dělení dat. Možnosti oddílu: Oddíl dynamického rozsahu
Dotaz: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Sloupec oddílu: Zadejte sloupec použitý k rozdělení dat.
Horní mez oddílu a dolní mez oddílu (volitelné): Určete, jestli chcete určit krok oddílu. To není pro filtrování řádků v tabulce, všechny řádky ve výsledku dotazu budou rozděleny a zkopírovány. Pokud není zadáno, aktivita kopírování automaticky rozpozná hodnotu.

Pokud má například sloupec oddílu ID hodnoty od 1 do 100 a dolní mez nastavíte jako 20 a horní mez 80, přičemž paralelní kopírování je 4, služba načte data podle 4 oddílů v rozsahu <=20, [21, 50], [51, 80] a >=81.

Tady jsou další ukázkové dotazy pro různé scénáře:
• Zadejte dotaz na celou tabulku:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
• Dotaz z tabulky s výběrem sloupce a dalšími filtry klauzule where:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Dotaz s poddotazy:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Dotaz s oddílem v poddotazu:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Osvědčené postupy pro načtení dat s možností oddílu:

  • Zvolte výrazný sloupec jako sloupec oddílu (například primární klíč nebo jedinečný klíč), abyste se vyhnuli nerovnoměrné distribuci dat.
  • Pokud tabulka obsahuje předdefinovaný oddíl, pomocí možnosti oddílu Fyzické oddíly tabulky získáte lepší výkon.

Ukázkový dotaz pro kontrolu fyzického oddílu

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]'

Pokud tabulka obsahuje fyzický oddíl, zobrazí se "HasPartition" jako "ano", například následující.

Výsledek dotazu SQL

Souhrn tabulky

Následující tabulky obsahují další informace o aktivitě kopírování ve službě Azure SQL Database.

Zdroj

Název Popis Hodnota Požaduje se Vlastnost skriptu JSON
Typ úložiště dat Váš typ úložiště dat. Externí Ano /
Připojení Vaše připojení ke zdrojovému úložišti dat. <vaše připojení> Ano připojení
Typ připojení: Typ připojení. Vyberte Azure SQL Database. Azure SQL Database Ano /
Tabulka Zdrojová tabulka dat <název cílové tabulky> Ano Schématu
table
Použití dotazu Vlastní dotaz SQL pro čtení dat. •Žádný
•Dotazu
• Uložená procedura
No

• sqlReaderQuery
• sqlReaderStoredProcedureName, storedProcedureParameters
Časový limit dotazu Časový limit spuštění příkazu dotazu je ve výchozím nastavení 120 minut. timespan No queryTimeout
Úroveň izolace Určuje chování uzamčení transakce pro zdroj SQL. •Žádný
•Readcommitted
•Readuncommitted
•Repeatableread
•Serializovatelný
•Snímek
No Isolationlevel
Možnost oddílu Možnosti dělení dat používané k načtení dat ze služby Azure SQL Database. •Žádný
• Fyzické oddíly tabulky
• Dynamický rozsah
No partitionOption:
• PhysicalPartitionsOfTable
• DynamicRange
Další sloupce Přidejte další datové sloupce pro ukládání relativní cesty ke zdrojovým souborům nebo statické hodnotě. U druhého výrazu se podporuje. • Jméno
•Hodnotu
No additionalColumns:
•Jméno
•Hodnotu

Cíl

Název Popis Hodnota Požaduje se Vlastnost skriptu JSON
Typ úložiště dat Váš typ úložiště dat. Externí Ano /
Připojení Vaše připojení k cílovému úložišti dat. <vaše připojení > Ano připojení
Typ připojení: Typ připojení. Vyberte Azure SQL Database. Azure SQL Database Ano /
Tabulka Cílová tabulka dat <název cílové tabulky> Ano Schématu
table
Chování zápisu Definuje chování zápisu, když zdroj je soubory ze souborového úložiště dat. •Vložit
• Upsert
• Uložená procedura
No writeBehavior:
•Vložit
• upsert
• sqlWriterStoredProcedureName, sqlWriterTableType, storedProcedureParameters
Zámek hromadného vložení tabulky Toto nastavení použijte ke zlepšení výkonu kopírování během hromadné operace vložení v tabulce bez indexu z více klientů. Ano nebo Ne No sqlWriterUseTableLock:
true nebo false
Možnost Tabulka Určuje, jestli se má cílová tabulka vytvořit automaticky, pokud neexistuje na základě zdrojového schématu. •Žádný
• Automaticky vytvořit tabulku
No tableOption:
• automatické vytvoření
Skript předběžného kopírování Skript pro aktivitu kopírování, který se má spustit před zápisem dat do cílové tabulky v každém spuštění. Tuto vlastnost můžete použít k vyčištění předem načtených dat. <skript předběžného kopírování>
(řetězec)
No preCopyScript
Časový limit zápisu dávky Doba čekání, než se operace dávkového vložení dokončí, než vyprší časový limit. Povolená hodnota je časový rozsah. Výchozí hodnota je 00:30:00 (30 minut). timespan No writeBatchTimeout
Velikost dávky zápisu Počet řádků, které se mají vložit do tabulky SQL na dávku Ve výchozím nastavení služba dynamicky určuje odpovídající velikost dávky na základě velikosti řádku. <počet řádků>
(celé číslo)
No writeBatchSize
Maximální počet souběžných připojení Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity. Zadejte hodnotu pouze v případech, kdy chcete omezit souběžná připojení. <horní limit souběžných připojení>
(celé číslo)
No maxConcurrent Připojení ions
Zakázání analýz metrik výkonu Toto nastavení slouží ke shromažďování metrik, jako jsou DTU, DWU, RU atd., pro optimalizaci výkonu kopírování a doporučení. Pokud máte obavy o toto chování, zaškrtněte toto políčko. výběr nebo zrušení výběru No disableMetricsCollection:
true nebo false