
# 通过FastLoad极速导入实现广告投放业务RTA
#### 应用场景
广告投放是企业宣传营销不可或缺的一部分。尤其是在新媒体发展白热化的当下，不仅广告渠道多样化，投放模式也更细节化和个性化。
随着客户广告投放产出比意识的加强，以短视频平台为例，在投放目标选择上，广告主通常需要通过配置年龄、性别、学历等规则，才能将广告投放给满足标签的受众。广告投放中这一灵活性不足的限制，常常会让广告主难以抉择，导致投放效果不佳。广告主企业往往每年需花费数亿甚至数十亿广告费，却依然难以准确触达目标用户，造成大量资金浪费。那该如何解决"让广告主对每一条广告请求，有投递或者拒绝的自主权"这一问题，广告RTA应运而生！
RTA（Realtime API），是一种用于满足广告主实时、个性化的投放需求的技术手段。
#### 业务挑战
广告主的RTA系统，是从核心的画像数据库读取数据并进行投放决策的，数据越新，投放效果越好。因此，大数据平台生成的最新数据，需要及时写入画像数据库。综合来看，广告RTA业务面临高并发、超低时延、超大数据量等实际特性需求。因此，对核心画像数据库有如下诉求：
- **海量数据快速导入，确保决策精准性**
  需要定期将成百GB甚至数TB全量画像数据导入画像数据库；全量数据导入越快，模型越精准，广告投放效果越好。
  
- **承载高并发访问**
  RTA系统要承接大量的实时竞价请求。以电商、金融客户的RTA系统为例，日常数据库QPS在几十万到数百万之间。
  
- **保持稳定的低时延**
  媒体侧要求广告主在40-100ms内返回决策结果，数据库需要在个位数毫秒内执行完请求。
  
- **降低业务成本**
  为了追求极致的性能体验，RTA业务通常使用开源自建Redis，然而TB级别数据存储成本非常昂贵，成本也是广告主选型的重要考虑因素。
  
在广告RTA中，通常选用以下数据库作为画像数据库：
- MySQL：难以满足数十万至百万QPS并发和低时延的要求。
- MongoDB/Hbase：可以存储TB级数据，成本便宜，但无法满足稳定低时延诉求，超时率高，容易导致停投，影响商业利益。
- 内存数据库：能提供高并发、低时延极致性能，如开源自建Redis，是业界选用比较多的方案。但存在着稳定性差，数据丢失等风险。对于TB级用户画像数据，存在导入速度慢和成本高的痛点。
而云数据库GeminiDB Redis接口完全具备稳定低时延、高性价比、FastLoad离线数据极速导入等核心能力。
#### 方案总览
云数据库GeminiDB Redis接口在广告RTA场景上，不仅解决了开源自建Redis存储成本高、离线数据导入慢等瓶颈问题，还具备稳定低时延、存储成本低、FastLoad极速导入三大核心能力，拥有丰富的线上广告、推荐类业务的实践案例。
#### 方案优势
- **FastLoad** **极速数据导入，效率提升5-10倍**
  传统数据库只能通过标准协议逐条写入数据，先经过计算层复杂结算，再写入存储层。因此，大数据平台定期导入的数百GB乃至数TB的画像数据，通常需要数小时或者数天，且对在线业务影响比较大。
  GeminiDB Redis提供的FastLoad企业级特性，依托RTA业务场景大数据平台的高并发处理能力和自身存储引擎的数据编排能力，将海量数据通过专属高速持久化通道直接传入存储引擎，数据导入速度提升5-10倍，并降低对在线业务的影响。
  
  

- **提供百万级并发和亚毫秒级延迟，无惧业务洪峰**
  云数据库GeminiDB Redis采用存储计算分离架构，通过分布式高性能存储池实现三副本、强一致的数据存储，所有节点高效读/写访问，支持算力水平和垂直扩展，能够轻松应对业务规模和数据量的爆炸式增长。
  通过采用多线程架构和高性能存储池，配合内存数据结构和访问算法的深度优化，GeminiDB Redis能够实现亚毫秒级的数据请求响应。这种超低时延的性能，对需要实时数据处理和分析的应用场景，如在线游戏、金融科技、广告系统和实时推荐系统，提供了强大的数据支持。因此，GeminiDB Redis成为处理大规模实时交互和高频交易等场景的理想选择。
  根据现网的案例经验，在**百万+QPS** 流量下，GeminiDB可稳定保持**平均时延1ms，p99时延2ms**。
  
  
- **高效数据压缩存储，效率与成本并行**
  GeminiDB Redis使用"逻辑数据+块数据"双重压缩机制，在不影响性能的前提下，大幅度降低数据的存储占用。同时，采用存储计算分离架构，将算力和数据存储解耦，支持独立弹性扩展。可以使企业以更低的成本存储更多的数据，极大地优化资源利用效率，降低整体的使用成本。
  根据现网案例经验，GeminiDB Redis的数据压缩比通常为4:1，即实际12TB数据，在GeminiDB Redis中仅占用3TB左右的存储空间。
  
  
