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í.
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.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.
Č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).
Ú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.
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í.
Žá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
, nebodatetimeoffset
), 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í.
- Název sloupce oddílu: Zadejte název zdrojového sloupce v celočíselném nebo typu date/datetime (
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.
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.
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é.
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.
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.
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.
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í.
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 |