每次Cosmos DB收到新文档时,我想从Cosmos DB文档中采样相关数据,并将其自动发送到Azure SQL数据库。 整个目的是创建一个实时的Power BI报表,该报表将使用Cosmos DB中的最新数据进行更新,但是由于我不需要显示所有内容,因此我在Azure中创建了一个SQL数据库,而我只缺少如何使当Cosmos DB收到新文档时触发的Azure函数。该函数还需要获取相关数据并将其发送到Azure SQL。 有标准的方法吗? 我必须制作一个Azure Function应用程序吗? 我对编码和Azure都很陌生,因此,如果有人可以帮助您使用入门语言,我将不胜感激。 但是,请提供任何帮助。
答案 0 :(得分:1)
您可以使用使用CosmosDB触发器的Azure函数轻松地做到这一点。
好吧,只要您要定位的CosmosDB集合中有多个更改或添加项之一,就会触发该触发器。然后只需添加您自己的代码即可进行SQL插入。
namespace CosmosDBSamplesV2
{
public static class CosmosTrigger
{
[FunctionName("CosmosTrigger")]
public static void Run([CosmosDBTrigger(
databaseName: "CosmosDBName",
collectionName: "CosmosColName",
ConnectionStringSetting = "CosmosDBConnection",
LeaseCollectionName = "leases",
CreateLeaseCollectionIfNotExists = true)]IReadOnlyList<Document> documents,
ILogger log)
{
if (documents != null && documents.Count > 0)
{
//do SQL insert with your code here
}
}
}
}
您可以在此处了解如何从azure函数连接到SQL数据库:https://docs.microsoft.com/en-us/azure/azure-functions/functions-scenario-database-table-cleanup
您可以在此处了解有关CosmosDB相关的Azure函数的更多信息:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-cosmosdb-v2