Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Bu bağlayıcı, Microsoft Fabric'teki Gerçek Zamanlı Zeka'da kullanılabilir. Aşağıdaki özel durumlar için bu makaledeki yönergeleri kullanın:
- Gerekirse, KQL veritabanı oluşturma başlığındaki yönergeleri kullanarak veritabanları oluşturun.
- Gerekirse, Boş tablo oluşturma başlığındaki yönergeleri kullanarak tablolar oluşturun.
- Copy URI bölümündeki yönergeleri kullanarak sorgu veya alma URI'lerini alın.
- KQL sorgu kümesinde sorgu çalıştırma.
Azure İşlevleri, bulutta zamanlamaya göre veya bir olaya yanıt olarak sunucusuz kod çalıştırmanızı sağlar. Azure İşlevleri için Azure Veri Gezgini giriş ve çıkış bağlamalarını kullanarak verileri almak ve kümenizde sorgu çalıştırmak için Azure Veri Gezgini'nin iş akışlarınızla tümleştirilmesini sağlayabilirsiniz.
Önkoşullar
- Azure aboneliği. Ücretsiz bir Azure hesabı oluşturun.
- Örnek verileri içeren bir Azure Veri Gezgini kümesi ve veritabanı. Küme ve veritabanı oluşturma.
- Depolama hesabı.
Örnek projeyi kullanarak tümleştirmeyi deneyin.
Azure İşlevleri için Azure Veri Gezgini bağlamalarını kullanma
Azure İşlevleri için Azure Veri Gezgini bağlamalarını kullanma hakkında bilgi için aşağıdaki makalelere bakın:
- Azure İşlevleri genel bakış için Azure Veri Gezgini bağlamaları
- Azure İşlevleri için Azure Veri Gezgini giriş bağlamaları
- Azure İşlevleri için Azure Veri Gezgini çıkış bağlamaları
Azure İşlevleri için Azure Veri Gezgini bağlamalarını kullanma senaryoları
Aşağıdaki bölümlerde, Azure İşlevleri için Azure Veri Gezgini bağlamalarını kullanmaya yönelik bazı yaygın senaryolar açıklanmaktadır.
Giriş bağlamaları
Giriş bağlamaları isteğe bağlı olarak parametrelerle bir Kusto Sorgu Dili (KQL) sorgusu veya KQL işlevi çalıştırır ve çıkışı işleve döndürür.
Aşağıdaki bölümlerde, bazı yaygın senaryolarda giriş bağlamalarının nasıl kullanılacağı açıklanmaktadır.
Senaryo 1: Kümeden verileri sorgulamak için bir HTTP uç noktası
Rest API aracılığıyla Azure Veri Gezgini verilerini kullanıma sunmanız gerektiğinde giriş bağlamalarını kullanın. Bu senaryoda, kümenizdeki verileri sorgulamak için bir Azure İşlevleri HTTP tetikleyicisi kullanırsınız. Senaryo, dış uygulamalar veya hizmetler için Azure Veri Gezgini verilerine programlı erişim sağlamanız gereken durumlarda kullanışlıdır. Verilerinizi REST API aracılığıyla kullanıma açmak, uygulamaların verileri doğrudan kümenize bağlanmasına gerek kalmadan kolayca kullanmasına olanak tanır.
Kod, HTTP tetikleyicisi ve Azure Veri Gezgini giriş bağlaması olan bir işlevi tanımlar. Giriş bağlaması, productsdb veritabanındaki Products tablosunda çalıştırılacak sorguyu belirtir. işlev, parametre olarak geçirilen koşul olarak productId sütununu kullanır.
{
[FunctionName("GetProduct")]
public static async Task<IActionResult> RunAsync(
[HttpTrigger(AuthorizationLevel.User, "get", Route = "getproducts/{productId}")]
HttpRequest req,
[Kusto(Database:"productsdb" ,
KqlCommand = "declare query_parameters (productId:long);Products | where ProductID == productId" ,
KqlParameters = "@productId={productId}",
Connection = "KustoConnectionString")]
IAsyncEnumerable<Product> products)
{
IAsyncEnumerator<Product> enumerator = products.GetAsyncEnumerator();
var productList = new List<Product>();
while (await enumerator.MoveNextAsync())
{
productList.Add(enumerator.Current);
}
await enumerator.DisposeAsync();
return new OkObjectResult(productList);
}
}
işlevini aşağıdaki gibi çağırırsınız:
curl https://myfunctionapp.azurewebsites.net/api/getproducts/1
Senaryo 2: Kümeden verileri dışarı aktarmak için zamanlanmış tetikleyici
Aşağıdaki senaryo, verilerin zamana dayalı bir zamanlamaya göre dışarı aktarılması gereken durumlarda geçerlidir.
Kod, productsdb veritabanındaki satış verilerinin bir toplamasını Azure Blob Depolama'daki bir CSV dosyasına aktaran zamanlayıcı tetikleyici özelliğine sahip bir işlev tanımlar.
public static async Task Run([TimerTrigger("0 0 1 * * *")] TimerInfo myTimer,
[Kusto(ConnectionStringSetting = "KustoConnectionString",
DatabaseName = "productsdb",
Query = "ProductSales | where OrderDate >= ago(1d) | summarize Sales = sum(ProductSales) by ProductName | top 10 by Sales desc")] IEnumerable<dynamic> queryResults,
[Blob("salescontainer/productsblob.csv", FileAccess.Write, Connection = "BlobStorageConnection")] CloudBlockBlob outputBlob,
ILogger log)
{
// Write the query results to a CSV file
using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(queryResults);
writer.Flush();
stream.Position = 0;
await outputBlob.UploadFromStreamAsync(stream);
}
}
Çıkış bağlamaları
Çıkış bağlamaları bir veya daha fazla satır alır ve bunları bir Azure Veri Gezgini tablosuna ekler.
Aşağıdaki bölümlerde bazı yaygın senaryolarda çıkış bağlamalarının nasıl kullanılacağı açıklanmaktadır.
Senaryo 1: Verileri kümeye almak için HTTP uç noktası
Gelen HTTP isteklerini işlemeniz ve verileri kümenize almanız gerektiğinde bu senaryoyu kullanın. Çıkış bağlaması kullanarak istekten gelen verileri Azure Veri Gezgini tablolarına yazabilirsiniz.
Kod, HTTP tetikleyicisi ve Azure Veri Gezgini çıkış bağlaması olan bir işlev tanımlar. Bu işlev HTTP isteği gövdesinde bir JSON yükü alır ve bunu productsdb veritabanındaki products tablosuna yazar.
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "addproductuni")]
HttpRequest req, ILogger log,
[Kusto(Database:"productsdb" ,
TableName ="products" ,
Connection = "KustoConnectionString")] out Product product)
{
log.LogInformation($"AddProduct function started");
string body = new StreamReader(req.Body).ReadToEnd();
product = JsonConvert.DeserializeObject<Product>(body);
string productString = string.Format(CultureInfo.InvariantCulture, "(Name:{0} ID:{1} Cost:{2})",
product.Name, product.ProductID, product.Cost);
log.LogInformation("Ingested product {}", productString);
return new CreatedResult($"/api/addproductuni", product);
}
işlevini aşağıdaki gibi çağırırsınız:
curl -X POST https://myfunctionapp.azurewebsites.net/api/addproductuni -d '{"Name":"Product1","ProductID":1,"Cost":100,"ActivatedOn":"2023-01-02T00:00:00"}'
Senaryo 2: RabbitMQ'dan veya Azure'da desteklenen diğer mesajlaşma sistemlerinden veri alma
Bir mesajlaşma sisteminden kümenize veri almanız gerektiğinde bu senaryoyı kullanın. Çıkış bağlaması kullanarak, mesajlaşma sisteminden gelen verileri Azure Veri Gezgini tablolarına alabilirsiniz.
Kod, RabbitMQ tetikleyicisi olan bir işlevi tanımlar. İşlev, JSON biçimindeki iletileri productsdb veritabanındaki products tablosuna alır.
public class QueueTrigger
{
[FunctionName("QueueTriggerBinding")]
[return: Kusto(Database: "productsdb",
TableName = "products",
Connection = "KustoConnectionString")]
public static Product Run(
[RabbitMQTrigger(queueName: "bindings.products.queue", ConnectionStringSetting = "rabbitMQConnectionAppSetting")] Product product,
ILogger log)
{
log.LogInformation($"Dequeued product {product.ProductID}");
return product;
}
}
İşlevler hakkında daha fazla bilgi için Azure İşlevleri belgelerine bakın. Azure Veri Gezgini uzantısı şu platformlarda kullanılabilir: