2009-08-20 62 views
12

Tôi cần tạo một hệ thống tường giống như Facebook (người dùng có thể đăng tin nhắn, video, hình ảnh, sự kiện, v.v ...). Có ai tạo ra một cái gì đó tương tự? Bạn đề nghị tôi chuẩn bị cơ sở dữ liệu như thế nào?Cấu trúc cơ sở dữ liệu của Facebook wall

+0

Đây là cách để rộng của một câu hỏi để trả lời trên Stackoverflow. – MitMaro

+1

@MitMaro: Về cơ bản nó giống như một câu hỏi về kiến ​​trúc đối với tôi, mà tôi thu thập là một phần của điều lệ của trang web. Câu trả lời được chấp nhận chắc chắn được nêu trong phương diện tiếp cận kiến ​​trúc. –

Trả lời

24

bài Cập nhật

Facebook đã đưa ra các bài thuyết trình nói về việc họ sử dụng dữ liệu. Mọi người cho rằng họ là những người tiên phong trong việc quản lý Dữ liệu lớn vốn là một từ thông dụng trong những ngày này. Nhưng trên thực tế, bản trình bày của họ có tiêu đề là Rất nhiều và rất nhiều dữ liệu nhỏ. Nghĩa là, về cơ bản họ viết rất nhiều truy vấn để đọc hoặc viết các hồ sơ cá nhân. Đây là một sự đơn giản hóa, nhưng nó giống như cơ sở dữ liệu SQL của họ là một kho khóa/giá trị khổng lồ. Một khía cạnh của kiến ​​trúc này là nó làm cho nó dễ dàng cho họ trao đổi dữ liệu SQL với các bản sao trong memcached.

Facebook sử dụng MySQL rộng rãi và đóng góp các bản vá lại cho dự án MySQL. Họ có trang web Launchpad công khai được gọi là mysqlatfacebook và cũng là trang Facebook được gọi là MySQLatFacebook.

Đối với dữ liệu được phân phối, chúng sử dụng công nghệ phi quan hệ được gọi là Map/Reduce, được bao gồm trong dự án Hadoop. Họ đã xây dựng một dự án có tên là Hive để truy vấn dữ liệu bằng ngôn ngữ giống SQL. Họ cũng sử dụng công nghệ quản lý dữ liệu chuyên dụng khác cho các hệ thống cụ thể.

Bởi vì chúng luôn đổi mới và phải mở rộng quy mô lớn hơn, chúng thường xuyên phát minh hoặc áp dụng công nghệ khác để quản lý dữ liệu.

Check-out:

+0

Thông tin tuyệt vời. Tôi sẽ đọc tất cả các bài báo. Cảm ơn bạn! – Efe

Các vấn đề liên quan