Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak odgadnąć schemat w Mysqlinput w locie w Talend

Jeśli korzystasz z subskrypcji Talend, możesz użyć dynamicznego typu kolumny. Możesz zdefiniować pojedynczą kolumnę dla danych wejściowych typu „Dynamiczny” i odwzorować ją na kolumnę tego samego typu w komponencie wyjściowym. Spowoduje to dynamiczne pobranie kolumn z tabeli a i zamapowanie ich na te same kolumny w tabeli b. Oto przykład .
Jeśli używasz Talend Open Studio, sprawy stają się nieco trudniejsze, ponieważ Talend oczekuje listy kolumn dla komponentów wejściowych i wyjściowych, które muszą być zdefiniowane w czasie projektowania.

Oto rozwiązanie, które opracowałem, aby obejść to ograniczenie.

Chodzi o to, aby wymienić wszystkie kolumny tabeli a, które występują w tabeli b. Następnie przekonwertuj go na listę kolumn oddzielonych przecinkami, w moim przykładzie id,Theme,name i przechowuj go w zmiennej globalnej COLUMN_LIST . Drugie wyjście tMap tworzy tę samą listę kolumn, ale tym razem umieszczając pojedyncze cudzysłowy między kolumnami (tak, aby mogły być użyte jako parametry do CONCAT funkcji później), a następnie dodaj pojedyncze cudzysłowy na początku i na końcu, na przykład:"'", id,"','",Theme,"','",name,"'" i zapisz go w zmiennej globalnej CONCAT_LIST .

W następnym podzadaniu wysyłam zapytanie do table a za pomocą CONCAT funkcja, podając listę kolumn do połączenia CONCAT_LIST , pobierając w ten sposób każdy rekord w pojedynczej kolumnie, np. 'value1', 'value2',..etc

Następnie w końcu wykonuję INSERT zapytanie do table b , określając listę kolumn podaną przez zmienną globalną COLUMN_LIST i wartości, które mają być wstawione jako pojedynczy ciąg, wynikający z CONCAT funkcja (row6.values ).

To rozwiązanie jest ogólne, jeśli zastąpisz nazwy tabel zmiennymi kontekstowymi, możesz go użyć do skopiowania danych z dowolnej tabeli MySQL do innej tabeli.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liczba i grupowanie MySQL według dnia

  2. Liczba parametrów zapytania MySQL pasuje do argumentów przekazanych do wykonania, ale Python nie zwraca wszystkich argumentów przekonwertowanych

  3. Problemy z uruchomieniem serwera MySQL w Mavericks

  4. połączenie javafx z mysql

  5. Jak ograniczyć wartość kolumny w SQLite / MySQL?