将SQL连接到apache nifi

时间:2017-01-05 16:21:24

标签: sql-server apache-nifi

我是nifi的新手,我想将SQL服务器数据库连接到nifi并使用处理器创建数据流。我怎么能这样做,任何人都可以清楚地帮助我。

先谢谢 SAM

3 个答案:

答案 0 :(得分:13)

以下是关于使用NiFi获取信息进出数据库的两篇精彩文章:

  1. http://www.batchiq.com/database-injest-with-nifi.html

  2. http://www.batchiq.com/database-extract-with-nifi.html

  3. 他们描述/说明如何配置DBCPConnectionPool服务以提供与RDBMS的连接,以及示例流以提取数据和提取数据。

答案 1 :(得分:6)

扩展mattyb answer

如果您使用的是最新的Hortonworks沙箱或其他使用泊坞容器的设置,请阅读以下内容。

您必须在docker 中安装JDBC jar文件。对于SQL Server,它应该是6.2或更高版本。

docker ps
docker exec -it <mycontainer uuid> bash
  

How to get into a docker container?   将帮助您登录容器。

cd file:///usr/lib/jvm/jre/lib/
mkdir jdbc
cd ./jdbc
wget https://download.microsoft.com/download/3/F/7/3F74A9B9-C5F0-43EA-A721-07DA590FD186/sqljdbc_6.2.2.0_enu.tar.gz
tar xvzf sqljdbc_6.2.2.0_enu.tar.gz
cp ./sqljdbc_6.2/enu/mssql-jdbc-6.2.2.jre8.jar ./

Apache Nifi JDBC Database DBCPConnectionPool Setup

jdbc:sqlserver://192.168.1.201:1433; databaseName = [your database] com.microsoft.sqlserver.jdbc.SQLServerDriver

您可以将file:/// usr / lib / jvm / jre / lib /更改为您想要的任何路径。

答案 2 :(得分:1)

扩展TamusJRoyce's answer

如果您是通过apache/nifi之类的docker映像或上述的Hortonworks沙箱运行nifi的,则以下内容应可帮助您在映像上获取所需的驱动程序,从而不必exec进入容器手动完成。

请参阅docker文件下面的注释

FROM apache/nifi

USER root
RUN mkdir /lib/jdbc
WORKDIR /lib/jdbc
RUN wget https://download.microsoft.com/download/3/F/7/3F74A9B9-C5F0-43EA-A721-07DA590FD186/sqljdbc_6.2.2.0_enu.tar.gz
RUN tar xvzf sqljdbc_6.2.2.0_enu.tar.gz
RUN cp ./sqljdbc_6.2/enu/mssql-jdbc-6.2.2.jre8.jar ./

USER nifi

EXPOSE 8080 8443 10000 8000

WORKDIR ${NIFI_HOME}
ENTRYPOINT ["../scripts/start.sh"]
  1. 以上图像使用apache/nifi作为基础图像。您可以根据需要使用任何具有基准的nifi码头工人镜像。
  2. 您可以为lib/jdbc指定任何位置,只需记住您需要将此位置用作文件位置的引用,以便将其引用为file:///lib/jdbc/mssql-jdbc-6.2.2.jre8.jar
  3. 最后,切换回nifi用户并以标准nifi图像细节结束。这样可以使图像正确运行。