Aracılığıyla paylaş


Event Grid veri bağlantısı

Event Grid alımı, Azure depolama alanını dinleyen ve abone olunan olaylar gerçekleştiğinde bilgileri çekmek için Azure Veri Gezgini’ni güncelleştiren bir işlem hattıdır. Azure Veri Gezgini, oluşturulan veya blob olarak yeniden adlandırılan bildirimler için Azure Event Grid aboneliğiyle Azure Depolama'dan (Blob depolama ve ADLSv2) sürekli alım ve bu bildirimlerin Azure Event Hubs aracılığıyla Azure Veri Gezgini akışı sunar.

Event Grid alma işlem hattı birkaç adımdan geçer. Azure Veri Gezgini'da belirli bir biçimdeki verilerin alınacağı bir hedef tablo oluşturursunuz. Ardından Azure Veri Gezgini'de event grid veri bağlantısı oluşturursunuz. Event Grid veri bağlantısının, verilerin hangi tabloya gönderilmesi gerektiği ve tablo eşlemesi gibi olay yönlendirme bilgilerini bilmesi gerekir. Ayrıca, alınacak verileri, hedef tabloyu ve eşlemeyi açıklayan alma özelliklerini de belirtirsiniz. Bağlantınızı test etmek için örnek veriler oluşturabilir ve blobları karşıya yükleyebilir veya blobları yeniden adlandırabilirsiniz. Almadan sonra blobları silin.

Event Grid alımı Azure portalı üzerinden, alma sihirbazı kullanılarak, program aracılığıyla C# veya Python ile ya da Azure Resource Manager şablonuyla yönetilebilir.

Azure Veri Gezgini'da veri alımı hakkında genel bilgi için bkz. Azure Veri Gezgini veri alımına genel bakış.

Event Grid veri bağlantısı kimlik doğrulama mekanizmaları

  • Yönetilen Kimlik tabanlı veri bağlantısı (önerilir): Yönetilen kimlik tabanlı veri bağlantısı kullanmak, veri kaynaklarına bağlanmanın en güvenli yoludur. Bir veri kaynağından veri getirme özelliği üzerinde tam denetim sağlar. Yönetilen kimlik kullanılarak Event Grid veri bağlantısının kurulumu için aşağıdaki adımlar gerekir:

    1. Kümenize yönetilen kimlik ekleyin.
    2. Veri kaynağında yönetilen kimliğe izinler verin. Azure Depolama'dan veri getirmek için yönetilen kimliğin Azure Depolama hesabında en az Depolama Blob Veri Okuyucusu izinlerine sahip olması gerekir.
    3. Olay hub'ındaki yönetilen kimliğe izinler verin. Olay hub'ından blob bildirimleri getirmek için yönetilen kimliğin Azure Event Hubs'da Azure Event Hubs Veri Alıcısı izinlerine sahip olması gerekir.
    4. Hedef veritabanlarında bir yönetilen kimlik ilkesi ayarlayın.
    5. Verileri getirmek için yönetilen kimlik kimlik doğrulamasını kullanarak bir veri bağlantısı oluşturun.

    Dikkat

    • Yönetilen kimlik izinleri veri kaynağından kaldırılırsa, veri bağlantısı artık çalışmaz ve veri kaynağından veri getiremez.
    • Blob bildirimlerinin akışı yapılan mevcut bir Event Hubs ad alanında yerel kimlik doğrulaması devre dışı bırakılırsa, veri bağlantısı için yönetilen kimlik kimlik doğrulamasını kullanmanız ve kaynakları doğru yapılandırmanız gerekir. Daha fazla bilgi için bkz . Bilinen Event Grid sorunları.
  • Anahtar tabanlı veri bağlantısı: Veri bağlantısı için yönetilen kimlik doğrulaması belirtilmezse, bağlantı otomatik olarak anahtar tabanlı kimlik doğrulamasına ayarlanır. Anahtar tabanlı bağlantılar, Azure Event Hubs bağlantı dizesi gibi bir kaynak bağlantı dizesi kullanarak veri getirir. Azure Veri Gezgini, belirtilen kaynak için kaynak bağlantı dizesi alır ve güvenli bir şekilde kaydeder. Bağlantı dizesi daha sonra veri kaynağından veri getirmek için kullanılır.

    Dikkat

    Anahtar döndürülürse, veri bağlantısı artık çalışmaz ve veri kaynağından veri getiremez. Sorunu çözmek için veri bağlantısını güncelleştirin veya yeniden oluşturun.

Veri biçimi

  • Desteklenen biçimlere bakın.
  • Bkz. desteklenen sıkıştırmalar.
    • Özgün sıkıştırılmamış veri boyutu blob meta verilerinin parçası olmalıdır, aksi takdirde Azure Veri Gezgini bunu tahmin eder. Dosya başına sıkıştırılmamış boyut sınırı 6 GB'tır.

      Not

      Event Grid bildirim aboneliği , StorageV2veya Data Lake Storage 2. Nesil için BlobStorageAzure Depolama hesaplarında ayarlanabilir.

Alma özellikleri

Blob alımının alma özelliklerini blob meta verileri aracılığıyla belirtebilirsiniz. Aşağıdaki özellikleri ayarlayabilirsiniz:

Özellik Açıklama
rawSizeBytes Ham (sıkıştırılmamış) verilerin boyutu. Avro/ORC/Parquet için, biçime özgü sıkıştırma uygulanmadan önceki boyut. Bu özelliği bayt cinsinden sıkıştırılmamış veri boyutuna ayarlayarak özgün veri boyutunu sağlayın.
kustoDatabase Hedef veritabanının büyük/küçük harfe duyarlı adı. Varsayılan olarak, veriler veri bağlantısıyla ilişkili hedef veritabanına alınır. Varsayılan veritabanını geçersiz kılmak ve farklı bir veritabanına veri göndermek için bu özelliği kullanın. Bunu yapmak için önce bağlantıyı çok veritabanılı bir bağlantı olarak ayarlamanız gerekir.
kustoTable Mevcut hedef tablonun büyük/küçük harfe duyarlı adı. Bölmedeki kümeyi Table Data Connection geçersiz kılar.
kustoDataFormat Veri biçimi. Bölmedeki kümeyi Data format Data Connection geçersiz kılar.
kustoIngestionMappingReference Kullanılacak mevcut alım eşlemesinin adı. Bölmedeki kümeyi Column mapping Data Connection geçersiz kılar.
kustoIgnoreFirstRecord olarak ayarlanırsa trueKusto blobun ilk satırını yoksayar. Üst bilgileri yoksaymak için tablo biçimindeki verileri (CSV, TSV veya benzeri) kullanın.
kustoExtentTags Sonuç kapsamına eklenecek etiketleri temsil eden dize.
kustoCreationTime Blob için ISO 8601 dizesi olarak biçimlendirilmiş Kapsam Oluşturma süresini geçersiz kılar. Geri doldurma için kullanın.

Olay yönlendirme

Kümenize bir veri bağlantısı oluşturduğunuzda, alınan verilerin nereye gönderileceğine ilişkin yönlendirmeyi belirtirsiniz. Varsayılan yönlendirme, hedef veritabanıyla ilişkili bağlantı dizesi belirtilen hedef tabloya yapılır. Verileriniz için varsayılan yönlendirme statik yönlendirme olarak da adlandırılır. Olay verileri özelliklerini kullanarak verileriniz için alternatif bir yönlendirme belirtebilirsiniz.

Olay verilerini alternatif veritabanına yönlendirme

Verileri alternatif bir veritabanına yönlendirme varsayılan olarak kapalıdır. Verileri farklı bir veritabanına göndermek için önce bağlantıyı çok veritabanılı bir bağlantı olarak ayarlamanız gerekir. Bunu Azure portalında, C#, Python'da veya ARM şablonunda yapabilirsiniz. Veritabanı yönlendirmesine izin vermek için kullanılan kullanıcı, grup, hizmet sorumlusu veya yönetilen kimlik en azından kümede katkıda bulunan rolüne ve yazma izinlerine sahip olmalıdır. Daha fazla bilgi için bkz. Azure Veri Gezgini için Event Grid veri bağlantısı oluşturma.

Alternatif bir veritabanı belirtmek için Veritabanı alımı özelliğini ayarlayın.

Uyarı

Bağlantıyı çok veritabanılı veri bağlantısı olarak ayarlamadan alternatif bir veritabanı belirtmek, alımın başarısız olmasına neden olur.

Olay verilerini alternatif bir tabloya yönlendirme

Azure Veri Gezgini kümesine blob depolama bağlantısı kurarken hedef tablo özelliklerini belirtin:

  • tablo adı
  • veri biçimi
  • eşleme

Blob meta verilerini kullanarak her blob için hedef tablo özelliklerini de belirtebilirsiniz. Veriler, alma özellikleri tarafından belirtildiği gibi dinamik olarak yönlendirilir.

Aşağıdaki örnekte, blob meta verileri karşıya yüklemeden önce alma özelliklerini ayarlama işlemi gösterilmektedir. Bloblar farklı tablolara yönlendirilir.

Ayrıca, hedef veritabanını belirtebilirsiniz. Event Grid veri bağlantısı belirli bir veritabanı bağlamında oluşturulur. Bu nedenle bu veritabanı, veri bağlantısının varsayılan veritabanı yönlendirmesidir. Verileri farklı bir veritabanına göndermek için "KustoDatabase" alma özelliğini ayarlayın ve veri bağlantısını Çoklu veritabanı veri bağlantısı olarak ayarlayın. Verileri başka bir veritabanına yönlendirme varsayılan olarak devre dışıdır (izin verilmez). Veri bağlantısının veritabanından farklı bir veritabanı alma özelliğinin birden çok veritabanına veri yönlendirmesine izin vermeden ayarlanması (bağlantıyı Çok veritabanı veri bağlantısı olarak ayarlamak), veri alımının başarısız olmasına neden olur.

Daha fazla bilgi için bkz . Blobları karşıya yükleme.

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>")));

Blobları karşıya yükleme

Yerel bir dosyadan blob oluşturabilir, alma özelliklerini blob meta verilerine ayarlayabilir ve karşıya yükleyebilirsiniz. Örnekler için bkz . Event Grid veri bağlantısını kullanma.

Not

  • Kullanmak beklenmeyen davranışlara neden olabileceği için veri oluşturmak için kullanmanızı BlockBlob AppendBlob kesinlikle öneririz.
  • Azure Data Lake 2. Nesil depolama SDK'sını kullanmak için dosyaları karşıya yüklemek için ve Flush sonunda close parametresi olarak ayarlanmış olarak truekullanılması CreateFile gerekir. Data Lake 2. Nesil SDK'sının doğru kullanımına ilişkin ayrıntılı bir örnek için bkz . Event Grid veri bağlantısını kullanma.
  • Hiyerarşik ad alanı özelliğinin etkinleştirildiği depolama hesapları için bir CopyBlob işlemden sonra alımı tetikleme desteklenmez.
  • Olay hub'ı uç noktası bir olayın alındıysa Azure Event Grid yeniden deneme mekanizmasını etkinleştirir. Bu yeniden deneme teslimi başarısız olursa, Event Grid teslim edilmemiş olayları teslim edilemeyen postalama işlemini kullanarak bir depolama hesabına teslim edebilir. Daha fazla bilgi için bkz . Event Grid ileti teslimi ve yeniden deneme.

Blobları yeniden adlandırma

ADLSv2 kullanırken, azure Veri Gezgini blob alımını tetikleyen bir blobu yeniden adlandırabilirsiniz. Örneğin, bkz . Blobları yeniden adlandırma.

Not

  • ADLSv2'de dizin yeniden adlandırma mümkündür, ancak blob yeniden adlandırılan olayları ve dizin içindeki blobların alımını tetiklemez. Yeniden adlandırma sonrasında blobları almak için istenen blobları doğrudan yeniden adlandırın.
  • Veri bağlantısını oluştururken veya Event Grid kaynaklarını el ile oluştururken belirli konuları izlemek için filtreler tanımladıysanız, bu filtreler hedef dosya yoluna uygulanır.

Depolama yaşam döngüsünü kullanarak blobları silme

Azure Veri Gezgini alındıktan sonra blobları silmez. Blob silme işleminizi yönetmek için Azure Blob depolama yaşam döngüsünü kullanın. Blobların üç ile beş gün süreyle tutulması önerilir.

Bilinen Event Grid sorunları

  • Akış bildirimleri için kullanılan olay hub'ını içeren Event Hubs ad alanında yerel kimlik doğrulaması devre dışı bırakılırsa, yönetilen kimlikleri kullanarak verilerin depolama alanından olay hub'ına doğru şekilde akmasını sağlamak için aşağıdaki adımları kullanın:

    1. Depolama hesabının Event Grid sistem konusuna sistem tarafından atanan bir yönetilen kimlik atayın. Daha fazla bilgi için bkz . Sistem konuları için yönetilen kimliği etkinleştirme.
    2. Yönetilen kimliğe gönderen izinleri vermek için olay hub'ındaki Azure Event Hubs Veri Göndereni rolünü atayın. Daha fazla bilgi için bkz . Hedeflerde Azure rollerine kimlik ekleme.
    3. Event Grid aboneliğinin olay teslimi için yönetilen kimlik kullandığından emin olun. Daha fazla bilgi için bkz . Kimlik kullanan olay abonelikleri oluşturma.

    Ayrıca, Azure Veri Gezgini olay hub'ından bildirim alabilmesi için Event Grid veri bağlantısını yönetilen kimlik doğrulaması kullanacak şekilde yapılandırın.

  • Event Grid alımı için kullanılan dosyaları dışarı aktarmak için Azure Veri Gezgini kullanırken aşağıdakilere dikkat edin:

    • Dışarı aktarma komutuna sağlanan bağlantı dizesi veya bir dış tabloya sağlanan bağlantı dizesi ADLS 2. Nesil biçiminde bir bağlantı dizesiyse (örneğin, abfss://filesystem@accountname.dfs.core.windows.net) Event Grid bildirimleri tetiklenmemiştir, ancak depolama hesabı hiyerarşik ad alanı için etkinleştirilmemişse.
    • Hesap hiyerarşik ad alanı için etkinleştirilmediyse bağlantı dizesi Blob Depolama biçimini (örneğin, https://accountname.blob.core.windows.net) kullanmalıdır. ADLS 2. Nesil bağlantı dizesi kullanılırken bile dışarı aktarma beklendiği gibi çalışır, ancak bildirimler tetiklenmez ve Event Grid alımı çalışmaz.