Erstellen von Berichten für horizontal hochskalierte Clouddatenbanken
Gilt für:: Azure SQL-Datenbank
Sie können mit einer elastischen Abfrage Berichte von mehreren Datenbanken über einen einzigen Verbindungspunkt erstellen. Die Datenbanken müssen horizontal partitioniert werden (auch als „Sharding“ bezeichnet).
Wenn Sie über eine vorhandene Datenbank verfügen, finden Sie entsprechende Informationen unter Migrieren von vorhandenen Datenbanken zu horizontaler Hochskalierung.
Informationen zu den für Abfragen benötigten SQL-Objekten finden Sie unter Ausführen von Abfragen über horizontal partitionierte Clouddatenbanken (Sharddatenbanken) hinweg.
Voraussetzungen
Laden Sie das Beispiel Erste Schritte mit den Tools für die elastische Datenbankherunter, und führen Sie es aus.
Erstellen eines Shardzuordnungs-Managers mithilfe der Beispiel-App
Hier erstellen Sie einen Shardzuordnungs-Manager und mehrere Shards und fügen anschließend Daten in die Shards ein. Wenn Sie bereits über Shards verfügen, die Shardingdaten enthalten, können Sie die folgenden Schritte überspringen und zum nächsten Abschnitt wechseln.
Erstellen Sie die Beispielanwendung aus Erste Schritte mit den Tools für die elastische Datenbank, und führen Sie sie aus. Befolgen Sie dazu die Anweisungen im Artikelabschnitt Herunterladen und Ausführen der Beispiel-App. Wenn Sie alle Schritte abgeschlossen haben, wird die folgende Eingabeaufforderung angezeigt:
Geben Sie im Befehlsfenster „1“ ein, und drücken Sie die EINGABETASTE. Dadurch wird der Shardzuordnungs-Manager erstellt, und es werden zwei Shards zum Server hinzugefügt. Geben Sie dann „3“ ein, und drücken Sie die EINGABETASTE. Wiederholen Sie den Vorgang viermal. Dadurch werden Beispieldatenzeilen in die Shards eingefügt.
Im Azure-Portal sollten drei neue Datenbanken auf dem Server angezeigt werden:
Zum diesem Zeitpunkt werden datenbankübergreifende Abfragen durch die Clientbibliotheken für elastische Datenbanken unterstützt. Verwenden Sie z. B. Option 4 im Eingabeaufforderungsfenster. Die Ergebnisse einer Abfrage mit mehreren Shards sind immer ein UNION ALL der Ergebnisse aus allen Shards.
Im nächsten Abschnitt erstellen wir einen Endpunkt für eine Beispieldatenbank, der umfangreichere Abfragen der Daten über Shards hinweg unterstützt.
Erstellen einer elastischen Datenbankabfrage
Öffnen Sie das Azure-Portal, und melden Sie sich an.
Erstellen Sie eine neue Datenbank in Azure SQL-Datenbank auf demselben Server, auf dem sich auch das Shardsetup befindet. Nennen Sie die Datenbank "ElasticDBQuery".
Hinweis
Sie können eine vorhandene Datenbank verwenden. Wenn Sie diese Konfiguration wählen, darf es sich bei dem Shard nicht um einen der Shards handeln, für die Sie die Abfragen ausführen möchten. Diese Datenbank wird zum Erstellen der Metadatenobjekte für eine Abfrage für elastische Datenbanken verwendet.
Erstellen von Datenbankobjekten
Erstellen des Datenbankhauptschlüssels und der Anmeldeinformationen
Diese Informationen werden für die Verbindung mit dem Shard-Zuordnungs-Manager und den Shards verwendet:
Öffnen Sie SQL Server Management Studio oder SQL Server Data Tools in Visual Studio.
Stellen Sie eine Verbindung mit der ElasticDBQuery-Datenbank her, und führen Sie die folgenden T-SQL-Befehle aus:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>'; CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred WITH IDENTITY = '<username>', SECRET = '<password>';
„username“ und „password“ müssen mit den Anmeldeinformationen aus Schritt 3 im Abschnitt Herunterladen und Ausführen der Beispiel-App im Artikel Erste Schritte mit den Tools für elastische Datenbanken übereinstimmen.
Externe Datenquellen
Um eine externe Datenquelle zu erstellen, führen Sie den folgenden Befehl für die ElasticDBQuery-Datenbank aus:
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" ist der Name der Shard-Zuordnung, wenn Sie die Shard-Zuordnung und den Shard-Zuordnungs-Manager mithilfe des Beispiels für die Tools für elastische Datenbanken erstellt haben. Wenn Sie jedoch Ihre benutzerdefinierte Konfiguration für dieses Beispiel verwendet haben, sollte dies der Name Shard-Zuordnung sein, den Sie in der Anwendung ausgewählt haben.
Externe Tabellen
Erstellen Sie eine externe Tabelle, die mit der Customers-Tabelle in den Shards übereinstimmt, indem Sie den folgenden Befehl für die ElasticDBQuery-Datenbank ausführen:
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])
) ;
Ausführen einer T-SQL-Abfrage für eine elastische Beispieldatenbank
Nachdem Sie die externe Datenquelle und die externen Tabellen definiert haben, können Sie jetzt vollständiges T-SQL in den externen Tabellen verwenden.
Führen Sie die folgende Abfrage für die ElasticDBQuery-Datenbank aus:
select count(CustomerId) from [dbo].[Customers]
Sie werden feststellen, dass die Abfrage Ergebnisse aus allen Shards aggregiert und die folgende Ausgabe ausgibt:
Importieren der Ergebnisse der Abfrage für die elastische Datenbank in Excel
Sie können die Ergebnisse einer Abfrage in eine Excel-Datei importieren.
Öffnen Sie Excel 2013.
Navigieren Sie zum Menüband Daten .
Klicken Sie auf Aus anderen Quellen und dann auf Von SQL Server.
Geben Sie im Datenverbindungs-Assistenten den Servernamen und die Anmeldeinformationen ein. Klicken Sie dann auf Weiter.
Wählen Sie im Dialogfeld Wählen Sie die Datenbank, die die benötigten Daten enthält die Datenbank ElasticDBQuery aus.
Wählen Sie in der Listenansicht die Tabelle Customers aus, und klicken Sie auf Weiter. Klicken Sie auf Fertig stellen.
Wählen Sie im Formular Daten importieren unter Wählen Sie das Format aus, in dem Sie diese Daten in der Arbeitsmappe anzeigen möchten die Option Tabelle aus, und klicken Sie auf OK.
Die Excel-Tabelle wird mit allen Zeilen aus der Tabelle Customers gefüllt, die in verschiedenen Shards gespeichert sind.
Sie können jetzt die leistungsstarken Funktionen von Excel zur Datenvisualisierung verwenden. Sie können die Verbindungszeichenfolge mit dem Servernamen, Datenbanknamen und den Anmeldeinformationen zur Verbindung der BI und der Datenintegrationstools mit der elastischen Abfragedatenbank verwenden. Stellen Sie sicher, dass SQL Server als Datenquelle für das Tool unterstützt wird. Sie können auf die elastische Abfragedatenbank und die externen Tabellen wie auf jede andere SQL Server-Datenbank und SQL Server-Tabelle verweisen, zu denen Sie mit dem Tool eine Verbindung herstellen würden.
Kosten
Es gibt keine zusätzlichen Gebühren für die Verwendung der Abfragefunktion für elastische Datenbanken.
Preisinformationen finden Sie in der SQL-Datenbank – Preisdetails.
Nächste Schritte
- Eine Übersicht über elastische Abfragen finden Sie unter Übersicht über elastische Abfragen in Azure SQL-Datenbank.
- Ein Tutorial zur vertikalen Partitionierung finden Sie unter Erste Schritte mit datenbankübergreifenden Abfragen (vertikale Partitionierung).
- Die Syntax und Beispiele für Abfragen von vertikal partitionierten Daten finden Sie unter Abfragen von vertikal partitionierten Daten.
- Die Syntax und Beispiele für Abfragen von horizontal partitionierten Daten finden Sie unter Abfragen von horizontal partitionierten Daten.
- Unter sp_execute_remote finden Sie eine gespeicherte Prozedur, mit der eine Transact-SQL-Anweisung für eine einzelne Remoteinstanz von Azure SQL-Datenbank oder für eine Gruppe von Datenbanken ausgeführt wird, die als Shards in einem Schema mit horizontaler Partitionierung dienen.