Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebből a cikkből megtudhatja, hogyan lehet blobokat beszúrni a tárfiókból az Azure Data Explorerbe event Grid-adatkapcsolat használatával. Létre fog hozni egy Event Grid-adatkapcsolatot, amely beállít egy Azure Event Grid-előfizetést . Az Event Grid-előfizetés egy Azure Event Hubson keresztül irányítja át az eseményeket a tárfiókból az Azure Data Explorerbe.
Ha tudni szeretné, hogyan hozhatja létre a kapcsolatot az Azure Portalon vagy ARM-sablonnal, olvassa el az Event Grid-adatkapcsolat létrehozása című témakört.
Az Azure Data Explorerbe az Event Gridből való betöltéssel kapcsolatos általános információkért lásd: Csatlakozás az Event Gridhez.
Megjegyzés:
Az Event Grid-kapcsolaton keresztüli legjobb teljesítmény eléréséhez állítsa be a rawSizeBytes betöltési tulajdonságot a blob metaadatain keresztül. További információkért lásd a bevitel tulajdonságait.
A korábbi SDK-verziókon alapuló kódmintákért lásd az archivált cikket.
Előfeltételek
- Egy Azure-előfizetés. Hozzon létre egy ingyenes Azure-fiókot.
- Egy Azure Data Explorer-fürt és adatbázis. Hozzon létre egy klasztert és egy adatbázist.
- Célállomás táblázat. Hozzon létre egy táblát , vagy használjon egy meglévő táblát.
- A táblázat betöltési leképezése .
- Egy tárfiók. Event Grid-értesítési előfizetés beállítható az Azure Storage-fiókokra a
BlobStorage,StorageV2, vagy a 2. generációs Data Lake Storage () esetében. - Regisztrálva van az Event Grid erőforrás-szolgáltató.
Event Grid-adatkapcsolat létrehozása
Ebben a szakaszban kapcsolatot fog létesíteni az Event Grid és az Azure Data Explorer-tábla között.
Telepítse a Microsoft.Azure.Management.Kusto NuGet csomagot.
Hozzon létre egy Microsoft Entra-alkalmazásnevet a hitelesítéshez. Szüksége lesz a címtár (bérlő) azonosítójára, az alkalmazásazonosítóra és az ügyfél titkos kódjára.
Futtassa a következő kódot.
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID var clientSecret = "PlaceholderClientSecret"; //Client Secret var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret); var resourceManagementClient = new ArmClient(credentials, subscriptionId); var resourceGroupName = "testrg"; //The cluster and database that are created as part of the Prerequisites var clusterName = "mykustocluster"; var databaseName = "mykustodatabase"; var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync(); var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value; var cluster = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value; var database = (await cluster.GetKustoDatabaseAsync(databaseName)).Value; var dataConnections = database.GetKustoDataConnections(); var eventGridConnectionName = "myeventgridconnect"; //The event hub and storage account that are created as part of the Prerequisites var eventHubResourceId = new ResourceIdentifier("/subscriptions/<storageAccountSubscriptionId>/resourceGroups/<storageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<storageAccountName>"); var storageAccountResourceId = new ResourceIdentifier("/subscriptions/<eventHubSubscriptionId>/resourceGroups/<eventHubResourceGroupName>/providers/Microsoft.EventHub/namespaces/<eventHubNamespaceName>/eventhubs/<eventHubName>"); var consumerGroup = "$Default"; var location = AzureLocation.CentralUS; //The table and column mapping are created as part of the Prerequisites var tableName = "StormEvents"; var mappingRuleName = "StormEvents_CSV_Mapping"; var dataFormat = KustoEventGridDataFormat.Csv; var blobStorageEventType = BlobStorageEventType.MicrosoftStorageBlobCreated; var databaseRouting = KustoDatabaseRouting.Multi; var eventGridConnectionData = new KustoEventGridDataConnection { StorageAccountResourceId = storageAccountResourceId, EventHubResourceId = eventHubResourceId, ConsumerGroup = consumerGroup, TableName = tableName, Location = location, MappingRuleName = mappingRuleName, DataFormat = dataFormat, BlobStorageEventType = blobStorageEventType, DatabaseRouting = databaseRouting }; await dataConnections.CreateOrUpdateAsync(WaitUntil.Completed, eventGridConnectionName, eventGridConnectionData);Setting Ajánlott érték Mező leírása tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx Az Ön bérlőazonosítója. Más néven könyvtárazonosító. subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx Az erőforrás-létrehozáshoz használt előfizetés-azonosító. clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx Annak az alkalmazásnak az ügyfélazonosítója, amely hozzáfér a bérlő erőforrásaihoz. clientSecret PlaceholderClientSecret Az alkalmazás ügyfélkulcsa, amely hozzáférést biztosít a bérlői környezet erőforrásaihoz. resourceGroupName testrg A fürtöt tartalmazó erőforráscsoport neve. klaszternév mykustocluster A klaszter neve. databaseName mykustodatabase A fürt céladatbázisának neve. eventGridConnectionName myeventgridconnect Az adatkapcsolat kívánt neve. tableName StormEvents A céltábla neve a céladatbázisban. leképezési szabály neve ViharEsemények_CSV_Térkép A céltáblához kapcsolódó oszlopleképezés neve. adatformátum csv Az üzenet adatformátuma. eventHubResourceId Erőforrás-azonosító Az eseményközpont erőforrás-azonosítója, ahol az Event Grid események küldésére van konfigurálva. storageAccountResourceId Erőforrás-azonosító A betöltéshez szükséges adatokat tartalmazó tárfiók erőforrás-azonosítója. fogyasztói csoport $Alapértelmezett Az eseményközpont fogyasztói csoportja. hely USA középső régiója Az adatkapcsolati erőforrás helye. blob tárolási eseménytípus Microsoft.Storage.BlobCreated Az esemény típusa, amely bemenetet vált ki. A támogatott események a következők: Microsoft.Storage.BlobCreated vagy Microsoft.Storage.BlobRenamed. A blob átnevezése csak az ADLSv2 storage esetében támogatott. adatbázis-irányítás Több - vagy egyszemélyes A kapcsolat adatbázis-útválasztása. Ha az értéket Single értékre állítja, az adatkapcsolatot a fürtön belül a databaseName beállításban megadott adatbázishoz irányítják. Ha multi értékre állítja az értéket, felülbírálhatja az alapértelmezett céladatbázist az Adatbázis-betöltési tulajdonság használatával. További információ: Események útválasztása.
Az Event Grid-adatkapcsolat használata
Ez a szakasz bemutatja, hogyan lehet indítani az adatbetöltést az Azure Blob Storage-ból vagy az Azure Data Lake Gen 2-ből a fürtbe a blob létrehozását vagy átnevezését követően.
Válassza ki a megfelelő lapot a blobok feltöltéséhez használt tárolási SDK típusától függően.
Az alábbi kódminta az Azure Blob Storage SDK használatával tölt fel egy fájlt az Azure Blob Storage-ba. A feltöltés aktiválja az Event Grid adatkapcsolatot, amely betölti az adatokat az Azure Data Explorerbe.
var azureStorageAccountConnectionString=<storage_account_connection_string>;
var containerName = <container_name>;
var blobName = <blob_name>;
var localFileName = <file_to_upload>;
var uncompressedSizeInBytes = <uncompressed_size_in_bytes>;
var mapping = <mappingReference>;
// Create a new container in your storage account.
var azureStorageAccount = CloudStorageAccount.Parse(azureStorageAccountConnectionString);
var blobClient = azureStorageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference(containerName);
container.CreateIfNotExists();
// Set metadata and upload a file to the blob.
var blob = container.GetBlockBlobReference(blobName);
blob.Metadata.Add("rawSizeBytes", uncompressedSizeInBytes);
blob.Metadata.Add("kustoIngestionMappingReference", mapping);
blob.UploadFromFile(localFileName);
// Confirm success of the upload by listing the blobs in your container.
var blobs = container.ListBlobs();
Megjegyzés:
Az Azure Data Explorer nem törli a blobokat a betöltés után. Tartsa meg a blobokat 3–5 napig az Azure Blob Storage életciklusának használatával a blobok törlésének kezeléséhez.
Megjegyzés:
A CopyBlob művelet utáni bevitel aktiválása nem lehetséges azoknál a tárfiókoknál, amelyeknél engedélyezve van a hierarchikus névtér funkció.
Fontos
Nagy mértékben elriasztjuk a Storage-események egyéni kódból való létrehozását és az Event Hubsba való küldését. Ha ezt választja, győződjön meg arról, hogy a létrehozott események szigorúan megfelelnek a megfelelő Storage Events-sémának és A JSON formátum specifikációinak.
Event Grid-adatkapcsolat eltávolítása
Az Event Grid-kapcsolat eltávolításához futtassa a következő parancsot:
kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);