Sdílet prostřednictvím


Datové připojení Event Gridu

Příjem dat ve službě Event Grid je kanál, který naslouchá službě Azure Storage a aktualizuje Azure Data Explorer, aby získal informace, když dojde k odbíraným událostem. Azure Data Explorer nabízí průběžný příjem dat ze služby Azure Storage (Blob Storage a ADLSv2) s předplatným služby Azure Event Grid pro oznámení o vytvoření objektu blob nebo přejmenování objektu blob a streamování těchto oznámení do Azure Data Exploreru prostřednictvím služby Azure Event Hubs.

Kanál příjmu dat služby Event Grid prochází několika kroky. V Azure Data Exploreru vytvoříte cílovou tabulku, do které se budou ingestovat data v určitém formátu . Pak vytvoříte datové připojení Event Gridu v Azure Data Exploreru. Datové připojení Event Gridu potřebuje znát informace o směrování událostí, jako je například tabulka, do které se mají data odesílat, a mapování tabulky. Zadáte také vlastnosti příjmu dat, které popisují ingestování dat, cílovou tabulku a mapování. K otestování připojení můžete vygenerovat ukázková data a nahrát objekty blob nebo přejmenovat objekty blob. Po příjmu dat odstraňte objekty blob.

Příjem dat služby Event Grid je možné spravovat prostřednictvím webu Azure Portal, pomocí průvodce příjmem dat, programově s C# nebo Pythonem nebo pomocí šablony Azure Resource Manageru.

Obecné informace o příjmu dat v Azure Data Exploreru najdete v přehledu příjmu dat v Azure Data Exploreru.

Mechanismy ověřování datových připojení služby Event Grid

  • Datové připojení založené na spravované identitě (doporučeno): Použití datového připojení založeného na spravované identitě je nejbezpečnější způsob připojení ke zdrojům dat. Poskytuje úplnou kontrolu nad schopností načítat data ze zdroje dat. Nastavení datového připojení Event Gridu pomocí spravované identity vyžaduje následující kroky:

    1. Přidejte do clusteru spravovanou identitu.
    2. Udělte oprávnění spravované identitě ve zdroji dat. Pokud chcete načíst data ze služby Azure Storage, musí mít spravovaná identita alespoň oprávnění čtenáře dat objektů blob služby Storage v účtu služby Azure Storage.
    3. Udělte oprávnění spravované identitě v centru událostí. Pokud chcete načíst oznámení objektů blob z centra událostí, musí mít spravovaná identita oprávnění příjemce dat služby Azure Event Hubs ve službě Azure Event Hubs.
    4. Nastavte zásady spravované identity v cílových databázích.
    5. Vytvoření datového připojení pomocí ověřování spravované identity k načtení dat

    Upozornění

    • Pokud jsou oprávnění spravované identity odebrána ze zdroje dat, datové připojení už nebude fungovat a nebude možné načíst data ze zdroje dat.
    • Pokud je u existujícího oboru názvů služby Event Hubs zakázané místní ověřování, ve kterém se streamují oznámení objektů blob, musíte pro datové připojení použít ověřování spravované identity a správně nakonfigurovat prostředky. Další informace najdete v tématu Známé problémy se službou Event Grid.
  • Datové připojení založené na klíčích: Pokud pro datové připojení není zadané ověřování spravované identity, připojení se automaticky nastaví na ověřování založené na klíči. Připojení založená na klíčích načítají data pomocí připojovací řetězec prostředků, jako je azure Event Hubs připojovací řetězec. Azure Data Explorer získá připojovací řetězec prostředku pro zadaný prostředek a bezpečně ho uloží. Potom se připojovací řetězec použije k načtení dat ze zdroje dat.

    Upozornění

    Pokud se klíč otočí, datové připojení už nebude fungovat a nebude možné načíst data ze zdroje dat. Pokud chcete tento problém vyřešit, aktualizujte nebo znovu vytvořte datové připojení.

Formát dat

  • Viz podporované formáty.
  • Viz podporované komprese.
    • Původní nekomprimovaná velikost dat by měla být součástí metadat objektů blob, jinak ji Azure Data Explorer odhadne. Limit nekomprimované velikosti příjmu dat na soubor je 6 GB.

      Poznámka:

      Odběr oznámení Event Gridu je možné nastavit pro účty Azure Storage pro BlobStorage, StorageV2nebo Data Lake Storage Gen2.

Vlastnosti příjmu dat

Vlastnosti příjmu dat příjmu objektů blob můžete zadat prostřednictvím metadat objektů blob. Můžete nastavit následující vlastnosti:

Vlastnost Popis
rawSizeBytes Velikost nezpracovaných (nekomprimovaných) dat U Avro/ORC/Parquet je velikost před použití komprese specifické pro formát. Zadejte původní velikost dat nastavením této vlastnosti na nekomprimovanou velikost dat v bajtech.
kustoDatabase V cílové databázi se rozlišují malá a velká písmena. Ve výchozím nastavení se data ingestují do cílové databáze přidružené k datovému připojení. Tato vlastnost slouží k přepsání výchozí databáze a odesílání dat do jiné databáze. Pokud to chcete udělat, musíte nejprve nastavit připojení jako připojení s více databázemi.
kustoTable V existující cílové tabulce se rozlišují malá a velká písmena. Table Přepíše sadu v Data Connection podokně.
kustoDataFormat Formát dat: Data format Přepíše sadu v Data Connection podokně.
kustoIngestionMappingReference Název existujícího mapování příjmu dat, které se má použít. Column mapping Přepíše sadu v Data Connection podokně.
kustoIgnoreFirstRecord Pokud je nastavená hodnota true, Kusto ignoruje první řádek objektu blob. Pokud chcete ignorovat záhlaví, použijte v tabulkových formátech (CSV, TSV nebo podobně).
kustoExtentTags Řetězec představující značky , které budou připojeny k výslednému rozsahu.
kustoCreationTime Přepíše dobu vytvoření rozsahu objektu blob formátovanou jako řetězec ISO 8601. Slouží k obnovení.

Směrování událostí

Při vytváření datového připojení ke clusteru určíte směrování, kam se mají ingestované data odesílat. Výchozí směrování je cílová tabulka zadaná v připojovací řetězec, která je přidružená k cílové databázi. Výchozí směrování dat se také označuje jako statické směrování. Alternativní směrování dat můžete zadat pomocí vlastností dat události.

Směrování dat událostí do alternativní databáze

Směrování dat do alternativní databáze je ve výchozím nastavení vypnuté. Pokud chcete data odeslat do jiné databáze, musíte nejprve nastavit připojení jako připojení s více databázemi. Můžete to udělat na webu Azure Portal, C#, Python nebo šabloně ARM. Uživatel, skupina, instanční objekt nebo spravovaná identita použitá k povolení směrování databáze musí mít v clusteru alespoň roli přispěvatele a oprávnění k zápisu. Další informace najdete v tématu Vytvoření datového připojení Event Gridu pro Azure Data Explorer.

Pokud chcete zadat alternativní databázi, nastavte vlastnost Příjem dat databáze.

Upozorňující

Zadání alternativní databáze bez nastavení připojení jako datového připojení s více databázemi způsobí selhání příjmu dat.

Směrování dat událostí do alternativní tabulky

Při nastavování připojení úložiště objektů blob ke clusteru Azure Data Exploreru zadejte vlastnosti cílové tabulky:

  • název tabulky
  • formát dat
  • mapping

Pomocí metadat objektů blob můžete také zadat vlastnosti cílové tabulky pro každý objekt blob. Data se budou dynamicky směrovat podle vlastností příjmu dat.

Následující příklad ukazuje, jak nastavit vlastnosti příjmu dat v metadatech objektu blob před nahráním. Objekty blob se směrují do různých tabulek.

Kromě toho můžete zadat cílovou databázi. Datové připojení Event Gridu se vytvoří v kontextu konkrétní databáze. Proto je tato databáze výchozím směrováním databáze datového připojení. Pokud chcete odeslat data do jiné databáze, nastavte vlastnost příjmu dat KustoDatabase a nastavte datové připojení jako datové připojení s více databázemi. Směrování dat do jiné databáze je ve výchozím nastavení zakázané (není povoleno). Nastavení vlastnosti příjmu dat, která se liší od databáze datového připojení, bez povolení směrování dat do více databází (nastavení připojení jako datového připojení s více databázemi) způsobí selhání příjmu dat.

Další informace najdete v tématu nahrání objektů 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>")));

Nahrání objektů blob

Objekt blob můžete vytvořit z místního souboru, nastavit vlastnosti příjmu dat na metadata objektů blob a nahrát ho. Příklady najdete v tématu Použití datového připojení Event Gridu.

Poznámka:

  • Důrazně doporučujeme BlockBlob generovat data, protože použití AppendBlob může vést k neočekávanému chování.
  • Použití sady AZURE Data Lake Storage SDK Gen2 vyžaduje použití CreateFile k nahrání souborů a Flush na konci s parametrem close nastaveným na true. Podrobný příklad správného použití sady Data Lake Gen2 SDK najdete v tématu Použití datového připojení Event Gridu.
  • Aktivace příjmu CopyBlob dat po operaci není podporovaná pro účty úložiště s povolenou funkcí hierarchického oboru názvů.
  • Pokud koncový bod centra událostí nepotvrdí přijetí události, Azure Event Grid aktivuje mechanismus opakování. Pokud se doručení opakování nezdaří, event Grid může doručit nedoručené události do účtu úložiště pomocí procesu nedoručování dopisů. Další informace najdete v tématu Doručování zpráv event Gridu a opakování.

Přejmenování objektů blob

Při použití ADLSv2 můžete objekt blob přejmenovat tak, aby aktivoval příjem dat objektů blob do Azure Data Exploreru. Podívejte se například na přejmenování objektů blob.

Poznámka:

  • Přejmenování adresáře je možné v ADLSv2, ale neaktivuje přejmenované události objektu blob a příjem dat objektů blob uvnitř adresáře. Pokud chcete ingestovat objekty blob po přejmenování, přejmenujte přímo požadované objekty blob.
  • Pokud jste definovali filtry pro sledování konkrétních témat při vytváření datového připojení nebo při ručním vytváření prostředků Event Gridu, použijí se tyto filtry na cestě k cílovému souboru.

Odstranění objektů blob pomocí životního cyklu úložiště

Azure Data Explorer po příjmu dat neodstraní objekty blob. Ke správě odstranění objektů blob použijte životní cyklus služby Azure Blob Storage. Doporučujeme zachovat objekty blob po dobu tří až pěti dnů.

Známé problémy se službou Event Grid

  • Pokud je místní ověřování v oboru názvů služby Event Hubs, který obsahuje centrum událostí používané pro oznámení streamování, pomocí následujících kroků zajistíte, aby data správně proudily z úložiště do centra událostí pomocí spravovaných identit:

    1. Přiřaďte spravovanou identitu přiřazenou systémem k tématu systému Event Grid účtu úložiště. Další informace naleznete v tématu Povolení spravované identity pro témata systému.
    2. Udělte oprávnění odesílatele spravované identity tím, že mu přiřadíte roli Odesílatele dat služby Azure Event Hubs v centru událostí. Další informace najdete v tématu Přidání identity do rolí Azure v cílech.
    3. Ujistěte se, že odběr služby Event Grid používá spravovanou identitu pro doručování událostí. Další informace najdete v tématu Vytváření odběrů událostí, které používají identitu.

    Kromě toho nakonfigurujte datové připojení Event Gridu tak, aby používalo ověřování spravované identity, aby Azure Data Explorer mohl přijímat oznámení z centra událostí.

  • Při exportu souborů používaných k příjmu dat služby Event Grid pomocí Azure Data Exploreru si všimněte:

    • Oznámení event Gridu se neaktivují, pokud připojovací řetězec poskytnuté příkazu pro export nebo připojovací řetězec poskytnuté externí tabulce je připojovací řetězec ve formátu ADLS Gen2 (napříkladabfss://filesystem@accountname.dfs.core.windows.net), ale účet úložiště není povolený pro hierarchický obor názvů.
    • Pokud účet není povolený pro hierarchický obor názvů, připojovací řetězec musí používat formát Blob Storage (napříkladhttps://accountname.blob.core.windows.net). Export funguje podle očekávání i při použití připojovací řetězec ADLS Gen2, ale oznámení se neaktivují a příjem dat služby Event Grid nebude fungovat.