SQL Server op Linux-functies

Voltooid

Om een MIGRATIE van SQL Server naar budgethouders te rechtvaardigen, helpt het om te weten welke functies van SQL Server een concurrentievoordeel voor uw systemen kunnen bieden.

Stel dat u, na onderzoek naar SQL Server op Linux, ervoor wilt zorgen dat de huidige functies die beschikbaar zijn, voldoen aan de vereisten van Wide World Importers voor bestaande en toekomstige gegevensverwerking.

Hier vindt u informatie over de belangrijkste functies van SQL Server in Linux.

Prestaties

SQL Server op Linux ondersteunt de concurrerende behoeften van snelle transactionele doorvoer en responsieve analyses door een HTAP-oplossing (Hybrid Transactional Analytical Processing) aan te bieden. HTAP maakt gebruik van enkele kernprestatietechnologieën van SQL Server:

In-Memory Online Transaction Processing (OLTP)

Door geheugen geoptimaliseerde tabellen en gecompileerde opgeslagen procedures te combineren, kon Wide World Importers aanzienlijke prestatieverbeteringen zien op de transactionele tabellen; Bijvoorbeeld de schrijf- en leessessiestatus voor de e-commercewebsite.

Columnstore-index

SQL Server ondersteunt zowel rijgegevens als gecomprimeerde kolomgegevens. Transactionele tabellen kunnen ook een columnstore-index hebben die wordt gebruikt in plaats van het rijarchief bij het schrijven van analytische query's. Door het gebruik van columnstore-indexen kan de huidige analytische suite transactionele prestaties behouden terwijl ook realtime rapportagequery's worden uitgevoerd voor de operationele gegevens.

Query Store

Uw DBA-team voltooit een maandelijkse taak voor het afstemmen van de prestaties om ervoor te zorgen dat de juiste queryplannen worden gebruikt. Ze controleren de prestaties van query's en keren queryplannen terug waar wijzigingen in uitvoeringsplannen van invloed zijn op de prestaties. Het team rapporteert ook over de tien langst lopende query's aan de ontwikkelingsleider en controleert op eventuele resourcevergrendelingen. Query Store ondersteunt al deze taken en u kunt deze inschakelen met Transact-SQL:

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

Automatische afstemming en intelligente queryverwerking

U kunt automatische correctie van plannen inschakelen nadat Query Store is ingeschakeld. Als Automatisch afstemmen is ingeschakeld, bewaakt SQL Server de queryprestaties. Als een nieuw queryplan erger is dan de vorige versie, kan het nieuwe plan worden vervangen door de betere prestaties van de vorige versie. De optie is beschikbaar op databaseniveau met een ALTER instructie:

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

Intelligent Query Processing (IQP) is een set functies, waarvan veel nieuw zijn in SQL Server 2019, die automatisch de prestaties van uw workload verbeteren en optimaliseren. De IQP-functies zijn onder andere:

  • Adaptieve joins: SQL Server selecteert dynamisch een jointype tijdens runtime op basis van het werkelijke aantal invoerrijen.
  • Geschatte telling uniek: SQL Server biedt een geschatte telling van afzonderlijke resultaten voor big data-scenario's om dergelijke query's uit te voeren met hoge prestaties en lage geheugenbelasting.
  • Feedback over geheugen verlenen: als een query bewerkingen bevat die overlopen naar de schijf, kan SQL Server meer geheugen toevoegen voor volgende bewerkingen. Als een query meer dan de helft van het toegewezen geheugen verspilt, kan SQL Server het toegewezen geheugen verminderen.
  • Tabelvariabele uitgestelde compilatie: SQL Server gebruikt de werkelijke kardinaliteit van een tabelvariabele op de eerste compilatie in plaats van een vaste schatting.

IQP vereist niet dat u code herschrijft of uw databaseschema wijzigt om te profiteren van de beste prestaties. U hoeft alleen maar een database bij te werken naar compatibiliteitsniveau 150 of hoger:

ALTER DATABASE <database name> SET COMPATIBILITY_LEVEL = 150;

Beveiliging

SQL Server op Linux ondersteunt geavanceerde beveiligingsfuncties zoals Always Encrypted, beveiliging op rijniveau en dynamische gegevensmaskering om gegevens op schijf, in het geheugen of in transit te beveiligen. Deze functies worden allemaal ondersteund in alle edities, waaronder Standard Edition:

  • Transparent Data Encryption (TDE) versleutelt data-at-rest wanneer deze worden opgeslagen in databasebestanden. De gegevens zijn beveiligd tegen kwaadwillende gebruikers in zowel de database als in back-ups.

  • Always Encrypted zorgt ervoor dat alleen gebruikers die eigenaar zijn van gegevens deze kunnen bekijken en verwerken. Gebruikers die gegevens beheren, zoals de databasebeheerders, kunnen deze niet bekijken. Als u Always Encrypted gebruikt:

    • U kunt query's uitvoeren op de versleutelde gegevens zonder deze eerst te ontsleutelen.
    • De gegevens worden in rust beveiligd wanneer ze worden verplaatst naar het servergeheugen en wanneer deze van de server naar de vertrouwde client-app worden verplaatst.
    • Versleuteling en ontsleuteling vinden plaats in het clientstuurprogramma, zodat het proces transparant is voor clienttoepassingen.
    • Alleen vertrouwde toepassingen en eigenaren van de gegevens hebben toegang tot de gegevens. Toepassingsontwikkelaars en databasebeheerders hebben geen toegang tot de Kolomversleutelingssleutel (CEK).
  • Controle houdt gebeurtenissen bij die plaatsvinden op de database-engine en die deze gebeurtenissen hebben uitgevoerd. De gecontroleerde gebeurtenissen kunnen worden opgeslagen in gebeurtenislogboeken of auditbestanden en u kunt ze gebruiken om problemen zoals aanvallen en gegevensschendingen te onderzoeken.

  • Beveiliging op rijniveau bepaalt de toegang tot specifieke rijen in een tabel op basis van wie de query uitvoert. U bepaalt wie toegang heeft tot de gegevens, bijvoorbeeld op groepslidmaatschap of uitvoeringscontext.

  • Dynamische gegevensmaskering maskert een deel van de gegevens. Er zijn vier verschillende soorten maskers beschikbaar: alle gegevens in een kolom maskeren, e-mailadressen maskeren, willekeurige nummermaskering voor numerieke gegevens en aangepaste tekenreeksmaskering. U kunt bijvoorbeeld aangepaste tekenreeksmaskering gebruiken om alle behalve de laatste vier cijfers in een burgerservicenummer te maskeren.

  • Gegevensdetectie en -classificatie identificeert, labels en rapporten over de gevoelige gegevens in uw databases, zoals persoonlijke gegevens. Het is een hulpprogramma in SQL Server Management Studio (SSMS) dat het eenvoudiger maakt om te voldoen aan de wetgeving inzake gegevensprivacy en de databases die de meest waardevolle gegevens bevatten, te beveiligen. Gegevensdetectie en -classificatie is een service die deel uitmaakt van het ADS-pakket (Advanced Data Security).

  • Evaluatie van beveiligingsproblemen identificeert beveiligingsproblemen in uw databases. Zodra u op de hoogte bent van de zwakke punten die uw serverconfiguratie en databaseontwerpen kunnen veroorzaken, kunt u deze beperken en veelvoorkomende aanvallen voorkomen. Evaluatie van beveiligingsproblemen is een andere ADS-service.

SQL Server Agent

SQL Server Agent voert onderhoudstaken en geplande, geautomatiseerde taken uit. SQL Server Agent ondersteunt de volgende drie workloads:

  • Transact-SQL-taken
  • DB-e-mail
  • Back-upfunctie voor logboekbestanden

SQL Server Agent is standaard uitgeschakeld, maar deze is geïnstalleerd en kan worden ingeschakeld met behulp van het opdrachtregelprogramma mssql-conf .

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

Hoge beschikbaarheid

SQL Server heeft veel manieren om het niveau van fouttolerantie op te geven dat acceptabel is. SQL Server op Linux ondersteunt AlwaysOn-beschikbaarheidsgroepen en AlwaysOn-failoverclusterexemplaren. Voor beide opties is het mssql-server-ha-pakket vereist dat op elke server is geïnstalleerd. Linux ondersteunt clustering via Pacemaker, wat gelijk is aan Windows Server Failover Clustering (WSCF), maar niet zo nauw geïntegreerd in het hostbesturingssysteem.

Als er meer flexibiliteit is in wat acceptabel is voor downtime, kan Logboekverzending via SQL Agent warme stand-bys bieden, die u gebruikt om te herstellen van serververlies.

Een andere oplossing voor SQL Server in Linux is de mogelijkheid om te worden uitgevoerd in containers die zijn ingedeeld met hulpprogramma's zoals Kubernetes. Indelingshulpprogramma's zorgen ervoor dat er altijd een knooppunt is waarop SQL Server wordt uitgevoerd. Als dat knooppunt mislukt, wordt automatisch een ander exemplaar opgestart. Wanneer robuustere beschikbaarheid is vereist, kan een AlwaysOn-beschikbaarheidsgroep worden uitgevoerd in containers.

Andere belangrijke functies

PolyBase

Veel organisaties hebben gegevens in verschillende systemen. Dat kan komen doordat verschillende teams verschillende vereisten hadden toen ze hun systeem hadden geselecteerd, omdat u met een ander bedrijf of om een andere historische reden hebt samengevoegd. Het is traditioneel moeilijk geweest om gegevens over deze systeemgrenzen te integreren om vragen voor gebruikers te beantwoorden.

Stel dat u gegevens hebt in SQL Server die de verkoop voor uw productcatalogus registreert, maar de gegevens die registreren hoeveel het kost om uw producten te maken zich in een SAP HANA-database bevinden. U wilt een rapport maken dat de winstmarges analyseert. U hebt informatie uit beide databases nodig. In het verleden kunt u het volgende doen:

  • Gebruik een ETL-pakket (Extract, Transform, Load) om gegevens van het ene databasesysteem naar het andere te migreren.
  • Voer een query uit op beide databases en schrijf vervolgens een aantal aangepaste code om de resultaten samen te voegen en te integreren in één rapport.

Beide benaderingen zijn complex en kunnen aanzienlijke ontwikkelingstijd vereisen om goed te komen.

Met PolyBase kunt u een externe tabel maken in SQL Server. Een externe tabel is een verbinding met een extern systeem en een gegevensset die daar wordt gehost. Zodra clients zijn gemaakt, kunnen clients query's op exact dezelfde manier naar de externe tabel verzenden als naar interne tabellen. JOIN query's kunnen gegevens uit externe tabellen integreren met interne tabellen. Zoals u kunt zien, kan PolyBase de grenzen verwijderen die verschillende systemen aan uw gegevens opleggen en het gemakkelijker maken om de analyses uit te voeren die u nodig hebt voor uw bedrijfsgegevens, ongeacht de locatie.

Notitie

Op Linux-besturingssystemen wordt PolyBase ondersteund in SQL Server 2019 of hoger. Als u dit wilt gebruiken, moet u het mssql-server-polybase-pakket installeren, naast SQL Server 2019.

Machine Learning Services

In machine learning worden grote gegevenssets gebruikt om het gedrag van een complex systeem te modelleren. Wanneer een model is ontwikkeld dat het waargenomen gedrag van het systeem nauwkeurig voorspelt, wordt het gebruikt om te voorspellen hoe dat systeem zich in de toekomst kan gedragen. Geavanceerde bibliotheken met code, vaak opensource, zijn ontwikkeld die uw gegevensset kunnen voorbereiden, functies eraan kunnen toevoegen, een model trainen, de nauwkeurigheid van het getrainde model evalueren en die modellen implementeren voor andere clients die moeten worden aangeroepen. Deze bibliotheken worden geschreven in de R- en Python-talen.

Met SQL Server Machine Learning Services kunt u deze R- en Python-scripts uitvoeren op de gegevens in uw SQL Server-databases. U kunt de populaire frameworks voor machine learning en data science toevoegen, waaronder PyTorch, TensorFlow, SciKit-Learn en andere.

Notitie

Op Linux-besturingssystemen wordt SQL Server Machine Learning ondersteund in SQL Server 2019 of hoger. Als u deze wilt gebruiken, moet u extra pakketten toevoegen. Als u bijvoorbeeld Python wilt gebruiken voor alle machine learning-code, installeert u het pakket mssql-mlservices-mlm-py-9.4.7 . Het equivalente pakket voor R is het installeren van mssql-mlservices-mlm-r-9.4.7.

Graph-ondersteuning

SQL Server biedt systeemeigen ondersteuning voor het opslaan en opvragen van gegevens op basis van grafieken. SQL Server slaat gegevens op als een reeks entiteiten (knooppunten) en de relaties (randen) ertussen.

Met zoekopdrachten in volledige tekst kunnen gebruikers query's uitvoeren op tekstgegevens die linguïstregels respecteren. Wanneer u bijvoorbeeld zoekt naar het woord 'uitvoeren', retourneert een zoekopdracht in volledige tekst resultaten met vormen van het woord 'uitvoeren', zoals 'uitgevoerd' en 'actief'.

Deze functie is niet standaard geïnstalleerd. In Linux schakelt u het in door het mssql-server-fts pakket te installeren.

ETL-workloads

SSIS-pakketten (SQL Server Integration Services) kunnen worden uitgevoerd op SQL Server op Linux. Ze zijn niet beperkt tot alleen worden uitgevoerd op SQL Server in Linux. Deze pakketten kunnen ook verbinding maken met Microsoft SQL Server die on-premises of in de cloud wordt uitgevoerd, of SQL Server die wordt uitgevoerd in een container.

U moet SSIS-pakketten schrijven en onderhouden op een Windows-computer waarop SQL Server Data Tools wordt uitgevoerd.

Test uw kennis

1.

Welke functies biedt SQL Server in Linux ter ondersteuning van bedrijfscontinuïteit?

2.

Als gegevens worden versleuteld met Always Encrypted, wanneer worden de gegevens ontsleuteld?