Konfigurieren der Streamingerfassung in Ihrem Azure Synapse Data Explorer-Pool (Vorschau)

Die Streamingerfassung ist nützlich zum Laden von Daten, wenn eine geringe Wartezeit zwischen Erfassung und Abfrage erforderlich ist. Die Streamingerfassung kann in folgenden Szenarien verwendet werden:

  • Eine Wartezeit von weniger als einer Sekunde ist erforderlich.
  • Optimierung der operativen Verarbeitung vieler Tabellen, bei denen der Datenstrom für die einzelnen Tabellen jeweils relativ klein (wenige Datensätze pro Sekunde), das Gesamtvolumen der Datenerfassung aber hoch ist (mehrere tausend Datensätze pro Sekunde).

Wenn der Datenstrom für die einzelnen Tabellen groß ist (über 4 GB pro Stunde), sollten Sie ggf. die Batcherfassung nutzen.

Unter Übersicht über die Datenerfassung in Azure Data Explorer erfahren Sie mehr über verschiedene Erfassungsmethoden.

Auswählen des geeigneten Streamingerfassungstyps

Zwei Streamingerfassungstypen werden unterstützt:

Erfassungstyp BESCHREIBUNG
Event Hub oder IoT Hub Hubs werden als Datenquellen für das Tabellenstreaming konfiguriert.
Informationen zu ihrer Einrichtung finden Sie unter Event Hub.
Benutzerdefinierte Erfassung Für die benutzerdefinierte Erfassung muss eine Anwendung geschrieben werden, die eine der Clientbibliotheken von Azure Synapse Data Explorer verwendet.
Konfigurieren Sie die benutzerdefinierte Erfassung anhand der Informationen in diesem Thema. Unter Umständen finden Sie auch die C#-Beispielanwendung für die Streamingerfassung hilfreich.

Die folgende Tabelle unterstützt Sie beim Auswählen eines für Ihre Umgebung geeigneten Erfassungstyps:

Kriterium Event Hub/IoT Hub Benutzerdefinierte Erfassung
Datenverzögerung zwischen der Initiierung der Erfassung und der Verfügbarkeit der Daten für Abfragen Längere Verzögerung Kürzere Verzögerung
Zusätzlicher Entwicklungsaufwand Schnelle und einfache Einrichtung, kein zusätzlicher Entwicklungsaufwand Hoher zusätzlicher Entwicklungsaufwand zum Erstellen einer Anwendung, um die Daten zu erfassen, Fehler zu behandeln und die Datenkonsistenz sicherzustellen.

Hinweis

Das Erfassen von Daten aus einem Event Hub in Data Explorer-Pools funktioniert nicht, wenn Ihr Synapse-Arbeitsbereich ein verwaltetes virtuelles Netzwerk mit aktiviertem Datenexfiltrationsschutz verwendet.

Voraussetzungen

  • Ein Azure-Abonnement. Erstellen Sie ein kostenloses Azure-Konto.

  • Erstellen eines Data Explorer-Pools über Synapse Studio oder im Azure-Portal

  • Erstellen Sie eine Data Explorer-Datenbank.

    1. Wählen Sie in Synapse Studio im linken Bereich Daten aus.

    2. Wählen Sie + (Neue Ressource hinzufügen) >Data Explorer-Pool aus, und verwenden Sie die folgenden Informationen:

      Einstellung Vorgeschlagener Wert BESCHREIBUNG
      Poolname contosodataexplorer Name des zu verwendende Data Explorer-Pools
      Name TestDatabase Der Datenbankname muss innerhalb des Clusters eindeutig sein.
      Standardaufbewahrungszeitraum 365 Die Zeitspanne (in Tagen), für die garantiert wird, dass die Daten für Abfragen verfügbar bleiben. Die Zeitspanne wird ab dem Zeitpunkt gemessen, zu dem die Daten erfasst werden.
      Standardcachezeitraum 31 Die Zeitspanne (in Tagen), wie lange häufig abgefragte Daten im SSD-Speicher oder RAM (und nicht im längerfristigen Speicher) verfügbar bleiben.
    3. Wählen Sie Erstellen, um die Datenbank zu erstellen. Die Erstellung dauert in der Regel weniger als eine Minute.

  • Abrufen der Abfrage- und Datenerfassungsendpunkte
    1. Wählen Sie in Synapse Studio im linken Bereich die Option Verwalten>Data Explorer-Pools aus.

    2. Wählen Sie den Data Explorer-Pool aus, zu dem Sie Details anzeigen möchten.

      Screenshot: Bildschirm des Data Explorer-Pools mit einer Liste der vorhandenen Pools

    3. Notieren Sie sich die Abfrage- und Datenerfassungsendpunkte. Verwenden Sie den Abfrageendpunkt als Cluster, wenn Sie Verbindungen mit Ihrem Data Explorer-Pool konfigurieren. Verwenden Sie beim Konfigurieren von SDKs für die Datenerfassung den Datenerfassungsendpunkt.

      Screenshot: Eigenschaftenseite des Data Explorer-Pools mit Anzeige der URI-Adressen für Abfrage und Datenerfassung

Überlegungen zu Leistung und Betrieb

Die wichtigsten Aspekte, die sich auf die Streamingerfassung auswirken können:

  • Computespezifikation: Die Leistung und Kapazität der Streamingerfassung wird bei größeren Data Explorer-Pools skaliert. Die Anzahl der gleichzeitigen Erfassungsanforderungen ist auf sechs pro Kern beschränkt. Für 16 Kernworkloadtypen wie „Für Compute optimiert“ (Groß) und „Datenspeicheroptimiert“ (Groß) beträgt die maximal unterstützte Last beispielsweise 96 gleichzeitige Erfassungsanforderungen. Für zwei Kernworkloadtypen wie „Für Compute optimiert“ (Sehr klein) beträgt die maximal unterstützte Last beispielsweise 12 gleichzeitige Erfassungsanforderungen.
  • Datengrößenbeschränkung: Die Datengröße für Anforderungen zur Streamingerfassung ist auf 4 MB beschränkt.
  • Schemaaktualisierungen: Schemaaktualisierungen wie die Erstellung und Änderung von Tabellen und Erfassungszuordnungen können für den Streamingerfassungsdienst bis zu fünf Minuten dauern. Weitere Informationen finden Sie unter Streamingerfassung und Schemaänderungen.
  • SSD-Kapazität: Wenn die Streamingerfassung in einem Data Explorer-Pool aktiviert wird, wird ein Teil des lokalen SSD-Datenträgers der Data Explorer-Poolcompuer für Streamingerfassungsdaten genutzt, wodurch sich der verfügbare Speicherplatz für den aktiven Cache verringert. Dies gilt auch, wenn gar keine Daten per Streaming erfasst werden.

Aktivieren der Streamingerfassung für Ihren Data Explorer-Pool

Bevor Sie die Streamingerfassung verwenden können, müssen Sie die Funktion für den Data Explorer-Pool aktivieren und eine Streamingerfassungsrichtlinie definieren. Sie können die Funktion beim Erstellen des Data Explorer-Pools aktivieren oder einem vorhandenen Data Explorer-Pool hinzufügen.

Warnung

Überprüfen Sie vor dem Aktivieren der Streamingerfassung die Einschränkungen.

Aktivieren der Streamingerfassung beim Erstellen eines neuen Data Explorer-Pools

Sie können die Streamingerfassung beim Erstellen eines neuen Data Explorer-Pools mithilfe von Azure Synapse Studio oder des Azure-Portals aktivieren.

Wählen Sie beim Erstellen eines Data Explorer-Pools anhand der Schritte unter Schnellstart: Erstellen eines Data Explorer-Pools mit Synapse Studio (Vorschau) auf der Registerkarte Zusätzliche Einstellungen die Optionen Streamingerfassung>Aktiviert aus.

Aktivieren der Streamingerfassung beim Erstellen eines Data Explorer-Pools in Azure Synapse Data Explorer

Aktivieren der Streamingerfassung für einen vorhandenen Data Explorer-Pool

Wenn Sie über einen vorhandenen Data Explorer-Pool verfügen, können Sie die Streamingerfassung mithilfe des Azure-Portals aktivieren.

  1. Navigieren Sie im Azure-Portal zu Ihrem Data Explorer-Pool.
  2. Wählen Sie unter Einstellungen die Option Konfigurationen aus.
  3. Wählen Sie im Bereich Konfigurationen die Option Ein aus, um die Streamingerfassung zu aktivieren.
  4. Wählen Sie Speichern aus.

Erstellen einer Zieltabelle und Definieren der Richtlinie

Erstellen Sie eine Tabelle, um die Streamingerfassungsdaten zu empfangen, und definieren Sie die zugehörige Richtlinie mithilfe von Azure Synapse Studio oder des Azure-Portals.

  1. Wählen Sie in Synapse Studio im linken Bereich Entwickeln aus.

  2. Wählen Sie unter KQL-Skripts die Option + (Neue Ressource hinzufügen) >KQL-Skript aus. Im rechten Bereich können Sie Ihr Skript benennen.

  3. Wählen Sie im Menü Verbinden mit den Eintrag contosodataexplorer aus.

  4. Wählen Sie im Menü Datenbank verwenden die Option TestDatabase aus.

  5. Fügen Sie den folgenden Befehl ein, und wählen Sie Ausführen aus, um die Tabelle zu erstellen.

    .create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
    
  6. Kopieren Sie einen der folgenden Befehle in den Abfragebereich, und wählen Sie Ausführen aus: Dadurch wird die Streamingerfassungsrichtlinie für die von Ihnen erstellte Tabelle oder für die Datenbank definiert, die diese Tabelle enthält.

    Tipp

    Eine Richtlinie, die auf Datenbankebene definiert ist, gilt für alle vorhandenen und zukünftigen Tabellen in der Datenbank.

    • Verwenden Sie Folgendes, um die Richtlinie für die von Ihnen erstellte Tabelle zu definieren:

      .alter table TestTable policy streamingingestion enable
      
    • Verwenden Sie Folgendes, um die Richtlinie für die Datenbank zu definieren, die die von Ihnen erstellte Tabelle enthält:

      .alter database StreamingTestDb policy streamingingestion enable
      

Erstellen einer Anwendung für die Streamingerfassung zum Erfassen von Daten in Ihrem Data Explorer-Pool

Erstellen Sie Ihre Anwendung zum Erfassen von Daten in Ihrem Data Explorer-Pool unter Verwendung der von Ihnen bevorzugten Sprache. Verwenden Sie für die Variable poolPath den Abfrageendpunkt, den Sie sich unter Voraussetzungen notiert haben.

using Kusto.Data;
using Kusto.Ingest;
using System.IO;
using Kusto.Data.Common;

namespace StreamingIngestion
{
    class Program
    {
        static void Main(string[] args)
        {
            string poolPath = "https://<Poolname>.<WorkspaceName>.kusto.windows.net";
            string appId = "<appId>";
            string appKey = "<appKey>";
            string appTenant = "<appTenant>";
            string dbName = "<dbName>";
            string tableName = "<tableName>";

            // Create Kusto connection string with App Authentication
            var csb =
                new KustoConnectionStringBuilder(poolPath)
                    .WithAadApplicationKeyAuthentication(
                        applicationClientId: appId,
                        applicationKey: appKey,
                        authority: appTenant
                    );

            // Create a disposable client that will execute the ingestion
            using (IKustoIngestClient client = KustoIngestFactory.CreateStreamingIngestClient(csb))
            {
                // Initialize client properties
                var ingestionProperties =
                    new KustoIngestionProperties(
                        databaseName: dbName,
                        tableName: tableName
                    );

                // Ingest from a compressed file
                var fileStream = File.Open("MyFile.gz", FileMode.Open);
                // Create source options
                var sourceOptions = new StreamSourceOptions()
                {
                    CompressionType = DataSourceCompressionType.GZip,
                };
                // Ingest from stream
                var status = client.IngestFromStreamAsync(fileStream, ingestionProperties, sourceOptions).GetAwaiter().GetResult();
            }
        }
    }
}

Deaktivieren der Streamingerfassung für Ihren Data Explorer-Pool

Warnung

Die Deaktivierung der Streamingerfassung kann mehrere Stunden dauern.

Bevor Sie die Streamingerfassung für Ihren Data Explorer-Pool deaktivieren, löschen Sie die Streamingerfassungsrichtlinie aus allen relevanten Tabellen und Datenbanken. Durch das Entfernen der Streamingerfassungsrichtlinie wird eine Neuanordnung der Daten in Ihrem Data Explorer-Pool ausgelöst. Die Streamingerfassungsdaten werden aus dem anfänglichen Speicher in den permanenten Speicher im Spaltenspeicher (Erweiterungen oder Shards) verschoben. Dieser Vorgang kann abhängig von der Datenmenge im anfänglichen Speicher zwischen einigen Sekunden und wenigen Stunden dauern.

Löschen der Streamingerfassungsrichtlinie

Sie können die Streamingerfassungsrichtlinie mithilfe von Azure Synapse Studio oder des Azure-Portals löschen.

  1. Wählen Sie in Synapse Studio im linken Bereich Entwickeln aus.

  2. Wählen Sie unter KQL-Skripts die Option + (Neue Ressource hinzufügen) >KQL-Skript aus. Im rechten Bereich können Sie Ihr Skript benennen.

  3. Wählen Sie im Menü Verbinden mit den Eintrag contosodataexplorer aus.

  4. Wählen Sie im Menü Datenbank verwenden die Option TestDatabase aus.

  5. Fügen Sie den folgenden Befehl ein, und wählen Sie Ausführen aus, um die Tabelle zu erstellen.

    .delete table TestTable policy streamingingestion
    
  6. Navigieren Sie im Azure-Portal zu Ihrem Data Explorer-Pool.

  7. Wählen Sie unter Einstellungen die Option Konfigurationen aus.

  8. Wählen Sie im Bereich Konfigurationen die Option Ein aus, um die Streamingerfassung zu aktivieren.

  9. Wählen Sie Speichern aus.

Einschränkungen

  • Datenbankcursor werden für eine Datenbank nicht unterstützt, wenn für diese selbst oder für eine Ihrer Tabellen die Richtlinie für die Streamingerfassung definiert und aktiviert wurde.
  • Datenzuordnungen müssen vorab erstellt werden, damit sie bei der Streamingerfassung verwendet werden können. Individuelle Anforderungen zur Streamingerfassung bieten keine Inlinedatenzuordnungen.
  • Erweiterungstags können für die Streamingerfassungsdaten nicht festgelegt werden.
  • Aktualisierungsrichtlinie: Die Aktualisierungsrichtlinie kann nur auf die neu erfassten Daten in der Quelltabelle und nicht auf andere Daten oder Tabellen in der Datenbank verweisen.
  • Wenn die Streamingerfassung für eine der Tabellen der Datenbank verwendet wird, kann diese Datenbank nicht als Leader für Follower-Datenbanken oder als Datenanbieter für die Azure Synapse Analytics-Datenfreigabe verwendet werden.

Nächste Schritte