Twitter 如何使用 Apache Cassandra 为其社交媒体平台提供动力
已发表: 2022-11-17Twitter 是一个社交网络平台,允许用户发送和阅读称为“推文”的短消息。 它自 2006 年问世以来一直是最受欢迎的社交媒体平台之一。 虽然 Twitter 确实在其基础设施的某些部分使用了一些关系数据库管理系统 (RDBMS),但它主要使用名为 Apache Cassandra 的 NoSQL 数据库。 Cassandra 旨在以高可用性和高性能处理大量数据。 Twitter 使用 Cassandra 有几个原因。 首先,它的可扩展性很强。 随着用户群的增长,Twitter 可以轻松添加更多 Cassandra 节点。 其次,Cassandra 是高可用的。 即使一个 Cassandra 节点出现故障,其他节点也可以弥补这一不足。 最后,Cassandra 速度很快。 这对于用户期望实时更新的社交媒体平台很重要。 因此,虽然 Twitter 确实使用了一些关系数据库,但它的主要数据库是 NoSQL。 这使 Twitter 能够快速扩展并为其用户提供快速、可靠的体验。
Twitter 产品开发总监 Kevin Weil 在今年早些时候发布的一段视频中解释了该公司如何使用 NoSQL。 每天,Twitter 用户产生大约 12 PB 的数据,相当于每年大约 4 PB。 Hadoop 连同它自己的开源项目 FlockDB,用于分析社交数据和分析数据。 Twitter 收集并使用其收集的所有信息以提供相关内容。 根据 Weil 的说法,此 SlideShare 是了解更多有关 Twitter 如何分析社交图谱的好地方。 Twitter 仍在尝试使用 Facebook 的开源 NoSQL 数据库 Cassandra 作为一项服务。
MySQL 从一开始就是 Twitter 的主要数据存储,因为持久层增长到大量的集群。 Twitter 从一开始就部署了相当大的 MySQL。 有数千个 MySQL 集群,其中有数百万个节点,每秒提供查询服务。
Google Cloud 提供两种类型的 NoSQL 数据库服务:面向文档的数据库 Cloud Firestore 和数据存储系统 Cloud Object Storage。 它易于使用并针对小型文档进行了优化,使其成为移动应用程序的理想选择。 可轻松缩放、性能良好且易于在Cloud Datastore中使用的文档数据库。
NoSQL 技术为世界上最繁忙的航空公司 Ryanair 的移动应用程序提供支持,该航空公司每月为超过 300 万用户提供服务。 在过去八年中,万豪一直使用 NoSQL 来运行其预订系统,该系统产生了 380 亿美元的收入。 除了专有的内容管理系统外,美国第一大报纸出版商 The Chronicle of Higher Education 使用的 Presto 还使用了 NoSQL。
PostgreSQL 和 Cassandra 是 Instagram 的两个后端数据库系统。
Twitter 使用什么样的数据库?
Twitter 使用关系数据库来存储其推文。 该数据库旨在将数据存储在一系列表格中,每个表格都包含有关推文特定方面的信息。 例如,用户信息表、推文本身表和用户之间关系表。
我们的某些服务可能需要某些此类信息,例如请求将您的请求路由到特定服务器,但这不是必需的。 如果你想路由你的请求,你不需要知道你的推文的时间戳。
尽管如此,数据仍保留在存储中并进行处理。 无需删除或匿名化信息。 政府无法访问我们的数据,但它仍可用于收集有关您的信息。
由于此信息的存储和处理,存在一些隐私问题。 它还允许政府首先跟踪您的行动和活动。 此外,它允许政府在未经您同意的情况下访问您的个人信息。
我们不会存储您的推文文本。 此帐户的名称和时间戳是我们唯一保留的内容。 我们不存储您的推文内容。
您的推文不包含我们可以存储在其中的任何数据。
我们只存储上传图片时的账户名和时间戳。
使用 Mysql 的好处
Twitter 过去曾使用 MySQL 来存储推文。 由于其可靠性和一致性,MySQL 可以处理大量请求。 Facebook 使用 MySQL 来存储其所有社交媒体数据。
Facebook 使用 Sql 还是 Nosql?
因为它提供了数据建模的灵活性,而且在 FB 刚起步的时候 MySQL 无处不在,所以在 FB 的早期,SQL 被用作持久化数据库,memcache 被用作“lookaside”缓存。
Facebook 数据库存储其客户的资料,这些客户约占总客户的 23%。 支撑 Facebook 互联网规模、全球分布式架构的基本原则适用于广泛的业务关键型企业应用程序,包括多租户 SaaS,并且可以从更好地了解 Facebook 的数据库演变中吸取教训。 TAO NoSQL Graph API 建立在流行的开源数据库 Mystria的分片版本之上,是 FB 的 NoSQL API 之一。 TAO 将 FB 较旧的 1000 个手动加盐的 MySQL 主从数据库分区为数千个分片从属。 因此,应用程序不再使用数据库来执行跨分片事务和跨分片 JOIN。 因此,如果执行这种类型的故障转移,最近的数据将会丢失。 因为所有对象和关联都缓存在相同的服务器上,所以它们可以无限期地存储在同一个分片中。
数据配置的程度被确定为用于最大化延迟数据访问的重要优化技术。 在 FB 迫使他们放弃 SQL 查询 API 后,开发人员社区放弃了 SQL,转而使用 TAO 的自定义 NoSQL API。 十多年前创建的 Google 的 Spanner 数据库是作为 FB 的 TAO 数据库的一部分创建的。 与社交图相反,Spanner 的数据模型更像是 OLTP 的传统随机访问工作负载。 第二代分布式数据库建立在大规模可伸缩性和全球数据分布的基础上,作为数据库层的一部分。 Spanner 使用每个分片的分布式共识来确保每个分片(而不仅仅是每个实例)在服务失败时保持高可用性。 尽管应用程序的集群配置已更改,但它仍然可以运行。
由于表级和行级地理分区等特性,与本地区域相关的数据将继续排在列表的顶部。 在多分片事务中使用分布式事务管理器来管理 2-Phase Commit 过程,以及每个节点中的时钟偏差。 我们使用 TAO 作为 FB 的成本削减措施,使我们能够保留对分片 MySQL 的投资。 谷歌选择了一条不同的道路,Spanner 是一个全新的数据库,具有水平扩展能力、无缝地理复制能力和易于基础设施故障的能力。
NoSQL 数据库流行的原因有很多。 该系统使用不同的数据存储方法,在处理大量数据时效率更高。
许多知名企业都使用 NoSQL 数据库,包括亚马逊、Netflix、微软、Snapchat 和 Dropbox。 选择 NoSQL 数据库是他们做出的最佳决定之一,因为他们的应用程序处理大量数据。
因此,NoSQL 数据库为公司存储数据的方式提供了更大的灵活性。 因此,有更好的组织和数据访问。 此外,NoSQL 数据库在处理大量数据方面具有更快的优势。
对于需要存储大量数据的企业来说,考虑 NoSQL 数据库非常有意义。 由于他们独特的数据处理方法,他们能够以更高的速度和更有效的方式处理数据。
推特是否使用图数据库
Twitter 在 MySql 中保存主要数据,例如兴趣图、时间线和用户数据。 Twitter 拥有数百个模式和数千个节点,在其最大的集群中每秒为数百万次查询提供服务。 图计算中使用了 flockdb 服务。
讨论了图形数据库的使用、它在 COVID-19 数据中的应用以及图形的选择语言。 聊天结束后,您可以在此处阅读他们的见解。 参加我们今天美国东部时间下午 1:00 的推文聊天,标题为“2020 年图形数据库的状态”。我们将提出几个问题,以促进讨论。 图形数据库在过去已被证明非常有用。 由于它能够连接数据、处理大量数据并表现出色,因此所有具有分析意识的组织都需要它。 它们的区别在于它们可用于连接来自多个源而不是数据库的数据。
用户现在可以使用这些图形从数据分析期间在图形数据库中找到的特定功能中获益。 许多新用户可能会作为第一个用例被引入#knowledgegraph,因为许多公司需要来自各种结构化和非结构化数据源的#analytics。 当谈到#NLP 并将其输出与各种来源相结合时,#graphdb 是最佳解决方案。 COVID-19 将在 GraphDB Q2 中进行更深入的讨论。 # GraphDB 可能会在第二季度作为接触者追踪解决方案得到大量使用。 因此,数据对于大型组织来说是不公平的,因为信息是可查找、可访问、可互操作和可重用的。 RDF* 是一个属性图。
毫无疑问,存在混乱。 联邦现在是一个有趣的话题。 此数据必须被摄取到 #graphdbs 文件中。 如果您正确建模,则不一定需要使用 RDF*。 使用图形数据科学来连接和关联不同的数据集是一种很好的方法。 如今,RDF* 和 LPG 之间没有显着差异。 启用 RDF 的供应商通常支持标记的属性,从而允许图形算法和其他分析功能对以前的 RDF 完全不可见。
我应该在 PC 和移动应用程序之间使用 rdf 还是 sparcl? 事实上,从 RDF 生成属性并不是火箭科学,但 ML 可能会从 #GraphDB @stevesarfield 图 DBMS 中的属性生成三元组。 当您查看本体时,您正在对它进行建模,它会跟着您上床睡觉。 此外,我们的编辑已经开始与 GraphDB 的市场进行交互。 我们的目标是汇总一份全面的清单,列出可供消费者使用的最佳产品。 通过组合结构化和非结构化数据,可以使用 GraphDB 创建知识图谱,从而将其用作分析工具。 许多用户会发现这是他们未来图数据库之旅的开始。
很长一段时间以来,FOSS 都是开源项目的首选来源,但它可能会在未来再次脱颖而出。 #GraphDB 可能是组织#IoT 生态系统中所有不同组件的最佳方式,因为它们在组织和生态系统中已经成熟。 信用卡公司使用 GraphDB 来检测可疑的活动模式。 当您需要将不完美的模式与其他不完美的来源结合起来时,使用#GraphDB 可能是一个不错的选择。 保持联系并保持健康。 Cambridge Semantics 的 GOLAP 数据库解决方案 AnzoGraphDB 在内存中大规模并行处理 (MPP) 图形数据库中提供大规模的上下文和意义。 图遍历查询可以扩展以满足复杂数据仓库和分析的需求,它还可以处理大量数据聚合。 免费试用 AnzoGraphDB,看看它是否可以帮助您更好地管理大量数据。
社交媒体巨头如何使用图形数据库来改进他们的平台
MySQL 是一种数据库管理系统,最初用于存储 Twitter 数据。 我们从一个小型数据库实例转移到一个大型数据库实例,然后从一个大型数据库实例转移到另一个。 推特的数据库用于存储所有用户信息,使其成为最强大的社交媒体公司之一。 该公司能够通过分析用户行为并跟踪他们的进度来改进其平台。 Instagram 搜索引擎最初由 Elasticsearch 提供支持,这是一个由 Facebook 构建的社交图感知搜索引擎,但最终被 Unicorn 取代。 除了使用图形数据库来跟踪用户的交互方式外,Instagram 还使用它来跟踪用户之间的关联方式。 Instagram 可以通过分析社交媒体数据来改善其用户体验并提供更多相关内容。 Facebook、Instagram 和 Twitter 使用图形数据库和分析来更好地了解用户如何相互交互并构建更好的平台。