Online zpracování transakcí (OLTP)
Správa transakčních dat pomocí počítačových systémů se označuje jako online zpracování transakcí (OLTP). Systémy OLTP zaznamenávají obchodní interakce, ke kterým dochází v každodenní operaci organizace, a podporují dotazování těchto dat, aby bylo možno odvozovat.
Transakční data
Transakční data jsou informace, které sledují interakce související s aktivitami organizace. Tyto interakce jsou obvykle obchodní transakce, jako jsou platby přijaté od zákazníků, platby dodavatelů, produkty procházející inventarizací, přijatými objednávkami nebo službami dodaných. Transakční události, které představují samotné transakce, obvykle obsahují časovou dimenzi, některé číselné hodnoty a odkazy na jiná data.
Transakce obvykle musí být atomické a konzistentní. Atomicita znamená, že celá transakce vždy proběhne úspěšně nebo selže jako jedna jednotka práce a nikdy nezůstane v polokončném stavu. Pokud transakci nelze dokončit, musí databázový systém vrátit zpět všechny kroky, které byly již provedeny v rámci této transakce. V tradičním systému pro správu relačních databází (RDBMS) k tomuto vrácení zpět dojde automaticky, pokud transakci nelze dokončit. Konzistence znamená, že transakce vždy opouštějí data v platném stavu. (Jedná se o velmi neformální popis atomicity a konzistence. Existují více formálních definic těchto vlastností, například ACID.)
Transakční databáze mohou podporovat silnou konzistenci transakcí pomocí různých strategií uzamčení, jako je pesimistické uzamčení, aby se zajistilo, že všechna data jsou silně konzistentní v kontextu podniku pro všechny uživatele a procesy.
Nejběžnější architekturou nasazení, která používá transakční data, je vrstva úložiště dat v 3úrovňové architektuře. 3úrovňová architektura se obvykle skládá z prezentační vrstvy, vrstvy obchodní logiky a vrstvy úložiště dat. Související architektura nasazení je N-úrovňová architektura, která může mít více středních vrstev zpracovávajících obchodní logiku.
Typické vlastnosti transakčních dat
Transakční data mají tendenci mít následující vlastnosti:
Požadavek | Popis |
---|---|
Normalizace | Vysoce normalizované |
Schéma | Schéma při zápisu, silně vynucené |
Konzistence | Silná konzistence, záruky ACID |
Integrita | Vysoká integrita |
Používá transakce. | Ano |
Strategie uzamykání | Pesimistické nebo optimistické |
Aktualizovatelné | Ano |
Připojitelné | Ano |
Úloha | Těžké zápisy, střední čtení |
Indexování | Primární a sekundární indexy |
Velikost datumu | Malá až střední |
Model | Relační |
Obrazec dat | Tabelární |
Flexibilita dotazů | Vysoce flexibilní |
Měřítko | Malé (MB) až Velké (několik TB) |
Kdy použít toto řešení
Zvolte OLTP, když potřebujete efektivně zpracovávat a ukládat obchodní transakce a okamžitě je zpřístupnit klientským aplikacím konzistentním způsobem. Tuto architekturu použijte, pokud by jakékoli hmatatelné zpoždění zpracování mělo negativní dopad na každodenní provoz firmy.
Systémy OLTP jsou navržené tak, aby efektivně zpracovávaly a ukládaly transakce a dotazují se na transakční data. Cílem efektivního zpracování a ukládání jednotlivých transakcí systémem OLTP je částečně dosaženo normalizací dat – to znamená rozdělení dat do menších bloků, které jsou méně redundantní. To podporuje efektivitu, protože umožňuje systému OLTP zpracovávat velký počet transakcí nezávisle a vyhnout se dodatečnému zpracování potřebnému k zachování integrity dat v přítomnosti redundantních dat.
Výzvy
Implementace a používání systému OLTP může způsobit několik problémů:
- Systémy OLTP nejsou vždy vhodné pro zpracování agregací nad velkým objemem dat, i když existují výjimky, jako je dobře plánované řešení založené na SQL Serveru. Analýza dat, která spoléhají na agregované výpočty nad miliony jednotlivých transakcí, jsou pro systém OLTP velmi náročné na prostředky. Mohou být pomalé a mohou způsobit zpomalení tím, že blokují jiné transakce v databázi.
- Při provádění analýz a generování sestav s daty, která jsou vysoce normalizovaná, jsou dotazy obvykle složité, protože většina dotazů potřebuje denormalizuje data pomocí spojení. Zásady vytváření názvů pro databázové objekty v systémech OLTP jsou také obvykle terse a stručné. Vyšší normalizace spojená s terse zásadami vytváření názvů znesnadňuje podnikovým uživatelům dotazování systémů OLTP bez pomoci DBA nebo vývojáře dat.
- Ukládání historie transakcí na neomezenou dobu a ukládání příliš velkého množství dat v libovolné tabulce může vést k pomalému výkonu dotazů v závislosti na počtu uložených transakcí. Běžným řešením je udržovat relevantní časové období (například aktuální fiskální rok) v systému OLTP a přesměrovat historická data do jiných systémů, jako je datové tržiště nebo datový sklad.
OLTP v Azure
Aplikace, jako jsou weby hostované ve službě App Service Web Apps, rozhraní REST API spuštěná ve službě App Service nebo mobilní nebo desktopové aplikace komunikují se systémem OLTP, obvykle prostřednictvím zprostředkujícího rozhraní REST API.
Většina úloh v praxi není čistě OLTP. K dispozici je také analytická komponenta. Kromě toho se zvyšuje poptávka po generování sestav v reálném čase, jako je spouštění sestav v provozním systému. Označuje se také jako hybridní transakční/analytické zpracování (HTAP) (Hybridní transakční a analytické zpracování). Další informace najdete v tématu OLAP (Online Analytical Processing).
V Azure budou všechna následující úložiště dat splňovat základní požadavky na OLTP a správu transakčních dat:
- Azure SQL Database
- SQL Server na virtuálním počítači Azure
- Azure Database for MySQL
- Azure Database for PostgreSQL
Klíčová kritéria výběru
Pokud chcete zúžit možnosti, začněte zodpovězením těchto otázek:
Chcete místo správy vlastních serverů spravovanou službu?
Má vaše řešení specifické závislosti pro kompatibilitu Microsoft SQL Serveru, MySQL nebo PostgreSQL? Vaše aplikace může omezit úložiště dat, která můžete zvolit na základě ovladačů, které podporuje pro komunikaci s úložištěm dat, nebo předpokladů, které se týkají používané databáze.
Jsou vaše požadavky na propustnost zápisu zvláště vysoké? Pokud ano, zvolte možnost, která poskytuje tabulky v paměti.
Je vaše řešení víceklientní? Pokud ano, zvažte možnosti, které podporují fondy kapacity, kde více instancí databáze načítá z elastického fondu prostředků místo pevných prostředků na databázi. To vám může pomoct lépe distribuovat kapacitu napříč všemi instancemi databáze a zlepšit tak nákladovou efektivitu vašeho řešení.
Musí být vaše data čitelná s nízkou latencí ve více oblastech? Pokud ano, zvolte možnost, která podporuje čtení sekundárních replik.
Musí být vaše databáze vysoce dostupná napříč geograficky grafickými oblastmi? Pokud ano, zvolte možnost, která podporuje geografickou replikaci. Zvažte také možnosti, které podporují automatické převzetí služeb při selhání z primární repliky na sekundární repliku.
Má vaše databáze specifické potřeby zabezpečení? Pokud ano, prozkoumejte možnosti, které poskytují možnosti, jako je zabezpečení na úrovni řádků, maskování dat a transparentní šifrování dat.
Matice schopností
Následující tabulky shrnují klíčové rozdíly v možnostech.
Obecné možnosti
Schopnost | Azure SQL Database | SQL Server na virtuálním počítači Azure | Azure Database for MySQL | Azure Database for PostgreSQL |
---|---|---|---|---|
Je spravovaná služba | Yes | Ne | Ano | Yes |
Běží na platformě | – | Windows, Linux, Docker | – | N/A |
Programovatelnost 1 | T-SQL, .NET, R | T-SQL, .NET, R, Python | SQL | SQL, PL/pgSQL, PL/JavaScript (v8) |
[1] Nezahrnuje podporu klientských ovladačů, což umožňuje mnoha programovacím jazykům připojit se k úložišti dat OLTP a používat ho.
Možnosti škálovatelnosti
Schopnost | Azure SQL Database | SQL Server na virtuálním počítači Azure | Azure Database for MySQL | Azure Database for PostgreSQL |
---|---|---|---|---|
Maximální velikost instance databáze | 4 TB | 256 TB | 16 TB | 16 TB |
Podporuje fondy kapacity. | Ano | Ano | No | Ne |
Podporuje horizontální navýšení kapacity clusterů. | No | Ano | No | Ne |
Dynamická škálovatelnost (vertikální navýšení kapacity) | Yes | Ne | Ano | Yes |
Analytické možnosti úloh
Schopnost | Azure SQL Database | SQL Server na virtuálním počítači Azure | Azure Database for MySQL | Azure Database for PostgreSQL |
---|---|---|---|---|
Dočasné tabulky | Ano | Ano | No | Ne |
Tabulky v paměti (optimalizované pro paměť) | Ano | Ano | No | Ne |
Podpora columnstore | Ano | Ano | No | Ne |
Adaptivní zpracování dotazů | Ano | Ano | No | Ne |
Možnosti dostupnosti
Schopnost | Azure SQL Database | SQL Server na virtuálním počítači Azure | Azure Database for MySQL | Azure Database for PostgreSQL |
---|---|---|---|---|
Čitelné sekundární soubory | Ano | Ano | Ano | Yes |
Geografická replikace | Ano | Ano | Ano | Yes |
Automatické převzetí služeb při selhání do sekundárního | Yes | No | No | Ne |
Obnovení k určitému bodu v čase | Ano | Ano | Ano | Yes |
Možnosti zabezpečení
Schopnost | Azure SQL Database | SQL Server na virtuálním počítači Azure | Azure Database for MySQL | Azure Database for PostgreSQL |
---|---|---|---|---|
Zabezpečení na úrovni řádků | Ano | Ano | Ano | Yes |
Maskování dat | Ano | Ano | No | Ne |
Transparentní šifrování dat | Ano | Ano | Ano | Yes |
Omezení přístupu na konkrétní IP adresy | Ano | Ano | Ano | Yes |
Omezení přístupu pouze pro povolení přístupu k virtuální síti | Ano | Ano | Ano | Yes |
Ověřování Microsoft Entra | Yes | Ne | Ano | Yes |
Ověřování Active Directory | No | Ano | No | Ne |
Vícefaktorové ověřování | Yes | Ne | Ano | Yes |
Podporuje funkci Always Encrypted. | Ano | Ano | No | Ne |
Privátní IP adresa | No | Ano | No | Ne |
Přispěvatelé
Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.
Hlavní autor:
- Zoiner Tejada | Generální ředitel a architekt
Další kroky
- Úvod do tabulek optimalizovaných pro paměť
- Přehled olTP v paměti a scénáře použití
- Optimalizace výkonu pomocí technologií v paměti ve službě Azure SQL Database a Azure SQL Managed Instance
- Distribuované transakce v cloudových databázích