当前位置: 首页 > news >正文

广州网站推广教程如何看网站做的好坏

广州网站推广教程,如何看网站做的好坏,做爰片姿势网站,网站制作费用属于广告费吗数据仓库之拉链表 在数据仓库领域#xff0c;拉链表是一种非常重要的数据结构#xff0c;它能够对数据进行有效的组织和处理。本文将详细介绍拉链表的概念、应用、优缺点以及实现方法#xff0c;帮助读者更好地理解和掌握数据仓库中的拉链表技术。 场景问题 在数据仓库的…数据仓库之拉链表 在数据仓库领域拉链表是一种非常重要的数据结构它能够对数据进行有效的组织和处理。本文将详细介绍拉链表的概念、应用、优缺点以及实现方法帮助读者更好地理解和掌握数据仓库中的拉链表技术。 场景问题 在数据仓库的数据模型设计过程中经常会遇到下面这种表的设计 有一些表的数据量很大比如一张用户表大约有亿级别记录几十个字段这种表即使使用ORC压缩单张表的存储也会超过100G在HDFS使用双备份或者三备份的话就更大一些。 表中的部分字段会被update更新操作如用户联系方式产品的描述信息订单的状态等等。 需要查看某一个时间点或者时间段的历史快照信息比如查看某一个订单在历史某一个时间点的状态。 表中的记录变化的比例和频率不是很大比如总共有10亿的用户每天新增和发生变化的有200万左右变化的比例占的很小。 那么对于这种表我该如何设计呢下面有几种方案可选 方案一每天只留最新的一份比如我们每天用Sqoop抽取最新的一份全量数据到Hive中。方案二每天保留一份全量的切片数据。方案三使用拉链表。 什么是拉链表 一、拉链表的概念 拉链表Linked Chunked Blocks简称 SCB是一种数据存储方式它可以将一块连续存储空间划分成多个块每个块包含多个数据项。每个块都有一个头部和一个尾部头部记录了该块的数据类型、大小等信息尾部则记录了下一个块的地址。通过这种方式拉链表可以实现数据的连续存储和非连续存储从而满足不同场景下的需求。 二、拉链表的应用 拉链表作为一种高效的数据结构在数据仓库领域有着广泛的应用。以下是几个典型的场景 数据缓存在数据仓库中经常需要将大量数据加载到内存中进行处理。拉链表可以将数据按照块的方式组织每个块包含多个数据项从而减少内存的碎片化提高数据加载和处理效率。 索引构建在构建索引时拉链表可以用来存储索引的倒排列表。通过将倒排列表分成多个块每个块包含多个倒排项可以实现对倒排列表的高效存储和查询。 数据分片在分布式数据仓库中需要将数据分成多个分片存储在不同的节点上。拉链表可以将数据按照块的方式进行分片每个块包含多个数据项从而实现数据的分布式存储和处理。 三、拉链表的优缺点 拉链表作为一种常用的数据结构具有以下优点 高效的空间利用率拉链表可以将一块连续的存储空间划分成多个块每个块包含多个数据项从而减少内存的碎片化提高空间利用率。 高性能的数据加载和处理由于拉链表可以将数据分成多个块可以实现对数据的批量加载和处理从而提高数据加载和处理效率。 灵活的数据组织方式拉链表可以根据需要将数据分成不同的块大小和块数从而实现数据的灵活组织和管理。 然而拉链表也存在以下缺点 写入性能问题在写入数据时需要将数据分成多个块并维护每个块之间的链接关系这会增加写入操作的复杂性降低写入性能。 内存占用问题由于拉链表需要维护每个块之间的链接关系因此需要占用一定的内存空间。当数据量较大时这些额外的内存开销可能会对系统性能产生影响。 数据访问限制由于拉链表的每个块之间是通过链接关系相互连接的因此在访问某个块的数据时需要先加载该块的所有数据项。这可能会增加数据的访问延迟和系统负载。 四、拉链表的实现方法 下面介绍两种常见的实现方法 内存实现在内存中实现拉链表可以使用数组或链表来实现每个块的数据存储和链接关系。例如可以使用一个数组来存储所有块的首地址然后使用一个指针来指向当前块的下一个块。当需要访问某个块的数据时可以首先加载该块的所有数据项然后通过指针访问下一个块的数据项。 磁盘实现在磁盘中实现拉链表可以使用文件或数据库来实现每个块的数据存储和链接关系。例如可以使用一个文件来存储所有块的数据项和链接关系信息。当需要访问某个块的数据时可以首先读取该块的头部信息然后根据链接关系依次读取下一个块的数据项。 我们先看一个示例这就是一张拉链表存储的是用户的最基本信息以及每条记录的生命周期。我们可以使用这张表拿到最新的当天的最新数据以及之前的历史数据。 time_id用户编号手机号码start_dateend_datestate2023-12-010011101202023-12-019999-12-3102023-12-010021191202023-12-019999-12-3102023-12-01003333332023-12-019999-12-3102023-12-02004444442023-12-029999-12-3102023-12-030011101202023-12-012023-12-0312023-12-03005555552023-12-039999-12-3102023-12-040044444442023-12-022023-12-041 我们能拿到历史状态用到的SQL select state from model_aaa WHERE start_date 查询日 and end_date 查询日 -- 此处要好好理解是拉链表比较重要的一块。拉链表在Hive中的实现 在现在的大数据场景下大部分的公司都会选择以Hdfs和Hive为主的数据仓库架构。目前的Hdfs版本来讲其文件系统中的文件是不能做改变的也就是说Hive的表智能进行删除和添加操作而不能进行update。基于这个前提我们来实现拉链表。 在Hive中拉链表可以通过使用视图来实现。视图是一个虚拟表它可以根据一定的条件和规则从底层数据源中提取数据。在使用视图时我们可以将拉链表的基本原理和更新策略以SQL语句的形式表达出来从而实现拉链表的功能。 例如我们可以创建一个名为“pivot_table”的视图该视图根据时间戳对数据进行分组并将最新版本的数据作为结果返回。具体SQL语句如下 CREATE VIEW pivot_table AS SELECT key, MAX(timestamp) AS timestamp, value FROM (SELECT key, timestamp, value, ROW_NUMBER() OVER (PARTITION BY key ORDER BY timestamp DESC) AS row_numFROM table_name ) AS sorted WHERE row_num 1 GROUP BY key, value;该SQL语句首先使用子查询将数据按照主键和时间戳进行排序并给每个节点分配一个行号。然后使用聚合函数MAX()和ROW_NUMBER()函数将最新版本的数据作为结果返回。最后使用GROUP BY语句将结果按照主键和值进行分组。 通过使用视图我们可以很方便地实现拉链表的功能并大大提高数据仓库的效率和性能。
http://www.zqtcl.cn/news/437366/

相关文章:

  • 为网站网站做推广加强网络安全建设
  • dedecms 模版网站wordpress 10万并发
  • 衡阳企业网站排名优化深圳网站建设 联雅网络
  • 厦门网站建设案例做网站需要买多大空间
  • 查看网站被恶意镜像wordpress 添加文件权限设置
  • 基于php的网站开发流程图如何建设一个公众号电影网站
  • 2018年怎么做网站排名如何提升网站的收录量
  • 租电信服务器开网站为何要屏蔽网站快照
  • 广州建设网站技术企业咨询属于什么行业
  • 哪些网站容易做网站开发价格
  • 展览网站源码棋牌游戏软件开发
  • 网站开发业务ppt做网站如何放入图像
  • 专业做网站和小程序车载网络设计是干什么的
  • 运城网站建设兼职建设通网站武义巨合汪志刚
  • 广州网站建设公司排行个人介绍网页设计模板图片
  • 东莞营销网站建设多少钱wordpress开场动画
  • 网站建设问题及解决办法网站优化过度的表现
  • html5手机网站教程合肥企业网站营销电话
  • 公司网站引导页建设银行网站怎么登录密码忘了怎么办
  • iis7 网站打不开做兼职哪个网站好
  • 惠州网站制作网站iot物联网平台开发
  • 龙岩门户网站最新仿58同城网站源码
  • 简单的企业小网站南宁最新消息今天
  • 美橙表业手表网站公司推广渠道
  • 大连网站排名优化价格wordpress锚文字
  • 漯河网做网站南京市建设工程档案馆网站
  • 重庆可以建建网站的平台天眼查 企业查询官网
  • gta5单机买房子网站在建设免费建小程序网站
  • 怎么制作网站设计图片劳动保障局瓯海劳务市场和做网站
  • 视屏网站制作青岛平台网站建设