Как распаковать данные Gzip в Azure Stream Analytics? - PullRequest
0 голосов
/ 09 апреля 2019

Мы используем IOT-концентратор для получения данных с устройств с поддержкой IP, так как данные растут, мы хотели сжать устройство с поддержкой IP и отправить его на iot-концентратор.мы используем потоковую аналитику Azure для обработки телеметрических сообщений.согласно документации Microsoft мы можем использовать поток Gzip для распаковки и возврата данных.

в потоковой аналитике, которую мы использовали ниже настроек Тип сжатия события: Gzip введите описание изображения здесь

мы пытаемся ниже код для сжатия:

string fltext = File.ReadAllText("input_new.txt");
            var buffer = Encoding.UTF8.GetBytes(fltext);
            Console.WriteLine("Before Converting message:" + buffer.Length);
            MemoryStream ms = new MemoryStream();
            using (var zip = new GZipStream(ms, CompressionLevel.Optimal, true))
            {
                zip.Write(buffer, 0, buffer.Length);
            }
            ms.Position = 0;
            var compressed = new byte[ms.Length];
            ms.Read(compressed, 0, compressed.Length);

            var gzBuffer = new byte[compressed.Length];
            Buffer.BlockCopy(compressed, 0, gzBuffer, 0, compressed.Length);




            var fullyConverted =  Convert.ToBase64String(gzBuffer);

            Console.WriteLine("Before Converting message:" + gzBuffer.Length);

            var deviceClient = DeviceClient.CreateFromConnectionString(deviceSpecificConnection);

            var message = new Microsoft.Azure.Devices.Client.Message(gzBuffer);


            deviceClient.SendEventAsync(message);
            Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, gzBuffer.Length);
            Task.Delay(5000);
...