Połączenie danych usługi Event Grid

Pozyskiwanie danych usługi Event Grid to potok, który nasłuchuje w usłudze Azure Storage i aktualizuje usługę Azure Data Explorer w celu ściągnięcia informacji po wystąpieniu subskrybowanych zdarzeń. Usługa Azure Data Explorer oferuje ciągłe pozyskiwanie z usługi Azure Storage (Blob Storage i ADLSv2) z subskrypcją Azure Event Grid dla utworzonych obiektów blob lub powiadomień o zmianie nazwy obiektu blob i przesyłania strumieniowego tych powiadomień do usługi Azure Data Explorer za pośrednictwem Azure Event Hubs.

Potok pozyskiwania usługi Event Grid przechodzi przez kilka kroków. Utworzysz tabelę docelową na platformie Azure Data Explorer, w której dane w określonym formacie zostaną pozyskane. Następnie utworzysz połączenie danych usługi Event Grid w usłudze Azure Data Explorer. Połączenie danych usługi Event Grid musi znać informacje o routingu zdarzeń , takie jak tabela, do której mają być wysyłane dane i mapowanie tabeli. Można również określić właściwości pozyskiwania, które opisują dane, które mają zostać pozyskane, tabelę docelową i mapowanie. Możesz wygenerować przykładowe dane i przekazać obiekty blob lub zmienić nazwę obiektów blob , aby przetestować połączenie. Usuń obiekty blob po pozyskiwaniu.

Pozyskiwanie usługi Event Grid można zarządzać za pomocą Azure Portal, korzystając z kreatora pozyskiwania, programowo za pomocą języka C# lub Python lub szablonu usługi Azure Resource Manager.

Aby uzyskać ogólne informacje na temat pozyskiwania danych w usłudze Azure Data Explorer, zobacz Omówienie pozyskiwania danych w usłudze Azure Data Explorer.

Mechanizmy uwierzytelniania połączeń danych usługi Azure Data Explorer

Przestroga

Jeśli uprawnienia tożsamości zarządzanej zostaną usunięte ze źródła danych, połączenie danych jest wyłączone i nie może pobrać danych ze źródła danych.

  • Połączenie danych oparte na kluczach: jeśli tożsamość zarządzana nie jest określona w połączeniu danych, połączenie automatycznie domyślnie do uwierzytelniania opartego na kluczach. Połączenia oparte na kluczach pobierają dane przy użyciu parametry połączenia zasobów, takich jak Azure Event Hubs parametry połączenia. Usługa Azure Data Explorer generuje parametry połączenia zasobu dla określonego zasobu i bezpiecznie zapisuje go w połączeniu danych. Następnie parametry połączenia służy do pobierania danych ze źródła danych.

Przestroga

Jeśli klucz jest obracany, połączenie danych jest wyłączone i nie może pobrać danych ze źródła danych. Aby rozwiązać ten problem, zaktualizuj lub ponownie utwórz połączenie danych.

Format danych

  • Zobacz obsługiwane formaty.
  • Zobacz obsługiwane kompresje.
    • Oryginalny nieskompresowany rozmiar danych powinien być częścią metadanych obiektu blob, a w przeciwnym razie usługa Azure Data Explorer go oszacowa. Limit rozmiaru pozyskiwania nieskompresowanego na plik wynosi 6 GB.

Uwaga

Subskrypcję powiadomień usługi Event Grid można ustawić na kontach usługi Azure Storage dla BlobStorage, StorageV2lub Data Lake Storage Gen2.

Właściwości pozyskiwania

Właściwości pozyskiwania obiektów blob można określić za pośrednictwem metadanych obiektu blob. Można ustawić następujące właściwości:

Właściwość Opis
rawSizeBytes Rozmiar nieprzetworzonych (nieskompresowanych) danych. W przypadku avro/ORC/Parquet jest to rozmiar przed zastosowaniem kompresji specyficznej dla formatu. Podaj oryginalny rozmiar danych, ustawiając tę właściwość na nieskompresowany rozmiar danych w bajtach.
kustoDatabase Uwzględniana wielkość liter nazwa docelowej bazy danych. Domyślnie dane są pozyskiwane do docelowej bazy danych skojarzonej z połączeniem danych. Użyj tej właściwości, aby zastąpić domyślną bazę danych i wysłać dane do innej bazy danych. W tym celu należy najpierw skonfigurować połączenie jako połączenie z wieloma bazami danych.
kustoTable Uwzględniana wielkość liter w istniejącej tabeli docelowej. Table Zastępuje zestaw w okienkuData Connection.
kustoDataFormat Format danych. Data format Zastępuje zestaw w okienkuData Connection.
kustoIngestionMappingReference Nazwa istniejącego mapowania pozyskiwania do użycia. Column mapping Zastępuje zestaw w okienkuData Connection.
kustoIgnoreFirstRecord Jeśli ustawiono wartość true, usługa Kusto ignoruje pierwszy wiersz obiektu blob. Użyj danych w formacie tabelarycznym (CSV, TSV lub podobnych), aby zignorować nagłówki.
kustoExtentTags Ciąg reprezentujący tagi , które zostaną dołączone do zakresu wynikowego.
kustoCreationTime Zastępuje czas tworzenia zakresu dla obiektu blob sformatowany jako ciąg ISO 8601. Służy do wypełniania kopii zapasowych.

Routing zdarzeń

Podczas tworzenia połączenia danych z klastrem należy określić routing dla miejsca wysyłania pozyskanych danych. Domyślnym routingiem jest tabela docelowa określona w parametry połączenia skojarzonej z docelową bazą danych. Domyślny routing danych jest również nazywany routingiem statycznym. Możesz określić alternatywny routing dla danych przy użyciu właściwości danych zdarzenia.

Kierowanie danych zdarzeń do alternatywnej bazy danych

Routing danych do alternatywnej bazy danych jest domyślnie wyłączony. Aby wysłać dane do innej bazy danych, należy najpierw ustawić połączenie jako połączenie z wieloma bazami danych. Można to zrobić w szablonie usługi ARM Azure Portal, C#, Python lub ARM. Użytkownik, grupa, jednostka usługi lub tożsamość zarządzana używana do zezwalania na routing bazy danych musi mieć co najmniej rolę współautora i uprawnienia do zapisu w klastrze. Aby uzyskać więcej informacji, zobacz Tworzenie połączenia danych usługi Event Grid dla usługi Azure Data Explorer.

Aby określić alternatywną bazę danych, ustaw właściwość Pozyskiwaniebazy danych.

Ostrzeżenie

Określenie alternatywnej bazy danych bez ustawienia połączenia jako połączenia danych z wieloma bazami danych spowoduje niepowodzenie pozyskiwania.

Kierowanie danych zdarzeń do tabeli alternatywnej

Podczas konfigurowania połączenia magazynu obiektów blob z klastrem usługi Azure Data Explorer określ właściwości tabeli docelowej:

  • nazwa tabeli
  • format danych
  • mapowanie

Można również określić właściwości tabeli docelowej dla każdego obiektu blob przy użyciu metadanych obiektu blob. Dane będą dynamicznie kierować zgodnie z właściwościami pozyskiwania.

W poniższym przykładzie pokazano, jak ustawić właściwości pozyskiwania metadanych obiektu blob przed jego przekazaniem. Obiekty blob są kierowane do różnych tabel.

Ponadto można określić docelową bazę danych. Połączenie danych usługi Event Grid jest tworzone w kontekście określonej bazy danych. W związku z tym ta baza danych jest domyślnym routingiem bazy danych połączenia danych. Aby wysłać dane do innej bazy danych, ustaw właściwość pozyskiwania "KustoDatabase" i ustaw połączenie danych jako połączenie danych z wieloma bazami danych. Routing danych do innej bazy danych jest domyślnie wyłączony (niedozwolone). Ustawienie właściwości pozyskiwania bazy danych innej niż baza danych połączenia danych bez zezwalania na routing danych do wielu baz danych (ustawienie połączenia jako połączenie danych z wieloma bazami danych) spowoduje niepowodzenie pozyskiwania.

Aby uzyskać więcej informacji, zobacz przekazywanie obiektów blob.

var container = new BlobContainerClient("<storageAccountConnectionString>", "<containerName>");
await container.CreateIfNotExistsAsync();
var blob = container.GetBlobClient("<blobName>");
// Blob is dynamically routed to table `Events`, ingested using `EventsMapping` data mapping
await blob.SetMetadataAsync(
    new Dictionary<string, string>
    {
        { "rawSizeBytes", "4096" }, // the uncompressed size is 4096 bytes
        { "kustoTable", "Events" },
        { "kustoDataFormat", "json" },
        { "kustoIngestionMappingReference", "EventsMapping" },
        { "kustoDatabase", "AnotherDB" }
    }
);
await blob.UploadAsync(BinaryData.FromString(File.ReadAllText("<filePath>")));

Przekazywanie obiektów blob

Obiekt blob można utworzyć na podstawie pliku lokalnego, ustawić właściwości pozyskiwania na metadane obiektu blob i przekazać go. Przykłady można znaleźć w temacie Use the Event Grid data connection (Używanie połączenia danych usługi Event Grid).

Uwaga

  • Zdecydowanie zalecamy używanie funkcji BlockBlob do generowania danych, ponieważ użycie AppendBlob może spowodować nieoczekiwane zachowanie.
  • Użycie zestawu SDK magazynu usługi Azure Data Lake Gen2 wymaga użycia do CreateFile przekazywania plików i Flush na końcu z parametrem bliskim ustawionym na truewartość . Aby uzyskać szczegółowy przykład poprawnego użycia zestawu SDK usługi Data Lake Gen2, zobacz Use the Event Grid data connection (Używanie połączenia danych usługi Event Grid).
  • Wyzwalanie pozyskiwania po CopyBlob operacji nie jest obsługiwane dla kont magazynu, które mają włączoną funkcję hierarchicznej przestrzeni nazw.
  • Gdy punkt końcowy centrum zdarzeń nie potwierdza otrzymania zdarzenia, Azure Event Grid aktywuje mechanizm ponawiania prób. Jeśli to ponowienie próby zakończy się niepowodzeniem, usługa Event Grid może dostarczyć nieużywane zdarzenia na konto magazynu przy użyciu procesu nieaktywnego zapisywania. Aby uzyskać więcej informacji, zobacz Dostarczanie komunikatów usługi Event Grid i ponawianie próby.

Zmienianie nazwy obiektów blob

W przypadku korzystania z usługi ADLSv2 można zmienić nazwę obiektu blob, aby wyzwolić pozyskiwanie obiektów blob na platformę Azure Data Explorer. Na przykład zobacz Zmienianie nazwy obiektów blob.

Uwaga

  • Zmiana nazwy katalogu jest możliwa w usłudze ADLSv2, ale nie wyzwala zdarzeń zmienionych nazw obiektów blob i pozyskiwania obiektów blob w katalogu. Aby pozyskać obiekty blob po zmianie nazwy, bezpośrednio zmień nazwę żądanych obiektów blob.
  • Jeśli zdefiniowane filtry służą do śledzenia określonych podmiotów podczas tworzenia połączenia danych lub podczas ręcznego tworzenia zasobów usługi Event Grid, te filtry są stosowane w ścieżce pliku docelowego.

Usuwanie obiektów blob przy użyciu cyklu życia magazynu

Usługa Azure Data Explorer nie usunie obiektów blob po pozyskaniu. Użyj cyklu życia usługi Azure Blob Storage , aby zarządzać usuwaniem obiektów blob. Zaleca się przechowywanie obiektów blob przez trzy do pięciu dni.

Znane problemy z usługą Event Grid

  • W przypadku używania usługi Azure Data Explorer do eksportowania plików używanych do pozyskiwania usługi Event Grid należy pamiętać:
    • Powiadomienia usługi Event Grid nie są wyzwalane, jeśli parametry połączenia dostarczone do polecenia eksportu lub parametry połączenia dostarczone do tabeli zewnętrznej jest ciągiem łączenia w formacie ADLS Gen2 (na przykład abfss://filesystem@accountname.dfs.core.windows.net), ale konto magazynu nie jest włączone dla hierarchicznej przestrzeni nazw.
    • Jeśli konto nie jest włączone dla hierarchicznej przestrzeni nazw, parametry połączenia musi używać formatu usługi Blob Storage (na przykład https://accountname.blob.core.windows.net). Eksport działa zgodnie z oczekiwaniami, nawet w przypadku korzystania z usługi ADLS Gen2 parametry połączenia, ale powiadomienia nie zostaną wyzwolone, a pozyskiwanie usługi Event Grid nie będzie działać.