Processamento de transações online (OLTP)Online transaction processing (OLTP)

O gerenciamento de dados transacionais com sistemas informáticos é referido como Online OLTP (transação).The management of transactional data using computer systems is referred to as Online Transaction Processing (OLTP). Sistemas OLTP registram interações empresa à medida que ocorrem na operação diária da organização e oferecem suporte à consulta destes dados para fazer inferências.OLTP systems record business interactions as they occur in the day-to-day operation of the organization, and support querying of this data to make inferences.

Dados transacionaisTransactional data

Dados transacionais são informações que controla as interações relacionados com atividades da organização.Transactional data is information that tracks the interactions related to an organization's activities. Essas interações são, normalmente, as transações de negócios, como pagamentos recebidas dos clientes, os pagamentos feitos a fornecedores, produtos, movendo em meio a inventariar, orders direcionados ou serviços entregues.These interactions are typically business transactions, such as payments received from customers, payments made to suppliers, products moving through inventory, orders taken, or services delivered. Eventos transacionais, que representam as transações em si, normalmente, contêm uma dimensão de tempo, alguns valores numéricos e referências a outros dados.Transactional events, which represent the transactions themselves, typically contain a time dimension, some numerical values, and references to other data.

Transações normalmente, tem de ser atômica e consistente.Transactions typically need to be atomic and consistent. Atomicidade significa que toda uma transação sempre for concluída com êxito ou falha como uma unidade de trabalho e nunca é deixada no estado concluído para metade.Atomicity means that an entire transaction always succeeds or fails as one unit of work, and is never left in a half-completed state. Se não é possível concluir uma transação, o sistema de base de dados tem reverter quaisquer passos que já foram feitos como parte dessa transação.If a transaction cannot be completed, the database system must roll back any steps that were already done as part of that transaction. Num RDBMS tradicional, este reversão ocorre automaticamente, se não é possível concluir uma transação.In a traditional RDBMS, this rollback happens automatically if a transaction cannot be completed. Consistência significa que transações deixam sempre os dados num estado válido.Consistency means that transactions always leave the data in a valid state. (Esses são muito informais descrições de atomicidade e consistência.(These are very informal descriptions of atomicity and consistency. Existem mais formais definições destas propriedades, tais como ACID.)There are more formal definitions of these properties, such as ACID.)

Bases de dados transacionais podem suportar a consistência forte para transações usando várias estratégias de bloqueios, como o bloqueio pessimista, para garantir que todos os dados são vivamente consistentes dentro do contexto da empresa, para todos os utilizadores e processos.Transactional databases can support strong consistency for transactions using various locking strategies, such as pessimistic locking, to ensure that all data is strongly consistent within the context of the enterprise, for all users and processes.

A arquitetura de implementação mais comum que utiliza dados transacionais é a camada de arquivo de dados numa arquitetura de 3 camadas.The most common deployment architecture that uses transactional data is the data store tier in a 3-tier architecture. Uma arquitetura de 3 camadas normalmente consiste numa camada de apresentação, a camada de lógica de negócio e a camada de arquivo de dados.A 3-tier architecture typically consists of a presentation tier, business logic tier, and data store tier. É uma arquitetura de implantação relacionadas a camadas arquitetura, que pode ter várias camadas de meio manipular a lógica de negócios.A related deployment architecture is the N-tier architecture, which may have multiple middle-tiers handling business logic.

Traços típicos de dados transacionaisTypical traits of transactional data

Dados transacionais tende a ter as seguintes características:Transactional data tends to have the following traits:

RequisitoRequirement DescriçãoDescription
NormalizaçãoNormalization Altamente normalizadosHighly normalized
EsquemaSchema Esquema na escrita, fortemente impostaSchema on write, strongly enforced
ConsistênciaConsistency Consistência forte, garantias de ACIDStrong consistency, ACID guarantees
IntegridadeIntegrity Integridade elevadaHigh integrity
Utilizar transaçõesUses transactions SimYes
Estratégia de bloqueioLocking strategy Otimista ou pessimistaPessimistic or optimistic
AtualizávelUpdateable SimYes
AppendableAppendable SimYes
Carga de trabalhoWorkload Leituras de gravações pesadas, moderadasHeavy writes, moderate reads
IndexaçãoIndexing Índices primários e secundáriosPrimary and secondary indexes
Tamanho de DatumDatum size Pequeno e médio portesSmall to medium sized
ModeloModel RelacionalRelational
Forma de dadosData shape TabularTabular
Flexibilidade de consultaQuery flexibility Altamente flexívelHighly flexible
EscalaScale Pequenas (MB) para o grande (alguns TB)Small (MBs) to Large (a few TBs)

Quando utilizar esta soluçãoWhen to use this solution

Escolha o OLTP quando precisar de forma eficiente processar e armazenar as transações comerciais e imediatamente que fiquem disponíveis para as aplicações cliente de maneira consistente.Choose OLTP when you need to efficiently process and store business transactions and immediately make them available to client applications in a consistent way. Utilize esta arquitetura quando qualquer tangível atraso no processamento de ter um impacto negativo em operações diárias da empresa.Use this architecture when any tangible delay in processing would have a negative impact on the day-to-day operations of the business.

Sistemas OLTP foram concebidos para processar e armazenar as transações, bem como consultar dados transacionais com eficiência.OLTP systems are designed to efficiently process and store transactions, as well as query transactional data. O objetivo de forma eficiente de processamento e armazenamento de transações individuais por um sistema OLTP parcialmente é conseguido através da normalização de dados — ou seja, dividir os dados em segmentos mais pequenos que são menos redundantes.The goal of efficiently processing and storing individual transactions by an OLTP system is partly accomplished by data normalization — that is, breaking the data up into smaller chunks that are less redundant. Isso oferece suporte a eficiência porque ela permite que o sistema OLTP processar um grande número de transações de forma independente e evita um processamento extra necessário para manter a integridade dos dados na presença de dados redundantes.This supports efficiency because it enables the OLTP system to process large numbers of transactions independently, and avoids extra processing needed to maintain data integrity in the presence of redundant data.

DesafiosChallenges

Implementar e utilizar um sistema OLTP, podem criar alguns desafios:Implementing and using an OLTP system can create a few challenges:

  • Sistemas OLTP nem sempre são boas para tratar de agregações em grandes volumes de dados, apesar de existirem exceções, como uma solução baseada em SQL Server bem planejada.OLTP systems are not always good for handling aggregates over large amounts of data, although there are exceptions, such as a well-planned SQL Server-based solution. Análise relativamente aos dados, que se baseiam nos cálculos de agregação mais milhões de transações individuais, é recursos com muita intensidade de um sistema OLTP.Analytics against the data, that rely on aggregate calculations over millions of individual transactions, are very resource intensive for an OLTP system. Eles podem ser lentos a executar e pode fazer com que um lento ao bloquear outras transações na base de dados.They can be slow to execute and can cause a slow-down by blocking other transactions in the database.
  • Quando realização de análises e relatórios em dados que são altamente normalizados, as consultas tendem a ser complexos, como a maioria das consultas precisam desnormalizar os dados através de associações.When conducting analytics and reporting on data that is highly normalized, the queries tend to be complex, because most queries need to de-normalize the data by using joins. Além disso, as convenções de nomenclatura para objetos de banco de dados em sistemas OLTP costumam ser simples e sucinto.Also, naming conventions for database objects in OLTP systems tend to be terse and succinct. A normalização de maior juntamente com as convenções de nomenclatura concisa torna difícil para os utilizadores empresariais consultar, sem a ajuda de um desenvolvedor DBA ou dados de sistemas OLTP.The increased normalization coupled with terse naming conventions makes OLTP systems difficult for business users to query, without the help of a DBA or data developer.
  • Armazenar o histórico de transações indefinidamente e armazenar muitos dados em qualquer uma tabela podem levar a diminuir o desempenho de consulta, dependendo do número de transações armazenadas.Storing the history of transactions indefinitely and storing too much data in any one table can lead to slow query performance, depending on the number of transactions stored. A solução comum é manter uma janela relevante de tempo (por exemplo, o ano fiscal atual) no sistema OLTP e descarregar dados históricos para outros sistemas, como um data mart ou armazém de dados.The common solution is to maintain a relevant window of time (such as the current fiscal year) in the OLTP system and offload historical data to other systems, such as a data mart or data warehouse.

OLTP no AzureOLTP in Azure

Aplicativos como Web sites alojados no App Service Web Apps, APIs REST em execução no serviço de aplicações, ou aplicações móveis ou ambiente de trabalho comunicam com o sistema OLTP, normalmente por meio de um intermediário de REST API.Applications such as websites hosted in App Service Web Apps, REST APIs running in App Service, or mobile or desktop applications communicate with the OLTP system, typically via a REST API intermediary.

Na prática, a maioria das cargas de trabalho não são puramente OLTP.In practice, most workloads are not purely OLTP. Tende a ser um componente analítico também.There tends to be an analytical component as well. Além disso, existe uma procura crescente de relatórios em tempo real, como a execução de relatórios no sistema operacional.In addition, there is an increasing demand for real-time reporting, such as running reports against the operational system. Isto é também referido como HTAP (híbrida transacional e processamento analítico).This is also referred to as HTAP (Hybrid Transactional and Analytical Processing). Para obter mais informações, consulte processamento analítico Online (OLAP).For more information, see Online Analytical Processing (OLAP).

No Azure, todos os seguintes arquivos de dados irão cumprir os requisitos de núcleos para OLTP e o gerenciamento de dados de transação:In Azure, all of the following data stores will meet the core requirements for OLTP and the management of transaction data:

Principais critérios de seleçãoKey selection criteria

Para limitar as opções, comece por resposta a estas perguntas:To narrow the choices, start by answering these questions:

  • Pretende que um serviço gerido, em vez de gerir os seus próprios servidores?Do you want a managed service rather than managing your own servers?

  • O sua solução tem dependências específicas para compatibilidade com o Microsoft SQL Server, MySQL ou PostgreSQL?Does your solution have specific dependencies for Microsoft SQL Server, MySQL or PostgreSQL compatibility? Seu aplicativo pode limitar os dados de arquivos, que pode escolher com base nos controladores que ele oferece suporte para comunicação com o arquivo de dados ou as suposições faz sobre qual a base de dados é utilizada.Your application may limit the data stores you can choose based on the drivers it supports for communicating with the data store, or the assumptions it makes about which database is used.

  • Os requisitos de débito de escrita são particularmente alto?Are your write throughput requirements particularly high? Se Sim, escolha uma opção que oferece tabelas em memória.If yes, choose an option that provides in-memory tables.

  • É a multi-inquilino de solução?Is your solution multi-tenant? Se assim for, considere as opções que suportam conjuntos de capacidade, em que várias instâncias de base de dados desenhar a partir de um conjunto elástico de recursos, em vez de recursos foi corrigidos por base de dados.If so, consider options that support capacity pools, where multiple database instances draw from an elastic pool of resources, instead of fixed resources per database. Isto pode ajudar a melhor distribuir capacidade em todas as instâncias de base de dados e pode tornar sua solução de custo-eficiência.This can help you better distribute capacity across all database instances, and can make your solution more cost effective.

  • Os dados têm de ser legível com baixa latência em várias regiões?Does your data need to be readable with low latency in multiple regions? Se Sim, escolha uma opção que oferece suporte a réplicas secundárias legíveis.If yes, choose an option that supports readable secondary replicas.

  • A base de dados tem de ser de elevada disponibilidade em regiões de gráfico de georreplicação?Does your database need to be highly available across geo-graphic regions? Se Sim, escolha uma opção que suporta a replicação geográfica.If yes, choose an option that supports geographic replication. Além disso, considere as opções que suportam a ativação pós-falha automática de réplica primária para uma réplica secundária.Also consider the options that support automatic failover from the primary replica to a secondary replica.

  • O seu banco de dados tem necessidades de segurança específicos?Does your database have specific security needs? Se Sim, examine as opções que fornecem capacidades, como a segurança ao nível da linha, máscara de dados e encriptação de dados transparente.If yes, examine the options that provide capabilities like row level security, data masking, and transparent data encryption.

Matriz de capacidadeCapability matrix

As tabelas seguintes resumem as principais diferenças nos recursos.The following tables summarize the key differences in capabilities.

Capacidades geraisGeneral capabilities

Base de Dados SQL do AzureAzure SQL Database SQL Server numa máquina virtual do AzureSQL Server in an Azure virtual machine Base de Dados do Azure para MySQLAzure Database for MySQL Base de Dados do Azure para PostgreSQLAzure Database for PostgreSQL
É serviço geridoIs Managed Service SimYes NãoNo SimYes SimYes
É executada na plataformaRuns on Platform N/AN/A Windows, Linux, DockerWindows, Linux, Docker N/AN/A N/AN/A
Programação 1Programmability 1 T-SQL, .NET, RT-SQL, .NET, R T-SQL, .NET, R, PythonT-SQL, .NET, R, Python T-SQL, .NET, R, PythonT-SQL, .NET, R, Python SQLSQL

[1], não incluindo o suporte de controladores de cliente, que permite que muitas linguagens de programação ligar e utilizar o arquivo de dados OLTP.[1] Not including client driver support, which allows many programming languages to connect to and use the OLTP data store.

Capacidades de escalabilidadeScalability capabilities

Base de Dados SQL do AzureAzure SQL Database SQL Server numa máquina virtual do AzureSQL Server in an Azure virtual machine Base de Dados do Azure para MySQLAzure Database for MySQL Base de Dados do Azure para PostgreSQLAzure Database for PostgreSQL
Tamanho da instância de base de dados máximoMaximum database instance size 4 TB4 TB 256 TB256 TB 1 TB1 TB 1 TB1 TB
Suporta agrupamentos de capacidadeSupports capacity pools SimYes SimYes NãoNo NãoNo
Suporta clusters aumentar horizontalmenteSupports clusters scale out NãoNo SimYes NãoNo NãoNo
Escalabilidade dinâmica (aumento vertical)Dynamic scalability (scale up) SimYes NãoNo SimYes SimYes

Capacidades de análise de carga de trabalhoAnalytic workload capabilities

Base de Dados SQL do AzureAzure SQL Database SQL Server numa máquina virtual do AzureSQL Server in an Azure virtual machine Base de Dados do Azure para MySQLAzure Database for MySQL Base de Dados do Azure para PostgreSQLAzure Database for PostgreSQL
Tabelas temporaisTemporal tables SimYes SimYes NãoNo NãoNo
Tabelas em memória (com otimização de memória)In-memory (memory-optimized) tables SimYes SimYes NãoNo NãoNo
Suporte de ColumnstoreColumnstore support SimYes SimYes NãoNo NãoNo
Processamento de consultas adaptávelAdaptive query processing SimYes SimYes NãoNo NãoNo

Capacidades de disponibilidadeAvailability capabilities

Base de Dados SQL do AzureAzure SQL Database SQL Server numa máquina virtual do AzureSQL Server in an Azure virtual machine Base de Dados do Azure para MySQLAzure Database for MySQL Base de Dados do Azure para PostgreSQLAzure Database for PostgreSQL
Bases de dados secundárias legíveisReadable secondaries SimYes SimYes NãoNo NãoNo
Replicação geográficaGeographic replication SimYes SimYes NãoNo NãoNo
Ativação pós-falha automática para secundárioAutomatic failover to secondary SimYes NãoNo NãoNo NãoNo
Restauro para um ponto anterior no tempoPoint-in-time restore SimYes SimYes SimYes SimYes

Funcionalidades de segurançaSecurity capabilities

Base de Dados SQL do AzureAzure SQL Database SQL Server numa máquina virtual do AzureSQL Server in an Azure virtual machine Base de Dados do Azure para MySQLAzure Database for MySQL Base de Dados do Azure para PostgreSQLAzure Database for PostgreSQL
Segurança ao nível da linhaRow level security SimYes SimYes SimYes SimYes
Máscara de dadosData masking SimYes SimYes NãoNo NãoNo
Encriptação de Dados TransparenteTransparent data encryption SimYes SimYes SimYes SimYes
Restringir o acesso a endereços IP específicosRestrict access to specific IP addresses SimYes SimYes SimYes SimYes
Restringir o acesso para permitir o acesso VNET apenasRestrict access to allow VNET access only SimYes SimYes NãoNo NãoNo
Autenticação do Azure Active DirectoryAzure Active Directory authentication SimYes SimYes NãoNo NãoNo
Autenticação do Active DirectoryActive Directory authentication NãoNo SimYes NãoNo NãoNo
Multi-Factor AuthenticationMulti-factor authentication SimYes SimYes NãoNo NãoNo
Suporta Always EncryptedSupports Always Encrypted SimYes SimYes SimYes NãoNo
IP privadoPrivate IP NãoNo SimYes SimYes NãoNo