我是Mule Studio的新手。
我遇到了问题。我有一个要求,我需要使用Mule Studio将数据从CSV文件插入PostgreSQL数据库。
我使用的是Mule Studio CE(版本:1.3.1)。我查看了谷歌,发现我们可以使用Data-mapper这样做。但它只适用于EE。所以我不能使用它。
此外,我正在网上查看并找到一篇文章Using Mule Studio to read Data from PostgreSQL(Inbound) and write it to File (Outbound) - Step by Step approach。
这似乎是可行的,但我的要求恰好与给出的文章相反。我需要File作为入站数据,而Databse作为Outbound组件。
这样做的方法是什么?
任何一步一步的帮助(比如使用哪些组件)和指导将非常感激。
答案 0 :(得分:11)
以下是插入两列CSV文件的示例:
<configuration>
<expression-language autoResolveVariables="true">
<import class="org.mule.util.StringUtils" />
<import class="org.mule.util.ArrayUtils" />
</expression-language>
</configuration>
<spring:beans>
<spring:bean id="jdbcDataSource" class=" ... your data source ... " />
</spring:beans>
<jdbc:connector name="jdbcConnector" dataSource-ref="jdbcDataSource">
<jdbc:query key="insertRow"
value="insert into my_table(col1, col2) values(#[message.payload[0]],#[message.payload[1]])" />
</jdbc:connector>
<flow name="csvFileToDatabase">
<file:inbound-endpoint path="/tmp/mule/inbox"
pollingFrequency="5000" moveToDirectory="/tmp/mule/processed">
<file:filename-wildcard-filter pattern="*.csv" />
</file:inbound-endpoint>
<!-- Load all file in RAM - won't work for big files! -->
<file:file-to-string-transformer />
<!-- Split each row, dropping the first one (header) -->
<splitter
expression="#[rows=StringUtils.split(message.payload, '\n\r');ArrayUtils.subarray(rows,1,rows.size())]" />
<!-- Transform CSV row in array -->
<expression-transformer expression="#[StringUtils.split(message.payload, ',')]" />
<jdbc:outbound-endpoint queryKey="insertRow" />
</flow>
答案 1 :(得分:0)
要阅读 CSV 文件并使用 Mule 将数据插入 PostgreSQL ,您只需按照以下步骤操作脚步: 您需要将以下内容作为先决条件
然后在Studio内的全局元素属性中配置Postgre SQL JDBC驱动程序 在Anypoint Studio中创建Mule Flow,如下所示:
答案 2 :(得分:-1)
我想建议使用Dataweave。
步骤
使用FTP连接器/端点读取文件。
使用数据编织进行转换。
使用数据库连接器,将数据存储在数据库中。