Azure 流分析 CreateOrReplace 转换冲突或错误请求

Posted

技术标签:

【中文标题】Azure 流分析 CreateOrReplace 转换冲突或错误请求【英文标题】:Azure Stream Analytics CreateOrReplace Transformation Conflict or Bad Request 【发布时间】:2017-12-23 14:33:39 【问题描述】:

我们目前正在通过 Azure 流分析将数据从 Azure 事件中心流式传输到 Cosmos DB。我希望能够以编程方式更改在数据流式传输时完成的查询(/转换)。

var existingQuery = AnalyticsClient.Transformations.Get(handler.ResourceGroup, handler.JobName, handler.JobName);

if (job.JobState == "Started")
        
            AnalyticsClient.StreamingJobs.BeginStopAsync(handler.ResourceGroup, handler.JobName).Wait();
        
        var transformation = new Transformation()
        
            Query = $@"SELECT 
                        [key] as partition_key
                    INTO[outputName]
                    FROM Input",
            StreamingUnits = 1
        ; 
AnalyticsClient.Transformations.CreateOrReplace(transformation, handler.ResourceGroup, handler.JobName, handler.JobName);

Stream Analytics Job Properties - 转换显示为空。

不清楚转换的默认名称可能是什么,但试图从作业中获取转换(与作业同名):


    "code": "NotFound",
    "message": "StreamAnalytics_Prototype_2 does not exist in Stream Analytics job 'StreamAnalytics_Prototype_2' in resource group 'removed' in subscription 'removed'.",
    "details": 
        "code": "404",
        "message": "StreamAnalytics_Prototype_2 does not exist in Stream Analytics job 'StreamAnalytics_Prototype_2' in resource group 'removed' in subscription 'removed'.",
        "correlationId": "removed",
        "requestId": "removed"
    

尝试创建转换


    "code": "BadRequest",
    "message": "The number of transformations defined for this job exceeds the maximum limit of 1 that is supported.",
    "details": 
        "code": "400",
        "message": "The number of transformations defined for this job exceeds the maximum limit of 1 that is supported."
    

【问题讨论】:

【参考方案1】:

如果从 Azure 门户创建转换,则默认名称为转换“Transformation”。如果从 SDK 创建转换,则需要在代码中指定名称。

streamAnalyticsManagementClient.Transformations.CreateOrReplace(transformation, resourceGroupName, streamingJobName, transformationName);

顺便说一句,我在从 Azure 门户添加查询后,从 Activity 日志中找到了默认转换名称。

【讨论】:

非常感谢;这也很有用: var streamingjob = AnalyticsClient.StreamingJobs.Get(ResourceGroup, JobName, "transformation"); 我还有一个 Stream 下的查询被命名为脚本(我假设开发人员通过 .net 创建了它),我能够通过活动日志中的上述方法进行检查。

以上是关于Azure 流分析 CreateOrReplace 转换冲突或错误请求的主要内容,如果未能解决你的问题,请参考以下文章

Azure 流分析:如何使用两个 Azure 机器学习函数

具有事件中心输入流位置的 Azure 流分析

Azure 流分析 - 沿流查询

Grafana 作为 Azure 流分析输出

Azure Functions 与 Azure 流分析

Azure 流分析输出到 Azure Cosmos DB