2015-12-08 14 views
5

Tôi có một cơ sở dữ liệu hiện tại ở Mongo đang chạy trên một cá thể EC2 và muốn di chuyển dữ liệu đến DynamoDB. Điều này có khả thi và cách hiệu quả nhất về chi phí để đạt được điều này?MongoDB tới DynamoDB

+1

Có thể không? Vâng. Cách tốt nhất để làm điều đó là gì? Đó là quá rộng cho trang web này. –

+0

Tôi nghĩ rằng, bạn sẽ phải viết một chương trình sẽ di chuyển dữ liệu của bạn từ mongodb sang dynamodb, có tính đến định dạng dữ liệu tài khoản. – Askar

Trả lời

4

Khi bạn yêu cầu "cách hiệu quả về chi phí" để di chuyển dữ liệu, tôi cho rằng bạn đang tìm kiếm các công nghệ hiện có có thể làm giảm tuổi thọ của bạn. Nếu có, bạn có thể thực hiện như sau:

  • Xuất dữ liệu MongoDB của bạn thành tệp văn bản, theo định dạng tsv, sử dụng mongoexport.
  • Tải tệp đó lên đâu đó trong S3.
  • Nhập dữ liệu này, trong S3, vào DynamoDB bằng cách sử dụng AWS Data Pipeline.

Tất nhiên, bạn nên thiết kế & hoàn tất lược đồ bảng DynamoDB của bạn trước khi thực hiện tất cả điều này.

3

Bất cứ khi nào bạn thay đổi cơ sở dữ liệu, bạn phải rất cẩn thận về cách bạn di chuyển dữ liệu. Một số định dạng dữ liệu duy trì tính nhất quán của loại, trong khi các định dạng khác thì không.

Sau đó, chỉ có các định dạng dữ liệu không thể xử lý giản đồ của bạn. Ví dụ: CSV xử lý dữ liệu tuyệt vời khi nó là một hàng cho mỗi mục nhập, nhưng làm cách nào để bạn hiển thị một mảng được nhúng trong CSV? Nó thực sự là không thể, JSON là tốt ở đây, nhưng JSON có vấn đề riêng của mình.

Ví dụ đơn giản nhất về điều này là JSON và DateTime. JSON không có một đặc tả để lưu trữ các giá trị DateTime, chúng có thể kết thúc dưới dạng các ngày ISO8601 hoặc có thể là các dấu thời gian của UNIX Epoch hoặc thực sự bất cứ điều gì mà một nhà phát triển có thể mơ ước. Còn Longs, Doubles, Ints thì sao? JSON không phân biệt đối xử, nó làm cho chúng tất cả các chuỗi, có thể gây mất chính xác nếu không được deserialized một cách chính xác.

Điều này rất quan trọng vì bạn chọn phương tiện dịch phù hợp. Nói chung có nghĩa là bạn phải cuộn giải pháp của riêng bạn. Điều này có nghĩa là tải lên các trình điều khiển cho cả hai cơ sở dữ liệu, đọc một mục từ một, dịch và viết cho người khác. Đây là cách tốt nhất để chắc chắn rằng các lỗi được xử lý đúng cách cho môi trường của bạn, các kiểu đó được lưu giữ một cách nhất quán và mã đó dịch đúng lược đồ từ nguồn đến đích (nếu cần).

Điều này có ý nghĩa gì đối với bạn? Nó có nghĩa là rất nhiều chân làm việc cho bạn. Có thể ai đó đã cuộn thứ gì đó đủ rộng cho trường hợp của bạn, nhưng tôi đã tìm thấy trong quá khứ rằng tốt nhất bạn nên tự mình làm điều đó.

0

Tôi biết bài này là cũ, Amazon đã làm cho nó có thể với AWS DMS, kiểm tra tài liệu này:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MongoDB.html 

Một số bộ phận liên quan:

Sử dụng một cơ sở dữ liệu của Amazon DynamoDB như một mục tiêu cho AWS Cơ sở dữ liệu Dịch vụ di chuyển

Bạn có thể sử dụng AWS DMS để di chuyển dữ liệu sang bảng Amazon DynamoDB. Amazon DynamoDB là một dịch vụ cơ sở dữ liệu NoSQL được quản lý đầy đủ mà cung cấp hiệu suất nhanh và có thể dự đoán được với khả năng mở rộng liền mạch. AWS DMS hỗ trợ sử dụng cơ sở dữ liệu quan hệ hoặc MongoDB như một nguồn.

+0

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ đánh giá/chất lượng thấp-bài viết/18355749) – thewaywewere

+0

Và nó có vấn đề định dạng nghiêm trọng là tốt. – Stefan