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 Azure Event Grid předplatným pro oznámení o vytvoření objektu blob nebo přejmenování objektu blob a streamování těchto oznámení do Azure Data Explorer prostřednictvím Azure Event Hubs.

Kanál pro příjem dat Event Gridu prochází několika kroky. V Azure Data Explorer vytvoříte cílovou tabulku, do které se budou ingestovat data v konkrétním formátu. Pak vytvoříte datové připojení Event Gridu v Azure Data Explorer. Datové připojení Event Gridu potřebuje znát informace o směrování událostí , jako je tabulka, do které se mají data odeslat, a mapování tabulek. Zadáte také vlastnosti příjmu dat, které popisují data, která se mají ingestovat, cílovou tabulku a mapování. Pokud chcete otestovat připojení, můžete vygenerovat ukázková data a nahrát objekty blob nebo objekty blob přejmenovat . Po příjmu dat odstraňte objekty blob .

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

Obecné informace o příjmu dat v Azure Data Explorer najdete v tématu Přehled příjmu dat v Azure Data Explorer.

Mechanismy ověřování datových připojení Azure Data Explorer

Upozornění

Pokud ze zdroje dat odeberete oprávnění spravované identity, datové připojení se zakáže a nebude možné načíst data ze zdroje dat.

  • Datové připojení založené na klíčích: Pokud v datovém připojení není zadaná spravovaná identita, 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 vygeneruje připojovací řetězec prostředku pro zadaný prostředek a bezpečně ho uloží do datového připojení. Připojovací řetězec se pak použije k načtení dat ze zdroje dat.

Upozornění

Pokud je klíč obměněný, datové připojení je zakázané a nemůže 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

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

Poznámka

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

Vlastnosti příjmu dat

Vlastnosti příjmu dat objektu 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 V případě Avro/ORC/Parquet se jedná o velikost před tím, než se použije komprese specifická pro formát. Zadejte původní velikost dat nastavením této vlastnosti na nekomprimovanou velikost dat v bajtech.
kustoDatabase Název cílové databáze rozlišující 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 odeslání dat do jiné databáze. Chcete-li to provést, musíte nejprve nastavit připojení jako připojení k více databázím.
kustoTable Název existující cílové tabulky rozlišující malá a velká písmena. Table Přepíše nastavení v Data Connection podokně.
kustoDataFormat Formát dat. Data format Přepíše nastavení 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 nastavení v Data Connection podokně.
kustoIgnoreFirstRecord Pokud je nastavená hodnota true, Kusto ignoruje první řádek objektu blob. Pokud chcete ignorovat záhlaví, použijte data v tabulkovém formátu (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. Použijte pro doplňování.

Směrování událostí

Při vytváření datového připojení ke clusteru zadáte směrování pro odesílání přijatých dat. Výchozí směrování je do cílové tabulky zadané v připojovací řetězec 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álostí.

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 odesílat data do jiné databáze, musíte nejprve nastavit připojení jako připojení k více databázím. Můžete to udělat v Azure Portal, C#, Pythonu nebo šabloně ARM. Uživatel, skupina, instanční objekt nebo spravovaná identita, které umožňují 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 databáze.

Upozornění

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 Explorer zadejte vlastnosti cílové tabulky:

  • název tabulky
  • formát dat
  • mapování

Vlastnosti cílové tabulky můžete také zadat pro každý objekt blob pomocí metadat 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 objektů blob před jejich 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 vytváří 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 odesílat data do jiné databáze, nastavte vlastnost pro příjem dat KustoDatabase a datové připojení nastavte 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 databáze, 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ává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

Můžete vytvořit objekt blob z místního souboru, nastavit vlastnosti příjmu dat na metadata objektu 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 použít BlockBlob ke generování dat, protože použití AppendBlob může vést k neočekávanému chování.
  • Použití sady SDK služby Azure Data Lake Storage Gen2 vyžaduje použití příkazu CreateFile k nahrání souborů a Flush nakonec použití parametru close nastaveného na truehodnotu . Podrobný příklad správného využ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 se nepodporuje u účtů úložiště, které mají povolenou funkci 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í tohoto opakování nezdaří, může Event Grid doručit nedoručené události do účtu úložiště pomocí procesu nedoručených dopisů. Další informace najdete v tématu Doručování zpráv v Event Gridu a jejich opakování.

Přejmenování objektů blob

Při použití ADLSv2 můžete přejmenovat objekt blob, který aktivuje příjem objektů blob do Azure Data Explorer. Projděte si například téma Přejmenování objektů blob.

Poznámka

  • Přejmenování adresáře je možné v ADLSv2, ale neaktivuje události přejmenované objekty blob a ingestování objektů blob uvnitř adresáře. Pokud chcete ingestovat objekty blob po přejmenování, přejmenujte přímo požadované objekty blob.
  • Pokud jste při vytváření datového připojení nebo při ručním vytváření prostředků Event Gridu definovali filtry pro sledování konkrétních předmětů, použijí se tyto filtry na cestu 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ě odstraňování objektů blob použijte životní cyklus služby Azure Blob Storage . Doporučuje se uchovávat objekty blob po dobu tří až pěti dnů.

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

  • Při použití Azure Data Explorer k exportu souborů používaných pro příjem dat ve službě Event Grid mějte na paměti:
    • Oznámení Event Gridu se neaktivují, abfss://filesystem@accountname.dfs.core.windows.netpokud 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říklad ), ale účet úložiště není povolený pro hierarchický obor názvů.
    • Pokud pro účet není povolený hierarchický obor názvů, připojovací řetězec musí používat formát Blob Storage (například https://accountname.blob.core.windows.net). Export funguje podle očekávání i při použití připojovací řetězec ADLS Gen2, ale neaktivují se oznámení a nebude fungovat příjem dat ve službě Event Grid.