(用於數據集成的Talend OS)Can Talend可以爲MySQL輸出使用動態表名嗎?
是否可以使用動態表名?我已經研究了用戶手冊中的所有資源,儘管他們似乎沒有明確排除它,但似乎無法使其發揮作用。
方案
假設你有一個巨大的1,000,000名列表 - 戴夫·史密斯,大衛·瓊斯,大衛布羅格斯等,這些都存儲在一個表中。
你需要將這些拆分成反映的第一個名字的表,所以你將有一個DB與表的名稱,如「安迪」,「阿德里安」,「亞當」等
當我在
我可以做什麼,沒有問題,是批量導出一個完整的數據集到一個表。我也可以使用tMysqlRow
(本身更快)創建我自己的表格。
然後我試圖選擇並吐出數據到其各自的領域,但在這些問題就來了:
- tMySqlRow可以通過使用變量使用,這樣我就可以將數據插入到相關的表,但它太慢了,它是多餘的。它的運行速度約爲2000行/秒,並且有2000萬行。
- tMySqlOutput更快,可以做得很好,但需要明確定義表名。使用上下文變量作爲表名不起作用(讀作'Null')。
有人建議查看ETL組件,但它們的定義清楚地表明表名必須用引號定義。
Talend提供如此多的上下文變量使用看起來很奇怪,但看起來不允許你動態地將一個數據集拆分成多個表。這是產品限制嗎,還是僅限於我?
在此先感謝。
編輯 - 加入截圖
上下文是打印到窗口在該屏幕截圖(「AB」是所使用的測試上下文值),以表示這個值是相關的,直到它在所聲明的'表' 字段,但是然後返回一個空值
您能提供截圖嗎?您在哪裏設置表名的上下文值,以及如何在tMySqlOutput組件中讀取它? –
也許首先要問的問題是:爲什麼要根據名稱創建表?爲什麼不使用分區或好的索引?加入所有表格將很快變得混亂... – tobi6
tobi6 - 名稱只是解釋我正在做的事情的上下文的一種更簡單的方式。我需要匹配目標架構,不幸的是,它使用來自主數據集主鍵的代碼進行分割。 –