Instagram용 SQL 및 NoSQL 데이터베이스 사용의 이점

게시 됨: 2022-11-21

인스타그램은 사진을 찍고 필터를 적용해 페이스북, 트위터, 텀블러 등 다양한 SNS에 공유할 수 있는 사진 공유 및 SNS 서비스다. Instagram은 사용자가 생성한 대량의 데이터를 저장하고 관리하기 위해 SQL 및 NoSQL 데이터베이스를 모두 사용합니다. SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 조작하고 검색하는 데 사용되는 표준 데이터베이스 쿼리 언어입니다. 반면에 NoSQL(Not Only SQL)은 관계형 데이터베이스의 기존 테이블 기반 스키마를 따르지 않는 비 관계형 데이터베이스 입니다. Instagram은 SQL 데이터베이스를 사용하여 사용자 계정, 사진 및 댓글과 같은 정보를 저장합니다. 이 정보는 검색되어 구조화된 형식으로 사용자에게 표시됩니다. 그러나 사용자가 생성하는 많은 양의 데이터로 인해 Instagram은 이 데이터를 저장하기 위해 NoSQL 데이터베이스도 사용합니다. NoSQL 데이터베이스는 SQL 데이터베이스보다 유연하고 확장 가능하며 대량의 데이터를 처리하는 데 더 적합합니다. Instagram은 SQL 및 NoSQL 데이터베이스를 모두 사용하여 사용자가 생성한 대량의 데이터를 저장하고 관리합니다. SQL 데이터베이스는 사용자 계정 및 댓글과 같은 정형 데이터를 저장하는 데 사용되는 반면 NoSQL 데이터베이스는 사진 및 비디오와 같은 비정형 데이터를 저장하는 데 사용됩니다. 두 가지 유형의 데이터베이스를 모두 사용함으로써 Instagram은 사용자에게 풍부하고 매력적인 경험을 제공할 수 있습니다.

PostgreSQL은 Instagram의 데이터가 저장되는 데이터베이스입니다. 최근 기술 부문에서 세계 1위를 차지하며 최고의 영예를 안았다. Instagram은 대부분의 소셜 미디어 플랫폼 과 마찬가지로 Cassandra라는 분산 키-값 저장소를 사용합니다. 이 비디오에서는 Instagram이 프로덕션에서 Cassandra를 사용하는 방법을 살펴보겠습니다. 문서 기반 NoSQL 데이터베이스는 무료로 사용할 수 있으며 배포 및 RESTful 가능성이 있습니다. 장애가 발생하면 40초 이내에 검색할 수 있지만 MongoDB는 최대 40분이 걸릴 수 있습니다. Redis를 사용하면 인스타그램의 작성자 식별 문제에 대한 해결책은 영구 메모리를 갖는 것입니다. 따라서 서버를 다시 시작한 후 예열할 필요가 없습니다.

PostgreSQL과 Cassandra는 Instagram에서 사용하는 기본 데이터베이스 입니다. PostgreSQL과 Cassandra는 모두 데이터를 저장하는 데 전역적으로 사용할 수 있는 성숙한 복제 프레임워크를 사용합니다. 전 세계의 데이터는 이러한 서버에 저장된 데이터에 깔끔하게 표시됩니다.

Twitter는 MySQL을 기본 데이터 저장소 로 사용하여 설립되었으며 지속성 계층은 사이트 전체에서 많은 수의 클러스터로 성장했습니다. Twitter의 MySQL 초기 배치는 가장 광범위한 것 중 하나였습니다. 초당 수백만 건의 쿼리를 처리하는 수천 개의 노드와 MySQL 클러스터가 있습니다.

Facebook이 처음 출시되었을 때 이 소셜 그래프는 처음에 MySQL을 영구 데이터베이스 로 실행하고 memcache를 "lookaside" 캐시로 실행하는 PHP 애플리케이션으로 구축되었습니다. SQL 및 MySQL의 데이터 모델링 기능을 통해 SQL 및 MySQL을 사용하여 이 소셜 그래프를 구축할 수 있었습니다.

Instagram은 어떤 데이터 구조를 사용합니까?

이미지 제공 – medium.com

Instagram은 방향성 비순환 그래프를 기반으로 하는 데이터 구조를 사용합니다. 이 데이터 구조는 데이터를 저장하고 검색하는 효율적인 방법을 허용합니다.

그럼에도 불구하고 알고리즘은 그다지 정확하지 않았고 팔로워가 적은 계정보다 팔로워가 많은 계정의 게시물을 자주 표시했습니다. Instagram은 2016년 8월에 게시물이 표시되는 순서를 결정하기 위해 좋아요, 댓글 및 공유와 같은 참여 메트릭을 사용하여 경험을 개선하기 위해 새로운 알고리즘을 구현했습니다.
관계 알고리즘은 관계에 대한 방정식입니다.
특정 계정에 대한 친숙도를 기반으로 사용자는 관계 알고리즘에서 해당 계정의 콘텐츠와 상호 작용할 가능성이 더 큽니다. 따라서 더 자주 상호작용한 계정의 게시물이 먼저 표시되고 그렇지 않은 계정의 게시물이 그 다음에 표시됩니다.
관심 알고리즘은 관심을 결정하는 메커니즘입니다.
관심 알고리즘의 결과로 사용자는 자신과 관련된 콘텐츠에 참여할 가능성이 높아집니다. 결과적으로 참여도가 가장 높은 계정의 게시물이 더 자주 표시됩니다.
다음은 타임라인 알고리즘에 대한 간략한 설명입니다.
적시성 알고리즘에 따르면 사용자는 현재 인기 있는 콘텐츠에 참여할 가능성이 더 높습니다. 결과적으로 최근 계정의 게시물이 표시될 가능성이 높아집니다.


소셜 미디어에 Sql 또는 Nosql을 사용해야 합니까?

소셜 네트워크 앱을 개발할 때 NoSQL을 사용하는 것이 좋습니다. MySQL을 사용하여 소셜 네트워크를 구축하는 경우 처음에는 더 쉬울 수 있지만 앱이 성장하고 사용자가 더 일반화되면 MySQL 클러스터를 관리하고 마스터 슬레이브를 구성하는 방법을 생각해야 합니다. 에.

NoSQL 대 SQL 논쟁이 계속되고 있습니다. SQL 데이터베이스는 역사적으로 시장을 지배해 왔습니다. 논의 없이 최고의 NoSQL 데이터베이스를 선택하는 것은 불가능합니다. 클라우드 컴퓨팅은 향후 4년 이내에 모든 데이터베이스의 100%를 대체할 것입니다. NoSQL의 기본 원칙은 유연성과 확장성입니다. 속도와 스토리지로 인해 NoSQL은 문서 시스템 과 같은 데이터베이스 를 제공합니다. 2020년에는 MongoDB가 가장 인기 있는 NoSQL 데이터베이스가 될 것입니다.

Redis는 다운로드 측면에서 두 번째로 인기 있는 플랫폼입니다. 이 컴퓨터는 메모리 및 저장된 메모리 기능으로 인해 속도가 매우 빠릅니다. NoSQL 데이터베이스는 지속적으로 변경되며 데이터는 비관계형 방식으로 저장되어야 합니다. 데이터 무결성이 100% 정확하지 않을 때가 있지만 그럴 것입니다. 앱의 프로토타입을 신속하게 만들어 고객에게 특정 시간에 가장 잘 작동하는 것을 제시할 수 있습니다. 아키텍처에 따라 동적 NoSQL 아키텍처를 따라가면서 데이터베이스 스키마를 늘려야 합니다. "확장성"이라는 용어는 데이터가 마천루처럼 쌓이는 것이 아니라 서버 측면에 분산된다는 사실을 나타냅니다.

이 경우 NoSQL 데이터베이스는 관계형 데이터베이스보다 확실히 유리합니다. 지원 및 지원은 어떤 형태입니까? SQL 서버는 많은 데이터베이스가 있는 단일 컴퓨터입니다. 데이터 무결성은 모든 사용자가 동일한 컴퓨터에 액세스할 때 ACID 원칙에서 알 수 있듯이 항상 일관되어야 합니다. NoSQL 데이터베이스의 데이터는 시간이 지남에 따라 다시 나타날 수 있습니다. 몇 초가 걸릴 수 있지만 결국 그렇게 될 것입니다. NoSQL은 현대 시대에 앱을 보기 좋게 만드는 열쇠입니다. 이를 통해 클라우드 기반 서비스로 사용하고 요구 사항에 따라 확장할 수 있습니다. 앱의 백엔드를 구조화하려면 데이터 무결성을 보장하기 위해 SQL 데이터베이스에 저장해야 하는 높은 트랜잭션 데이터와 NoSQL 데이터베이스에 저장해야 하는 비구조화 데이터의 두 가지 유형으로 나눕니다.

상위 SNS 데이터베이스 분석에 따르면 상위 SNS 데이터베이스는 관계형 데이터베이스와 NoSQL 데이터베이스를 모두 사용하여 각 사용자의 특정 요구 사항을 충족했습니다. 경우에 따라 SNS는 관계형 데이터베이스를 사용하여 사용자 데이터 를 저장하는 반면 NoSQL 데이터베이스는 로그 파일을 저장하는 데 사용됩니다. 이것은 NoSQL과 관계형 데이터베이스가 모두 복잡한 문제를 해결하는 데 사용될 수 있음을 보여줍니다.

Nosql 데이터베이스는 소셜 미디어 플랫폼을 위한 실행 가능한 옵션입니다.

또한 NoSQL 데이터베이스는 한 번 쓰고 여러 번 읽는 철학에 따라 구축되어 확장을 위해 복제해야 하는 데이터의 양을 줄입니다. 많은 수의 업데이트 및 게시물로 인해 많은 데이터 중복이 발생할 수 있으므로 이는 소셜 미디어 플랫폼에 특히 유용합니다.
PostgreSQL은 확장성과 성능 때문에 궁극적으로 Instagram의 백엔드 데이터베이스로 선택되었습니다. 반면에 MongoDB와 같은 NoSQL 데이터베이스는 대량의 데이터를 저장하기 위한 최상의 플랫폼을 제공하기 때문에 여전히 소셜 미디어 플랫폼에서 실행 가능한 옵션입니다.

Instagram은 어떤 유형의 데이터베이스를 사용합니까?

이미지 제공 – medium.com

Instagram은 관계형 데이터베이스를 사용하여 사용자 및 콘텐츠에 대한 모든 데이터를 저장하고 관리합니다. 이러한 유형의 데이터베이스는 데이터를 구성하고 액세스하는 데 매우 효율적이므로 사용자 생성 콘텐츠에 크게 의존하는 Instagram과 같은 소셜 미디어 플랫폼 에 이상적입니다.

Instagram은 확장성, 사용 용이성 및 대용량 데이터 처리 능력 때문에 MongoDB를 NoSQL 데이터베이스로 사용합니다. MongoDB는 문서 지향 NoSQL 데이터베이스입니다. MongoDB 플랫폼은 플랫폼이 Facebook의 데이터 센터에 있기 때문에 Instagram에 탁월한 선택입니다. MongoDB가 다른 NoSQL 데이터베이스보다 저렴하다는 사실은 또 다른 이점입니다.

예, Instagram은 Cassandra를 사용합니다.

카산드라란 무엇이며 어떻게 작동합니까?
Cassandra는 평소와 같이 Instagram에서 사용됩니다. 소셜 미디어는 2010년에 설립된 데이터베이스를 사용하여 성장했으며 성장 전략의 일환으로 두 번째 데이터 센터를 포함하도록 확장되었습니다.

Nosql 기술

NoSQL 기술은 고성능, 확장성 및 유연성을 제공하도록 설계된 새로운 유형의 데이터베이스 관리 시스템 입니다. NoSQL 시스템은 대용량 데이터를 처리해야 하는 애플리케이션에 더 나은 성능과 확장성을 제공할 수 있기 때문에 기존 관계형 데이터베이스 대신 자주 사용됩니다. 또한 NoSQL 데이터베이스는 종종 관계형 데이터베이스보다 더 유연하기 때문에 관계형 데이터베이스의 테이블 구조에 적합하지 않은 형식으로 데이터를 저장해야 하는 애플리케이션에 적합합니다.

인스타그램 아키텍처

Instagram의 아키텍처는 수평으로 확장하고 높은 수준의 트래픽을 처리하도록 설계되었습니다. 마이크로 서비스 아키텍처를 기반으로 하며 Python, Django, Cassandra 및 PostgreSQL을 비롯한 다양한 기술을 사용합니다.

우리가 추천하는 8개의 계정은 다음과 같습니다. 순서가 맞지 않을 수도 있지만 순서가 있습니다. 해시태그 #shesthearchitect는 건축 분야에서 여성의 공헌을 기념합니다. Mario Romano의 다차원 벽 라인은 3D 프린팅을 완전히 새로운 수준으로 끌어 올립니다. 크리스틴 윌리엄슨(Christine Williamson)은 건설 과학 및 건설의 즐거움을 즐기는 과학자이자 엔지니어입니다. 가장 좋아하는 건축 인스타그램 계정은 무엇인가요? 우리의 새로운 쇼에 대해 어떻게 생각하세요?

Instagram에서 건축가로서 더 많은 추종자를 얻는 방법

Instagram은 전 세계적으로 13억 8천만 명이 넘는 사용자를 보유하고 있습니다. 약 90%의 사용자가 적어도 하나의 회사를 팔로우하고 있으며 사용자의 1/4은 25세 이상입니다. 이것은 건축가와 인테리어 디자이너에게 좋은 기회가 될 것입니다.
해시태그는 팔로워를 확보하고 건축가의 작품을 보는 사람들의 수를 늘리는 데 도움이 될 수 있습니다. #예술, #인테리어디자인, #건축, #빌딩, #디자인, #건축사진, #인테리어, #archi-lovers, #construction, #archi-
백엔드 코드가 Django Python으로 작성되었기 때문에 모든 웹 및 비동기 서버는 분산 환경에서 작동합니다. 수요에 따라 확장 또는 축소하는 것도 간단합니다.
사용자는 Cassandra, PostgreSQL, Memcache 및 Redis와 같은 기술을 사용하여 백엔드에서 개인화된 콘텐츠에 액세스할 수 있습니다. 결과적으로 가장 엄격한 의미에서 Instagram의 요구 사항을 충족하도록 아키텍처를 조정할 수 있습니다.
Instagram에서 성장 지향적인 아키텍처를 만들려면 관련 해시태그를 추가하고 양질의 콘텐츠를 사용자에게 제공해야 합니다.