Konfigurace služby Azure SQL Managed Instance 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 služby Azure SQL Managed Instance.
Podporovaná konfigurace
Pro konfiguraci každé karty v rámci aktivity kopírování přejděte do příslušných částí.
Obecné
Informace o konfiguraci karty nastavení Obecné najdete v pokynů k nastaveníObecné.
Zdroj
Pod kartou Zdroj aktivity kopírování jsou pro spravovanou instanci Azure SQL k dispozici následující vlastnosti.
Následující vlastnosti jsou nezbytné:
typ úložiště dat: Vyberte Externí.
Připojení: Ze seznamu připojení vyberte připojení ke spravované instanci Azure SQL. Pokud připojení neexistuje, vytvořte nové připojení ke službě Azure SQL Managed Instance tak, že vyberete Nový.
Typ připojení: Vyberte Azure SQL Managed Instance.
Použít dotaz: Zadejte způsob čtení dat. Můžete zvolit tabulka, dotaz, nebo uložená procedura. Následující seznam popisuje konfiguraci jednotlivých nastavení:
tabulka: Čtení dat ze zadané tabulky Vyberte zdrojovou tabulku z rozevíracího seznamu nebo vyberte Upravit a zadejte ji ručně.
dotaz: Zadejte vlastní dotaz SQL pro čtení dat. Příkladem je
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 výběru 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. Pro výběr parametrů uložené procedury zvolte Import parameters.
V části Pokročilémůžete zadat následující pole:
vypršení časového limitu 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í uzamčení transakce pro zdroj SQL. Povolené hodnoty jsou: závazné čtení, nepotvrzené čtení, opakovatelné čtení, serializovatelné, snímek čtení. Pokud není zadáno, použije se výchozí úroveň izolace databáze. Další podrobnosti najdete ve výčtu IsolationLevel.
možnost oddílu: Zadejte možnosti dělení dat používané k načtení dat ze spravované instance Azure SQL. Povolené hodnoty jsou: Žádný (výchozí), Fyzické oddíly tabulkya Dynamický rozsah. Pokud je povolená možnost oddílu (tj. není None), stupeň paralelismu souběžného načítání dat ze spravované instance Azure SQL se řídí Stupně paralelismu kopírování na kartě nastavení aktivity kopírování.
Žádné: Toto nastavení vyberte, 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ého rozsahu: Při použití dotazu s povoleným paralelismem je potřeba parametr pro rozdělení 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 data a data a času (
int
,smallint
,bigint
,date
,smalldatetime
,datetime
,datetime2
nebodatetimeoffset
), který se používá při dělení rozsahu pro paralelní kopírování. Pokud není specifikováno, index nebo primární klíč tabulky se automaticky rozpozná a použije jako partiční sloupec.Pokud k načtení zdrojových dat použijete dotaz, připojte
?DfDynamicRangePartitionCondition
v klauzuli WHERE. Příklad najdete v části Paralelní kopírování ze služby Azure SQL Managed Instance.horní mez oddílu: Zadejte maximální hodnotu sloupce oddílu pro rozdělení rozsahu oddílů. Tato hodnota se používá k určení kroku dělení, nikoli k filtrování řádků v tabulce. Všechny řádky v tabulce nebo výsledku dotazu se rozdělí a zkopírují. Pokud není zadáno, aktivita kopírování automaticky rozpozná hodnotu. Příklad najdete v části Paralelní kopírování ze služby Azure SQL Managed Instance.
Dolní mez oddílu: Zadejte minimální hodnotu pro rozdělení rozsahu sloupce oddílu. Tato hodnota se používá ke stanovení 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í. Pokud není zadáno, aktivita kopírování automaticky rozpozná hodnotu. Příklad najdete v části Paralelní kopírování ze služby Azure SQL Managed Instance.
Další sloupce: Přidejte další datové sloupce pro ukládání relativní cesty nebo statické hodnoty zdrojových souborů. Výraz je podporován pro to druhé.
Všimněte si následujících bodů:
- Pokud je pro zdroj zadán dotaz Query, aktivita kopírování spustí tento dotaz na zdroj v spravované instanci Azure SQL, aby se získala data. Uloženou proceduru můžete zadat také tak, že zadáte Název uložené procedury a Parametry uložené procedury, pokud uložená procedura přebírá parametry.
- Při použití uložené procedury ve zdroji k načtení dat si všimněte, že uložená procedura je navržena jako vrácení jiného schématu při předání jiné hodnoty parametru, může dojít k selhání nebo k neočekávanému výsledku při importu schématu z uživatelského rozhraní nebo při kopírování dat do databáze SQL s automatickým vytvořením tabulky.
Cíl
Pro Azure SQL Managed Instance jsou na kartě Cíl aktivity kopírování podporovány následující vlastnosti.
Následující vlastnosti jsou nezbytné:
typ úložiště dat: Vyberte Externí.
Připojení: Ze seznamu připojení vyberte připojení ke spravované instanci Azure SQL. Pokud připojení neexistuje, vytvořte nové připojení ke službě Azure SQL Managed Instance tak, že vyberete Nový.
Typ připojení: Vyberte Azure SQL Managed Instance.
možnost Tabulka: Můžete zvolit Použít existující pro použití zadané tabulky. Nebo zvolte Automatické vytvoření tabulky k automatickému vytvoření cílové tabulky, pokud tabulka ve zdrojovém schématu neexistuje, a všimněte si, že tento výběr není podporován, pokud se uložená procedura používá jako chování zápisu.
Pokud vyberete Použít existující:
- tabulka: V rozevíracím seznamu vyberte tabulku v cílové databázi. Nebo zaškrtněte Upravit a zadejte název tabulky ručně.
Pokud vyberete: automaticky vytvořit tabulku:
- tabulka: Zadejte název automaticky vytvořené cílové tabulky.
V části Pokročilé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: Vyberte tuto možnost pro použití režimu vložení k načtení dat do služby Azure SQL Managed Instance.
Upsert: Tuto možnost vyberte, pokud chcete použít chování zápisu upsert k načtení dat do spravované instance Azure SQL.
Použít TempDB: Určete, zda chcete použít globální dočasnou tabulku nebo fyzickou tabulku jako mezitabuli pro upsert. Ve výchozím nastavení služba používá jako přechodnou tabulku globální dočasnou tabulku a tato vlastnost je vybrána.
Výběr schématu uživatelské databáze: Pokud není vybraná možnost 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 je vyvolána pro dávku. Pro operace, které běží pouze jednou a nemají nic společného se zdrojovými daty, například odstranit nebo zkrátit, použijte předkopírovací skript vlastnost.
Název uložené procedury: Vyberte uloženou proceduru nebo zadejte název uložené procedury ručně při kontrole Upravit pro čtení dat ze zdrojové tabulky.
parametry uložené procedury:
- Typ tabulky: Zadejte název typu tabulky, který se má použít v uložené proceduře. Aktivita kopírování zpřístupní data přesunutá v dočasné tabulce s tímto typem tabulky. Kód uložené procedury pak může sloučit data, která se kopírují s existujícími daty.
- název parametru typu tabulky: Zadejte název parametru typu tabulky zadaného v uložené proceduře.
- Parametry: 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. Můžete vybrat Import parametrů, abyste získali parametry uložené procedury.
Zámek tabulky pro hromadné vložení: Zvolte Ano nebo Ne (výchozí). 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ů. Tuto vlastnost můžete zadat, když vyberete jako chování při zápisu Vložit nebo Upsert. Pro více informací navštivte BULK INSERT (Transact-SQL)
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.
vypršení časového limitu dávkového zápisu: Zadejte čekací dobu na dokončení operace dávkového vložení, než vyprší časový limit. Povolená hodnota je časový interval. Pokud není zadána žádná hodnota, časový limit je výchozí hodnota 02:00:00.
Počet řádků pro dávku: Zadejte počet řádků, které se mají vložit do tabulky SQL na jednu 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í: 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í.
Mapování
Pokud jako cíl nepoužíváte službu Azure SQL Managed Instance s automatickým vytvářením tabulek, přejděte na Mapovánípro konfiguraci karty Mapování.
Pokud jako cíl použijete spravovanou instanci Azure SQL s automatickým vytvořením tabulky, s výjimkou konfigurace v mapování , můžete upravit typ cílových sloupců. Po výběru Import schématmůžete zadat typ sloupce pro cíl.
Například typ pro sloupec ID ve zdroji je int a můžete ho změnit na typ float při mapování na cílový sloupec.
Nastavení
Pokud chcete nakonfigurovat kartu Nastavení, přejděte na konfiguraci dalších nastavení v záložce Nastavení.
Paralelní kopírování ze spravované instance Azure SQL
Konektor služby Azure SQL Managed Instance v aktivitě kopírování poskytuje integrované dělení dat pro paralelní kopírování dat. Na kartě Zdroj aktivity kopírování najdete možnosti dělení dat.
Když povolíte dělené kopírování, aktivita kopírování spouští paralelní dotazy na zdroj spravované instance Azure SQL, aby načetla data podle oddílů. Paralelní stupeň je řízen Stupně 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ě generuje a spouští čtyři dotazy na základě zadané možnosti a nastavení oddílu a každý dotaz načte část dat z vaší spravované instance Azure SQL.
Doporučujeme povolit paralelní kopírování s dělením dat, zejména pokud načítáte velké množství dat ze spravované instance Azure SQL. 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.
Osvědčené postupy pro načtení dat s možností rozdělení:
- Zvolte jedinečný sloupec jako sloupec oddílu (například primární klíč nebo jedinečný klíč), abyste se vyhnuli vychýlení dat.
- Pokud má tabulka vestavěné oddíly, použijte možnost oddílu pro fyzické oddíly tabulky, abyste dosáhli lepšího výkonu.
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 má tabulka fyzický oddíl, zobrazí se "HasPartition" jako "ano", podobně jako na následujícím příkladu.
Souhrn tabulky
Souhrn a další informace o aktivitě kopírování služby Azure SQL Managed Instance najdete v následující tabulce.
Informace o zdroji
Jméno | Popis | Hodnota | Požadovaný | 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 Managed Instance. | Azure SQL Managed Instance | Ano | / |
Použít dotaz | Vlastní dotaz SQL pro čtení dat. | • Stůl •Dotaz • Uložená procedura |
Ano | / |
tabulky | Vaše zdrojová tabulka dat | < název tabulky> | Ne | schéma stůl |
dotaz | Vlastní dotaz SQL pro čtení dat. | < váš dotaz > | Ne | sqlReaderQuery |
název uložené procedury | Tato vlastnost je název uložené procedury, 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 > | Ne | sqlReaderStoredProcedureName |
parametr uložené procedury | Tyto parametry jsou určené pro uloženou proceduru. 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. | < páry názvu nebo hodnoty > | Ne | parametry uložené procedury |
vypršení časového limitu dotazu | Časový limit spuštění příkazu dotazu. | časový rozsah (výchozí hodnota je 120 minut) |
Ne | časový limit dotazu |
úroveň izolace | Určuje chování uzamčení transakce pro zdroj SQL. | • Čtení potvrzeno • Nepotvrzené čtení • Opakovatelné čtení •Serializovatelný •Snímek |
Ne | úroveň izolace • ReadCommitted • ReadUncommitted • Opakovatelný čtení •Serializovatelný •Snímek |
možnost oddílu | Možnosti dělení dat používané k načtení dat ze spravované instance Azure SQL | • Žádné (výchozí) Fyzické oddíly tabulky • Dynamický rozsah |
Ne | možnost rozdělení • Žádné (výchozí) • FyzickéPříčkyTabulky • DynamicRange |
název sloupce oddílu | Název zdrojového sloupce v typu integer nebo datum/datum a čas (int , smallint , bigint , date , smalldatetime , datetime , datetime2 nebo datetimeoffset ), který se používá pro rozsahovou particionaci při paralelním kopírování. Pokud není zadaný, index nebo primární klíč tabulky se automaticky rozpozná a použije jako sloupec pro oddíl. Pokud k načtení zdrojových dat použijete dotaz, připojte ?DfDynamicRangePartitionCondition do klauzule WHERE. |
< názvy vašich sloupců oddílů > | Ne | partitionColumnName |
horní mez oddílu | Maximální hodnota sloupce oddílu pro rozdělení rozsahu oddílů. Tato hodnota se používá k určení 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í. Pokud není zadáno, aktivita kopírování automaticky rozpozná hodnotu. | < horní mez oddílu > | Ne | partitionUpperBound |
Dolní mez partice | Minimální hodnota sloupce pro rozdělení oddílového rozsahu. Tato hodnota se používá k určení 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í. Pokud není zadáno, aktivita kopírování automaticky rozpozná hodnotu. | < dolní mez oddílu > | Ne | partitionLowerBound |
další sloupce | Přidejte další datové sloupce pro ukládání relativní cesty ke zdrojovým souborům nebo statické hodnotě. Podpora je zajištěna pro ten druhý. | •Jméno •Hodnota |
Ne | další sloupce •Jméno •hodnota |
Informace o cíli
Jméno | Popis | Hodnota | Povinný | 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 Managed Instance. | Azure SQL Managed Instance | Ano | / |
možnost Tabulka | Určuje, jestli se má cílová tabulka vytvořit automaticky, pokud neexistuje na základě zdrojového schématu. | • Použít existující • Automaticky vytvořit tabulku |
Ano | tableOption: • automatické vytvoření |
Tabulka | Cílová datová tabulka | <název tabulky> | Ano | schéma stůl |
chování při zápisu | Způsob zápisu aktivity kopírování při načítání dat do databáze Azure SQL Managed Instance. | • Vložit • Upsert • Uložená procedura |
Ne | writeBehavior: •vložit • vložit/aktualizovat (upsert) (sqlWriterStoredProcedureName, sqlWriterTableType, storedProcedureTableTypeParameterName, storedProcedureParameters) |
Použijte TempDB | Zda použít globální dočasnou tabulku nebo fyzickou tabulku jako dočasnou tabulku pro upsert. | vybraná (výchozí) nebo nevybraná | Ne | useTempDB: pravda (true, výchozí) nebo nepravda (false) |
Výběr schématu uživatelské databáze | Dočasné schéma pro vytvoření dočasné tabulky, pokud se používá fyzická tabulka. Poznámka: Uživatel musí 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. Použít, pokud nevyberete Použít tempDB. | vybraná (výchozí) nebo nevybraná | Ne | interimSchemaName |
klíčové sloupce | 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íč. | < váš klíčový sloupec> | Ne | klíče |
název uložené procedury | Název uložené procedury, která definuje, jak použít zdrojová data do cílové tabulky. Tato uložená procedura je vyvolána za dávku . Pro operace, které běží pouze jednou a nemají nic společného se zdrojovými daty, například odstranit nebo zkrátit, použijte předkopírovací skript vlastnost. | < název uložené procedury > | Ne | sqlWriterNázevUloženéProcedury |
typ tabulky | Název typu tabulky, který se má použít v uložené proceduře. Aktivita kopírování zpřístupní data přesunutá v dočasné tabulce s tímto typem tabulky. Kód uložené procedury pak může sloučit data, která se kopírují s existujícími daty. | < název typu tabulky > | Ne | sqlWriterTableType |
Název parametru typu tabulky | Název parametru typu tabulky zadaného v uložené proceduře. | < název vašeho parametru > typu tabulky | Ne | NázevParametruTypuTabulkyUloženéProcedury |
parametrů | Parametry uložené procedury. Povolené hodnoty jsou dvojice názvů a hodnot. Názvy a velikost písmen parametrů musí odpovídat názvům a velikostem písmen parametrů uložené procedury. | < páry názvu a hodnoty > | Ne | parametryUloženéProcedury |
hromadné vložení zámku 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 (výchozí) | Ne | sqlWriterUseTableLock: true nebo false (výchozí) |
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 k předkopírování > (řetězec) |
Ne | preCopyScript |
časový limit dávkového zápisu | Doba čekání na dokončení operace dávkového vložení před vypršením časového limitu. | časový rozsah (výchozí hodnota je 02:00:00) |
Ne | 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) |
Ne | 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) |
Ne | maximálníSoučasnáPřipojení |
Související obsah
- Přehled Azure SQL Managed Instance