Tại sao cơ sở dữ liệu quan hệ không thể đáp ứng quy mô của Dữ liệu lớn?


17

Người ta thường lặp lại rằng vấn đề về Dữ liệu lớn là cơ sở dữ liệu quan hệ không thể mở rộng để xử lý khối lượng dữ liệu khổng lồ hiện đang được tạo.

Nhưng những hạn chế về khả năng mở rộng này mà các giải pháp Dữ liệu lớn như Hadoop không bị ràng buộc là gì? Tại sao Oracle RAC hoặc MySQL shending hoặc MPP RDBMS như Teradata (v.v.) không đạt được những chiến công này?

Tôi quan tâm đến các hạn chế kỹ thuật - Tôi biết rằng chi phí tài chính của việc phân cụm RDBMS có thể bị cấm.

Câu trả lời:


15

MS vừa có một cuộc nói chuyện về công nghệ ở Hà Lan, nơi họ đã thảo luận về một số thứ này. Nó bắt đầu chậm chạp, nhưng đi vào thịt của Hadoop trong khoảng 20 phút.

Ý chính của nó là "nó phụ thuộc". Nếu bạn có một bộ dữ liệu được sắp xếp hợp lý, (ít nhất là phần nào) dễ dàng phân vùng bộ dữ liệu mà (ít nhất là phần nào) là đồng nhất, thì khá dễ dàng để chia tỷ lệ cho các khối dữ liệu cao đó bằng RDBMS, tùy thuộc vào những gì bạn đang làm .

Hadoop và MR dường như hướng đến các tình huống mà bạn buộc phải quét dữ liệu phân tán lớn, đặc biệt là khi những dữ liệu đó không nhất thiết phải đồng nhất hoặc có cấu trúc như những gì chúng ta tìm thấy trong thế giới RDBMS.

Những hạn chế nào là giải pháp Dữ liệu lớn không bị ràng buộc? Đối với tôi, hạn chế lớn nhất mà họ không bị ràng buộc là phải tạo ra một lược đồ cứng nhắc trước thời hạn. Với các giải pháp Dữ liệu lớn, bạn sẽ chuyển một lượng lớn dữ liệu vào "hộp" ngay bây giờ và thêm logic vào các truy vấn của mình sau đó để xử lý sự thiếu đồng nhất của dữ liệu. Từ quan điểm của một nhà phát triển, sự đánh đổi là dễ thực hiện và linh hoạt ở mặt trước của dự án, so với sự phức tạp trong truy vấn và tính nhất quán dữ liệu ngay lập tức.


Cảm ơn Dave, bạn đang đưa tôi đến gần hơn với những gì tôi đang cố gắng tìm hiểu. Bạn nói rằng Hadoop hướng đến các tình huống với các bản quét phân tán lớn - nếu một số / nhiều RDBMS 'có các giải pháp phân cụm (RAC, shard, MPP, v.v.), tại sao họ cũng không thể làm điều đó? Điều gì khiến RDBMS không thể sắp xếp 10 nghìn tỷ bản ghi trong 16 giờ như một cụm Hadoop rất lớn có thể? xem tại đây
Jeremy Beard

2
Không có gì làm cho cụm RDBMS không thể thực hiện được loại công việc này và bạn có thể định cấu hình RDBMS để mở rộng quy mô để thực hiện loại việc này. Vấn đề với RDBMS là để thực hiện điều này, bạn phải thực sự cẩn thận về cách bạn cấu trúc lược đồ và phân vùng của mình để nó hoạt động. Kiến trúc Dữ liệu lớn giành chiến thắng khi dữ liệu của bạn không đủ cấu trúc để được phân vùng và tối ưu hóa dễ dàng hoặc hiệu quả trong RDBMS.
Dave Markle

1
Các nhà thiết kế db không đủ năng lực làm cho các cơ sở dữ liệu quan hệ khó mở rộng. Quá nhiều công ty nghĩ rằng các nhà phát triển ứng dụng có thể thiết kế cơ sở dữ liệu (hoặc tệ hơn là sử dụng ORMS để thiết kế) khi họ cần thuê các nhà phát triển cơ sở dữ liệu tổng hợp ngay từ đầu. Người thứ hai bạn thuê cho một dự án liên quan đến dữ liệu nên là nhà phát triển cơ sở dữ liệu.
HLGEM

3
@HLGEM: Phản hồi của tôi về điều này là "meh". Các nhà phát triển hiệu quả nhất sẽ là những người hiểu cả hai mặt của ngăn xếp - ý tưởng rằng có một thứ như là một "nhà phát triển ứng dụng" giỏi làm việc với RDBMS mọi lúc mà không biết nó hoạt động như thế nào là sai lầm . Tương tự như vậy, ý tưởng rằng có một thứ như là một "nhà phát triển cơ sở dữ liệu" giỏi, những người không hiểu ORM hoặc phía ứng dụng của nó cũng là IMO, một lời ngụy biện.
Dave Markle

6

Nhà tiên phong và nhà nghiên cứu cơ sở dữ liệu Michael Stonebraker đã viết một bài báo thảo luận về những hạn chế của kiến ​​trúc cơ sở dữ liệu truyền thống. Nói chung, chúng mở rộng với phần cứng đắt tiền hơn, nhưng gặp khó khăn khi mở rộng song song với phần cứng hàng hóa hơn và bị giới hạn bởi kiến ​​trúc phần mềm cũ được thiết kế cho thời đại cũ. Ông cho rằng kỷ nguyên BigData đòi hỏi nhiều kiến ​​trúc cơ sở dữ liệu mới, tận dụng cơ sở hạ tầng hiện đại và tối ưu hóa cho một khối lượng công việc cụ thể. Ví dụ về điều này là dự án C-store, dẫn đến cơ sở dữ liệu thương mại Vertica Systems và dự án H-store dẫn đến VoltDB, một cơ sở dữ liệu OLTP SQL trong bộ nhớ được thiết kế cho khối lượng công việc BigData tốc độ cao. (Tiết lộ đầy đủ, tôi làm việc cho VoltDB).

Bạn có thể thấy hội thảo trên web này thú vị về chủ đề này. Nó phản ứng với một số huyền thoại đã phát sinh với sự thành công của cơ sở dữ liệu NoQuery. Về cơ bản, ông cho rằng SQL không phải là vấn đề, không cần thiết phải từ bỏ các tính năng cơ sở dữ liệu truyền thống như tính nhất quán để có được hiệu năng.


6
Để đủ điều kiện là công bố đầy đủ, có lẽ bạn cũng nên đề cập rằng đồng sáng lập và CTO Michael Stonebraker của bạn cũng là đồng kiến ​​trúc sư của tất cả các ví dụ của bạn. Và hỗ trợ SQL của VoltDB là một tập hợp nhỏ đáng xấu hổ .
Daniel Lyons

5

Nó không hoàn toàn đúng khi RDBMS không thể mở rộng quy mô. Tuy nhiên, sự thật một phần trong tuyên bố phụ thuộc vào kiến ​​trúc. Trong danh sách mà bạn đã đưa ra, Oracle RAC khác với phần còn lại (đã loại bỏ MySQL và Teradata). Sự khác biệt chính là chia sẻ đĩa so với kiến ​​trúc không chia sẻ.

Các kiến ​​trúc đĩa được chia sẻ như Oracle RAC bị chia tỷ lệ vì tại một số điểm hoặc tất cả các máy đang chạy nên đồng bộ hóa trên một số phần của dữ liệu. Ví dụ, người quản lý khóa toàn cầu là một kẻ giết người. Bạn có thể tiếp tục điều chỉnh nó ở một mức độ nào đó nhưng cuối cùng bạn sẽ va vào tường. Nếu bạn không thể dễ dàng thêm máy móc, bạn nên có ít máy hơn nhưng siêu mạnh có thể làm cháy túi của bạn. Trong trường hợp chia sẻ không có kiến ​​trúc (hoặc dữ liệu bị loại bỏ), mỗi máy sẽ sở hữu một số dữ liệu. Nó không cần phải đồng bộ hóa với các mahcines khác nếu muốn cập nhật một số dữ liệu.

Sau đó là giống của cơ sở dữ liệu NoQuery. Tôi sẽ coi chúng là tập hợp con của cơ sở dữ liệu RDBMS truyền thống. Không phải tất cả các ứng dụng trên thế giới này sẽ cần tất cả các chức năng do RDBMS cung cấp. Nếu tôi muốn sử dụng cơ sở dữ liệu làm bộ đệm, tôi sẽ không quan tâm đến độ bền. Có thể trong một số trường hợp tôi cũng sẽ không quan tâm đến tính nhất quán. Nếu tất cả các tra cứu dữ liệu của tôi dựa trên một khóa, tôi không cần hỗ trợ cho các truy vấn phạm vi. Tôi có thể không cần chỉ số phụ. Tôi không cần toàn bộ lớp tối ưu hóa xử lý truy vấn / truy vấn mà tất cả các cơ sở dữ liệu truyền thống đều có.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.