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

Làm thế nào để Đoán giản đồ trong Mysqlinput một cách nhanh chóng trong Talend

Nếu bạn đang sử dụng phiên bản đăng ký của Talend, bạn có thể sử dụng loại cột động. Bạn có thể xác định một cột duy nhất cho đầu vào thuộc loại "Động" và ánh xạ nó tới một cột cùng loại trong thành phần đầu ra của bạn. Thao tác này sẽ tự động lấy các cột từ bảng a và ánh xạ chúng đến các cột giống nhau trong bảng b. Đây là ví dụ .
Nếu bạn đang sử dụng Talend Open Studio, mọi thứ sẽ phức tạp hơn một chút vì Talend mong đợi một danh sách các cột cho các thành phần đầu vào và đầu ra cần được xác định tại thời điểm thiết kế.

Đây là một giải pháp mà tôi đã tổng hợp lại để khắc phục hạn chế này.

Ý tưởng là liệt kê tất cả các cột của bảng a có trong bảng b. Sau đó, chuyển đổi nó thành một danh sách các cột được phân tách bằng dấu phẩy, trong ví dụ của tôi là id,Theme,name và lưu trữ nó trong một biến toàn cục COLUMN_LIST . Đầu ra thứ hai của tMap xây dựng cùng một danh sách các cột, nhưng lần này đặt dấu ngoặc kép giữa các cột (để chúng có thể được sử dụng làm tham số cho CONCAT chức năng sau), sau đó thêm các dấu ngoặc kép vào đầu và cuối, như sau:"'", id,"','",Theme,"','",name,"'" và lưu trữ nó trong một biến toàn cục CONCAT_LIST .

Trong công việc con tiếp theo, tôi truy vấn table a sử dụng CONCAT , cung cấp cho nó danh sách các cột được nối CONCAT_LIST , do đó truy xuất từng bản ghi trong một cột đơn như vậy 'value1', 'value2',..etc

Sau đó, cuối cùng tôi thực hiện một INSERT truy vấn đối với table b , bằng cách chỉ định danh sách các cột được cung cấp bởi biến toàn cục COLUMN_LIST và các giá trị sẽ được chèn dưới dạng một chuỗi duy nhất tạo ra từ CONCAT hàm (row6.values ).

Giải pháp này là chung chung, nếu bạn thay thế tên bảng của mình bằng các biến ngữ cảnh, bạn có thể sử dụng nó để sao chép dữ liệu từ bất kỳ bảng MySQL nào sang bảng khác.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi mảng JSON trong MySQL thành hàng

  2. Làm thế nào để chuyển đổi tệp excel thành cơ sở dữ liệu mysql?

  3. Truy vấn MySql GIỮA hai Chuỗi đôi khi không hoạt động

  4. MySQL:Phiên bản ngược của LIKE là gì?

  5. Độ dài DECIMAL cho microtime (true)?