How to read CSV file and insert data into PostgreSQL using Mule ESB, Mule Studio

有些话、适合烂在心里 提交于 2019-11-27 21:27:44

Here is an example that inserts a two columns CSV file:

<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>
Rajnish Kumar Jha

In order to read CSV file and insert data into PostgreSQL using Mule all you need to follow following steps: You need to have following things as pre-requisite

  • PostgreSQL
  • PostgreSQL JDBC driver
  • Anypoint Studio IDE and
  • A database to be created in PostgreSQL

Then configure Postgre SQL JDBC Driver in Global Element Properties inside Studio Create Mule Flow in Anypoint Studio as follows:

  • Step 1: Wrap CSV file source in File component
  • Step 2: Convert between object arrays and strings
  • Step 3: Split each row
  • Step 4: Transform CSV row in array
  • Step 5: Dump into the destination Database

I would like to suggest Dataweave.

Steps

  1. read the file using FTP connector / endpoint.

  2. Transform using Data weave.

  3. Use database connector , store the data in DB.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!