Recursos do SQL Server no Linux

Concluído

Para justificar uma migração do SQL Server para detentores de orçamento, ele ajuda a saber quais recursos do SQL Server podem fornecer uma vantagem competitiva para seus sistemas.

Suponha que, depois de pesquisar o que é o SQL Server no Linux, você queira garantir que os recursos atuais disponíveis atendam aos requisitos dos Wide World Importers para processamento de dados existentes e futuros.

Aqui, você aprenderá sobre os principais recursos do SQL Server no Linux.

Desempenho

O SQL Server no Linux suporta as necessidades concorrentes de taxa de transferência transacional rápida e análise responsiva, oferecendo uma solução de Processamento Analítico Transacional Híbrido (HTAP). O HTAP usa algumas das principais tecnologias de desempenho do SQL Server:

OLTP (In-Memory Online Transaction Processing, processamento de transações online na memória)

Combinando tabelas otimizadas para memória e procedimentos armazenados compilados, a Wide World Importers pôde ver ganhos substanciais de desempenho em suas tabelas transacionais; por exemplo, estado da sessão de escrita e leitura para o site de comércio eletrônico.

Índice Columnstore

O SQL Server dá suporte a dados de linha e dados colunares compactados. As tabelas transacionais também podem ter um índice columnstore que é usado em vez do row-store ao escrever consultas analíticas. O uso de índices columnstore permitiria que o conjunto analítico atual preservasse o desempenho transacional e, ao mesmo tempo, executasse consultas de relatórios em tempo real sobre os dados operacionais.

Query Store (Arquivo de Consultas)

Sua equipe de DBA conclui uma tarefa mensal de ajuste de desempenho para garantir que os planos de consulta corretos sejam usados. Eles monitoram o desempenho da consulta e revertem os planos de consulta em que as alterações nos planos de execução afetaram o desempenho. A equipe também relata as 10 principais consultas mais longas para o líder de desenvolvimento e verifica quaisquer bloqueios de recursos. O Repositório de Consultas oferece suporte a todas essas tarefas e você pode habilitá-lo com o Transact-SQL:

ALTER DATABASE <database name>
SET QUERY_STORE (OPERATION_MODE = READ_WRITE);

Ajuste automático e processamento inteligente de consultas

Você pode habilitar a correção automática de escolha de plano depois que o Repositório de Consultas estiver habilitado. Com o Ajuste Automático habilitado, o SQL Server monitora o desempenho da consulta. Se um novo plano de consulta tiver um desempenho pior do que a versão anterior, ele poderá substituir o novo plano pela versão anterior com melhor desempenho. A opção está disponível no nível do banco de dados com uma ALTER instrução:

ALTER DATABASE <database name>
SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON );

O Processamento Inteligente de Consultas (IQP) é um conjunto de recursos, muitos dos quais são novos no SQL Server 2019, que melhoram e otimizam automaticamente o desempenho da sua carga de trabalho. As características do IQP incluem:

  • Associações adaptáveis: o SQL Server seleciona dinamicamente um tipo de associação durante o tempo de execução com base no número real de linhas de entrada.
  • Contagem aproximada distinta: o SQL Server fornece uma contagem aproximada de resultados distintos para cenários de big data para executar essas consultas com alto desempenho e baixa carga de memória.
  • Comentários de concessão de memória: se uma consulta tiver operações que vazam para o disco, o SQL Server pode adicionar mais memória para operações subsequentes. Da mesma forma, se uma consulta desperdiçar mais da metade da memória alocada a ela, o SQL Server poderá reduzir a memória atribuída a ela.
  • Compilação Adiada de Variável de Tabela: o SQL Server usa a cardinalidade real de uma variável de tabela em sua primeira compilação em vez de uma suposição fixa.

O IQP não exige que você reescreva nenhum código ou altere seu esquema de banco de dados para aproveitar o melhor desempenho. Tudo o que você precisa fazer é atualizar um banco de dados para o nível de compatibilidade 150 ou posterior:

ALTER DATABASE <database name> SET COMPATIBILITY_LEVEL = 150;

Segurança

O SQL Server no Linux oferece suporte a recursos avançados de segurança, como Always Encrypted, segurança em nível de linha e mascaramento dinâmico de dados para proteger dados em disco, memória ou em trânsito. Estas funcionalidades são todas suportadas em todas as edições, incluindo a Standard Edition:

  • A Criptografia de Dados Transparente (TDE) criptografa os dados em repouso quando são armazenados em arquivos de banco de dados. Os dados são protegidos contra usuários mal-intencionados tanto no banco de dados quanto em backups.

  • O Always Encrypted garante que apenas os usuários que possuem dados possam visualizá-los e processá-los. Os usuários que gerenciam dados, como os administradores de banco de dados, não podem visualizá-los. Se você usa Always Encrypted:

    • Pode consultar os dados encriptados sem primeiro os desencriptar.
    • Os dados são protegidos em repouso, quando estão se movendo para a memória do servidor e quando estão se movendo do servidor para o aplicativo cliente confiável.
    • A criptografia e a descriptografia ocorrem no driver do cliente, para que o processo seja transparente para os aplicativos cliente.
    • Somente aplicativos confiáveis e proprietários dos dados podem acessá-los. Os desenvolvedores de aplicativos e administradores de banco de dados não têm acesso à Chave de Criptografia de Coluna (CEK).
  • A auditoria rastreia eventos que ocorrem no mecanismo de banco de dados e quem executou esses eventos. Os eventos auditados podem ser armazenados em logs de eventos ou arquivos de auditoria, e você pode usá-los para investigar problemas como ataques e violações de dados.

  • A segurança em nível de linha controla o acesso a linhas específicas dentro de uma tabela com base em quem está executando a consulta. Você controla quem pode acessar os dados, por exemplo, por associação ao grupo ou contexto de execução.

  • O mascaramento de dados dinâmicos mascara uma parte dos dados. Quatro tipos diferentes de máscaras estão disponíveis: mascarar todos os dados em uma coluna, mascarar endereços de e-mail, mascarar números aleatórios para dados numéricos e mascarar cadeia de caracteres personalizada. Você pode usar máscara de cadeia de caracteres personalizada, por exemplo, para mascarar todos, exceto os últimos quatro dígitos em um Número de Segurança Social.

  • A Descoberta e Classificação de Dados identifica, rotula e relata os dados confidenciais em seus bancos de dados, como dados pessoais. É uma ferramenta do SQL Server Management Studio (SSMS) que facilita a conformidade com a legislação de privacidade de dados e protege os bancos de dados que contêm os dados mais valiosos. A Deteção e Classificação de Dados é um serviço que faz parte do pacote Advanced Data Security (ADS).

  • A Avaliação de Vulnerabilidades identifica vulnerabilidades nas suas bases de dados. Depois de estar ciente dos pontos fracos que a configuração do servidor e os designs de banco de dados podem causar, você pode mitigá-los e evitar ataques comuns. A Avaliação de Vulnerabilidades é outro serviço ADS.

SQL Server Agent

O SQL Server Agent executa trabalhos de manutenção e tarefas agendadas e automatizadas. O SQL Server Agent dá suporte às três cargas de trabalho a seguir:

  • Trabalhos Transact-SQL
  • Correio DB
  • Envio de registos

Por padrão, o SQL Server Agent está desabilitado, mas está instalado e pode ser habilitado usando o utilitário de linha mssql-conf de comando.

sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server

Elevada disponibilidade

O SQL Server tem muitas maneiras de especificar o nível de tolerância a falhas aceitável. O SQL Server no Linux oferece suporte a grupos de disponibilidade Always On e instâncias de cluster de failover Always On. Ambas as opções requerem o pacote mssql-server-ha instalado em cada servidor. O Linux suporta clustering via Pacemaker, que é um equivalente ao WSCF (Windows Server Failover Clustering), embora não tão fortemente integrado ao sistema operacional host.

Se houver mais flexibilidade no que é aceitável para o tempo de inatividade, o Envio de Logs via SQL Agent pode fornecer esperas quentes, que você usa para se recuperar da perda do servidor.

Outra solução para o SQL Server no Linux é sua capacidade de executar em contêineres orquestrados com ferramentas como o Kubernetes. As ferramentas de orquestração garantem que sempre haja um nó executando o SQL Server. Se esse nó falhar, outra instância será inicializada automaticamente. Quando é necessária uma disponibilidade mais robusta, um grupo de disponibilidade Always On pode ser executado em contêineres.

Outras características notáveis

PolyBase

Muitas organizações têm dados em sistemas diferentes. Isso pode ser porque equipes diferentes tinham requisitos diferentes quando selecionaram seu sistema, porque você se fundiu com outra empresa ou por algum outro motivo histórico. Tradicionalmente, tem sido difícil integrar dados através desses limites do sistema para responder a perguntas para os usuários.

Suponha que você tenha dados no SQL Server que registram vendas para seu catálogo de produtos, mas os dados que registram quanto custa fazer seus produtos estão em um banco de dados SAP HANA. Você deseja criar um relatório que analise as margens de lucro. Você precisará de informações de ambos os bancos de dados. No passado, podia:

  • Use um pacote ETL (Extract, Transform, Load) para migrar dados de um sistema de banco de dados para o outro.
  • Consulte ambos os bancos de dados e, em seguida, escreva algum código personalizado para unir e integrar os resultados em um único relatório.

Ambas as abordagens são complexas e podem exigir um tempo de desenvolvimento significativo para serem corretas.

Com o PolyBase, você pode criar uma tabela externa no SQL Server. Uma tabela externa é uma conexão com um sistema externo e um conjunto de dados hospedado lá. Uma vez criados, os clientes podem enviar consultas para a tabela externa exatamente da mesma forma que fariam para as tabelas internas. JOIN As consultas podem integrar dados de tabelas externas com tabelas internas. Como você pode ver, o PolyBase pode remover os limites que diferentes sistemas impõem aos seus dados e facilitar a realização das análises necessárias aos dados da sua empresa, independentemente da sua localização.

Nota

Em sistemas operacionais Linux, o PolyBase é suportado no SQL Server 2019 ou posterior. Para usá-lo, você deve instalar o pacote mssql-server-polybase , além do SQL Server 2019.

Machine Learning Services

No aprendizado de máquina, grandes conjuntos de dados são usados para modelar o comportamento de algum sistema complexo. Quando um modelo é desenvolvido para prever com precisão o comportamento observado do sistema, ele é usado para prever como esse sistema pode se comportar no futuro. Foram desenvolvidas bibliotecas sofisticadas de código, muitas vezes de código aberto, que podem preparar seu conjunto de dados, adicionar recursos a ele, treinar um modelo, avaliar a precisão do modelo treinado e implantar esses modelos para outros clientes chamarem. Estas bibliotecas são escritas nas linguagens R e Python.

Os Serviços de Aprendizado de Máquina do SQL Server permitem que você execute esses scripts R e Python nos dados em seus bancos de dados do SQL Server. Você pode adicionar as estruturas populares de aprendizado de máquina e ciência de dados, incluindo PyTorch, TensorFlow, SciKit-Learn e outros.

Nota

Em sistemas operacionais Linux, o SQL Server Machine Learning tem suporte no SQL Server 2019 ou posterior. Para usá-lo, você deve adicionar pacotes extras. Por exemplo, se você quiser usar Python para todo o código de aprendizado de máquina, instale o pacote mssql-mlservices-mlm-py-9.4.7 . O pacote equivalente para R é install mssql-mlservices-mlm-r-9.4.7.

Suporte gráfico

O SQL Server tem suporte nativo para armazenar e consultar dados baseados em gráficos. O SQL Server armazena dados como uma série de entidades (nós) e as relações (bordas) entre elas.

As pesquisas de texto completo permitem que os usuários executem consultas em dados de texto que respeitem as regras linguísticas. Por exemplo, quando você pesquisa a palavra "executar", uma pesquisa de texto completo retorna resultados que incluem formas da palavra "executar", como "executado" e "em execução".

Esse recurso não é instalado por padrão. No Linux, você o habilita instalando o mssql-server-fts pacote.

Cargas de trabalho de ETL

Os pacotes do SQL Server Integration Services (SSIS) podem ser executados no SQL Server no Linux. Eles não estão restritos à execução apenas no SQL Server no Linux. Esses pacotes também podem se conectar ao Microsoft SQL Server em execução no Windows local ou na nuvem, ou ao SQL Server em execução em um contêiner.

Você deve escrever e manter pacotes SSIS em uma máquina Windows executando o SQL Server Data Tools.

Verifique o seu conhecimento

1.

Quais recursos o SQL Server no Linux oferece para dar suporte à continuidade de negócios?

2.

Se os dados forem criptografados usando Always Encrypted, quando os dados serão descriptografados?