Gần đây tôi đã hỏi một câu hỏi về Neo4j, mà tôi đã làm việc và có vẻ tốt đẹp. Nó có thể nhúng và được viết bằng Java và không có quá nhiều phụ thuộc.DB được nhúng nào được viết bằng Java cho một kho khóa/giá trị đơn giản?
Tuy nhiên đó là biểu đồ DB và tôi không biết liệu đó có phải là ý hay hay không để sử dụng nó làm cửa hàng khóa/giá trị đơn giản.
Về cơ bản tôi đã có một bản đồ lớn, mà trong Java sẽ trông như thế này:
Map<Integer,Map<String,String>>
Tôi đã có một vài hàng chục triệu mục trong bản đồ chính và mỗi mục chứa bản thân bản đồ thuộc tính/giá trị. Bản đồ "bên trong" tương đối nhỏ: khoảng 20 mục.
Tôi cần một cách để duy trì bản đồ đó từ khi chạy webapp sang ứng dụng kia.
Sử dụng Neo4j, những gì tôi đã làm là tạo một nút cho mỗi ID (số nguyên) và sau đó đặt một thuộc tính cho mỗi mục nhập bên trong bản đồ bên trong. Từ thử nghiệm ban đầu của tôi nó có vẻ làm việc nhưng tôi không chắc đó là một cách tốt để tiến hành.
DB nhúng nào được viết bằng Java, bạn có sử dụng không?
Các yêu cầu là:
viết bằng Java
nhúng (vì vậy không có gì quá lớn)
không SQL (*)
mã nguồn mở
dễ dàng để sao lưu (tôi cần để có thể làm "sống" sao lưu, trong khi máy chủ đang chạy)
ngữ của tôi có thể là một chút sai quá, vì vậy cảm thấy tự do để giúp tôi/chính xác cho tôi . Đối với "bản đồ bản đồ" của tôi, sự phù hợp nhất sẽ là một cặp khóa/giá trị DB phải không?
tôi là một chút mất như sự khác biệt giữa các cặp khóa/giá trị DB, tài liệu DBS, bảng lớn, đồ thị DBS vv
Tôi cũng thích nếu đó là một ý tưởng tốt để sử dụng một đồ thị DB giống như Neo4J cho nhu cầu của tôi (tôi nghĩ hiệu suất thực sự sẽ không phải là một vấn đề nhìn thấy số lượng tương đối nhỏ của mục tôi sẽ có).
Tất nhiên tôi có thể chỉ đơn giản là duy trì bản đồ của tôi bản đồ nhưng tôi thực sự không muốn phát minh lại bất kỳ bánh xe nào ở đây. Tôi muốn sử dụng lại DB đã cố gắng và thử nghiệm ...
(*) Lý do tôi không muốn SQL là tôi sẽ luôn có "bản đồ bản đồ" này và bản đồ bên trong sẽ không ngừng phát triển, vì vậy tôi không muốn một cái gì đó quá cấu trúc.
là bản đồ bên trong rất có thể sẽ khác nhau trong mỗi mục của bản đồ chính, hoặc sẽ có một số lượng đáng kể sự chồng chéo giữa các bản đồ bên trong của bản đồ chính? Có một số tuyến đường khác nhau mà bạn có thể thực hiện, nhưng nó thực sự phụ thuộc vào lượng bản sao tham chiếu trong cấu trúc của bạn. – cdeszaq
@cdeszaq: cảm ơn nhận xét và giúp đỡ của bạn ... Bản đồ bên trong chủ yếu sẽ có cùng số thuộc tính và cùng thuộc tính, nhưng giá trị của mỗi thuộc tính sẽ khác đôi chút. Tôi muốn nói khá một số chồng lên nhau tuy nhiên tôi không nghĩ rằng buổi biểu diễn sẽ là một điều đáng lo ngại: Tôi có nhiều thứ sau khi thuận tiện/nhỏ/dễ sao lưu. Bạn có nghĩ Neo4j sẽ làm việc ở đây không? Tôi biết có một số lựa chọn: rất nhiều mà tôi là một chút bị mất:) –
@cdeszaq: Tôi quên đề cập đến: các thuộc tính của bản đồ bên trong sẽ "tiến hóa" trong suốt vòng đời của ứng dụng: các thuộc tính mới sẽ được thêm vào (và các mục nhập cũ, không có các thuộc tính mới hơn này, sẽ mặc định thành giá trị mặc định khi được truy vấn cho thuộc tính không tồn tại). Vì vậy, có chồng lên nhau nhưng nó không "có cấu trúc" trong đó không có thực sự bất kỳ lược đồ cố định (nếu tôi nhận được thuật ngữ của tôi đúng). –