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페타바이트의 데이터를 생성하며 이는 연간 약 4페타바이트에 해당합니다. Hadoop은 FlockDB라는 자체 오픈 소스 프로젝트와 함께 소셜 데이터 를 분석하고 데이터를 분석하는 데 사용됩니다. Twitter는 관련 콘텐츠를 제공하기 위해 수집한 모든 정보를 수집하고 사용합니다. Weil에 따르면 이 SlideShare는 Twitter가 소셜 그래프를 분석하는 방법에 대해 자세히 알아볼 수 있는 좋은 장소입니다. Twitter는 Facebook의 오픈 소스 NoSQL 데이터베이스인 Cassandra를 서비스로 사용하는 실험을 계속하고 있습니다.
지속성 계층이 많은 수의 클러스터로 성장함에 따라 MySQL은 처음부터 Twitter의 기본 데이터 저장소였습니다. Twitter는 처음부터 상당한 규모의 MySQL 배포를 가지고 있습니다. 수백만 개의 노드가 있는 수천 개의 MySQL 클러스터가 있으며 초당 쿼리가 제공됩니다.
Google Cloud는 문서 지향 데이터베이스인 Cloud Firestore와 데이터 스토리지 시스템인 Cloud Object Storage라는 두 가지 유형의 NoSQL 데이터베이스 서비스를 제공합니다. 사용이 간편하고 작은 문서에 최적화되어 있어 모바일 애플리케이션에 이상적입니다. 쉽게 확장되고 성능이 우수하며 Cloud Datastore 에서 사용하기 쉬운 데이터베이스를 문서화합니다.
NoSQL 기술은 매월 300만 명이 넘는 사용자에게 서비스를 제공하는 세계에서 가장 바쁜 항공사인 Ryanair의 모바일 앱을 지원합니다. 지난 8년 동안 Marriott는 예약 시스템을 운영하는 데 NoSQL을 사용해 380억 달러의 수익을 올렸습니다. 미국 1위 신문 발행인 The Chronicle of Higher Education에서 사용하는 Presto는 자체 콘텐츠 관리 시스템 외에도 NoSQL을 사용합니다.
PostgreSQL과 Cassandra는 Instagram의 백엔드 데이터베이스 시스템 중 두 가지입니다.
트위터는 어떤 종류의 데이터베이스를 사용합니까?
Twitter는 관계형 데이터베이스를 사용하여 트윗을 저장합니다. 이 데이터베이스는 일련의 테이블에 데이터를 저장하도록 설계되었으며 각 테이블에는 트윗의 특정 측면에 대한 정보가 포함되어 있습니다. 예를 들어 사용자 정보에 대한 테이블, 트윗 자체에 대한 테이블 및 사용자 간의 관계에 대한 테이블이 있습니다.
귀하의 요청이 특정 서버로 라우팅되도록 요청하는 것과 같은 일부 서비스에 대해 이 정보 중 일부가 필요할 수 있지만 필수 사항은 아닙니다. 요청을 라우팅하려는 경우 트윗의 타임스탬프를 알 필요가 없습니다.
그럼에도 불구하고 데이터는 스토리지에 남아 처리됩니다. 정보를 삭제하거나 익명화할 필요가 없습니다. 우리의 데이터는 정부에서 접근할 수 없지만 여전히 귀하에 대한 정보를 수집하는 데 사용될 수 있습니다.
이 정보의 저장 및 처리 결과로 일부 개인 정보 보호 문제가 존재합니다. 또한 정부가 처음부터 귀하의 움직임과 활동을 추적할 수 있습니다. 또한 정부가 귀하의 동의 없이 귀하의 개인 정보에 접근할 수 있도록 허용합니다.
우리는 귀하의 트윗 텍스트를 저장하지 않습니다. 이 계정의 이름과 타임스탬프만 보관됩니다. 우리는 귀하의 트윗 콘텐츠를 저장하지 않습니다.
귀하의 트윗에는 저희가 저장할 수 있는 데이터가 없습니다.
이미지를 업로드할 때 계정 이름과 타임스탬프만 저장합니다.
MySQL 사용의 이점
Twitter는 과거에 트윗을 저장하기 위해 MySQL을 사용했습니다. MySQL은 신뢰성과 일관된 특성으로 인해 많은 수의 요청을 처리할 수 있습니다. Facebook은 MySQL을 사용하여 모든 소셜 미디어 데이터 를 저장합니다.
Facebook은 Sql 또는 Nosql을 사용합니까?
데이터 모델링 유연성을 제공하고 FB가 시작될 때 MySQL이 유비쿼터스이기 때문에 FB 초기에는 SQL이 영구 데이터베이스로, memcache가 "룩어사이드" 캐시로 사용되었습니다.
Facebook 데이터베이스는 전체 고객의 약 23%를 차지하는 고객의 프로필을 저장합니다. Facebook의 인터넷 규모, 전 세계적으로 분산된 아키텍처를 뒷받침하는 기본 원칙은 다중 테넌트 SaaS를 포함하여 광범위한 비즈니스 크리티컬 엔터프라이즈 애플리케이션에 적용되며 Facebook의 데이터베이스 진화를 더 잘 이해함으로써 배울 수 있는 교훈이 있습니다. 인기 있는 오픈 소스 데이터베이스 Mystria 의 샤드 버전에 구축된 TAO NoSQL 그래프 API는 FB의 NoSQL API 중 하나입니다. TAO는 FB의 이전 1000개 수동 솔트 MySQL 마스터-슬레이브 데이터베이스를 수천 개의 샤드된 슬레이브로 분할했습니다. 결과적으로 애플리케이션은 더 이상 데이터베이스를 사용하여 교차 샤드 트랜잭션 및 교차 샤드 JOIN을 수행하지 않습니다. 따라서 이러한 유형의 장애 조치를 수행하면 최근 데이터가 손실됩니다. 모든 개체와 연결이 동일한 서버에 캐시되기 때문에 동일한 샤드에 무한정 저장할 수 있습니다.
데이터 배열의 정도는 대기 시간 데이터 액세스를 최대화하는 데 사용되는 중요한 최적화 기술로 결정되었습니다. 개발자 커뮤니티는 FB가 SQL 쿼리 API를 포기하도록 강요한 후 TAO의 사용자 지정 NoSQL API를 위해 SQL을 포기했습니다. 10년 전에 생성된 Google의 Spanner 데이터베이스는 FB의 TAO 데이터베이스의 일부로 생성되었습니다. 소셜 그래프와 달리 Spanner의 데이터 모델은 OLTP를 위한 전통적인 임의 액세스 워크로드에 가깝습니다. 2세대 분산 데이터베이스는 데이터베이스 계층의 일부로 대규모 확장성과 글로벌 데이터 배포를 기반으로 구축됩니다. Spanner는 샤드별 분산 합의를 사용하여 서비스 실패 시 각 샤드(각 인스턴스뿐만 아니라)의 가용성을 높게 유지합니다. 애플리케이션의 클러스터 구성이 변경되었음에도 불구하고 작동 상태를 유지합니다.
로컬 지역과 관련된 데이터는 테이블 수준 및 행 수준 지리적 분할과 같은 기능으로 인해 목록의 맨 위에 계속 순위가 매겨집니다. 분산 트랜잭션 관리자는 다중 샤드 트랜잭션에서 2단계 커밋 프로세스와 각 노드의 클럭 스큐를 관리하는 데 사용됩니다. FB에서 TAO를 비용 절감 수단으로 사용하여 샤딩된 MySQL에 대한 투자를 유지할 수 있었습니다. Google은 수평적 확장 기능, 원활한 지역 복제 기능, 인프라 장애 용이성을 갖춘 완전히 새로운 데이터베이스인 Spanner를 사용하여 다른 경로를 선택했습니다.
NoSQL 데이터베이스가 인기를 얻는 데에는 여러 가지 이유가 있습니다. 시스템은 대용량 데이터를 처리할 때 더 효율적인 데이터 저장에 대해 다른 접근 방식을 사용합니다.
NoSQL 데이터베이스는 Amazon, Netflix, Microsoft, Snapchat 및 Dropbox를 비롯한 여러 잘 알려진 기업에서 사용됩니다. NoSQL 데이터베이스를 선택한 것은 그들의 애플리케이션이 많은 데이터를 처리하기 때문에 그들이 내린 최고의 결정 중 하나였습니다.
결과적으로 NoSQL 데이터베이스는 기업이 데이터를 저장할 수 있는 방법에 있어 더 큰 유연성을 제공합니다. 결과적으로 더 나은 구성 및 데이터 액세스가 가능합니다. 또한 NoSQL 데이터베이스는 많은 양의 데이터를 처리하는 속도가 빠르다는 장점이 있습니다.
NoSQL 데이터베이스를 고려하는 것은 많은 양의 데이터를 저장해야 하는 비즈니스에 적합합니다. 데이터 처리에 대한 고유한 접근 방식의 결과로 데이터를 보다 빠르고 효율적으로 처리할 수 있습니다.
Twitter는 그래프 데이터베이스를 사용합니까?
Twitter는 관심사 그래프, 타임라인, 사용자 데이터와 같은 기본 데이터를 MySql에 보관합니다. Twitter에는 가장 큰 클러스터에서 초당 수백만 개의 쿼리를 제공하는 수백 개의 스키마와 수천 개의 노드가 있습니다. flockdb 서비스는 그래프 컴퓨팅에 사용됩니다.
그래프 데이터베이스 의 사용, COVID-19 데이터에 대한 적용 및 그래프에 대한 선택 언어에 대해 논의합니다. 채팅 후 여기에서 그들의 통찰력을 읽을 수 있습니다. 오늘 오후 1시(동부 표준시)에 2020년 그래프 데이터베이스의 상태라는 제목의 트윗 채팅에 참여하세요. 토론을 촉진하는 데 사용할 몇 가지 질문을 제시할 것입니다. 그래프 데이터베이스는 과거에 매우 유용한 것으로 나타났습니다. 데이터를 연결하고, 방대한 양의 데이터를 처리하고, 뛰어난 성능을 발휘하기 때문에 모든 분석적 사고를 가진 조직에 필요합니다. 데이터베이스가 아닌 여러 소스의 데이터를 연결하는 데 사용할 수 있다는 점에서 구별됩니다.
이제 사용자는 이러한 그래프를 사용하여 데이터 분석 중에 그래프 데이터베이스 에서 발견되는 특정 기능을 활용할 수 있습니다. 많은 기업이 다양한 정형 및 비정형 데이터 소스의 #분석을 필요로 하기 때문에 많은 신규 사용자가 #knowledgegraph를 첫 번째 사용 사례로 소개할 수 있습니다. #NLP와 그 출력을 다양한 소스와 결합할 때 #graphdb가 최고의 솔루션입니다. COVID-19는 GraphDB Q2에서 더 깊이 논의될 것입니다. # GraphDB는 2분기에 접촉 추적 솔루션으로 많이 사용될 수 있습니다. 결과적으로 정보가 검색 가능하고 액세스 가능하며 상호 운용 가능하고 재사용 가능하다는 점에서 데이터는 대규모 조직에 불공평합니다. 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(Massively Parallel Processing) 그래프 데이터베이스에서 대규모 컨텍스트와 의미를 제공합니다. 그래프 순회 쿼리는 복잡한 데이터 웨어하우징 및 분석의 요구 사항을 충족하도록 확장할 수 있으며 대규모 데이터 집계를 처리할 수도 있습니다. AnzoGraphDB를 무료로 사용해 보고 방대한 데이터 컬렉션을 더 잘 관리하는 데 도움이 되는지 확인하세요.
소셜 미디어 대기업이 그래프 데이터베이스를 사용하여 플랫폼을 개선하는 방법
데이터베이스 관리 시스템인 MySQL은 원래 Twitter 데이터를 저장하는 데 사용되었습니다. 작은 데이터베이스 인스턴스에서 큰 데이터베이스 인스턴스로 이동한 다음 하나의 큰 데이터베이스 인스턴스에서 다른 데이터베이스 인스턴스로 이동했습니다. Twitter의 데이터베이스는 모든 사용자 정보를 저장하는 데 사용되어 가장 강력한 소셜 미디어 회사 중 하나가 되었습니다. 회사는 사용자 행동을 분석하고 진행 상황을 추적하여 플랫폼을 개선할 수 있었습니다. 인스타그램 검색 엔진은 초기에 페이스북이 구축한 소셜 그래프 인식 검색 엔진인 엘라스틱서치(Elasticsearch)에 의해 구동되었지만 결국 유니콘으로 대체되었습니다. 그래프 데이터베이스를 사용하여 사용자가 상호 작용하는 방식을 추적하는 것 외에도 Instagram은 이를 사용하여 사용자가 어떻게 관련되어 있는지 추적합니다. Instagram은 소셜 미디어 데이터를 분석하여 사용자 경험을 개선하고 관련성 높은 콘텐츠를 제공할 수 있습니다. 그래프 데이터베이스 및 분석은 Facebook, Instagram 및 Twitter에서 사용자가 서로 상호 작용하는 방식을 더 잘 이해하고 더 나은 플랫폼을 구축하는 데 사용됩니다.