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

Chuyển đổi phân tách có điều kiện:Xuất dữ liệu từ SQL Server sang Cơ sở dữ liệu Oracle và MySQL

Trong bài viết này, tôi đã giải thích cách chúng ta có thể phân chia và xuất dữ liệu của bảng cơ sở dữ liệu SQL Server thành cơ sở dữ liệu Oracle và MySQL. Quá trình đó dựa trên điều kiện được xác định trong SSIS là “ chuyển đổi phân tách có điều kiện ”. Phép biến đổi chia có điều kiện giống như câu lệnh trường hợp của bất kỳ ngôn ngữ lập trình nào. Sử dụng có điều kiện, chúng tôi có thể chuyển hướng đầu ra của một thành phần trong nhiều đích dựa trên điều kiện được xác định trong thành phần tách có điều kiện.

Thiết lập Demo

Chúng tôi có thể truy xuất dữ liệu từ các nền tảng cơ sở dữ liệu khác nhau bằng cách sử dụng kết nối ODBC trong khi sử dụng các công cụ dữ liệu SQL Server. Hầu hết các nền tảng cơ sở dữ liệu đều cung cấp trình điều khiển kết nối có thể được sử dụng để định cấu hình kết nối giữa ứng dụng và cơ sở dữ liệu.

Tôi sẽ xuất dữ liệu của bảng khách hàng của “ AdventureWorks2014 ”Cơ sở dữ liệu cho Oracle và MySQL dựa trên điều kiện được xác định trong phần tách điều kiện. Dữ liệu sẽ được phân chia dựa trên cơ sở của “ StateProvinceName ”Trong cột“ Khách hàng " bàn. Các bản ghi có giá trị được đặt tên là “ California ”Trong“ StateProvinceName ”Sẽ được xuất sang cơ sở dữ liệu Oracle và các bản ghi có giá trị được đặt tên là“ Washington ”Sẽ được xuất sang cơ sở dữ liệu MySQL.

Tôi đã cài đặt phiên bản Oracle 11g express và MySQL 8.0 trên máy cục bộ của mình. Tôi đã tạo cơ sở dữ liệu XE trong Oracle và “ WideWorldImportors ”Trên máy chủ MySQL. Tôi đã tạo “ Khách hàng ”Trên cả hai cơ sở dữ liệu. Dưới đây là mã SQL để tạo bảng.

CREATE TABLE customers 
  ( 
     cust_id                INT, 
     cust_customername      VARCHAR(500), 
     cust_contactnumber     VARCHAR(50), 
     cust_contactnumbertype VARCHAR(10), 
     cust_email             VARCHAR(150), 
     cust_addresstype       VARCHAR(10), 
     cust_address           VARCHAR(1500), 
     cust_city              VARCHAR(50), 
     cust_state             VARCHAR(50), 
     cust_postalcode        INT, 
     cust_countryname       VARCHAR(100) 
  )

Trong khi sử dụng thành phần luồng dữ liệu của các công cụ dữ liệu SQL Server, chúng ta có thể chuyển dữ liệu giữa các cơ sở dữ liệu khác nhau bằng cách định cấu hình trình điều khiển ODBC. Các công cụ dữ liệu SQL Server mà chúng tôi có thể cài đặt bằng trình quản lý kết nối đã hỗ trợ Oracle Client, nhưng đối với MySQL, chúng tôi cần tạo nguồn dữ liệu ODBC.

Công cụ dữ liệu SQL Server là một ứng dụng 32 bit và nó chạy ở chế độ 32 bit. Do đó, chúng tôi phải tải xuống trình điều khiển ODBC 32-bit của MySQL. Xem hình ảnh dưới đây để tham khảo:

Chúng tôi phải cài đặt “ Connector / ODBC 8.0.11 ”Để kết nối cơ sở dữ liệu MySQL bằng trình điều khiển ODBC. Trình điều khiển ODBC 8.0.11 có sẵn cho nền tảng hệ điều hành 64-bit. Do đó, chúng tôi phải sử dụng phiên bản cũ hơn của trình điều khiển ODBC. Xem hình ảnh bên dưới:

Thay vì sử dụng trình điều khiển kết nối do MySQL cung cấp, tôi đã sử dụng trình điều khiển ODBC cho MySQL được phát triển bởi Devart.

Devart ODBC Driver cho MySQL là trình điều khiển kết nối mạnh mẽ và hiệu suất cao. Nó độc lập với nền tảng, dễ cấu hình và hỗ trợ các công cụ của bên thứ ba để kết nối cơ sở dữ liệu MySQL. Dưới đây là các tính năng.

  1. Hỗ trợ kết nối bảo mật SSL và SSH.
  2. Сtương thích với mọi phiên bản MySQL. Nó hỗ trợ MariaDB, cơ sở dữ liệu Azure cho MySQL và Amazon Aurora.
  3. Tương thích với nhiều công cụ phân tích của bên thứ ba.
  4. Nền tảng độc lập. Nó hỗ trợ cả Nền tảng hệ điều hành 32 bit và 64 bit và nhiều nền tảng khác.

Bạn có thể tải xuống phiên bản dùng thử trong 30 ngày của Trình điều khiển ODBC cho MySQL đây . Xem hình ảnh sau để tham khảo:

Sau khi tải xuống trình điều khiển, hãy cài đặt chúng bằng cách chạy thiết lập.

Sau khi các trình điều khiển được cài đặt, chúng ta phải định cấu hình nguồn dữ liệu ODBC để kết nối cơ sở dữ liệu MySQL. Để làm điều đó, hãy mở Nguồn dữ liệu ODBC (32-bit). Nó nằm trong Control Panel>> Công cụ quản trị>> Nguồn dữ liệu ODBC. Xem hình ảnh dưới đây để tham khảo:

Mở nguồn Dữ liệu ODBC (32-bit). Hộp thoại “ Quản trị viên nguồn dữ liệu ODBC (32-Bit) " sẽ mở. Trong hộp thoại đó, nhấp vào “ Thêm ”. Một hộp thoại khác “ Tạo nguồn dữ liệu mới ”Đã cài đặt tất cả các trình điều khiển ODBC trong máy tính sẽ mở. Từ danh sách đó, chọn “ Phát triển trình điều khiển ODBC cho MySQL ”Và nhấp vào“ Hoàn tất ”. Xem hình ảnh sau để tham khảo:

Sau khi bạn nhấp vào “ Hoàn tất ”, Một hộp thoại để cấu hình các tham số kết nối MySQL sẽ mở ra. Trong hộp thoại đó, bạn có thể xác định các tham số kết nối. Cung cấp tên và mô tả để nhận dạng nguồn dữ liệu trong các trường thích hợp. Trong “ Máy chủ ”Hộp văn bản cung cấp tên máy chủ hoặc địa chỉ IP của máy tính / máy chủ nơi MySQL được cài đặt. Cung cấp tên người dùng và mật khẩu thích hợp để đăng nhập vào máy chủ và chọn cơ sở dữ liệu. Xem hình ảnh sau để tham khảo:

Tôi đã cài đặt MySQL trên máy cục bộ của mình do đó tôi đã cung cấp “localhost” làm hộp văn bản Máy chủ. Tôi đang kết nối với máy chủ bởi người dùng "root" do đó Người dùng là "root". Tốt nhất, nó không được ưu tiên. Thay vì root, hãy tạo một người dùng khác và sử dụng nó để xác thực cơ sở dữ liệu MySQL. Tôi đã tạo “ WideWorldImportors ”Cơ sở dữ liệu trên máy chủ cơ sở dữ liệu MySQL do đó tôi đã cung cấp“ WideWorldImportors ”Trong hộp thả xuống cơ sở dữ liệu.

Tương tự, để kết nối cơ sở dữ liệu oracle bằng cách sử dụng SSDT, chúng ta phải cài đặt phần mềm máy khách Oracle. Công cụ dữ liệu SQL Server hoạt động ở chế độ 32 bit do đó phải cài đặt phiên bản 32 bit của trình điều khiển ODBC cho Oracle. Bạn có thể tải xuống Ứng dụng khách Oracle từ đây.

Như tất cả chúng ta đều biết cách tạo gói SSIS, tôi sẽ trực tiếp giải thích cách tạo tác vụ luồng dữ liệu.

Tạo tác vụ luồng dữ liệu

Trong tác vụ Luồng dữ liệu, chúng ta sẽ sử dụng bốn thành phần:

  1. Nguồn ADO.NET để điền dữ liệu từ cơ sở dữ liệu SQL Server.
  2. Phân chia có điều kiện để chia dữ liệu thành nhiều tập hợp.
  3. Định cấu hình đích đến của MySQL và điểm đến của Oracle
  4. Định cấu hình Đường dẫn dữ liệu để lưu trữ kết quả của Phân tách có điều kiện tới các cơ sở dữ liệu có liên quan.

Định cấu hình Nguồn ADO.NET

Kéo và thả “ Nguồn ADO.NET ”Từ Hộp công cụ SSIS đến“ Luồng dữ liệu ”Và đặt tên là“ Dữ liệu Bán hàng ”Như thể hiện trong hình ảnh sau:

Nhấp đúp vào “ Dữ liệu bán hàng ”. Hộp thoại “ ADO.NET Source Editor " sẽ mở. Do trình quản lý kết nối chưa được tạo nên “ trình quản lý kết nối ADO.NET ”Hộp thả xuống trống. Để tạo kết nối mới trên hộp thoại đó, hãy nhấp vào “ Mới ”. Một hộp thoại khác “ Định cấu hình trình quản lý kết nối ”Sẽ mở ra như được hiển thị trên hình ảnh bên dưới:

Trong “ Định cấu hình trình quản lý kết nối ADO.NET ”Hộp thoại, nhấp vào“ Mới ”Để mở“ Trình quản lý kết nối ”Hộp thoại.

Trong “ Tên máy chủ ”, Nhập tên hoặc địa chỉ IP của máy chủ nơi SQL Server đã được cài đặt. SQL Server được cài đặt trên máy cục bộ của tôi do đó tôi đã cung cấp “ localhost \ SQL2016 ”Dưới dạng hộp văn bản tên máy chủ. Trong hộp thả xuống Xác thực, hãy chọn loại xác thực được sử dụng để kết nối với Phiên bản SQL. Tôi đang xác thực máy chủ SQL bằng cách sử dụng xác thực cửa sổ do đó tôi đã chọn xác thực cửa sổ trong hộp thả xuống. Và cuối cùng, trong hộp thả xuống cơ sở dữ liệu, hãy chọn tên của cơ sở dữ liệu nơi bảng được lưu trữ. Tôi đang xuất dữ liệu từ “ AdventureWorks2014 ”Cơ sở dữ liệu, do đó tôi đã chọn nó trong“ Tên cơ sở dữ liệu " thả cái hộp xuống. Nhìn vào hình ảnh sau:

Khi cấu hình hoàn tất, hãy nhấp vào “ Kiểm tra kết nối ”Để xác minh kết nối với cơ sở dữ liệu và nhấp vào“ OK ”.

Chúng tôi đã định cấu hình trình quản lý kết nối ADO.NET do đó trình quản lý kết nối mặc định sẽ được chọn tự động trong “ Trình quản lý kết nối ADO.NET ”Thả xuống. Để truy xuất dữ liệu từ bảng, hãy chọn “ Bảng hoặc Chế độ xem ”Trong hộp thả xuống chế độ truy cập dữ liệu. Khi bạn chọn tùy chọn “Bảng hoặc Chế độ xem” trong hộp thả xuống, nó sẽ đưa ra danh sách tất cả các bảng được tạo trong cơ sở dữ liệu. Từ danh sách đó, hãy chọn “ Khách hàng ”Như được hiển thị trong hình ảnh sau:

Định cấu hình phân chia có điều kiện

Bây giờ chúng ta sẽ sử dụng phép biến đổi tách có điều kiện để xuất dữ liệu trong các trang tính khác nhau của excel dựa trên điều kiện. Kéo thành phần phân tách có điều kiện từ hộp công cụ SSIS vào cửa sổ Luồng dữ liệu và đổi tên thành “ Bộ lọc dữ liệu ”Như được hiển thị trên hình ảnh bên dưới:

Tôi đã đề cập trước đó, đầu ra dữ liệu của bảng “Khách hàng” sẽ được xuất trong nhiều cơ sở dữ liệu Oracle và MySQL dựa trên điều kiện được xác định trong “ Phân chia có điều kiện ”Thành phần.

Đầu tiên, kết nối nguồn ADO.Net với Biến đổi chia có điều kiện. Để làm điều đó, hãy nhấp vào mũi tên màu xanh lam trên đường dẫn luồng dữ liệu bên dưới “ Khách hàng SQL DB ”Và kéo nó đến biến đổi phân tách có điều kiện như được hiển thị trên hình ảnh bên dưới:

Để định cấu hình phân tách có điều kiện, hãy nhấp đúp vào “Trình chỉnh sửa chuyển đổi phân tách có điều kiện”. Hộp thoại “ Trình chỉnh sửa chuyển đổi phân tách có điều kiện ”Sẽ mở ra như trong hình sau:

Để áp dụng một điều kiện trên “ StateProvinceName ”, Trước tiên hãy mở rộng nút cột, kéo“ StateProvinceName ”(Phần 1), và thả nó vào lưới (Phần 3). Điều kiện lọc dữ liệu nằm trên cột "StateProvinceName". Các bản ghi có giá trị “ California ”Sẽ được xuất sang cơ sở dữ liệu Oracle và các bản ghi có giá trị“ Washington ”Sẽ được xuất sang cơ sở dữ liệu MySQL. Dựa trên điều kiện, chúng tôi sẽ sử dụng bằng với (==) nhà điều hành. Phương trình như sau:

[Cust_State]=="California"

[Cust_State]=="Washington"

Nhìn vào hình ảnh sau:

Sau khi các điều kiện được xác định, hãy nhấp vào “OK” để lưu và đóng hộp thoại.

Định cấu hình đích đến của MySQL

Để xuất dữ liệu từ SQL Server sang MySQL và Oracle, do đó chúng ta cần cấu hình hai đích. Đầu tiên, hãy cấu hình đích đến của MySQL. Để làm điều đó, hãy kéo và thả điểm đến ODBC từ hộp công cụ SSIS và đổi tên nó thành “Cơ sở dữ liệu MySQL” như thể hiện trong hình ảnh bên dưới:

Nhấp đúp vào đích đến Cơ sở dữ liệu MySQL (Kết nối ODBC). Hộp thoại “Đích ODBC” sẽ mở ra. Trong hộp thoại đó, nhấp vào “Mới”. Một hộp thoại khác “Định cấu hình trình quản lý kết nối ODBC” sẽ mở ra, như được hiển thị trong hình ảnh sau:

Một hộp thoại khác “ Trình quản lý kết nối " sẽ mở. Trong hộp thoại, danh sách DSN được tạo trên máy được điền vào “ Sử dụng tên nguồn dữ liệu hệ thống hoặc người dùng " thả cái hộp xuống. Vì chúng tôi đã định cấu hình ODBC DSN, hãy chọn “ MySQL Destination ”Từ danh sách thả xuống như được hiển thị trong hình ảnh bên dưới:

Nhấp vào “ Kiểm tra kết nối ”Để xác minh kết nối đã được thiết lập thành công và nhấp vào“ OK ”.

Hiện có trong “ Đích ODBC ”Hộp thoại, chọn tên bảng từ“ Tên của bảng hoặc dạng xem ”Hộp thả xuống như được hiển thị trong hình ảnh sau:

Sau khi cấu hình đích cơ sở dữ liệu MySQL thành công, hãy định cấu hình đích cơ sở dữ liệu Oracle.

Định cấu hình Oracle Destination

Để định cấu hình điểm đến của Oracle, hãy kéo và thả “Đích ADO.NET” vào cửa sổ luồng dữ liệu và đổi tên nó thành “Cơ sở dữ liệu Oracle” như thể hiện trên hình ảnh sau:

Nhấp đúp vào Cơ sở dữ liệu Oracle (đích ADO.NET). Hộp thoại “ ADO.NET Destination Editor " sẽ mở. Trên hộp thoại, nhấp vào “ Mới ”. Một hộp thoại khác “ Định cấu hình trình quản lý kết nối ADO.NET” sẽ mở ra như trong hình sau:

Trên “ Định cấu hình trình quản lý kết nối ADO.NET ”Hộp thoại, nhấp vào“ Mới ”. Một hộp thoại khác “Trình quản lý kết nối” sẽ mở ra. Để định cấu hình kết nối cơ sở dữ liệu Oracle, chúng ta phải chọn “ Net.Provider \ OracleClient ”Trong“ Nhà cung cấp " hộp thoại. Cung cấp tên máy chủ hoặc Địa chỉ IP của máy chủ cơ sở dữ liệu Oracle trong hộp văn bản "Tên Máy chủ". Cung cấp tên người dùng và mật khẩu để kết nối phiên bản cơ sở dữ liệu oracle. Như tôi đã đề cập, tôi đã cài đặt phiên bản Oracle làm máy cục bộ của mình, do đó tôi đã cung cấp “localhost” trong hộp văn bản tên máy chủ. Tôi đã kết nối cơ sở dữ liệu oracle bằng người dùng “Bán hàng”, do đó trong hộp văn bản “Tên người dùng” tôi đã nhập “Bán hàng” làm tên người dùng và nhập mật khẩu của nó. Nhìn vào hình ảnh sau:

Để xác minh rằng kết nối đã được thiết lập, hãy nhấp vào “ Kiểm tra kết nối ”Và sau khi kết nối được thiết lập, hãy nhấp vào“ OK ”Để đóng hộp thoại.

Bây giờ trên “ trình chỉnh sửa đích ADO.NET ”Hộp thoại, chọn bảng hoặc tên xem nơi dữ liệu sẽ được lưu. Tôi đang xuất dữ liệu sang bảng khách hàng, do đó tôi đã chọn “ Bán hàng. Khách hàng ”Như được hiển thị trong hình ảnh sau:

Định cấu hình đường dẫn dữ liệu

Khi cả hai đích được định cấu hình, hãy định cấu hình đường dẫn dữ liệu để truyền dữ liệu trong các cơ sở dữ liệu tương ứng. Để làm điều đó, hãy kéo mũi tên đường dẫn dữ liệu màu xanh lam bên dưới chuyển đổi phân tách có điều kiện và thả nó vào Đích ODBC (Đích MySQL). Khi đường dẫn dữ liệu kết nối với đích ODBC, một hộp thoại sẽ xuất hiện. Chọn điểm đến từ “ Đầu ra ”Hộp thả xuống để chuyển hướng dữ liệu được truy xuất từ ​​Truy vấn SQL. Hộp thoại trông giống như hình dưới đây:

Danh sách thả xuống chứa đầy tất cả các điều kiện được xác định trong phép biến đổi tách có điều kiện. Trong trường hợp này, trình đơn thả xuống bao gồm ba tùy chọn.

  1. Đầu ra MySQL
  2. Đầu ra Oracle
  3. Đầu ra mặc định

Như đã đề cập ở trên, các bản ghi có giá trị “ Washington ”Của cột“ StateProvinceName ”sẽ được xuất sang cơ sở dữ liệu MySQL, do đó hãy chọn Đầu ra MySQL.

Bây giờ ánh xạ các cột đầu ra của chuyển đổi có điều kiện với bảng khách hàng của cơ sở dữ liệu MySQL. Để làm điều đó, hãy nhấp đúp vào “ Cơ sở dữ liệu MySQL ”(Đích ODBC) và trong hộp thoại“ Đích ODBC ”, chọn“ Ánh xạ ”Tùy chọn nằm ở ngăn bên trái của hộp thoại như được hiển thị trong hình ảnh bên dưới:

Trong hình trên, “Cột đầu vào” là tên cột của bảng SQL Server và cột đích sẽ là tên cột của bảng “Khách hàng” của trang tính MySQL. Trong bản trình diễn này, tên cột của Bảng SQL và bảng MySQL giống nhau nên các cột đầu vào và đầu ra của nó được ánh xạ tự động.

Lặp lại quy trình cấu hình luồng dữ liệu cho đường dẫn dữ liệu “Đầu ra Oracle” theo cách tương tự. Dưới đây là những thay đổi.

  1. Chúng ta cần chọn “Đầu ra Oracle” trong hộp thoại lựa chọn đầu vào-đầu ra như thể hiện trong hình ảnh dưới đây:
  2. Trong “ADO.NET Destination Editor”, hãy xác minh rằng các ánh xạ cột đầu vào-đầu ra là chính xác như thể hiện trong hình ảnh bên dưới:

Sau khi tất cả các cấu hình hoàn tất, toàn bộ tác vụ luồng dữ liệu sẽ giống như hình ảnh bên dưới:

Kiểm tra gói SSIS

Bây giờ Chạy gói bằng cách nhấp vào nút “Bắt đầu” trên thanh menu. Nếu gói hoàn thành việc thực thi thành công thì nó sẽ giống như hình dưới đây:

Gói đã chia đầu ra của dữ liệu SQL bằng cách sử dụng phân tách có điều kiện và xuất 4.445 bản ghi trong cơ sở dữ liệu MySQL và 2.285 bản ghi trong cơ sở dữ liệu Oracle.

Tóm tắt

Trong bài viết này, chúng tôi đã định cấu hình kết nối ODBC cho MySQL, tạo gói SSIS với luồng dữ liệu. Chúng tôi đã sử dụng Chuyển đổi phân tách có điều kiện để tách kết quả đầu ra, được truy xuất từ ​​cơ sở dữ liệu máy chủ SQL và xuất nó trong cơ sở dữ liệu Oracle và MySQL.

Các công cụ hữu ích:

Devart Thành phần luồng dữ liệu SSIS - cho phép bạn tích hợp cơ sở dữ liệu và dữ liệu đám mây thông qua Dịch vụ tích hợp máy chủ SQL.

Devart ODBC Drivers - cung cấp các giải pháp kết nối giàu tính năng và hiệu suất cao cho các ứng dụng dựa trên ODBC.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sử dụng các vai trò đã thay đổi trong MySQL 8.0

  2. Làm cách nào để kiểm tra xem một giá trị có phải là số nguyên trong MySQL hay không?

  3. Tìm mức lương cao thứ 2 theo cách tốt nhất có thể

  4. Chèn vào MySQL từ PHP (jQuery / AJAX)

  5. Có vấn đề gì xảy ra với các phép nối không sử dụng từ khóa JOIN trong SQL hoặc MySQL không?