2010-02-05 26 views
7

Có nhiều kho dữ liệu được viết bằng Erlang, ví dụ Riak, Dynomite, CouchDb, Scalaris, tôi có bỏ sót bất kỳ kho dữ liệu nào không?Triển khai ngôn ngữ chức năng của kho dữ liệu cấp sản phẩm

Tôi biết rằng Java và C/C++ cũng được sử dụng để viết kho dữ liệu (Cassandra, Hypertable, v.v.), nhưng có bất kỳ Datastores nào được viết bằng bất kỳ ngôn ngữ chức năng nào khác như F #, Scala, Haskell, Clojure, vv? Lý do tôi yêu cầu điều này (và nhiều câu hỏi lập trình chức năng và câu hỏi kiểu Erlang) là đánh giá tính khả thi của các ngôn ngữ lập trình hàm cho các dự án thế giới thực.

Lưu ý rằng tôi đã nói với tôi rằng ý tôi là ngôn ngữ thực hiện thực tế của kho dữ liệu, chứ không phải ngôn ngữ máy khách để truy cập kho dữ liệu (ví dụ: thông qua ODBC).

+2

Phần đầu tiên: Có. Mnesia đi kèm với Erlang ;-) – ConcernedOfTunbridgeWells

+0

Tôi sẽ đề cập đến Scala, trái ngược với các ngôn ngữ khác mà bạn đề cập, chủ yếu là ngôn ngữ hướng đối tượng, điều này sẽ xảy ra để tích hợp các tính năng Ngôn ngữ chức năng. Người sáng tạo gần đây đã gọi nó là "hậu chức năng". –

+0

Ok, vì vậy tôi có lẽ nên loại bỏ Scala khỏi danh sách nếu nó chủ yếu là OO? – Zubair

Trả lời

9
  1. Data.Tcache là bộ nhớ cache giao dịch có độ bền có thể định cấu hình cho Haskell.
  2. Elephant là cơ sở dữ liệu đối tượng liên tục cho Common Lisp với ngữ nghĩa giao dịch đầy đủ.
  3. CLSQL - cơ sở dữ liệu SQL cho giao diện Common Lisp.
  4. AllegroCache là hệ thống cơ sở dữ liệu bộ nhớ đệm đối tượng động, hiệu suất cao cho Allegro Common Lisp.
  5. Spark-Scheme đi kèm với bộ máy cơ sở dữ liệu tích hợp và hỗ trợ ODBC.
+0

Rực rỡ, tôi sẽ xem xét những điều này. Cảm ơn – Zubair

+0

Tôi đã có một cái nhìn ngắn gọn về những điều này. Spark có vẻ đẹp nhất, nhưng có trang web tồi tệ nhất :) Có ai trong số họ làm việc trong các cài đặt nhóm không? – Zubair

+0

@Zubair Cảm ơn bạn đã nhận xét thuận lợi về Spark. Đó là Lisp cá nhân của tôi! Về trang web, không có đủ nguồn lực (tất cả thời gian, tiền bạc và cá nhân) để tạo ra một tài nguyên tốt hơn. –

3

Câu hỏi của bạn khiến tôi hơi khó hiểu. Bạn hỏi về kho dữ liệu được viết trong một loạt các ngôn ngữ. Nói chung, khi tôi lập trình, tôi tìm thư viện hoặc API để lấy và đưa dữ liệu từ và đến kho dữ liệu bằng ngôn ngữ đã chọn của tôi. Những gì kho dữ liệu cơ bản được viết trong (nếu nó được viết trong bất cứ điều gì, một số kho dữ liệu không nhiều hơn bố cục tệp) tôi không quan tâm.

Và trên cơ sở đó, một Googling nhỏ sẽ bật lên các thư viện Haskell-to-ODBC và tôi tưởng tượng các ngôn ngữ khác sẽ có các cơ sở tương tự. Tôi không có kiến ​​thức về những điều này, do đó, sẽ không bình luận về sự phù hợp của họ cho các dự án.

+0

Có, bạn nói đúng, tôi không giải thích rõ ràng. Tôi đã có nghĩa là lưu trữ dữ liệu "cơ bản" như bạn đã chỉ ra. – Zubair

+0

Ngoài ra, điểm thú vị mà bạn đã thực hiện, kho dữ liệu nào chỉ là bố trí tệp, vì tôi muốn đánh giá chúng? – Zubair

+0

Thật sao?Bạn có chắc chắn rằng lưu trữ dữ liệu ứng dụng không sao chép dữ liệu giữa các quy trình của ứng dụng và db không có một số lợi ích? Hiệu suất? Trong trường hợp này lưu trữ dữ liệu trong ngôn ngữ cụ thể có ý nghĩa lớn. Db nhúng thông thường không phải là giải pháp ở đây vì sự cần thiết của tấm nồi hơi. Ví dụ Đó là lý do tại sao mnesia ở Erlang có ý nghĩa lớn trong một số trường hợp đặc biệt là với các "thủ tục lưu trữ" và các giao dịch bản địa (phân phối có liên quan). –

3

Trong một nghĩa nào đó bạn đã trả lời câu hỏi của riêng bạn. Các hệ thống bạn đề cập và các hệ thống khác từ các nhận xét, ĐƯỢC được viết bằng các ngôn ngữ chức năng và các dự án thực tế chắc chắn, vì vậy câu trả lời là yes.

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