如果我正在设计一个应该搜索标签/列的应用程序,我将如何在 Bigtable 中设计一个行键?
Posted
技术标签:
【中文标题】如果我正在设计一个应该搜索标签/列的应用程序,我将如何在 Bigtable 中设计一个行键?【英文标题】:How would I design a row-key in Bigtable if I was designing an application that should search for tags/columns? 【发布时间】:2020-03-26 00:57:45 【问题描述】:我正在尝试设计一个类似 Netflix 搜索的系统,但我很难理解如何设计一个最佳行键,当用户按列执行搜索时,该行键将最小化总表扫描节目名称或标签。
假设 BigTable 中的架构将包含如下列:showName、season、episode、episodeName、tags
我如何设计我的行键,这样如果用户搜索特定列,它会避免全表扫描?还是我需要更改我的数据库设计?
或者像 Netflix 这样的系统是否使用不同的机制以更优化的方式对其内容进行搜索?
【问题讨论】:
嗨!你能告诉我更多关于标签的含义吗?此外,从写作来看,您似乎希望能够按季节或剧集进行搜索。喜欢所有系列的第一集吗? 【参考方案1】:我会先去两张桌子:
-
带有键的剧集表:showName#season#episode 索引如何查找剧集。
还有一个标签表,用于搜索带有简单键的标签:标签指向情节表中行的键。
例如,带有 Terror 和 Drama 标签的剧集或系列会在标签表中出现两次,首先在 Drama 下,然后在 Terror 下。
【讨论】:
以上是关于如果我正在设计一个应该搜索标签/列的应用程序,我将如何在 Bigtable 中设计一个行键?的主要内容,如果未能解决你的问题,请参考以下文章