Kurz: Použití nástroje pro migraci dat k migraci dat do Azure Cosmos DB
PLATÍ PRO:
SQL API
Tento kurz obsahuje pokyny k použití nástroje pro migraci dat do služby Azure Cosmos DB, který dokáže importovat data z různých zdrojů do kontejnerů a tabulek Azure Cosmos. Můžete importovat ze souborů JSON, CSV, SQL, MongoDB, služby Azure Table Storage, Amazon DynamoDB a dokonce i z kolekcí rozhraní SQL API služby Azure Cosmos DB. Pro použití se službou Azure Cosmos DB tato data migrujete do kolekcí a tabulek. Nástroj pro migraci dat můžete použít také při migraci z kolekce s jedním oddílem do kolekce s více oddíly pro rozhraní SQL API.
Poznámka
Nástroj pro migraci dat Azure Cosmos DB je open source určený pro malé migrace. V případě rozsáhlejších migrací si prohlédněte našeho průvodce ingestací dat.
- SQL API – k importu dat v malém měřítku můžete použít libovolnou z možností zdroje, které poskytuje nástroj pro migraci dat. Přečtěte si o možnostech migrace pro import dat ve velkém měřítku.
- rozhraní API pro tabulky – K importu dat můžete použít nástroj pro migraci dat nebo AzCopy. Další informace najdete v tématu Import dat pro použití s rozhraním Table API služby Azure Cosmos DB.
- Rozhraní API služby Azure Cosmos DB pro MongoDB – Nástroj pro migraci dat nepodporuje rozhraní API služby Azure Cosmos DB pro MongoDB jako zdroj nebo jako cíl. Pokud chcete migrovat data do nebo z kolekcí ve službě Azure Cosmos DB, přečtěte si pokyny v tématu Migrace dat MongoDB do databáze Cosmos pomocí rozhraní API služby Azure Cosmos DB pro MongoDB. Nástroj pro migraci dat můžete stále použít k exportu dat z MongoDB do kolekcí rozhraní SQL API služby Azure Cosmos DB pro použití s rozhraním SQL API.
- rozhraní API Cassandra – Nástroj pro migraci dat není podporovaným nástrojem pro import pro rozhraní API Cassandra účty. Další informace o možnostech migrace pro import dat do rozhraní API Cassandra
- Gremlin API – Nástroj pro migraci dat není v tuto chvíli podporovaným nástrojem pro import účtů rozhraní Gremlin API. Informace o možnostech migrace pro import dat do rozhraní Gremlin API
Tento kurz se zabývá následujícími úkony:
- Instalace nástroje pro migraci dat
- Import dat z různých zdrojů dat
- Export ze služby Azure Cosmos DB do formátu JSON
Požadavky
Než budete postupovat podle pokynů v tomto článku, nezapomeňte provést následující kroky:
Nainstalujte Microsoft .NET Framework 4.51 nebo novější.
Zvýšená propustnost: Doba trvání migrace dat závisí na propustnosti, kterou pro jednotlivé kolekce nebo sady kolekcí nastavíte. V případě rozsáhlejších migrací dat nezapomeňte propustnost zvýšit. Po dokončení migrace propustnost snižte, abyste dosáhli nižších nákladů. Další informace o zvýšení propustnosti v Azure Portal najdete v tématu Úrovně výkonu a cenové úrovně v Azure Cosmos DB.
Vytvoření prostředků služby Azure Cosmos DB: Ještě před zahájením migrace dat vytvořte všechny kolekce na webu Azure Portal. Pokud chcete migrovat na účet Azure Cosmos DB s propustností na úrovni databáze, při vytváření kontejnerů Azure Cosmos oddílu zadejte klíč oddílu.
Důležité
Pokud chcete zajistit, aby nástroj pro migraci dat při připojování k účtům Azure Cosmos používá protokol TLS (Transport Layer Security) 1.2, použijte .NET Framework verze 4.7 nebo postupujte podle pokynů uvedených v tomto článku.
Přehled
Nástroj pro migraci dat je open source řešení umožňující import dat do služby Azure Cosmos DB z různých zdrojů, včetně:
- Soubory JSON
- MongoDB
- SQL Server
- Soubory CSV
- Azure Table Storage
- Amazon DynamoDB
- HBase
- Kontejnery Azure Cosmos
Přestože nástroj pro import obsahuje grafické uživatelské rozhraní (dtui.exe), dá se ovládat i z příkazového řádku (dt.exe). Ve skutečnosti existuje možnost zobrazit výstup přidruženého příkazu po nastavení importu prostřednictvím uživatelského rozhraní. Při importu můžete transformovat tabulková zdrojová data, jako jsou SQL Server nebo soubory CSV, a vytvořit hierarchické vztahy (vnořené dokumenty). V dalších částech tohoto článku se dozvíte více o možnostech zdroje, ukázkových příkazech pro import z jednotlivých zdrojů, možnostech cíle a zobrazení výsledků importu.
Poznámka
Nástroj pro migraci Azure Cosmos DB byste měli používat pouze pro malé migrace. V případě rozsáhlých migrací si prohlédněte našeho průvodce ingestací dat.
Instalace
Stažení spustitelného balíčku
- Stáhněte si soubor ZIP s nejnovější podepsanoudt.exe adtui.exe Windows binárních souborů.
- Rozbalte do libovolného adresáře v počítači a otevřete extrahovaný adresář a vyhledejte binární soubory.
Sestavení ze zdroje
Zdrojový kód nástroje pro migraci je k dispozici na GitHubu v tomto úložišti. Řešení si můžete stáhnout a zkompilovat místně a pak spustit:
- Dtui.exe: Verze nástroje s grafickým rozhraním
- Dt.exe: Verze nástroje pro příkazový řádek
Výběr zdroje dat
Po instalaci nástroje je čas importovat data. Jaký druh dat chcete importovat?
- Soubory JSON
- MongoDB
- Exportované soubory MongoDB
- SQL Server
- Soubory CSV
- Azure Table storage
- Amazon DynamoDB
- Objekt blob
- Kontejnery Azure Cosmos
- HBase
- Hromadný import Azure Cosmos DB
- Sekvenční import záznamů Azure Cosmos DB
Import souborů JSON
Možnost importu ze zdroje souborů JSON umožňuje importovat jeden nebo více souborů JSON s jedním dokumentem nebo souborů JSON, z nichž každý obsahuje pole dokumentů JSON. Při přidávání složek, které mají soubory JSON k importu, máte možnost rekurzivně vyhledávat soubory v podsložkách.
Připojovací řetězec má následující formát:
AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>
- je
<CosmosDB Endpoint>identifikátor URI koncového bodu. Tuto hodnotu můžete získat z Azure Portal. Přejděte ke svému Cosmos Azure. Otevřete podokno Přehled a zkopírujte hodnotu identifikátoru URI. <AccountKey>je "Heslo" nebo PRIMÁRNÍ KLÍČ. Tuto hodnotu můžete získat z Azure Portal. Přejděte ke svému Cosmos Azure. Otevřete podokno Připojovací řetězce nebo Klíče a zkopírujte hodnotu Heslo nebo PRIMÁRNÍ KLÍČ.<CosmosDB Database>je název databáze CosmosDB.
Příklad: AccountEndpoint=https://myCosmosDBName.documents.azure.com:443/;AccountKey=wJmFRYna6ttQ79ATmrTMKql8vPri84QBiHTt6oinFkZRvoe7Vv81x9sn6zlVlBY10bEPMgGM982wfYXpWXWB9w==;Database=myDatabaseName
Poznámka
Pomocí příkazu Verify se ujistěte, že je Cosmos DB zadaný v poli připojovacího řetězce přístupný.
Tady je několik ukázek příkazového řádku pro import souborů JSON:
#Import a single JSON file
dt.exe /s:JsonFile /s.Files:.\Sessions.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Sessions /t.CollectionThroughput:2500
#Import a directory of JSON files
dt.exe /s:JsonFile /s.Files:C:\TESessions\*.json /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Sessions /t.CollectionThroughput:2500
#Import a directory (including sub-directories) of JSON files
dt.exe /s:JsonFile /s.Files:C:\LastFMMusic\**\*.json /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Music /t.CollectionThroughput:2500
#Import a directory (single), directory (recursive), and individual JSON files
dt.exe /s:JsonFile /s.Files:C:\Tweets\*.*;C:\LargeDocs\**\*.*;C:\TESessions\Session48172.json;C:\TESessions\Session48173.json;C:\TESessions\Session48174.json;C:\TESessions\Session48175.json;C:\TESessions\Session48177.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:subs /t.CollectionThroughput:2500
#Import a single JSON file and partition the data across 4 collections
dt.exe /s:JsonFile /s.Files:D:\\CompanyData\\Companies.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:comp[1-4] /t.PartitionKey:name /t.CollectionThroughput:2500
Import z MongoDB
Důležité
Pokud importujete do účtu Cosmos nakonfigurovaného s rozhraním API služby Azure Cosmos DB pro MongoDB, postupujte podle těchto pokynů.
Pomocí možnosti importu ze zdroje MongoDB můžete importovat z jedné kolekce MongoDB, volitelně filtrovat dokumenty pomocí dotazu a upravit strukturu dokumentů pomocí projekce.
Připojovací řetězec je ve standardním formátu MongoDB:
mongodb://<dbuser>:<dbpassword>@<host>:<port>/<database>
Poznámka
Pomocí příkazu Verify se ujistěte, že je instance MongoDB zadaná v poli připojovacího řetězce přístupná.
Zadejte název kolekce, ze které se data budou importovat. Volitelně můžete zadat nebo zadat soubor pro dotaz, například , nebo projekci, jako je , pro filtrování a tvarování {pop: {$gt:5000}} {loc:0} importovaných dat.
Tady je několik ukázek příkazového řádku pro import z MongoDB:
#Import all documents from a MongoDB collection
dt.exe /s:MongoDB /s.ConnectionString:mongodb://<dbuser>:<dbpassword>@<host>:<port>/<database> /s.Collection:zips /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:BulkZips /t.IdField:_id /t.CollectionThroughput:2500
#Import documents from a MongoDB collection which match the query and exclude the loc field
dt.exe /s:MongoDB /s.ConnectionString:mongodb://<dbuser>:<dbpassword>@<host>:<port>/<database> /s.Collection:zips /s.Query:{pop:{$gt:50000}} /s.Projection:{loc:0} /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:BulkZipsTransform /t.IdField:_id/t.CollectionThroughput:2500
Import exportovaných souborů MongoDB
Důležité
Pokud importujete do účtu Azure Cosmos DB s podporou MongoDB, postupujte podle těchto pokynů.
Možnost importu ze zdrojového exportovaného souboru JSON z MongoDB umožňuje importovat jeden nebo několik souborů JSON vygenerovaných nástrojem mongoexport.
Při přidávání složek s exportem souborů JSON mongoDB pro import máte možnost rekurzivně vyhledávat soubory v podsložkách.
Tady je ukázka příkazového řádku pro import z exportovaných souborů JSON z MongoDB:
dt.exe /s:MongoDBExport /s.Files:D:\mongoemployees.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:employees /t.IdField:_id /t.Dates:Epoch /t.CollectionThroughput:2500
Import z SQL Serveru
Možnost importu ze zdroje SQL umožňuje importovat z jednotlivých databází SQL Serveru a volitelně pomocí dotazu filtrovat záznamy určené k importu. Kromě toho můžete upravit strukturu dokumentu zadáním oddělovače vnořování (další informace najdete níže).
Připojovací řetězec je ve standardním formátu připojovacího řetězce SQL.
Poznámka
Pomocí příkazu Verify se ujistěte, že je instance SQL Serveru zadaná v poli připojovacího řetězce přístupná.
Vlastnost oddělovače vnořování slouží k vytvoření hierarchických vztahů (vnořených dokumentů) během importu. Představte si následující dotaz SQL:
select CAST(BusinessEntityID AS varchar) as Id, Name, AddressType as [Address.AddressType], AddressLine1 as [Address.AddressLine1], City as [Address.Location.City], StateProvinceName as [Address.Location.StateProvinceName], PostalCode as [Address.PostalCode], CountryRegionName as [Address.CountryRegionName] from Sales.vStoreWithAddresses WHERE AddressType='Main Office'
Dotaz vrátí následující (částečné) výsledky:
Všimněte si aliasů, jako jsou Address.AddressType a Address.Location.StateProvinceName. Díky zadání oddělovače vnořování („.“) nástroj pro import během importu vytvoří vnořené dokumenty Address a Address.Location. Tady je příklad výsledného dokumentu ve službě Azure Cosmos DB:
{ "id": "956", "Name": "Finer Sales and Service", "Address": { "AddressType": "Main Office", "AddressLine1": "#500-75 O'Connor Street", "Location": { "City": "Ottawa", "StateProvinceName": "Ontario" }, "PostalCode": "K4B 1S2", "CountryRegionName": "Canada" } }
Tady je několik ukázek příkazového řádku pro import z SQL Serveru:
#Import records from SQL which match a query
dt.exe /s:SQL /s.ConnectionString:"Data Source=<server>;Initial Catalog=AdventureWorks;User Id=advworks;Password=<password>;" /s.Query:"select CAST(BusinessEntityID AS varchar) as Id, * from Sales.vStoreWithAddresses WHERE AddressType='Main Office'" /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Stores /t.IdField:Id /t.CollectionThroughput:2500
#Import records from sql which match a query and create hierarchical relationships
dt.exe /s:SQL /s.ConnectionString:"Data Source=<server>;Initial Catalog=AdventureWorks;User Id=advworks;Password=<password>;" /s.Query:"select CAST(BusinessEntityID AS varchar) as Id, Name, AddressType as [Address.AddressType], AddressLine1 as [Address.AddressLine1], City as [Address.Location.City], StateProvinceName as [Address.Location.StateProvinceName], PostalCode as [Address.PostalCode], CountryRegionName as [Address.CountryRegionName] from Sales.vStoreWithAddresses WHERE AddressType='Main Office'" /s.NestingSeparator:. /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:StoresSub /t.IdField:Id /t.CollectionThroughput:2500
Import souborů CSV a převod formátu CSV na JSON
Možnost importu ze zdrojového souboru CSV umožňuje importovat jeden nebo několik souborů CSV. Při přidávání složek, které mají soubory CSV pro import, máte možnost rekurzivně vyhledávat soubory v podsložkách.
Podobně jako u zdroje SQL můžete použít vlastnost oddělovače vnořování k vytvoření hierarchických vztahů (vnořených dokumentů) během importu. Představte si následující řádek záhlaví a datové řádky CSV:
Všimněte si aliasů, jako jsou DomainInfo.Domain_Name a RedirectInfo.Redirecting. Díky zadání oddělovače vnořování („.“) nástroj pro import během importu vytvoří vnořené dokumenty DomainInfo a RedirectInfo. Tady je příklad výsledného dokumentu ve službě Azure Cosmos DB:
{ "DomainInfo": { "Domain_Name": "ACUS.GOV", "Domain_Name_Address": "https: / /www.ACUS.GOV" }, "Federal Agency": "Administrative Conference of the USA", "RedirectInfo": { "Redirecting": "0", "Redirect_Destination": "" }, "id": "9cc565c5-ebcd-1c03-ebd3-cc3e2 814d" }
Nástroj pro import se pokusí odvodit informace o typu pro hodnoty bez uvozovek v souborech CSV (hodnoty v uvozovkách jsou vždy považovány za řetězce). Typy se identifikují v následujícím pořadí: číslo, datetime, logická hodnota.
O importu CSV byste měli vědět ještě dvě věci:
- Ve výchozím nastavení se v hodnotách bez uvozovek vždy oříznou tabulátory a mezery, zatímco hodnoty v uvozovkách se zachovají tak, jak jsou. Toto chování je možné přepsat pomocí zaškrtávacího políčka Trim quoted values (Oříznout hodnoty v uvozovkách) nebo možnosti příkazového řádku /s.TrimQuoted.
- Ve výchozím nastavení se řetězec null bez uvozovek považuje za hodnotu null. Toto chování je možné přepsat (tedy aby se řetězec null bez uvozovek považoval za řetězec null) pomocí zaškrtávacího políčka Treat unquoted NULL as string (Považovat hodnotu NULL bez uvozovek za řetězec) nebo možnosti příkazového řádku /s.NoUnquotedNulls.
Tady je ukázka příkazového řádku pro import CSV:
dt.exe /s:CsvFile /s.Files:.\Employees.csv /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Employees /t.IdField:EntityID /t.CollectionThroughput:2500
Import ze služby Azure Table Storage
Možnost importu ze zdroje Azure Table Storage umožňuje importovat z jednotlivých tabulek Azure Table Storage. Entity tabulky, které se mají importovat, můžete volitelně filtrovat.
Výstupem můžete být data importovaná z Azure Table Storage do tabulek a entit Azure Cosmos DB pro použití s rozhraní API pro tabulky. Importovaná data mohou být také výstupem do kolekcí a dokumentů pro použití s rozhraním SQL API. Nástroj rozhraní API pro tabulky ale k dispozici jako cíl pouze v nástroji příkazového řádku. Pomocí uživatelského rozhraní nástroje rozhraní API pro tabulky data nelze exportovat do nástroje pro migraci dat. Další informace najdete v tématu Import dat pro použití s rozhraním Table API služby Azure Cosmos DB.
Formát připojovacího řetězce Azure Table Storage je následující:
DefaultEndpointsProtocol=<protocol>;AccountName=<Account Name>;AccountKey=<Account Key>;
Poznámka
Pomocí příkazu Verify se ujistěte, že je instance služby Azure Table Storage zadaná v poli připojovacího řetězce přístupná.
Zadejte název tabulky Azure, ze které se má importovat. Volitelně můžete zadat filtr.
Možnost importu ze zdroje Azure Table Storage nabízí následující další možnosti:
- Include Internal Fields (Zahrnout interní pole)
- All (Vše) – Zahrnou se všechna interní pole (PartitionKey, RowKey a Timestamp)
- None (Žádné) – Všechna interní pole se vyloučí
- RowKey – Zahrne se pouze pole RowKey
- Select Columns (Vybrané sloupce)
- Filtry Azure Table Storage nepodporují projekce. Pokud chcete importovat pouze určité vlastnosti entit tabulky Azure, přidejte se je do seznamu Select Columns (Vybrané sloupce). Všechny ostatní vlastnosti entit se budou ignorovat.
Tady je ukázka příkazového řádku pro import ze služby Azure Table Storage:
dt.exe /s:AzureTable /s.ConnectionString:"DefaultEndpointsProtocol=https;AccountName=<Account Name>;AccountKey=<Account Key>" /s.Table:metrics /s.InternalFields:All /s.Filter:"PartitionKey eq 'Partition1' and RowKey gt '00001'" /s.Projection:ObjectCount;ObjectSize /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:metrics /t.CollectionThroughput:2500
Import z Amazon DynamoDB
Možnost importu ze zdroje Amazon DynamoDB umožňuje importovat z jedné tabulky Amazon DynamoDB. Volitelně může filtrovat entity, které se mají importovat. K dispozici je několik šablon, které nastavení importu co nejvíce zjednodušují.
Formát připojovacího řetězce Amazon DynamoDB je následující:
ServiceURL=<Service Address>;AccessKey=<Access Key>;SecretKey=<Secret Key>;
Poznámka
Pomocí příkazu Verify se ujistěte, že je instance Amazon DynamoDB zadaná v poli připojovacího řetězce přístupná.
Tady je ukázka příkazového řádku pro import z Amazon DynamoDB:
dt.exe /s:DynamoDB /s.ConnectionString:ServiceURL=https://dynamodb.us-east-1.amazonaws.com;AccessKey=<accessKey>;SecretKey=<secretKey> /s.Request:"{ """TableName""": """ProductCatalog""" }" /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<Azure Cosmos DB Endpoint>;AccountKey=<Azure Cosmos DB Key>;Database=<Azure Cosmos database>;" /t.Collection:catalogCollection /t.CollectionThroughput:2500
Import ze služby Azure Blob Storage
Možnosti importu ze zdrojového souboru JSON, exportovaného souboru MongoDB a souboru CSV umožňují importovat jeden nebo několik souborů ze služby Azure Blob Storage. Po zadání adresy URL kontejneru objektů blob a klíče účtu zadejte regulární výraz pro výběr souborů, které se mají importovat.
Tady je ukázka příkazového řádku pro import souborů JSON ze služby Azure Blob Storage:
dt.exe /s:JsonFile /s.Files:"blobs://<account key>@account.blob.core.windows.net:443/importcontainer/.*" /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:doctest
Import z kolekce rozhraní SQL API
Možnost importu ze zdroje Azure Cosmos DB umožňuje importovat data z jednoho nebo více kontejnerů Azure Cosmos a volitelně filtrovat dokumenty pomocí dotazu.
Formát připojovacího řetězce Azure Cosmos DB je následující:
AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;
Připojovací řetězec účtu Azure Cosmos DB můžete načíst ze stránky Klíče v Azure Portal, jak je popsáno v tématu Správa účtu Azure Cosmos DB. Název databáze je ale potřeba připojit k připojovacímu řetězci v následujícím formátu:
Database=<CosmosDB Database>;
Poznámka
Pomocí příkazu Verify se ujistěte, že je instance služby Azure Cosmos DB zadaná v poli připojovacího řetězce přístupná.
Pokud chcete importovat z jednoho kontejneru Azure Cosmos, zadejte název kolekce, ze které se mají importovat data. Pokud chcete importovat z více než jednoho kontejneru Azure Cosmos, zadejte regulární výraz, který bude odpovídat jednomu nebo více názvům kolekcí (například collection01 | collection02 | collection03). Volitelně můžete zadat nebo zadat soubor pro dotaz, který filtruje a formuje data, která importujete.
Poznámka
Vzhledem k tomu, že pole kolekce přijímá regulární výrazy, musí být tyto znaky uvozeny odpovídajícím způsobem, pokud importujete z jedné kolekce, jejíž název obsahuje znaky regulárního výrazu.
Možnost importu ze zdroje Azure Cosmos DB nabízí následující pokročilé možnosti:
- Include Internal Fields (Zahrnout interní pole): Určuje, jestli se mají do exportu zahrnout systémové vlastnosti dokumentu Azure Cosmos DB (například _rid, _ts).
- Number of Retries on Failure (Počet opakování v případě selhání): Určuje, kolikrát se má opakovat pokus o připojení ke službě Azure Cosmos DB v případě přechodného selhání (například přerušení síťového připojení).
- Retry Interval (Interval opakování): Určuje, jak dlouho se má počkat před zopakováním pokusu o připojení ke službě Azure Cosmos DB v případě přechodného selhání (například přerušení síťového připojení).
- Connection Mode (Režim připojení): Určuje režim připojení ke službě Azure Cosmos DB. Dostupné možnosti jsou DirectTcp, DirectHttps a Gateway. Režimy přímého připojení jsou rychlejší, zatímco režim brány lépe vyhovuje požadavkům brány firewall, protože využívá pouze port 443.
Tip
Nástroj pro import jako výchozí režim používá DirectTcp. Pokud máte problémy s bránou firewall, přepněte režim připojení na Gateway, protože vyžaduje pouze port 443.
Tady je několik ukázek příkazového řádku pro import ze služby Azure Cosmos DB:
#Migrate data from one Azure Cosmos container to another Azure Cosmos containers
dt.exe /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /s.Collection:TEColl /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:TESessions /t.CollectionThroughput:2500
#Migrate data from more than one Azure Cosmos container to a single Azure Cosmos container
dt.exe /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /s.Collection:comp1|comp2|comp3|comp4 /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:singleCollection /t.CollectionThroughput:2500
#Export an Azure Cosmos container to a JSON file
dt.exe /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /s.Collection:StoresSub /t:JsonFile /t.File:StoresExport.json /t.Overwrite
Tip
Nástroj pro import dat Azure Cosmos DB podporuje také import dat z emulátoru služby Azure Cosmos DB. Pokud importujete data z místního emulátoru, nastavte koncový bod na https://localhost:<port>.
Import z HBase
Možnost importu ze zdroje HBase umožňuje importovat data z tabulky HBase a volitelně data filtrovat. K dispozici je několik šablon, které nastavení importu co nejvíce zjednodušují.
Formát připojovacího řetězce HBase Stargate je následující:
ServiceURL=<server-address>;Username=<username>;Password=<password>
Poznámka
Pomocí příkazu Verify se ujistěte, že je instance HBase zadaná v poli připojovacího řetězce přístupná.
Tady je ukázka příkazového řádku pro import z HBase:
dt.exe /s:HBase /s.ConnectionString:ServiceURL=<server-address>;Username=<username>;Password=<password> /s.Table:Contacts /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:hbaseimport
Import do rozhraní SQL API (hromadný import)
Nástroj pro hromadný import Azure Cosmos DB umožňuje importovat z jakékoli dostupné možnosti zdroje a k zajištění efektivity využívá uloženou proceduru Azure Cosmos DB. Nástroj podporuje import do jednoho kontejneru Azure s Cosmos oddíly. Podporuje také shardovaný import, kdy jsou data rozdělená na více než jeden kontejner Azure s Cosmos oddíly. Další informace o dělení dat najdete v tématu Dělení a škálování ve službě Azure Cosmos DB. Nástroj vytvoří a spustí uloženou proceduru a pak ji odstraní z cílových kolekcí.
Formát připojovacího řetězce Azure Cosmos DB je následující:
AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;
Připojovací řetězec účtu služby Azure Cosmos DB můžete načíst ze stránky Klíče na webu Azure Portal, jak je popsáno v tématu Správa účtu služby Azure Cosmos DB, ale k připojovacímu řetězci je potřeba připojit název databáze v následujícím formátu:
Database=<CosmosDB Database>;
Poznámka
Pomocí příkazu Verify se ujistěte, že je instance služby Azure Cosmos DB zadaná v poli připojovacího řetězce přístupná.
Pokud chcete importovat do jedné kolekce, zadejte název kolekce, ze které se mají data importovat, a klikněte na tlačítko Add (Přidat). Pokud chcete importovat do více než jedné kolekce, buď zadejte název každé kolekce jednotlivě, nebo použijte následující syntaxi k určení více než jedné kolekce: collection_prefix[počáteční index – koncový index]. Při zadávání více než jedné kolekce pomocí výše uvedené syntaxe mějte na paměti následující pokyny:
- Podporují se pouze vzory pojmenování s rozsahem celých čísel. Například zadáním collection[0-3] se vytvoří následující kolekce: collection0, collection1, collection2, collection3.
- Můžete použít zkrácenou syntaxi: collection[3] vytvoří stejnou sadu kolekcí uvedenou v kroku 1.
- Je možné zadat více než jedno nahrazení. Například collection[0-1] [0-9] vygeneruje 20 názvů kolekcí s počátečními nulami (collection01, collection02, collection03 atd.).
Po zadání názvů kolekcí zvolte požadovanou propustnost kolekcí (400 až 10 000 RU/s). K zajištění nejlepšího výkonu zvolte vyšší propustnost. Další informace o úrovních výkonu najdete v tématu Úrovně výkonu ve službě Azure Cosmos DB.
Poznámka
Nastavení propustnosti výkonu se použije pouze při vytváření kolekce. Pokud zadaná kolekce již existuje, její propustnost se neupraví.
Při importu do více kolekcí nástroj pro import podporuje horizontální dělení na základě hodnoty hash. V tomto scénáři zadejte vlastnost dokumentu, kterou chcete použít jako klíč oddílu. (Pokud je klíč oddílu prázdný, dokumenty se náhodně horizontálním dělením napříč cílovými kolekcemi.)
Volitelně můžete zadat, které pole ve zdroji importu se má během importu použít jako vlastnost ID dokumentu Azure Cosmos DB. Pokud dokumenty tuto vlastnost nemají, nástroj pro import vygeneruje identifikátor GUID jako hodnotu vlastnosti ID.
Během importu je k dispozici několik pokročilých možností. Za prvé, přestože nástroj vkládá výchozí uloženou proceduru hromadného importu (BulkInsert.js), můžete zadat svou vlastní uloženou proceduru importu:
Kromě toho máte při importování datových typů (například z SQL Serveru nebo MongoDB) na výběr ze tří možností importu:
- String (Řetězec): Zachování jako hodnoty řetězce
- Epoch (Epocha): Zachování jako hodnoty unixového času
- Both (Obojí): Zachování hodnoty řetězce i hodnoty unixového času. Tato možnost vytvoří vnořený dokument, například: "date_joined": { "Value": "2013-10-21T21:17:25.2410000Z", "Epoch": 1382390245 }
Nástroj pro hromadný import ze služby Azure Cosmos DB nabízí následující další pokročilé možnosti:
- Batch Size (Velikost dávky): Nástroj jako výchozí velikost dávky používá 50. Pokud jsou dokumenty určené k importu velké, zvažte snížení velikosti dávky. Pokud jsou dokumenty určené k importu malé, zvažte naopak zvýšení velikosti dávky.
- Max Script Size (bytes) (Maximální velikost skriptu v bajtech): Nástroj jako maximální velikost skriptu používá 512 kB.
- Zakázat automatické generování ID: Pokud má každý dokument, který se má importovat, pole ID, můžete výběrem této možnosti zvýšit výkon. Dokumenty, které nemají jedinečné pole ID, se neimportují.
- Aktualizovat existující dokumenty: Nástroj ve výchozím nastavení nenahrauje existující dokumenty konflikty ID. Výběrem této možnosti můžete přepsat existující dokumenty s odpovídajícími ID. Tato funkce je užitečná pro plánované migrace dat, při kterých se aktualizují stávající dokumenty.
- Počet opakování při selhání: Určuje, jak často se má během přechodných selhání opakovat připojení k Azure Cosmos DB (například přerušení připojení k síti).
- Retry Interval (Interval opakování): Určuje, jak dlouho se má počkat před zopakováním pokusu o připojení ke službě Azure Cosmos DB v případě přechodného selhání (například přerušení síťového připojení).
- Connection Mode (Režim připojení): Určuje režim připojení ke službě Azure Cosmos DB. Dostupné možnosti jsou DirectTcp, DirectHttps a Gateway. Režimy přímého připojení jsou rychlejší, zatímco režim brány lépe vyhovuje požadavkům brány firewall, protože využívá pouze port 443.
Tip
Nástroj pro import jako výchozí režim používá DirectTcp. Pokud máte problémy s bránou firewall, přepněte režim připojení na Gateway, protože vyžaduje pouze port 443.
Import do rozhraní SQL API (sekvenční import záznamů)
Nástroj pro sekvenční import záznamů Azure Cosmos DB umožňuje importovat z dostupné možnosti zdroje po záznamech. Tuto možnost můžete zvolit, pokud importujete do stávající kolekce, která dosáhla kvóty uložených procedur. Nástroj podporuje import do jednoho kontejneru Azure (s jedním i více oddíly) Cosmos. Podporuje také shardovaný import, kdy jsou data rozdělená na více než jeden kontejner Azure s jedním oddílem nebo Cosmos oddíly. Další informace o dělení dat najdete v tématu Dělení a škálování ve službě Azure Cosmos DB.
Formát připojovacího řetězce Azure Cosmos DB je následující:
AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;
Připojovací řetězec pro účet Azure Cosmos DB můžete načíst ze stránky Klíče v Azure Portal, jak je popsáno v tématu Správa účtu Azure Cosmos DB. Název databáze je ale potřeba připojit k připojovacímu řetězci v následujícím formátu:
Database=<Azure Cosmos database>;
Poznámka
Pomocí příkazu Verify se ujistěte, že je instance služby Azure Cosmos DB zadaná v poli připojovacího řetězce přístupná.
Pokud chcete importovat do jedné kolekce, zadejte název kolekce, do které se mají importovat data, a potom klikněte na tlačítko Přidat. Pokud chcete importovat do více kolekcí, zadejte název každé kolekce jednotlivě. K určení více než jedné kolekce můžete použít také následující syntaxi: collection_prefix[počáteční index – koncový index]. Při zadávání více než jedné kolekce prostřednictvím výše uvedené syntaxe mějte na paměti následující pokyny:
- Podporují se pouze vzory pojmenování s rozsahem celých čísel. Například zadáním collection[0-3] se vytvoří následující kolekce: collection0, collection1, collection2, collection3.
- Můžete použít zkrácenou syntaxi: collection[3] vytvoří stejnou sadu kolekcí uvedenou v kroku 1.
- Je možné zadat více než jedno nahrazení. Například collection[0-1] [0-9] vytvoří 20 názvů kolekcí s počátečními nulami (collection01, collection02, collection03 atd.).
Po zadání názvů kolekcí zvolte požadovanou propustnost kolekcí (400 až 250 000 RU/s). K zajištění nejlepšího výkonu zvolte vyšší propustnost. Další informace o úrovních výkonu najdete v tématu Úrovně výkonu ve službě Azure Cosmos DB. Jakýkoli import do kolekce s propustností větší než 10 000 RU/s vyžaduje klíč oddílu. Pokud se rozhodnete, že potřebujete více než 250 000 RU/s, musíte na portálu podat žádost o navýšení limitu účtu.
Poznámka
Nastavení propustnosti se použije pouze při vytváření kolekce nebo databáze. Pokud zadaná kolekce již existuje, její propustnost se neupraví.
Při importu do více než jedné kolekce nástroj pro import podporuje shardování na základě hodnoty hash. V tomto scénáři zadejte vlastnost dokumentu, kterou chcete použít jako klíč oddílu. (Pokud je klíč oddílu prázdný, dokumenty se náhodně horizontálním dělením napříč cílovými kolekcemi.)
Volitelně můžete zadat, které pole ve zdroji importu se má během importu použít jako vlastnost ID dokumentu Azure Cosmos DB. (Pokud dokumenty tuto vlastnost nemají, nástroj pro import vygeneruje identifikátor GUID jako hodnotu vlastnosti ID.)
Během importu je k dispozici několik pokročilých možností. Za prvé, při importování datových typů (například z SQL Serveru nebo MongoDB) máte na výběr ze tří možností importu:
- String (Řetězec): Zachování jako hodnoty řetězce
- Epoch (Epocha): Zachování jako hodnoty unixového času
- Both (Obojí): Zachování hodnoty řetězce i hodnoty unixového času. Tato možnost vytvoří vnořený dokument, například: "date_joined": { "Value": "2013-10-21T21:17:25.2410000Z", "Epoch": 1382390245 }
Nástroj pro sekvenční import záznamů Azure Cosmos DB nabízí následující další pokročilé možnosti:
- Number of Parallel Requests (Počet paralelních požadavků): Nástroj ve výchozím nastavení využívá dva paralelní požadavky. Pokud jsou dokumenty určené k importu malé, zvažte zvýšení počtu paralelních požadavků. Pokud toto číslo zvýšíte příliš, může docházet k omezování rychlosti importu.
- Zakázat generování automatického ID: Pokud každý dokument, který chcete importovat, má pole ID, pak výběr této možnosti může zvýšit výkon. V dokumentech chybí pole s jedinečným ID, které se neimportují.
- Aktualizovat existující dokumenty: nástroj ve výchozím nastavení nenahrazuje stávající dokumenty s konflikty ID. Výběrem této možnosti povolíte přepsání stávajících dokumentů s vyhovujícími ID. Tato funkce je užitečná pro plánované migrace dat, při kterých se aktualizují stávající dokumenty.
- počet opakovaných pokusů o selhání: určuje, jak často se má připojení k Azure Cosmos DB během přechodného selhání (například přerušení připojení k síti) opakovat.
- Interval opakování: určuje, jak dlouho se má čekat mezi opakovaným pokusem o připojení k Azure Cosmos DB během přechodného selhání (například přerušení připojení k síti).
- Connection Mode (Režim připojení): Určuje režim připojení ke službě Azure Cosmos DB. Dostupné možnosti jsou DirectTcp, DirectHttps a Gateway. Režimy přímého připojení jsou rychlejší, zatímco režim brány lépe vyhovuje požadavkům brány firewall, protože využívá pouze port 443.
Tip
Nástroj pro import jako výchozí režim používá DirectTcp. Pokud máte problémy s bránou firewall, přepněte režim připojení na Gateway, protože vyžaduje pouze port 443.
Zadání zásady indexování
Když nástroji pro migraci povolíte vytváření kolekcí rozhraní SQL API služby Azure Cosmos DB během importu, můžete zadat zásadu indexování kolekcí. V části pokročilých možností hromadného importu do služby Azure Cosmos DB a sekvenčního importu záznamů do služby Azure Cosmos DB přejděte do části Indexing Policy (Zásady indexování).
Pomocí pokročilé možnosti Indexing Policy (Zásady indexování) můžete vybrat soubor zásad indexování, ručně zadat zásadu indexování nebo si vybrat ze sady výchozích šablon (kliknutím pravým tlačítkem do textového pole pro zásady indexování).
Nástroj poskytuje následující šablony zásad:
- Default (Výchozí). Tato zásada je nejvhodnější při provádění dotazů rovnosti s řetězci. Funguje také v případě, že použijete dotazy pořadí podle, rozsah a rovnosti pro čísla. Tato zásada má nižší režijní náklady na úložiště indexů než Range (Rozsah).
- Range (Rozsah). Tyto zásady jsou doporučené při použití dotazů ORDER BY, Range a rovnosti u čísel i řetězců. Tato zásada má vyšší režijní náklady na úložiště indexů než Default (Výchozí) a Hash (Hodnota hash).
Poznámka
Pokud nezadáte zásadu indexování, použije se výchozí zásada. Další informace o zásadách indexování najdete v tématu Zásady indexování ve službě Azure Cosmos DB.
Export do souboru JSON
Azure Cosmos DB exportér JSON umožňuje exportovat kteroukoli z dostupných možností zdroje do souboru json, který obsahuje pole dokumentů json. Nástroj zpracovává export za vás. Případně se můžete rozhodnout zobrazit výsledný příkaz migrace a spustit příkaz sami. Výsledný soubor JSON je možné uložit místně nebo ve službě Azure Blob Storage.
Volitelně můžete zvolit, aby se prettify výsledný kód JSON. Tato akce zvětší velikost výsledného dokumentu a tím umožní lepší čitelnost obsahu.
Standardní export JSON
[{"id":"Sample","Title":"About Paris","Language":{"Name":"English"},"Author":{"Name":"Don","Location":{"City":"Paris","Country":"France"}},"Content":"Don's document in Azure Cosmos DB is a valid JSON document as defined by the JSON spec.","PageViews":10000,"Topics":[{"Title":"History of Paris"},{"Title":"Places to see in Paris"}]}]Export JSON prettified
[ { "id": "Sample", "Title": "About Paris", "Language": { "Name": "English" }, "Author": { "Name": "Don", "Location": { "City": "Paris", "Country": "France" } }, "Content": "Don's document in Azure Cosmos DB is a valid JSON document as defined by the JSON spec.", "PageViews": 10000, "Topics": [ { "Title": "History of Paris" }, { "Title": "Places to see in Paris" } ] }]
Tady je ukázka příkazového řádku pro export souboru JSON do služby Azure Blob Storage:
dt.exe /ErrorDetails:All /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB database_name>" /s.Collection:<CosmosDB collection_name>
/t:JsonFile /t.File:"blobs://<Storage account key>@<Storage account name>.blob.core.windows.net:443/<Container_name>/<Blob_name>"
/t.Overwrite
Pokročilá konfigurace
Na obrazovce Advanced configuration (Pokročilá konfigurace) zadejte umístění souboru protokolu, do kterého chcete zapisovat případné chyby. Na tuto stránku se vztahují následující pravidla:
Pokud není zadaný název souboru, vrátí se na stránce výsledků všechny chyby.
Pokud je zadaný název souboru bez adresáře, soubor se vytvoří (nebo přepíše) v aktuálním adresáři prostředí.
Pokud vyberete existující soubor, soubor bude přepsán, ale není k dispozici možnost připojit.
Pak zvolte, jestli se mají protokolovat všechny chybové zprávy, kritické chybové zprávy, nebo se nemají protokolovat žádné. Nakonec se rozhodněte, jak často se bude aktualizovat průběh ve zprávě o přenosu na obrazovce.
Potvrzení nastavení importu a příkazového řádku pro zobrazení
Až zadáte informace o zdroji, cílové informace a pokročilou konfiguraci, zkontrolujte souhrn migrace a zobrazte nebo zkopírujte Výsledný příkaz migrace, pokud chcete. (Kopírování příkazu je užitečné pro automatizaci operací importu.)
Jakmile budete s možnostmi zdroje a cíle spokojeni, klikněte na Import (Importovat). V průběhu importu se aktualizuje uplynulý čas, počet přenesených souborů a informace o selháních (pokud jste nezadali název souboru v pokročilé konfiguraci). Po dokončení můžete výsledky exportovat (například pro účely řešení případných selhání importu).
Nový import můžete spustit také tak, že resetujete všechny hodnoty nebo zachováte stávající nastavení. (Například se můžete rozhodnout, že chcete zachovat informace o připojovacím řetězci, zdroj a cíl a další možnosti.)
Další kroky
V tomto kurzu jste provedli následující úlohy:
- Instalace nástroje pro migraci dat
- Import dat z různých zdrojů dat
- Export ze služby Azure Cosmos DB do formátu JSON
Teď můžete pokračovat k dalšímu kurzu, kde zjistíte, jak dotazovat data pomocí služby Azure Cosmos DB.
chcete se pokusit plánování kapacity pro migraci na Azure Cosmos DB?
- Pokud znáte počet virtuální jádra a serverů v existujícím databázovém clusteru, přečtěte si téma odhadování jednotek žádostí pomocí virtuální jádra nebo vCPU .
- pokud znáte typické míry požadavků pro aktuální databázovou úlohu, přečtěte si téma odhadace jednotek žádostí pomocí Azure Cosmos DB kapacity plánovače .