首页 > 解决方案 > Azure stream analytics with a c# udf that returns a list of objects

问题描述

I have a IOT device that has a data payload of a string of hex characters. Azure event-hubs is providing input for my azure stream analytics. I am using a c# udf to return a list of objects and would like to save them to a DB using one of my outputs. It will always have 4 records.

However I can't get the SQL type syntax correct. The udf is running and returning the results correctly but I haven't got the syntax correct to pass them to my output. Currently only one record is created in my TempHum output and it has all null values.

with results as (
    select udf.process_UDF_TempHum(data,time,device_id)
    from hub

)


SELECT
    device_id, data, time
INTO
    DB
FROM
    hub

Select process_UDF_TempHum.Humidity, process_UDF_TempHum.Temperature, process_UDF_TempHum.DateTime, process_UDF_TempHum.DeviceID


into
    TempHum

from
    results

UDF

namespace process
{
    public class TempHum
    {
        public int Temperature { get; set; }
        public int Humidity { get; set; }
        public DateTime DateTime { get; set; }
        public int DeviceID { get; set; }
    }

    public class UDF
    {
        public static List<TempHum> TempHum(string data, string time, string device_id)
        {
            var results = new List<TempHum>();
 

            for (int i = 0; i < 4; i++)
            {

                var TH = new TempHum();

                TH.Temperature = 10
                TH.Humidity = 10              
                TH.DeviceID = 1;
                TH.DateTime = DateTime.Now;
                results.Add(TH);
            }


            return results;
        }

    }
}

标签: c#azure-eventhubazure-stream-analytics

解决方案


推荐阅读