MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Di chuyển MongoDB sang DynamoDB, Phần 2

Dịch vụ di chuyển cơ sở dữ liệu AWS (DMS) đã bổ sung hỗ trợ cho hai cơ sở dữ liệu NoSQL vào năm 2017:MongoDB làm cơ sở dữ liệu nguồn và AWS DynamoDB làm cơ sở dữ liệu đích. Trong hướng dẫn gồm hai bài viết, chúng tôi đang di chuyển cơ sở dữ liệu MongoDB sang DynamoDB trên DMS. Trong bài viết đầu tiên, “Di chuyển MongoDB sang DynamoDB, Phần 1”, chúng tôi đã tạo một bộ bản sao MongoDB và bảng DynamoDB. Trong bài viết tiếp theo này, chúng ta sẽ thảo luận về việc tạo và chạy quá trình di chuyển DMS để di chuyển dữ liệu.

Bài viết này có các phần sau:

  • Tạo Di chuyển DMS
  • Chạy quá trình di chuyển
  • Tiếp tục Di chuyển
  • Xóa quá trình di chuyển
  • Kết luận

Tạo Di chuyển DMS

Tiếp theo, chúng ta sẽ tạo một quá trình di chuyển DMS để di chuyển cơ sở dữ liệu MongoDB sang DynamoDB. Đăng nhập với tư cách người dùng IAM (dvohra hoặc khác) được tạo cho DMS và chọn DMS trong Bảng điều khiển quản lý AWS. Nhấp vào Tạo di chuyển trong Bảng điều khiển DMS, như trong Hình 1.


Hình 1: Tạo di chuyển

Nhấp vào Tiếp theo trong trang Chào mừng DMS, như trong Hình 2.


Hình 2: Chào mừng> Tiếp theo

Tạo bản sao hộp thoại được hiển thị, như thể hiện trong Hình 3, trong đó chúng tôi định cấu hình một phiên bản sao chép để bắt đầu kết nối giữa cơ sở dữ liệu nguồn và cơ sở dữ liệu đích, chuyển dữ liệu và lưu vào bộ nhớ cache bất kỳ thay đổi nào trên cơ sở dữ liệu nguồn trong quá trình tải ban đầu.


Hình 3: Tạo phiên bản sao chép

Chỉ định tên phiên bản sao chép trong Tên , chọn Lớp phiên bản , chọn một VPC và chọn tùy chọn cho liệu Nhiều AZ phiên bản sao chép sẽ được tạo. Mô tả , thường là tùy chọn trong cài đặt có thể định cấu hình, là trường bắt buộc. Cài đặt mặc định được cung cấp cho tất cả các trường này ngoại trừ VPC. Các cài đặt phiên bản sao chép được sử dụng được thể hiện trong Hình 4.


Hình 4: Cài đặt phiên bản sao chép

Chọn tùy chọn để làm cho phiên bản sao chép Có thể truy cập công khai và nhấp vào Nâng cao để cấu hình các thông số nâng cao, như trong Hình 5.


Hình 5: Đặt phiên bản sao chép là có thể truy cập công khai

Trong Nâng cao , cài đặt mặc định được cung cấp cho tất cả các trường (xem Hình 6).


Hình 6: Cài đặt nâng cao

Cài đặt mặc định, ngoại trừ khóa chính KMS, phải được đặt thành khóa mã hóa (dms) được tạo trước khi đăng nhập với tư cách người dùng IAM (dvohra), phù hợp với bất kỳ phiên bản sao chép nào, như trong Hình 7. Nhấp vào Tiếp theo.


Hình 7: Cài đặt nâng cao> Tiếp theo

Cá thể sao chép bắt đầu được tạo, như được chỉ ra bởi thông báo trong Hình 8. Tiếp theo chỉ định các điểm cuối của cơ sở dữ liệu trong khi cá thể sao chép đang được tạo. Tuy nhiên, các điểm cuối của cơ sở dữ liệu không thể được kiểm tra cho đến khi tạo bản sao.


Hình 8: Phiên bản sao chép đang được tạo

Đối với Công cụ nguồn , chọn mongodb cơ sở dữ liệu, như trong Hình 9.


Hình 9: Chọn Công cụ nguồn làm mongodb

Đối với Công cụ mục tiêu , chọn động mã cơ sở dữ liệu, như trong Hình 10.


Hình 10: Chọn Công cụ mục tiêu làm động cơ

Số nhận dạng điểm cuối có thể được giữ làm mặc định cho cả cơ sở dữ liệu nguồn và đích, nhưng các tham số kết nối khác cần được chỉ định. Đối với Chi tiết kết nối cơ sở dữ liệu nguồn , chỉ định Tên máy chủ làm IP riêng (Hình 21 trong bài viết đầu tiên, “Di chuyển MongoDB sang DynamoDB, Phần 1”) của phiên bản CoreOS EC2 mà trên đó bộ bản sao MongoDB được khởi động bằng Docker và chỉ định Cổng như 27017 (xem Hình 11). Chọn “không” cho chế độ SSL Chế độ xác thực . Chỉ định Tên cơ sở dữ liệu dưới dạng kiểm tra và chọn Cơ chế xác thực làm mặc định .


Hình 11: Chi tiết kết nối cơ sở dữ liệu nguồn

Đối với công cụ cơ sở dữ liệu nguồn, mongodb , chọn Chế độ siêu dữ liệu dưới dạng tài liệu và chọn tùy chọn _id là một cột riêng biệt , như trong Hình 12. Chạy thử nghiệm các nút được sử dụng để kiểm tra các kết nối cơ sở dữ liệu nguồn và đích và không được kích hoạt cho đến khi tạo bản sao.


Hình 12: Cài đặt khác cho Công cụ nguồn

Sao chép ARN vai trò cho dms-vpc-role từ Bảng điều khiển IAM, như thể hiện trong Hình 13. Vai trò ARN sẽ được sử dụng để xác định kết nối cơ sở dữ liệu đích cho quá trình di chuyển DMS.


Hình 13: Sao chép ARN vai trò

Sao chép và dán ARN vai trò trong ARN vai trò truy cập dịch vụ trường, như trong Hình 14.


Hình 14: ARN Vai trò Truy cập Dịch vụ

Khi phiên bản sao chép đã được tạo, một thông báo chỉ ra điều tương tự sẽ được hiển thị, như trong Hình 15.


Hình 15: Phiên bản sao chép đã được tạo

Đối với cơ sở dữ liệu đích, hãy nhấp vào Chạy thử nghiệm để kiểm tra kết nối. Nếu kết nối được thiết lập, thông báo “Đã kiểm tra kết nối thành công” sẽ hiển thị (xem Hình 16).


Hình 16: Kết nối cơ sở dữ liệu đích đã được kiểm tra thành công

Tương tự, nhấp vào Chạy thử nghiệm cho cơ sở dữ liệu nguồn và thông báo “Kết nối đã kiểm tra thành công” sẽ hiển thị nếu kết nối được thiết lập, như thể hiện trong Hình 17.


Hình 17: Kết nối cơ sở dữ liệu nguồn đã được kiểm tra thành công

Nhấp vào Tiếp theo trong Điểm cuối cơ sở dữ liệu , như trong Hình 18.


Hình 18: Điểm cuối cơ sở dữ liệu> Tiếp theo

Tiếp theo, định cấu hình tác vụ di chuyển trong Tạo tác vụ trang. Một tác vụ bao gồm một số cài đặt, bao gồm tên tác vụ, mô tả tác vụ, điểm cuối nguồn, điểm cuối đích, phiên bản sao chép, kiểu di chuyển, cài đặt tác vụ, ánh xạ bảng và cài đặt nâng cao. Cài đặt mặc định cho Tên tác vụ và cài đặt không thể sửa đổi cho Điểm cuối nguồn , Điểm cuối mục tiêu , Phiên bản sao chép Loại di chuyển được thể hiện trong Hình 19.


Hình 19: Tạo Cài đặt nhiệm vụ

Thêm mô tả phù hợp và chọn Loại di chuyển từ danh sách thả xuống được hiển thị trong Hình 20. Các tùy chọn khác nhau cho loại Di chuyển là Di chuyển dữ liệu hiện có , Di chuyển dữ liệu hiện có và sao chép các thay đổi đang diễn ra Chỉ sao chép các thay đổi dữ liệu . Để di chuyển dữ liệu hiện có từ MongoDB sang DynamoDB với điều kiện sao chép các thay đổi đang diễn ra, hãy chọn Di chuyển dữ liệu hiện có và sao chép các thay đổi đang diễn ra . Tác vụ di chuyển sau khi được tạo có điều khoản sẽ được sửa đổi sau đó ngoại trừ Loại di chuyển , không thể sửa đổi sau khi tác vụ di chuyển đã được tạo. Do đó, hãy chọn kiểu Di chuyển bằng cách giả sử đó là cài đặt vĩnh viễn.


Hình 20: Chọn loại di chuyển

Chọn Cài đặt tác vụ cho Chế độ chuẩn bị bảng mục tiêu , Dừng tác vụ sau khi hoàn tất quá trình tải đầy đủ , Bao gồm các cột LOB trong bản sao Bật ghi nhật ký (xem Hình 21).


Hình 21: Cài đặt tác vụ

Nhấp vào Cài đặt nâng cao , như thể hiện trong Hình 22, để định cấu hình cài đặt nâng cao, bao gồm Bảng điều khiển cài đặt và Điều chỉnh cài đặt. Các cài đặt nâng cao mặc định có thể được giữ lại.


Hình 22: Cài đặt nâng cao

Trong Ánh xạ bảng , định cấu hình các quy tắc lựa chọn, như được hiển thị trong Hình 23. Ít nhất một quy tắc lựa chọn có Bao gồm hành động là bắt buộc. Chọn Tên giản đồ (thử nghiệm) trong MongoDB nguồn DMS. Tên giản đồ giống với tên cơ sở dữ liệu MongoDB, là test . Chỉ định Tên bảng giống như ‘%’, Chọn tất cả các bảng. A bảng còn được gọi là bộ sưu tập trong MongoDB. Chọn Hành động dưới dạng Bao gồm , bao gồm các đối tượng được chọn theo quy tắc lựa chọn. Hành động loại trừ được xử lý sau khi Hành động bao gồm.


Hình 23: Ánh xạ bảng

Bộ lọc nguồn để giới hạn số lượng và loại bản ghi được chuyển từ nguồn sang đích cũng có thể được cấu hình. Nhấp vào Thêm quy tắc lựa chọn , như trong Hình 24.


Hình 24: Thêm quy tắc lựa chọn

Các quy tắc chuyển đổi có thể được thêm vào để tạo chữ hoa / thường và thêm / xóa các phép biến đổi tiền tố / hậu tố. Nếu tính năng Ghi nhật ký đã được bật, DMS sẽ tạo một vai trò để đăng nhập vào CloudWatch. Việc tạo tác vụ ngầm cấp các quyền cần thiết để truy cập và đăng nhập vào CloudWatch. Nhấp vào Tạo tác vụ , như trong Hình 25.


Hình 25: Tạo công việc

Một tác vụ di chuyển bắt đầu được tạo (xem Hình 26). Ban đầu, Trạng thái là "Đang tạo". Trạng thái sẽ được cập nhật tự động và tùy chọn nhấp vào nút làm mới để làm mới trạng thái định kỳ cũng được cung cấp.


Hình 26: Tác vụ di chuyển bắt đầu được tạo

Khi một nhiệm vụ được tạo, Trạng thái trở thành Sẵn sàng , như trong Hình 27.


Hình 27: Trạng thái tác vụ đã sẵn sàng

Vai trò IAM để truy cập và ghi nhật ký CloudWatch được tạo tự động, như thể hiện trong Hình 28.


Hình 28: Vai trò IAM đối với Nhật ký CloudWatch

Chạy quá trình di chuyển

Để chạy tác vụ di chuyển, hãy nhấp vào Bắt đầu / Tiếp tục , như trong Hình 29.


Hình 29: Bắt đầu / Tiếp tục công việc

Trạng thái Nhiệm vụ trở thành Đang bắt đầu , như trong Hình 30.


Hình 30: Bắt đầu tác vụ

Khi tác vụ đã chạy xong, Bảng được tải cột liệt kê số lượng bảng được tải là 1, cột Trạng thái trở nên Đã dừng , Hoàn thành% nên chỉ ra 100 , như trong Hình 31. Như Loại cột cho biết, loại di chuyển là Tải đầy đủ &Đang tái tạo .


Hình 31: Tải đầy đủ đã hoàn thành

Ngoài Bảng đã tải cột Đang tải bảng , Các bảng đã được xếp hàng đợi Bảng bị lỗi cũng được liệt kê, như trong Hình 32.


Hình 32: Bảng đang tải, Bảng đã xếp hàng đợi và Bảng bị lỗi đều là 0

Trong DynamoDB, wlslog bảng liệt kê bảy mục, như trong Hình 33. Hai bảng khác, awsdms_apply_exceptions awsdms_full_load_exceptions , cũng được tạo tự động. Bảng awsdms_apply_exceptions cung cấp chi tiết ngoại lệ, bao gồm tên và mô tả lỗi, câu lệnh đang chạy khi xảy ra lỗi, tên của tác vụ, chủ sở hữu bảng, tên bảng và thời gian của ngoại lệ. Bảng awsdms_full_load_exceptions cung cấp thông tin về các ngoại lệ được tạo sau khi tải đầy đủ.


Hình 33: Bảng wlslog liệt kê bảy mục

Nhấp vào _id để hiển thị tài liệu ( _doc giá trị thuộc tính), như trong Hình 34.


Hình 34: Tài liệu cho một mục được lưu trữ trong DynamoDB

Bộ lọc DynamoDB có thể được sử dụng để lọc tìm kiếm. Ví dụ:tìm kiếm một _id cụ thể bằng cách chỉ định _id dưới dạng trường, chọn Chuỗi làm loại trường, chọn ‘=’ làm toán tử bộ lọc và chỉ định _id tìm kiếm, như được hiển thị trong Hình 35. Nhấp vào Bắt đầu tìm kiếm .


Hình 35: Áp dụng bộ lọc

Dữ liệu hàng trong bảng DynamoDB cho _id được chỉ định được liệt kê (xem Hình 36).


Hình 36: Dữ liệu được lọc cho _id cụ thể

Sau khi tác vụ di chuyển hoàn thành việc di chuyển cơ sở dữ liệu, trạng thái tác vụ sẽ trở thành Đã dừng , nhưng Điểm cuối di chuyển vẫn Hoạt động , như trong Hình 37.


Hình 37: Điểm cuối Hoạt động ngay cả sau khi quá trình di chuyển hoàn tất và tác vụ đã dừng

Tiếp tục quá trình di chuyển

Tác vụ di chuyển đã dừng có thể được khởi động lại hoặc tiếp tục. Sau đây là một số lý do để tiếp tục hoặc bắt đầu lại một tác vụ:

  • Một tài liệu mới đã được thêm vào bộ sưu tập hiện có (còn được gọi là bảng ) trong cơ sở dữ liệu MongoDB nguồn DMS
  • Một bộ sưu tập (bảng) mới đã được thêm vào cơ sở dữ liệu MongoDB
  • Quá trình di chuyển cần được chạy lại với các quy tắc lựa chọn khác nhau, điều này có thể là cần thiết, chẳng hạn như nếu tiền tố bảng cần được thêm bằng cách sử dụng quy tắc chuyển đổi.

Ví dụ:thêm ba tài liệu khác vào wlslog bộ sưu tập trong Mongo CLI.

doc8 = {"timestamp":"Apr 8, 2014 7:06:23 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000360",
   "msg":"Server in RUNNING mode"}
doc9 = {"timestamp":"Apr 8, 2014 7:06:24 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000365",
   "msg":"Server Stopping"}
doc10 = {"timestamp":"Apr 8, 2014 7:06:25 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000361",
   "msg":"Server Resumed"}
db.wlslog.insert([doc8,doc9,doc10])

Như kết quả trong Hình 38 chỉ ra, ba tài liệu sẽ được thêm vào.


Hình 38: Thêm ba tài liệu khác

Nhấp vào Bắt đầu / Tiếp tục để tiếp tục tác vụ đã dừng, như trong Hình 39.


Hình 39: Bắt đầu / Tiếp tục cho tác vụ đã dừng

Trong Bắt đầu tác vụ hộp thoại, hai tùy chọn được cung cấp: Bắt đầu hoặc Khởi động lại . Bắt đầu tùy chọn bắt đầu tác vụ và tải các bảng hoặc bộ sưu tập mới được thêm vào nguồn DMS. Bắt đầu tùy chọn cũng tải bất kỳ bảng nào chỉ được tải một phần trong lần chạy trước đó. Bắt đầu tùy chọn không tải dữ liệu (mới hoặc cũ) vào một bảng đã được tải hoàn toàn vào cơ sở dữ liệu đích. Khởi động lại tùy chọn khởi động lại một tác vụ và xóa dữ liệu hiện có trong cơ sở dữ liệu đích và khởi động lại quá trình tải đầy đủ. Trên thực tế, nút Khởi động lại tùy chọn tải dữ liệu mới được thêm vào các bảng hiện có ngoài việc tải bất kỳ bảng mới nào được thêm vào nguồn DMS. Vì chúng tôi đã thêm dữ liệu mới vào bảng hiện có, nên chúng tôi cần chọn tùy chọn Khởi động lại và nhấp vào Bắt đầu tác vụ , như trong Hình 40.


Hình 40: Khởi động lại tác vụ

Tác vụ khởi động lại, xóa / các bảng hiện có trong cơ sở dữ liệu đích và tải tất cả dữ liệu từ cơ sở dữ liệu nguồn đến cơ sở dữ liệu đích. Khi quá trình tải dữ liệu hoàn tất, trạng thái tác vụ trở thành Tải hoàn tất (xem Hình 41).


Hình 41: Tải xong

Nhấp vào nút làm mới trong DynamoDB, như thể hiện trong Hình 42.


Hình 42: Làm mới dữ liệu trong bảng wlslog

Số lượng mục được liệt kê là 10, như trong Hình 43, thay vì bảy mục trước khi bắt đầu lại tác vụ. Ba mục mới mà chúng tôi đã thêm vào làm cho tổng số các mục là 10.


Hình 43: Liệt kê 10 mục sau khi thêm các mục mới và làm mới dữ liệu

Dữ liệu mới được di chuyển được phân biệt với dữ liệu được tải trong lần chạy 1 bởi một tiền tố khác; dữ liệu được tải trong 1 lần chạy có tiền tố 59401 trong _id và dữ liệu được tải trong 2 lần chạy có tiền tố 59402 . Bộ lọc có thể được sử dụng để chỉ liệt kê dữ liệu mới, như thể hiện trong Hình 44.


Hình 44: Lọc Dữ liệu để chỉ liệt kê ba mục mới

Trạng thái tác vụ lại trở thành Đã dừng sau khi dữ liệu mới đã được di chuyển, như thể hiện trong Hình 45.


Hình 45: Trạng thái trở nên Dừng sau khi hoàn thành Tải đầy đủ

Xóa quá trình di chuyển

Để xóa di chuyển, hãy chọn di chuyển và nhấp vào Xóa (xem Hình 46).


Hình 46: Xóa

Trong Xóa tác vụ hộp thoại, nhấp vào Xóa , như trong Hình 47.


Hình 47: Xóa xác minh nhiệm vụ

Trạng thái nhiệm vụ trở thành Đang xóa , như trong Hình 48, trước khi tác vụ bị xóa.


Hình 48: Xóa công việc

Xóa một nhiệm vụ không xóa các điểm cuối DMS đang được sử dụng; điều này có nghĩa là một nhiệm vụ mới có thể được tạo.

Kết luận

Trong hai bài viết, chúng ta đã thảo luận về việc di chuyển cơ sở dữ liệu MongoDB sang các bảng DynamoDB bằng cách sử dụng Dịch vụ di chuyển cơ sở dữ liệu AWS.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lợi thế của việc sử dụng ObjectId thay vì một Chuỗi đơn giản là gì?

  2. Giám sát &Quản lý hoạt động của MongoDB 4.0 với ClusterControl

  3. Cách sử dụng công cụ sửa đổi cập nhật $ push trong MongoDB và C #, khi cập nhật một mảng trong tài liệu

  4. Kiểm tra xem một trường có chứa một chuỗi hay không

  5. Các cụm MongoDB hiệu suất cao trên Azure