Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да отгатнете схемата в Mysqlinput в движение в Talend

Ако използвате абонаментна версия на Talend, можете да използвате динамичния тип колона. Можете да дефинирате една колона за вашия вход от тип "Динамичен" и да я съпоставите с колона от същия тип във вашия изходен компонент. Това динамично ще получи колони от таблица a и ще ги съпостави със същите колони в таблица b. Ето един пример .
Ако използвате Talend Open Studio, нещата стават малко по-трудни, тъй като Talend очаква списък с колони за входните и изходните компоненти, които трябва да бъдат дефинирани по време на проектиране.

Ето решение, което събрах, за да заобиколя това ограничение.

Идеята е да се изброят всички колони на таблица a, които присъстват в таблица b. След това го преобразувайте в разделен със запетая списък с колони, в моя пример id,Theme,name и го съхранявайте в глобална променлива COLUMN_LIST . Втори изход на tMap изгражда същия списък с колони, но този път поставя единични кавички между колоните (за да могат да се използват като параметри на CONCAT функция по-късно), след което добавете единични кавички в началото и края, както следва:"'", id,"','",Theme,"','",name,"'" и го съхранявайте в глобална променлива CONCAT_LIST .

При следващото подзадание задавам заявка за table a като използвате CONCAT функция, давайки й списък с колони, които трябва да бъдат конкатенирани CONCAT_LIST , като по този начин извлича всеки запис в една колона, например 'value1', 'value2',..etc

След това най-накрая изпълнявам INSERT заявка към table b , като посочите списъка с колони, даден от глобалната променлива COLUMN_LIST и стойностите, които трябва да бъдат вмъкнати като единичен низ, резултат от CONCAT функция (row6.values ).

Това решение е общо, ако замените имената на вашите таблици с контекстни променливи, можете да го използвате, за да копирате данни от всяка MySQL таблица в друга таблица.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как MySQL съхранява данни

  2. MySql, как мога да експортирам индекси от моята база данни за разработка в моята производствена база данни?

  3. Какво е динамичен SQL?

  4. АКО Условие Изпълнете заявка, иначе Извършете друга заявка

  5. MySQL FIND_IN_SET() не работи според очакванията