餐饮加盟网-免费发布餐饮招商信息!本站不提供任何加盟资料,如需加盟请去其官网了解详情

带你实战千万数据的工单系统如何实现冷热数据分离?

来源:餐饮加盟
作者:小吃加盟·发布时间 2025-10-13
核心提示:热数据分离简单的理解就是将需要处理的数据分成冷库和热库进行存储,其中冷库放的是一些最终状态或者是不经常使用的数据,这些数

< class="pgc-img">

热数据分离简单的理解就是将需要处理的数据分成冷库和热库进行存储,其中冷库放的是一些最终状态或者是不经常使用的数据,这些数据通常情况下只用来完成查询操作。而热库则存储的是需要进行修改,并且进场需要使用到的一些数据。

在什么情况下需要用到冷热数据分离呢?这与我们接下来说到的工单系统有什么关系呢?下面我们就来一起分析一下工单系统如何实现冷热数据分离。

< class="pgc-img">

冷热数据都用MySQL进行存储

当决定使用冷热数据分离的方案来提升系统性能的时候,就需要考虑一种具体的实现方案了。需要围绕如下的一些问题来实现。

  • 1、如何去判断数据属于冷数据还是热数据?
  • 2、使用什么机制去触发冷热数据的分离?
  • 3、如何去实现冷热数据分离存储?
  • 4、分离之后如何操作冷热数据?
  • 5、对于系统历史数据如何进行冷热分离的迁移操作?

有了这五个问题之后,接下来,我们就来看看在MySQL方案中如何实现?

如何区分一个数据到底是热数据还是冷数据?

在之前的分享中,提到过一个数据分区的概念,就是采用某个分区标识来对数据进行分区存储,并且这个分区标识是由主表中的一个或者多个字段组合而成共同来承担分区标识的作用。

< class="pgc-img">

例如可以从时间的纬度来进行定义,将3个月之前的工单看做是冷数据,将3个月之内的工单看做是热数据处理。当然也可以从其他维度来进行定义,例如可以根据工单状态来定义,将已经完成的工单看做冷数据,将进行中的工单作为热数据。

当然在实际操作过程中,可以根据自己的实际业务来进行操作。但是这里需要注意如下两点内容

  • 1、作为冷热数据标识的字段一定是不能在后续的业务中发生变化的。也就是说不能再对该数据进行写操作。
  • 2、在业务系统中不会同时对冷热数据进行处理。根据上面的分析,我们也知道,冷热数据同时处理的需求,在这里是无法得到满足的。

如何触发冷热数据的分离操作?

在确定使用何种方式来进行冷热数据处理之后,接下来的事情就是如何触发冷热数据分离操作?这里我们提供几种触发逻辑

  • 1、直接对业务代码进行修改,例如上面提到的,当我们在修改了工单状态之后,立即就去触发冷热数据处理逻辑,当工单的状态变成已完成之后,该数据立即进入到冷库中进行存储。
  • 2、如果不想对原来的业务代码进行修改,还可以采用监听数据库日志变化的方式来实现冷热数据的分离,因为这里我们采用的是MySQL数据库,可以监听其binlog日志。创建一个新的服务,用来监听数据库的Binlog的变化,一旦发现数据发生了变化,就会触发该服务进行数据的冷热分离操作。
< class="pgc-img">
  • 3、通过扫描MySQL数据库的方式来实现,也就是通过一个定时任务,或者是分布式任务调用平台,每隔一段时间就对数据库中的数据进行一次扫描,在扫描过程中将冷数据从热库中分离出来进行存储。
< class="pgc-img">

三种方式的优缺点

  • 第一种方式:优点是可以通过代码灵活的控制处理逻辑,可以保证数据的实时性,基本上操作完成之后就可以实现冷热分离,但是缺点就是没有办法按照时间维度去进行分离,还有就是需要去大面积的修改业务逻辑代码,工程量较大。
  • 第二种方式:有点可以实现与业务逻辑的解耦,基本上可以达到低延迟的要求,缺点与业务逻辑代码缺点类似,无法从时间维度来判断出冷热数据,还需要考虑的就是并发执行的问题,可能A线程对该数据修改之后,B线程还没来得及修改,就被落入到冷库中,实际上当C线程执行的时候,该数据还是一条热数据。
  • 第三种方式:优点是实现业务逻辑代码的解耦合操作,可以根据时间来对冷热数据分离,缺点是无法做到实时,因为执行操作都是由定时任务来完成的。

当然在实际开发过程中,可以根据具体的业务需求来选择对应的实现方式。

如何实际操作分离冷热数据?

< class="pgc-img">

如图所示,介绍了冷热数据分离的基本逻辑

  • 判断是否是冷热数据
  • 将需要分离的数据插入到冷库中
  • 从热库中查找出对应的数据进行剔除

从这个逻辑中来看,是非常简单的,但是在实际操作的时候,需要考虑如下的三个问题。

一致性:如何能够保证在修改多个数据库的时候,数据的一致性?

根据上面的逻辑,需要三步操作来完成数据的冷热分离,那么如何保证能够在任意一步出现问题之后,还能保证数据的最终一致性呢?

解决这个问题,需要保证每一步操作都是可重试并且是幂等的。具体可以包括如下的几步操作。

  • 1、在热库中给需要进行操作的数据添加一个迁移标识
  • 2、找到所有的带有迁移标识的数据,这一步是为了保证如果在迁移过程中出现中断或者是其他操作的时候能够区分出来哪些数据是处理了,那些数据是没有处理的。
  • 3、在冷库中保存一份数据,需要注意,要添加一个判断来保证幂等性。也就是假设当前数据已经在冷库中存在了,这个时候要保证后续同样的操作不会对当前数据进行修改。这样可以防止重复添加等问题,并且也可以保证从热库删除的时候数据仍然在热库中保存着,出现问题之后可以重复操作。
  • 4、确保数据正确之后,从热库中删除对应的数据

通过上面的几步操作就基本上可以保证数据的最终一致性问题。接下来就是要考虑数据量的问题。

数据量:在数据量较大的情况下,如何进行分批次处理?

前面我们提到需要迁移的数据量较大的情况,对于冷热分离触发逻辑来讲,前两种逻辑基本上不会出现大数据量的问题,因为前两种操作基本上是瞬时就需要对操作数据进行处理的。但如果采用了定时器的方式,那么就需要考虑到数据量的问题?

如果需要冷热分离的数据是每天进行的话,需要对每天的数据量进行估计,如果每天的数据量在可控的范围内,就不需要考虑分批次处理,如果需要处理的数据较大的时候就要考虑到分批次处理。

假设分批次处理每次处理1000条数据,可以通过如下的操作来完成。

  • 1、在热库中更新迁移标识,这个过程很简单只需要一个update语句就可以了。
  • 2、根据迁移标识找到需要更新的前1000条数据。
  • 3、将数据迁移到冷库中,这里需要注意的就是要考虑一致性的问题
  • 4、删除热库中的数据
  • 5、循环执行上述操作

当然上述的操作,不可能由一个线程来处理,所以就需要多线程并发处理,那么如何保证多线程并发下的线程安全性问题呢?

并发问题:如何保证保证并发的线程安全问题?

在定时器执行的场景中,如果是每天执行,并且每天的数据量较大的情况下,就需要使用多线程处理,假设每天处理的数据达到100W左右,如果当天处理不完就会影响到第二天的业务,这个时候并发执行操作的逻辑如何编写就需要我们来考虑了。

在多线程场景下进行冷热数据备份,需要考虑如下的一些问题。

  • 如何启动多线程操作?
  • 如何保证在一个线程操作的时候,其他线程不会影响当前线程操作的数据?
  • 进行线程加锁之后,锁的获取和释放机制如何设计?

对于线程的启动来讲,我们可以使用线程池化技术来解决,这样可以有效的控制并发数据,使得资源得到高效的使用。

如何保证线程安全性的问题就需要我们使用到锁机制了,因为涉及到多个线程多条数据的情况,所以说在整个的实现过程中,要考虑到锁的原子性、数据的重复性等问题。并且还要考虑到的就是在上面提到的数据的一致性等。

既然提到了加锁操作,就需要考虑到锁释放,锁续约等问题。

总结

总体来讲,在大数据量体系下实现冷热数据的分离所需要考虑到的问题还是非常多的,在操作的时候,可以结合自己的实际情况来选择合适的实现方案。

月3日,星巴克中国宣布,即日起调整“专星送”的服务收费方式:部分商品开始收取每件1元的打包费。同时配送费从每单9元下调至7元。

< class="pgc-img">

专星送是星巴克旗下的外卖服务。星巴克的此次调整,对于星享俱乐部会员通过官方APP/微信小程序下单,可享打包费每单2元封顶。也就是说,开收打包费对星享俱乐部会员外送下单价格没有影响。

< class="pgc-img">

据悉,星巴克售卖的手工调制饮品类、烘焙沙拉等食品类均需要收取每件1元的打包费,而包装食品类、瓶装饮料类、咖啡豆、挂耳咖啡、杯子等则无需另收打包费。如果非星享俱乐部会员通过官方渠道下单,外卖中包含2份以上的咖啡或食品,整体外卖费会高于此前的9元/单。据红星资本局,对星巴克官方渠道的每单两元封顶,可能有会员引流效果。

此次调整,星巴克还升级了外送包装,包括热饮专用的不易漏洒杯盖、外送专用的带封口贴的纸袋,并采用冷热分离的方式,分开进行打包配送。

专星送由星巴克和第三方平台合作,星巴克在全国拥有4000多名专属骑手。据统计,其订单的平均送达时间为17分钟,绝大多数订单可在20分钟内送达。

另据南都·湾财社,记者了解到,深圳的消费者如果需要使用刀叉等餐具,每份餐具需要额外支付0.5元,北京、上海、广州等地的消费者则无需额外付费。对此,星巴克方面解释称,这主要是依据《深圳市生活垃圾分类管理条例》的相关规定进行收取的。

< class="pgc-img">

深圳区域消费者如果需要餐具,需要额外付费 图片来源:南都·湾财社

而在第三方外卖平台,星巴克同样要开始收取1件1元的打包费,但是打包费不设封顶,也就是说,买的饮品杯数越多,打包费越高。

< class="pgc-img">

第三方外卖平台 图片来源:南都·湾财社

针对收费调整,星巴克中国官方客服告诉南都·湾财社记者,此次调整是综合评估了外送业务的成本结构、营运成本等因素,对配送费和打包服务费进行了细化调整。同一时间,记者致电星巴克多家门店了解到,在打包费调整之后,星巴克的打包袋子并未进行调整。

星巴克调整配送费打包费在社交平台上引起讨论,有消费者认为,“下调配送费,增加打包费,本质没有区别”“配送费可能减免,但是打包费可能一直不变”“之前经常免配送费,打包费是变相涨价”。

目前,消费者通过星巴克专星送购买商品达到71元可享免配送费的优惠。同时,根据多名消费者和门店店员反馈,此前,星巴克不定时有免配送费的优惠活动。

收取打包服务费星巴克并非首家,今年1月,盒马部分订单开始收取每单1元的包装费引发网友热议。目前,山姆会员店也收取包装费。

餐饮行业外卖收取打包费由来已久,一些餐饮品牌自营的外送平台也开始收取打包费。去年11月,肯德基也开始在江西九江试点收取打包费,在其官方外送平台宅急送点餐上,消费者在9元配送费的基础上,还需再支付2块钱的打包费。今年2月,肯德基宅急送外送费官方定价从9元下调为6元。与此同时,肯德基将酌情收取打包服务费。肯德基称,此举是为了更好地提升外送产品的服务体验,其将对外送打包袋进行保温升级,并提供专人打包服务。

此外,今年1月,霸王茶姬的打包费也曾引发争议,在霸王茶姬官方小程序和第三方外卖平台,购买霸王茶姬选择外送到家,均需要按照杯数收取相应的保温袋的包装费,购买2杯包装费为2块,3杯包装费为3块,以此类推,而如果选择到店自取,则不会产生相应的包装袋费用。在引发争议当天,霸王茶姬就已经修改了保温袋的购物规则,消费者可以自主选择是否用保温袋打包,不使用则不会产生打包费用。

此前上海市消保委曾呼吁规范外卖市场的收费行为,保护消费者的合法权益。同时,也提醒广大消费者在选择外卖服务时,要仔细阅读费用明细,避免因不透明的收费而遭受损失。

决定调整外卖服务费的星巴克,今年第一季度在中国市场收入出现下跌。

5月1日,星巴克披露2024财年第二财季Q2财报(即2024年1月1日至3月31日)。报告期内,星巴克营业收入为85.6亿美元,同比下降2%,不及分析师预期的91.3亿美元;净利润为7.7亿美元,同比下降15%;调整后每股收益为0.68美元,不及分析师预期的0.79美元。合并第一、第二财季来看,2024上半财年,星巴克的营收为179.9亿美元,同比增长3%;净利润18.0亿美元,同比增长2%。值得关注的是,星巴克在中国收入同比下跌了8%至7.06亿美元,季度内净增门店数118家,门店总数增至7093家。

Q2星巴克的同店销售额同比下降了4%,自2020年以来首次下滑。其中,美国门店销售额同比下降3%,中国门店销售额同比下降11%。在与投资者的电话会议上,星巴克将2024财年全年的全球收入增长预期从此前的7%至10%调整为较低的个位数增长。财报指出,Q2业绩反映了全球复杂的经营环境,包括消费者消费情绪疲软、通胀环境以及多重国际冲突。

尽管一再重申无意参与咖啡价格战,不过今年以来,星巴克中国通过直播间和团购渠道推出多重优惠,包括3杯咖啡49.9元,2杯39.9元、1杯19.9元等,这对比其咖啡单杯均价在37元以上明显要便宜不少。

来源:每日经济新闻综合自南都·湾财社(记者:詹丹晴 实习生 陈萌儿)、红星资本局(记者:程璐洋)、北京青年报、广州日报

承接上文:
https://www.toutiao.com/article/7118937267447710247/

冷热分离二期实现思路:冷数据存放到Hbase

冷热分离一期解决方案的不足

不得不说,冷热分离一期的解决方案确实能解决写操作慢和热数据慢的问题,但仍然存在诸多不足。

1)用户查询冷数据的速度依旧很慢,虽然查询冷数据的用户比例很低。

2)冷数据库偶尔会告警。

这两点不足体现在用户侧是什么样呢?那就是一旦客服在工单查询表中勾选“查询归档”checkBox,页面就会一直转圈,而后台冷数据库的IO就会飙升。

如果客服发现页面没反应,可能会多点几次“查询”按钮,那么有可能把后台服务器的请求线程占满,导致整个系统响应都很慢。

归档的数据库里面,工单表仍然有3000多万的工单数据,工单处理记录表仍然有数亿的数据。这个查询不可能不慢。一期要做冷热分离的时候,项目组只有1周的时间(实际用了10天),但是之后有空闲,就可以好好考虑一下归档数据库的设计了。

先说一下归档工单的查询场景。

< class="pgc-img">

归档工单的使用场景

对于归档的工单,与客服沟通后发现,基本只有以下几个查询动作。

1)根据客户的邮箱查询归档工单。

2)根据工单ID查出该工单所有的处理记录。而且这些操作一年做不了几次,慢一些完全没有问题。

这些操作转化成技术需求就是:需要找到一个数据库,它可以满足下面的要求。

1)可以存放上亿甚至数亿的数据。因为按照一年3000多万的工单来看,3年以后工单表的数据就上亿了,工单处理记录表的数据也会多出几亿。

2)支持简单的组合关键字查询,查询慢一些可以接受。

3)存放的数据不再需要变更。基于这个特性,就可以将历史工单的详情数据封装在一个文档中,类似于Key-Value,Key就是工单ID,Value就是工单详情数据。

最后,项目组决定使用Hbase来保存归档工单。

为什么Hbase适合这个场景?下面先简单介绍一下Hbase的原理。

Hbase原理介绍

1.Hbase的基本数据结构是什么样子的?

假设有这样一位大侠的数据(两个JSON对象)

< class="pgc-img">

这样的数据在Hbase中应该怎么存储?

这就要说说Hbase的数据结构“列簇存储”了。

Hbase 里 面 有 这 些 概 念 : Table 、 Row 、 Column 、 ColumnFamily 、ColumnQualifier、Cell、TimeStamp。

其中,Table、Row与关系型数据库中的表、行含义是一样的,较易理解。

假设对于上面的大侠数据已有一个Table,就是大侠的表。其中,郭靖是这个表中的一行数据(Row),黄蓉也是一行数据。

那么Column、ColumnFamily、ColumnQualifier、Cell、TimeStamp又分别是什么意思?

可以发现,大侠有3个一级属性:姓名、武功、关系。从上面的数据可以看到,武功这个一级属性,下面又有很多二级属性,比如掌法、内功、指法;关系这个一级属性,下面也有多种二级属性,比如丈夫、妻子。

那么,可以根据这些一级属性创建3个ColumnFamily:姓名、武功、关系。ColumnFamily一开始就要定义好,类似于关系型数据库里面的列,属于schema(纲要)的范畴。

每个ColumnFamily可以灵活增加ColumnQualifier,ColumnQualifier不需要在创建表的时候定义。比如武功的ColumnQualifier有掌法、内功、指法等,以后也可以添加。

接下来回到Hbase的列簇存储。为什么叫列簇存储?因为它们存到Hbase中的其实是表1-3和表1-4那样的数据。

< class="pgc-img">

表1-3 姓名列簇


< class="pgc-img">

表1-4 武功列簇

每一个RowKey、TimeStamp以及Key-Value值就是一个Cell。

Tips

虽然姓名和武功这两个ColumnFamily属于同一个表,但是它们物理上是

分开存储的。这也是Hbase的一张表可以存放上百亿数据的原因:Hbase同一

行的数据没有存放在一起。但也是因为这个特性,Hbase基本实现不了复杂

的查询,效率也不高。

2.Hbase的物理存储模型

Hbase一个表中的数据会根据RowKey的范围划分成多个Region。

每 个 RegionServer 是 一 个 服 务 器 节 点 , 会 包 含 多 个 Region 。 一 个RegionServer大概包含1000个Region,这个RegionServer会处理它下面所有Region的读写操作。

这里再讲一下它们各自的关系。

1)一个表会被水平切割成多个Region。

2)一个Region会包含多个Row,包含startkey和endkey之间所有连续的行。每个Region的大小默认会控制在1GB内。

3)一个Region会包含多个MemStore。

4)一个MemStore会存储一个ColumnFamily。

5)一个MemStore会把数据写入多个HFile。

6)一个RegionServer会服务多个Region。

接下来讨论一下它对于读和写请求的处理流程。

3.Hbase的写操作

这一部分直接讲解Hbase的写操作流程。

1)客户端访问ZooKeeper,读取元数据。

2)根据namespace、表名、RowKey找到数据对应的Region。

3)访问Region对应的RegionServer。

4)写入WAL(WriteAheadLog,也叫HLog)。每一个RegionServer都会维护一个WAL文件(也是基于Hadoop分布式文件系统HDFS)。所有的写操作都会先把变动加到WAL文件的末尾。WAL会保存所有未持久化的新数据。它可以用来做数据恢复。

5)写入MemStore。MemStore相当于一个写缓存。每个Region的每个列簇都有一个MemStore。数据在写入磁盘或持久化之前,会先保存在MemStore。

6)通知客户端写入完成。

Tips

MemStore的数据到达阈值时,数据会被持久化到HFile中。

4.Hbase的读操作

Hbase一次读操作的流程如下。

1)客户端访问ZooKeeper,读取元数据。

2)根据namespace、表名、RowKey找到数据对应的Region。

3)访问Region对应的RegionServer。

4)查找对应的Region。

5)查询MemStore。

6)找到BlockCache。每个RegionServer都有BlockCache,相当于一个读缓存。扫描器会先查询BlockCache。

7)如果没有找到所有的Cell(单元数据),则会到多个HFile中去查找。

Hbase的表结构设计

项 目 组 当 时 初 次 使 用 Hbase , 认 真 阅 读 了 Hbase 的 说 明 文 档 :http://Hbase.apache.org/book.html。

文档内容比较丰富,也有很多有趣的地方,比如有一处内容是关于ColumnFamily的数量的:Hbase不推荐具有两个以上ColumnFamily的设计。以下是官方文档中的相关说明。

Hbase currently does not do well with anything above two or three column families so keep the number of column families in your schema low.Currently, flushing is done on a per Region basis so if one column family is carrying the bulk of the data bringing on flushes, the adjacent families will also be flushed even though the amount of data they carry is small.When many column families exist the flushing interaction can make for a bunch of needless I/O(To be addressed by changing flushing to work on a per column family basis).In addition, compactions triggered at table/region level will happen per store too.

Try to make do with one column family if you can in your schemas.only introduce a second and third column family in the case where data access is usually column scoped; i.e.you query one column family or the other but usually not both at the one time.

这里简单解释一下。前面提过,每个Region有多个MemStore,每个MemStore 有 一 个 ColumnFamily 的 数 据 , 也 就 是 说 一 个 Region 有 多 个ColumnFamily的数据。MemStore的数据量到达一定的阈值以后,就会保存到HFile。MemStore->HFile这个动作被称为flushing。目前的flushing动作是Region级别的。也就是说,假设MemStore A保存ColumnFamily A的数据,里面的ColumnFamily A数据满了,那么就会触发一次flushing操作,这个MemStore所在的Region下面的所有MemStore都会flushing。但是MemStore B、MemStoreC的数据可能还很空,这种情况下就增加了很多不必要的I/O操作。

当然,Hbase里面还有很多注意事项,仅表结构设计就有很多内容,而且用到线上的业务系统比较难。不过,它还有关于实例的部分(45.SchemaDesign Case Studies)可以参考,能帮助用户快速上手。这部分文档包括以下几个方面。

? Log Data / Timeseries Data。

? Log Data / Timeseries on Steroids。

? Customer/Order。

? Tall/Wide/Middle Schema Design。

? List Data。

项目组从Hbase的说明文档中得出了以下设计要点。

1)Hbase的查询有两种,一种是根据RowKey直接获取记录,一种是以Scan方式扫描所有的Row。前面说过,系统有根据客户邮箱获取工单记录的需求,所以可以将邮箱名放到RowKey中,这样以后查询特定邮箱的工单时只需要扫描RowKey , 而 不 需 要 扫 描 列 的 值 , 速 度 将 大 大 加 快 。 所 以 RowKey 设 计 为[customeremail][ticketID]。

但是customeremail是不可控的,也可能很长,导致RowKey很长。前面也提过,Hbase是KeyValue存储,每个ColumnKey见表1-5。

< class="pgc-img">

表1-5 武功:掌法列键

如果RowKey很长,就会占用很多存储空间,所以也要控制RowKey的长度。

最终的RowKey是[MD5(customeremail)][ticketID],前面的邮箱名长度是16字节,后面的工单ID是固定长度。

而且使用这样的设计后,如果想要根据邮箱查找工单,就可以使用正则过滤器的rowFilter,通过类似于“abc@mail.com****”的过滤字符串找出abc@mail.com的所有工单。

2)ColumnFamily方面,项目组只会用一个“ColumnFamily:i”(Hbase推荐短列名,原因是省空间)。

3)ColumnKey方面,把这些字段都设计成i列簇下的Key,见表1-6。

< class="pgc-img">

表1-6 i列簇下的Key

同时,为了应对可能出现的根据最后处理人或者处理小组查找归档工单的需求,还给assignedUserID等以后可能搜索的字段增加了二级索引。

4)工单处理记录表的设计上,并没有单独为其增加Hbase的表,而是将每个工单下面的处理记录全部序列化成一组JSON数据,保存在一个ColumnKey中。

二期的代码

改造二期和一期的主要区别就是冷数据库使用了Hbase,主要的代码逻辑有一个变化,就是关于事务。

一期的批量逻辑如下所示。

1)取出300条工单。

2)通过单事务包围的BATCHSQL语句插入冷数据库。

3)通过一个单事务包围的BATCHSQL语句从热数据库中删除数据。

二期因为Hbase不支持类似的事务,所以批量逻辑如下。

1)取出50条工单,先处理第一个工单。

2)将当前工单的各个ColumnKey值插入Hbase。

3)通过一个单事务包围的SQL语句删除热数据库中该工单对应的数据。

4)循环执行第2)步和第3)步,依次处理完成所有50个工单。

加锁、多线程等其他相关的逻辑并没有变化,从MySQL这个冷数据库将数据迁移到Hbase的方案可以参考一期,这里就不再赘述了。

以上就是冷热分离二期的改造方案。二期花费了3周左右才上线,之后查询归档工单的性能好了很多,特别是单个归档工单的打开操作响应快了不少。

这个方案还解决了一个隐患,即MySQL这个冷数据库随着归档工单数据量的增加支撑不住的问题。

小结

这样,冷热分离这个方案就完成了。

冷热分离方案只是刚好适用于这个场景,它其实有很多不足。后来笔者又反思了一下,如果不是因为做一期方案的时候只有1周的时间,那么是不是还会使用冷热分离的方案?会不会有更好的方案?

这个方案有一些明显的不足,如果碰到下面的任何一个场景,这个方案就不适用了。

1)工单没有“归档”这一特点,经常需要修改。

2)所有的工单数据都需要支持复杂的查询,并且需要非常快的响应速度。

3)需要实时地对工单数据进行各种统计。笔者后来做其他项目的时候就碰到了上面列举的场景,那么,这些情况下,又该用什么方案来解决?请看下一场景。

本文给大家讲解的内容是冷热分离一期实现思路:冷数据存放到Hbase

  1. 下篇文章给大家讲解的内容是查询分离:业务场景:千万工单表如何实现快速查询
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持
如果您对此项目感兴趣,请在此留言,坐等企业找您(成功的创业者90%都是通过留言,留言只需5秒钟)
  • 知名招商项目汇聚平台

    汇聚海量知名、高诚信度品牌招商项目,随时为您提供招商信息

  • 事实和口碑胜于一切

    千万创业者通过这里找项目、迈出成功创业第一步;

  • 诚信的商机发布平台

    请你在加盟留言时,选择有实力、 加盟店多、成功案例多、合法资质、 证照齐全、诚信经营的品牌.

郑重承诺:本公司郑重承诺尊重你的隐私,并承诺为你保密!
随时 上班时间 下班时间
您可以根据下列意向选择快捷留言
  1. 加盟费多少
  2. 我们这里有加盟店吗?
  3. 我想了解一些加盟资料
  4. 我对这个项目感兴趣,尽快联系我


创业专题



热门创业项目

精品推荐

餐饮项目分类

联系我们

微信扫一扫
第一时间推送投资小回报快利润高的项目

合作伙伴

我们也在这里

关注微信关注微信

您身边的财富顾问...

扫一下
客户端客户端

iPhone/Android/iPad

去下载
关注微博关注微博

官方微博随时分享...

加关注
手机看hbdrt.cn手机看hbdrt.cn

随时随地找商机...

去看看

温馨提示

  • 1在找餐饮项目的过程中多对比同类项目。
  • 2了解项目时多打电话,进行实地考察。
  • 3投资有风险,请谨慎加盟。
  • 4本网站对投资者的风险概不承担。