Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Truy vấn Cơ sở dữ liệu:Làm thế nào để Tìm một kim trong Haystack?

Kịch bản con áp phích cho dữ liệu lớn - bạn cần sàng lọc một lượng lớn dữ liệu để trích xuất một " nugget ”của thông tin. Ngoài ra, nó cần được thực hiện trong khoảng thời gian ngắn nhất có thể, hoạt động kinh doanh của bạn phụ thuộc vào nó. Về mặt lịch sử, sử dụng công nghệ hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) truyền thống, loại kịch bản này đòi hỏi một nhóm lớn và đầu tư thời gian và tiền bạc. Hầu hết các RDBMS truyền thống chỉ mở rộng quy mô theo chiều dọc, vì vậy bạn phải tiếp tục mua các máy lớn hơn và lớn hơn để giảm thời gian quay vòng của mình. Sự ra đời của các đám mây công cộng và cơ sở dữ liệu NoSQL như MongoDB đã hoàn toàn làm gián đoạn cách các nhóm đang suy nghĩ về kịch bản này.

Một trong những khách hàng của chúng tôi gần đây đã đến gặp chúng tôi với một vấn đề thú vị. Họ cần định kỳ để chạy một truy vấn thực sự phức tạp quét toàn bộ tập dữ liệu của họ. Truy vấn này gần như là một bản quét bộ sưu tập chạm vào mọi tài liệu trong bộ sưu tập và bao gồm các chi tiết sau:

  • Tổng dữ liệu là khoảng 100GB.
  • An toàn dữ liệu không phải là vấn đề vì bản sao chính của dữ liệu nằm ở nơi khác.
  • Tốc độ truy vấn cực kỳ quan trọng. Mục tiêu là có thể chạy toàn bộ truy vấn trong vòng 10-15 phút.
  • Hệ thống chỉ cần được khởi động khi truy vấn đang chạy (giảm thiểu chi phí).

Do yêu cầu cuối cùng, bạn nên chạy toàn bộ hệ thống trên đám mây công cộng. Máy chỉ được bật trong vài giờ mỗi tuần để dữ liệu được cập nhật và chạy truy vấn. Khách hàng đã cảm thấy thoải mái với Amazon EC2, vì vậy quyết định được đưa ra là thử nghiệm hệ thống trong AWS.

Cấu hình tốt nhất để đạt được mục tiêu này là triển khai MongoDB “phân đoạn”. Đây là cấu hình chúng tôi đã giải quyết:

  • 3 phân đoạn - mỗi phân đoạn có một phiên bản độc lập (r3.xlarge) với 30 GB RAM
  • 1 máy chủ cấu hình
  • 1 bộ định tuyến phân đoạn (m3.xlarge) với 15 GB RAM

Một số điều cần lưu ý về các lựa chọn của chúng tôi:

  • Bộ bản sao so với độc lập

    An toàn dữ liệu không phải là một yêu cầu quan trọng ở đây vì dữ liệu chính được lưu trữ trong một hệ thống riêng biệt. Do đó, chúng tôi sử dụng các máy chủ độc lập thay vì một tập hợp bản sao để tiết kiệm chi phí.

  • 3 Máy chủ cấu hình so với 1 Máy chủ cấu hình

    ame lý do như trên. An toàn dữ liệu không phải là một vấn đề quan trọng. Trong một môi trường sản xuất điển hình, chúng tôi sẽ sử dụng ba máy chủ cấu hình.

Vẻ đẹp thực sự của cấu hình này là do cấu hình được chia nhỏ, gần như toàn bộ 100GB dữ liệu được lưu trữ hoàn toàn trong bộ nhớ. Vì vậy, về cơ bản những gì bạn đang chạy là quét "trong bộ nhớ". Điều này đã làm giảm đáng kể thời gian chạy của truy vấn từ vài giờ xuống dưới 10 phút. Việc sử dụng đám mây công cộng cũng làm giảm đáng kể vốn đầu tư vì bạn chỉ trả tiền cho các máy khi chúng đang chạy.

Đây là một sự thay đổi khá lớn đối với cách các đội xử lý tình huống này trong thập kỷ qua. Vì vậy, nếu bạn đang "mò kim đáy bể", hãy nghĩ đến Cloud + NoSQL!

Như thường lệ, nếu bạn có bất kỳ câu hỏi nào, bạn có thể liên hệ với chúng tôi theo địa chỉ [email protected].


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đạt được chuyển đổi dự phòng tự động cho TimescaleDB

  2. Triển khai một loại tùy chỉnh

  3. Thông báo về tính khả dụng chung của trình quản lý tuân thủ SQL 5.9

  4. Kết nối với Teradata trong IRI Workbench

  5. Vấn đề Halloween - Phần 3