Beispiel #1
0
        public static void Run(
            [EventHubTrigger("%EventHubName%", Connection = "EventHubConnection", ConsumerGroup = "%ConsumerGroupName%")] EventData[] eventHubMessages,
            Microsoft.Azure.WebJobs.ExecutionContext exCtx,
            PartitionContext PartitionContext,
            TraceWriter log)
        {
            try
            {
                log.Info($"Function1 | Run - functionId: {exCtx.InvocationId}");

                Schema writerObjectSchema = Schema.Parse(SchemaClass.SCHEMA_OBJECT_ENTITY);
                Avro.Specific.SpecificDatumReader <ObjectEntity> r = new Avro.Specific.SpecificDatumReader <ObjectEntity>(writerObjectSchema, writerObjectSchema);

                for (int i = 0; i < eventHubMessages.Length; i++)
                {
                    ObjectEntity objectEntityWithSchema = null;

                    using (MemoryStream memStream = new MemoryStream(eventHubMessages[i].GetBytes()))
                    {
                        memStream.Seek(0, SeekOrigin.Begin);
                        objectEntityWithSchema = r.Read(null, new Avro.IO.BinaryDecoder(memStream));
                    }

                    /// Here use the deserialized object for your logic
                    /// Put your code here
                    ///
                }
                log.Info($"Function1 | Run - functionId: {exCtx.InvocationId}");
            }
            catch (Exception ex)
            {
                log.Error($"Function1 | Run - functionId: {exCtx.InvocationId}. Error StackTrace: {ex.StackTrace}");
                throw;
            }
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            String schema = new StreamReader("user.avsc").ReadToEnd();

            Avro.Schema avschema = Avro.Schema.Parse(schema);


            DatumReader <User> reader         = new Avro.Specific.SpecificDatumReader <User>(avschema, avschema);
            Stream             inStr          = new FileStream("users.avro", FileMode.Open);
            IFileReader <User> dataFileReader = DataFileReader <User> .OpenReader(inStr, avschema);

            while (dataFileReader.HasNext())
            {
                User record = dataFileReader.Next();
                Console.WriteLine("Specific Obj Read ==>" + record.name + ":" + record.favorite_color + ":" + record.favorite_number);
            }
            inStr.Close();

            inStr = new FileStream("users.avro", FileMode.Open);
            DatumReader <GenericRecord> reader2         = new Avro.Generic.GenericDatumReader <GenericRecord>(avschema, avschema);
            IFileReader <GenericRecord> gdataFileReader = DataFileReader <GenericRecord> .OpenReader(inStr, avschema);

            while (gdataFileReader.HasNext())
            {
                GenericRecord grecord = gdataFileReader.Next();
                Console.WriteLine("Generic mode of read==>" + grecord["name"] + ":" + grecord["favorite_color"] + ":" + grecord["favorite_number"]);
            }

            Console.Write("Hit ENTER to Close:");
            Console.ReadLine();
        }