Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Perl:Làm cách nào để sao chép / phản chiếu (các) bảng MYSQL từ xa sang một cơ sở dữ liệu khác? Có thể cấu trúc khác nhau quá?

Hai thuật ngữ bạn đang tìm là " sao chép "hoặc" ETL ".

Đầu tiên, cách tiếp cận nhân rộng.

Giả sử máy chủ quản trị của bạn có các bảng T1, T2, T3 và máy chủ công cộng của bạn có các bảng TP1, TP2.

Vì vậy, những gì bạn muốn làm (vì bạn có cấu trúc bảng khác nhau như đã nói) là:

  1. Lấy các bảng từ máy chủ công cộng và tạo bản sao chính xác của các bảng đó trên máy chủ quản trị (TP1 và TP2).

  2. Tạo trình kích hoạt trên bảng gốc của máy chủ quản trị để đưa dữ liệu từ T1 / T2 / T3 vào bản sao TP1 / TP2 của máy chủ quản trị.

  3. Bạn cũng sẽ cần thực hiện tập hợp dữ liệu ban đầu từ T1 / T2 / T3 vào bản sao TP1 / TP2 của máy chủ quản trị. Duh.

  4. Thiết lập " bản sao "từ TP1 / TP2 của máy chủ quản trị đến TP1 / TP2 của máy chủ công cộng

Một cách tiếp cận khác là viết một chương trình (các chương trình như vậy được gọi là ETL - Extract-Transform-Load) sẽ trích xuất dữ liệu từ T1 / T2 / T3 trên máy chủ quản trị (phần "E" của "ETL"), xoa bóp dữ liệu sang định dạng phù hợp để tải vào bảng TP1 / TP2 (phần "T" của "ETL"), chuyển (qua ftp / scp / whatnot) các tệp đó sang máy chủ công cộng và nửa sau của chương trình (chữ "L") một phần sẽ tải các tệp vào các bảng TP1 / TP2 trên máy chủ công cộng. Cả hai nửa chương trình sẽ được khởi chạy bởi cron hoặc người lập lịch biểu mà bạn chọn.

Có một bài báo với một ví dụ rất hay về cách bắt đầu xây dựng Perl / MySQL ETL: http://oreilly.com/pub/a/databases/2007/04/12/building-a-data-warehouse -with-mysql-and-perl.html? page =2

Nếu bạn không muốn xây dựng hệ thống của riêng mình, đây là danh sách các hệ thống ETL mã nguồn mở, chưa bao giờ sử dụng bất kỳ hệ thống nào trong số đó nên không có ý kiến ​​về khả năng sử dụng / chất lượng của chúng:http://www.manageability.org/blog/stuff/open-source-etl



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernate cuộn cảm trên các hàng bị thiếu khi xử lý cơ sở dữ liệu kế thừa

  2. Làm thế nào để gọi một thủ tục được lưu trữ MySQL từ bên trong mã PHP?

  3. Hàm NOW () của MySQL với độ chính xác cao

  4. Tìm kiếm tất cả các cột của một bảng bằng cách sử dụng một điều kiện trong đó với một từ khóa duy nhất trong mysql

  5. Dữ liệu được tuần tự hóa trong cơ sở dữ liệu mysql cần được kết hợp trong một mảng