【云计算与大数据技术】数据编码LZSS算法、Snappy压缩库及分布式通信系统的讲解(图文解释 超详细)

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 【云计算与大数据技术】数据编码LZSS算法、Snappy压缩库及分布式通信系统的讲解(图文解释 超详细)

一、数据编码概述

数据编码概述 - 在分布式系统中需要处理大量的网络数据,为了加快网络数据的传输速度,通常需 要对传输数据进行编码压缩

数据压缩是以尽可能少的数码来表示信源所发出的信号,减少容纳给定的消息集合或数据采样集合的信号空间,这里讲的信号空间就是被压缩的对象,是指某信号集合所占的时域、空域和频域。信号空间的这几种形式是相互关联的,存储空间的减少意味着信号传输效率的提高,所占用带宽的节省,只要采取某种方法来减少某个信号空间就能够压缩数据

一般来说,数据压缩主要是通过数据压缩编码来实现的。在给定的模型下通过数据编码来消除冗余,大致有以下3种情况

信源符号之间存在相关性

如果消除了这些相关性,就意味着数据压缩

信源符号之间存在分布不等概性

根据不同符号出现的不同概率分别进行编码,概率大的符合用较短的码长编码,概率小的符号用较短的码长编码,最终使信源的平均码长达到最短,通常采用统计编码的方法

利用信息内容本身的特点(如自相似性)  

用模型的方法对需要传输的信息进行参数估测,充分利用人类的视觉、听觉等特性,同时考虑信息内容的特性,确定并遴选出其中的部分内容进行编码,从而实现数据压缩,通常采用模型基编码的方法

目前比较认同的、常用的数据压缩的编码方法大致分为两大类

冗余压缩法或无损压缩法 - 这类压缩方法只是去掉数据中的冗余部分,并没有损失熵,而这些冗余数据是 可以重新插入到原数据中的

熵压缩法或有损压缩法 - 这类压缩法由于压缩了熵,也就损失了信息量,而损失的信息是不能恢复的

二、LZSS算法

LZSS算法属于字典算法,是把文本中出现频率较高的字符组合做成一个对应的字 典列表,并用特殊代码来表示这个字符

LZSS算法的字典模型使用自适应方式,基本的思路是搜索目前待压缩串是否在以前出现过,如果出现过,则利用前次出现的位置和长度来代替现在的待压缩串,输出该字符串的出现位置以及长度,否则输出新的字符串,从而起到压缩的目的,但是在实际使用过程中,由于被压缩的文件往往较大,一般使用滑动窗口压缩方式,也就是说将一个虚拟的、可以跟随压缩进程滑动的窗口作为术语字典,LZSS算法最大的好处是压缩算法的细节处理不同,只对压缩率和压缩时间有影响,不会影响到解压程序,LZSS算法最大的问题是速度,每次都需要向前搜索到原文开头,对于较长的原文需要的时间是不可忍受的,这也是LZSS算法较大的一个缺点

三、Snappy压缩库

Snappy是在 Google公司内部生产环境中被许多项目使用的压缩/解压缩的链接库, 使用该库的软件包括BigTable、MapReduce 和 RPC 等

Snappy是面向字节编码的 LZ77类型压缩器。Snappy采用的编码单元是 字节(byte), 而不是比特(bit)

采用小端方式 (little-endian )存储 , 同时兼顾可变长度编码。每个字节的后面7位存储具体的数据,最高位用于表示下一个字节是否为同一个整数,剩下的字节用4种元素类型中的一种进行编码,元素类型在元素数据中的第二个字节,该字节的最后两位表示类型

四、分布式通信系统

分布式通信研究分布式系统中不同子系统或进程之间的信息交换机制,我们从大数据系统中归纳出三种最常见的通信机制:远程过程调用,消息队列,多播通信

1:远程过程调用

远程过程调用的重点是网络中位于不同机器上进程之间的交互

远程过程调用 (Remote Procedure Call RPC)是一个计算机通信协议,通 过该协议运行于一台计算机上的程序可以调用另一台计算机的子程序,而程序员无须额外地为这个交互编程。

RPC框架都支持以下特性:接口描述语言、高性能、数据版本支持以及二进制数据格式

Thrift 是由 Facebook 公司开发的远程服务调用框架 ,它采用接口描述语言定义并创建服务,支持可扩展的跨语言服务开发

2:消息队列

消息队列的重点是子系统之间的消息可靠传递

消息队列也是设计大规模分布式系统时经常采用的中间件产品

消息队列是在消息传递过程中保存消 息的容器或中间件,其主要目的是提供消息路由并保障消息可靠传递

分布式消息系统 Kafka 采用pub-sub机制,具有极高的消息吞吐量、较强的扩展型和高可用性

3:应用层多播通信

多播通信是实现信息的高效多播传递

分布式系统中的一个重要的研究内容是如何将数据通知到网络中的多个接收 方,这一般被称为多播通信

Gosip协议就是常见的应用层多播通信协议

Gossip协议也被称为“感 染 协 议 ”(Epidemic Protocol),用来尽快地将 本地更新数据通知到网络中的所有其他节点

其具体更新模型又可以分为3种:全通知模型、反熵模 型和散步谣言模型

创作不易 觉得有帮助请点赞关注收藏~~~

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
14天前
|
数据采集 监控 数据管理
数据治理之道:大数据平台的搭建与数据质量管理
【10月更文挑战第26天】随着信息技术的发展,数据成为企业核心资源。本文探讨大数据平台的搭建与数据质量管理,包括选择合适架构、数据处理与分析能力、数据质量标准与监控机制、数据清洗与校验及元数据管理,为企业数据治理提供参考。
50 1
|
2天前
|
算法 关系型数据库 MySQL
分布式唯一ID生成:深入理解Snowflake算法在Go中的实现
在分布式系统中,确保每个节点生成的 ID 唯一且高效至关重要。Snowflake 算法由 Twitter 开发,通过 64 位 long 型数字生成全局唯一 ID,包括 1 位标识位、41 位时间戳、10 位机器 ID 和 12 位序列号。该算法具备全局唯一性、递增性、高可用性和高性能,适用于高并发场景,如电商促销时的大量订单生成。本文介绍了使用 Go 语言的 `bwmarrin/snowflake` 和 `sony/sonyflake` 库实现 Snowflake 算法的方法。
8 1
分布式唯一ID生成:深入理解Snowflake算法在Go中的实现
|
12天前
|
存储 运维 负载均衡
构建高可用性GraphRAG系统:分布式部署与容错机制
【10月更文挑战第28天】作为一名数据科学家和系统架构师,我在构建和维护大规模分布式系统方面有着丰富的经验。最近,我负责了一个基于GraphRAG(Graph Retrieval-Augmented Generation)模型的项目,该模型用于构建一个高可用性的问答系统。在这个过程中,我深刻体会到分布式部署和容错机制的重要性。本文将详细介绍如何在生产环境中构建一个高可用性的GraphRAG系统,包括分布式部署方案、负载均衡、故障检测与恢复机制等方面的内容。
62 4
构建高可用性GraphRAG系统:分布式部署与容错机制
|
1天前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
20 7
|
1天前
|
存储 分布式计算 大数据
大数据 优化数据读取
【11月更文挑战第4天】
10 2
|
8天前
|
存储 大数据 定位技术
大数据 数据索引技术
【10月更文挑战第26天】
20 3
|
8天前
|
存储 大数据 OLAP
大数据数据分区技术
【10月更文挑战第26天】
30 2
|
8天前
|
缓存 算法 大数据
大数据查询优化算法
【10月更文挑战第26天】
28 1
|
11天前
|
消息中间件 分布式计算 大数据
数据为王:大数据处理与分析技术在企业决策中的力量
【10月更文挑战第29天】在信息爆炸的时代,大数据处理与分析技术为企业提供了前所未有的洞察力和决策支持。本文探讨了大数据技术在企业决策中的重要性和实际应用,包括数据的力量、实时分析、数据驱动的决策以及数据安全与隐私保护。通过这些技术,企业能够从海量数据中提取有价值的信息,预测市场趋势,优化业务流程,从而在竞争中占据优势。
41 2
|
12天前
|
存储 人工智能 大数据
物联网、大数据、云计算、人工智能之间的关系
物联网、大数据、云计算、人工智能之间的关系是紧密相连、相互促进的。这四者既有各自独立的技术特征,又能在不同层面上相互融合,共同推动信息技术的发展和应用。
102 0