Xây dựng Database và cung cấp API cho điện thoại như thế nào cho hiệu quả?
Hi mọi người, Đạt có ý tưởng muốn xây dựng một dạng database online, cho phép điện thoại truy cập vào để lấy thông tin.
Câu hỏi này bắt nguồn từ topic: Liệu bạn có muốn sử dụng một công cụ tư vấn tài chính trước khi gặp tư vấn viên?
Ví dụ như Đạt muốn viết một con bot chạy đi lấy thông tin từ nhiều nguồn khác nhau cho các thông tin như lãi suất vay, lãi suất tiết kiệm, và các thông tin khác rồi lưu lại ở server X.
Một phone client (WP, Android, iOS) muốn có thông tin thì gọi tới server thông qua API cho sẵn, ví dụ như muốn biết với số tiền 2tr mỗi tháng, đóng trong 10 năm thì gửi ở ngân hàng nào thì hiệu quả. Server sẽ tìm trong database và trả ra kết quả này.
Giả sử dữ liệu sẽ tăng lên theo thời gian, số lượng người dùng cũng lớn. Vậy thì Đạt nên xây dựng Database như thế nào, chọn server như thế nào?
Cảm ơn mọi người.
@ltd thử sử dụng dịch vụ azure http://azure.microsoft.com
Database em nghĩ không tăng nhiều đâu anh, số lượng ngân hàng giờ đang giảm và sát nhập.
Còn dữ liệu cá nhân người dùng thì em chưa rõ anh muốn lưu gì lắm , vì theo như cái cách sử dụng anh mô tả nó giống như là một công cụ sử dụng nhanh hơn là cần thiết phải yêu cầu đăng nhập.
NoSql là lựa chọn đúng đắn ở thời điểm hiện tại. Tuy nhiên cách lưu trữ dữ liệu thì còn tùy, thông tin mà @ltd muốn lưu là gì. Như trong VD ở trên thì hoàn toàn chỉ cần lưu link api đổi lãi suất chứ không thể thống kê toàn bộ và một cách liên tục được. Theo mình thì để ý 4 điểm sau :
Thực ra ở đây theo mình nghĩ bài toán vừa phải xử lý 1 lượng lớn request, vừa phải xử lý 1 lượng lớn dữ liệu, thì giải pháp chia tải request, phân tán dữ liệu là hợp lý nhất. Một số ý kiến cá nhân nếu có j sai mọi người bỏ qua
Nếu em xây dựng em sẽ lựa chọn công nghệ như sau:
anh @ltd ko hỏi dùng cloud nào dù sao thì phương diện server cũng rất quan trọng, nếu đây là startup nghiêm túc mà anh Đạt dùng cloud của Mĩ (có lẽ chơi lun dedicated server) thì cũng có bất cập (theo Edward Snowden) !
Trong những Database open source hoặc miễn phí hiện nay thì DB nào dễ thao tác nhất nhỉ? Đạt có nghe nói về NoSQL nhưng không rõ nó là gì, có sử dụng được trong trường hợp này không nhỉ?
thấy dạo này nghe nhiều người nhắc tới MongoDB
NoSQL khá thích hợp với ý tưởng của a. NoSQL mạnh về tốc độ truy vấn, search, query… nó rất phù hợp với những loại app mà View Action là chủ yếu (Edit Action ít và không quan trọng)
Cấu trúc của NoSQL không phải là tập hợp các bảng với khóa chính khóa ngoại… mà là một tập hợp các Collection, mỗi collection được lưu trữ như là 1 JSon object.
Theo e thấy thì MongoDB, PostgresSQL đều ok.
Discourse hiện đang dùng PostgresSQL, Đạt cũng suy nghĩ chọn 1 trong 2 món này.
Hadoop nghe nhiều nhưng Đạt không hiểu nó đặc biệt chỗ nào? Nghe nói dành cho Enterprise thôi?
PostgreSQL là RDMS, nó tương tự như MySQL, MSSQL.
MongoDB là nosql.
Em cũng chưa dùng Hadoop, nhưng nó tương tự như Google MapReduce, dùng để xử lý hàng ngàn terabytes dữ liệu trên hàng ngàn nodes :D. Anh crawle nhiều site thì dùng chơi :D.
Nếu anh muốn đơn giản thì xài Google app engine á. Nếu sử dụng python thì nó gần giống Django, nó có cấu trúc cơ sở dữ liệu riêng nhưng học cũng nhanh lắm, quan trọng hơn là nó tự scale từ cơ sở dữ liệu cho tới xử lý khi cần thiết mà người quản lý không cần quan tâm gì cả. Nếu anh đăng ký chương trình startup của nó thì sẽ có khoảng vài trăm $ để sử dụng trong vòng một năm.
À quên có một cái này. Không biết đối tượng khách hàng của anh là ai nhưng vói người Việt thì có lẽ sẽ không được đâu. Ở VN niêm yết mức lãi suât là như vậy, nhưng khi gửi số tiền lớn hoàn toàn có thể “deal” để nâng mức lãi suất. Cái này tùy ngân hàng và không phải ai cũng biết cả.
http://cloudant.com cái này có vẻ hay này anh @ltd (DBaaS)