Auf Englisch lesen

Freigeben über


Erstellen einer Event Grid-Datenverbindung für Azure Data Explorer

In diesem Artikel erfahren Sie, wie Blobs aus Ihrem Speicherkonto unter Verwendung einer Event Grid-Datenverbindung in Azure Data Explorer erfasst werden. Sie erstellen eine Event Grid-Datenverbindung, über die ein Azure Event Grid-Abonnement festgelegt wird. Das Event Grid-Abonnement leitet Ereignisse aus Ihrem Speicherkonto über Azure Event Hubs an Azure Data Explorer weiter.

Hinweis

Die Erfassung unterstützt eine maximale Dateigröße von 6 GB. Es wird empfohlen, Dateien zwischen 100 MB und 1 GB zu erfassen.

Informationen zum Erstellen der Verbindung mithilfe der Kusto-SDKs finden Sie unter Erstellen einer Event Grid-Datenverbindung mit SDKs.

Allgemeine Informationen zur Erfassung in Azure Data Explorer aus Event Grid finden Sie unter Herstellen einer Verbindung mit Event Grid.

Hinweis

Um die beste Leistung mit der Event Grid-Verbindung zu erzielen, legen Sie die rawSizeBytes-Erfassungseigenschaft über die Blob-Metadaten fest. Weitere Informationen finden Sie unter Erfassungseigenschaften.

Voraussetzungen

Erstellen einer Event Grid-Datenverbindung

In diesem Abschnitt richten Sie eine Verbindung zwischen Event Grid und Ihrer Azure Data Explorer-Tabelle ein.

  1. Navigieren Sie im Azure-Portal zu Ihrem Azure Data Explorer-Cluster.

  2. Wählen Sie unter Daten die Option Datenbanken>TestDatabase aus.

    Screenshot des Datenbankabschnitts des Clusters mit einer Liste der darin enthaltenen Datenbanken

  3. Wählen Sie unter Einstellungen die Option Datenverbindungen aus, und wählen Sie dann Datenverbindung hinzufügen>Event Grid (Blob Storage) aus.

    Screenshot der Seite „Datenverbindungen“. Die Option zum Hinzufügen einer Datenverbindung ist hervorgehoben.

  4. Füllen Sie das Formular für die Event Grid-Datenverbindung mit den folgenden Informationen aus:

    Screenshot des Event Grid-Bereichs mit den Details für die Datenverbindung

    Einstellung Empfohlener Wert Feldbeschreibung
    Name der Datenverbindung test-grid-connection Der Name der Verbindung, die Sie im Azure Data Explorer erstellen möchten. Namen von Datenverbindungen dürfen nur alphanumerische Zeichen, Bindestriche und Punkte enthalten und können bis zu 40 Zeichen lang sein.
    Speicherkontoabonnement Ihre Abonnement-ID Die Abonnement-ID, unter der sich Ihr Speicherkonto befindet.
    Ereignistyp Blob erstellt oder Blob umbenannt Der Typ des Ereignisses, das die Erfassung auslöst Blob umbenannt wird nur für ADLSv2-Speicher unterstützt. Navigieren Sie zum Umbenennen eines Blobs im Azure-Portal zum Blob, klicken Sie mit der rechten Maustaste auf das Blob, und wählen Sie Umbenennen aus. Folgende Typen werden unterstützt: „Microsoft.Storage.BlobCreated“ oder „Microsoft.Storage.BlobRenamed“.
    Speicherkonto gridteststorage1 Der Name des zuvor erstellten Speicherkontos.
    Ressourcenerstellung Automatisch Das Aktivieren der automatischen Ressourcenerstellung bedeutet, dass Azure Data Explorer ein Event Grid-Abonnement, einen Event Hubs-Namespace und eine Event Hub-Instanz für Sie erstellt. Andernfalls müssen Sie diese Ressourcen manuell erstellen, um die Erstellung der Datenverbindung sicherzustellen. Weitere Informationen finden Sie unter Manuelles Erstellen von Ressourcen für die Event Grid-Erfassung.
    1. Optional können Sie bestimmte Event Grid-Themen nachverfolgen. Legen Sie die Filter für die Benachrichtigungen wie folgt fest:

      • Das Feld Präfix ist das Literalpräfix des Themas. Da das angewendete Muster Beginnt mit ist, kann es für mehrere Container, Ordner oder Blobs gelten. Platzhalter sind nicht zulässig.
        • Zum Definieren eines Filters für den Blobcontainer muss das Feld wie folgt festgelegt werden: /blobServices/default/containers/[container prefix].
        • Zum Definieren eines Filters für ein Blobpräfix (oder einen Ordner in Azure Data Lake Gen2) muss das Feld wie folgt festgelegt werden: /blobServices/default/containers/[container name]/blobs/[folder/blob prefix].
      • Das Feld Suffix ist das Literalsuffix des Blobs. Platzhalter sind nicht zulässig.
      • Mit dem Feld Groß-/Kleinschreibung beachten wird angegeben, ob bei den Präfix- und Suffixfiltern nach Groß-/Kleinschreibung unterschieden wird.

      Weitere Informationen zum Filtern von Ereignissen finden Sie unter Blob Storage-Ereignisse.

    2. Optional können Sie die Datenroutingeinstellungen gemäß den folgenden Informationen angeben. Sie müssen nicht alle Datenroutingeinstellungen angeben. Es ist auch zulässig, nur einen Teil der Einstellungen anzugeben.

      Einstellung Empfohlener Wert Feldbeschreibung
      Weiterleiten der Daten an andere Datenbanken zulassen (Datenverbindung mit mehreren Datenbanken) Nicht zulassen Aktivieren Sie diese Option, wenn Sie die Standardzieldatenbank überschreiben möchten, die der Datenverbindung zugeordnet ist. Weitere Informationen zum Datenbankrouting finden Sie unter Ereignisrouting.
      Tabellenname TestTable Die Tabelle, die Sie unter TestDatabase erstellt haben.
      Datenformat JSON Unterstützte Formate sind: APACHEAVRO, Avro, CSV, JSON, ORC, PARQUET, PSV, RAW, SCSV, SOHSV, TSV, TSVE, TXT und W3CLOG. Unterstützte Komprimierungsoptionen sind ZIP und Gzip.
      Zuordnungsname TestTable_mapping Die Zuordnung, die Sie in TestDatabase erstellt haben, um eingehende Daten den Spaltennamen und Datentypen von TestTable zuzuordnen. Wenn diese nicht angegeben ist, wird eine Identitätsdatenzuordnung, die aus dem Schema der Tabelle abgeleitet ist, automatisch generiert.
      Formatfehler ignorieren Ignorieren Aktivieren Sie diese Option, wenn Sie Formatfehler für das JSON-Datenformat ignorieren möchten.

      Hinweis

      Für Tabellen- und Zuordnungsnamen wird die Groß-/Kleinschreibung beachtet.

    3. Optional können Sie unter Erweiterte Einstellungen den verwalteten Identitätstyp angeben, der von Ihrer Datenverbindung verwendet wird. Standardmäßig ist Systemseitig zugewiesen ausgewählt.

      Wenn Sie Benutzerseitig zugewiesen auswählen, müssen Sie manuell eine verwaltete Identität zuweisen. Wenn Sie einen Benutzer auswählen, der Ihrem Cluster noch nicht zugewiesen ist, wird er automatisch zugewiesen. Weitere Informationen finden Sie unter Konfigurieren verwalteter Identitäten für Ihren Azure Data Explorer-Cluster.

      Wenn Sie Keinen auswählen, werden das Speicherkonto und der Event Hub über Verbindungszeichenfolgen authentifiziert. Diese Methode wird nicht empfohlen.

      Screenshot des Abschnitts „Erweiterte Einstellungen“ mit den verwalteten Identitätstypen, die für die Datenverbindung verwendet werden können.

  5. Klicken Sie auf Erstellen

Verwenden der Event Grid-Datenverbindung

In diesem Abschnitt wird gezeigt, wie Sie die Erfassung von Azure Blob Storage oder Azure Data Lake Gen 2 in Ihren Cluster nach der Blob-Erstellung oder Blob-Umbenennung auslösen.

Wählen Sie die relevante Registerkarte basierend auf dem Typ des Speicher-SDK aus, das zum Hochladen von Blobs verwendet wird.

Im folgenden Codebeispiel wird das Azure Data Lake SDK verwendet, um eine Datei in Data Lake Storage Gen2 hochzuladen. Der Upload löst die Ereignisrasterdatenverbindung aus, welche die Daten in Azure Data Explorer erfasst.

var accountName = <storage_account_name>;
var accountKey = <storage_account_key>;
var fileSystemName = <file_system_name>;
var fileName = <file_name>;
var localFileName = <file_to_upload>;
var uncompressedSizeInBytes = <uncompressed_size_in_bytes>;
var mapping = <mapping_reference>;
var sharedKeyCredential = new StorageSharedKeyCredential(accountName, accountKey);
var dfsUri = "https://" + accountName + ".dfs.core.windows.net";
var dataLakeServiceClient = new DataLakeServiceClient(new Uri(dfsUri), sharedKeyCredential);
// Create the filesystem.
var dataLakeFileSystemClient = dataLakeServiceClient.CreateFileSystem(fileSystemName).Value;
// Define file metadata and uploading options.
IDictionary<String, String> metadata = new Dictionary<string, string>();
metadata.Add("rawSizeBytes", uncompressedSizeInBytes);
metadata.Add("kustoIngestionMappingReference", mapping);
var uploadOptions = new DataLakeFileUploadOptions
{
    Metadata = metadata,
    Close = true // Note: The close option triggers the event being processed by the data connection.
};
// Upload the file.
var dataLakeFileClient = dataLakeFileSystemClient.GetFileClient(fileName);
dataLakeFileClient.Upload(localFileName, uploadOptions);

Hinweis

  • Beim Hochladen einer Datei mit dem Azure Data Lake SDK weist das anfängliche Dateierstellungsereignis eine Größe von 0 auf, die während der Datenerfassung vom Azure-Daten-Explorer ignoriert wird. Um die ordnungsgemäße Aufnahme sicherzustellen, legen Sie den Close-Parameter auf true fest. Dieser Parameter bewirkt, dass die Uploadmethode ein FlushAndClose-Ereignis auslöst, das angibt, dass die endgültige Aktualisierung vorgenommen wurde und der Dateidatenstrom geschlossen wird.
  • Um den Datenverkehr aus Event Grid zu reduzieren und die Erfassung von Ereignissen in Azure Data Explorer zu optimieren, wird empfohlen, nach dem Schlüssel data.api zu filtern, um CreateFile-Ereignisse auszuschließen. Dadurch wird sichergestellt, dass Dateierstellungsereignisse mit der Größe 0 herausgefiltert werden, sodass Fehler durch die Erfassung leerer Dateien verhindert werden. Weitere Informationen zum Leeren finden Sie unter Methode zum Leeren in Azure Data Lake.

Umbenennen von Blobs

In ADLSv2 können Verzeichnisse umbenannt werden. Es ist jedoch wichtig zu beachten, dass das Umbenennen eines Verzeichnisses keine Ereignisse zur Umbenennung von Blobs auslöst oder die Erfassung von Blobs in das Verzeichnis initiiert. Wenn Sie sicherstellen möchten, dass Blobs nach dem Umbenennen eines Verzeichnisses aufgenommen werden, sollten Sie die einzelnen Blobs im Verzeichnis direkt umbenennen.

Im folgenden Codebeispiel wird gezeigt, wie ein Blob in einem ADLSv2-Speicherkonto umbenannt wird.

var accountName = <storage_account_name>;
var accountKey = <storage_account_key>;
var fileSystemName = <file_system_name>;
var sourceFilePath = <source_file_path>;
var destinationFilePath = <destination_file_path>;
var sharedKeyCredential = new StorageSharedKeyCredential(accountName, accountKey);
var dfsUri = "https://" + accountName + ".dfs.core.windows.net";
var dataLakeServiceClient = new DataLakeServiceClient(new Uri(dfsUri), sharedKeyCredential);
// Get a client to the the filesystem

var dataLakeFileSystemClient = dataLakeServiceClient.GetFileSystemClient(fileSystemName);
// Rename a file in the file system
var dataLakeFileClient = dataLakeFileSystemClient.GetFileClient(sourceFilePath);
dataLakeFileClient.Rename(destinationFilePath);

Hinweis

Wenn Sie Filter zum Nachverfolgen bestimmter Themen beim Erstellen der Datenverbindung oder beim manuellen Erstellen von Event Grid-Ressourcen festgelegt haben, werden diese Filter auf den Zieldateipfad angewendet.

Hinweis

Das Auslösen der Erfassung nach einem CopyBlob-Vorgang wird für Speicherkonten, für die das hierarchische Namespacefeature aktiviert ist, nicht unterstützt.

Wichtig

Wir raten dringend davon ab, Speicherereignisse aus benutzerdefiniertem Code zu erzeugen und an Event Hubs zu senden. Wenn Sie dies tun, stellen Sie sicher, dass die erstellten Ereignisse strikt den geeigneten Schemas für Speicherereignisse und JSON-Formatspezifikationen entsprechen.

Entfernen einer Event Grid-Datenverbindung

Führen Sie die folgenden Schritte aus, um die Event Grid-Verbindung über das Azure-Portal zu entfernen:

  1. Zum Custer wechseln Wählen Sie im linken Menü Einstellungen aus. Wählen Sie dann die Datenbank aus, die die Zieltabelle enthält.
  2. Wählen Sie im linken Menü Datenverbindungen aus. Aktivieren Sie dann das Kontrollkästchen neben der relevanten Event Grid-Datenverbindung.
  3. Wählen Sie in der oberen Menüleiste Löschen aus.