Dvě možnosti
Možnosti máme v zásadě dvě. Složitější varianta, při které ale budete mít vše pod kontrolou, je vytvoření vlastního virtuálního stroje a instalace databáze podle vašeho výběru. Druhá možnost je pak využití databázového serveru jako služby.
Vlastní virtuální stroj s databází
Microsoft SQL Server
Pro Microsoft SQL Server si můžete vytvořit virtuální stroj s Windows Serverem a doinstalovat do něj SQL Server. V tomto případě budete mít v rámci měsíčního poplatku za běh virtuálního stroje i cenu licence serverového operačního systému Windows Server. Pro Microsoft SQL Server budete muset mít pořízenu příslušnou licenci nebo použít bezplatnou verzi Microsoft SQL Server Express. Tato verze je zdarma, její funkce jsou však v určitých ohledech omezené. Druhou možností je pak využití hotového virtuálního stroje s předinstalovaným SQL Serverem. V tomto případě máte v rámci poplatku za provoz virtuálního stroje i licenci pro Microsoft SQL Server.
Oracle
V případě Oracle jsou možnosti stejné jako u Microsoft SQL Serveru. Služba Microsoft Azure představuje certifikované prostředí pro Oracle databáze, které společnost Oracle plně podporuje.
MySQL
Pro MySQL si můžete opět vytvořit vlastní virtuální stroj a na něj nainstalovat MySQL. Pokud nechcete řešit instalaci, tak si můžete na VM Depot vyhledat virtuální stroj s předinstalovaným databázovým serverem MySQL.
Ostatní databáze
Asi je vám jasné, že do virtuálního stroje můžete nainstalovat, co potřebujete, nebo se podívat na VM Depot, jestli tam není hotový virtuální stroj, který splňuje vaše požadavky.
Databáze jako služba
Jako službu můžete v tuto chvíli využít Microsoft SQL Server, MySQL a mongoDB. Microsoft SQL Server jako služba je provozován společností Microsoft. MySQL a mongoDB provozuje třetí strana na službě Microsoft Azure.
Azure SQL
Azure SQL je Microsoft SQL Server nabízený jako služba. Pomocí portálu založíte databázi, přičemž každá databáze může běžet na svém vlastním serveru nebo můžete na jeden server dát více databází, stejně jako byste si Microsoft SQL Server provozovali sami. Databáze je schovaná za firewall, ve výchozím nastavení je možné k databázi přistupovat jen ze služeb, které běží na Microsoft Azure. Pokud chcete k databázi přistupovat i „z venku“, tak musíte přenastavit firewall. Pravidla pro firewall můžete nastavit pro server jako celek nebo pro jednotlivé databáze.
Pravidla pro firewall lze také nastavit pomocí úložných procedur.
- sp_set_firewall_rule
- sp_set_database_firewall_rule
Pro kompletní správu databází a serveru můžete také použít PowerShell. Pokud povolíte přístup zvenčí, tak s Azure SQL pracujete jako s normální databází.
Import a export databáze
Pro import databáze je třeba nejdříve databázi nahrát na Azure Blob Storage (viz dále), a pak provést import, např. pomocí PowerShell. Export funguje obdobně, databáze se exportuje do Azure Blob Storage, odkud si ji pak můžete stáhnout.
- Start-AzureSqlDatabaseExport
- Start-AzureSqlDatabaseImport
- Get-AzureSqlDatabaseImportExportStatus
MySQL a mongoDB
U MySQL a mongoDB je princip stejný, jako u Azure SQL. K databázi máte přístup běžným způsobem, jako byste si databázi spravovali sami.
Azure Storage
Na konec jsem si nechal službu Azure Storage. Tato služba se dělí na tři části:
- Blobs – nestrukturovaná data, typicky soubory. Podpora CDN.
- Tables – nerelační databáze pro ukládání extrémního počtu záznamů.
- Queues – klasická fronta zpráv.
SDK pro práci Azure Storage
Všechny služby z Azure Storage jsou přístupné pomocí REST rozhraní. Pro ulehčení práce je k dispozici SDK pro většinu programovacích jazyků.
Práce s Blobs v C#
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("sample");
CloudBlockBlob blockBlob = container.GetBlockBlobReference("picture.png");
using (var fileStream = System.IO.File.OpenRead(@"image.png"))
{
blockBlob.UploadFromStream(fileStream);
}
foreach (IListBlobItem item in container.ListBlobs(null, false))
{
Console.WriteLine(item.Uri);
}
Console.ReadLine();
blockBlob.Delete();
Console.ReadLine();
Práce s Tables Python
from azure.storage import *
table_service = TableService(account_name='stepanb', account_key='--------')
table_service.create_table('weather')
weather = {'PartitionKey': '1', 'RowKey': str(counter), 'temperature' : data[0], 'humidity': data[1]}
table_service.insert_entity('weather', weather)
HDInsight
Podpora pro Big data a Hadoop. Vzhledem k tomu, že o tomto tématu akorát vím, že to Microsoft Azure podporuje, tak bych jeho zpracování přenechal raději někomu, kdo tomu opravu rozumí.
Závěr
Výše jsme si shrnuli aktuální možnosti práce s různými datovými úložišti. U většiny datových úložišť si můžete vybrat, zda si je budete provozovat sami (IaaS) nebo je využijete jako službu (PaaS). Každopádně pokud potřebujete vysoce dostupné datové úložiště, tak by Microsoft Azure mohl být pro vás řešením.
Přehled komentářů