阿里云实时推荐系统数据库设计.pdfVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
阿里云实时推荐系统数据库设计

阿里云实时推荐系统数据库设 计 digoal 业务背景 • ToB的用户推荐系统 • 业务数据包括USERID,APPID,TAGs 。 – 根据APPID+TAG组合,搜索复合条件的USERID – 查询单个用户的TAG • 数据总量约10亿 • 单个APPID用户数设计量级1亿 • TAG设计量级1万 • 规模:10万亿user_tags 贴标签 - 业务指标 • 分钟级延迟 – 写入标签数据 – 删除用户标签 – 更新用户标签 圈人 - 业务指标 • 并发指标 – 约200~300个ToB用户根据对应的APPID,根据 TAG组合筛选需要的用户群体。 • 查询需求: 按TAG组合 – 包含,不包含,或,与 – and, or, not • 响应时间指标 – 毫秒级 开脑洞 • 表结构设计 – appid, userid, tag1, tag2, , tag10000 • 查询写法 – select appid,userid from tbl where tag1 and tag2 and ... or (not tagn) or (tagx and tagxx or tagxxx) • 问题 – 全字段索引? – 超宽表? – 存储空间? – 插入效率、查询效率? 用户目前的方案 • 目前没有产品可以支撑1万列的宽表 • 拆成N张表,通过PK关联 • 目前规模1亿,使用了8 台主机 (ADS ) • TAG更新延迟1天 • 查询响应 - 分钟级 方案1 • 数据结构 – APPID, USERID, TAG[]数组 – 单个数组最大长度1GB(约支持2.6亿个TAG(int4)) • 按APPID分区,随机分片 • query语法 – 包含array2指定的所有TAG • 数组1包含数组2的所有元素 • array1 @ array2 • 支持索引检索 – 包含array2指定的TAG之一 • 数组1与数组2有重叠元素 • array1 array2 • 支持索引检索 – 不包含array2指定的所有tag • 数组1与数组2没有重叠元素 • not array1 array2 • 不支持索引检索 方案2 • 数据结构 – APPID, USERID, TAG 比特流 – 单个BIT字段最大支持1GB长度BIT流 (支持85亿个TAG ) – 每个BIT代表一个TAG • 按APPID分区,随机分片 • query语法 – 都不支持索引 – 包含bit2指定的所有TAG(需要包含的TAG对应的BIT设置为1,其他为0) • bitand(tag_ bit,bit2) = bit2 – 包含bit2指定的TAG之一(需要包含的TAG对应的BIT设置为1,其他为0) • bitand(tag_ bit,bit2) 0 – 不包含bit2指定的所有tag (需要包含的TAG对应的BIT设置为1,其他为0) • bitand(tag_ bit,bit2) = zerobit(10000) -- 0000...0000000

文档评论(0)

wujianz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档