Business Intelligence voor ondernemingen

Azure Active Directory
Blob Storage
Analysis Services
Data Factory
Synapse Analytics

Deze referentiearchitectuur implementeert een ELT-pijplijn (extract, load, and transform) die gegevens verplaatst van een on-premises SQL Server-database naar Azure Synapse en de gegevens transformeert voor analyse.

GitHub logo Er is een referentie-implementatie voor deze architectuur beschikbaar op GitHub.

Architectuurdiagram voor Enterprise BI in Azure met Azure Synapse

Scenario: een organisatie heeft een grote OLTP-gegevensset opgeslagen in een SQL Server database on-premises. De organisatie wil de Azure Synapse gebruiken om analyses uit te voeren met behulp Power BI.

Deze referentiearchitectuur is ontworpen voor een een time- of on-demand taken. Als u gegevens voortdurend wilt verplaatsen (elk uur of dagelijks), raden we u aan om Azure Data Factory een geautomatiseerde werkstroom te definiëren. Zie Geautomatiseerde enterprise BI met Azure Synapse en Azure Data Factory voor een referentiearchitectuur die gebruikmaakt van Data Factory.

Architectuur

De architectuur bestaat uit de volgende onderdelen.

Gegevensbron

SQL Server. De brongegevens bevinden zich in een SQL Server database on-premises. Voor het simuleren van de on-premises omgeving wordt met de implementatiescripts voor deze architectuur een VM ingericht in Azure SQL Server geïnstalleerd. De Wide World Importers OLTP-voorbeelddatabase wordt gebruikt als de brongegevens.

Opname en gegevensopslag

Blob Storage. Blob Storage wordt gebruikt als faseringsgebied om de gegevens te kopiëren voordat ze in de Azure Synapse.

Azure Synapse. Azure Synapse is een gedistribueerd systeem dat is ontworpen om analyses uit te voeren op grote gegevens. Het biedt ondersteuning voor MPP (Massive Parallel Processing), waardoor het geschikt is voor het uitvoeren van analyses met hoge prestaties.

Analyse en rapportage

Azure Analysis Services. Analysis Services is een volledig beheerde service die mogelijkheden voor gegevensmodelleer biedt. Gebruik Analysis Services om een semantisch model te maken dat gebruikers kunnen opvragen. Analysis Services is vooral nuttig in een BI-dashboardscenario. In deze architectuur leest Analysis Services gegevens uit het datawarehouse om het semantische model te verwerken en worden dashboardquery's efficiënt verwerkt. Het biedt ook ondersteuning voor elastische gelijktijdigheid door replica's uit te schalen voor snellere queryverwerking.

Momenteel ondersteunt Azure Analysis Services modellen in tabelvorm, maar niet multidimensionale modellen. In tabellaire modellen worden constructies voor relationele modellering (tabellen en kolommen) gebruikt, terwijl multidimensionale modellen gebruikmaken van OLAP-modellerings constructies (kubussen, dimensies en metingen). Als u multidimensionale modellen nodig hebt, gebruikt u SQL Server Analysis Services (SSAS). Zie Tabellaire en multidimensionale oplossingen vergelijken voor meer informatie.

Power BI. Power BI is een suite met hulpprogramma's voor bedrijfsanalyse voor het analyseren van gegevens voor zakelijke inzichten. In deze architectuur wordt een query op het semantische model opgeslagen in Analysis Services.

Verificatie

Azure Active Directory (Azure AD) verifieert gebruikers die verbinding maken met de Analysis Services server via Power BI.

Gegevenspijplijn

Deze referentiearchitectuur maakt gebruik van de voorbeelddatabase WorldWideImporters als gegevensbron. De gegevenspijplijn heeft de volgende fasen:

  1. Exporteert de gegevens van SQL Server naar platte bestanden (BCP-hulpprogramma).
  2. Kopieer de platte bestanden naar Azure Blob Storage (AzCopy).
  3. Laad de gegevens in Azure Synapse (PolyBase).
  4. Transformeer de gegevens in een sterschema (T-SQL).
  5. Laad een semantisch model in Analysis Services (SQL Server Data Tools).

Diagram van de ENTERPRISE BI-pijplijn

Notitie

Overweeg het gebruik van Redgate Data Platform Studio voor stap 1 – 3. Data Platform Studio past de meest geschikte compatibiliteitsfixes en optimalisaties toe, zodat het de snelste manier is om aan de slag te gaan met Azure Synapse. Zie Gegevens laden met Redgate Data Platform Studio voor meer informatie.

In de volgende secties worden deze fasen gedetailleerder beschreven.

Gegevens exporteren uit SQL Server

Het hulpprogramma BCP (bulksgewijs kopiëren) is een snelle manier om platte tekstbestanden te maken van SQL tabellen. In deze stap selecteert u de kolommen die u wilt exporteren, maar die u niet wilt transformeren. Gegevenstransformaties moeten plaatsvinden in Azure Synapse.

Aanbevelingen:

Plan, indien mogelijk, gegevensextractie buiten piekuren, om resourceproblemen in de productieomgeving te minimaliseren.

Vermijd het uitvoeren van BCP op de databaseserver. Voer deze in plaats daarvan uit vanaf een andere computer. Schrijf de bestanden naar een lokaal station. Zorg ervoor dat u voldoende I/O-resources hebt voor het afhandelen van de gelijktijdige schrijf- en schrijf schrijf- . Voor de beste prestaties exporteert u de bestanden naar toegewezen snelle opslagstations.

U kunt de netwerkoverdracht versnellen door de geëxporteerde gegevens op te slaan in gecomprimeerde Gzip-indeling. Het laden van gecomprimeerde bestanden in het magazijn is echter langzamer dan het laden van niet-gecomprimeerde bestanden, dus er is een balans tussen een snellere netwerkoverdracht en sneller laden. Als u besluit Gzip-compressie te gebruiken, moet u niet één Gzip-bestand maken. Splits in plaats daarvan de gegevens in meerdere gecomprimeerde bestanden.

Platte bestanden kopiëren naar blobopslag

Het AzCopy-hulpprogramma is ontworpen voor het kopiëren van gegevens met hoge prestaties naar Azure Blob Storage.

Aanbevelingen:

Maak het opslagaccount in een regio in de buurt van de locatie van de brongegevens. Implementeer het opslagaccount en het Azure Synapse-exemplaar in dezelfde regio.

Voer AzCopy niet uit op dezelfde computer die uw productieworkloads uitgevoerd, omdat het CPU- en I/O-verbruik de productieworkload kan verstoren.

Test eerst het uploaden om te zien hoe de uploadsnelheid is. U kunt de /NC optie in AzCopy opgeven voor het aantal gelijktijdige kopieerbewerkingen. Begin met de standaardwaarde en experimenteer met deze instelling om de prestaties af te stemmen. In een omgeving met lage bandbreedte kunnen te veel gelijktijdige bewerkingen de netwerkverbinding overbelasten en voorkomen dat de bewerkingen met succes worden voltooid.

AzCopy verplaatst gegevens naar opslag via het openbare internet. Als dit niet snel genoeg is, kunt u overwegen om een ExpressRoute-circuit in te stellen. ExpressRoute is een service die uw gegevens routeert via een toegewezen privéverbinding naar Azure. Een andere optie, als uw netwerkverbinding te langzaam is, is het fysiek verzenden van de gegevens op schijf naar een Azure-datacenter. Zie Gegevens overdragen van en naar Azure voor meer informatie.

Tijdens een kopieerbewerking maakt AzCopy een tijdelijk logboekbestand, waarmee AzCopy de bewerking opnieuw kan starten als deze wordt onderbroken (bijvoorbeeld vanwege een netwerkfout). Zorg ervoor dat er voldoende schijfruimte is om de logboekbestanden op te slaan. U kunt de /Z optie opgeven waar de logboekbestanden worden geschreven.

Gegevens laden in Azure Synapse

Gebruik PolyBase om de bestanden uit blobopslag in het datawarehouse te laden. PolyBase is ontworpen om gebruik te maken van de MPP-architectuur (Massively Parallel Processing) van Azure Synapse, waardoor het de snelste manier is om gegevens in een Azure Synapse.

Het laden van de gegevens bestaat uit twee stappen:

  1. Maak een set externe tabellen voor de gegevens. Een externe tabel is een tabeldefinitie die wijst naar gegevens die in dit geval buiten het magazijn zijn opgeslagen, de — platte bestanden in blobopslag. Met deze stap worden geen gegevens naar het magazijn verplaatst.
  2. Faseringstabellen maken en de gegevens laden in de faseringstabellen. In deze stap worden de gegevens naar het magazijn gekopieerd.

Aanbevelingen:

Overweeg Azure Synapse wanneer u grote hoeveelheden gegevens (meer dan 1 TB) hebt en een analyseworkload hebt die profiteert van parallelle behandeling. Azure Synapse is niet geschikt voor OLTP-workloads of kleinere gegevenssets (minder dan 250 GB). Voor gegevenssets van minder dan 250 GB kunt u Azure SQL Database of SQL Server. Zie Datawarehousing voor meer informatie.

Maak de faseringstabellen als heap-tabellen, die niet worden geïndexeerd. De query's die de productietabellen maken, resulteren in een volledige tabelscan, zodat er geen reden is om de faseringstabellen te indexeren.

PolyBase maakt automatisch gebruik van parallellelisme in het magazijn. De laadprestaties worden geschaald wanneer u DWE's verhoogt. Gebruik één laadbewerking voor de beste prestaties. Het ops breken van de invoergegevens in segmenten en het uitvoeren van meerdere gelijktijdige belastingen heeft geen prestatievoordeel.

PolyBase kan gecomprimeerde Gzip-bestanden lezen. Per gecomprimeerd bestand wordt echter slechts één lezer gebruikt, omdat het uitcomprimeren van het bestand een bewerking met één thread is. Vermijd daarom het laden van één groot gecomprimeerd bestand. Splits in plaats daarvan de gegevens in meerdere gecomprimeerde bestanden om te profiteren van parallellelisme.

Let op de volgende beperkingen:

  • PolyBase ondersteunt een maximale kolomgrootte van varchar(8000) nvarchar(4000) , of varbinary(8000) . Als u gegevens hebt die deze limieten overschrijden, is een van de opties om de gegevens op te delen in segmenten wanneer u ze exporteert en de segmenten na het importeren vervolgens opnieuw in te stellen.

  • PolyBase maakt gebruik van een vast rij-eind eind \n of nieuwe lijn. Dit kan problemen veroorzaken als nieuwe-lijntekens worden weergegeven in de brongegevens.

  • Uw brongegevensschema kan gegevenstypen bevatten die niet worden ondersteund in Azure Synapse.

U kunt deze beperkingen omzeilen door een opgeslagen procedure te maken die de benodigde conversies uitvoert. Verwijs naar deze opgeslagen procedure wanneer u BCP uit te voeren. Redgate Data Platform Studio converteert ook automatisch gegevenstypen die niet worden ondersteund in Azure Synapse.

Raadpleeg voor meer informatie de volgende artikelen:

De gegevens transformeren

De gegevens transformeren en verplaatsen naar productietabellen. In deze stap worden de gegevens omgezet in een sterschema met dimensietabellen en feitentabellen, geschikt voor semantische modellering.

Maak de productietabellen met geclusterde columnstore-indexen, die de beste algemene queryprestaties bieden. Columnstore-indexen zijn geoptimaliseerd voor query's die veel records scannen. Columnstore-indexen presteren niet zo goed voor singleton-zoekups (dat wil zeggen, op één rij zoeken). Als u regelmatig een singleton-zoekactie moet uitvoeren, kunt u een niet-geclusterde index toevoegen aan een tabel. Singleton-zoekups kunnen aanzienlijk sneller worden uitgevoerd met behulp van een niet-geclusterde index. Singleton-zoekups komen doorgaans echter minder vaak voor in datawarehouse-scenario's dan OLTP-workloads. Zie Tabellen indexeren in Azure Synapse voor meer Azure Synapse.

Notitie

Geclusterde columnstore-tabellen bieden geen ondersteuning varchar(max) voor nvarchar(max) gegevenstypen , varbinary(max) of . In dat geval kunt u een heap- of geclusterde index overwegen. U kunt deze kolommen in een afzonderlijke tabel zetten.

Omdat de voorbeelddatabase niet erg groot is, hebben we gerepliceerde tabellen zonder partities gemaakt. Voor productieworkloads zal het gebruik van gedistribueerde tabellen waarschijnlijk de queryprestaties verbeteren. Zie Richtlijnen voor het ontwerpen van gedistribueerde tabellen in Azure Synapse. Met onze voorbeeldscripts worden de query's uitgevoerd met behulp van een statische resourceklasse.

Het semantische model laden

Laad de gegevens in een tabellaire model in Azure Analysis Services. In deze stap maakt u een semantisch gegevensmodel met behulp van SQL Server Data Tools (SSDT). U kunt ook een model maken door het te importeren uit een Power BI Desktop bestand. Omdat Azure Synapse geen ondersteuning biedt voor vreemde sleutels, moet u de relaties toevoegen aan het semantische model, zodat u deze kunt toevoegen aan meerdere tabellen.

Gebruik Power BI om de gegevens te visualiseren

Power BI ondersteunt twee opties om verbinding te maken met Azure Analysis Services:

  • Importeren. De gegevens worden geïmporteerd in het Power BI model.
  • Liveverbinding. Gegevens worden rechtstreeks uit de Analysis Services.

We raden liveverbinding aan omdat er geen gegevens naar het Power BI hoeft te worden gekopieerd. Bovendien zorgt het gebruik van DirectQuery ervoor dat de resultaten altijd consistent zijn met de meest recente brongegevens. Zie voor meer informatie Verbinding maken met Power BI.

Aanbevelingen:

Vermijd het rechtstreeks uitvoeren van BI-dashboardquery's op het datawarehouse. BI-dashboards vereisen zeer lage reactietijden, waarvoor directe query's op het magazijn mogelijk niet voldoen. Het vernieuwen van het dashboard telt ook mee voor het aantal gelijktijdige query's, wat van invloed kan zijn op de prestaties.

Azure Analysis Services is ontworpen voor het afhandelen van de queryvereisten van een BI-dashboard, dus het wordt aanbevolen om query's uit Analysis Services dashboards Power BI.

Schaalbaarheidsoverwegingen

Azure Synapse

Met Azure Synapse kunt u uw rekenbronnen op aanvraag uitschalen. De query-engine optimaliseert query's voor parallelle verwerking op basis van het aantal rekenknooppunten en verplaatst zo nodig gegevens tussen knooppunten. Zie Compute beheren in Azure Synapse voor meer informatie.

Analysis Services

Voor productieworkloads raden we de Standard-laag aan voor Azure Analysis Services, omdat deze ondersteuning biedt voor partitionering en DirectQuery. Binnen een laag bepaalt de instantiegrootte het geheugen en de verwerkingskracht. Verwerkingskracht wordt gemeten in QPI's (Query Processing Units). Controleer uw QPU-gebruik om de juiste grootte te selecteren. Zie Metrische servergegevens bewaken voor meer informatie.

Bij hoge belasting kunnen queryprestaties verslechteren door gelijktijdigheid van query's. U kunt de schaal Analysis Services door een groep replica's te maken om query's te verwerken, zodat er gelijktijdig meer query's kunnen worden uitgevoerd. Het verwerken van het gegevensmodel vindt altijd plaats op de primaire server. De primaire server verwerkt standaard ook query's. U kunt eventueel de primaire server aanwijzen om exclusief verwerking uit te voeren, zodat de querygroep alle query's verwerkt. Als u hoge verwerkingsvereisten hebt, moet u de verwerking scheiden van de querygroep. Als u een hoge querybelasting en relatief lichte verwerking hebt, kunt u de primaire server opnemen in de querygroep. Zie uitschalen Azure Analysis Services meer informatie.

Als u de hoeveelheid onnodige verwerking wilt verminderen, kunt u partities gebruiken om het tabellaire model in logische delen te verdelen. Elke partitie kan afzonderlijk worden verwerkt. Zie Partities voor meer informatie.

Beveiligingsoverwegingen

Ip-lijst met toegestane Analysis Services clients

Overweeg het gebruik van Analysis Services firewallfunctie om ip-adressen van client toe te staan. Als deze functie is ingeschakeld, blokkeert de firewall alle andere clientverbindingen dan de verbindingen die zijn opgegeven in de firewallregels. Met de standaardregels kan de Power BI service worden weergegeven, maar u kunt deze regel desgewenst uitschakelen. Zie Hardening Azure Analysis Services with the new firewall capability (Een Azure Analysis Services met de nieuwe firewallfunctie) voor meer informatie.

Autorisatie

Azure Analysis Services gebruikt Azure Active Directory (Azure AD) om gebruikers te verifiëren die verbinding maken met een Analysis Services server. U kunt beperken welke gegevens een bepaalde gebruiker kan weergeven door rollen te maken en vervolgens Azure AD-gebruikers of -groepen toe te wijzen aan deze rollen. Voor elke rol kunt u het volgende doen:

  • Tabellen of afzonderlijke kolommen beveiligen.
  • Afzonderlijke rijen beveiligen op basis van filterexpressie.

Zie Databaserollen en -gebruikers beheren voor meer informatie.

DevOps overwegingen

  • Maak afzonderlijke resourcegroepen voor productie-, ontwikkelings- en testomgevingen. Met afzonderlijke resourcegroepen kunt u eenvoudiger implementaties beheren, testimplementaties verwijderen en toegangsrechten verlenen.

  • Gebruik de Azure-bouwsteensjablonen in deze architectuur of maak een Azure Resource Manager om de Azure-resources te implementeren volgens het IaC-proces (Infrastructure as Code). Met sjablonen is het eenvoudiger om implementaties te automatiseren met Behulp van Azure DevOps Servicesof andere CI/CD-oplossingen.

  • Plaats elke workload in een afzonderlijke implementatiesjabloon en sla de resources op in broncodebeheersystemen. U kunt de sjablonen samen of afzonderlijk implementeren als onderdeel van een CI/CD-proces, waardoor het automatiseringsproces eenvoudiger wordt.

    In deze architectuur zijn er drie hoofdworkloads:

    • De datawarehouseserver, Analysis Services en gerelateerde resources.
    • Azure Data Factory.
    • Een gesimuleerd scenario van on-premises naar de cloud.

    Elke workload heeft een eigen implementatiesjabloon.

    De datawarehouse-server wordt ingesteld en geconfigureerd met behulp van Azure CLI-opdrachten die de imperatieve benadering van de IaC-praktijk volgen. Overweeg het gebruik van implementatiescripts en integreer deze in het automatiseringsproces.

  • U kunt uw workloads faseren. Implementeer in verschillende fasen en voer validatiecontroles uit in elke fase voordat u naar de volgende fase gaat. Op die manier kunt u updates naar uw productieomgevingen pushen op een zeer gecontroleerde manier en onverwachte implementatieproblemen minimaliseren. Gebruik strategieën voor blue-green implementatie en Canary-releases voor het bijwerken van live productieomgevingen.

    Een goede terugdraaiende strategie hebben voor het afhandelen van mislukte implementaties. U kunt bijvoorbeeld automatisch een eerdere, geslaagde implementatie uit uw implementatiegeschiedenis opnieuw implementeren. Zie de vlagparameter --rollback-on-error in Azure CLI.

  • Azure Monitor is de aanbevolen optie voor het analyseren van de prestaties van uw datawarehouse en het hele Azure Analytics-platform voor een geïntegreerde bewakingservaring. Azure Synapse Analytics biedt een bewakingservaring binnen de Azure Portal inzicht te geven in uw datawarehouse-workload. De Azure Portal is het aanbevolen hulpprogramma bij het bewaken van uw datawarehouse, omdat het configureerbare bewaarperioden, waarschuwingen, aanbevelingen en aanpasbare grafieken en dashboards biedt voor metrische gegevens en logboeken.

Zie de sectie DevOps in Microsoft Azure Well-Architected Framework voor meer informatie.

Azure Synapse

  • Kies Geoptimaliseerde Gen1 voor rekenkracht voor frequente schaalbewerkingen. Deze optie is geprijsd als betalen per gebruik, op basis van datawarehouse-eenhedenverbruik (DWU).

  • Kies Compute Optimized Gen2 voor intensieve workloads met hogere queryprestaties en schaalbaarheidsbehoeften. U kunt het model betalen per gebruik kiezen of gereserveerde abonnementen van één jaar (37% besparingen) of 3 jaar (65% besparingen) gebruiken.

Gegevensopslag wordt afzonderlijk in rekening gebracht. Andere services, zoals herstel na noodherstel en detectie van bedreigingen, worden ook afzonderlijk in rekening gebracht.

Zie Prijzen Azure Synapse voor meer informatie.

Azure Analysis Services

De prijzen voor Azure Analysis Services zijn afhankelijk van de laag. De referentie-implementatie van deze architectuur maakt gebruik van de developerlaag, die wordt aanbevolen voor evaluatie-, ontwikkelings- en testscenario's. Andere lagen zijn de basic-laag, die wordt aanbevolen voor een kleine productieomgeving; de Standard-laag voor bedrijfskritieke productietoepassingen. Zie De juiste laag wanneer u deze nodig hebt voor meer informatie.

Er worden geen kosten in rekening gebracht wanneer u uw exemplaar onder pauzeert.

Zie prijzen Azure Analysis Services voor meer informatie.

Blob Storage

U kunt de functie Azure Storage gereserveerde capaciteit gebruiken om de kosten voor opslag te verlagen. Met dit model krijgt u korting als u een reservering voor een vaste opslagcapaciteit voor één of drie jaar kunt maken. Zie Kosten optimaliseren voor Blob Storage met gereserveerde capaciteit voor meer informatie.

Power BI Embedded

Power BI Embedded is een PaaS-oplossing (Platform-as-a-Service) die een set API's biedt voor de integratie van Power BI inhoud in aangepaste apps en websites. Gebruikers die BI-inhoud publiceren, moeten een licentie hebben voor Power BI Pro. Zie prijzen voor Power BI Embedded informatie over prijzen.

Zie de sectie Kosten in Microsoft Azure Well-Architected Framework voor meer informatie.

De oplossing implementeren

Als u de referentie-implementatie wilt implementeren en uitvoeren, volgt u de stappen in GitHub readme. De volgende resources worden geïmplementeerd:

  • Een Windows-VM voor het simuleren van een on-premises databaseserver. Het bevat SQL Server 2017 en gerelateerde hulpprogramma's, samen met Power BI Desktop.
  • Een Azure-opslagaccount dat Blob Storage biedt voor het opslaan van gegevens die zijn geëxporteerd uit SQL Server database.
  • Een Azure Synapse-exemplaar.
  • Een Azure Analysis Services-exemplaar.

Volgende stappen

U kunt de volgende Azure-voorbeeldscenario's bekijken waarin specifieke oplossingen worden gedemonstreerd die gebruikmaken van een aantal van dezelfde technologieën: