Rapport over uitgeschaalde clouddatabases (preview)
Van toepassing op: Azure SQL Database
U kunt rapporten van meerdere databases maken vanuit één verbindingspunt met behulp van een elastische query. De databases moeten horizontaal worden gepartitioneerd (ook wel 'sharded' genoemd).
Als u een bestaande database hebt, raadpleegt u Bestaande databases migreren naar uitgeschaalde databases.
Zie Query over horizontaal gepartitioneerde databases voor meer informatie over de SQL-objecten die nodig zijn om een query uit te voeren.
Vereisten
Download en voer het voorbeeld aan de slag met elastic database-hulpprogramma's uit.
Een shard-toewijzingsbeheer maken met behulp van de voorbeeld-app
Hier maakt u een shard-toewijzingsbeheer samen met verschillende shards, gevolgd door het invoegen van gegevens in de shards. Als u al shards hebt ingesteld met shardgegevens, kunt u de volgende stappen overslaan en naar de volgende sectie gaan.
Bouw en voer de voorbeeldtoepassing Aan de slag met elastic Database-hulpprogramma's uit door de stappen in de sectie Download en voer de voorbeeld-app uit. Zodra u alle stappen hebt voltooid, ziet u de volgende opdrachtprompt:
Typ '1' in het opdrachtvenster en druk op Enter. Hiermee maakt u shardtoewijzingsbeheer en voegt u twee shards toe aan de server. Typ vervolgens '3' en druk op Enter. Herhaal de actie vier keer. Hiermee voegt u voorbeeldgegevensrijen in uw shards in.
In De Azure-portal moeten drie nieuwe databases op uw server worden weergegeven:
Op dit moment worden query's voor meerdere databases ondersteund via de elastic database-clientbibliotheken. Gebruik bijvoorbeeld optie 4 in het opdrachtvenster. De resultaten van een multi-shardquery zijn altijd een UNION ALL van de resultaten van alle shards.
In de volgende sectie maken we een voorbeelddatabase-eindpunt dat ondersteuning biedt voor uitgebreidere query's op de gegevens in shards.
Een elastische querydatabase maken
Open Azure Portal en meld u aan.
Maak een nieuwe database in Azure SQL Database op dezelfde server als uw shard-installatie. Geef de database de naam ElasticDBQuery.
Notitie
u kunt een bestaande database gebruiken. Als u dit kunt doen, mag dit niet een van de shards zijn waarop u uw query's wilt uitvoeren. Deze database wordt gebruikt voor het maken van de metagegevensobjecten voor een elastische databasequery.
Databaseobjecten maken
Hoofdsleutel en referenties met databasebereik
Deze worden gebruikt om verbinding te maken met shard-toewijzingsbeheer en de shards:
Open SQL Server Management Studio of SQL Server Data Tools in Visual Studio.
Maak verbinding met de ElasticDBQuery-database en voer de volgende T-SQL-opdrachten uit:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>'; CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred WITH IDENTITY = '<username>', SECRET = '<password>';
Gebruikersnaam en wachtwoord moeten hetzelfde zijn als aanmeldingsgegevens die worden gebruikt in stap 3 van de sectie Download en voer de voorbeeld-app uit in het artikel Aan de slag met hulpprogramma's voor Elastic Database.
Externe gegevensbronnen
Als u een externe gegevensbron wilt maken, voert u de volgende opdracht uit op de ElasticDBQuery-database:
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
(TYPE = SHARD_MAP_MANAGER,
LOCATION = '<server_name>.database.windows.net',
DATABASE_NAME = 'ElasticScaleStarterKit_ShardMapManagerDb',
CREDENTIAL = ElasticDBQueryCred,
SHARD_MAP_NAME = 'CustomerIDShardMap'
) ;
'CustomerIDShardMap' is de naam van de shard-toewijzing, als u de shard-toewijzing en shard-toewijzingsmanager hebt gemaakt met behulp van het voorbeeld van hulpprogramma's voor elastische databases. Als u echter uw aangepaste installatie voor dit voorbeeld hebt gebruikt, moet dit de shardtoewijzingsnaam zijn die u in uw toepassing hebt gekozen.
Externe tabellen
Maak een externe tabel die overeenkomt met de tabel Klanten op de shards door de volgende opdracht uit te voeren op de ElasticDBQuery-database:
CREATE EXTERNAL TABLE [dbo].[Customers]
( [CustomerId] [int] NOT NULL,
[Name] [nvarchar](256) NOT NULL,
[RegionId] [int] NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc,
DISTRIBUTION = SHARDED([CustomerId])
) ;
Een T-SQL-voorbeeldquery voor een elastische database uitvoeren
Nadat u uw externe gegevensbron en uw externe tabellen hebt gedefinieerd, kunt u nu volledige T-SQL gebruiken voor uw externe tabellen.
Voer deze query uit op de ElasticDBQuery-database:
select count(CustomerId) from [dbo].[Customers]
U ziet dat de query resultaten van alle shards samenvoegt en de volgende uitvoer geeft:
Queryresultaten voor elastische databases importeren in Excel
U kunt de resultaten van een query importeren in een Excel-bestand.
Start Excel 2013.
Navigeer naar het lint Gegevens .
Klik op Uit andere bronnen en klik op Van SQL Server.
Typ in de wizard Gegevensverbinding de servernaam en aanmeldingsreferenties. Klik vervolgens op volgende.
Selecteer in het dialoogvenster De database met de gewenste gegevens selecteren de ElasticDBQuery-database .
Selecteer de tabel Klanten in de lijstweergave en klik op Volgende. Klik vervolgens op Voltooien.
Selecteer tabel in het formulier Gegevens importeren onder Selecteren hoe u deze gegevens in uw werkmap wilt weergeven en klik op OK.
Alle rijen uit de tabel Klanten , die zijn opgeslagen in verschillende shards, vullen het Excel-blad.
U kunt nu de krachtige functies voor gegevensvisualisatie van Excel gebruiken. U kunt de verbindingsreeks gebruiken met uw servernaam, databasenaam en referenties om uw BI- en gegevensintegratiehulpprogramma's te verbinden met de elastische querydatabase. Zorg ervoor dat SQL Server wordt ondersteund als gegevensbron voor uw hulpprogramma. U kunt verwijzen naar de elastische querydatabase en externe tabellen, net zoals elke andere SQL Server-database en SQL Server-tabellen waarmee u verbinding maakt met uw hulpprogramma.
Kosten
Er worden geen extra kosten in rekening gebracht voor het gebruik van de functie Elastische databasequery.
Zie prijsinformatie voor SQL Database voor meer informatie.
Volgende stappen
- Zie Overzicht van elastische query's voor een overzicht van elastische query's.
- Zie Aan de slag met query's op meerdere databases (verticale partitionering) voor een zelfstudie over verticale partitionering.
- Zie Query's uitvoeren op verticaal gepartitioneerde gegevens voor de syntaxis van en voorbeeldquery's voor verticaal gepartitioneerde gegevens
- Zie Query's uitvoeren op horizontaal gepartitioneerde gegevens voor de syntaxis van en voorbeeldquery's voor horizontaal gepartitioneerde gegevens
- Zie sp_execute _remote voor een opgeslagen procedure waarmee een Transact-SQL-instructie wordt uitgevoerd op één externe Azure SQL Database of een set databases die als shards fungeren in een horizontaal partitioneringsschema.