我是nifi的新手,我想将SQL服务器数据库连接到nifi并使用处理器创建数据流。我怎么能这样做,任何人都可以清楚地帮助我。
先谢谢 SAM
答案 0 :(得分:13)
以下是关于使用NiFi获取信息进出数据库的两篇精彩文章:
他们描述/说明如何配置DBCPConnectionPool服务以提供与RDBMS的连接,以及示例流以提取数据和提取数据。
答案 1 :(得分:6)
如果您使用的是最新的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 ./
jdbc:sqlserver://192.168.1.201:1433; databaseName = [your database] com.microsoft.sqlserver.jdbc.SQLServerDriver
您可以将file:/// usr / lib / jvm / jre / lib /更改为您想要的任何路径。
答案 2 :(得分:1)
如果您是通过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"]
apache/nifi
作为基础图像。您可以根据需要使用任何具有基准的nifi码头工人镜像。lib/jdbc
指定任何位置,只需记住您需要将此位置用作文件位置的引用,以便将其引用为file:///lib/jdbc/mssql-jdbc-6.2.2.jre8.jar